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 с соответствующей иконкой.

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

 

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

 
  2022-06-23

Hack-a-TON

А нет ли случайно среди читателей моего маленького блога желающих поучаствовать в хакатоне проводимым командой TON первого июля? Хакатон продлится 48 часов и стартует 12:00 UTC (кстати, кто знает, это полдень или полночь?).

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

Для участия понадобится только JavaScript и команда из четырёх (или менее) человек, а все необходимые SDK и готовые смарт-контракты будут предоставлены.

Хакатон будет проходить в режиме онлайн.

Если у вас вдруг есть пару свободных летних дней 1-го и 2-го июля, кажется это будут пятница и суббота следующей недели - дайте знать, должно быть весело!

 

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

 
  2022-05-28

Тридцать часов блокчейна

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

 

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

 
  2021-02-21

Интервальное повторение

Реализовал в своем маленьком пет проекте superwords метод интервального повторения

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

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

Интервальное повторение - это повторение на основе кривой забывания Эббингауза. Кривая забывания или кривая Эббингауза была получена вследствие экспериментального изучения памяти немецким психологом Германом Эббингаузом в 1885 году.

Эббингауз был увлечён идеей изучения «чистой» памяти — запоминания, на которое не влияют процессы мышления. Для этого им был предложен метод заучивания бессмысленных слогов, состоящих из двух согласных и гласной между ними, не вызывающими никаких смысловых ассоциаций.

В ходе опытов было установлено, что после первого безошибочного повторения серии таких слогов забывание идёт вначале очень быстро. Уже в течение первого часа забывается до 60 % всей полученной информации, через 10 часов после заучивания в памяти остаётся 35 % от изученного. Далее процесс забывания идёт медленно, и через 6 дней в памяти остаётся около 20 % от общего числа первоначально выученных слогов, столько же остаётся в памяти и через месяц.

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

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

Первое повторение — через 30 минут, второе повторение — день после первого повторения, третье повторение — через неделю после второго, четвёртое повторение — через месяц после третьего, пятое повторение — через пол года после четвёртого повторения.

Штука оказалась абсолютно убойной, и почему я раньше это не реализовал... 

К сожалению, в GooglePlay приложение в настоящее время недоступно - сейчас новая версия ещё проходит ревью. Но можно установить apk вручную.

 

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

 
  2020-12-12

Альтернативное IDE для Ардуино

Давно ищу замену для Arduino IDE которое очень примитивное и жутко неудобное.

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

Оказалось что Visual Studio Code прекрасно умет почти из коробки запускать скетни Arduino. Просто ставится соответствующее расширение и ваши скетчи начинают волшебным образом компилироваться. При этом, как я понял, используются те же библиотеки, которые используются для компиляции скетчей в Arduino IDE.

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

 

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

 
  2020-12-06

Почему в npm так много плохих пакетов?

А просто любой школьник может создать новый пакет и опубликовать его!

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

Понадобилась мне на днях для одного маленького проекта библиотека cuba - такая маленькая утилита для вытягивания данных с google таблиц. Так оказалось, что библиотека перестала поддерживаться, а мне она очень нужна - уж больно удобная. Из-за маленького бага, табличка, которую я создал на Google Sheets никак не хотела импортироваться. При этом фикс простой, и Pull Request на гитхабе уже есть, но автор библиотеку давно не обновляет. Пришлось форкать репозиторий, и публиковать свою исправленную версию.

Встречайте - cuba-sheet. Теперь в npm одной плохой библиотекой больше!

 

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