[ /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.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.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 не один раз на пуш, а на каждый коммит (даже на те коммиты, которые во вмерженых в основную ветку бранчах)?
70 posts are omitted, из них 10 с файлами. Развернуть тред.
>> No.48025 Ответ
>>48011
http://circe.univ-fcomte.fr/Docs/CVS/cvs.html — кинул.
> note that users must have write access to the CVSROOT/val-tags file
Если этого не сделать, клиент просто подвиснет.
>> No.48075 Ответ
fossil отличнейшая vcs.
>> No.48968 Ответ
Файл: New-Mind-Map.jpg
Jpg, 64.98 KB, 1434×710 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
New-Mind-Map.jpg
Здравствуй, медленно/s/.
Использую в проекте alembic для миграций. Само собой решил добавить миграции в проект, но не все.
Хочу чтобы в dev ветке были все миграции базы, со всеми экспериментами и промежуточными вариантами, а в master ветке были только миграции, необходимые для переката с прошлого релиза, а миграции dev ветки туда не попадали.
Как это можно сделать правильнее?

Капча пытается что-то подсказать: момента настала версий сдвинулась
>> 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.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
62 posts are omitted, из них 13 с файлами. Развернуть тред.
>> No.49932 Ответ
>>49931
Ну если твои дефолтные ответы известны все заранее, то в чем проблема поднимать событие, когда этот ответ выдает бот, в этот эвенг складывать всю необходимую для анализа информацию и анализировать ее на стороне объекта, который слушает это событие?
>> No.49933 Ответ
>>49930
Воть https://losst.ru/wp-content/uploads/2016/08/BOOK_PRACTIS_245.pdf
Это не документация в чистом виде, это типо статьи с описанием что, зачем и почему
>> No.49934 Ответ
Порекомендуйте книги или статьи по сетям в Юниксах. Не простое разъяснение абстракций tcp/ip стэка, а чтобы соответствовало everything is file, и эталонная бака могла понять какой объект и за что отвечает.
>> No.49935 Ответ
Файл: TCPIPIllustrated.png
Png, 26.38 KB, 350×292 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
TCPIPIllustrated.png
>>49934
Ричард Стивенс и только он.
>> No.49936 Ответ
>>49933
Хорошо.
>> No.49937 Ответ
Заядлые кодеры с галер, если бы к вам на собеседование пришел устраиваться чел без профильного образования и без опыта, то чем он это мог бы нивелировать. Пара веб проектов и прикладная программка, достаточный минимум?
>> No.49938 Ответ
Файл: touhou-chibi.jpg
Jpg, 55.77 KB, 501×239 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
touhou-chibi.jpg
>>49937
...Он пристроился в висячем положении в нижней нише выгребной ямы, приготовил свое короткое копьё и стал ждать. Когда же Уэсуги наконец появился в туалете и присел на корточки для исполнения своих естественных надобностей, карлик вонзил ему в анус копьё. Затем он погрузился в фекалии, оставив над поверхностью лишь кончик крошечной дыхательной трубочки, которая в суматохе осталась незамеченной охранниками Уэсуги.

Дзиннай пробыл в скрюченной позе в выгребной яме несколько часов. Но он был готов к этому, так как специально готовился к своей миссии...
>> No.49939 Ответ
>>49937
Не скажу, что я заядлый кодер и строго говоря не работаю в IT, но хотел бы себе помощника по внутренним проектам в организации, в которых надо кодить. Лично я бы от такого кандидата хотел видеть желание разбираться в первую очередь в технологическом процессе, для оптимизации которого кандидат и собирается кодить, чтобы он даже и не думал ожидать, что придет некий дядя, поставит ему задачу так, чтобы кодер смог абстрагироваться от технологического процесса и выдать код, совершенно не пытаясь понять, что он кодит и для чего.
>> No.49941 Ответ
>>49937
В приличное место тебя и джуном не возьмут. Т.к. "пара веб проектов" - это такое себе, в современных реалиях, "прикладная программка" - скорее всего там будет такой говнокод, что прости хоспади.
Больше всего шанцев попасть в какое-нибудь гос-предприятие, где платят мало, из-за чего туда никто никогда не идет.
Но тут уже вопрос "а что именно ты хочешь прогать"?
Говносайтики - там сразу нет.
Микроконтроллеры - безперспективно.
Софт для внутренних нужд - ну тоже такое себе.

Хотя можно попробовать во всякие яндексы и прочие касперские, они, вроде, набирают всех подряд за еду, немного обучают.
>> No.49945 Ответ
>>49941
> яндексы набирают всех подряд
Если бы они набирали всех подряд, им было бы получше. Но нет, у них всё-таки есть отбор.


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
Был удивлён, пролистав за десяток страниц, и не найдя здесь подобного трэда.
Решил начать учить язык богов. С чего начать - книги и мануалы, теория и практика (желательно на русском), в чём лучше писать (под винду и под никсы), советы, распространённые ошибки, всё сюда. Лисп-нить иди.
412 posts are omitted, из них 49 с файлами. Развернуть тред.
>> No.49669 Ответ
>>49668
Где ты увидел доведение до абсурда? Мне кажется ты проецируешь какие то свои взгляды, например если тебе проще работать с текстом, это не значит что и другим также.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Или вот методы, методы это функции, которые привязаны к конкретной структуре, но что если мне нужны методы, которые связывают два разных класса? Например это может код, переводящий из вектора в растровую картинку. Этот код должен быть методом класса для растровой или векторной картинки?
87 posts are omitted, из них 6 с файлами. Развернуть тред.
>> No.49846 Ответ
>>49845
> Остаётся наследование. Вот это уже чистая ООПешная тема.
А трейты (trait, интерфейсы с возможностью объявлять дефолтные реализации методов) относятся к наследованию?
А typeclass из Хаскеля?
Видимо наследование есть не только в ООП, или в ООП есть своё ООП-шное определение наследования.
>> No.49847 Ответ
>>49846
В ООП-шном наследовании можно унаследовать переопределённую реализацию метода.
С трейтами и тайпклассами это сделать не так просто, как в ООП.
>> 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.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/

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


No.49834 Ответ [Открыть тред]
Ура! Сегодня День Программиста! Все же мы чуть такие? :)

https://youtu.be/2QkTuQPY0jY
>> No.49851 Ответ
Файл: 12726202097097.gif
Gif, 3.22 KB, 240×240 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
12726202097097.gif
Божечки кошечки. А тут программисты бывают вообще? Или так, только интересующиеся?
>> No.49852 Ответ
typingstudy.com - интересно,насколько трудно будет напечатать без опечаток все 15 уроков подряд?
>> No.49853 Ответ
>>49851
Бывают. Я же тут иногда.

>>49852
Трудно. конкретно этот не пробовал, но в соло на клавиатуре месяц пальцы ломал. Зато теперь на английском печатаю вслепую без проблем. Надо бы за русский еще засесть.
>> No.49854 Ответ
>>49853
> Бывают
Классно тогда. Но я, как истинный слоупок, сначала написал и только потом понял что вопрос был бессмысленен.


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