Search
Write a publication
Pull to refresh
36
0
Александр Воронин @av0000

User

Send message

Бульбулятор травилка. Ускоритель травления печатных плат

Reading time3 min
Views31K
Помню ещё в 12 лет, когда травил свою первую печатную плату, просто изнывал от нетерпения произвести этот процесс быстрее. Тогда раствор был старым и травление шло почти сутки. Ныне я травлю, конечно, значительно быстрее, но всё же не за пару минут. А ведь так хочется узрить результат своих трудов и перейти к более интересной стадии – сверлению и запайке деталей. И вот поселилась в моей голове мысль, как же ускорить данный процесс. Собственно говоря, все кто травит печатные платы, знают, что ускорение травления обеспечивают два фактора: повышение температуры раствора и постоянное его перемешивание. Первый фактор легко достижим – залил хлорное железо кипяточком и получил профит. А для реализации второго, каких только конструкций я не встречал: и мешалки, и качалки, и педальки и т.п. бред. Но на самом деле, всё оказалось значительно проще, дешевле, а главное доступнее.

image
Бульбулятор собственной персоной

Для изготовления потребуется:
— поллитровая пластиковая бутылка любимого напитка;
— дешевый аквариумный компрессор;
— вертикальная прямоугольная ёмкость, желательно прозрачная (я использовал ёмкость от старого аккумулятора, можно использовать квадратную вазу, главное чтобы была не металлическая);
— шланг для компрессора, длинной метр (покупается в том же магазине, где и сам компрессор);
— прямоугольная пластина, для сборки (можно использовать фанеру, или железо, я же использовал толстый гетинакс).

Из инструментов нам потребуется только термоклей с термопистолетом.

Читать дальше →

Фреймворк для парсинга Grab:Spider

Reading time4 min
Views30K
Я автор python библиотеки Grab, которая упрощает написание парсеров веб-сайтов. Я о ней писал вводную статью некоторое время назад на хабре. Недавно я решил вплотную занять парсингом, стал искать free-lance заказы по парсингу и мне понадобился инструмент для парсинга сайтов с большим количеством страниц.

Раньше я реализовывал мультипоточные парсеры с помощью python-тредов с помощью такой вот библиотечки. У threading-подхода есть плюсы и минусы. Плюс в том, что мы запускаем отдельный поток(thread) и делаем в нём, что хотим: можем делать последовательно несколько сетевых вызовов и всё это в пределах одного контекста — никуда не надо переключаться, что-то запоминать и вспоминать. Минус в том, что треды тормозят и жрут память.

Какие альтернативы?
Читать дальше →

Полупроводниковая электроника

Reading time30 min
Views385K


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



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





Иллюстраций: 34, символов: 51 609.



Читать дальше →

Резервное копирование для standalone *NIX-серверов. Эмулируем TimeMachine

Reading time7 min
Views7.2K
Думаю никому из присутствующих не нужно объяснять важность резервного копирования.
Проблема в том, что из десятков готовых решений ни одно толком не удовлетворяет моим требованиям standalone *NIX-сервера на колокейшене.
Чего же хотелось от резервного копирования?
1) ежедневного полного бакапа всех данных. Никаких incremental-бакапов.
2) максимально быстрого восстановления отдельно взятого файла. Архиваторы (tar/gzip/bzip2/rar) отпадают
3) быстрого мониторинга «кто именно залил вчера на сервер 156Гб?!!!»
4) резервные копии хочется хранить максимально долго, насколько хватает свободного места на дисках.
5) хочется не заботиться об ручном удалении старых копий если место на диске всё-таки уже кончилось
Если в двух словах — то мне захотелось реализовать функционал MAC OS TimeMachine на Linux-сервере.
И я начал писать скрипт.
Читать дальше →

Расширяем функциональность conky: добавляем функцию для отображения даты трека MPD

Reading time7 min
Views4K

Введение


Недавно я перешёл с ncmpc на ncmpcpp. Порадовал «альтернативный режим отображения», в нём информация о треке выводится не снизу, а сверху, причем в две строчки, а не в одну, выглядит это так:



Потом мне захотелось, чтобы в conky информация MPD отображалась примерно так же. Но вот незадача — conky умеет показывать название трека, альбома, исполнителя, а вот дату не умеет. Но это для нас не большая проблема, opensource, все-таки, допишем необходимую функциональность своими руками.
Читать дальше →

Как работает yield

Reading time6 min
Views729K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ

Метод html-верстки кнопок с применением псевдоэлементов

