Email or username:

Password:

Forgot your password?
172 posts total
devadideva

Случаем никто не помнит игры про грибы на Nokia? Это было что-то вроде платформера, грибы были разумными и их нужно было уничтожать. Ещё была какая-то игра про овец: нужно было ходить по карте и... искать их? Или что-то в этом роде, точно не помню. Ну и раз уж речь зашла про игры на старых мобильниках... Какие были Ваши любимые игры? Мне лучше всего запомнились Ultimate Spider Man (там можно было играть как за Человека-Паука, так и за Венома) и King Kong (там нужно было драться с динозаврами).

Show previous comments
devadideva

Сколько лет я это вспоминал... Неужели я умру, но таки не вспомню...

Mikhail

@devadideva была игра с мотоциклами gravity что-то там. На Самсунгах мне нравилась ещё нативная snowball fight

Mikhail

@devadideva по твоему описанию гуглится dwarf mushrooms, оно? Про овец напомнило sven, но там их нужно было не только искать 😆

devadideva

Тр3тий Сергеевич сейчас ведёт трансляцию! Приходите!
https://xxivproduction.video/w/q5pFUBVhbstsE9GJykZiWg

devadideva

Кто-то считает овец, чтобы заснуть, а мы будем считать манулов!
https://vid.puffyan.us/watch?v=nviEkurZlao

devadideva

Тимурка ​:blobfoxheart:​

devadideva

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

Самое простое решение, оно же самое расточительное, заключается в написании отдельного модуля для каждой версии. При этом имеются следующие недостатки: низкое переиспользование кода; высокая ветвистость -- возникают конструкции вроде следующих:

if (protocol_version == 0)
protocol_method_0(...);
else if (protocol_version == 1)
protocol_method_1(...);

Более того -- при обновлении протокола придётся дописывать по ветви во *всей* программе!

Ещё одним способом решения может быть модификация предыдущего метода: включить в вызов каждой функции протокола аргумент версии. Тогда можно будет делать так:

protocol_method(protocol_version, ...);

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

Но вот что делать, скажем, если в новой версии протокола изменена сигнатура функции? Тогда мы снова вынуждены городить if-else для того, чтобы правильно работать. В этом случае можно придумать ввести дополнительный аргумент "сырых" данных, в которых может быть что угодно или сделать все функции с переменным числом аргументов, а что туда писать прописать в документации, однако это уж слишком непрозрачно.

Делают же как-то это и уже много лет! Например, если указать gcc использовать такой-то стандарт, он и будет его использовать! Читал ещё про шаблон "Стратегия", но он годится только для объектно-ориентированных языков. Как-то же справлялись с этим до Java/C++ и подобных?
@tech@mastodon.ml

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

Самое простое решение, оно же самое расточительное, заключается в написании отдельного модуля для каждой версии. При этом имеются следующие недостатки: низкое переиспользование кода; высокая ветвистость -- возникают конструкции вроде следующих:

if (protocol_version == 0)

yesfreenet

@devadideva @tech

Хорошо, что не свой универсальный стандарт, а то было бы три стандарта. 😅

[DATA EXPUNGED]
devadideva

Попробую-ка я опросы. Началась весна, некоторые люди уже начинают есть окрошку. На чём предпочитаете её Вы?

Anonymous poll

Poll

На квасе
29
0%
На кефире
7
0%
На сыворотке
0
0%
На воде
2
0%
Посмотреть ответы
7
0%
0 people voted.
Show previous comments
Mikhail

@devadideva квас > минералка+уксус > тан/аран

під'їхав на ​ꙋделкꙋ​ 🍄

@devadideva главное, чтобы напиток был не сладкий, а кислый, тогда и окрошка будет вкусной. Причина, по которой многие предпочитают кефир (или айран) именно в том, что покупной квас имеет довольно неподходящий сладкий вкус.
PS Окрошка хороша всё же жарким летом.
#окрошка

Inari Uveh 🍄

@devadideva

После перехода на веганство встал вопром, чем заменить кефир.
Пробовал на квасе, в том числе домашнем - хрень получается. Быстро портится и тухнет... особенно лук.
Взял просто воду и подсолил. Перфекто! Можно намутить бачёк и есть хоть целую неделю.

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

devadideva

Едрён-макарон... До сегодняшнего дня я думал, что проект mingw это про перенос binutils, gcc и прочего под Windows. Оказывается, я могу поставить mingw на linux и компилировать бинарники под Windows и мне при этом не нужен сам Windows! Чёрт возьми, сколько времени на перенос кода туда-сюда ушло впустую!..

devadideva

У кого можно поселиться на Matrix-сервере?

devadideva

Смотрите, какая классная штука! Видел сегодня у кого-то в ленте, ссылку отложил.
https://radiofreefedi.net/

Dr. Quadragon ❌

@devadideva Ох, какая вещь!

Кинул в закладки!

Такие бы штуки вообще-то выкладывать в rf :)

Александр
@devadideva Прикольно, там и ссылка на поток есть! Добавлю в Rhythmbox.
devadideva

Срочно! Это сэндвич из крекеров и шоколадной конфеты! Распространите!

devadideva

Все здравствуйте! У меня возникла пара вопросов, которые я уже некоторое время не могу для себя разрешить.

Вопрос 1. Каких соглашений следует придерживаться при написании коммитов до реализации некоторого труднозатратного функционала (feature)? Под труднозатратным я подразумеваю такое изменение, которое, для удобства будущего чтения
истории коммитов, необходимо разбить на несколько изменений поменьше (например, такое может возникнуть при
реализации функционала для нескольких операционных систем: первый коммит в feature-ветке относился бы к OS-1,
второй -- к OS-2 и т.д.). В общем случае рекомендуют придерживаться Conventional Commits, но тогда minor-версия
будет возрастать слишком быстро (потому как каждое изменение в рамках feature-ветки придётся помечать как feat).
На форумах предлагали следующий вариант: объединить все коммиты в ветке в один (squash), который уже пометить как
Conventional Commit. Однако в этом случае теряется история изменений... Может быть есть какой-нибудь промежуточный
вариант, допускающий автоматизацию (скажем, генерацию CHANGELOG.md), являющийся общепринятым? Хочется всё сделать правильно.

Вопрос 2. При тестировании коммита на соответствие Conventional Commits рекомендуют использовать husky и
commitlint (git-hook). Однако всё это добро необходимо всякий раз складывать в репозиторий (загружаются
node_modules весом ~100 MiB), что меня не слишком устраивает: для такой относительно небольшой задачи требуется
столько всего устанавливать! Нет ли варианта проще, что-то вроде небольшой утилиты для этого? Да и вообще, есть ли какой-то список средств для автоматизации подобных задач (аналоги commitlint, conventional-changelog, standard-version и проч.) не из npm? |
@rf@mastodon.ml

Все здравствуйте! У меня возникла пара вопросов, которые я уже некоторое время не могу для себя разрешить.

Вопрос 1. Каких соглашений следует придерживаться при написании коммитов до реализации некоторого труднозатратного функционала (feature)? Под труднозатратным я подразумеваю такое изменение, которое, для удобства будущего чтения
истории коммитов, необходимо разбить на несколько изменений поменьше (например, такое может возникнуть при
реализации функционала для нескольких операционных систем: первый...

devadideva

Товарищи пираты!

Подскажите, пожалуйста, где можно скачать "The Art of Electronics, 3rd Edition" и "Hands-On Lab Course" к нему или "The Art of Electronics, 2nd Edition" и "Student Manual" к нему?

Везде, где мог поискать, уже поискал.
@rf@mastodon.ml

Go Up