[ /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.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/

Ну пока всё. Спрашивайте свои ответы. Ато может я чего забыл ненароком.
Сообщение слишком длинное. Полная версия. 223 posts are omitted, из них 42 с файлами. Развернуть тред.
>> No.49056 Ответ
>>49055
> Найди лучше такой сайт/прогу, где есть специальные упражнения, заточенные именно на постепенное освоение выбранной тобой раскладки. Там они выстроены от простого к сложному
Так так там и есть.
>> No.49058 Ответ
>>49056
Не нашёл, но я не очень пристально искал. Должны быть упражнения типа того, что сначала печатаем только слова/псевдослова, состоящие из букв центрального ряда. Потом постепенно добавляем другие буквы.

Если есть, то ок.
>> No.49060 Ответ
>>33881
Анон, как эти вашим ВИМом овладеть? Туториал пройден, плагины поставлены, настроен под себя. Десятипальцевой слепой печатью владею, но печатаю всё равно медленнее чем в IDE или любом другом редакторе, особенно когда нужно заниматься рефакторингом, да и вообще по коду перемещаться.
>> No.49061 Ответ
>>49060
Ищи решения для всяких утомительных для тебя операций, сведи использование hjkl до минимума.
>> No.49062 Ответ
>>49060
Почитай вот это:
http://www.moolenaar.net/habits.html
Это оригинал. Вроде бы русский перевод тоже где-то есть.
>> 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.47927 Ответ [Открыть тред]
Файл: tumblr_oppvh6XMAq1w6k0rko1_540.gif
Gif, 231.52 KB, 540×304 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tumblr_oppvh6XMAq1w6k0rko1_540.gif
Тред помощи начинающим свой долгий и тернистый путь в дебри программирования. А также необузданных оленей, код-мартышек, выбора ЯП и иных платиновых вещей.
Но в первую очередь всё-таки помощи новичкам. Всё, чтобы зашедший сюда в первый раз мог почувствовать себя как дома.
Главное - без фанатизма.

Предыдущий: >>46762
490 posts are omitted, из них 80 с файлами. Развернуть тред.
>> No.49664 Ответ
>>49663
В догонку ещё:
https://www.json.org/json-en.html -- тут список либ, целая гора.
https://stackoverflow.com/questions/6673936/parsing-json-using-c -- релевантный вопрос на священном SO.
>> No.49665 Ответ
>>49662
> все это делается под виндой, а gcc скомунизжен из mingw
в MSYS есть свой собственный пакетный менеджер, можно посмотреть туда и найти какой-нибудь json-glib
>> No.49666 Ответ
>>49663
> Меня так искренне удивляет, что у кого-то есть проблема "просто распарсить json"
я тупой кнопкодав, имею право
> вот это пробовал? Это мой наивный поиск в гугле
мне тоже приглянулось, судя по содержимому структуры он могет в иерархию, может быть когда-ниудь после сессии займусь
>>49664
тоже нашел, но часть выглядит сложно, а json-c вообще студию требовал, jsmn тупо метки расставлял и не поддерживал иерархию и т.д.
>> No.49677 Ответ
Файл: 0ae891bc1ab73a302b5d51214e57522a.jpg
Jpg, 300.63 KB, 1448×2048 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
0ae891bc1ab73a302b5d51214e57522a.jpg
Доброкодер, помоги.

Есть некоторый обновляемый набор данных с отметками времени, которые я отображаю постранично с промежутком в 24 часа (сутки). К этим страницам надо прикрутить "индекс" с календарём доступных для отображения дней.

С какой стороны не подступлюсь, всё что-то не то. То выглядит как костыли, то топорно. Идеи такие:
- хранить отдельную табличку с днями, чтобы по ней быстро строить индекс.
- раз в сутки пересканировать весь набор и рисовать новый индекс на следующий день.
>> No.49678 Ответ
Файл: 2786.jpg
Jpg, 123.55 KB, 1200×628 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
2786.jpg
Доброкодер, помоги. Устраиваюсь на работу а мне говорят "у нас нет вакансий под вашу квалификацию". Что делать? Квалификация есть.
>> No.49679 Ответ
>>49678
Собери портфолио. Набей гитхаб своим кодом, тематически близким по должности, к которой стремишься. Изучай рынок труда по интересующей специализации. То есть общайся с людьми, которые уже этим занимаются. Обязательно гугли отзывы: хорошая контора с рабочей карьерной лестницей скорее всего предложит стажировку с минималкой или даже тестером поработать сначала. Не ограничивайся отечественными конторами. Если у тебя на гитхабе твоего кода овер 10k SLOC, можешь в английский и действительно хочешь этим заниматься, вероятность вката стремится к 100%.
>> No.49680 Ответ
>>49677
Прохо понятно, слишком общее описание. Если каждому елементу из множества твоих данных соответствует константное множество дат, в которые элемент может отображаться, добавь к классу этого множества параметр, содержащий множество дат и задавай его значение при инициализации инстансов класса.
Если доступные для отображения дни надо пересчитывать каждый раз, например, после отображения, сделай соответствующий метод.
Детали реализации зависят от твоего шедулера и всего прочего, о котором ты ни слова не сказал.
>> No.49681 Ответ
>>49680
константное множество дат
У каждого элемента одна отметка времени. CreationTime, по факту.
> Если доступные для отображения дни надо пересчитывать каждый раз, например, после отображения, сделай соответствующий метод.
Слишком затратно. Элементов сотни тысяч, и даже на простой экспорт в csv тратится прилично времени.
> Детали реализации зависят от твоего шедулера
On demand, по запросу клиента (наверное стоило сказать, что вебня)
>> No.49682 Ответ
>>49679
Про портфолио хороший совет, давно хотел, а вот гитхаб кажется идиотизмом. Яж не хипстер-вактывальщик какой, подразумевается что кодировать умею, чё там на гитхабе смотреть. Впрочем если мимикрировать под вкатывальщиков, то да. Но до этого уровня пока ещё не опустился.
>> No.49683 Ответ
>>49682
Если ты не фронтендер, который на конструкторе лепит сайты, ссылки на которые может приложить, и без опыта, то гитхаб == портфолио.
Квалификация != опыт.

> подразумевается что кодировать умею
А ты докажи. Покажи код. Умеешь ли ты лепить архитектуру проекта, можешь ли доводить до конца это говно? Для этого и выкладывают всякое в репозитории (ну еще иногда, потому что это херня может кому-то помочь).

Да и
> "у нас нет вакансий под вашу квалификацию"
слишком расплывчато. Было тестовое задание, которое пролюбил? Опыт работы есть?


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
351 posts are omitted, из них 61 с файлами. Развернуть тред.
>> No.49565 Ответ
Файл: cirno-j.png
Png, 14.96 KB, 400×450 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
cirno-j.png
>>49469
> Питон так устроен, что каждый объект должен лежать отдельно в куче. В итоге все выполнение программы - это один большой кэшмисс.

Надо сказать, по наблюдениям, кажется, что среди питоноводов процент в бытовом отношении свиней заметно выше среднего. Знала одного пассажира, который почти год дома у себя ходил в ведро, потому как у него унитаз сломался, а отремонтировать его было всё недосуг — гении ведь такой бытовой ерундой не заморачиваются. Т.ч. рассказы о том, как у них на работе программисты грызут ногти у себя на ногах, особого удивления не вызывает. Создали вокруг языка стереотип, что на нём сплошь одни асоциальные фрики, пишут — а потом ещё удевляютьса, что тёлки не дают.
>> No.49574 Ответ
>>49565
Это ж basic нашего времени с претензиями на чистоту и правильность, рухнувшими с приходом третьей ветки окончательно, какие фрики?
>> No.49638 Ответ
>>49574
А можно подробнее о рухнувших окончательно с приходом третьей Python ветки чистоты и правильности?

Прошу прощения за некропост
>> No.49639 Ответ
>>49638
Тот анонче говорит о разнообразных фичах, горой наваленных в python последней ветки. Он стал сложнее, в некоторых местах очень сложным и непонятным. С другой стороны, никто не заставляет лезть в такие дебри, тем более новичкам. Но если нужно — u are welcome.
>> No.49643 Ответ
>>49639
А. То есть, под чистотой и правильностью он подразумевал систематичность возможностей языка?
>> No.49644 Ответ
>>49643
Вроде того, лаконичность, простота.
На мой взгляд, сейчас это посмотреть можно в Golang'е.
>> No.49672 Ответ
Файл: 4317119750_4d5c719004.jpg
Jpg, 39.13 KB, 500×449 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
4317119750_4d5c719004.jpg
>>49639
> о разнообразных фичах
> Он стал сложнее, в некоторых местах очень сложным и непонятным.
Можно конкретный пример, который поймёт и ньюфаг (я)?
>> No.49674 Ответ
>>49672
А кто ж тебя знает, какой пример ты поймёшь и примешь, а с чем захочешь, несмотря на задекларированное ньюфажество, поспорить.

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

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

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

Вообще говоря, пайтон изначально задумывался как простенький скриптовый язычок, без особых возможностей расширения. А используется сейчас как повсеместный универсальный язык для всего. В результате тем, кто его поддерживает я бы сказал "создателям", но создатель плюнул на всё и ушёл на пенсию, приходится городить в нём кучу дополнительных фич. Но поскольку, как я уже говорил, возможностей расширения языка изначально в его дизайн Гвидо не заложил, то все эти фичи часто выглядят уродливой нашлёпкой. А поскольку нашлёпок этих уже много, то язык уже и сам превращается потихоньку в одну большую уродливую нашлёпку.
>> No.49675 Ответ
>>49674
Ну я понял твой пример, и, что такое матрицы, знаю. А чем мешает эта операция? Ну есть в синтаксисе теперь "собачка", но она ведь не лает и никого не кусает, сидит себе спокойно. Или дело в том, что символ занят, когда можно было в матричной библиотеке создать хитровыдуманное слово вроде peremnozhenie_matrits?
Если написал непонятно, то прошу прощения за неровный почерк.
>> No.49676 Ответ
>>49675
А чем мешает эта операция?
Тем, что таких операций и фич больше определённого порога, после которого python из языка "простенького" и "читаемого" превращается в просто урезанный перл. Зачем урезанный перл, когда
> когда можно было в матричной библиотеке создать хитровыдуманное слово вроде peremnozhenie_matrits
Если можно функцию, лучше делать функцию.


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
Был удивлён, пролистав за десяток страниц, и не найдя здесь подобного трэда.
Решил начать учить язык богов. С чего начать - книги и мануалы, теория и практика (желательно на русском), в чём лучше писать (под винду и под никсы), советы, распространённые ошибки, всё сюда. Лисп-нить иди.
403 posts are omitted, из них 51 с файлами. Развернуть тред.
>> No.49655 Ответ
>>49654
Я думал, мне опытные аноны в соответствующем треде дадут хотя бы краткую характеристику, а не станут троллить.
Как недобро.
>> 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.49322 Ответ [Открыть тред]
Файл: tenor.gif
Gif, 428.29 KB, 320×240 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tenor.gif
Захотелось попробовать чего-нибудь этакого и написать мелодию, используя исключительно текст. Еще до изобретения этих ваших трекеров программисты каждую нотку прописывали в коде программы. Вот что анон может посоветовать погуглить носкиллу по данному вопросу? Музыку писать-то я умею, а вот программировать нет. Есть ли что-то простое и легкоусвояемое?
14 posts are omitted, из них 1 с файлами. Развернуть тред.
>> No.49347 Ответ
>>49345
Алсо, то что ты описываешь нельзя назвать языком именно программирования. Это скорее лежит в плоскости языков вёрстки и сериализации.
Как ни странно гуглежом по "midi langauge" я что-то нашёл:
http://www.zelsoftware.org -- действительно язык разметки midi-файла. Компилит спец. язык в midi, как ты хотел.
>> No.49348 Ответ
>>49346
Я спокойно пишу музыку сидя с гитарой перед компом и набивая подобранные ноты в гитар про. Но жизнь поставила меня раком из-за работы, и теперь я это делать не могу. В моем распоряжении лишь небольшой угол и старенький ноутбук. Дай, думаю, делать все равно нечего, попробую такой способ. Ведь когда-то давным-давно я делал что-то подобное в школе в логоврайтере и кбейсике. Трекерами я обмазывался, не то, мне хочется именно полного управления клавиатурой без использования мыши.
> Ты ж не описываешь картинки на языке картинок.
Вообще текстовые игры прекрасно описывают картинки с помощью текста, ага.
>>49347
Спасибо. Уууух, интернет нулевых. Почитаю на досуге.
>> No.49349 Ответ
Файл: 12345-Cubase-Pro-...
Png, 120.88 KB, 1918×970
edit Find source with google Find source with iqdb
12345-Cubase-Pro-Template.png
Файл: snap-10.02-3.png
Png, 53.11 KB, 827×726
edit Find source with google Find source with iqdb
snap-10.02-3.png

>>49348
А зачем тебе надо набирать мелодию непременно в виде текста? Что насчет трекеров всяких? Вот например https://www.rosegardenmusic.com/ - им можно открывать и редактировать midi файл. Cubase еще есть, сотни их.
Какого рода преимущество ты хочешь получить от написания мелодий именно в виде текста?
>> No.49350 Ответ
>>49349
> Какого рода преимущество ты хочешь получить от написания мелодий именно в виде текста?
Я уже выше написал, зачем мне это нужно. Нет у меня пространства, приходится ныкаться по углам со старым ноутом, есть возможность только печатать. Про трекеры я уже выше сказал. С нормальным интерфейсом я так и не обнаружил. А ДАВы вообще для написания музыки не предназначены, они нужны для сведения и мастеринга, а не для написания мелодий. Эти миди-паттерны в давах не дают никакого представления об устройстве мелодии.
>> No.49351 Ответ
Файл: Po-ulize-hodila-krokodile.jpg
Jpg, 54.07 KB, 600×491 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Po-ulize-hodila-krokodile.jpg
>>49350
> Эти миди-паттерны в давах не дают никакого представления об устройстве мелодии.
Пифагор его рассчитал, представление твоё, я же ж бросал картинки выше...
>> No.49352 Ответ
Файл: frescobaldi-lilypond-editor.png
Png, 266.82 KB, 1920×1080 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
frescobaldi-lilypond-editor.png
>>49350
Т.е. тебе нужен нотный редактор, где эти ноты можно вводить текстом? Попробуй http://lilypond.org/text-input.html http://lilypond.org/easier-editing.html
>> No.49353 Ответ
>>49352
Это тоже прикольно, спасибо.
>>49351
Причем тут вообще пифагор и современные давы?

Ладно, забейте на тему, что я хотел узнать - узнал, спасибо.
>> No.49361 Ответ
>> No.49367 Ответ
>>49322
твой стэк: Assembly, MIDI, VST
>> No.49659 Ответ
мне Sibelius норм заходил, но в сети его сложно найти.


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. Но, в любом случае, я буду отвечать в тред.
Сообщение слишком длинное. Полная версия.
>> No.48985 Ответ
FAQ
> По ссылке пустая страница без сообщений. Ничего не работает?
Надо включить js для pfpmd в настройках noscript. Исходный код не обфусцирован.

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

> Я не могу терпеть спам. Почему бы не чистить говно?
1. У меня нет на это времени. 2. Понятие спама у каждого свое. 3. Будущее клиентское приложение должно будет поддерживать пользовательские фильтры, каждый сам себе будет модератор. 4. Это нарушает один из основных принципов.

> Есть ссылка в клирнете?
Нету, pfpmd доступен только через тор.

> Что означает pfpmd?
Ничего, это просто первые пять символом рандомного хостнейма, который сгенерил тор.
FAQ
> По ссылке пустая страница без сообщений. Ничего не работает?
Надо включить js для pfpmd в настройках noscript. Исходный код не обфусцирован.

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

> Я не могу терпеть спам. Почему бы не чистить говно?
1. У меня нет на это времени. 2. Понятие спама у каждого свое. 3. Будущее клиентское приложение должно будет поддерживать пользовательские фильтры, каждый сам себе будет модератор. 4. Это нарушает один из основных принципов.

> Есть ссылка в клирнете?
Нету, pfpmd доступен только через тор.

> Что означает pfpmd?
Ничего, это просто первые пять символом рандомного хостнейма, который сгенерил тор.

> Что за лолкс?
https://lurkmore.to/%D0%9B%D0%BE%D0%BB%D0%BA%D1%81
Сообщение слишком длинное. Полная версия.
>> 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.49298 Ответ [Открыть тред]
Файл: oie_SohS1tCbFmpd.jpg
Jpg, 15.52 KB, 563×225 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
oie_SohS1tCbFmpd.jpg
У нас есть для каждой задачи куча в целом аналогичных, но всё же значительно отличающихся решений. Причём если с языками и фреймворками всё ещё как-то интуитивно понятно, чем они отличаются, то чем все Хадупы, Касандры и Сфинксы отличаются друг от друга вообще не очевидно. Причём работают они совсем по-разному, но задачи решают, казалось бы, примерно одинаковые. При этом каждая хреновина настолько сложна, что изучать её можно неделями или месяцами, чтобы знать, когда она нужна, и как ей пользоваться. И если потом узнаешь, что есть что-то получше, то недели изучения зря потеряны.

Хотелось бы узнать мысли анона, как определять, что нужно для дальнейшего развития, и что нужно использовать. Как анон вообще выпутывается из этого капкана?
6 posts are omitted. Развернуть тред.
>> No.49315 Ответ
>>49314
> моментально
Я про то, что рождаются и дохнут, не успев документацию написать.
>> No.49316 Ответ
>>49314
Но ведь все и так учат SQL! Никого из кодеров нету, кто бы юзал nosql, но не умел базово юзать mysql какой-ниубдь. У нас пытались внедрить mongodb, якобы будет без схему, проще, гибкие изменения. Было только хуже.
Но ещё ж говорят, что на (очень больших) кластерах производительность nosql выше. И что у некоторых из них выше скорость инсёртов или апдейтов.
>> No.49318 Ответ
>>49316
> Но ведь все и так учат SQL!
У меня для тебя плохие новости: нет. А те, кто учили, позабыли. MySQL я, например, не знаю.

Скорость, которая выше, достигается забивом на отношения и гарантии целостности. Если найдёшь, где в твоей sql-базе такое сделать. всё будет точно так же.
И всё равно вся эта скорость будет смыта в унитаз, когда кому-нибудь придёт в голову сделать ODM. Да, такие есть.
>> No.49330 Ответ
>>49318
Но вообще тред не только про NoSql-решения. Ещё вот эти вот
1) движки полнотекстового поиска (sphinx, elasticsearch)
2) хранилища, сборщики и визуализации метрик и логов (elasticsearch, prometheus, sentry, grafana, graphite, influxdb, etc)
3) брокеры очередей
Тут тоже широкий выбор и фиг знает, что учить.
>> No.49360 Ответ
>>49330
То, у чего больше лайков на гитхабе и твиттере.
>> No.49371 Ответ
Хочу найти флэтфайл-базу типа SQLite, только не с ужасными SQL-таблицами, а монго-подобную, с джейсонами. Всякие "written in Node.JS" мне, скорее всего, не годятся, желательно что-то менее привязанное к конкретному языку, реализованное в виде либы с кучей биндингов для неё (тот же SQLite, опять).