Reading time7 min
Views9K
Появлению этой методики способствовала воистину монстрообразная вёрстка элементов страницы на нашем проекте. Подумать только, для отображения одной кнопки требовалось до семи тегов на один элемент.

Выглядело это примерно так:



html
<div class="large_button"><br>  <span class="buttons submit_v2-button clickable"><br>    <i class="left left2"></i><br>    <i class="body"><br>      <b>В архив</b><br>      <i class="end"><br>        <i></i><br>      </i><br>    </i><br>  </span><br></div>

Видно, что запутаться в таком коде проще простого, тем паче, что вариантов кнопок на проекте накопилось не менее 30. Попытка создать такую кнопку на серверной стороне вызывала негодование у коллег «пехапистов».

Поэтому моей негласной задачей стало максимальное упрощение кода.
Читать дальше →

Взгляд изнутри: светодиодные лампочки

Reading time17 min
Views662K


Предисловие


В последнее время был поднят ажиотаж вокруг светодиодных ламп, которые должны заменить собой обычные лампы Ильича. И как поведал главный нанотехнолог России, такие лампы скоро поступят в продажу в Москве и Санкт-Петербурге. Конечно, всё было обставлено с пафосом: первым оценил новинку В.В.Путин. Мне удалось достать лампочку от «Оптогана» одним из первых, к тому же в руках у меня оказались ещё одна лампочка российского производства («СветаLED» или «SvetaLED»), правда побитая жизнью, но рабочая, и китайский NoName, которую с лёгкостью можно купить на ebay или dealextreme.com.
Читать дальше →

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Reading time5 min
Views177K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

Читать дальше →

Скрипт резервного копирования через rsync

Reading time3 min
Views28K
Возникла необходимость как-то и куда-то бэкапится. Причём чтобы процессоры не грузились и место не занималось, а бэкапы ротэйтились и удобно доставались. Раньше всегда пользовался fsbackup, но захотелось отказаться от архивирования. Для решения задачи была использована rsync и механизм жёстких ссылок (так называемых хардлинков) файловой системы.

Архитектура: есть отдельно стоящий сервер с большим винтом — на нём и работает скрипт. Есть много разных серверов с доступом по ssh, на которых в ~/.ssh/authorized_keys добавлен публичный ключ пользователя, под которым работает скрипт резервного копирования.
Читать дальше →

Взаимодействие bash-скриптов с пользователем

Reading time4 min
Views147K
Любой приказ, который может быть неправильно понят, понимается неправильно (Армейская аксиома)

Редкий скрипт лишен необходимости общения с пользователем. Мы ожидаем, что программа (утилита) будет выполнять то, что нам от нее хочется. Следовательно, нужны инструменты влияния на них, да и программа сама должна объяснить, как продвигается ее работа.
Данным топиком я хочу рассмотреть несколько способов взаимодействия bash-скриптов с пользователем. Статья рассчитана на новичков в скриптинге, но, надеюсь, люди опытные тоже найдут что-нибудь интересное для себя.
Итак, приступим...

Зеркалирование баз данных на MS SQL

Reading time5 min
Views108K
Доброго дня. Решил я описать здесь свой опыт настройки зеркалирования БД. Не имея, до недавнего времени, подобного профита, я начал сёрфить интернет в поисках информации на этот счёт. И постараюсь оформить пост как пошаговая инструкция рассказать об основных моментах, в общем что бы ничего лишнего.
Читать дальше →

Делаем твёрдый переплёт для любимых книжек

Reading time6 min
Views552K
Небольшое вступление

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

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

Большое вступление

Некоторое время назад мне захотелось прочитать цикл Дугласа Адамса «Автостопом по галактике». Я попробовал почитать несколько переводов и не один меня не устроил. Поэтому было принято решение — читать на английском! Найти эти книги в оригинале в наших книжных магазинах довольно сложно. А если и есть, то только первая часть цикла. В электронном виде найти несколько проще. Но я предпочитаю читать с бумаги (читалку на E-ink куплю обязательно — очень нравятся), поэтому книги я распечатываю.

Первые две книги выглядели так:
image

Я их прочитал с огромным удовольствием, но выглядели они не очень хорошо. И я решил, что «Life, the Universe, and Everything» нужно делать книжкой.

Процесс с картинками и комментариями под катом. Осторожно, действительно много картинок.
Читать дальше →

Печатаем книги-брошюры в *nix

Reading time3 min
Views18K
Наверняка у многих из тех, кто читает этот пост, возникало желание распечатать некую книгу на бумаге и сделать это так, чтобы книга была по удобству близка к типографской. Конечно, в роли книги может выступать как какой-нибудь pdf-документ, так и какая-нибудь tex'овая научная работа.

