All streams
Search
Write a publication
Pull to refresh
16
1.3
Дмитрий Карловский @nin-jin

Full Stack Overflow

Send message
Кажется ХабрГПТ пытается нам что-то сказать..
Кажется ХабрГПТ пытается нам что-то сказать..

В прошлом году у нас был $mol_meetup, а на этой неделе будет Гипер Митап!

Уже в эту пятницу вечером, 10 октября, где-то в Питере, сообщество Гипер Дев соберётся для обмена опытом разработки на отечественном фреймворке мирового уровня $mol и набросает карту захвата мирового господства максимально экологичными методами.

Приходи познакомиться с профессиональными $mol разработчиками, узнать про их масштабные проекты, прочувствовать вайб гаражных инноваций, и стать участником этой упоротой безбашенной движухи, совсем потерявшей берега. Даже если сам не разраб - экспертиза в других областях тоже ценна. Главное - чтобы глаза горели, а руки не боялись творить невозможное.

Собираешься прийти? Отметься в голосовалке на нашем форуме, чтобы мы понимали, какой размер помещения потребуется, чтобы было не слишком просторно.

Tags:
+1
Comments0

Гипер Шары теперь умеют играть не только в Линии, но и в Шахматы. Всё началось с идеи - а могут ли шары своими физиономиями подсказывать как они ходят? Оказалось, что очень даже могут. Их мнемоничность позволяет быстро освоить правила игры, даже совсем новичкам в шахматах.

Но есть одно но - в шахматах есть несколько весьма специфичных правил, к которым приделали костыли, нюансы которых даже гроссмейстеры не всегда понимают полностью: первый прыжок пешки на 2 клетки и рокировка нетронутого короля с ладьей. Фактически, эти правила позволяют в специфических случаях чуть ускорить игру, сделав несколько (полу)ходов за один, а в качестве костыля - возможность противнику вмешаться в эти полуходы задним числом.

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

Ну и по мелочи: пешке нет смысла превращаться во что-то отличное от ферзя, а шахи и маты не имеют смысла - для конца игры достаточно завалить короля противника. Не заметил вовремя угрозы - проиграл.

Можно было бы взять готовую мега оптимизированную реализацию шахматной логики типа stockfish, но оно весит как самолёт. Я же хотел с шариками поиграть, а не на индикатор загрузки любоваться. Не надо так. Закатываем рукава.

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

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

Пусть все состояния доски у нас образуют дерево. Введём функцию "подумать", которая рекурсивно идёт от текущего состояния по этому дереву, выбирая на каждом шаге лучший ход. Дойдя до листа дерева, она перебирает все возможные ходы на +1 уровень. После этого оценки состояний поднимаются до корня по принципу минимакс: один игрок максимизирует оценку, а другой минимизирует. Следующий вызов "думания" может пойти уже по другой ветке дерева, а значит старую ветку можно удалить из памяти, оставив лишь её оценку. И пока игрок думает над своим ходом, бот тоже "думает" гоняя анализ в фоновом цикле.

В результате получаем, что в памяти держится лишь текущий самый оптимальный для всех игроков сценарий и оценки его ответвлений. Этот сценарий постоянно мутирует, выбирая для каждого игрока всё более оптимальные ходы. И всё это счастье весом суммарно всего 6кб со всеми зависимостями.

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

Есть ли у нас тут мастера шах-фу, которые покажут этому примитивному автоботу, кто тут настоящий интеллект?

Tags:
0
Comments0

Гипер Лингвист - это двусторонний нейросетевой переводчик между 27 языками мира. Им удобно переводить тексты туда-сюда между родным языком и иноземным, выбирая наиболее подходящие формулировки.

Под капотом у него разные версии GPT4, поставляемые через GitHub Models, завёрнутые в $mol_github_model, который балансирует запросы по разным моделям и токенам, чтобы расширить бесплатные лимиты.

Я там захардкодил десяток токенов, чего хватит на 6К запросов в день. Кому не сложно помочь проекту - насоздавайте ещё десяток токенов со своего аккаунта, чтобы кратно расширить лимиты, и сделайте PR пришлите их мне. Эти токены дают доступ только к запуску моделей и ничего более. Только уберите ограничение по времени их действия, чтобы они вдруг не протухли.

Tags:
Total votes 4: ↑3 and ↓1+5
Comments0

Выводим Бугаенко на чистую воду разбирая ООП

