[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: music, vector, image, code, pdf, flash, archive, text, video
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 100 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.36161 Ответ [Открыть тред]
Файл: 125860969610249.jpg
Jpg, 39.86 KB, 300×100 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
125860969610249.jpg
Доска посвящена созданию программ и всему, что с ним связано. Для обсуждения готовых программ, железа, устройств есть доска >>/lor/

Простые реквесты для ньюфагов >>28288
Помощь начинающим >>44688 (новый)
Оффициальный™ Лунного Сахара тред >>43581

Языки программирования:
Haskell >>35693
Lisp >>29402
Assembler >>32929
C++ >>43511
Java >>46281
C# и .Net >>27510
Perl >>37854
Python >>46029
Доска посвящена созданию программ и всему, что с ним связано. Для обсуждения готовых программ, железа, устройств есть доска >>/lor/

Простые реквесты для ньюфагов >>28288
Помощь начинающим >>44688 (новый)
Оффициальный™ Лунного Сахара тред >>43581

Языки программирования:
Haskell >>35693
Lisp >>29402
Assembler >>32929
C++ >>43511
Java >>46281
C# и .Net >>27510
Perl >>37854
Python >>46029
PHP >>23225
JavaScript >>40541
Pascal/Delphi >>37645
Golang >>48143

Фреймворки и библиотеки:
Ruby on Rails >>31319
Qt >>31597

Инструменты:
Vim >>33881
Emacs >>36714
Системы контроля версий >>28005

Прочие технологии:
SQL >>29820

Информатика:
Стеганография >>35350

"Кафедра сайтостроя": тред тут в /s >>31137 и тред в /u >>u/104773
Game Development тред тут >>39943 "Кафедра гейм-девелопмента" в /u: >>u/60525
Сообщение слишком длинное. Полная версия. Post was modified last time at 2017-09-26 21:53:58


No.49696 Ответ [Открыть тред]
Файл: tumblr_inline_ml09rkrmWH1qz4rgp.gif
Gif, 151.78 KB, 400×267 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tumblr_inline_ml09rkrmWH1qz4rgp.gif
Тред помощи начинающим свой долгий и тернистый путь в дебри программирования. А также необузданных оленей, код-мартышек, выбора ЯП и иных платиновых вещей.
Но в первую очередь всё-таки помощи новичкам. Всё, чтобы зашедший сюда в первый раз мог почувствовать себя как дома.
Главное - без фанатизма.

Предыдущий: >>47927
3 posts are omitted. Развернуть тред.
>> No.49731 Ответ
Файл: hmmmm.jpg
Jpg, 43.23 KB, 500×461 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
hmmmm.jpg
Второй год сижу жаба-джуном в ентерпрайз разработке и есть некоторые познания в спринг буте и javaee, короче бекенд онли. Энтузиазм пропал, когда перевели на древний легаси проект. А там старый спринг, jsp и вот это вот всё. Раньше сталкиваться не приходилось, а от jsp и фронта так вовсе тянет блевать и не могу себя заставить изучать это. Появилось ощущение, что я вообще ничего не умею как синдром самозванца прямо.
У меня уже начинаются панические атаки от мыслей про ковыряние в JSP 5к-страничных, но это придётся освоить.
Посоветуйте как сдаунгрейдиться безболезненно, что почитать стоит и как правильно вкатываться в большой легаси-проект в целом?
>> No.49732 Ответ
Файл: 565px-Ракка.jpg
Jpg, 43.97 KB, 565×599 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
565px-Ракка.jpg
>>49731
Эх, был бы это питон, я бы хоть понимал, о чём речь, а там, глядишь, и подсказал что.
А так могу только лучей добра послать.
>> No.49734 Ответ
>>49731
> как сдаунгрейдиться безболезненно
Не совсем понял, о чем ты.
> как правильно вкатываться в большой легаси-проект в целом
Желательно иметь под боком пару человек, которые этот проект вели до тебя и знают, что там и как, помогут разобраться, поддержат тебя.

А вообще, увольняйся к херам, раз работа не приносит никакого удовольствия и вызывает только стресс
>> No.49735 Ответ
Файл: sleepy.jpg
Jpg, 55.07 KB, 640×582 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
sleepy.jpg
>>49732
>>49734
Спасибо за отклики, аноны.

> Не совсем понял, о чем ты
Технологии на проекте довольно старые и изучать их не очень хочется. Как себя заставить, вот я к чему.
Есть единственный (!) коллега, который в этом разбирается, придётся атаковать его вопросами.
Увольняться тоже не вариант, в моей деревне нет альтернатив вообще. Фриланса и переездов боюсь из-за мало опытности да и кому нужны джависты на фрилансе?
>> No.49736 Ответ
>>49735
Звучит так, что если ты начнешь закапываться в легаси с головой, то можешь ставить крест на своей карьере. Обнаружишь себя через 20 лет на всё том же проекте на джаве 1.2 и будешь удивляться, куда ушло твое время.
> Фриланса и переездов боюсь из-за мало опытности
Фриланс рискованный, согласен, у меня так и не получилось вкатиться ни с какой стороны. Переезд вполне неплохой вариант, но если у тебя есть либо работа в городе, либо финансовая подушка на 3-6 месяцев. Собеседование можно пройти по удаленке, даже работу могут предлагать на удаленке - получаешь московскую зарплату, но продолжаешь сидеть в Нижних Залуповках и складываешь доляры в погребок. Опыт в 2 года - самое то для попыток сменить место. Мне как раз примерно на этом этапе стали массово писать рекрутеры в LinkedIn, а сейчас на карантине почему-то особенно часто. Так что мой тебе совет - если ты хочешь развиваться как профессионал, то беги оттуда, ищи вакансии, наполни профиль в линкедине, собирай контакты и так далее. Можешь попробовать перепрофилироваться в автотестеры, писать тесты на селениуме, такие люди нужны.
>> No.49739 Ответ
>>49735
Соглашусь с остальными Доброкодерами. Не хочешь заниматься этим -- проси перевести тебя на более интересный тебе проект. Отказываются -- начинай искать другую работу. Два года опыта вполне достаточно, можно уже пробовать что-то ещё. А то просидишь, как тут справедливо заметили, 20 лет, копаясь в легаси.

Помимо прочего, я ещё и глубоко убеждён, что современный фронтенд -- это рак, убивающий веб. Так что, если ты в своей карьере постараешься не лезть во фронтенд, то я ещё и лично буду тебе благодарен.
>> No.49745 Ответ
Привет всем.
Как учить бутстрап? Как бы, понимаю, что это огромная база стилей, но как их учить, чттб использовать?
Не писать же в тегах классы наугад, авось и угалаю, стили применятся.

Мне погромист с работы говорит:"Вот напиши блог на чем можешь, и бутспрап накати". Написать написал, собственные стили накатил, даже кусок js'а взял, чтоб можно было картинки открывать, а вот бутстрап как и куда? И зачем?
>> No.49746 Ответ
Файл: Screenshot_174.png
Png, 122.58 KB, 2508×1253 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Screenshot_174.png
>>49745
Чем документация бутстрапа не подходит? Что плохого в практических занятиях в своем локальном бложеке?
https://getbootstrap.com/docs/4.0/examples/
>> No.49747 Ответ
>>49745
Для меня было огромным открытием, что есть всякие дизайнерские программы, которые позволяют хуярить бутстрап.
https://www.youtube.com/watch?v=sPxk704W4ZU
>> No.49798 Ответ
Файл: layout-responsive.png
Png, 695.44 KB, 720×483 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
layout-responsive.png
Могу ли я сделать подобную сетку на бутстрапе? Могу сделать на чистом CSS, но хочется адаптивности... Подозреваю, что это можно сделать с помощью Grid, но хочется именно на бутстрапе. Помогите, пожалуйста

https://codepen.io/Ridd/pen/ZEQRXXZ вот такой код пока что конкретно этого фрагмента


No.48984 Ответ [Открыть тред]
Файл: omega.png
Png, 7.18 KB, 400×400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
omega.png
Привет. Это тред для пиара pfpmd: http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/
pfpmd - это тесно сплетенные в одно целое анонимный чат и текстовые борды. Тематика: computer science, математика, программирование, технологии, криптоанархизм, софт и т.п.

pfpmd существует с 2015 года. Изначально он был попыткой воскресить один ресурс, который назывался лолкс, но теперь это в прошлом. Населен небольшим количеством людей и имеет низкую активность, что и хотелось бы изменить. Из-за того, что pfpmd это tor hidden service, периодически туда заходят люди ищущие цп, гуро и т.п., но, ничего не найдя, быстро уходят. pfpmd не модерируется, бан невозможен, как и цензура. Логотипом pfpmd является символ Ω, в честь Chaitin omega number https://en.wikipedia.org/wiki/Chaitin%27s_constant

Фичи pfpmd:
-Борды не фиксированы, в форме создания поста можно указать имя новой борды и она будет создана динамически в момент создания поста.
-Можно менять описание борды, это может делать любой пользователь сколько угодно раз;
-На странице с чатом по дефолту отображаются сообщение не только из чата, но и со всех борд. Это поведение можно изменить в настройках.
-На станице чана отображаются треды со всех борд (у нас это было еще до нульчана). Но можно отобразить только треды какой-то одной борды, просто перейдя по ссылке этой борды.
-Картинки отображатся с некоторых ресурсов, например, imgur, twitter. Также показываются превьюшки видео с youtube и некоторых имиджборд. Список будет пополняться в будущем.
Привет. Это тред для пиара pfpmd: http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/
pfpmd - это тесно сплетенные в одно целое анонимный чат и текстовые борды. Тематика: computer science, математика, программирование, технологии, криптоанархизм, софт и т.п.

pfpmd существует с 2015 года. Изначально он был попыткой воскресить один ресурс, который назывался лолкс, но теперь это в прошлом. Населен небольшим количеством людей и имеет низкую активность, что и хотелось бы изменить. Из-за того, что pfpmd это tor hidden service, периодически туда заходят люди ищущие цп, гуро и т.п., но, ничего не найдя, быстро уходят. pfpmd не модерируется, бан невозможен, как и цензура. Логотипом pfpmd является символ Ω, в честь Chaitin omega number https://en.wikipedia.org/wiki/Chaitin%27s_constant

Фичи pfpmd:
-Борды не фиксированы, в форме создания поста можно указать имя новой борды и она будет создана динамически в момент создания поста.
-Можно менять описание борды, это может делать любой пользователь сколько угодно раз;
-На странице с чатом по дефолту отображаются сообщение не только из чата, но и со всех борд. Это поведение можно изменить в настройках.
-На станице чана отображаются треды со всех борд (у нас это было еще до нульчана). Но можно отобразить только треды какой-то одной борды, просто перейдя по ссылке этой борды.
-Картинки отображатся с некоторых ресурсов, например, imgur, twitter. Также показываются превьюшки видео с youtube и некоторых имиджборд. Список будет пополняться в будущем.
-Текстовое поле ввода чата поддерживает подобие командной строки. Есть команды для создания тредов, ответа в тред, изменения описания борды.
-Можно скрыть отображение всех сообщений с кириллицей.
-Поддерживается форматирование блоков кода. Подсветка синтаксиса реализована через highlight.js и выключена по дефолту, но ее можно влючить в настройках.
-Поддерживается форматирование математических формул через KaTeX. Но эта фича тоже выключена по дефолту.
-Есть страница с логами всех сообщений (включая борды) в обратном по дате порядке.

Основные принципы:
-Максимальное облегчение сервера, весь (кроме статического) html генерится на клиенте, сервер отправляет клиенту только сырые данные;
-Минимум зависимостей у клиентского кода. Всё, за исключение подсветки синтаксиса и математических формул, реализовано на голом javascript, без использования всяких jquery, vue.js и прочих фреймворков. Исходный код KaTeX и highlightjs подгружается только когда фичи включены в настройках.
-Отсутствие цензуры.

Планы развития:
-Децентрализация на уровне серверов. Будет множество инстансов pfpmd, которые синхронизируются между собой. Юзер сможет подключаться к любому из серверов, сможет поднять свой.
-Сделать клиентское приложение с консольным интерфейсом и веб интерфейсом. Чтобы юзер мог без запуска торбраузера заходить на pfpmd или вообще без гуйни, а также чтобы иметь свою локальную базу сообщений, по которой можно делать поиск и что угодно.
-Допилить дизайн.

Следующим постом будет FAQ. Но, в любом случае, я буду отвечать в тред.
Сообщение слишком длинное. Полная версия. 1 post is omitted. Развернуть тред.
>> No.48986 Ответ
Файл: 1464748799129979470_1.gif
Gif, 8812.08 KB, 291×291 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1464748799129979470_1.gif
> pfpmd - это тесно сплетенные в одно целое анонимный чат и текстовые борды
> У меня нет на это времени
>> No.48988 Ответ
>>48986
Есть логи и тред со всеми сообщениями из чата. Можно раз в день на все ответить и дальше заниматься своими делами, например.
>> No.49023 Ответ
Оп, тематика заинтересовала, но я нихуя не понял. Есть гайд для самых маленьких? Захожу, вижу бессмысленный чат,вижу кучу по-видимому зашифрованной херни в разделе Chan. Как всем этим пользоваться?
>> No.49024 Ответ
>>49023
> Есть гайд для самых маленьких?
В chat - собственно чат. Если перейти в chan, то там будут треды со всех разделов с тремя последними ответами. У каждого треда там есть ссылка в борду, если по ней перейти, то отобразятся только треды этой борды. Ну, короче, очевидно же.
В чате отображаются сообщения со всех разделов. Когда тред не из чата, справа будет, например, /pr/123/ на зеленом фоне, т.е. имя борды и номер треда этого сообщения. Также это ссылки в эту борду и тред соответственно. Алсо, можно применить фильтр для скрытия сообщений не из чата.
У чата есть своя борда, которая называется /cht/ и в ней единственный тред, где отображаются сообщения всего чата (только чата).
Есть еще логи вообще всех сообщений, которые отображаются в обратном порядке, по 200 сообщений на страницу. Там тоже можно применить фильтр и оставить только сообщения чата.
Также есть фильтр кириллицы и много других фич, смотри ОП. И будет еще больше фильтров в будущем.
> Захожу, вижу бессмысленный чат
Побочный эффект отсутствия модерации и цензуры.
> вижу кучу по-видимому зашифрованной херни в разделе Chan
Это недавний вайп, мусор из /dev/random.
> Как всем этим пользоваться?
Просто пишешь, что тебя интересует на обозначенную тематику. В борды, в чат, куда угодно.
>> No.49650 Ответ
Новый интерфейс: http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/beta/

Клиент с Command-line interface и Web UI: http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/static/pfpmd-client_latest.7z

Децентрализация, переписывание бэкенда - в процессе.
>> No.49651 Ответ
А исходники движка будут выложены?
>> No.49652 Ответ
>>49651
Исходники фронтенда в клиенте (ссылка выше).
Бэкенд сейчас переписывается с учётом децентрализации и его исходники будут выложены.
>> No.49788 Ответ
Прототип децентрализации запилен. Теперь есть второй сервер, который синхронизируется с первым. Первый и второй сервер соответственно:
http://pfpmd7dd5ijt4add2sfi4djsaij4u3ebvnwvyvuj6aeipe2f5llptkid.onion/
http://t77eir7lxmbawattqzj4aaeuilqevgm62g5g5tzvgmxrlp66bnhcxqad.onion/
Бэкенд переписан на rust. Айдишники стали uuid. Фронтенды адаптированы. Теперь есть swagger документация. Выложены все исходники включая бэкенд. Также каждый день делается автоматический бэкап базы, который можно скачать.
Новый интерфейс (который раньше был /beta/) теперь стал основным, старый тоже доступен - /ui2/. Также в новом интерфейсе появилась компактная тема.
>> No.49796 Ответ
А зачем для тор браузера сделал? Лучше переделай в обычный .com формат
>> No.49797 Ответ
>>49796
> А зачем для тор браузера сделал?
Не для тор браузера, а для tor. Почитай, что такое onion service. Onion service - это не обязательно веб сервер, это может быть что угодно, хоть xmpp, email, ssh. В этом случае, как ты понимаешь, браузер вообще не используется. И даже если это веб сервер, то может использоваться любой браузер, просто ты прописываешь в этом браузере tor socks5 proxy.
Также у pfpmd есть клиентское приложение и браузер можно не использовать. И у pfpmd есть api документация, т.е. любой может создать своё клиентское приложение.

1. Для анонимности.
2. Onion service может поднять кто угодно откуда угодно из любого места где есть выход в интернет и не прилагая больших усилий (для этого нужно добавить всего две строчки в torrc). Поэтому те, кто пожелают поднять дополнительный pfpmd сервер, смогут это легко сделать.
3. Просто идеологически нравится tor. Tor сеть - интернет здорового человека. Нравятся выбранные подходы достижения анонимности, например, трафик шифруется без использования https, а значит CA не нужны, и т.д.


No.3901 Ответ [Открыть тред]
Файл: ababas.jpg
Jpg, 70.66 KB, 317×372 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
ababas.jpg
Я тут на C программу написал, которая копирует входной поток в выходной с заменой каждой строки, состоящей из одного или нескольких пробелов, одним пробелом.
http://pastebin.com/xe3kSfyY
Как это сделать без goto ? Что можно улучшить?
336 posts are omitted, из них 75 с файлами. Развернуть тред.
>> No.49777 Ответ
>>49776
> Но, как Касперски ещё когда-то давно сказал: если вам удобно и привыкли на винде, то и сидите на ней, а не занимайтесь ерундой.
Для меня Касперски ни разу не авторитет в этом вопросе. Да и я никому ничего не навязывал, сидите где ходите. Меня спросили про рекомендации - я их дал.
> И я считаю, что рекомендация ньюфагам ставить прыщи - это сознательная диверсия с целью уменьшить себе конкуренцию на рынке труда.
Ну ок, я считаю иначе.
> Японский-то (в большинстве случаев) работает. В большинстве случаев, конечно, не из коробки (и это очень интересно, когда ты выбираешь японский язык в настройках клавиатуры, а оно по-японски не пишет, но линуксовый-вей же; кто я, чтобы судить). Проблема тут - настроить.
Ну вот я и предложил способ решения - взять какой-нибудь дистрибутив, который делают японцы для себя. В нем наверняка всё и так настроено из коробки, и ничего настраивать не требуется.
> Что выучат, если нечего?
Нет, не "нечего". Получить понимание, что есть отдельная штука "компилятор", есть отдельная штука "линкер", есть объектные файлы, есть ассемблер, есть динамические и статические либы... это по-твоему "нечего"?
> Тебе действительно нужны аргументы в пользу того, что человек севший осиливать программирование будет занят, собственно, осиливанием этого самого программирования, и у него на ближайшее время будет куча более интересных занятий, чем разгребание ключей компилятора?
>>49776
> Но, как Касперски ещё когда-то давно сказал: если вам удобно и привыкли на винде, то и сидите на ней, а не занимайтесь ерундой.
Для меня Касперски ни разу не авторитет в этом вопросе. Да и я никому ничего не навязывал, сидите где ходите. Меня спросили про рекомендации - я их дал.
> И я считаю, что рекомендация ньюфагам ставить прыщи - это сознательная диверсия с целью уменьшить себе конкуренцию на рынке труда.
Ну ок, я считаю иначе.
> Японский-то (в большинстве случаев) работает. В большинстве случаев, конечно, не из коробки (и это очень интересно, когда ты выбираешь японский язык в настройках клавиатуры, а оно по-японски не пишет, но линуксовый-вей же; кто я, чтобы судить). Проблема тут - настроить.
Ну вот я и предложил способ решения - взять какой-нибудь дистрибутив, который делают японцы для себя. В нем наверняка всё и так настроено из коробки, и ничего настраивать не требуется.
> Что выучат, если нечего?
Нет, не "нечего". Получить понимание, что есть отдельная штука "компилятор", есть отдельная штука "линкер", есть объектные файлы, есть ассемблер, есть динамические и статические либы... это по-твоему "нечего"?
> Тебе действительно нужны аргументы в пользу того, что человек севший осиливать программирование будет занят, собственно, осиливанием этого самого программирования, и у него на ближайшее время будет куча более интересных занятий, чем разгребание ключей компилятора?
Какое такое разгребание ключей? Блин... это разгребание на базовом уровне, достаточном чтобы получить из стольки-то .c файлов столько-то .o файлов, а потом это слинковать в исполняемый, оно от силы займет 30 минут. Только что ты говорил, что там учить нечего, а теперь говоришь про какое-то разгребание, что вообще происходит?
> И опять у тебя некорректные сравнения, потому что хаскиль - это другой язык, а я тебе про самый обычный переход между реализациями одного языка в рамках даже одного стандарта.
Т.е. хочешь сказать, что чтоб выучить флаги для MSVC после флагов от GCC, надо сильно много потратить времени?
> Возможно, я слишком остро на это реагирую, но уж больно часто я слышу вот эту комбинацию из "ставь линукс, учи компиляцию, иде - магия, поэтому нинужно", будто им на ютубе какой-то модный блоггер рассказал, и все полезли повторять.
Ну это мне не модный блоггер рассказал, а мой личный опыт.
Сообщение слишком длинное. Полная версия.
>> No.49778 Ответ
>>49771
> А вот что там искать в объектных файлах?
Ну например объектные файлы выставляют наружу некоторые символы. Скажем, static функции наружу не выставляются, а не-static - выставляются, и их можно вызывать из другого .c файла. Вот эти базовые вещи желательно понимать.

Отдельная тема - динамически загружаемые библиотеки (.dll, .so, .dylib) - как их подгружать, как такие-то функции из них вызвать и так далее.
> > понимание вещей "что такое системный вызов?", "что такое ABI, API?",
> Я надеюсь именно понимание, а не спрос за все подводные?
Ну все подводные обычно знать не надо, то только в узкой области может быть нужно, если разрабатываешь ядро или компилятор какой-нибудь. А общее понимание - да, полезно.
>> No.49780 Ответ
>>49777
> Получить понимание, что есть отдельная штука "компилятор", есть отдельная штука "линкер", есть объектные файлы, есть ассемблер, есть динамические и статические либы... это по-твоему "нечего"?
Ну... да? То есть, ты только что всё описал. Но и это не нужно, потому что вот взял я сишный интерпретатор, и теперь у меня есть только магический бинарь и исходник. И ни компилятора, ни линкера, ни объектных файлов - ничего.
> это разгребание на базовом уровне, достаточном чтобы получить из стольки-то .c файлов столько-то .o файлов, а потом это слинковать в исполняемый, оно от силы займет 30 минут
Это, конечно же, неправда. Человек либо нагуглит, либо в книжке у него будет написана строка, которую нужно скопировать в консольку, и он её просто будет копировать. Займёт это гораздо меньше 30 минут. А вот если человек в начале обучения пойдёт читать гццшный мануал, или сделает --help=???, то уйдёт гораздо больше 30 минут, и пользы от этого особой не будет.
> Т.е. хочешь сказать, что чтоб выучить флаги для MSVC после флагов от GCC, надо сильно много потратить времени?
Я хочу сказать, что при переходе с компилятора на интерпретатор знания о компиляции и её флагах не перенесутся.

>>49777
> Получить понимание, что есть отдельная штука "компилятор", есть отдельная штука "линкер", есть объектные файлы, есть ассемблер, есть динамические и статические либы... это по-твоему "нечего"?
Ну... да? То есть, ты только что всё описал. Но и это не нужно, потому что вот взял я сишный интерпретатор, и теперь у меня есть только магический бинарь и исходник. И ни компилятора, ни линкера, ни объектных файлов - ничего.
> это разгребание на базовом уровне, достаточном чтобы получить из стольки-то .c файлов столько-то .o файлов, а потом это слинковать в исполняемый, оно от силы займет 30 минут
Это, конечно же, неправда. Человек либо нагуглит, либо в книжке у него будет написана строка, которую нужно скопировать в консольку, и он её просто будет копировать. Займёт это гораздо меньше 30 минут. А вот если человек в начале обучения пойдёт читать гццшный мануал, или сделает --help=???, то уйдёт гораздо больше 30 минут, и пользы от этого особой не будет.
> Т.е. хочешь сказать, что чтоб выучить флаги для MSVC после флагов от GCC, надо сильно много потратить времени?
Я хочу сказать, что при переходе с компилятора на интерпретатор знания о компиляции и её флагах не перенесутся.

Если так уж хочется, чтобы "учили компиляцию", то советуйте, хотя бы, учить именно компиляцию. То есть, парсинг, деревья, оптимизации, генерацию кода и всё такое. В этом, хотя бы, смысл есть. Сейчас это выглядит так, будто первокурсникам рассказали, что вот эта вот кнопочка в ихневой иде, она не магия, а она компилирует (без подробностей), линкует (без подробностей, а то и не объясняя, что такое "линкует"), и только потом запускает. И они такие: "ох, нифига себе! вот оно как! пойду пацанам в интернете покажу, какой я теперь умный". Это примерно, как слово "алгоритм", или (как у тебя в ссылке выше (бай зе вей, там такая хрень написана, что я бы порекомендовал тебе пересмотреть своих авторитетов)) "алгебра".
Сообщение слишком длинное. Полная версия.
>> No.49781 Ответ
>>49780
> Но и это не нужно, потому что вот взял я сишный интерпретатор, и теперь у меня есть только магический бинарь и исходник.
А зачем ты его взял? Сишным интерпретаторм мне ни разу пользоваться не доводилось, зачем ты его в пример приводишь? Что ты этим хочешь показать? В 99.999% случаев язык Си "используют" через компилятор, а не через некий интерпретатор. И как ты бинарь из интерпретатора получать собрался?
> Сейчас это выглядит так, будто первокурсникам рассказали, что вот эта вот кнопочка в ихневой иде, она не магия, а она компилирует (без подробностей), линкует (без подробностей, а то и не объясняя, что такое "линкует"), и только потом запускает.
Почему "без подробностей"? Без каких подробностей? Почему ты мне приписываешь то, что я не писал?

Мне вот например доводилось писать и править сборочные скрипты, которые вообще ни от какой IDE не зависят, и там, да, нужно понимать про объектные файлы, которые потом таким-то образом линкуются. Это по-твоему бесполезные знания?
>> No.49782 Ответ
>>49780
> Я хочу сказать, что при переходе с компилятора на интерпретатор знания о компиляции и её флагах не перенесутся.
Ну почему же не перенесутся. Часть перенесется. Флаги в компиляторе MSVC и в GCC будут другими, а общие принципы там те же. Объектные файлы, экспортируемые символы, линковка, бла-бла-бла...
>> No.49785 Ответ
>>49782
Если уж говорить про интерпретатор Си или крестов, давайте рассмотрим реальный пример: https://root.cern.ch/cling
> Cling Metaprocessor provides convenient and easy to use interface for changing the interpreter's internal state or for executing handy commands. Cling provides the following metaprocessor commands:

> syntax: .(command), where command is:

> .x filename.cxx - loads filename and calls void filename() if defined
> .L library | filename.cxx - loads library or filename.cxx
> .printAST - shows the abstract syntax tree after each processed entity
> .I path - adds an include path
Там оказывается можно загружать какие-то библиотеки. Выходит, знания о разделяемых библиотеках оказываются не бесполезными?

Если поподробнее изучить возможности этого интерпретатора, окажется что он (сюрприз!) не совсем соответствует стандартному языку C или C++ - уже хотя бы потому, что в стандартах C и C++ режим интерпретатора как таковой вообще не описывается. Об этом можно почитать в статье https://www.researchgate.net/publication/256082045_Cling_-_The_New_Interactive_Interpreter_for_ROOT_6

Так что это уже получается немного другой язык, не C и не C++. Кстати, есть еще Jancy такой Си-подобный скриптовый язык https://habr.com/ru/company/tibbo/blog/258427/
>> No.49786 Ответ
Когда чуть более года назад я начал учить Сишечку по K&R, то поставил в Окна какую-то аскетичную ИДЕ с названием наподобии Сстудио или такое да-да, я просто не помню названия, зато помню, что её индусы очень сильно любят. Ну поставил, шоб всё как у людей, а кроме редактора мне ничего и не нужно было. Однако в ней был местный отладчик! Нет, не тот что gdb с тысячами имён и оболочек, а местный самородок, создателями же спизженный/написанный, судя по его работе. Дичь начиналась уже с попыток отладить керниганоричивские removeTab() - оно просто не выдерживало подобное и часто зависал, проёбывал брейкпоинты, выдавал SegFault на пустом месте итд. Забив на такой отладчик, я ещё какое-то время дебажил принтами, но код со временем становился всё более сложным и сложным, и я понял, что без gdb мне дальше не уйти.
Узнал, что в юниксах все мне нужные вещи работают из коробки и переполз на убунту. Ну и пока норм, так как для меня все принципиальные различия между виндой и юниксом заключаются в различиях между ABI и API, а в дебри пока не лез. Всё таки соглашусь с мнением: если Си - значит нужон Unix.
Алсо какие флажки в gcc могут понадобиться ньюфагу кроме "--help -Ox -S -c -E -gx -fno/f-<something>"?
>> No.49787 Ответ
>>49786
> Алсо какие флажки в gcc могут понадобиться ньюфагу кроме "--help -Ox -S -c -E -gx -fno/f-<something>"?
Например, компилировать с варнингами -Wall -Wextra - https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html. Опции из категории -fsanitize не будут лишними, описаны тут https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html

Ну и еще полезно в каком-нибудь Valgrind прогонять, но это уже не имеет отношения к компилятору
>> No.49792 Ответ
>>49786
> какие флажки в gcc могут понадобиться ньюфагу
CFLAGS = \
-std=c89 -pedantic -Wall -Wextra -Wformat=2 \
-O3 -march=native -mtune=native -Wl,--build-id=none -s

-std=c89 -pedantic — строгая проверка соответствия кода стандарту ANSI C89. Он самый старый и самый переносимый между остальными компиляторами. Не обязательно.
-Wall -Wextra — куда ж без них. Для пущего эффекта можно добавить -Werror, любой ворнинг будет останавливать компиляцию; на любителя.
-Wformat=2 — проверка форматирования в printf. Нельзя вызывать printf(str) — если в str вдруг окажется строка с лишними спецификаторами (пользователь ввёл, например), будет undefined behaviour. Правильно: printf("%s", str) или fputs(str, stdout).
Это что касается статических проверок.
-O3 -march=native -mtune=native — оптимизации, о которых я пока мало знаю. Максимальная (-O3), для вот этого процессора (-mtune=native), и вот этой архитектуры (-march=native), на которых компилируется код.
-Wl,--build-id=none -s — флаги для линкера. Немножко уменьшает вес бинария и количество лишних секций, чтобы не мозолили глаза в дампах.
Остаются ещё две лишние, для их удаления придётся дополнительно вызвать
strip -R .note -R .comment $(BIN)

>>49786
> какие флажки в gcc могут понадобиться ньюфагу
CFLAGS = \
-std=c89 -pedantic -Wall -Wextra -Wformat=2 \
-O3 -march=native -mtune=native -Wl,--build-id=none -s

-std=c89 -pedantic — строгая проверка соответствия кода стандарту ANSI C89. Он самый старый и самый переносимый между остальными компиляторами. Не обязательно.
-Wall -Wextra — куда ж без них. Для пущего эффекта можно добавить -Werror, любой ворнинг будет останавливать компиляцию; на любителя.
-Wformat=2 — проверка форматирования в printf. Нельзя вызывать printf(str) — если в str вдруг окажется строка с лишними спецификаторами (пользователь ввёл, например), будет undefined behaviour. Правильно: printf("%s", str) или fputs(str, stdout).
Это что касается статических проверок.
-O3 -march=native -mtune=native — оптимизации, о которых я пока мало знаю. Максимальная (-O3), для вот этого процессора (-mtune=native), и вот этой архитектуры (-march=native), на которых компилируется код.
-Wl,--build-id=none -s — флаги для линкера. Немножко уменьшает вес бинария и количество лишних секций, чтобы не мозолили глаза в дампах.
Остаются ещё две лишние, для их удаления придётся дополнительно вызвать
strip -R .note -R .comment $(BIN)

Рекомендую освоить make всем, кто ещё не. Очень экономит время.
Приложенный файл компилирует все исходники, каждый в свой бинарий. Можно вызывать make <имя>, чтобы скомпилять только один. Дополнение имён по табу должно срабатывать.
Для мелких учебных программок, состоящих из одного файла — в самый раз.
Сообщение слишком длинное. Полная версия.
>> No.49795 Ответ
Файл: Makefile.gz
Archive, 0.24 KB, 0 файлов - Нажмите на картинку, чтобы скачать файл
view
Makefile.gz
>>49792
> Приложенный файл
Забыл. Раз уж забыл, заодно поясню.
MAKEFLAGS = -rR
Отмена встроенных переменных и правил. Плюс к переносимости и скорости выполнения.

$(V).SILENT:
По умолчанию компиляция происходит молча. Выполняемая команда выводится, только если передать
$ make V=1


No.49719 Ответ [Открыть тред]
Файл: cirno-s-computer-science-class-sicp.jpg
Jpg, 174.71 KB, 1355×882 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
cirno-s-computer-science-class-sicp.jpg
Здесь я буду собирать и делиться интересными и очень блогпостами, записями с конферений и публикациями.

Проблема восьми королев, решенная с помощью типов. Вариант с шаблонами на плюсах прилагается в комментариях:
https://aphyr.com/posts/342-typing-the-technical-interview

Использование экзистенциальных типов и CPS для написания безопасных zero-cost API:
https://dl.acm.org/doi/10.1145/3299711.3242755

SPJ о линейных типах. В теории, мы должны их увидеть в 9-ой версии GHC.
https://www.youtube.com/watch?v=t0mhvd3-60Y
9 posts are omitted, из них 1 с файлами. Развернуть тред.
>> No.49758 Ответ
Два дня ушло на настраивание локальной документации, IDE и воспроизводимых билдов.
Но в итоге все получилось! Надеюсь больше такой боли я не встречу.

Итоговый файлик:
https://paste.debian.net/1148207

Об архитектуре нынешнего IDE:
https://www.youtube.com/watch?v=cijsaeWNf2E
>> No.49762 Ответ
А что-нибудь про суперкомпиляцию в Хаскеле есть?
>> No.49763 Ответ
>>49762
Прости! Сам ничего не читал, поэтому и делиться не буду. Как мне известно, это просто набор переписывающих правил, позволющих вычислить статическую часть кода и специализировать динамическую во время компиляции. Что-то подобное на constexpr, только более изощренное.
>> No.49764 Ответ
>> No.49765 Ответ
Файл: 1496459160698.jpg
Jpg, 95.33 KB, 517×753 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1496459160698.jpg
>>49764
Пожалуйста, с небольшими комментариями в следующий раз! Голые ссылки надо открывать и вспоминать!
>> No.49766 Ответ
>>49763
> Как мне известно, это просто набор переписывающих правил, позволющих вычислить статическую часть кода и специализировать динамическую во время компиляции.
Да, но это не всё. Есть прокции Футамуры https://habr.com/ru/post/47418/
Теоретически, можно сделать такую штуку - мы пишем некий интерпретатор некоего языка X на каком-то очень умном ЯП, потом особым образом специализируя код интерптетатора, можно синтезировать компилятор из интерпретатора. И если потом код на языке X отдать этому синтезированному компилятору, он может скомпилировать это в полноценный бинарник, притом самого интерпретатора там не будет вшито в рантайм, это может быть прямая компиляция в инструкции целевого процессора.

Вот на что-то такое было бы интересно посмотреть.
>> No.49769 Ответ
>>49766
Погугли книгу "Understanding and Writing Compilers" (Richard Bornat).
>> No.49779 Ответ
>>49763
https://keldysh.ru/papers/2018/prep2018_111.pdf - вот обзорная статья по суперкомпиляции
> Делается попытка «выполнить» программу не для конкретных входныхданных, а «символически» в «общем» виде, то есть для произвольныхвходных данных. Ну или для всех входных данных, удовлетворяющих каким-то ограничениям. Для этого строится «дерево конфигураций» (=«дерево процессов»). В узлах дерева находятся «конфигурации», кото-рые описывают множества состояний вычислительного процесса. По-нятно, что эти множества должны быть описаны на каком-то языке,и могут быть не вполне точными («прихватывать» что-то лишнее). А стрелки, связывающие узлы дерева, соответствуют каким-то действиями проверкам, происходящим при исполнении программы.

https://sergei-romanenko.github.io/scp-notes-ru/ и вот еще.

Я считаю что это достаточно интересное направление
>> No.49783 Ответ
Файл: porovozik.png
Png, 136.47 KB, 662×556 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
porovozik.png
>>49779
> Я считаю что это достаточно интересное направление
А я считаю, что моск аффтара достаточно суперкомпилирован токсоплазмой.
Когда на вашем супер-языке найдут хотя бы элемент в массиве, тогда и приходи!!!!!111ы
>> No.49784 Ответ
>>49779
Спасибо, я посмотрю обязательно!

В последнее время читаю страшные вещи вот тут:
http://comonad.com/reader/

Практически ничего непонятно, и нагнетает сильно. Формального математического образования очень не хватает.


No.42650 Ответ [Открыть тред]
Файл: hellodob.pas.png
Png, 17.52 KB, 646×428 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
hellodob.pas.png
В этом треде мы будем помогать новичкам с решением элементарных задач.
Говорить о том, что %названиеЯзыка1% лучше %названиеЯзыка2%, мы здесь не будем, для этого есть другие треды.
Предыдущий: >>28288
268 posts are omitted, из них 39 с файлами. Развернуть тред.
>> No.49742 Ответ
>> No.49744 Ответ
>> No.49751 Ответ
>>49737
Meanwhile, твой стиль кода - говно.
За using namespace std; надо пиздить.
int n; нужно инициализировать, даже если следующей строкой ты его считываешь.
За имена переменных n и v нужно пиздить еще сильнее. Это только в циклах можно i, j, k.
Вместо char и int нужно использовать типы фиксированной длины из cstdint.
За auto вместо примитивных типов нужно что? Правильно, пиздить. auto вообще следует использовать по-минимуму, только для итераторов или сложных шаблонов.
И про кавычки не забывать.
>> No.49752 Ответ
>>49751
> auto
И чем тебе auto не нравится? Использовал бы его всегда и везде, если бы писал на плюсах - чем больше работы я могу скинуть на компилятор, тем лучше.
>> No.49753 Ответ
>>49751
> За using namespace std; надо пиздить.
Один дурачок не понял, теперь другие за ним повторяют.
https://github.com/lefticus/cppbestpractices/blob/master/03-Style.md#never-use-using-namespace-in-a-header-file
Ещё почитай Страуструповый C++ Programming Principles and Practice, начиная на странице 296 в главе 8.7.1 как раз про это. То же самое и в приложении А.15 на странице 1127.
> int n; нужно инициализировать, даже если следующей строкой ты его считываешь.
а) Это записываешь, а не считываешь.
б) Тебя же за это любая крестомакака говном польёт.
> Вместо char и int нужно использовать типы фиксированной длины из cstdint.
Лолнет. Типы фиксированной длины нужно использовать только если длина тебе важна. Здесь она не важна.
> За auto вместо примитивных типов нужно что?
Хвалить?
https://herbsutter.com/2013/06/13/gotw-93-solution-auto-variables-part-2/
>> No.49754 Ответ
>>49752
> Использовал бы его всегда и везде, если бы писал на плюсах - чем больше работы я могу скинуть на компилятор, тем лучше.
Это говнокод. Нужна строгая типизация, вот это все - а с auto ты можешь скомпилить ошибочный код, не подозревая об этом. Это что-то вроде задания констант define'ами.
>>49753
> Ещё почитай Страуструповый C++ Programming Principles and Practice, начиная на странице 296 в главе 8.7.1 как раз про это. То же самое и в приложении А.15 на странице 1127.
Можно дрочить на мертвого страуса, а можно на Дейкстру с "goto нинужен". А можно вместо этого сообразовываться с реальностью - и заранее защитить код от подключения говнолиб с идентичными стандартным именами.
> а) Это записываешь, а не считываешь.
> б) Тебя же за это любая крестомакака говном польёт.
Ну вот макака и поливает. А сениоры знают, что потом какой-нибудь джун будет допиливать этот код, вставит еще строку между объявлением переменной и считыванием, и словит УБ.
> Лолнет. Типы фиксированной длины нужно использовать только если длина тебе важна. Здесь она не важна.
Макакам не важна, а сениорам нужна всегда. Потому что рекомпильнут твой говнокод более модным компилятором или на другой платформе - и выебут тебя скопом.
> Хвалить?
Нет, ебать. И статеечка говно.
А) В итераторах можно использовать auto, но исключительно из-за крайней убогости STL API. К слову, там говнокод, потому что надо использовать cbegin
B) Несет какую-то хуету. Макака узнала про слово explicit и удивляется.
>>49752
> Использовал бы его всегда и везде, если бы писал на плюсах - чем больше работы я могу скинуть на компилятор, тем лучше.
Это говнокод. Нужна строгая типизация, вот это все - а с auto ты можешь скомпилить ошибочный код, не подозревая об этом. Это что-то вроде задания констант define'ами.
>>49753
> Ещё почитай Страуструповый C++ Programming Principles and Practice, начиная на странице 296 в главе 8.7.1 как раз про это. То же самое и в приложении А.15 на странице 1127.
Можно дрочить на мертвого страуса, а можно на Дейкстру с "goto нинужен". А можно вместо этого сообразовываться с реальностью - и заранее защитить код от подключения говнолиб с идентичными стандартным именами.
> а) Это записываешь, а не считываешь.
> б) Тебя же за это любая крестомакака говном польёт.
Ну вот макака и поливает. А сениоры знают, что потом какой-нибудь джун будет допиливать этот код, вставит еще строку между объявлением переменной и считыванием, и словит УБ.
> Лолнет. Типы фиксированной длины нужно использовать только если длина тебе важна. Здесь она не важна.
Макакам не важна, а сениорам нужна всегда. Потому что рекомпильнут твой говнокод более модным компилятором или на другой платформе - и выебут тебя скопом.
> Хвалить?
Нет, ебать. И статеечка говно.
А) В итераторах можно использовать auto, но исключительно из-за крайней убогости STL API. К слову, там говнокод, потому что надо использовать cbegin
B) Несет какую-то хуету. Макака узнала про слово explicit и удивляется.
C) Макака опять несет хуету. Похоже, макака еще не знает про разницу между конструктором и оператором = , а также тем, что компилятор не даст породить временную переменную в этом идиоматичном случае.
D) Оставлять сигнатуру функции на auto - это такой способ отстрелить себе все ноги вместе с яйцами, что просто пиздец. И заменять тип аргумента auto - еще больший пиздец криворукой макаки. Еще бы функции через define задать предложил, индус хуев бомбит от такого рукожопия. Уж если хочется метапрограммировать, бери шаблоны: уж сколько там проверок в компайл-тайм можно навертеть. Нет, бля, хочу индусить говно, не хочу size_t и шаблоны, нас в Бомбейском Заборостроительном на вечерних курсах крестов за 21 день этому не учили.
Сообщение слишком длинное. Полная версия.
>> No.49755 Ответ
>>49754
> Нужна строгая типизация
Во-первых, если нужна строгая типизация, то не пиши на крестах. Во-вторых, auto никакой типизации не отменяет, и без него ты напорешься на implicit conversion и отстрелишь себе ногу с гораздо большей вероятностью. О чём там Саттер выше и пишет.
> заранее защитить код от подключения говнолиб с идентичными стандартным именами.
Что? Я тебе вообще-то про то, что только дурачки обрезают фразу "никогда не используй using namespace в заголовочниках" до "никогда не используй using namespace". И ты тоже дурачок, потому что не думая за ними повторяешь.
> вставит еще строку между объявлением переменной и считыванием
Ну не пиши на крестах. Там и не такое можно сделать. Или не нанимай идиотов. Проблема или надумана или в тебе, потому что ты не обучил своего джуна объявлять переменные по месту использования.
Вот серьёзно, гайдланы про "никогда не инициализируй то, что будет сразу же перезаписано" разбросаны по всему интернету, поэтому мне хотелось бы получить от тебя ссылок туда, где с каким-нибудь обоснованием рекомендуется обратное.
> рекомпильнут твой говнокод более модным компилятором или на другой платформе
И что произойдёт? Ничего? Всё продолжит работать?
Оно сломается только если ты не использовал типы фиксированной длины там, где они были нужны, о чём я, собственно, и писал.
> статеечка говно
Ну да, откуда ж Саттеру-то знать, как так кресты эти работают. То ли дело какой-то случайный анонимный хрен с горы.
> Оставлять сигнатуру функции на auto - это такой способ отстрелить себе все ноги вместе с яйцами, что просто пиздец.
>>49754
> Нужна строгая типизация
Во-первых, если нужна строгая типизация, то не пиши на крестах. Во-вторых, auto никакой типизации не отменяет, и без него ты напорешься на implicit conversion и отстрелишь себе ногу с гораздо большей вероятностью. О чём там Саттер выше и пишет.
> заранее защитить код от подключения говнолиб с идентичными стандартным именами.
Что? Я тебе вообще-то про то, что только дурачки обрезают фразу "никогда не используй using namespace в заголовочниках" до "никогда не используй using namespace". И ты тоже дурачок, потому что не думая за ними повторяешь.
> вставит еще строку между объявлением переменной и считыванием
Ну не пиши на крестах. Там и не такое можно сделать. Или не нанимай идиотов. Проблема или надумана или в тебе, потому что ты не обучил своего джуна объявлять переменные по месту использования.
Вот серьёзно, гайдланы про "никогда не инициализируй то, что будет сразу же перезаписано" разбросаны по всему интернету, поэтому мне хотелось бы получить от тебя ссылок туда, где с каким-нибудь обоснованием рекомендуется обратное.
> рекомпильнут твой говнокод более модным компилятором или на другой платформе
И что произойдёт? Ничего? Всё продолжит работать?
Оно сломается только если ты не использовал типы фиксированной длины там, где они были нужны, о чём я, собственно, и писал.
> статеечка говно
Ну да, откуда ж Саттеру-то знать, как так кресты эти работают. То ли дело какой-то случайный анонимный хрен с горы.
> Оставлять сигнатуру функции на auto - это такой способ отстрелить себе все ноги вместе с яйцами, что просто пиздец.
Хотелось бы пример. Не говоря уже о том, что в крестах ты физически не можешь написать тип для лямбды, поэтому ты обязан использовать auto (там про это, кстати, написано).

