[ /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
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: video, music, flash, image, code, pdf, vector, archive, text
  • Тред перестает подниматься после 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.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
150 posts are omitted, из них 14 с файлами. Развернуть тред.
>> 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.49975 Ответ
>>32929
Живые люди в треде остались?
Я тут начинаю тыкаться в NASM. Всё не могу понять что за PIE и почему если я хочу таковые линковать, то вызывая Cишные функции мне нужно постояно писать после них wrt ..plt?
>> No.49976 Ответ
>>49975
> PIE
Position Independent Executable. Статичные адреса не используются, а рассчитываются относительно IP. Нужно динамическим библиотекам, например.
> wrt ..plt
Для релокации.
Я мало об этом знаю, так что не буду пересказывать мануал.
https://www.nasm.us/xdoc/2.10rc8/html/nasmdoc9.html#section-9.1
>> No.49991 Ответ
Файл: Screenshot_202106...
Png, 72.60 KB, 840×611
edit Find source with google Find source with iqdb
Screenshot_20210617_093107.png
Файл: nichan.png
Png, 1824.86 KB, 780×978
edit Find source with google Find source with iqdb
nichan.png

Писун на асме под микроконтроллеры итт. Кто-то еще тут под них пишет?


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
87 posts are omitted, из них 19 с файлами. Развернуть тред.
>> No.49979 Ответ
Привет. Юзаю либу mysql2 на nodejs

Не могу записать в колонку с типом decimal или float число - записывает 0.

Пробовал:
- передавать "1.00" как строку
- менял параметры подключения supportBigNumbers, bigNumberStrings и typeCast
- менял тип колонки с decimal на float
- искал в сети решение

Подозреваю что тут что-то связанное с проблемами хранения дробных чисел в js, но в любом случае не знаю как фиксить

Помогите пожалуйста
>> No.49980 Ответ
>>49979
Покажи схему таблицы и как выглядит твой insert. Нерелевантные поля можешь заредактировать, если не хочешь показывать всё.
>> No.49981 Ответ
>>49980
Отбой тревоги, оказалось в update вместо запятой and поставил, а думал что либа плохая, float'ы не понимает. Извините что побеспокоил
>> No.49982 Ответ
Если кто пользуется ТГ -- просьба перекинуть файл на какой-нить хостинг, если не сложно. (пробовал зарегистрироваться, но что-то смс с кодом тупо не приходит.) Заранее спс.

t.me/javalib/345
>> No.49984 Ответ
>> No.49985 Ответ
Помогите разобраться правильно ли я понимаю, что если меня интересует генетика и прочие биологии в бигдате, то это питон? Или это C#? Я сколько уже читаю, где-то пишут что даже ЖС может в это.
>> No.49986 Ответ
>>49985
Язык - это инструмент реализации идеи, алгоритма. Какие-то языки больше подходят для одних задач, какие-то для других. Надо выбирать тот инструмент, которым удобнее работать над задачей.
>> No.49987 Ответ
>>49985
Обожемой да всем насрать что там тебя энтерисует.
Работа в любом случае ищется методом тыка с чёрными списками.
>> No.49988 Ответ
>>49985
> меня интересует генетика и прочие биологии в бигдате
Под что больше подходящих велосипедов есть, то и используй.
Если хочешь свои велосипеды, то хоть паскаль бери в руки.
>> No.49990 Ответ
>>49985
Если коротко, то Питон да, ты не ошибёшься с ним. Его вообще любят в академической среде, во всех этих именно приграммированиях для науки, а не науках о программировании. Биологи точно. Если длинно, то как бы в принципе по барабану, но тебе нужен популярный язык, иначе у тебя будут проблемы. Я не рекомендую лезть в Java/C# и тяжёлое ООП, которые тут может оказаться не так уж и в тему. Насчёт C# могу ошибаться. C# прикован к Винде и ВижуалСтудии, что в принципе вроде хорошо, но всё равно. Нужен скриптовый язык. Для очень больших данных может потребоваться Си, С++ или даже Фортран. Нооо, это больше для мастеров высокопроизводительного программирования чем для биологов и генетиков. Ну Фортран просто потому что легаси в науке бывает весьма древним, правда.


No.28005 Ответ [Открыть тред]
Файл: git.jpg
Jpg, 80.27 KB, 750×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
git.jpg
Собственно вопрос про гит например.

Есть некоторая удаленная репа, до которой имеем ssh-доступ. Когда я пушаю в нее с локальной, то запускается скрипт .git/hooks/post-receive, в котором там что-нибудь делается с проектом (чистится кэш, компилируются шаблоны, запускаются миграции и прочая херота).
#!/bin/sh
GIT_WORK_TREE=.. git checkout -f
echo "Something pushed to server. Yay!"
../scripts/update.sh
# например
Возможно ли запускать на удаленном сервере этот мой update.sh не один раз на пуш, а на каждый коммит (даже на те коммиты, которые во вмерженых в основную ветку бранчах)?
73 posts are omitted, из них 11 с файлами. Развернуть тред.
>> No.48969 Ответ
>>48968
> добавить миграции в git
fix
>> No.49946 Ответ
>>28005
Привет.

Есть проблема следующего характера:

Сливал dev с master. В мастере оказались файлы со строками вида >>>>>>>>> HEAD , затем я удалил всё из мастер-ветки через rm -rf, и попытался сделать слияние вновь, но слияния не происходит. Пишет что уже изменения обновлены. Пока временно вручную скопировал файлы в мастер.

Вопрос: как теперь по нормальному сделать слияние?
>> No.49947 Ответ
>>49946
Такие строки обозначают конфликтующие места в файлах. Конфликты разрешаются через команду git mergetool.
mergetool можно настроить по-разному: можно использовать vimdiff или утилиту от intellij idea и т.д.
>> No.49948 Ответ
>>49947
Это то понятно. Будь у меня конфликтующие места сейчас я бы разрешил конфликт, но я же удалил все файлы из мастер ветки и поэтому ни разрешить конфликт ни слить не могу. Как слить теперь?
>> No.49949 Ответ
>>49948
> Это то понятно.
Если бы было понятно, то ты бы наверное знал, что делать с конфликтами и не удалил бы файлы, ведь с этого всё началось.

> Как слить теперь?
Откатиться к предыдущему состоянию мастер ветки (до косяка со слиянием), а потом осуществить слияние с разрешением конфликтов.
Здесь наверное понадобятся команды "git log" и "git checkout", точно не помню, нагугли как правильно.
>> No.49950 Ответ
>>49949
Я пробовал откатываться через reset, успешно сливал ветки, но потом когда делал push, запрос отклонялся, мол в удалённом репо есть более поздние правки, сделайте pull. И если мне не изменяет память, после pull у меня в мастере изчезали файлы, так как их нет на удалённом хранилище. Как мне сделать pull, чтобы у меня ничего не изчезло?
>> No.49951 Ответ
>>49950
Ты как будто на ходу придумываешь вопросы. В начале у тебя файлы конфликтуют, потом ты спрашиваешь про удалённые файлы. Это какая-то шутка? Ладно, затролил меня.
>> No.49957 Ответ
>>49950
Ну, логично, что он не даёт тебе запушить в ремоут при наличии там других изменений. Единственный вариант, который я вижу - запушить туда с ключом -f (--force), что само по себе не очень, особенно если кто-то пользуется этой веткой параллельно и основывает на этих коммитах свою работу.
>> No.49958 Ответ
>>49950
Ну, логично, что он не даёт тебе запушить в ремоут при наличии там других изменений. Единственный вариант, который я вижу - запушить туда с ключом -f, что само по себе не очень, особенно если кто-то пользуется этой веткой параллельно и основывает на этих коммитах свою работу.
>> No.49977 Ответ
>>28005
Привет, помогите новичку пожалуйста со следующей проблемой.

Я создаю бекэнд веб-сервиса (скрипты на nodejs), другой кодер создаёт фронтэнд (html-страницы). У каждого своя ветка

Вопрос: как сделать так,чтобы любой один из нас мог сделать пуш в мастер так чтобы наши обе ветки слились в одну в мастере?

Также вопрос: как сделать так, чтобы некоторые файлы и директории в моей ветке пушились в репо, но не пушились в мастер?

Заранее спасибо


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... Зачем всё это? Чем это лучше просто кучи функций, которые могут просто вызывать другие функции и работать с какими-то структурами?

Или вот методы, методы это функции, которые привязаны к конкретной структуре, но что если мне нужны методы, которые связывают два разных класса? Например это может код, переводящий из вектора в растровую картинку. Этот код должен быть методом класса для растровой или векторной картинки?
89 posts are omitted, из них 6 с файлами. Развернуть тред.
>> No.49873 Ответ
>>49845
> Путь второй, он же очевидный и неправильный: class Rectangle extends Shape и class Square extends Rectangle
Просто ты очевидный быдлокодер. С какого хуя у тебя Rectangle имеет метод на увеличение параметров магическими цифрами? Почему ты лезешь напрямую в данные вместо вызова сеттеров? А потому что ты отстреливающий себе ногу быдлокодер.
virtual bool Rectangle::scale(int xScale, int yScale) {...}
bool Square::scale(int xScale, int yScale) override
{
if (xScale != yScale)
return false
else
return this->scale(xScale);
}
>> No.49874 Ответ
>>49873
Ну да, можно и так. Простите, был неправ. Забыл, что любую проблему можно обойти наговнокодив костылей.
Что вот у тебя за bool там такой? Откуда он взялся? Ах, он тут затем, чтобы это хоть как-то работало? Вопрос тебе: у тебя есть класс Shape; тебе нужно написать класс Rectangle; квадраты ещё не изобрели, и о том, что тебе понадобится класс Square ты узнаешь только через полгода - будет ли твой scale возвращать bool?
Далее, как ты думаешь, сколько постов на форуме твоей либы будут содержать вопрос "почему Square::scale принимает два параметра, при том, что они должны быть равны, и если они не равны, то ошибка (может быть) вылезет только в рантайме"?
Это всё "фиксится" перегрузкой scale для одного аргумента и выбросом исключения, вот только
а) исключение нарушает LSP,
б) перегрузка функций к ооп не имеет отношения - это языкоспецифическое средство починить пролему ооп,
в) оригинальный scale всё ещё останется и всё ещё будет принимать два аргумента.