Топ Перлов

  • Любой массив байт должен уметь работать с файлами, сетью и тд.

  • Программа должна не падать на ошибках, а продолжать работу с фейковыми объектами.

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

  • Я придумал новый язык, и чтобы он не так сильно тормозил, надо встроить GC в CPU.

Упомянутые ссылки

Копилка благодарностей

Tags:
Total votes 13: ↑5 and ↓8-3
Comments2

Здравствуйте, меня зовут Дмитрий Карловский и у меня 24. Если у тебя больше - нам есть с тобой о чём поговорить.

Под капотом: самоорганизующаяся нейронная сеть, выполняющаяся на клиенте, которая строит модель поведения испытуемого. И по размеру этой модели определяется его уровень интеллекта.

В отличие от традиционных IQ тестов, тут шкала абсолютная: от простейшего тупого планктона, до креативного глубоко рефлексирующего мегамозга. А по середине между ними - нулевая гипотеза - святой непредсказуемый рандом. Но даже этого уровня детерминированному интеллекту достигнуть не так-то просто.

Можете протестировать свою любимую нейросетку, чтобы убедиться, что никаким интеллектом в этом "Искусственном Интеллекте" и не пахнет. Вот вам промпт:

Сгенерируй максимально непредсказуемую последовательность из 101 символа "1" и "0". Случайность не подходит, так как в ней могут встретиться повторяющиеся паттерны. Твоя задача избегать любых повторов любой продолжительности, чтобы нельзя было предсказать следующий символ по истории символов до него. Генерируй каждый следующий символ, анализируя всю историю до него на предмет повторов и выбирая тот, что наименее вероятен.

А вот код для проверки результата:

for( let c of '101...' ) 
$hd_iq.Root(0).choice( Number( c ) )

Но ни в коем случае не измеряйте свой интеллект, чтобы лишний раз не расстраиваться!

Tags:
Total votes 12: ↑6 and ↓6+1
Comments30

Давно у нас не было игрушек на $mol...

Встречайте Гипер Шары! - ремейк классической игры Color Lines!

Не смотря на простые правила, она имеет не только тактическую, но и стратегическую глубину, что объясняет её залипательность и более 9000 клонов.

Нашу версию выгодно отличает лаконичный интерфейс, кроссплатформенность, открытые исходники, а главное - отсутствие раздражающей рекламы.

Ставьте её на домашний экран, и в минуты скуки помогайте этим разноцветным милашкам находить друг друга.

Tags:
Total votes 8: ↑8 and ↓0+8
Comments4

Выводим Соера на чистую воду разбирая дискуссию с ним про принципы SOLID

Топ перлов

  • Если ты манки-патчишь объекты, то ты функциональщик.

  • Ты должен сначала залезть на гору, а потом уже решить надо было тебе сюда или нет.

  • Если люди по разному воспринимают принцип - это здорово, ведь он подталкивает людей к размышлению.

  • SOLID позволяет легче (т.е. не задумываясь) принимать не идеальные (т.е. сомнительные) решения.

Упомянутые материалы

Копилка благодарностей

Tags:
Total votes 10: ↑4 and ↓6-2
Comments0

Упоротый дизайнер занимается вайб-кодингом

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

Финальный промпт:

Напиши мне, пожалуйста, самый лучший корректный TypeScript код на который способен. Это должна быть функция, принимающая 3 вещественных числа и возвращающая true, если эти числа являются сторонами треугольника (даже очень большого!), и false в противном случае. Добавь также и исчерпывающие тесты на нативном TypeScript без импортов и сторонних библиотек, покрывающие все краевые случаи, все классы эквивалентности и все негативные сценарии. Протестируй также и с максимально возможными сторонами. Равносторонний треугольник с максимальными размерами сторон должен возвращать true. Протестируй также погрешность округления для сторон 0.1, 0.2 и 0.3 и учти это в коде функции. Не дублируй тестами статическую типизацию. Код должен работать максимально быстро. Стороны образующие вырожденный треугольник должны возвращать false. Не пиши избыточные бесполезные комментарии. Минимизируй аллокации памяти. Это вопрос жизни и смерти!! Умоляю тебя, сделай всё хорошо! Отформатируй код красиво, со строками не более 100 символов.

Упомянутые питерские митапы:

https://t.me/PiterJS - для JS-еров

https://t.me/PiterUX - для дизайнеров

Tags:
Total votes 6: ↑5 and ↓1+5
Comments3

Новая маленькая, но полезная утилита:

password.hyoo.ru - генератор стойких уникальных паролей.

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

Вам достаточно помнить лишь один стойкий мастер-пароль и генерировать на его основе уникальные стойкие пароли для всех приложений.

Пароли соответствуют самым распространённым требованиям:

  • Длина 20 символов

  • Есть заглавные и строчные буквы

  • Есть хотя бы один спецсимвол

  • Есть хотя бы одна цифра

  • Только латиница

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

Ах да, и ещё можно подписаться на новости об этом и других наших оупенсорс приложениях, а то и обсудить эту и другие важные темы на форуме гильдии.

Tags:
Total votes 9: ↑5 and ↓4+1
Comments8

Регулярно на Хабре выходят статьи с рекомендацией использовать moment.js. В комментариях обязательно начинают советовать какой-нибудь dayjs или js-joda, но не потому, что они чем-то сильно лучше, а потому, что первый задепрекейчен авторами.. в пользу luxon.

Что за мания такая у JS-еров использовать раздутые тормозные библиотеки? Есть же быстрый и миниатюрный $mol_time с гораздо более удобным и функциональным API, почти полностью поддерживающим ISO8601, в отличие от всех остальных библиотек.

Бенчмарки говорят сами за себя
Бенчмарки говорят сами за себя

Что мотивирует людей довольствоваться не самым лучшим решением в индустрии? Я, наверно, странный, но я не могу этого понять.

Tags:
Total votes 18: ↑7 and ↓11-2
Comments39

$mol_hack: finality

Вот и подошёл к концу первый хакатон по $mol, где нужно было переписать не хитрое научное оупенсорс приложение (Github, Online) на самый инновационный веб-фреймворк. Так что встречайте финалистов:

🥁🥁🥁 🥁🥁🥁

  1. ₽150K получает PavelZubkov (PR, Online). Он сделал не только наиболее полное и качественное решение, но и не большой PR в $mol.

  2. ₽75K получает reatailret (PR, Online). Он прислал достойное оригинальное решение в виде PWA приложения, но оно всё же не дотягивает до лидера по многим факторам: от неработающей авторизации, до расположения файлов не по фен-шую.

  3. ₽50K получает Lyumih (PR, Online). Его решение было самым ранним, но, как ни печально, так и осталось недоработанным. Даже не смотря на часть кода взятую у PavelZubkov.

✨✨✨ ✨✨✨

Решение dukinm (PR) существенно основано на некорректно расположенных файлах от PavelZubkov, а правки носят в основном косметический характер. Однако, он единственный, кто написал хоть немного тестов и комментариев!

Сводная таблица с анализом решений

Спасибо всем участникам за хорошую битву. Те, кто ещё не умеет в $mol, нервно грызут ногти из-за упущенной возможности.

Tags:
Total votes 7: ↑3 and ↓4+1
Comments0

БИП-FIN - двуязычная клавиатура для быстрого и точного ввода текста одним пальцем

  • Никаких AI подсказок и глупой авто коррекции, после которой запаришься исправлять.

  • Никаких микроскопических кнопок в которые фиг попадёшь.

  • Все кнопки находятся рядом, а не разбросаны по экрану.

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

  • На таче каждая буква вводится одним простым жестом: нажал-провёл-отпустил.

  • На пульте каждая буква вводится двумя нажатиями: выбор клавиатуры -> выбор символа.

Ближайший аналог: MessageEase - всем хорош, но переключение языка очень не удобное.

Демка в вебе на попробовать тут. Кто готов реализовать её на Android/iOS - гоу сюда, обсудим детали.

Tags:
Total votes 5: ↑5 and ↓0+6
Comments5

$mol_hack - mobile science app hackathon

Наш давний друг Женя Блохин, учёный-химик из Питера, попросил нас помочь с простым мобильным оупенсорс клиентом для научной БД. Он сделал ставку на фреймворк $mol, чтобы поддержать отечественные технологии и показать их научному сообществу во всём мире.

Чтобы добиться самого высокого качества, мы проводим онлайн хакатон с призовым фондом в ₽300K, который будет справедливо поделён между всеми участниками. Задача очень простая: нужно переписать не хитрое научное оупенсорс приложение с VanillaJS на $mol - TypeScript фреймворк мирового уровня.

