Work & Beer Balance
1.54K subscribers
117 photos
5 videos
4 files
188 links
Авторский канал @Akiyamka
Поддержать автора можно здесь:
buymeacoffee.com/cherrytea
Download Telegram
Ощутил сполна как круто быть владельцем fairphone.

Через два года использования я просто заказал замену поцарапанному экрану, заднюю крышку и новый акб. Доставка 2 дня, замена ~15 минут и у меня считайте новый смартфон.
Да, на нем последний андроид (причем чистый, без кастомизаций), и я еще буду получать обновления до 2028 года.

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

Как они вообще зарабатывают...
👍15🤯21
Это не то чтобы страшная ошибка, но все-же, обратите внимание в своем коде на такие повторы - здесь не только нет смысла повторять снова и снова что это относится к Task, его потом еще и переименовывать надо при копировании, если вы захотите взять существующую структуру за основу
👍5
#linuxtip
если вы выполнили команду без sudo, и терминал выдал вам ошибку об отсутствии прав, просто накричите на него вот так.
sudo !!

это сработает, обещаю
`!!` - повторяет последнюю команду
😁17🔥2
Приди в офис получи 🍌. (Но только один)

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

Так вот, к чему это я, в сети появилось письмо с внутренней почты амазона, что теперь сотрудникам запрещено брать больше одного банана на человека. Брать для кого-то тоже запрещено, каждый должен подойти сам если хочет банан.
😁10🙈8🍌6🙉4🙊4
Meta показала демку своих XR очечей, но они не единственные кто стремится занять этот рынок, с учетом того что китайские прототипы XR очков еще год назад уже были как вполне обычные очки, а в этом году OPPO уже показали третью версию вообще не отличимую от обычных очков - они скорее в позиции догоняющих. Зато у meta больше ресурсов и шансов довести прототип до рынка за приемлемую цену.

Кстати о гигантах, Google и Samsung уже заявили что их очки на подходе, и чтобы успеть запрыгнуть в трогающийся хайптрейн, они обедняются в этакий "альянс" и мы возможно увидим первый совместный продукт самсунга и гугла. В альянс так же входит Qualcomm, который уже засветился на рынке микрочипов для XR/AR платформ.

2025, ну или может 2026 год - будет годом очкариков, скриньте
На случай если вы заботясь о здоровье пробуете работать стоя - вам стоит перестать это делать, потому что это не только не помогает, но ещё и калечит вас.

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

«Более того, эта практика сама по себе несет риск для некоторых людей в долгосрочной перспективе»
👎2
Ребзи, не бейте меня, в телегамме нету ленты, так что каналы можно находить только папочками.
Если б не это вы бы меня никогда не нашли =)
Вот ребята собрали еще одну айти подборочку, там всего понемногу
https://t.iss.one/addlist/d23m2d_lHE42MjAy
Развенчиваю мифы о веб компонентах:

