19 марта 2013 г.

Интересный хак от Adafruit Industries

Интересный хак от Adafruit Industries: галстук с встроенным измерителем уровня звука. Спасибо сайту hackaday за наводку.

Подробности о проекте можно узнать здесь:
http://learn.adafruit.com/led-ampli-tie

Есть ещё видео с описанием процесса модернизации обычного галстука и демострацией его работы. Рекомендую посмотреть:
https://www.youtube.com/watch?v=7FbK4wA7hjc

- Артём

(фото под лицензией СС-BY-SA 3.0)

14 марта 2013 г.

Balmorhea - The Winter (piano cover by Marc Herrmann)

Очень понравилось это исполнение композиции группы Balmorhea, "The Winter". Исполняет Marc Herrmann. Отличная работа.

- Артём

6 февраля 2013 г.

What is Open Access?

Крайне интересное видео, объясняющее принципы открытого доступа к учебным материалам и научным статьям, и преимущества данного подхода к распространению информации:

Видео распространяется под лицензией CC-BY.

20 декабря 2012 г.

Novena -- ноутбук, создаваемый по принципам OSHW

Novena -- это ноутбук, создаваемый по принципам открытого аппаратного обеспечения, или аппаратного обеспечения с открытыми исходниками (open source hardware, OSHW). Все схемы и документация открыты и доступны для скачивания. Так же ожидается, что Nouvena будет работать полностью на свободном программном обеспечении -- включая драйверы устройств и прошивки. Ещё обратите внимание на замечательное решение: для хранения BIOS'а используется обычная карта памяти (microSD), которая вставляется в слот на системной плате:

http://www.opennet.ru/35639/

Думаю, можно будет использовать CoreBoot в качестве BIOS.

- Артём

16 декабря 2012 г.

Vegan pancakes

Отработал технологию выпечки веганских блинов (без продуктов животного происхождения). Теперь по выходным пеку блины. Вот фотография того, что получилось сегодня:

vegan pancakes
(license: CC-BY-SA)

Я не нашёл в фотоаппарате режима для фотографирования блинов (хотя там есть, например, режим для фотографирования цветов) -- однако надеюсь, что эта фотография получилась неплохо.

При приготовлении используются пшеничные хлопья, мука, дрожжи, вода, (тростниковый) сахар и соль. Я использую пшеничные хлопья Nordic -- на упаковке которых как раз можно найти рецепт этих блинов. Однако я внёс некоторые изменения в рецепт -- я смешиваю пшеничные хлопья с хлопьями других злаков (например, беру смесь из 4-х злаков от той же фирмы). Вообще, не уверен, что пшеничные хлопья являются незаменимым компонентом в данном рецепте.

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

Готовится всё легко, единственная проблема -- время приготовления. В общем виде, весь процесс можно разделить на следующие этапы:

  1. Приготовление каши из хлопьев
  2. Приготовление теста
  3. Собственно выпечка
  4. Употребление

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

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

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

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

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

Приятного аппетита.

- Артём

8 ноября 2012 г.

Расшаренные журналы LinuxFormat в офисе Меры

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

28 октября 2012 г.

Object oriented Lazy GTK Cat

Загрузил в репозиторий LazyCat на GitHub последние изменения, являющиеся результатом почти месяца работы. Суть изменений заключается в том, что Lazy GTK Cat (текущий и пока единственный GUI для LazyCat) переведён на объектно-ориентированную модель.

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

Поскольку решаемая мной задача (GUI и некоторая высокоуровневая логика) хорошо поддаётся на разбиение на ясно определённые объекты, перевод на объектно-ориентированную модель позволил упростить код, сделать его ясным и удобным для понимания. А значит, дальнейшее добавление необходимых возможностей в GUI будет проще.

Я изучаю Scheme и GNU Guile по ходу работы над проектом и по мере решения возникающих проблем. И в этот раз много времени ушло на чтение документации и эксперименты с GNU Guile -- чтобы понять, как же реализовать объекты в языке. Сначала попробовал создавать объекты с помощью closures -- механизм, который "из коробки" присутствует в Scheme.

Вариант с closures оказался простым и достаточно удобным. Но я на этом не остановился и решил попробовать сделать то же самое с использованием Guile Object Oriented Programming System (GOOPS) -- модуля, который приносит объектно-ориентированность в язык. После того, как переписал готовые объекты с использованием GOOPS, я продолжил разделение того большого куска кода, которым являлся Lazy GTK Cat, на небольшие и относительно простые объекты. Стало ясно, что GOOPS является более мощным и удобным механизмом для создания объектов в языке.

Работу методов для некоторых объектов я проверил по отдельности, через написание скриптов на GNU Guile (одна из возможностей этого интерпретатора -- использование вместо shell-интерпретатора для написания скриптов на Scheme, которые можно выполнить прямо из консоли). После тестирования нужно было собрать всё воедино и заставить работать. Далее -- тестирование Lazy GTK Cat и дописывание оставшихся частей основного класса приложения. Всё это было сделано за несколько дней.

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

Я по-прежнему ищу разработчиков для проекта. Важна не только помощь, но и интересен опыт совместной работы над проектом через GitHub. Если вам интересен проект -- go ahead, буду рад помощи.

- Артём