Ну а что же такое брошюра? По сути — это такая тетрадка, каждый лист которой является половиной большого листа, а общее количество страниц легко рассчитать по формуле <кол-во «больших» листов>*2<сколько «маленьких листов» на «большом»>*2<два оборота у листа=2 страницы>.

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

В этой статье я постараюсь объяснить как просто и быстро распечатать любой документ в виде брошюры.
Читать дальше →

Новая версия Менеджера устройств ONVIF

Reading time4 min
Views85K
Менеджер устройств ONVIF (ONVIF Device Manager — onvifdm) — открытая реализация клиента (приемной части) системы охранного видеонаблюдения на базе международного стандарта ONVIF. В состав приложения входит библиотека ONVIF, которая позволяет взаимодействовать с сетевыми устройствами, такими как IP-камеры, видеоэнкодеры, считыватели ключей, турникеты, датчики дыма. Менеджер устройств ONVIF и библиотека могут быть использованы при разработке коммерческого или любительского ПО, например, для удаленного наблюдения за коттеджем, определения длины очереди в магазине, фотографирования птиц.

Менеджер устройств ONVIF
Читать дальше →

Обзор шины SPI и разработка драйвера ведомого SPI устройства для embedded Linux (Часть первая, обзорная)

Reading time13 min
Views185K
В этой статье я хочу провести краткий обзор шины SPI (интерфейса, широко распространённого во встраиваемой технике, используемого для подключения различных устройств) и попытаюсь описать процесс создания драйвера протокольного уровня SPI устройства для Linux. Данный документ не претендует на роль полного руководства, а скорее преследует цель указать нужное направление. Так как статья не вошла в размер одного топика, мне пришлось разбить её на две части.

0. Вместо введения


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

Для кого эта статья?
В первую очередь, для новичков, каковым являюсь и я. На форумах по embedded Linux очень часто можно встретить вопрос: «А как на этой плате работать с SPI?». Именно на него я и попытаюсь дать ответ. В качестве примера, я приведу код написанный для работы с моим тестовым SPI устройством.
Читать дальше →

Как зашифровать Ваши файлы и улучшить безопасность Dropbox

Reading time4 min
Views39K
imageDropbox — действительно отличный сервис. Он дает Вам свободные 2 гигабайта памяти, чтобы хранить Ваши файлы и предоставляет вам доступ и синхронизации их между различными компьютерами, независимо от того запускаете вы его на Windows, Mac, Linux или любой другой мобильной ОС. Однако, есть одна проблема. Все файлы, которые Вы храните в облаке, не зашифрованы. Кто бы ни взламывал Ваш аккаунт, может просмотреть и получить доступ ко всем файлам в Вашем аккаунте, включая те конфиденциальные документы, которые Вы синхронизировали по облаку.

Почему это важно? Ошибка, сделанная командой Dropbox несколько дней назад, оставляла личный кабинет Dropbox'a открытым в течение 4 часов. В течении этого времени кто угодно мог войти в любой аккаунт и получить доступ ко всем файлам в этом аккаунте без любого пароля. В то время как это затронуло только 1 % их пользователей (который составляет примерно 250 000, и это не маленькое число), если Вы — один из тех, аккаунты чьи попали под угрозу, либо у Вас есть конфиденциальные файлы в Вашем Dropbox, лучше зашифруйте его чтоб подобные вещи были вам не страшны.
Читать дальше →

Какие единицы измерения выбирать при верстке

Reading time3 min
Views26K
В прошлой моей статье я затронул единицы измерения и тут же в комментариях начались на эту тему споры и обсуждения, поэтому я решил вынести этот вопрос в отдельный пост. Вот теперь и обсудим :)
Читать дальше →

Интересная фича Grub2: загрузка из ISO-файла

Reading time3 min
Views75K
Собственно, захотелось мне посмотреть на Unity. По картинкам и видео – вроде ничего. Да вот беда. В виртуальной машине его не запустишь — 3D требует. Сам я KDEшник. Основной ОС на ноутбуке является kubuntu. Ну, думаю, можно поставить второй системой. Свободное место, вроде, есть.

Ок. Качаю образ Natty, прожигаю а вот хрен. Оказалось, не работает мой CD-ROM. Ноут уже довольно старенький. Загрузки с флешек в биосе тоже нет. После кратковременной паники было найдено решение.

Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них.
Читать дальше →

Information

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