Веб компонент — это нативная альтернатива react/vue/svelte и т. п.
Я понимаю, откуда этот миф, вы могли так подумать, потому что у нас везде компонент прибит гвоздями к своему фреймворку. Но веб компоненты - это не фреймворк и даже не библиотека, это браузерный API. Действительно, есть фреймворк поверх этого API - lit (https://lit.dev/).
(Хороший он или плохой, не тема этого поста), есть и другие фреймворки, которые могут использовать API веб компонентов. Но сам по себе он ни в коем случае не фреймворк, и не решает проблем фреймворка, и сопоставлять его с существующими фреймворками мало смысла.

Задача веб компонента уменьшить размер бандла и / или производительность фреймворков.
Такие цели действительно были заявлены в спичах продвигающих веб компоненты, но мы ещё не здесь, это цель - на далёкое будущее, когда кристаллизуется некоторая кодовая база, основа, которая одинакова в каждом фреймворке для работы с DOM API. Что-то, что пишут снова и снова для достижения того же результата. Но пока её не видно. По факту фреймворкам всё ещё удобнее работать с домом императивно, каждый из них имеет свой уникальный путь, и API вэб компонентов им попросту неинтересен (с позиции автора фреймворка). Однако этот API часто поддерживают для профита конечного пользователя, о чем мы поговорим дальше.

Веб компонент бесполезен?
Напротив, это очень полезный API, хотя нужный он не каждому пользователю. Чаще веб приложение генерирует всё DOM дерево от корня и расширяется библиотеками, написанным специально под него.
Это, безусловно, ограничивает полезность новых фреймворков, без кодовой базы готовых компонентов под них. Эта проблема также может быть решена веб компонентами, но это проблема уровня js тусовки, а мы с вами заглянем ещё глубже, на уровень вэба.

В чём идея API веб компонента как такового?

Веб компонент API позволяет нам расширять возможности html

Давайте представим, что нам нужен простой элемент <switch-toggle /> (результат скрещивания радиокнопки и чекбокса). В мобилке такие элементы повсеместно, а в html такого input-a нет. Но, благодаря API веб компонента мы легко можем это поправить. И причём неважно в каком фреймворке он будет использован, в jsx или vue шаблоне, может, php? Да хоть в mol, назовите любой, всё в вебе, в конце концов умеет генерировать html, а наш веб компонент позволяет в него встроиться! В этом суть веб компонента.

Из понимания этого момента легко выясняется, где этот API применять. Можно даже заполифилить html элементы, которые ещё не завезли, и тогда вам в будущем останется только удалить код полифила (и убрать префикс у тэгов)

Бесконечные возможности встраивания открывают так же двери для встраивания любой дичи из маркета пользователей в ваше положение (SalesForce так и делают), или вовсе создавать реестры универсальных компонентов, вкладывать react в vue, и наоборот, и так далее (можно, не значит нужно!))

Да, использование этого API потребует от вас дополнительных усилий, обертки добавят веса, а коммуникация между компонентами "деградирует" до нативного браузерного API, который мы так старательно избегаем оборачивая ее в фреймворк.

Но иногда, простой и максимально нативный браузерный API - это именно то, что нужно вам и вашему пользователю.
👍10👌31
Разработка в 2024ом.
Пишу название функции - аишка предлагает реализацию.
"Вроде правильно, но напишу-ка я тест" - подумал я, и начал писать тест - аишка его дописала.
Запустил тест - он упал - "АГА" подумал я, и пошел исправлять код функции - аишка предложила исправление согласно упавшему тесту (совпадение?)

Странное ощущение, вроде и круто а вроде и даже не комфортно как-то, как будто слова не дают сказать
😁7
В чате кинули видео в котором Линус высказывает надежды на то что Valve спасет desktop linux.

Дополню его слова - Valve - чуть ли не единственная крупная компания, которой на коммерческой основе интересен Linux за пределами серверов и IoT.

Не без помощи Steam Deck были исправлены долгоиграющие баги со скейлингом, компиляцией шейдеров, внесены фиксы в Vulkan API и систему энергосбережения.

Valve прокачала Proton, который пригоден не только для запуска игр, но, что важнее, они портировали сами многие игры, по дороге добавляя важные фиксы в экосистему настольного Linux, до которых у энтузиастов руки не доходили, а на серверах не было необходимости, чтобы кто-то корпел над этим фултайм.

В конце концов стали появляться новые игры сразу с учётом Linux, что подняло приоритет поддержки Linux у производителей видеокарт и драйверов. Это, в свою очередь, явило нам Linux-ноутбуки с видеокартами на борту (они были и до этого, но выбор был сильно меньше, а опыт их использования - значительно хуже). Lenovo Legion, например, уже заявляют о поддержке Linux-гейминга из коробки и своё обещание выполняют (имел возможность убедиться лично). Linux гейминг становится модным, это привлекает новых пользователей в экосистему, популяризует ее среди молодежи.

Так что да, у Valve есть мотивация, ресурсы, и влияние чтобы двигать пользовательский опыт настольного Linux, и спасти его, и Линус не спроста возложил на них свои надежды.
👍132
В телеграмме ну просто напрашивается возможность показывать "системные" сообщения в группе для конкретного юзера.
Просьбы пройти капчу, обьяснения почему его сообщение было удалено, и т.п.
Даже в мирке это было, а мы в 2024 году вынуждены все читать то что бот пишет одному человеку
💯11👍4
Пятничная байка:
Один айтишник в Америке зарегистрировал свою машину под кастомным номером null.
Он рассчитывал что когда ему автоматические системы будут выписывать штраф, они подумают что номер не найден в базе и штраф ему не выпишется