Такое вообще существует? Если нет - как сделать самому? Так, чтобы было быстрее, чем ебать диск на каждый чих, но при этом данные не терялись бы в случае перебоев с электричеством или ещё чего.
>> No.49372 Ответ
>>49371
Плоские таблицы чем не вариант?..
>> No.49373 Ответ
>>49371
В редиске есть персистентность.
>> No.49477 Ответ
>>49371
1.sqlite умеет в json и лучше бы тебе непродуманность схемы устранить, чтоб на грабли не наступать.
2.клоны dbm с обёртками, сериализующими значение в джейсон, сам такую писал раза два на питоне.
>> No.49649 Ответ
>>49371
lowdb, pouchdb.


No.35693 Ответ [Открыть тред]
Файл: Haskell-Logo.svg
Svg, 1.42 KB, 602×425 - Нажмите на картинку для увеличения
Haskell-Logo.svg
Надеюсь, ещё не совсем вымерли упоровшиеся сабжем.
235 posts are omitted, из них 35 с файлами. Развернуть тред.
>> No.46875 Ответ
Файл: 2bcbe14ae2efadfc9...
Png, 33.29 KB, 417×326
edit Find source with google Find source with iqdb
2bcbe14ae2efadfc95267413a710ec4c1480097777262.png
Файл: 3a50cdabf2ff37212...
Png, 25.21 KB, 409×212
edit Find source with google Find source with iqdb
3a50cdabf2ff3721282443bfd82989111480097777263.png