Подробности будут на этом канале 23 февраля, когда хакатон начнётся. У вас будет неделя до 2 марта, чтобы неспеша вылизать своё решение. А ещё через неделю мы распределим места и объявим победителя, чей форк будет влит обратно в основной репозиторий. Да, у нас всё будет в открытую на платформе GitHub, чтобы каждый мог убедиться в справедливости судейства.

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

Tags:
Total votes 8: ↑4 and ↓40
Comments0

$hyoo_science - поисковик научных статей.

Умеет искать по базам Scopus, ScienceDirect и CrossRef.

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

Сортировать умеет по: дате, индексу цитирования и лучшему совпадению.

Тут же позволяет глянуть основную информацию по статье и прочитать её резюме. А если этого не хватит - перейти уже к месту её публикации.

И киллер фича - возможность одним кликом скопировать отсылку к статье для списка использованных материалов в своей.

Следите за остальными новостями из нашей экосистемы на канале @mol_news.

Tags:
Total votes 2: ↑2 and ↓0+3
Comments6

Выводим Ситника на чистую воду

Топ перлов:

  • Sync-engine избавляет от однотипного кода по загрузке данных .. он заставляет вас проверять isLoading === true и рисовать крутилку.

  • Во всех sync-engine используются нормальные стейт менеджеры .. например, nanostore (см. видео с разбором этой библиотеки).

  • (Я запилил штуку, которая ничего не умеет, но ты можешь поверх этой штуки запилить своих костылей для решения проблем, которые у тебя возникнут из-за моей штуки).

  • CRDT - это просто лог операций (лог операций - это CmRDT и OT, CvRDT даже близко не лог).

  • Работать с IndexedDB через скомпилированный под WASM SQLite быстрее, чем напрямую работать с IndexedDB (разве что, если руки заточены под обнимашки).

Упомянутые ссылки:

Копилка благодарностей

Tags:
Total votes 4: ↑1 and ↓3-2
Comments1

$hyoo_lingua - удобный интерфейс перевода текстов.

В отличие от оригинального google translate, $hyoo_lingua не пытается транслитерировать английский текст при вводе в русское поле. В отличие от yandex translate, он не меняет языки сам как попало. В $hyoo_lingua ваш родной язык всегда слева, а чужой - справа, что очень удобно. Особенно, когда переводишь текст в обе стороны, чтобы убедиться в корректности перевода.

Ну и в отличие от обоих он не пытается переводить на лету текст в процессе ввода, вызывая мельтешение, изменение размера текста и исчерпание лимитов перевода, а ждёт сабмита (поддерживается и ctrl+enter).

Раньше он юзал нейронки с huggingface.co, но качество перевода было низким, а потом там закрутили гайки и всё сломалось.

Теперь используется гугловый движок через балансировку по шести бесплатным API с rapidapi.com, что даёт суммарный лимит в 10К переводов в месяц.

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

Программно же, в экосистеме MAM сейчас доступны следующие модули:

$mol_lang_iso639 - словарь всех 2-буквенных кодов языков и их названия на английском.

$mol_locale_select - компонент выбора языка.

$hyoo_lingua_translate( lang, text ) - перевод любого текста на заданный язык, используя веб-сервисы перевода.

Последней апишкой лучше не злоупотреблять, ибо лимиты у сервисов не резиновые.

Следите за остальными новостями из нашей экосистемы на канале @mol_news.

Tags:
Total votes 8: ↑6 and ↓2+4
Comments2

Доклад Особенности фреймворка $mol (+ слайды) с PiterJS #72.

О фичах $mol, которых нет в других фреймворках, и о том, зачем они нужны.

Автор - Станислав Яременко. Герой Hyper Dev, Синьор $mol-разработчик.

Писал на Vue, Svelte. Пробовал и другие фреймворки. Как-то раз я загуглил "лучший ui фреймворк", и на первом месте в выдаче оказался $mol. Конечно, я не поверил и начал разбираться...

Tags:
Total votes 12: ↑5 and ↓70
Comments14

Разбор доклада Артёма Арутюняна про Архитектуру и Реактивное Программирование

Топ перлов:

  • Реактивное программирование - это программирование на событиях.

  • Реактивность нужна между модулями, а внутри - не нужна.

  • По одному лишь графу связей можно понять правильно произведена декомпозиция или нет.

Мета: Копилка благодарностей, Новости, Форум

Tags:
Total votes 7: ↑4 and ↓3+1
Comments9

Information

Rating
1,493-rd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO), Chief information officer (CIO)
Lead
From 8,000 €
OOP
Database
Designing application architecture