На практике же ему довольно быстро пришел штраф на $12.000, т.к. ему зачислялись штрафы всех тех, чьи номера не были найдены в базе
😁31🤣5
Открываю гугл ассистент чтобы "зашазамить" песенку, а мне говорят - мы вас редиректнем на Gemini, он пришел на замену, лучше круче и т.д.
Соглашаюсь, спрашиваю Gemini - что играет? Ответ убил: спросите у google assistant

Мне очень интересно, что там в Гугле происходит? Все что касается их попыток внедрения AI в андроид очень очень плохо.
Поспешили и людей насмешили, получается.
👏7😁3
Вы наверное слышали что OpenAI запилили свой поисковик пару дней назад. И уже вижу отзывы про-то что гугл ему проигрывает. Маленькие компании разбирают бизнес гиганта на кусочки.

Размышляя об этом я пришел к мыслям о том, что будет, если гугл не вытянет конкуренции в сфере доступа к информации. Станет ли гугл "злее", станет ли все оставшееся делать платным и завинчивать гайки вместо открытости, или наоборот, смирится и сделает пивот куда-то в сторону, например в хардварную часть.
А вы знали что в Firefox и Zen (типа Arc, но на базе лисы) есть экспериментальная фича - спросить у AI?

Включение этой фичи добавляет иконку рядом с выделенным текстом (опционально) и пункт в контекстное меню - "спросить у AI".
По умолчанию там уже есть список из того что можно спросить - упростить текст, сделать выжимку, наоборот - объяснить подробнее, и квиз по тексту.

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

Включается в настройках, на закладке Firefox Labs -> AI chatbot

В качестве провайдера можно выбрать так же localhost
, для этого надо в about:config переключить флаг browser.ml.chat.hideLocalhost в false

Чтобы добавить свои промпты, там же, в about:config создаем новый параметр с ключем browser.ml.chat.prompts.a где последнюю a можете заменить на любую строку (не используйте цифры, они для дефолтных промптов). В качестве значения укажите тип String и запишите туда json следующего вида:
{
"label": "Название пункта меню",
"value": "Текст запроса к чат боту"
}

Название страницы и выделенный текст будут идти префиксом к промпту, но так же доступны в виде переменных %tabTitle% и %selection|12000% где 12000 - ограничение на количество символов
#firefox #ai
👍6🔥1
Идеи высказанные в JS0/JSSugar кажется были услышаны.

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

Если это легко решается в юзерленде - это стараются там и оставить. Но не отмахиваясь а реализуя их в отдельной либе под названием signal-utils. Такой вот локальный SugarJs.

По началу я был скептичен по отношению к идее обязательной зависимости в каждом проекте, но кажется я готов принять смерть vanillajs, и тот факт, что мы всегда в какой-то степени будем зависеть от этапа сборки.
👍2
Я таки перешел на локальную аишку для автокомлита дома в vscode.
Вот что я узнал в процессе:

🔸 1. Плагин для IDE / Специальная IDE
Для того чтобы подключить локальную аишку в vscode вам понадобится плагин который будет генерировать запросы для модели и показывать ее предложения в коде. я выбрал Continue как самое универсальное решение.

🔸 2. Поднять AI сервер
Вам понадобится программа - AI сервер (название сам придумал) которая скачает, запустит модель, поможет ее настроить, поднимет локальный сервер для общения с аишкой по http.
Среди них Ollama, LM Studio, openrouter

🔸 3. Выбрать модель.
Брать лучше модели заточенные под кодинг, такие как OpenCoder, Cline, QwenCoder (накидайте в комментариях если знаете еще) - выбрать и скачать можно будет прямо в интерфейсе вашего AI сервера.

У одной и той же модели есть масса вариантов, давайте разберемся чем они отличаются.

🔹 0.5b / 1.5b / 8b и другие цифры с маленькой b

