2023-12-04

Большие Языковые Модели в CS50

Гарвардский университет добавил в свои знаменитые лекции по Computer Science CS50 лекцию, посвященную большим языковым моделям. Лекцию читает доктор Мэтт Велш.

Лекция рассчитана на широкий круг зрителей, в ней нет ни одного сложного термина. Эта лекция будет понятна даже для вашей бабушке!

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

Однако мне, почему-то, показалось интересным другое его утверждение. Примерно на временной метке 47:19 на доске спикера написано: "Nobody understands how large AI models works" - "Никто не понимает как большие языковые модели работают". И это то, что меня больше всего поразило в этой лекции.

Я то надеялся, что здесь мне наконец объяснят как работают большие языковые модели. На каком этапе вся эта мешанина тензоров и другой страшной математики превращается в осмысленную речь, а оказалось, что никто на этой планете этого не понимает!

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

 

Оставить комментарий

 
  2023-10-15

Клавозавр

Мои шаловливые ручки добрались до игры с динозавриком. Шаловливым ручкам было очень обидно, что игра слишком простая и совершенно бесполезная. Шаловливые ручки постоянно промахиваются по клавишам и им очень хотелось повысить точность и скорость набора на клавиатуре. Однако, специально учиться набирать на клавиатуре безумно скучно и долго, вот если бы это была игра... Но ведь такая игра уже есть! Это всем известный Дино! Простой заменой кактусов на буковки игра превращается в отличный клавиатурный тренажор!

Сказано - сделано!

Теперь динозаврик перепрыгивает не кактусы а буквы! Если при приближении к букве нажать ту же клавишу на клавиатуре, то он ее перепрыгивает. Если клавиша нажата неправильно, то игра заканчивается. Игра начинается с двух клавиш "f" и "j". По мере продвижения в игре количество используемых клавиш увеличивается, до тех пок пока пальцы на запомнят их все.

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

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

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

 

Оставить комментарий

 
  2023-08-21

Пузырьковая сортировка в 21 веке

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

 

Оставить комментарий

 
  2023-06-24

Huawei Band 7

Оказывается, создать кастомный циферблат для Huawei Band 7 не такая тривиальная задача как мне думалось ранее. Для создания циферблата нужно использовать не DevEco Studio а другую программу Theme Studio.

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

Но при попытке загрузить сделанный циферблат на физическое устройство ожидает облом. В программе-компаньоне часов Huawei Health возможности загружать цифербалы в виде файлов нет! Вот что об этом факте говорит документация:

  • You must sign in to the app using a HUAWEI ID that has passed designer certification; otherwise, you cannot add watch faces for testing.
  • For details about designer certification, please refer to Registration & Certification.

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

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

"Как плавать научитесь тогда и воду в бассейн нальем..."

Upd. Возможность загрузить циферблат все-же нашлось. На сайте 4pda есть топик, посвященный этому браслету. Там же есть большое разнообразие готовых циферблатов, которые можно попробовать.

 

Оставить комментарий

 
  2023-06-10

HarmonyOS

У Экслера в обзорах есть описание умного браслета Huawei Band 7. Из интересного там то, что этот браслет в качестве операционной системы использует Harmony OS и на него можно устанавливать новые скины из маркета, разработанные сторонними разработчиками. При этом, сам браслет стоит в европе около 45 евро.

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

Для разработки под Harmony OS на компьютер нужно установить DevEco Studio. Дистрибутив этой программы весит около гигабайта и представляет собой среду разработки выполненную на базе IntelliJ IDEA. Установить ее можно только на Windows и MacOS, под Линукс я версии не увидел, что странно.

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

Панель разработчика очень похожа на панель разработчика Google Play Market, что не удивительно, так как она выполняет сходные функции. 

Разработка приложений осуществляется на JavaScript, TypeScript и Java. Какие приложения, помимо скинов к часам еще можно писать мне пока не очень понятно, но судя по примерам на сайте, создавать можно самые различные приложения, так же как и под Android.

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

 