SPJ со своим другом наконец-то разработали недостающую теорию,
открывающую мир нешаблонного параметрического полиморфизма байтоёбским типам со стека:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/levity-1.pdf
>> No.47994 Ответ
>>46875
> 25 November 2016
Ж - живой язык
>> No.47995 Ответ
>>37765
Не знаю как там в 2014, но у нас есть https://ru.wikipedia.org/wiki/Yi_(редактор) и пожалуй ещё https://ru.wikipedia.org/wiki/Leksah
>> No.47998 Ответ
Файл: 1496672176680-g.png
Png, 785.77 KB, 1000×1300 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1496672176680-g.png
>>47995
Но все равно, лучше использовать Emacs.
>> No.48030 Ответ
>>47998
> Основные режимы эмуляции для Yi это vim и emacs.
А вообще какой режим лучше, вообще vim VS emacs что победит?
>> No.49381 Ответ
Бампану, что ли.
>> No.49611 Ответ
>>48030
VS и победит, им пользоваться куда удобнее, да и особых знаний он не требует.
>> No.49612 Ответ
>>44574
Нет и не будет. Hask не является категорией, seq и undefined все портят:
seq (undefined . id) ()
> ()
seq undefined ()
> |
Противоречия!
Больше тут:
https://stackoverflow.com/questions/48485660/is-hask-even-a-category
>> No.49646 Ответ
Расскажите про forkOS. Можно ли через него и mvar'ы пропустить массив данных так, чтобы ленивость массива не терялась?
>> No.49647 Ответ
>>49646
Массив таки список.


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, из них 37 с файлами. Развернуть тред.
>> No.49492 Ответ
>>49481
Я тоже вдруг сюда снова заглянул. Приятно продолжить.

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

