Pull to refresh
35
0
Вячеслав Дубинин @bodhisattva

User

Send message

Док-станция для ноутбука из LEGO

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

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

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

Конструкция получилось настолько удачной, что за пять лет с небольшими доработками объездила со мной уже четыре квартиры и носит на себе уже третий ноутбук. Фото и краткое описание под катом.
Читать дальше →
Total votes 57: ↑51 and ↓6+45
Comments32

Решение японских кроссвордов на Haskell

Reading time12 min
Views26K
Японский кроссворд — головоломка, в которой по набору чисел нужно воссоздать исходное черно-белое изображение. Каждой строке и каждому столбцу пикселей соответствует свой набор, каждое число в котором, в свою очередь, соответствует длине блока подряд идущих черных пикселей. Между такими блоками должен быть хотя бы один белый пиксель, но точное их число неизвестно. Журналы, целиком посвященные этим головоломкам, есть в большинстве газетных киосков, так что, думаю, почти все с ними хоть раз да встречались, и потому более подробное описание здесь можно не приводить.

В какой-то момент мне захотелось «научить компьютер» решать японские кроссворды так, как решаю их я сам. Никакой высокой цели, just for fun. Потом уже были добавлены способы, которые сам я применять не могу в силу ограниченных возможностей человеческого мозга, но, справедливости ради, со всеми кроссвордами из журналов программа справляется и без них.

Итак, задача простая: решить кроссворд, а если решений много, то найти их все. Решение написано на Haskell'е, и, хотя код достаточно существенно дополняет словесное описание, даже без знания языка общую суть понять можно. Если хочется пощупать результат вживую, на странице пректа можно скачать исходники (бинарных сборок не выкладывал). Решения экспортируются в Binary PBM, из него же можно извлекать условия.



Несмотря на то, что я пытался писать максимально понятно, это не в полной мере мне удалось. Под катом очень много букв и кода и почти нет картинок.
Читать дальше →
Total votes 64: ↑57 and ↓7+50
Comments23

Information

Rating
Does not participate
Location
Красногорск, Москва и Московская обл., Россия
Date of birth
Registered
Activity