Оставить комментарий

 
  2023-05-01

Клавиша Compose

Клавиша compose позволяет вводить специальные символы в Linux типа ä или á.

Для этого нужно сначала коротко нажать compose затем клавишу модификатор, например ', затем модифицируемую клавишу, например e.

compose . e ė
compose ' e é
compose " e ë
compose _ e ē
compose - e ē
compose ? e
compose # e
compose s s ß

Еще больше сочетаний можно найти на страничке в википедии посвященной клавише Compose.

Физически на клавиатуре нет клавиши Compose. В качестве клавиши Compose можно назначить любую клавишу по выбору. По умолчания в Linux в качестве Compose настроен правый ctrl.

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

Однако, с этой клавишей есть одна существенная проблема - клавиша Compose не поддерживается из коробки в Windows но есть большое разнообразие программ для ее емуляции например WinCompose. Для Macos все сложнее, на маке используются собственные сочетания клавиш для набора специальных символов и диакритики, поэтому проектов для поддержки клавиши Compose не так много но они тоже есть.

 

Оставить комментарий

 
  2022-12-11

Третий Конкурс Смарт-Контрактов от TON

Ребята из TON Foundation опять устраивают конкурс в денежными призами и ценными подарками. На этот раз это соревнование по написанию смарт контрактов на языке Func. 

Хотя конкурс рассчитан на новичков, хочу честно признаться - я не могу даже приблизительно понять ЧТО нужно сделать, не говоря уже о том КАК.

Например в задании 4 нужно реализовать операцию по сложению двух эллиптических кривых Curve25519.

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

Ловлю себя на мысли, что мне нравится в этом копаться. Николай Дуров проделал колоссальную работу собирая вместе эту систему. Некоторые называют TON следующим Биткойном.

Пока у меня больше вопросов чем ответов. Например, Смарт Контракты TON можно модифицировать после публикации, как при этом можно защититься от скама? Или, например кошельки в сети TON это смарт контракты, при этом часть кошельков написана на Func а часть на Fift. На сайте утверждается, что они практически идентичны, тогда почему у кошельков второй версии нет кода на Func? Это все равно как привести две программы - одну на Си а вторую на Ассемблере и сказать что они практически идентичны...

Для того чтобы понять как это работает нужно прочитать сотни страниц спецификации. Документация вроде есть, но ее нужно прочитать, а это сотни страниц. Уже есть первые Step-by-step руководства, но они, как правило поломаны из-за изменений в коде системы, и чтобы понять как их пройти, все равно приходиться читать документацию.

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

 

Оставить комментарий

 
  2022-12-02

Запускаем приложение на Go в Kubernetes

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

Kubernetes -- это набор утилит позволяющих разворачивать облачные сервисы состоящии из множества контейнеров. Контейнеры это маленькие виртуальные машины в которых живут отдельные приложения. Эти приложения могут быть написаны на любом языке программирования в том числе и на Go.

Minikube это маленький Kubernetes кластер для изучения возможностей этой системы который можно запустить на локальном компьютере.

Записал небольшую видеоинструкцию о том как запустить свое веб приложение написанное на Go в Minikube. 

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

Код приложения и инструкции для повторения можно найти в моем github.

 

 

 

Оставить комментарий

 
  2022-10-28

Программирование на телефоне с Vim

Обнаружил, что vim прекрасно подходит для программирования на телефоне.

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

Запилил небольшое видео как выглядит мой процесс программирования:

 

Оставить комментарий

 
  2022-08-03

На четвертый день Штирлиц заметил...

Букмарклет, который я сделал, чтобы скачивать аудиокнижки с сайтов, например c вот этого иногда не работает - создатели сайта немного меняют код плеера и мой скрипт не умеет корректно отрабатывать это изменение. Однако, внимательно посмотрев на плеер на сайте, я заметил ссылочку .mp3 с соответствующей иконкой.

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

 

Оставить комментарий