У тебя типичный синдром ньюфага. Это когда ты недавно что-то там выучил и спешишь со всеми поделиться новостью, а всё, что не соответствует твоему видению мира, которое ты почерпнул из одной-двух энтрилевельных книжек (и хорошо, если книжек), в тебе вызывает агрессию, потому что, ну как же так-то, ты же лучше знаешь, как оно там на самом деле, а тут какой-то "дурак" старается покрасоваться и "обсирается" в процессе.
Сообщение слишком длинное. Полная версия.
>> No.49756 Ответ
>>49755
> Во-первых, если нужна строгая типизация, то не пиши на крестах.
Ты еще скажи, что в крестах не строгая типизация. Не учитывая шаблоны, конечно.
> Во-вторых, auto никакой типизации не отменяет, и без него ты напорешься на implicit conversion и отстрелишь себе ногу с гораздо большей вероятностью.
Поэтому все конструкторы делают explicit, если implicit не нужен. С auto отстрелить ногу проще, потому что выведенный тип может оказаться не тем, который ожидал программист - надеюсь, ты не будешь с этим спорить?
> Что? Я тебе вообще-то про то, что только дурачки обрезают фразу "никогда не используй using namespace в заголовочниках" до "никогда не используй using namespace". И ты тоже дурачок, потому что не думая за ними повторяешь.
Я как раз думаю, и даже встречал дурачков-джунов, которые ломали код из-за этого using. Внезапно, в .cpp ты пишешь имплементацию, где можешь вызвать не ту функцию, которую ожидаешь - потому что дурачок и влепил using.
> Ну не пиши на крестах. Там и не такое можно сделать. Или не нанимай идиотов. Проблема или надумана или в тебе, потому что ты не обучил своего джуна объявлять переменные по месту использования.
Ну в общем когда выйдешь из вузика и начнешь работать на реальных проектах, поймешь. Правда же, зачем писать строгий код? Лучше хуяк-хуяк и в продакшн, а потом будешь объяснять клиентам, что твой босс нанял не тех джунов, лол.
>>49755
> Во-первых, если нужна строгая типизация, то не пиши на крестах.
Ты еще скажи, что в крестах не строгая типизация. Не учитывая шаблоны, конечно.
> Во-вторых, auto никакой типизации не отменяет, и без него ты напорешься на implicit conversion и отстрелишь себе ногу с гораздо большей вероятностью.
Поэтому все конструкторы делают explicit, если implicit не нужен. С auto отстрелить ногу проще, потому что выведенный тип может оказаться не тем, который ожидал программист - надеюсь, ты не будешь с этим спорить?
> Что? Я тебе вообще-то про то, что только дурачки обрезают фразу "никогда не используй using namespace в заголовочниках" до "никогда не используй using namespace". И ты тоже дурачок, потому что не думая за ними повторяешь.
Я как раз думаю, и даже встречал дурачков-джунов, которые ломали код из-за этого using. Внезапно, в .cpp ты пишешь имплементацию, где можешь вызвать не ту функцию, которую ожидаешь - потому что дурачок и влепил using.
> Ну не пиши на крестах. Там и не такое можно сделать. Или не нанимай идиотов. Проблема или надумана или в тебе, потому что ты не обучил своего джуна объявлять переменные по месту использования.
Ну в общем когда выйдешь из вузика и начнешь работать на реальных проектах, поймешь. Правда же, зачем писать строгий код? Лучше хуяк-хуяк и в продакшн, а потом будешь объяснять клиентам, что твой босс нанял не тех джунов, лол.
> Вот серьёзно, гайдланы про "никогда не инициализируй то, что будет сразу же перезаписано" разбросаны по всему интернету, поэтому мне хотелось бы получить от тебя ссылок туда, где с каким-нибудь обоснованием рекомендуется обратное.
Ну если ты читаешь каких дрочащих на auto индусов, то ты еще и не такие гайдлайны найдешь.
Начни с C++ Gotchas Дьюхерста. Для тебя даже погуглил, это совет 48.
> И что произойдёт? Ничего? Всё продолжит работать?
Действительно, ничего ведь не произойдет, если твой int imdumb = 0xFFFFF скомпилируют на платформе с 16-битным int.
Скажи, ты индус?
> Ну да, откуда ж Саттеру-то знать, как так кресты эти работают. То ли дело какой-то случайный анонимный хрен с горы.
Ну кто же виноват, если этот Саттер с горы не знает азы серьезной разработки.
> Хотелось бы пример
Да хотя бы проебывание const и последующий вызов неконстантного метода аргумента в коде функции. Был бы не индус, словил бы компайл эррор.
> Не говоря уже о том, что в крестах ты физически не можешь написать тип для лямбды, поэтому ты обязан использовать auto
Бля, индус, иди на cppreference, открывай std:: function и смотри примеры, там и лямбда есть.
> У тебя типичный синдром ньюфага.
Как скажешь, лол. Пойду расскажу коллегам, как нынче макаки пишут с auto, неинициализированными переменными и прочими int.
Сообщение слишком длинное. Полная версия.
>> No.49757 Ответ
>>49756
> Ты еще скажи, что в крестах не строгая типизация.
Нет четкого определения строгой типизации. Однако есть определение статической типизации, и, да, плюсы статически типизированы. Однако использование auto никак ее не нарушает. Ты просто просишь у компилятора выбрать тип самому. И, если вдруг что-то пойдет не так, например ты будешь использовать переменную как int, а потом попытаешься ее использовать как объект (мы пока не обсуждаем тысячи способов неявных преобразований), то ты получишь ошибку компиляции.
>> No.49759 Ответ
>>49756
> Ты еще скажи, что в крестах не строгая типизация
С narrowing implicit conversions повсюду? С возможностью проебать один сраный & и получить ситуацию, когда компилятор молча пихает объект туда, где ожидается референс? Такая-то строгость.
> выведенный тип может оказаться не тем, который ожидал программист
Ну да. Об этом Саттер и пишет. Вот вместо for ( int x = arraylength; ... делаешь ты for ( auto x = arraylength; ... и получаешь не тот тип, который ожидал.
> Внезапно, в .cpp ты пишешь имплементацию, где можешь вызвать не ту функцию, которую ожидаешь - потому что дурачок и влепил using.
Ну, окей, тут соглашусь. Мне, конечно тяжело представить ситуацию, в которой есть две функции с одинаковыми именами, которые принимают одинаковое количество аргументов с одинаковыми (или хотя бы совместимыми) типами и возвращают значение одного и того же типа, но что я вообще могу знать о жизни.
> Правда же, зачем писать строгий код?
И при этом ты пишешь на крестах. Ну, да, логично.
> ничего ведь не произойдет, если твой int imdumb = 0xFFFFF скомпилируют на платформе с 16-битным int
Ничего. Потому что во-первых, тут длина, очевидно важна, и во-вторых, оно не скомпилируется. Алсо, в третьих, если оно-таки скомпилируется, то это будет хорошим таким аргументом про строгую типизацию в крестах.
> Ну кто же виноват, если этот Саттер с горы не знает азы серьезной разработки.
Ну, да, Саттеры эти ваши со Страуструпами вообще ни в чём не шарят. Набрали дебилов в комитет по квотам. Вот твои мифические сеньёры, которых никто не видел - вот это да, вот это эксперты.
>>49756
> Ты еще скажи, что в крестах не строгая типизация
С narrowing implicit conversions повсюду? С возможностью проебать один сраный & и получить ситуацию, когда компилятор молча пихает объект туда, где ожидается референс? Такая-то строгость.
> выведенный тип может оказаться не тем, который ожидал программист
Ну да. Об этом Саттер и пишет. Вот вместо for ( int x = arraylength; ... делаешь ты for ( auto x = arraylength; ... и получаешь не тот тип, который ожидал.
> Внезапно, в .cpp ты пишешь имплементацию, где можешь вызвать не ту функцию, которую ожидаешь - потому что дурачок и влепил using.
Ну, окей, тут соглашусь. Мне, конечно тяжело представить ситуацию, в которой есть две функции с одинаковыми именами, которые принимают одинаковое количество аргументов с одинаковыми (или хотя бы совместимыми) типами и возвращают значение одного и того же типа, но что я вообще могу знать о жизни.
> Правда же, зачем писать строгий код?
И при этом ты пишешь на крестах. Ну, да, логично.
> ничего ведь не произойдет, если твой int imdumb = 0xFFFFF скомпилируют на платформе с 16-битным int
Ничего. Потому что во-первых, тут длина, очевидно важна, и во-вторых, оно не скомпилируется. Алсо, в третьих, если оно-таки скомпилируется, то это будет хорошим таким аргументом про строгую типизацию в крестах.
> Ну кто же виноват, если этот Саттер с горы не знает азы серьезной разработки.
Ну, да, Саттеры эти ваши со Страуструпами вообще ни в чём не шарят. Набрали дебилов в комитет по квотам. Вот твои мифические сеньёры, которых никто не видел - вот это да, вот это эксперты.
> открывай std:: function и смотри примеры, там и лямбда есть
Открываю: "Class template std::function is a general-purpose polymorphic function wrapper."
Если погуглить, то легко найти информацию, что если лямбду записать в переменную типа std::function, то случится боксинг. Теперь смотрим вот сюда https://stackoverflow.com/questions/7951377/what-is-the-type-of-lambda-when-deduced-with-auto-in-c11 и в принятом ответе видим, что "The type of a lambda expression is unspecified.". Крутим ниже, и видим цитату из стандарта "The type of the lambda-expression (which is also the type of the closure object) is a unique, unnamed non-union class type". Знаешь, что значит юник и аннеймд? Это значит, что у тебя нет никакой возможности выразить этот тип в коде.
Сообщение слишком длинное. Полная версия.


No.46029 Ответ [Открыть тред]
Файл: pylogo0.png
Png, 126.61 KB, 800×642 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
pylogo0.png
Предыдущий >>37139 ушёл в бамплимит.

Краткая справка для новичков:
Официальный сайт: http://python.org/
Документация по стандартной библиотеке и разнообразные Tips & Tricks: http://docs.python.org/
неСвежая тема для священной войны, или руководство по выбору между версиями: http://wiki.python.org/moin/Python2orPython3
Ссылка для вопящих про дикие тормоза: http://speed.pypy.org/
Python для микроконтроллеров http://micropython.org или http://www.github.com/micropython
358 posts are omitted, из них 62 с файлами. Развернуть тред.
>> No.49674 Ответ
>>49672
А кто ж тебя знает, какой пример ты поймёшь и примешь, а с чем захочешь, несмотря на задекларированное ньюфажество, поспорить.

Меня, например, дико триггернуло появление (где-то в районе версии 3.5, ЕМНИП) в синтаксисе языка операции @ (матричное умножение). Это при том, что в языке такого типа, матрица, нет. Он есть, конечно, но только в дополнительных библиотеках.

Ты только вдумайся: в синтаксис языка жёстко зашита (а по-другому в пайтоне нельзя, в нём нет возможности определять инфиксные операторы) операция, но объектов, к которым эта операция может быть применена в языке попросту нет.

Однако же, кому-то такая неконсистентность кажется абсолютно недопустимой, а кто-то её особо и не замечает.

Вообще говоря, пайтон изначально задумывался как простенький скриптовый язычок, без особых возможностей расширения. А используется сейчас как повсеместный универсальный язык для всего. В результате тем, кто его поддерживает я бы сказал "создателям", но создатель плюнул на всё и ушёл на пенсию, приходится городить в нём кучу дополнительных фич. Но поскольку, как я уже говорил, возможностей расширения языка изначально в его дизайн Гвидо не заложил, то все эти фичи часто выглядят уродливой нашлёпкой. А поскольку нашлёпок этих уже много, то язык уже и сам превращается потихоньку в одну большую уродливую нашлёпку.
>> No.49675 Ответ
>>49674
Ну я понял твой пример, и, что такое матрицы, знаю. А чем мешает эта операция? Ну есть в синтаксисе теперь "собачка", но она ведь не лает и никого не кусает, сидит себе спокойно. Или дело в том, что символ занят, когда можно было в матричной библиотеке создать хитровыдуманное слово вроде peremnozhenie_matrits?
Если написал непонятно, то прошу прощения за неровный почерк.
>> No.49676 Ответ
>>49675
А чем мешает эта операция?
Тем, что таких операций и фич больше определённого порога, после которого python из языка "простенького" и "читаемого" превращается в просто урезанный перл. Зачем урезанный перл, когда
> когда можно было в матричной библиотеке создать хитровыдуманное слово вроде peremnozhenie_matrits
Если можно функцию, лучше делать функцию.
>> No.49703 Ответ
Выручайте, доброчаньки. Можно ли на QPython и Pydroid создавать файлы в телефоне (я имею в виду f.open('path', 'w')
капча всё знает: омрачен подробно
>> No.49705 Ответ
Файл: Screenshot_2020-0...
Jpg, 67.91 KB, 720×576
edit Find source with google Find source with iqdb
Screenshot_2020-04-07-15-03-30-727_ru.iiec.pydroid.jpg
Файл: Screenshot_2020-0...
Jpg, 77.16 KB, 720×527
edit Find source with google Find source with iqdb
Screenshot_2020-04-07-15-03-53-531_ru.iiec.pydroid.jpg

>> No.49707 Ответ
>>49703
termux
>> No.49708 Ответ
Файл: Screenshot_2020-04-11-08-58-17-632_com.termux~2.jpg
Jpg, 66.72 KB, 720×369 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Screenshot_2020-04-11-08-58-17-632_com.termux~2.jpg
>> No.49709 Ответ
>>49708
termux-setup-storage должен создать ссылку в home.
>> No.49733 Ответ
>>49709
Сдаюсь. Я гуглил, я писал "termux-setup-storage" в термуксе, я... Я не знаю, что ещё делать.
>> No.49743 Ответ
>>49733
Напиши все действия и все их результаты.


No.29402 Ответ [Открыть тред]
Файл: serial_experiments_lain-14377.jpg
Jpg, 405.57 KB, 1600×1200 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
serial_experiments_lain-14377.jpg
Был удивлён, пролистав за десяток страниц, и не найдя здесь подобного трэда.
Решил начать учить язык богов. С чего начать - книги и мануалы, теория и практика (желательно на русском), в чём лучше писать (под винду и под никсы), советы, распространённые ошибки, всё сюда. Лисп-нить иди.
405 posts are omitted, из них 51 с файлами. Развернуть тред.
>> No.49656 Ответ
>>49655
А чего ты ждал? Что тебе https://ru.wikipedia.org/wiki/Лисп будут пересказывать в свободном изложении?

Хороший язык. Его основные концепции стоит изучить любому программисту или даже просто интересующемуся темой. Опытные аноны из соответствующего треда целиком поддерживают и одобряют твой интерес. Иди учи. Как появятся вопросы, приходи в соответствующий тред, опытные аноны с удовольствием ответят на них.
>> No.49657 Ответ
>>49553
> Вообще изначально байтоёб, так что хочу байтоёбский императивный, но лисп. Есть идеи?
Тебе прямая дорога в CL. Там изкоробки даже есть функция disassemble, которая тебе натурально показывает ассемблерный дамп написанных тобой или не тобой функций. Ну и целое поле для низкоуровневых оптимизаций через декларации типов.
>> No.49658 Ответ
>>49657
Да я уже более-менее определился. Вообще байтоёб не в этом смысле, а в том, чтобы разбирать двоичные файл на байтики, например. Основная масса реализаций с типами ниже строк тяжело работает, по ощущениям. Так что если кто знает как в вышеназванных реализациях работать с двоичными данными, или работал сам, можете подсказать вкратце если не лень. Ключевое слово в языке С - struct и сопутствующие функции, желательно без lisp-way и unix-way.
>> No.49660 Ответ
>>49658
https://paste.debian.net/1121242/

> Ключевое слово в языке С - struct и сопутствующие функции
На тебе три часа на несвежую голову утром, мысли вслух под guile scheme. Это можно сделать короче, красивее и так, как надо, но мне лень и чёткого понимания нет.
Сперва взгляни на let в строке 36, всё писалось с него. По крайней мере, всё без переменной c.

По поводу твоих ощущений: ну да, мне как бы тоже не очень хочется вызывать все эти bytevector-u8-ref, но один раз пришлось, если мало, то можно жить. Вообще, всё, что есть - это несколько SRFI, прямо смотришь в оглавление мануала на твою схему или на srfi.schemers.org, не забыв про (rnrs bytevectors), но ощущения, как понимаешь, не очень. Надо сокращать и устраиваться поудобней.

> lisp-way и unix-way
А это что за звери и чем они тебе не угодили? Что понимаешь под?

Что-то здешняя вакаба не понимает файлы. Говорит, exception - неизвестная кодировка. Хотя сверху она стоит.
>> No.49661 Ответ
>>49655
>>49653
Давай начнём с того, что я не могу себе представить человека, у которого лисп был первым. Кроме пользователя какой-нибудь CAD, но я с такими не общаюсь за их отсутствием.
Так что толстишь тут скорее всего ты, особенно, учитывая то, что краткая характеристика уже в треде есть и не одна.
>> No.49667 Ответ
>>49660
> unix-way lisp-way чем не угодили
Да, нужно бы расшифровать. В данном случае имел ввиду следующие проблемы:
для unix-way - сведение всего к текстовому конвееру, тоесть практически антиподход для случая обработки двоичных данных;
для lisp-way - когда вместо 1МиБ двоичных данных придётся работать с 1 миллионом точечных пар (или как они там в любой книжке по лиспу позиционируются как самый базовый тип данных).

За пример благодарю.
>> No.49668 Ответ
>>49667
> для unix-way - сведение всего к текстовому конвееру, тоесть практически антиподход для случая обработки двоичных данных;
Можно же делать текстовые конвееры с именами отдельных файлов. Это удобней для пакетной обработки, например. Нет, конечно, есть примеры, когда в пайпы долны полезть бинарные данные.

В r5rs векторы есть например. В книжках по лиспу мне не приходилось сталкиваться с совсем уж "двоичными" запакованными данными.
А ещё ко всему есть вариация этих самых списков, где снизу массивы вместо cons-ячеек. Но за это ты платишь неизменяемостью списка.
https://www.gnu.org/software/guile/docs/master/guile.html/VLists.html

Ты не доводи до абсурда же, изо всякого правила есть исключения. Просто текстовые данные проще дёргать из того же шелла, например. Работать с ними проще. И чем больше излишней бинарщины, тем труднее с ней жить. Со списками теми же работать проще, чем неоправданным образом делать ADT или векторы на каждый чих. Как-то так. Но это не значит, что всякая программа обязана быть текстовым фильтром или использовать только списки.
>> No.49669 Ответ
>>49668
Где ты увидел доведение до абсурда? Мне кажется ты проецируешь какие то свои взгляды, например если тебе проще работать с текстом, это не значит что и другим также.

А почему проще? Потому что если попытаться вчитаться в вышеприведённый пример >>49660 окажется что работать с данными таким образом - это боль. Получается что лисп в данном примере показывает себя как язык, не приспособленный для таких задач. Конечно тогда проще не натягивать сову на глобус.

> платишь неизменяемостью списка
Очередное необоснованное ограничение.
>> No.49670 Ответ
>>49669
> Где ты увидел доведение до абсурда?

>>49658
> желательно без lisp-way и unix-way
>>49667
> для unix-way - сведение всего к текстовому конвееру
> для lisp-way - когда вместо 1МиБ двоичных данных придётся работать с 1 миллионом точечных пар (или как они там в любой книжке по лиспу позиционируются как самый базовый тип данных).

Вот доведение до абсурда. У тебя в руках UNIX-подобная система есть? Ты в курсе, что у неё есть библиотеки и остальные программы, которые обрабатывают бинарные данные целиком и полностью и даже пишут в пайпы/стандартные потоки бинарщину? Даже sysvinit слушает пайп /run/initctl, забирая оттуда структуру. Если надо — давай, бери, пользуйся, никто тебе не запрещает, юниксвей — про то, что структуры и байты не надо бездумно совать везде, где придётся. Где можно обойтись текстом, вот там и обходись текстом. У меня же сложилось ощущение, что ты же думаешь, что текст надо пихать везде. Точно то же самое ты говоришь про cons-списки, считая, что тебя насильно заставляют пользоваться ими вместо векторов, особенно для целей, для которых они мало предназначены.

Я уже не говорю, что lisp-way — это оксюморон. У языка с подстраиваемыми языковыми формами никакого way практически нет. Хоть awk с шеллом впиливай прямо внутрь.

> Мне кажется ты проецируешь какие то свои взгляды, например если тебе проще работать с текстом
>>49669
> Где ты увидел доведение до абсурда?

>>49658
> желательно без lisp-way и unix-way
>>49667
> для unix-way - сведение всего к текстовому конвееру
> для lisp-way - когда вместо 1МиБ двоичных данных придётся работать с 1 миллионом точечных пар (или как они там в любой книжке по лиспу позиционируются как самый базовый тип данных).

Вот доведение до абсурда. У тебя в руках UNIX-подобная система есть? Ты в курсе, что у неё есть библиотеки и остальные программы, которые обрабатывают бинарные данные целиком и полностью и даже пишут в пайпы/стандартные потоки бинарщину? Даже sysvinit слушает пайп /run/initctl, забирая оттуда структуру. Если надо — давай, бери, пользуйся, никто тебе не запрещает, юниксвей — про то, что структуры и байты не надо бездумно совать везде, где придётся. Где можно обойтись текстом, вот там и обходись текстом. У меня же сложилось ощущение, что ты же думаешь, что текст надо пихать везде. Точно то же самое ты говоришь про cons-списки, считая, что тебя насильно заставляют пользоваться ими вместо векторов, особенно для целей, для которых они мало предназначены.

Я уже не говорю, что lisp-way — это оксюморон. У языка с подстраиваемыми языковыми формами никакого way практически нет. Хоть awk с шеллом впиливай прямо внутрь.

> Мне кажется ты проецируешь какие то свои взгляды, например если тебе проще работать с текстом
А это не мои взгляды. Это вгляды любого человека, державшего в руках шелл. *nix — это кучка мелких максимально реюзабельных утилит, склеиваемых вместе шеллом. Я этот подход считаю удобным, как и кто-то другой, вот и всё. Не хочешь скреплять шеллом — не скрепляй, никто тебе не запрещает.

> А почему проще? Потому что если попытаться вчитаться в вышеприведённый пример >>49660 окажется что работать с данными таким образом - это боль. Получается что лисп в данном примере показывает себя как язык, не приспособленный для таких задач. Конечно тогда проще не натягивать сову на глобус.

Во-первых, не лисп, а scheme. Scheme вообще не обязан тебе быть приспособлен для всего, особенно со стандартом в 50 страниц. Лисп в целом жил на лисп-машинах как единственный язык и вполне себе обрабатывал всё, что нужно, про common lisp говорить не буду. Но scheme приспособлен приспосабливаться. Я приспособил.

Ящитаю, оформить вот эти мысли из файла как модуль (или просто подключать через include/load) и использовать формы
(bstruct mystruct
(a 1)
(b 2)
(c 8 ->u64 u64->))

(with-mystruct bv
(bv.c newvalue)
(format #t ".a ~a\n.b ~a\n.c ~x\n"
(bv.a)
(bv.b)
(bv.c)))
особого труда не составит. В случае чего можно вполне себе нарисовать врапперы вокруг bytevector-<тип>-native-{ref,set}, особо много это не займёт.

> Очередное необоснованное ограничение.
Честно говоря, мне лень читать исходник и смотреть, почему там неизменяемость, хочешь обоснований — смотри сам. Векторы и так есть, а в основной массе списки обрабатываются без изменения хвоста.
Сообщение слишком длинное. Полная версия.
>> No.49726 Ответ
Файл: 15304474106560.png
Png, 14056.52 KB, 3041×4096 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
15304474106560.png
Позвольте сХОРОнить.


No.33881 Ответ [Открыть тред]
Файл: vim-shortcuts-dar...
Png, 116.56 KB, 2560×1600
edit Find source with google Find source with iqdb
vim-shortcuts-dark_2560x1600.png
Файл: vim_cheat_sheet_f...
Png, 1791.61 KB, 3301×2550
edit Find source with google Find source with iqdb
vim_cheat_sheet_for_programmers_print.png

Обещал про Vim написать. Ну вот собсна и написал.

Итак. Для начала поговорим о том, кому он не нужен. Ненужен он в самую первую очередь тем, кто не умеет в слепую десятипальцевую печать. Для таких людей vim буде каторгой. Посему данной категории людей советую либо забить на это дело, либо начать развивать слепую печать. Благо навык полезный. Можно гуглить например очевидную stamina и т.д. Вторая категория людей, которым не нужен сабж, это фанаты emacs по очевидным причинам. Кроме того не очень желательно изучать для виндопользователей. Ибо может быть черевато переходом на linux в конечном итоге, лол.

Ну а теперь собсна о vim и о том, что он из себя представляет. Если кратко, то это текстовый редактор, оптимизированный под слепую печать. Т.е. в нём можно делать всё не снимая рук с клавиатуры. Ну а ещё он мощный, расширяемый, бла-бла-бла.

Ок. Где взять? Для линупсов достаточно установить из пакетного менеджера очевидный пакет под именем vim sudo apt-install vim для бубунты, а остальные и сами разберутся. Для винды можно пользовать ссылочку ftp://ftp.vim.org/pub/vim/pc/gvim74.exe

Скачали, запустили. Ну и? Где вся няшнота то?
Объясняю только самые основы:
  • выход без сохранения точнее закрытие файла при помощи :q!
  • есть несколько режимов работы. Основные: "нормальный", редактирование, командный, выделение.
  • передвижение по файлу при помощи клавиш h j k l это соответственно влево, вниз, вверх, вправо.
  • для собсна редактирования можно нажать например i
Далее находим vimtutor и проходим его. Он ответит на остальные вопросы. Для линупсов vimtutor ru в консольке. Для винды должно быть гхдетоу в районе меню пуск. Хотя шут его знает. Потом изучаем и печатаем на бумажку или ставим в качестве обойки воон те картинки, что в комплекте с постом идут.
Обещал про Vim написать. Ну вот собсна и написал.

Итак. Для начала поговорим о том, кому он не нужен. Ненужен он в самую первую очередь тем, кто не умеет в слепую десятипальцевую печать. Для таких людей vim буде каторгой. Посему данной категории людей советую либо забить на это дело, либо начать развивать слепую печать. Благо навык полезный. Можно гуглить например очевидную stamina и т.д. Вторая категория людей, которым не нужен сабж, это фанаты emacs по очевидным причинам. Кроме того не очень желательно изучать для виндопользователей. Ибо может быть черевато переходом на linux в конечном итоге, лол.

Ну а теперь собсна о vim и о том, что он из себя представляет. Если кратко, то это текстовый редактор, оптимизированный под слепую печать. Т.е. в нём можно делать всё не снимая рук с клавиатуры. Ну а ещё он мощный, расширяемый, бла-бла-бла.

Ок. Где взять? Для линупсов достаточно установить из пакетного менеджера очевидный пакет под именем vim sudo apt-install vim для бубунты, а остальные и сами разберутся. Для винды можно пользовать ссылочку ftp://ftp.vim.org/pub/vim/pc/gvim74.exe

Скачали, запустили. Ну и? Где вся няшнота то?
Объясняю только самые основы:
  • выход без сохранения точнее закрытие файла при помощи :q!
  • есть несколько режимов работы. Основные: "нормальный", редактирование, командный, выделение.
  • передвижение по файлу при помощи клавиш h j k l это соответственно влево, вниз, вверх, вправо.
  • для собсна редактирования можно нажать например i
Далее находим vimtutor и проходим его. Он ответит на остальные вопросы. Для линупсов vimtutor ru в консольке. Для винды должно быть гхдетоу в районе меню пуск. Хотя шут его знает. Потом изучаем и печатаем на бумажку или ставим в качестве обойки воон те картинки, что в комплекте с постом идут.

Это было сверхкраткое введение. А теперь мы будем обмазыватся плугинками и всячески допиливать редактор до удобоваримого состояния. Для начала открываем .vimrc или _vimrc (для венды). Это конфигурационный файлег. Да, да, господа виндузятники. Ни каких окошечек с настроечками. Только хардкор.
По поводу настроечек рекомендую загуглить самомуа лучше почитать маны. Примеры: http://dimio.org/cgi-bin/bps/hlghtsrc/sourcehl.cgi?d=conf&s=vimrc&l=vim http://pastebin.com/jy4a3pE5 http://pastebin.com/paPWQ5fE http://pastebin.com/V3GdD38s Тысячи их.

Однако мы переходим к самому интересному. Доведём до ума сабж при помощи плугинок. Ибо без них vim уныл. Для начала нужно установить пакетный менеджер. Рекомендую либо Vundle либо NeoBundle. Думаю сами сможете загуглить их. К ним идут инструкции. Тож сами читнёте.

Самые полезниньки плагины можно найти там http://vim.wikia.com/wiki/Use_Vim_like_an_IDE

Отдельно упомяну следующие:
NERDTree добавляет древо файлов.
bufexplorer даёт удобную навигацию по буферам.
Вот кстати о буферах, окнах и табах в виме. Вот открыли вы один файлег, а потом, не закрывая первый, открыли второй. Можно потом переключаться между этими файлами. А можно их в одном окне одновременно открыть. Подробнее об том читнуть в справке или например в http://habrahabr.ru/post/28572/ http://habrahabr.ru/post/102373/
Vim Powerline раскрашивает статусную строку.
ColorSamplerPack набор тем оформления.

Вообще лучше самому подбирать плугинки. Их дофига, но не каждому все из них нужны. Да и изучать каждую плугинку тож время отнимает.

Можно ещё читнуть напоследок http://habrahabr.ru/post/176187/

Ну пока всё. Спрашивайте свои ответы. Ато может я чего забыл ненароком.
Сообщение слишком длинное. Полная версия. 229 posts are omitted, из них 42 с файлами. Развернуть тред.
>> No.49082 Ответ
>>48854
> Я, когда вимом пользовался, вообще выработал у себя привычку любой законченный кусок ввода на автомате завершать нажатием на Esc (конечно, Esc надо перебиндить поближе для этого).
Я хоть и пока не очень много пользовался вимом, но уже выработал привычку долбить постоянно долбить по эскейпу. Хорошо, что он обычно ничего не делает, но вот если перебиндить его на капслок... печатать не в виме станет невозможно.
>> No.49106 Ответ
>>49060
Я поставил vim-плагин для intellij idea и совмещаю vim с ide.

Ну и еще добавил разные плагины в сам vim, что он тоже стал похож на ide, так что разные небольшие проекты можно править прямо в vim-е. Когда бывает нужно автодополнение, переключаюсь на intellij idea.

Лично мне удобны в vim-е:
- перемещение по тексту
- поиск
- повторение последней операции через нажатие на "."
- сложные замены с регулярными выражениями

Мне стало легче с vim-ом после того, как я узнал, что можно выделять несколько строк, нажав "Shift-V".
Кастомизацию vim-а через добавление плагинов облегчает Vundle.vim.

Я создал git-репозиторий, в котором храню свой .vimrc-файл.
>> No.49116 Ответ
> Вики на wikia.com
смеюсь
>> No.49186 Ответ
Файл: 1521405363079.jpg
Jpg, 98.85 KB, 710×540 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1521405363079.jpg
>>40393
Впридачу к этому есть ещё zathura — для чтения pdf/djvu.
>> No.49684 Ответ
Я наконец задолбался невозможностью нормально набирать русский текст и решил это починить. Для будущих поколений оставлю здесь. На линуксах должно работать.
" https://github.com/ierton/xkb-switch
let current_layout='us'
autocmd InsertEnter * let a = system('xkb-switch -s '. current_layout)
autocmd InsertLeave * let current_layout = system('xkb-switch') | silent! !xkb-switch -s us
autocmd CmdlineEnter /,\? let a = system('xkb-switch -s '. current_layout)
autocmd CmdlineLeave /,\? let current_layout = system('xkb-switch') | silent! !xkb-switch -s us
Вот это в .vimrc
Предварительно, надо скачать и установить прогу по ссылке. Без неё никак, я пробовал.
Остаётся проблема с r f F t T, может ещё каких-то подобных, которые я не знаю. Надо как-то их переназначить, но я в этих мапах ремапах не разбираюсь и пока лень начинать. Если кто-то сделает, буду рад увидеть.
Ещё есть проблема с тем, что переключение раскладки занимает где-то пол секунды. В результате, можно что-то в это время нажать, а оно не зачитается. Но, как я понимаю, это не пофиксить, т.к. это проблема где-то в недрах программы, отвечающей за раскладки.
>> No.49699 Ответ
>>49186
Вопрос был скорее направлен для сборки своей собственной IDE. А так использование hjkl в целом очень консистентно:
* ranger - файловый менеджер
* sxiv - просмотр картинок
* xmonad - тайловый менеджер окошек
* fish - alt+v или alt+e перебрасывают в vim режим
* vimvixen - живой аддон для лисы, к сожалению не работает во время загрузки страничек
* mpv - стандартно не умеет, но hjkl очень просто настраиваются

Для полного счастья не хватает только htop настроенного из коробки.
>> No.49702 Ответ
>>49699
> Вопрос был скорее направлен для сборки своей собственной IDE.
UNIX is an IDE. All of it.
>> No.49711 Ответ
>>49702
Но UNIX давно мертв!
>> No.49713 Ответ
>>49711
Коммерческие юниксы — нет, как ни странно. Свободные, GNU и BSD, юникс-подобные системы — тоже нет.
«Давно» ещё не наступило.
>> No.49714 Ответ
>>49713
> BSD
Только они и остались. Во всех остальных подобных системах оставили от UNIX'а только ужасную конвенцию для имен, слишком сложную реализацию TCP/IP стека, недружелюбный UI и устаревшую еще в 60-ых иерархическую структуру файлов.
Может быть гугл со своим микроядром заставят "Давно" наступить, чтобы и от этих всех бед избавиться. А может быть еще откуда-нибудь появится немонолитная система, желательно написанная не на Си.


No.32929 Ответ [Открыть тред]
Файл: ss-(2013-07-05-at...
Png, 5.64 KB, 456×59
edit Find source with google Find source with iqdb
ss-(2013-07-05-at-05.37.07).png
Файл: 2000_-_asctrix178...
Gif, 22.68 KB, 640×480
edit Find source with google Find source with iqdb
2000_-_asctrix1780.gif
Файл: qoob_demoscene_mo...
Jpg, 51.51 KB, 500×453
edit Find source with google Find source with iqdb
qoob_demoscene_modeller_02.jpg

Привет, анон.
Совсем недавно я был причислен к слоупокам я узнал о существовании такой вещи как демосцена. Это дало мне толчок для изучения ассемблера. В данный момент я умею только вызывать некоторые системные функции Win32 на FASM, то есть совсем ничего не умею.
Итак, анон, мне нужны понятные уроки для работы с ассемблером, а лучше всего, с графикой на ассемблере, желательно, чтобы они были датированы нашим тысячелетием. Приветствуются советы и напутствия мудрого анона. Может быть стоит заняться чем-нибудь более полезным? Уверен, я не дойду до стадии, когда смогу писать завораживающие интро размером 64Кб, но в любом случае знания не должны пропасть даром.
Подари мне мечту, доброчан.mp3
147 posts are omitted, из них 14 с файлами. Развернуть тред.
>> No.49687 Ответ
Инвайт-линк в чат крэклаба (исследование и взлом программ):
https://t.me/joinchat/K9QvRBMc0dN9d_pjKQ1KFw
>> No.49691 Ответ
Файл: Touhou.full.2000847.jpg
Jpg, 1698.33 KB, 1514×1556 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Touhou.full.2000847.jpg
>>43017
> > или же приведения в негодность аппаратных комплексов компьютера.
Интересно, многа надо думать, чтобы прийти к такому успеху?
>> No.49692 Ответ
Совсем прижал долбанный аутизм, и вот я взялся переписать на асме некоторую часть сишных библиотек. Просто-напросто через хидерсы подключается объектный код, скомпилированный НАСМом.
Но уже при попытке реализовать форматированный принт столкнулся с проблемой вывода банальной строки. В отладчике дело доходит до sys_write, но в консольке - ничаво.
Напомню, что сама функция написана в асме и без сомнений верно, её вызов происходит в сишном мэйне. Дескриптор стдаут - правильный.
>> No.49693 Ответ
>>49691
> Интересно, многа надо думать, чтобы прийти к такому успеху?
Вряд ли, учитывая что это часто происходит само по себе, например из-за криворуких юзеров, перепрошивающих биос видеокарты и материнки
>> No.49698 Ответ
Файл: 75eaec03aa73353bef4944eb17a7edf5-imagepng.png
Png, 570.55 KB, 700×980 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
75eaec03aa73353bef4944eb17a7edf5-imagepng.png
>>49692
> форматированный принт
О-хо, это же сложно же.
И надо же, я не так давно тем же занимался, когда увидел, сколько запутанного непонятного кода в glibc. Только попроще — сравнение строк, поиск подстроки, вот такое, из <string.h>. И немного иначе: ассемблерные функции хранятся в исходниках, компиляция статическая.
> В отладчике дело доходит до sys_write, но в консольке - ничаво.
Сверься с ABI. Для Linux x86-64 надо так:
RAX — номер сисколла;
RDI, RSI, RDX, R10, R8, R9 — аргументы.
Или покажи код.
>> No.49700 Ответ
>>49698
> О-хо, это же сложно же.

Сначала реализация элементарных вывода строки. Далее, простейший парсинг на дескрипторы.
Ну и сам вывод - можно в консоль, диск или буффер. по сути, должен получится sprintf
> И надо же, я не так давно тем же занимался, когда увидел, сколько запутанного непонятного кода в glibc.
Пока не лез в те края, чтобы самому велосипеды придумывать.

> Сверься с ABI. Для Linux x86-64 надо так:
> RAX — номер сисколла;
> RDI, RSI, RDX, R10, R8, R9 — аргументы.
Здесь всё верно, адрес строки в rdi (а пока только он и нужен).
Перед int80h: в a - 4, в b - 1, в c - адрес, d - заранее вычисленная длинна с нулём. Но... увы. Если же вызвать мой велосипед из ассемблерного "мэйна", то всё замечательно. Ума не приложу, как так.
>> No.49701 Ответ
>>49700
> Здесь всё верно, адрес строки в rdi (а пока только он и нужен).
> Перед int80h: в a - 4, в b - 1, в c - адрес, d - заранее вычисленная длинна с нулём.
Да, вроде бы всё правильно. Только если у тебя 32-битная система или компилируешь с флагом -m32.
> заранее вычисленная длина с нулём
Она должна быть без нуля. scasb в этом поможет.
> Далее, простейший парсинг на дескрипторы.
Спецификаторы.

В качестве памятки:
https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux
И ещё:
https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
>> No.49706 Ответ
>>49701
> movq $1, %rax ; use the write syscall
> movq $1, %rdi ; write to stdout
> movq $msg, %rsi ; use string "Hello World"
> movq $12, %rdx ; write 12 characters
> syscall ; make syscall

Забавно, что натыкался на это всё, когда гуглил, но видимо пребывал в полной уверенности, что интерфейсы не отличаются, потому и просмотрел. Разумеется, всё заработало.

> Спецификаторы.
Май бэд.
>> No.49710 Ответ
>>49692-кун узнал, что существуют целые машинные инструкции по строкам. Так что планы по реализации своей стдио.х откладываются до полного ознакомления с оными. Мимо дела - почти полностью переписал string.h. Тут не было никаких проблем.
Не очень понял, как и главное куда записывать отформатированную копию буффера. Первый вариант - буфферизированный вывод (по 4КБ к примеру), но я боюсь, что спецификаторы могут лежать прямо на их границе. Второй вариант - запись в стэк по sp, но в виду очевидных особенностей писать придётся с конца, что разумеется усложняет парсинг (либо вообще делает его невозможным). Третий вариант - в кучу с динамическим наращиванием, но здесь страшно заебать ОС с brk() , если вдруг кто-то захочет Войну и Мир вывести.
Алсо тоже посмотрел glibc, в частности принтф; пока доходил до корневой функции (vbprintf вроде), понял что видел как минимум четыре исходника за время путешествия. Особо не вникал, но судя по всему на асме написаны только системные вызовы. Всё остальное - исключительно Си.

И ещё посоветуйте пожалуйста чтиво про эксплойты, вирусы, резиденты итд. под винду/линукс. Находил много чего подобного, но всё увы под реальную адресацию.
>> No.49712 Ответ
Файл: yande.re-486709-dress-hiten-hitenkei-see_through.jpg
Jpg, 2526.64 KB, 2916×3500 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
yande.re-486709-dress-hiten-hitenkei-see_through.jpg
>>49710
> Не очень понял, как и главное куда записывать отформатированную копию буффера.
Уже отформатированную — то есть, когда спецификаторы заменены, чем надо? Можно выводить, как есть, кусками, прямо по дескриптору. Без промежуточных буферов в программе — потому что у ОС уже есть свои.

> Алсо тоже посмотрел glibc
Там очень и очень запутанно. Советую musl, эта либа проще (не такая блотварная).

> почти полностью переписал string.h
> Тут не было никаких проблем.
Круто же. Залей код, если не стесняешься.


No.43511 Ответ [Открыть тред]
Файл: 599716131.png
Png, 77.78 KB, 317×372 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
599716131.png
Предыдущий тред: >>39226
411 posts are omitted, из них 36 с файлами. Развернуть тред.
>> No.49493 Ответ
>>49492
Алсо. Тут были упоминания макбуков. А вот по иронии Докер известен как раз тем, что на Маке он херово работает! У меня коллега из-за этого даже перешёл с Мака на Убунту, так как в тиме юзали Докер. Вот так вот.
>> No.49494 Ответ
>>49492
> Это справедливый комментарий, но он даже ещё больше оправдивает применение докера... Он только помогает облегчить страдания с 2-3 менеджерами.
Вместо того, чтобы убрать помойку, вы её поддерживаете. Когда-нибудь помойка съест вас.
> Но Докер то не виноват в 2-3 менеджерах.
Как бы сказать, косвенно виноват. Микросервисная архитектура откуда протекла? Оттуда. Оттуда же и потекло всё это.

> Отдельный зверь и админ -- это же одно и то же.
Не одно и то же, отдельному зверю вменяют ещё и кодинг (считай, написание подпорок и костылей) в обязанности, обзывая девопсом.

> Да по-любому там что-то будет. Не Докер, так Ansible или Chef. Или Cobler. Или Teraform. А если не будет, то как после смерти сервера его возвратить обратно, что всё было точно так же? Или сделать второй такой же. Сервера "снежинки" -- это хорошо, что ли?
Может и не быть. Это всё привычки. Честно говоря, все эти баззворды мне не приходилось использовать, но я подозреваю, что это какие-нибудь переусложнённые декларативные вещи, где шаг вправо/влево карается расстрелом. Можешь меня поправить.
> А если не будет, то как после смерти сервера его возвратить обратно, что всё было точно так же?
Самое простое — держать бэкапы. Второй точно такой же можно взять и развернуть из бэкапа, настроив по минимуму. Можно держать у себя список пакетов и/или базовый образ системы и развёртывать по необходимости. Почему для этого нужно держать какой-нибудь баззворд, я понять не могу.

> Но вот удобно зато, что ставить на ком ничего не надо.
>>49492
> Это справедливый комментарий, но он даже ещё больше оправдивает применение докера... Он только помогает облегчить страдания с 2-3 менеджерами.
Вместо того, чтобы убрать помойку, вы её поддерживаете. Когда-нибудь помойка съест вас.
> Но Докер то не виноват в 2-3 менеджерах.
Как бы сказать, косвенно виноват. Микросервисная архитектура откуда протекла? Оттуда. Оттуда же и потекло всё это.

> Отдельный зверь и админ -- это же одно и то же.
Не одно и то же, отдельному зверю вменяют ещё и кодинг (считай, написание подпорок и костылей) в обязанности, обзывая девопсом.

> Да по-любому там что-то будет. Не Докер, так Ansible или Chef. Или Cobler. Или Teraform. А если не будет, то как после смерти сервера его возвратить обратно, что всё было точно так же? Или сделать второй такой же. Сервера "снежинки" -- это хорошо, что ли?
Может и не быть. Это всё привычки. Честно говоря, все эти баззворды мне не приходилось использовать, но я подозреваю, что это какие-нибудь переусложнённые декларативные вещи, где шаг вправо/влево карается расстрелом. Можешь меня поправить.
> А если не будет, то как после смерти сервера его возвратить обратно, что всё было точно так же?
Самое простое — держать бэкапы. Второй точно такой же можно взять и развернуть из бэкапа, настроив по минимуму. Можно держать у себя список пакетов и/или базовый образ системы и развёртывать по необходимости. Почему для этого нужно держать какой-нибудь баззворд, я понять не могу.

> Но вот удобно зато, что ставить на ком ничего не надо.
Удобство — это когда забиваешь канал, твои данные тебе не принадлежат, а ко всему прочему надо платить? Странные у вас представления об удобстве.
> Но мне кажется, что здесь в засилии веб-приложений в чём-то сама винда виновата. На неё сложно поставить какой-нибудь мусор так, чтобы не сломалось всё к херам из-за малварей и прочего.
Вы поменяли одну малварь на другую. Мой плеер вполне умеет и с ютуба, и много откуда и брать видео, и конвертировать. VLC называется. Слышали?
> убить комп потенциально
Вы так говорите, будто кто-то об этом задумывается. Если кто-то и задумывается о не том экзешнике, этот человек полезет искать программы из проверенных мест. Про безопасность и вебаппы вам же расскажет любой пользователь NoScript или хотя бы зашедший на panopticlick, не говоря про обладателей старых версий IE.
> Я пошёл в веб-кодеры изначально потому, что вакансий было много, деньги хорошие, а в десктопных приложениях рынок потеснее.
Теперь вы поддерживаете то, что вам не нравится самому, судя по последнему абзацу.

> Вот на php было удобно, так как он на каждый чих запускается и умирает.
Я сомневаюсь, что это во всех случаях. Не пользовался ни нодой, ни PHP.
> Но с другой стороны все субд, редисы и прочие менеджеры всё равно проще поднять и юзать из докера.
Получается, для этого докер не нужен, потому что есть пакетный менеджер. Или свой инстанс на отдельном хосте, который тем более не надо ставить много раз.
Вы так и не сказали про немутабельное окружение, обычно ведь с докером правят код и в целом образ, не пользуясь тем же REPL и не тыкая в инстанс. Получается, ваш скриптовый язык взял и по мановению волшебной палочки превратился в компилируемый. Мне даже кажется, что какую-нибудь софтину на плюсах пересобирать с make на случай факапа быстрее, чем обкатывать ваши скрипты в контейнере.

> обновлять надо
Забьют.
> на деве, стейджинг, прод
Я не знаю, чем тут поможет докер. Я даже не знаю, зачем, если ты хочешь заморозить образ, нужен именно докер, а не чрут, если уж надо стрелять из пушки по воробьям.
> не хотят обеспечивать
Вы же перекатились на ноду, вот вам и совместимость с беганьем по самым хайповым библиотекам. Неужели в этом море нет людей, держащих стабильный API?
> Вообще не очень понял аргумент про помойку, если честно.
Этот аргумент был раньше и давно, >>49291 просто им кричит. Две-три СУБД, менеджера, whatever — не помойка?

> Не используешь чудеса статико-лингвистического анализа кода. Он может быстро находить какие-то проблемы и двигаться по коду. Найдёт, где переменная не определена и т.п. Я очень люблю свою IDE и знаю много фич и хоткеев из неё.
Мой редактор умеет двигаться по коду, сбоку прикручен линтер, со временем ставший не очень-то и нужным. Жрёт меньше типичной IDE на Java и работает одинаково хорошо что на пеке, что на мобильнике, что на распберри. Может жить как в гуях, так и в консоли, фич в нём мне всех не осилить, так как их много и он относительно легко скриптуется, хоткеи особо не тружусь запоминать, так как редактор их мне подсказывает, если я взгляну куда положено. Прямо сейчас пишу в нём этот текст. ЧЯДНТ?

> Я не запускаю IDE и Докер под Распберри и не предлагаю никому. Но на девелоперской машине, где ты пишешь код, должно быть полно оперативы. Это хорошо для продуктивности. Пусть на целевой платформе будет мало памяти. Пусть на твоей машине, где ты кодишь, её будет много.
Это хорошо только для запила жирных вещей, которые не запустить ни на мобильнике, ни на распберри. Если ты зажрался, то вместо того, чтобы думать об эффективности, ты заставишь всех остальных покупать по десять планок памяти, что я и вижу в твоих словах.

> Да. Там тоже не стоит докер запускать. Но он же больше для девелоперской машины и для серверов. А ты когда-нибудь запускал docker-compose up у себя на мобиле? Я надеюсь, что -- нет.
Девелоперы бывают разными. Кто-то вполне себе уживался с ноутбуком с двумя-четырьмя гигабайтами, уехав далеко от дома. Без докера, как ты понимаешь. И с жирным браузером, хоть как-то, но уживался. У кого-то может и не быть денег на зион с двенадцатью гигами у себя дома, как и на макбук.
У меня на мобиле есть чрут-окружение. Вполне себе кусочек докера.
> запускал
Прикинь, нет. И где-либо ещё тоже не запускал.

> А так они будут куче админов платить. Дешевле не будет. На зарплаты сотрудникам денег куда больше уходит, чем на какие-то там AWSы. Ты свою зарплату на число коллег умножь. И про ПФР с НДФЛ не запудь. Огого! Когда узнаешь, что такое ПФР, уже оператива вообще больше никогда в голову не придёт.
Я не понимаю, чем куча админов, девопсов и AWS лучше кучи админов, честно говоря.

> Да, в том числе. Соболезную, но я мало что могу сделать.
Поэтому ты будешь сам лепить SPA за SPA. Наверно.

> А вот что вы хотите? Вот я блять открыл hh.ru. Почему в вакансиях на Java и C# требования выше в разу, а зарплата меньше на 30%? Джавист должен выучить все паттерны и иметь опыт и вышку. Плюсовец должен знать матан, иметь степень, опыта лет 20. И вакансий одна-два. А на фронтов и нодовцев тысячи вакансий, баснословные зарплаты в сотни рубасов в месяц. Лишь бы докер знали с кубами.
Ты открыл hh.ru. Честно говоря, баснословные зарплаты в разных местах разные.

> Я за полгода разочаровался в докере. А за 5 лет в индустрии вообще разочаровался в программировании и во всей индустрии. Программы пытаются управлять пользователями, а не пользователи программами. Все делают говно за минимально время по секундомеру. Всем похуй на UX, безопасность, бекапы, HA. Я ни в одном проекте не отношусь к целевой аудитории, ведь всё делается для сферических идиотов, которые рулят и разруливают. Кодеры сознательно наёбывают заказчиков по срокам. Вообще блять одна из самых богопротивных профессий.

Тут мне нечего сказать. Ты выбрал как раз клёпку SaaSS, ты её и получил. Вот и всё. Можно сделоть тред отвратительного ойти или перекатиться в тред поиска альтернатив. Тебя вон докер поддостал, судя по
> Вообще стал меньше любить Докер сразу же.
А меня докер пока не коснулся. Коснётся — напишу сюда простыню бугурта про то, как одни люди решили заменить пакетный менеджер докером потому, что его пиарят все вокруг. И так далее.
Сообщение слишком длинное. Полная версия.
>> No.49495 Ответ
>>49493
У меня в голове живёт штамп тусовки хипстеров-яблочников, плевавших на стабильность, жрущих то, у чего больше лайков и имеющих обширный js-бэкграунд. Пока что он вполне себе подтверждался, из тех людей, что я знаю IRL, за докер и перекрывающиеся в тусовке технологии топят в основном яблочники. Костыли для всего этого пишут, естественно, не они. Your mileage may vary.

Штамп прорисован вот в этих постах и очень хорошо:
>>49301
>>49291
>> No.49496 Ответ
Сап. Есть замечательный плеер mpv и, к сожалению, менее замечательное андроид приложение https://github.com/mpv-android/mpv-android, которое строится на libmpv. Мне бы очень хотелось его переписать с использованием всех самых новых технологий, но для этого нужно сделать андроид либу с использованием С++ и JNI. Если кого-то заинтересует создание такой либы - распишу подробнее,
>> No.49497 Ответ
>>49496
А можно старых? Ну, для совместимости.
>> No.49523 Ответ
>>49494
> Не одно и то же, отдельному зверю вменяют ещё и кодинг (считай, написание подпорок и костылей) в обязанности, обзывая девопсом.
Но девопс -- это и есть админ. И админы и без этого могут кодить.

> Самое простое — держать бэкапы.
А как так делать бекапы, чтобы их сразу же можно было развернуть в один клик на машине с потенциально другим железом? И чтоб сразу заработало.

> , настроив по минимуму.
Надо, чтоб без настройки, чтобы уже было настроено. Там могут быть конфиги нгинха и прочего на километры

> список пакетов
И конфиги. И расположения этих конфигов. И какие-то поднятые свои программы.

> Получается, для этого докер не нужен, потому что есть пакетный менеджер
На пакетном менеджере сложно поставить разные инстансы субд с разными настройками и разных версий под разные проекты, чтобы они не пересекались.
>>49494
> Не одно и то же, отдельному зверю вменяют ещё и кодинг (считай, написание подпорок и костылей) в обязанности, обзывая девопсом.
Но девопс -- это и есть админ. И админы и без этого могут кодить.

> Самое простое — держать бэкапы.
А как так делать бекапы, чтобы их сразу же можно было развернуть в один клик на машине с потенциально другим железом? И чтоб сразу заработало.

> , настроив по минимуму.
Надо, чтоб без настройки, чтобы уже было настроено. Там могут быть конфиги нгинха и прочего на километры

> список пакетов
И конфиги. И расположения этих конфигов. И какие-то поднятые свои программы.

> Получается, для этого докер не нужен, потому что есть пакетный менеджер
На пакетном менеджере сложно поставить разные инстансы субд с разными настройками и разных версий под разные проекты, чтобы они не пересекались.

> Мне даже кажется, что какую-нибудь софтину на плюсах пересобирать с make на случай факапа быстрее, чем обкатывать ваши скрипты в контейнере.
Да не

> Ты открыл hh.ru
А мне по знакомствам надо было?
Сообщение слишком длинное. Полная версия.
>> No.49531 Ответ
>>49523
> девопс
Админу кодинг на языке программирования в обязанности не вменяется. И куча остальных вещей, которые на него взгрузили, особо ценник не повысив, тоже.
> как делать бэкапы ... и чтоб сразу заработало
tar +- chroot, шеллскрипты. На вкус.
"чтоб сразу заработало" смахивает на фразу про Большую Кнопку из /s/ другой, мёртвой борды. Ясно ведь, в каком контексте её используют?
> с потенциально другим железом
bash, distro~bootstrap. Обычно такой задачи не стоит. Я не видел людей, массово выкидывавших x86 и переходящих на какой-нибудь ARM. Подозреваю, что подавляющая масса докерообразов в основном собираются под amd64 даже если это не так, конечного набора архитектур, как в дистрибутиве, нет, не было и не будет и поэтому под тезис о "потенциально другом железе" тут работает в пользу того, что и должно заниматься менеджментом пакетов — полноценных дистрибутивов с полноценными ПМ.
> в один клик
Оговорочка по Фрейду. Вы таки дома на какой системе живёте?
> Надо, чтоб без настройки, чтобы уже было настроено. Там могут быть конфиги нгинха и прочего на километры
Энджой ёр дыры в безопасности. За вас настраивать кто-то другой не будет. А если и будет, то сделает это из рук вон плохо.
> И конфиги. И расположения этих конфигов. И какие-то поднятые свои программы.
Это уже в архив или в строчку git clone $project; cd $project; make; make install в одном маленьком скрипте никак не помещается?
Если у вас с бойлерплейтом проблемы, можно использовать функции, например
>>49523
> девопс
Админу кодинг на языке программирования в обязанности не вменяется. И куча остальных вещей, которые на него взгрузили, особо ценник не повысив, тоже.
> как делать бэкапы ... и чтоб сразу заработало
tar +- chroot, шеллскрипты. На вкус.
"чтоб сразу заработало" смахивает на фразу про Большую Кнопку из /s/ другой, мёртвой борды. Ясно ведь, в каком контексте её используют?
> с потенциально другим железом
bash, distro~bootstrap. Обычно такой задачи не стоит. Я не видел людей, массово выкидывавших x86 и переходящих на какой-нибудь ARM. Подозреваю, что подавляющая масса докерообразов в основном собираются под amd64 даже если это не так, конечного набора архитектур, как в дистрибутиве, нет, не было и не будет и поэтому под тезис о "потенциально другом железе" тут работает в пользу того, что и должно заниматься менеджментом пакетов — полноценных дистрибутивов с полноценными ПМ.
> в один клик
Оговорочка по Фрейду. Вы таки дома на какой системе живёте?
> Надо, чтоб без настройки, чтобы уже было настроено. Там могут быть конфиги нгинха и прочего на километры
Энджой ёр дыры в безопасности. За вас настраивать кто-то другой не будет. А если и будет, то сделает это из рук вон плохо.
> И конфиги. И расположения этих конфигов. И какие-то поднятые свои программы.
Это уже в архив или в строчку git clone $project; cd $project; make; make install в одном маленьком скрипте никак не помещается?
Если у вас с бойлерплейтом проблемы, можно использовать функции, например
installfromgit () { git clone $1 $2; pushd $2; if [ -z "$3" ]; then make; make install; else sh -c "$3"; fi; popd};
installfromgit git://githost.example/killer-project.git killer-project "X=Y sh install.sh"
...
> На пакетном менеджере сложно поставить разные инстансы субд с разными настройками и разных версий под разные проекты, чтобы они не пересекались.
Ещё раз, как я говорил, если у вас в архитектуре по десять БД, очередей и всего остального, то эта изумительной красоты архитектура — помойка. Что самое интересное, с самого начала мою истерику по поводу сотен БД вы назвали небывальщиной, или я что-то путаю?
На Nix/Guix можно. В разные префиксы совать можно. В чруты разные, если уж стрелять из пушки по воробьям, можно. Вы же тянете весь комбайн.
> Да не
А вы дайте пруфы своего "Да не". Четыре буквы и скрипт снизу vs сборка чрут-образа, секс с неймспейсами, оверлейной ФС, костылями для того, чтобы вытащить ресурсы наружу и загадить таблицу того же фаервола плюс непрозрачный контейнер, который обязан состоять ровно из одного процесса.
> А мне по знакомствам надо было?
А вот это хз. Я не специалист по рынку. Но вакансии "всё в одном" должны наводить на мысли. Всё в традициях одного укросайтика на итальянском домене.

Что-то мы по третьему кругу всё идём.
Сообщение слишком длинное. Полная версия.
>> No.49532 Ответ
>>49531
Там после popd в функции семиколон не стоит, забыли.
>> No.49533 Ответ
>>49531
> шеллскрипты
Ну это уже почти то же самое. Но они типа должны быть удобнее.
> Я не видел людей, массово выкидывавших x86 и переходящих на какой-нибудь ARM.
Не настолько другим. Я не так выразился. Просто я к тому, что на другой материнке уже операционка может не загрузится, и её надо заново ставить.
> Оговорочка по Фрейду. Вы таки дома на какой системе живёте?
Дома на винде, на работе работаю на Линухе(дома я не работаю)
> Энджой ёр дыры в безопасности.
Ну обновлять это уже отдельно. Но вот надо просто поднять. А обновить чуть потом. Обновить всё равно легче, заново не настраивая.
> Ещё раз, как я говорил, если у вас в архитектуре по десять БД
Ну так я разрабатываю на одной машине несколько не связанных проектов. У них у каждого вся архитектура совершенно иная.
>> No.49686 Ответ
Файл: qt.png
Png, 32.51 KB, 1200×880 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
qt.png
Там это, Qt скурвился.
https://valdyas.org/fading/software/about-qt-offering-changes-2020/
https://www.qt.io/blog/qt-offering-changes-2020
Речь идет о неприятных изменениях в условиях лицензии и распространения. Сам до конца не въехал пока, поэтому не буду пытаться пересказать своими словами.


[0] [1] [2] [3] [4] [5] ... [51] [52] [53]
Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]