> Если надо, бери админа.
Отдельный зверь и админ -- это же одно и то же.

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

> Service as a Software Substitute
Понял. Да, часто это выглядит странно. Во многом справедливо. Но вот удобно зато, что ставить на ком ничего не надо. Но мне кажется, что здесь в засилии веб-приложений в чём-то сама винда виновата. На неё сложно поставить какой-нибудь мусор так, чтобы не сломалось всё к херам из-за малварей и прочего. С Андроидом и его приложениями в Гугл Плее как-то проще. Вот надо сконвертить видос с ютуба. Проще реально использовать сразу веб-апп для этого, чем скачивать экзешник и запускать его. Хотя бы потому, что экзешник может убить комп потенциально.
Я пошёл в веб-кодеры изначально потому, что вакансий было много, деньги хорошие, а в десктопных приложениях рынок потеснее.
>>49481
Я тоже вдруг сюда снова заглянул. Приятно продолжить.

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

> Если надо, бери админа.
Отдельный зверь и админ -- это же одно и то же.

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

> Service as a Software Substitute
Понял. Да, часто это выглядит странно. Во многом справедливо. Но вот удобно зато, что ставить на ком ничего не надо. Но мне кажется, что здесь в засилии веб-приложений в чём-то сама винда виновата. На неё сложно поставить какой-нибудь мусор так, чтобы не сломалось всё к херам из-за малварей и прочего. С Андроидом и его приложениями в Гугл Плее как-то проще. Вот надо сконвертить видос с ютуба. Проще реально использовать сразу веб-апп для этого, чем скачивать экзешник и запускать его. Хотя бы потому, что экзешник может убить комп потенциально.
Я пошёл в веб-кодеры изначально потому, что вакансий было много, деньги хорошие, а в десктопных приложениях рынок потеснее.