>>49873
Ну да, можно и так. Простите, был неправ. Забыл, что любую проблему можно обойти наговнокодив костылей.
Что вот у тебя за bool там такой? Откуда он взялся? Ах, он тут затем, чтобы это хоть как-то работало? Вопрос тебе: у тебя есть класс Shape; тебе нужно написать класс Rectangle; квадраты ещё не изобрели, и о том, что тебе понадобится класс Square ты узнаешь только через полгода - будет ли твой scale возвращать bool?
Далее, как ты думаешь, сколько постов на форуме твоей либы будут содержать вопрос "почему Square::scale принимает два параметра, при том, что они должны быть равны, и если они не равны, то ошибка (может быть) вылезет только в рантайме"?
Это всё "фиксится" перегрузкой scale для одного аргумента и выбросом исключения, вот только
а) исключение нарушает LSP,
б) перегрузка функций к ооп не имеет отношения - это языкоспецифическое средство починить пролему ооп,
в) оригинальный scale всё ещё останется и всё ещё будет принимать два аргумента.

Но, самое главное, что даже с этим твоим костылём ты всё ещё нарушаешь LSP, просто ты это относительно неплохо спрятал под коврик, и оно теперь почти незаметно. Напомню: объект дочернего класса должен иметь возможность быть подставленным ВЕЗДЕ, где требуется объект родительского БЕЗ ИЗМЕНЕНИЯ ПОВЕДЕНИЯ программы. Есть у тебя функция сделать_мост, которая принимает прямоугольники, меняет ему размер на 3м х 10м, поворачивает и кладёт поперёк ущелья. Кто-то потом передаёт туда квадрат. Он не масштабируется. Функция кладёт его поперёк ущелья. Он падает. Ты ступаешь на несуществующий мост и падаешь вниз. Тебя съедают крокодилы. А всё потому что ты наслушался маркетологов.
Единственное, что ты тут можешь сделать - это начать вилять хвостом, что надо было проверять возвращаемые значения. Но это так не работает, потому что твой дочерний класс всё ещё ограничивает родительский - поведение всегда будет меняться в тех случаях, когда код делает что-то, что затрагивает эти ограничения. Как только ты ограничил родителя - ты уже проиграл.

