Сегодня ВОЗ отменила статус пандемии 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)
Воот, это база, следующий выпуск завтра
скучнейшее событие года начинается https://youtu.be/cNfINi5CNbY
YouTube
Google Keynote (Google I/O ‘23)
Tune in to find out how we're furthering our mission to organize the world’s information and make it universally accessible and useful.
To watch this keynote interpreted in American Sign Language (ASL), please click here:
https://youtube.com/live/bqnlp…
To watch this keynote interpreted in American Sign Language (ASL), please click here:
https://youtube.com/live/bqnlp…
👍1
gavr_sas
Очень быстрый гайд по написанию фронтенда языка, пишем лексер(токенайзер), он нужен чтобы превращать неразборчивую писанину в цепочки токенов, типа s_aS = 0.3432345f в [Identifier Equel Float] Чтобы потом с ними можно было удобнее работать, сохраняем…
Придумайте список токенов на которые делится ваш язык(не АСТ) и напишите парсер для каждой используя базу и несколько хелпер функций вроде isAlphaNumeric для простого парсинга идентификаторов 3
#niva
#niva
gavr_sas
Photo
1) Заготовленные парсеры вроде parseNumber будут мотать ленту пока не распарсят определенный токен
x = ^23.34234
parseNumber -> numToken(23.34234)
x = 23.32234^
2) В цикле while !done() проходим по всем символам, проверяя текущий на какой либо признак и используя эти мини парсеры.
3) И разумеется обкладываем все это тестами, вообще довольно прикольно ставить себе цели добавляя новый еще не работающий тест, а затем делать его рабочим, ага TDD тут очень полезно, в отличии от гуев. #niva
x = ^23.34234
parseNumber -> numToken(23.34234)
x = 23.32234^
2) В цикле while !done() проходим по всем символам, проверяя текущий на какой либо признак и используя эти мини парсеры.
3) И разумеется обкладываем все это тестами, вообще довольно прикольно ставить себе цели добавляя новый еще не работающий тест, а затем делать его рабочим, ага TDD тут очень полезно, в отличии от гуев. #niva
👍1