> Удобно разрабатывать в немутабельном окружении с обязательно пересборкой?
Вот на php было удобно, так как он на каждый чих запускается и умирает. Перешёл на node.js. Вообще стал меньше любить Докер сразу же. Много проблем. Сейчас вся тима запускает ноду в докере, но я лично у себя перенастраиваю всё так, чтобы запускать её впрямую. Но с другой стороны все субд, редисы и прочие менеджеры всё равно проще поднять и юзать из докера. Потмоу что их всё равно пересобирать не надо. Запустил, что надо, и всё.

> Это называется помойка и наплевательство на совместимость. Ждём дыр из-за невероятно старых компонент.
Компоненты обновлять надо, да. Но это должно происходить сначала на деве, а потом плавно перетекать на стейджинг и потом в прод. Это должно контролироваться. Совместимость авторы никаких компонент не хотят обеспечивать. Что я могу сделать? Только заморозить и обновлять с тестированием и плавным движением к проду. Вообще не очень понял аргумент про помойку, если честно. А как без этого вообще не забыть, что какой-то очередной менеджер нужно не забыть поставить? Плюс все конфиги надо тоже сохранить и сразу накатить автоматически.

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

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

> Достаточно тебе достать недорогой мобильник и посчитать свободную память, вспомнив то, что люди открывать много-много приложений любят.
Да. Там тоже не стоит докер запускать. Но он же больше для девелоперской машины и для серверов. А ты когда-нибудь запускал docker-compose up у себя на мобиле? Я надеюсь, что -- нет.

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