Вообще, я тут поумничать решил, и оригинальная идея была о наследовании класса Tree от BinaryTree (книга это была, или статья какая - не помню, но если кто-то узнал, дайте ссылку или ключевые слова), но пример с фигурами мне показался чуть более наглядным.
Сообщение слишком длинное. Полная версия.
>> No.49875 Ответ
>>49874
> Что вот у тебя за bool там такой? Откуда он взялся? Ах, он тут затем, чтобы это хоть как-то работало?
Так ты все-таки проектируешь иерархию классов и допускаешь, что метод может сфейлить? Или быдлокодишь и ноешь про "костыли", отстрелив себе ногу "да не, оно не может сфейлить, хуяк-хуяк return void -> бля, сфейлило, чертово ООП!"? Хотя тут и так все понятно, что тут спрашивать.
> Вопрос тебе: у тебя есть класс Shape; тебе нужно написать класс Rectangle; квадраты ещё не изобрели, и о том, что тебе понадобится класс Square ты узнаешь только через полгода - будет ли твой scale возвращать bool?
Типичный подход быдлокодера, как и было предсказано. Я уж молчу про подготовку проекта перед кодированием, сраные UML, IDEF0 и прочая, но подумать своей башкой, что не все Rectangle можно успешно отскейлить на разные множители по разным координатам, ты мог? Или для тебя внезапно оказалось открытием: епта, хуе-мое, квадрат тоже прямоугольник, нам этого в школе не рассказывали! Проклятое ООП!
> Далее, как ты думаешь, сколько постов на форуме твоей либы будут содержать вопрос "почему Square::scale принимает два параметра, при том, что они должны быть равны, и если они не равны, то ошибка (может быть) вылезет только в рантайме"?
Я бы на форуме таких говнокодеров банил на месяц в ридонли, если они такие тупые, что не видят перегруженный метод и не ебут, что такое наследование от базового класса, но пиздят что-то про ООП.
> исключение нарушает LSP
Поэтому не будь быдлокодером и не пиши быдлокодерские иерархии с return void. Внезапно, и исключения не понадобятся.
>>49874
> Что вот у тебя за bool там такой? Откуда он взялся? Ах, он тут затем, чтобы это хоть как-то работало?
Так ты все-таки проектируешь иерархию классов и допускаешь, что метод может сфейлить? Или быдлокодишь и ноешь про "костыли", отстрелив себе ногу "да не, оно не может сфейлить, хуяк-хуяк return void -> бля, сфейлило, чертово ООП!"? Хотя тут и так все понятно, что тут спрашивать.
> Вопрос тебе: у тебя есть класс Shape; тебе нужно написать класс Rectangle; квадраты ещё не изобрели, и о том, что тебе понадобится класс Square ты узнаешь только через полгода - будет ли твой scale возвращать bool?
Типичный подход быдлокодера, как и было предсказано. Я уж молчу про подготовку проекта перед кодированием, сраные UML, IDEF0 и прочая, но подумать своей башкой, что не все Rectangle можно успешно отскейлить на разные множители по разным координатам, ты мог? Или для тебя внезапно оказалось открытием: епта, хуе-мое, квадрат тоже прямоугольник, нам этого в школе не рассказывали! Проклятое ООП!
> Далее, как ты думаешь, сколько постов на форуме твоей либы будут содержать вопрос "почему Square::scale принимает два параметра, при том, что они должны быть равны, и если они не равны, то ошибка (может быть) вылезет только в рантайме"?
Я бы на форуме таких говнокодеров банил на месяц в ридонли, если они такие тупые, что не видят перегруженный метод и не ебут, что такое наследование от базового класса, но пиздят что-то про ООП.
> исключение нарушает LSP
Поэтому не будь быдлокодером и не пиши быдлокодерские иерархии с return void. Внезапно, и исключения не понадобятся.
> перегрузка функций к ооп не имеет отношения - это языкоспецифическое средство починить пролему ооп
Это вообще сахар для удобства, наркоман, оно ничего не чинит.
> оригинальный scale всё ещё останется и всё ещё будет принимать два аргумента.
И? Клятое ООП не дает тебе сломать ООП? Ты тут двумя строками ранее LSP для красного словца нагуглил?
> Но, самое главное, что даже с этим твоим костылём ты всё ещё нарушаешь LSP, просто ты это относительно неплохо спрятал под коврик, и оно теперь почти незаметно. Напомню: объект дочернего класса должен иметь возможность быть подставленным ВЕЗДЕ, где требуется объект родительского БЕЗ ИЗМЕНЕНИЯ ПОВЕДЕНИЯ программы.
Напомню, что ничего не нарушается. Если ты такой быдлокодер, что по юности и недалекости своей думаешь, что у тебя любая операция всегда сработает, то я выебу твой scale переполнением.
> Есть у тебя функция сделать_мост, которая принимает прямоугольники, меняет ему размер на 3м х 10м, поворачивает и кладёт поперёк ущелья. Кто-то потом передаёт туда квадрат. Он не масштабируется. Функция кладёт его поперёк ущелья. Он падает. Ты ступаешь на несуществующий мост и падаешь вниз. Тебя съедают крокодилы. А всё потому что ты наслушался маркетологов.
Вот поэтому, дети, таких джунов гонят ссаными тряпками на первом же code review, и не подпускают потом этих макак дальше ардуинки в кофеварках китайских ноунеймов.
> Вообще, я тут поумничать решил
Ты сфейлил, бро.
Сообщение слишком длинное. Полная версия.
>> No.49876 Ответ
>>49875
ОК, я проигнорирую всё начало (хотя тут много чего можно сказать), кроме нескольких основных пунктов.
> Или для тебя внезапно оказалось открытием: епта, хуе-мое, квадрат тоже прямоугольник
Именно так. Потому что на момент проектирования квадраты не изобрели. Их не существует физически. Появятся они только через полгода, когда код уже написан.
> Я бы на форуме
Знаешь, что такое "протекающие абстракции"? Нет? Ну, теперь знаешь, потому что это пример прямо из палаты мер и весов.
> Напомню, что ничего не нарушается.
Я тебе ещё раз говорю: не важно, проверяешь ли ты там что-то где-то или нет. Для начала ещё раз перечитай LSP, и теперь я объясню сразу на наглядном примере:
Вот есть такой код:
``fun sdelat_most( Rectangle r ) {
if ( r.scale( 3, 10 ) ) print( "Most sdelan" )
else print( "Oshibka" )
}
Rectangle rect = new Rectangle( 3, 3 )
sdelat_most( rect )``
>>49875
ОК, я проигнорирую всё начало (хотя тут много чего можно сказать), кроме нескольких основных пунктов.
> Или для тебя внезапно оказалось открытием: епта, хуе-мое, квадрат тоже прямоугольник
Именно так. Потому что на момент проектирования квадраты не изобрели. Их не существует физически. Появятся они только через полгода, когда код уже написан.
> Я бы на форуме
Знаешь, что такое "протекающие абстракции"? Нет? Ну, теперь знаешь, потому что это пример прямо из палаты мер и весов.
> Напомню, что ничего не нарушается.
Я тебе ещё раз говорю: не важно, проверяешь ли ты там что-то где-то или нет. Для начала ещё раз перечитай LSP, и теперь я объясню сразу на наглядном примере:
Вот есть такой код:
``fun sdelat_most( Rectangle r ) {
if ( r.scale( 3, 10 ) ) print( "Most sdelan" )
else print( "Oshibka" )
}
Rectangle rect = new Rectangle( 3, 3 )
sdelat_most( rect )``
Мы его запускаем и он печатает "Most sdelan". Теперь мы подменяем родительский объект на дочерний ``Rectangle rect = new Square( 3 )``, запускаем, и код печатает "Oshibka". Поведение программы изменилось, а по LSP этого быть не должно. А можно проще, без лишних функций (у тебя же сеттеры отнаследовались):
``Rectangle rect = new Rectangle( 3, 3 )
rect.set_width( 4 )
rect.set_height( 5 )
assert( rect.get_area() == 20 )
print( "Ok" )``
Это печатает "Ok". Заменяем прямоугольник на квадрат и он падает с assertion failure. А не должен.
Наследование Square от Rectangle нарушает LSP, что в свою очередь означает несоответствие твоего кода принципам SOLID, что в свою очередь делает говнокодером тебя, а не меня.
QED
Сообщение слишком длинное. Полная версия.
>> No.49877 Ответ
>>49876
> ОК, я проигнорирую всё начало
как обосраться и не подать виду.тхт
> Именно так. Потому что на момент проектирования квадраты не изобрели. Их не существует физически. Появятся они только через полгода, когда код уже написан.
Чо-чо? Проектирование интерфейсов? Изучение предметной области? Зачем, когда можно хуяк-хуяк и в продакшн!
Эээ, пан заказчик, это не я наобезьянил, это все ООП! Только по лицу не бейте!
> Знаешь, что такое "протекающие абстракции"? Нет? Ну, теперь знаешь, потому что это пример прямо из палаты мер и весов.
Нет, просто твои абстракции кривые и предусматривают только common cases. А опытный разработчик тем и отличается от джуна, что сразу предусматривает редкие случаи. Поэтому джуны и не проектируют API.
> Вот есть такой код
Это быдлокод, еще раз тебе говорю.
> Это печатает "Ok". Заменяем прямоугольник на квадрат и он падает с assertion failure. А не должен.
А кроме написания быдлокода ты еще и не понимаешь, что такое LSP.
Rectangle rect = new Rectangle( INTMAX, 3INTMAX)
Rectangle нарушает Rectangle! LSP! OOP! SOLID! Вы все быдлокодеры, а я нет, уиииии!
> print( "Most sdelan" ) else print( "Oshibka" )
>>49876
> ОК, я проигнорирую всё начало
как обосраться и не подать виду.тхт
> Именно так. Потому что на момент проектирования квадраты не изобрели. Их не существует физически. Появятся они только через полгода, когда код уже написан.
Чо-чо? Проектирование интерфейсов? Изучение предметной области? Зачем, когда можно хуяк-хуяк и в продакшн!
Эээ, пан заказчик, это не я наобезьянил, это все ООП! Только по лицу не бейте!
> Знаешь, что такое "протекающие абстракции"? Нет? Ну, теперь знаешь, потому что это пример прямо из палаты мер и весов.
Нет, просто твои абстракции кривые и предусматривают только common cases. А опытный разработчик тем и отличается от джуна, что сразу предусматривает редкие случаи. Поэтому джуны и не проектируют API.
> Вот есть такой код
Это быдлокод, еще раз тебе говорю.
> Это печатает "Ok". Заменяем прямоугольник на квадрат и он падает с assertion failure. А не должен.
А кроме написания быдлокода ты еще и не понимаешь, что такое LSP.
Rectangle rect = new Rectangle( INTMAX, 3INTMAX)
Rectangle нарушает Rectangle! LSP! OOP! SOLID! Вы все быдлокодеры, а я нет, уиииии!
> print( "Most sdelan" ) else print( "Oshibka" )
> fun sdelat_most
Блядский блядь, и я еще на это трачу время, пиздец просто.
Сообщение слишком длинное. Полная версия.
>> No.49878 Ответ
>>49877
> Это быдлокод
Но ведь это ровно тот код, который ты предложил мне написать. Я, очевидно, чего-то не понимаю, поэтому напиши, пожалуйста, как оно тут должно быть.
> ты еще и не понимаешь, что такое LSP.
Забавные проекции. Твой код, очевидно, никаких LSP не нарушает, потому что принцип этот про типы. Про подстановку в валидный код валидных экземпляров типов. Принцип этот требует, чтобы код, который работает для некоего типа, работал бы точно так же для любых его наследников. То есть, ты можешь добавлять методы детишкам, но не изменять обозреваемое поведение наследуемых методов (да, да, когда ты делаешь наследника, который делает всё то же самое, но только ещё и в логи пишет - это тоже нарушение LSP, потому что поведение программы меняется).
А вот когда у тебя есть код napechatat( 2 + 2 ), а ты меняешь его на napechatat( 3 + 2 ), то никаким LSP тут не пахнет, потому что здесь нет никакой замены типов. Ты можешь этот код поменять на napechatat( 2.0 + 2 ), нарушив LSP , потому что он теперь напечатает не 4, а что-то вроде 4.00000000 (хотя тут всё немного сложнее), что скажет тебе, что float не может быть субтипом int
>> No.49898 Ответ
>>49842
Кризис среднего возраста и тех и у других. Все программисты через это проходят.
>> No.49899 Ответ
>>49898
Почти все
>> No.49955 Ответ
Файл: MFC.jpg
Jpg, 16.14 KB, 292×306 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
MFC.jpg
>>49899
- Церебротоник ("мозговитый"), IQ > 140, интроверт в терминальной стадии, нулевая привлекательность для девушек. Никогда не делает первый шаг, не начинает small talk, а если кто-то начал, то отвечает максимально кратко и молчит. Не знает, о чём говорить с девушками.
- Работает либо из дому удалённо, либо в на 90 % мужском коллективе.
- Много времени тратит на мышление, калории сжигаются, он всегда уставший, апатичный. Ускоренный обмен веществ.
- Не развита эмоциональность. Сух. Душнила.
- Акцентуация - смесь параноида ("всё предусмотреть, не пропустить багов, сделать надёжный девайс") и шизоида ("монады, моноиды, хаскелль, эрланг"). Тревожен, рационален. Делает всё долго, медленно, пiчально... основательно...
- Не способен адекватно рассказать о своих хобби, интересах, потому что они сложные наподобие "запилить свой процессор на FPGA своей архитектуры и микроархитектуры, а потом для него компилятор написать".
- Поскольку он потратил молодость на умственное, а не физическое развитие, то телосложение такое - рост средний по стране (от 175 до 180, при этом часть тела от пяток до пупка раза в два длиннее, чем от пупка до затылка), масса тела низкая, кости тонкие, ручки-веточки, худощав, крупные глаза. Не занимается спортом.
- Одевается в простейшую, дешёвую и удобную одежду, а не в красивую.
>> No.49961 Ответ
>>49955
Охренеть, это же про меня.
> IQ > 140, интроверт в терминальной стадии, нулевая привлекательность для девушек
Чек.
> Работает либо из дому удалённо
Чек.
> Много времени тратит на мышление
Чек.
> смесь параноида ("всё предусмотреть, не пропустить багов, сделать надёжный девайс") и шизоида ("монады, моноиды, хаскелль, эрланг")
Чек.
> запилить свой процессор на FPGA своей архитектуры и микроархитектуры, а потом для него компилятор написать
Чек.
> масса тела низкая, кости тонкие
Чек.
> Одевается в простейшую, дешёвую и удобную одежду
>>49955
Охренеть, это же про меня.
> IQ > 140, интроверт в терминальной стадии, нулевая привлекательность для девушек
Чек.
> Работает либо из дому удалённо
Чек.
> Много времени тратит на мышление
Чек.
> смесь параноида ("всё предусмотреть, не пропустить багов, сделать надёжный девайс") и шизоида ("монады, моноиды, хаскелль, эрланг")
Чек.
> запилить свой процессор на FPGA своей архитектуры и микроархитектуры, а потом для него компилятор написать
Чек.
> масса тела низкая, кости тонкие
Чек.
> Одевается в простейшую, дешёвую и удобную одежду
Чек.
Пять лет женат, живу в собственном доме у побережья Тихого океана, по-детски счастлив.
Сообщение слишком длинное. Полная версия.


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
Был удивлён, пролистав за десяток страниц, и не найдя здесь подобного трэда.
Решил начать учить язык богов. С чего начать - книги и мануалы, теория и практика (желательно на русском), в чём лучше писать (под винду и под никсы), советы, распространённые ошибки, всё сюда. Лисп-нить иди.
413 posts are omitted, из них 49 с файлами. Развернуть тред.
>> 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.49870 Ответ
Здравствуйте. Вы живы или умерли? Хочу срач CL vs Scheme в контекте описаний мест работы, где редко, тайком, но используют. Такие, вроде, есть.
>> No.49872 Ответ
>>49726
ЗаХОРОнить.