Это "размер" модели, чем он больше тем тяжелее для вашего пк будет генерировать ответ с ее помощью, но и ответ может быть качественней. Для автокомплита есть смысл брать до 3b

🔹 Q8 / Q4 и другие цифры с большой Q

Это уровень квантования, чем он меньше, тем меньше моделька потребляет памяти, и тем хуже ответ. Если у вас 32 GB памяти или больше то берите Q8, иначе Q4

Чтобы примерно понять как соотносятся b и Q, представьте что мы говорим о кино.
b - это бюджет фильма. Чем он выше тем лучше актерский состав, спецэффекты, костюмы, музыкальное сопровождение и тп.
Q - это качество в котором вы это кино смотрите - Q8 это как 1440p, а Q4 это как 720p. На суть фильма не влияет

🔹Instruct / Base.

Instruct - Это специально проинструктированная и подтюненная аишка под свою задачу (в нашем случае - кодинг)

Base - Это базовая модель, используется как промежуточная для дообучения

🔹GGUF / GPTQ / AWQ
- это метод квантования

- GGUF - "Классика", ваш выбор по умолчанию - из плюсов совместимость и стабильность, из минусов - медленная (в сравнении с теми что идут дальше). Может запускаться как на GPU так и на CPU

- GPTQ - Запускается только на GPU, и только на Nvidia, быстрая, но в жертву приносится точность. Видюшку желательно иметь с 8GB+ памятью

- AWQ - И быстрая и точная, но только для самых свеженьких Nvidia

Если не указано ничего - это почти наверняка GGUF.

🔹 Размер контекста (K). Он может быть указан как K с числом, так и сокращением K_M (Medium) или K_S (Small)

малое (K_S) это 2-4K
среднее (K_M) соотвствует 8-16K

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

1000 токенов примерно соответствует 750 словам на английском языке и 500-600 на русском
👍26🔥21
Поковырялся с настройкой форматирования чисел в приложении.
Intl работает как магия, и в процессе я чучуть капнул а откуда оно берет как что должно быть отформатировано.

Так вот:

1. В качестве локали принимается строка, состоящая из латинских букв или цифр объединенных через дефис или "default".
Правила там черт ногу сломит, и оно может выглядеть даже как de-DE-u-co-phonebk, но чаще всего это будет выглядеть как вот такая вот пара из языка и страны:
en-US - американский английский
en-GB - британский английский
ru-BY - белорусский русский
Нувыпонели, тут все просто. Обязательна только первые две-три буквы до дефиса - т.е. язык, Остальное опционально, но регион все же стоит учитывать, разница бывает существенная.
Язык надо брать из стандарта ISO 639-2 или ISO 639-1 а страну из ISO 3166 (да, цифрами тоже можно)

2. Влияет это не только на форматирование, но даже на то как будут выглядеть ваши цифры (это тоже цифры: ๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙), и даже летосчисление (т.е. какой календарь будет использован)

3. Но где лежат все эти конфиги для каждой локали и страны? В специальном реестре The Unicode Common Locale Data Repository (CLDR) который есть на гитхабе в виде джейсонок на ~650 MB (32 из них про форматирование чисел)

4. Intl умеет форматировать отрицательные числа валют в формате "accounting". Это когда вместо знака минус число просто оборачивается в скобки.

Еще полезные ссылки:

Посмотреть а че там вообще в этом формате который вас интересует в виде таблички
https://www.localeplanet.com/icu/ru-BY/index.html

Посмотреть в каких локалях какие языки используют, и сколько человек
https://www.unicode.org/cldr/charts/46/supplemental/territory_language_information.html
👍16🔥3
В vscode завезли прикольную фичу, называется Extension Bisect.

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

В углу редактора у вас две кнопки - "Могу воспроизвести" и "Не могу воспроизвести".
Нажимаете "не могу" - vscode включает половину расширений и снова спрашивает.
Т.е. это бинарный поиск глючного расширения встроенный в вскод.

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

Правда вот эта вот форма в конце у меня почему-то не работает, нажатие кнопки отправления отчета просто ничего не делает.
Ну, по крайней мере нашел что так сильно грузило мне редактор
👍18🔥8