> Сказал, видимо, в том числе и фронтендер. Забирай мой Galaxy Ace из первых и мой китайфон тоже забирай с двумя гигами памяти. Монитор на 1024x768 тоже бери. До тебя и таких, как ты, с ними было всё хорошо. Можешь ещё познакомиться с программой wget, с помощью которого можно было взять и сдампить сайт. Ещё вот у меня был монитор на conky и шеллскрипте с curl и xmllint с grep. Всему этому в эре нынешних фронтендов приходит конец, как и моей памяти при использовании лисы.
Да, в том числе. Соболезную, но я мало что могу сделать.

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

Я за полгода разочаровался в докере. А за 5 лет в индустрии вообще разочаровался в программировании и во всей индустрии. Программы пытаются управлять пользователями, а не пользователи программами. Все делают говно за минимально время по секундомеру. Всем похуй на UX, безопасность, бекапы, HA. Я ни в одном проекте не отношусь к целевой аудитории, ведь всё делается для сферических идиотов, которые рулят и разруливают. Кодеры сознательно наёбывают заказчиков по срокам. Вообще блять одна из самых богопротивных профессий.
Сообщение слишком длинное. Полная версия.
>> 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.48832 Ответ [Открыть тред]
Файл: pg087.png
Png, 23.35 KB, 475×349
edit Find source with google Find source with iqdb
pg087.png
Файл: pg072.png
Png, 56.58 KB, 515×709
edit Find source with google Find source with iqdb
pg072.png
Файл: 14686072547160.png
Png, 44.08 KB, 1024×450
edit Find source with google Find source with iqdb
14686072547160.png

Как понять ООП? Я просто вот не понимаю, зачем это нужно. Безотносительно языка программирования

Вот допустим есть некие классы, классы как в плюсах. Есть методы, которые к этим классам привязаны. Зачем это вообще нужно, если можно просто сделать структуру и набор функций, которые могут с этими структурами нечто осмысленное делать?

Вот допустим есть public private protected модификаторы доступа т.е. ограничения на то, откуда какой метод можно вызывать. public можно вызывать отовсюду, private только для методов из числа public, а protected ... protected становится private при наследовании, притом наследований может быть 3 вида - тоже public, private, protected... Зачем всё это? Чем это лучше просто кучи функций, которые могут просто вызывать другие функции и работать с какими-то структурами?

Или вот методы, методы это функции, которые привязаны к конкретной структуре, но что если мне нужны методы, которые связывают два разных класса? Например это может код, переводящий из вектора в растровую картинку. Этот код должен быть методом класса для растровой или векторной картинки?
70 posts are omitted, из них 4 с файлами. Развернуть тред.
>> No.49441 Ответ
>>49440
> я без понятия, каким ООП был изначально
Эрланго-образный обмен сообщениями это был.
> но настоящее ООП оказалось бесполезным и никому не нужным
Один только сраный WhatsApp на нём и работает, ага.
>> No.49443 Ответ
>>49441
> Эрланго-образный обмен сообщениями это был.
Нет, не был: https://habr.com/ru/post/455638/
Изобрести мем «объектно-ориентированный» ≠ изобрести объекты.
>> No.49522 Ответ
Файл: afwXT.jpg
Jpg, 350.83 KB, 1131×707 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
afwXT.jpg
>>49418
> Вот тут и проблема. В основе ООП лежат не взаимодействия предметов, а сами предметы. И все методы этих объектов направлены на работу только с самим собой (какие эгоистичные). Иначе нарушается инкапсуляция, иначе эти объекты не могут существовать друг без друга. Еще раз, каждый объект должен быть маленьким закрытым мирком, к которому тебе можно обращаться только через публичные методы или интерфейсы.
А зачем так надо делать? Откуда эти постулаты взялись? Почему именно так, а не иначе?
>>49418
> Вот тут и проблема. В основе ООП лежат не взаимодействия предметов, а сами предметы. И все методы этих объектов направлены на работу только с самим собой (какие эгоистичные). Иначе нарушается инкапсуляция, иначе эти объекты не могут существовать друг без друга. Еще раз, каждый объект должен быть маленьким закрытым мирком, к которому тебе можно обращаться только через публичные методы или интерфейсы.
А зачем так надо делать? Откуда эти постулаты взялись? Почему именно так, а не иначе?
Мне порой кажется, что сторонники ООП это как нейросеть, которая везде псов распознает: какую задачу ООПшнику не дай - он там увидит что это хорошо ложится на ООП парадигму, и что вот так вот можно это реализовать, вот та фигня - базовый класс, вот так будет эта фигня наследоваться от той фигни... но если посмотреть на проблему незашоренным взглядом (с головой, не забитой всем этим теоретическим бредом, паттернами от банды четырех и прочей такой хренью) то нет там ничего особо связанного с ООП, и ООП по-сути вообще не нужно. Любую задачу можно решать через ООП, или через ФП, или в процедурном или вообще хрензнает каком стиле. ООП похоже на какие-то костыли для мышления, что якобы есть некие объекты, что они что-то могут с собой(и только с собой) делать и что они могут как-то наследоваться т.е. на основе одних объектов можно сделать новые, добавив всяких полей и методов. Почему именно так надо, почему не сделать какие-то другие штуки (назовем эту парадигму штуко-ориентированное программирование или ШОП) в которых мы описываем, что вот какая-то штука может под воздействием другой штуки становиться третьей штукой. Например, есть у нас штука "ведро с водой" и есть штука "горячий костер". Мы где-то описываем, что можно штуку "что-то-чем-можно-тушить" применять на штуку "что-то-что-горит" и получается в итоге штука "что-то-негорящее". Ну по-сути это можно реализовать как функцию, которая принимает два аргумента, что тушим и чем тушим, и возвращает потушенное что-то. Ну и если в эту функцию передать костер и ведро с водой, она вернет потушенный костер. Ну и еще она может вернуть пустое ведро без воды. Никаких объектов с жестко привязанными к ним методами нет, да они и не нужны
Сообщение слишком длинное. Полная версия.
>> No.49524 Ответ
>>49522
А вот чем абстрактные типы того же Хаскеля отличаются от ООП принципиально?
>> No.49525 Ответ
Файл: 1568146639231.jpg
Jpg, 42.03 KB, 218×300 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1568146639231.jpg
>>49524
Я не очень понимаю, как ты хочешь сравнивать ADT с ООП, но в целом система типов в Хаскеле работает совершенно иначе по сравнению с популярными сейчас ООП языками: C#, Java. В плюсах есть классы, но нет ООП.
В основе ADT лежит параметрический полиморфизм, в основе ООП лежит подтиповый полиморфизм.
Параметрический получил свое название из-за схожести передачи параметров в функцию, только вместо функций у нас конструкторы типа. В шарпах и джаве подобное есть, но обрезан их функционал до нуля: больше параметризованных листов ничего сделать не получится, в плюсах ситуация лучше, но, чтобы начать понимать шаблоны, надо быть магом и убить годы жизни на изучение уродливого синтаксиса.