>>49870
> CL vs Scheme
Что то х~~ня, что это х~~ня.
Как работодателю мозги промоешь, на том и будешь писать.
>> No.49921 Ответ
>> No.49922 Ответ
>>49921
Ты автор этого кода? Используешь этот код?
Почему бы не перенести его прямо сюда, или даже заархивировать тот тред целиком, мало ли пропадёт. Если конечно считаешь, что он может быть полезен. Без метаинформации куски write-only лисп кода не имеют никакого смысла.
>> No.49940 Ответ
Файл: [AniFilm]-Subete-...
Jpg, 151.21 KB, 1280×720
edit Find source with google Find source with iqdb
[AniFilm]-Subete-ga-F-ni-Naru-04-[TV]-[WEBRip-720p.jpg
Файл: [AniFilm]-Subete-...
Jpg, 143.64 KB, 1280×720
edit Find source with google Find source with iqdb
[AniFilm]-Subete-ga-F-ni-Naru-04-[TV]-[WEBRip-720p.jpg
Файл: [AniFilm]-Subete-...
Jpg, 119.99 KB, 1280×720
edit Find source with google Find source with iqdb
[AniFilm]-Subete-ga-F-ni-Naru-04-[TV]-[WEBRip-720p.jpg

>>29402
Японцы жгут.
>> No.49942 Ответ
>> No.49944 Ответ
>>49942
В эндинге красуются файлы на лисп (1), интерпретатор GNU CLISP (2), фрагмент исходника (3) и пример реализации игры "Жизнь" Конвея на этом языке. Вдобавок -- ещё и с осью emacs от Грызущего Мозоли. Что мне показалось занятным.
>> No.49956 Ответ
Может кто знает, как обстаят дела с Вулканом?


No.49861 Ответ [Открыть тред]
Файл: 16025644159910.jpg
Jpg, 64.16 KB, 604×604
Ваши настройки цензуры запрещают этот файл.
unrated
Дали входное задание, понять и написать программу для аутентификации на сервер с использованием ролей на Java Spring.

Я понял, что нужно создать бд с таблицами пользователей, ролей и объединяющую, прописать классы, которые будут считывать и добавлять туда новых, страницы отображения и доступы для разных ролей, а дальше что? В обычной idea готовые проекты (скачивал, чтобы понять) не запускаются, в скриншотах и видео видел, что это происходит через tomcat, встроенный в ультимативную версию, для чего он нужен?

Подскажите, пожалуйста по структуре программы: что нужно ещё добавить? И как запустить готовый проект?
>> No.49863 Ответ
>>49861
Проекты, скорее всего, имеют в корневой директории файл pom.xml. Для сборки таких проектов используется утилита maven. Создаёшь jar-файл через mvn install, потом этот jar-ник закидываешь в томкатовскую директорию webapps. Томкат можешь скачать и запустить отдельно.
>> No.49864 Ответ
>>49863
mvn install - это встроенная в ide утилита? То есть нужно просто запустить tomcat сервер, как это делается при, например, администировании бд?
>> No.49865 Ответ
>>49864
> mvn install - это встроенная в ide утилита?
Нет, это команда мавена, мавен - это самостоятельная программа, она может работать и без ide, хотя разные ide могут создавать свои интерфейсы для работы с мавеном.
> То есть нужно просто запустить tomcat сервер, как это делается при, например, администировании бд?
Да, просто запустить сервер и залить своё приложение на сервер. Не понял при чём здесь администрирование бд. Ты запускаешь томкат чтобы администрировать бд? Запости скриншоты.
>> No.49866 Ответ
>>49865
> Ты запускаешь томкат чтобы администрировать бд?
Приводил как аналогию работы сервера томкэт, и сервера для бд.
>> No.49869 Ответ
Ему сегодня исполнялось тридцать лет! Да, 30 полновесных лет в дерьме и позоре. И никто не поздравил. Хотя с чем поздравлять? С ним даже разговаривать-то старались только по необходимости. Этот факт породил в голове java-кодера ворох неприятных мыслей. Он просрал свою жизнь… Просрал настолько обидным способом, насколько это вообще возможно. Размышляя таким образом, он дошел до компьютера и, не снимая уличной одежды, плюхнулся на подобранный им на помойке засаленный офисный стул, не имеющий одного подлокотника, но еще вполне рабочий. Привычным движением джавист ткнул в кнопку включения питания и быстрее запустил IDEA. Он бы держал компьютер включенным круглые сутки, но электричество приходилось экономить. Добавил в pom хибернейт, сделал maven install, прошло несколько минут, в течение которых он возбужденно ёрзал по стулу.

Наконец-то! Он добавил аннотации ломбока на все энтити. Заебца! Почти как Котлин! Отчего-то ему вдруг захотелось поделиться своими мыслями с /s/осачерами. Выбрав создание нового треда, он начал строчить: «Ребята! Мне тридцать лет. Я помню, как десять лет назад так же, как и сейчас, петушил круды и рефакторил тырпрайзные проекты. У меня не было ни гостей, ни подарков. У меня и сегодня нет ни гостей, ни подарков. Мне было двадцать лет тогда, я был тощим и патлатым. Сегодня я жирный и лысею. Пожалейте меня. Мне плохо.» Яростно стуча по клавишам, он не заметил, как в комнату тихо вошла мать.

-Сынок… что ж ты не разделся-то.

Ему сегодня исполнялось тридцать лет! Да, 30 полновесных лет в дерьме и позоре. И никто не поздравил. Хотя с чем поздравлять? С ним даже разговаривать-то старались только по необходимости. Этот факт породил в голове java-кодера ворох неприятных мыслей. Он просрал свою жизнь… Просрал настолько обидным способом, насколько это вообще возможно. Размышляя таким образом, он дошел до компьютера и, не снимая уличной одежды, плюхнулся на подобранный им на помойке засаленный офисный стул, не имеющий одного подлокотника, но еще вполне рабочий. Привычным движением джавист ткнул в кнопку включения питания и быстрее запустил IDEA. Он бы держал компьютер включенным круглые сутки, но электричество приходилось экономить. Добавил в pom хибернейт, сделал maven install, прошло несколько минут, в течение которых он возбужденно ёрзал по стулу.

Наконец-то! Он добавил аннотации ломбока на все энтити. Заебца! Почти как Котлин! Отчего-то ему вдруг захотелось поделиться своими мыслями с /s/осачерами. Выбрав создание нового треда, он начал строчить: «Ребята! Мне тридцать лет. Я помню, как десять лет назад так же, как и сейчас, петушил круды и рефакторил тырпрайзные проекты. У меня не было ни гостей, ни подарков. У меня и сегодня нет ни гостей, ни подарков. Мне было двадцать лет тогда, я был тощим и патлатым. Сегодня я жирный и лысею. Пожалейте меня. Мне плохо.» Яростно стуча по клавишам, он не заметил, как в комнату тихо вошла мать.

-Сынок… что ж ты не разделся-то.

Он окинул ее беглым взглядом и хотел было уже привычно ответить матом, но что-то его остановило. Седые волосы матери, ее молящий взгляд, морщинистое лицо…

-Алешенька… сегодня ж день рожденья у тебя, сыночек… извини, я не смогла купить тебе ничего. Пенсии совсем не хватает. Извини меня…

Тут мама не сдержалась и глухо зарыдала. Алексей хотел было ее утешить, но что он мог сказать? Мама, прости меня за загубленную жизнь? Мама, прости меня за то, что я занимался крудошлепством безвылазно десять лет подряд? Сначала он считал себя джавистом джуниором… прошел год. Потом два. Три. Он втянулся. Спринг бут стал его жизнью.

- Да ладно, мам… ничего. Мне ж не надо все равно ничего.

Он произнес эти слова нарочито грубым тоном. Алексей вообще много раз задумывался, что с ним будет, когда мать умрет. Ведь она уже была такой старой и дряхлой… В последнее время она уже почти не выходила из дома. Кое-как спровадив плачущую маму из комнаты, он с тяжелым сердцем вернулся к компьютеру. Чтение накопившихся ответов его не порадовало. Среди потоков мата и насмешек нашлось кое-что необычное - некий ослослов успел за это время накатать крохотный рассказик под названием «Смерть Джависта», где в красках описывал его будущее через десять лет. Язык в рассказе был, наверно, еще кривее, чем в школьных сочинениях, но суть была ухвачена верно. Разволновавшись, он принялся было печатать ответ, как внезапно почувствовал: пальцы его не слушаются. Это ощущение напомнило ему о том, как в вузе он подрабатывал грузчиком, после чего не мог даже поднести ко рту ложку. Но ведь сегодня он ничего не грузил! Почему же тогда руки холодны и безжизненны? И почему так болит сердце… Больше, чем обычно… Он попытался встать. Невероятным волевым усилием ему это удалось, хотя при этом грудь защемило волной жуткой боли. Сдерживая крик, Алёша потянулся к грязному стакану со вчерашней водой. Поводя из стороны в сторону дрожащей головой, он попытался вспомнить, где лежит аптечка. По лбу струился ледяной пот. Разгребая руками, почти мертвыми ниже локтя, гору хлама на полу, он таки нашел ее.

«Это инфаркт… нужен валидол!» — пронеслось в его голове. Кое-как рванув молнию в сторону лихорадочно начал рыться в горе просроченных годы назад лекарств. Внезапно все его тело прорезал такой разряд боли, что он не сдержался и заорал во весь голос. В коридоре раздалось шарканье материнских тапок, и через несколько секунд она уже стояла на пороге.

- Сынок! Что с тобой?! — от шока ее голос словно помолодел.
- У…мираю.. — кое-как выдохнул леденеющими губами.

Зрение начало меркнуть. Последнее, что пронеслось в его голове, было: «mvn deploy» Через три недели милиция, вскрыв по жалобам соседей провонявшую квартиру, нашла в ней два чудовищно раздувшихся, уже полностью разложившихся трупа. F.

паста с пораши
Сообщение слишком длинное. Полная версия.
>> No.49952 Ответ
>>49869
Спасибо анон за хорошее настроение.
>> No.49953 Ответ
>>49869
Блин зачем я на этих бордах сижу, плохая, негодная паста.
>> No.49954 Ответ
>>49869
Хуета хует.
"Язык в рассказе был, наверно, нормальным, но суть была ухвачена неверно."


No.27510 Ответ [Открыть тред]
Файл: 200px-NET_h_rgb_2...
Png, 17.12 KB, 200×49
edit Find source with google Find source with iqdb
200px-NET_h_rgb_2.png
Файл: 371px-C_sharp.svg...
Png, 6.26 KB, 371×254
edit Find source with google Find source with iqdb
371px-C_sharp.svg.png

Здесь будет ветка обсуждения .net и C#.
И сразу вопрос: какой встроенный класс в C# реализует массив с обращением по индексу за О(1), в котором при этом можно было бы добовлять в конец элементы(аналог vector из С++), и какой соответственно реализует связный список с вставкой элемента в середину и начало и удалением элемента за О(1)(аналог list в С++).
475 posts are omitted, из них 74 с файлами. Развернуть тред.
>> No.49108 Ответ
>> No.49109 Ответ
>>49108
Это старая, упомянутая в посте.
>> No.49900 Ответ
>>27510
Доброкодер, что скажешь о новом .NET Core? Зачем они отделили ядро от стандартной библиотеки? Модно или практично? Сыро или стабильно? Дипломный проект или коммершиал?
>> No.49910 Ответ
>>49900
> новом .NET Core
Ты о коре в целом или какой-то последней версии (хотя это теперь снова "просто" .Net 5)?
>> No.49911 Ответ
Я вот побегал по собесам...
А есть ли тут синиоры-помидоры интервьюеры? Прособесите меня на... ну пусть будет синиорную позицию веб фулстек?
>> No.49912 Ответ
Файл: 1381398671594.jpg
Jpg, 101.70 KB, 400×400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1381398671594.jpg
>>49911
Ты делал тестовые задания. Никто с тобой и срать рядом не сядет, вот да.
>> No.49913 Ответ
>>49912
Чевокаво?
К чему ты это крякнул?
>> No.49915 Ответ
Файл: kirpich_127384164...
Jpg, 41.27 KB, 600×327
edit Find source with google Find source with iqdb
kirpich_127384164_orig_.jpg
Файл: 1611058957400.png
Png, 1.24 KB, 300×20
edit Find source with google Find source with iqdb
1611058957400.png

>>49913
Вон из профессии.
>> No.49916 Ответ
>>49915
Почему?
>> No.49917 Ответ
>>49912
Как ты определил что он делал тестовые задания?


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
17 posts are omitted, из них 2 с файлами. Развернуть тред.
>> 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.49808 Ответ
>> No.49835 Ответ
Файл: 4317119750_4d5c719004.jpg
Jpg, 39.13 KB, 500×449 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
4317119750_4d5c719004.jpg
>>49719
Ну? Где мои интересности?
>> No.49837 Ответ
Файл: e98f78899ee18eda12326c79.jpg
Jpg, 201.74 KB, 900×540 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
e98f78899ee18eda12326c79.jpg
>>49835
Прости, я почти ничего не читаю в эти сумбурные времена!
Узнал только про интересный проект, позволяющий компилировать полиморфные функции без указателей и без специализации. В README тут более подробно. Интересно, насколько это может иметь смысл добавить в уже существующие функциональные языки.

https://github.com/ollef/sixten#compared-to-other-languages
>> No.49901 Ответ
>>49719
Я несколько лет постил полезности и интересности в офисный чат. Каждый раз меня называли спамером, который отвлекает от работы. Почти через год рандомный сотрудник вспоминал про старые сообщения начинал активно юзать. Не бросай этот тред.
>> No.49902 Ответ
>>49719
Google Remote Desktop для удаленки на карантине
>> No.49904 Ответ
>> No.49905 Ответ
Файл: IMG_20181006_172845.jpg
Jpg, 537.96 KB, 2592×1944 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
IMG_20181006_172845.jpg
>>49901
Из софтовых интересностей нашел gallery-dl и TMSU для удобной загрузки, хранения и поиска картинок по тегам.

https://github.com/mikf/gallery-dl
https://github.com/oniony/TMSU

По CS недавно появился канал на ютубе, рассказывающий в небольших видео о шероховатостях ghc. И из последнего прочитанного понравились блогпосты об экзистенциальных и линейных типах.

https://www.youtube.com/channel/UCI1Z201n-8OelkSg0DVOsng
https://blog.sumtypeofway.com/posts/existential-haskell.html
https://www.tweag.io/blog/2020-11-11-linear-dps/


No.43511 Ответ [Открыть тред]
Файл: 599716131.png
Png, 77.78 KB, 317×372 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
599716131.png
Предыдущий тред: >>39226
418 posts are omitted, из них 37 с файлами. Развернуть тред.
>> 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
Речь идет о неприятных изменениях в условиях лицензии и распространения. Сам до конца не въехал пока, поэтому не буду пытаться пересказать своими словами.
>> No.49848 Ответ
Здравствуйте. Вопросы больше про Си, но тем не менее:
1) NULL это всегда и везде 0х0000? Или зависит от либ/архитектуры?
2) Сейчаc читаю LDD для протухших ядер, и там везде после kmalloc() мемсетится нулями весь выделенный ломоть памяти. Зачем?
>> No.49849 Ответ
>>49848
> NULL это всегда и везде 0х0000?
Нет. Хотя реальных архитектур ты можешь и не встретить. http://c-faq.com/null/varieties.html
> Сейчаc читаю LDD для протухших ядер, и там везде после kmalloc() мемсетится нулями весь выделенный ломоть памяти. Зачем?
Видимо чтобы нельзя было прочитать какие-то ценные данные, которые там были до этого.
>> No.49850 Ответ
>>49686
Какие-нибудь KDE просто форкнут и начнут паралельно пилить, не проблема.
>> No.49894 Ответ
>>49686
Вроде бы никто не мешает использовать старые версии, напрмер 4, для десктопа там есть все, что необходимо, и чуточку больше.
>> No.49895 Ответ
>>49850
Лицензия исключает любые форки, но есть отдельный договор с Free Software Foundation о том, что Qt никогда не станет закрытым и только платным. Конечно, Qt может перейти полностью на GPL и коммерческую лицензию со следующей версии.
>> No.49896 Ответ
>>49894
Если ты не знаешь откуда скачать старые версии https://download.qt.io/archive/qt/


No.49322 Ответ [Открыть тред]
Файл: tenor.gif
Gif, 428.29 KB, 320×240 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tenor.gif
Захотелось попробовать чего-нибудь этакого и написать мелодию, используя исключительно текст. Еще до изобретения этих ваших трекеров программисты каждую нотку прописывали в коде программы. Вот что анон может посоветовать погуглить носкиллу по данному вопросу? Музыку писать-то я умею, а вот программировать нет. Есть ли что-то простое и легкоусвояемое?
17 posts are omitted, из них 3 с файлами. Развернуть тред.
>> 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.49888 Ответ
>>49322
Просто оставлю это здесь https://sonic-pi.net/
>> No.49892 Ответ
>>49888
А вот это уже не так просто, но тоже оставлю https://supercollider.github.io/
>> No.49893 Ответ
>>49892
Вот кстати да, словосочетание "язык программирования музыки" у меня в первую очередь вызывает ассоциации с чем-то вроде https://chuck.cs.princeton.edu/

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


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

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