This media is not supported in your browser
VIEW IN TELEGRAM
Еще 5) немного относящееся к пункту 3 офигенный тулинг, что довольно редкто встретишь у функциональных яп(единственный норм тулинг что я знаю это F# с Rider), тут что плагинчик у vscode что у IDEA оба тк сказать mature,
- shift ctrl стрелки всегда выделяет то что нужно, не останавливаясь в бессмысленных местах
- перемещение форм местами работает через alt стрелки
- обычные штуки вроде ренейминга, перехода к определению, подсказка документации вместе с примерами по наведению отлично работают
- ну и самое главное, из-за чего я уважаю Clojure и Smalltalk несмотря на то что они динамически типизированные это конечно REPL, любую форму можно выполнить прямо в редакторе, а не в какой то отдельной косольке, это заставляет писать маленькие чистые функции, чтобы потом сразу на месте их по тестить и компоновать в большие, что очень приятно(мы люди обожаем композицию).
Выглядит это так
- shift ctrl стрелки всегда выделяет то что нужно, не останавливаясь в бессмысленных местах
- перемещение форм местами работает через alt стрелки
- обычные штуки вроде ренейминга, перехода к определению, подсказка документации вместе с примерами по наведению отлично работают
- ну и самое главное, из-за чего я уважаю Clojure и Smalltalk несмотря на то что они динамически типизированные это конечно REPL, любую форму можно выполнить прямо в редакторе, а не в какой то отдельной косольке, это заставляет писать маленькие чистые функции, чтобы потом сразу на месте их по тестить и компоновать в большие, что очень приятно(мы люди обожаем композицию).
Выглядит это так
Сегодня ВОЗ отменила статус пандемии Covid-19, поздравляю, ковид официально закончился.
никогда бы не подумал что новые классные гтк приложения еще будут писать на чистом си
https://github.com/zhrexl/ThisWeekInMyLife
https://flathub.org/apps/io.github.zhrexl.thisweekinmylife
https://github.com/zhrexl/ThisWeekInMyLife
https://flathub.org/apps/io.github.zhrexl.thisweekinmylife
https://youtu.be/VtBsmy3ixTc
Всего Тартаковского показывают
Всего Тартаковского показывают
YouTube
🔴 LIVE: Genndy Tartakovsky: A Legacy in Animation | adult swim
We got together with the legend Genndy Tartakovsky to bring you a collection from his legacy. Hear from the man himself about his process and how Unicorn: Warriors Eternal came to be.
Unicorn: Warriors Eternal airs Thursdays at midnight on Adult Swim, next…
Unicorn: Warriors Eternal airs Thursdays at midnight on Adult Swim, next…
Пасаны уже запускают модельки на телефонах.
Нас однозначно ждет будущее где в каждом чайнике будет узкоспециализированная модель.
https://github.com/ggerganov/llama.cpp/issues/58#issuecomment-1466732993
Статья топ: https://habr.com/ru/articles/733702/
Нас однозначно ждет будущее где в каждом чайнике будет узкоспециализированная модель.
https://github.com/ggerganov/llama.cpp/issues/58#issuecomment-1466732993
Статья топ: https://habr.com/ru/articles/733702/
👍1
Текущее состояние моделей отсортированных по хорошести
https://paperswithcode.com/sota/multi-task-language-understanding-on-mmlu
https://paperswithcode.com/sota/multi-task-language-understanding-on-mmlu
Очень быстрый гайд по написанию фронтенда языка, пишем лексер(токенайзер), он нужен чтобы превращать неразборчивую писанину в цепочки токенов, типа
s_aS =
0.3432345f
в
[Identifier Equel Float]
Чтобы потом с ними можно было удобнее работать, сохраняем в токенах номер строки и начальную позицию токена, чтобы выдавать юзверам адекватные ошибки
Сам лексер хранит текущую позицию и возможно вам понадобится хранить количество пробелов текущей строки, если хотите сделать чтобы отступы чего то значили.
Нам понадобится набор базовых функций
1) step — поглащает следующие n символов, то есть
ab^cde
^ - курсор
step(2) вернет cd
abcd^e
2) peek — как step но не поглащает, нужна чтобы проверять что там впереди
ab^cde, peek(2) -> cd, ab^cde
3) check(str: string, distance: int): bool — хелпер чтоб проверять что в переди то что мы ожидаем, использует peek
4) match — ровно тоже самое что check, но поглащает строку
^if(sas)
match("if") -> true, if^(sas)
Воот, это база, следующий выпуск завтра
s_aS =
0.3432345f
в
[Identifier Equel Float]
Чтобы потом с ними можно было удобнее работать, сохраняем в токенах номер строки и начальную позицию токена, чтобы выдавать юзверам адекватные ошибки
Сам лексер хранит текущую позицию и возможно вам понадобится хранить количество пробелов текущей строки, если хотите сделать чтобы отступы чего то значили.
Нам понадобится набор базовых функций
1) step — поглащает следующие n символов, то есть
ab^cde
^ - курсор
step(2) вернет cd
abcd^e
2) peek — как step но не поглащает, нужна чтобы проверять что там впереди
ab^cde, peek(2) -> cd, ab^cde
3) check(str: string, distance: int): bool — хелпер чтоб проверять что в переди то что мы ожидаем, использует peek
4) match — ровно тоже самое что check, но поглащает строку
^if(sas)
match("if") -> true, if^(sas)
Воот, это база, следующий выпуск завтра