К примеру, ты можешь создать такой свой уютненький полиморфный тип в Хаскеле:
`data Bla f1 f2 a b c = Bla (f1 a) (f2 c b)`
Первый Bla - конструктор типа, второй - конструктор самого значения, они живут в разных пространствах имен и друг с другом не ругаются
Если мы посмотрим на его сигнатуру (kind)..
`Bla :: ( -> ) -> ( -> -> ) -> -> -> -> *`
То будет видно, что для создания элемента данного типа нам необходимы 2 полиморфных типа и 3 обычных. Это одна строка кода, компилятор определил тип сам, и получить такое в ООП языках не получится.

>>49524
Я не очень понимаю, как ты хочешь сравнивать ADT с ООП, но в целом система типов в Хаскеле работает совершенно иначе по сравнению с популярными сейчас ООП языками: C#, Java. В плюсах есть классы, но нет ООП.
В основе ADT лежит параметрический полиморфизм, в основе ООП лежит подтиповый полиморфизм.
Параметрический получил свое название из-за схожести передачи параметров в функцию, только вместо функций у нас конструкторы типа. В шарпах и джаве подобное есть, но обрезан их функционал до нуля: больше параметризованных листов ничего сделать не получится, в плюсах ситуация лучше, но, чтобы начать понимать шаблоны, надо быть магом и убить годы жизни на изучение уродливого синтаксиса.

К примеру, ты можешь создать такой свой уютненький полиморфный тип в Хаскеле:
`data Bla f1 f2 a b c = Bla (f1 a) (f2 c b)`
Первый Bla - конструктор типа, второй - конструктор самого значения, они живут в разных пространствах имен и друг с другом не ругаются
Если мы посмотрим на его сигнатуру (kind)..
`Bla :: ( -> ) -> ( -> -> ) -> -> -> -> *`
То будет видно, что для создания элемента данного типа нам необходимы 2 полиморфных типа и 3 обычных. Это одна строка кода, компилятор определил тип сам, и получить такое в ООП языках не получится.

В ООП популярен подтиповой полиморфизм, когда класс родителя создает виртуальный метод, а потомки его перезаписывают. Тогда можно всех потомков хранить с сигнатурой родителя, а уже таблица виртуальных методов или компилятор позаботятся о том, чтобы вызвался свой собственный метод у каждого объекта, пусть потомка, пусть родителя. В Хаскеле такого и подавно нет.

Еще иногда сравниваются "классы" Хаскеля и ООП-классы. Совсем разные вещи, у них просто совпадают ключевые слова, если очень грубо, то можно сравнить классы Хаскеля с интерфейсами ООП. Но интерфейсы необходимо задавать классу при создании, тогда как в Хаскеле ты можешь в любой момент создать свой собственный класс и научить любые (и почти все стандартные) типы работать с функциями заданными этим "классом". И эти классы также могут быть параметризованы, чего в плюсах пока не добиться.

Не очень хороший пример, но все что надо в нем понять, что две функции высшего порядка fmap тут различны и перегружены для двух совершенно различных типов: Maybe и List.

`mxs :: Maybe [Int]`
`f :: Int -> Int`
`mys = (fmap . fmap) f mxs`

Еще построено это все по совершенно другим принципам - по теории категорий, но это так явно и быстро не показать.
Сообщение слишком длинное. Полная версия.
>> No.49526 Ответ
>>49525
Все сломалось, все сломалось. Я ничего не вижу.
>> No.49527 Ответ
>>49525
> В основе ADT лежит параметрический полиморфизм, в основе ООП лежит подтиповый полиморфизм.
Оба утверждения спорны. Во-первых параметрический полиморфизм в ООП сегодня применяют чаще чем подтиповый, который якобы более "лежит в основе". Во-вторых в Хаскеле классы типов по сути -- это подтиповый полиморфизм.
> больше параметризованных листов ничего сделать не получится
Почему? Прикручиваешь дженерики и обычные параметры, куда взбредёт в голову.
> получить такое в ООП языках не получится
Ну делаешь 2 класса. А потом третий, у которого объекты первых двух и ещё поле в полях. Ну да, в Хаскеле система типов круче, но всё равно не так это принципиально.

Всё как бы круче и гибче, но всё то же самое. Если я создам модуль, а в него помещу типы и определю на них несколько функций, то на выходе это будет тупо класс. На каких-то высосанный из пальца примерах это выглядит иначе, но когда я в голове пытаюсь обуть типичный CRUD с квитанциями и сметами, то выходит такое же точно ООП. Big picture, архитектура в общем и целом, вот что не отличается. Я не вижу, где сам подход другой.
>> No.49528 Ответ
>>49527
> Во-первых параметрический полиморфизм в ООП сегодня применяют чаще чем подтиповый, который якобы более "лежит в основе"
Наследование - основа ООП, а из наследования следует подтиповый полиморфизм. Параметрический не имеет ничего общего с этими концепциями. И пришел он в ООП из функционального программирования.

> Во-вторых в Хаскеле классы типов по сути -- это подтиповый полиморфизм.
Классы в Хаскеле реализуют ad-hoc полиморфизм, он не требует никакой структруры, тогда как подтиповый даже своим именем подразумевает общего наследника. Ничего общего между ними нет.

> Прикручиваешь дженерики и обычные параметры, куда взбредёт в голову.
Сопоставлять паттерны дженериков у тебя не получится. Кроме этого ничего не знаю о реализации параметрическгого полиморфизма в ООП языках. В любом случае написанный с ними код выглядит нечитабельно.

> выходе это будет тупо класс
> Я не вижу, где сам подход другой.
Функциональное программирование не заканчивается системой типов. Чистые функции, монады, отсутствие состояния, отсутствие указателей, отсутствие null'a, высокоуровневые функции, отстутсвие while и for циклов и другие производные от этих идей. С такими высокоуровневыми концепциями подход к написанию того же CRUD'a просто не может не измениться. Другое дело ты можешь после перехода продолжать пытаться написать код в своей уютной парадигме и фрустрировать, что ничего нормально не получается.
>> No.49529 Ответ
>>49528
> Наследование - основа ООП
Основа, ни основа -- пофигу. На практике от него часто отказываются в пользу композиции.
> подтиповый даже своим именем подразумевает общего наследника
Класс типов подразумевает общий класс у типов у Хаскеля. Ну и что?
> Сопоставлять паттерны дженериков у тебя не получится.
Я могу в разные классы воткнуть разные реализации метода интерфейса. Будет работать почти так же.
> написанный с ними код выглядит нечитабельно.
Примерно так же выглядят типы с параметрами в Хаскеле. Это почти те же дженерики.
> Чистые функции, монады, отсутствие состояния, отсутствие указателей, отсутствие null'a, высокоуровневые функции, отстутсвие while и for циклов и другие производные от этих идей
Всё это конструкции нижнего уровня архитектуры программы. Мелочи. А вот как программа будет дробиться на большие куски? Так же. Или это будет куча разрозненных функций, которые не объединены ни в какие модули?
>> No.49530 Ответ
>>49529
> подтиповый, который якобы более "лежит в основе"
> Основа, ни основа -- пофигу
Ну-ну. Чаще чем в ООП наследование нигде больше не используется.

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

> Примерно так же выглядят типы с параметрами в Хаскеле. Это почти те же дженерики.
Из головы..
data Either a b = Left a | Right b
data Maybe a = Just a | Nothing

f :: (Num a) => Either [a] (a, a) -> Maybe a
f (Right (x, y)) = Just (x + y)
>>49529
> подтиповый, который якобы более "лежит в основе"
> Основа, ни основа -- пофигу
Ну-ну. Чаще чем в ООП наследование нигде больше не используется.

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

> Примерно так же выглядят типы с параметрами в Хаскеле. Это почти те же дженерики.
Из головы..
data Either a b = Left a | Right b
data Maybe a = Just a | Nothing

f :: (Num a) => Either [a] (a, a) -> Maybe a
f (Right (x, y)) = Just (x + y)
f (Left (x:y:_)) = Just (x + y)
f _ = Nothing
Осталось тебе реализовать подобное своими дженериками, а потом можно будет и сравнить "почти же"-сть.

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


[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/ ] [ Главная | Настройки | Закладки | Плеер ]