Search
Write a publication
Pull to refresh
52
0
Killy @Killy

User

Send message

Мониторинг выполнения задач в IPython Notebook

Reading time2 min
Views37K
Хотел бы поделиться простым, но полезным инструментом. Когда много работаешь с данными, часто возникают примитивные, но долгие операции, например: «скачать 10 000 урлов», «прочитать файл на 2Гб, и что-то сделать с каждой строчкой», «распарсить 10 000 html-файлов и достать заголовки». Долго смотреть в зависший терминал тревожно, поэтому долгое время я использовал следующий гениальный код:
def log_progress(sequence, every=10):
    for index, item in enumerate(sequence):
        if index % every == 0:
            print >>sys.stderr, index,
        yield item


Эта функция прекрасна, больше года она кочевала у меня из задачи в задачу. Но недавно я заметил в стандартной поставке Jupyter виджет IntProgress и понял, что пора что-то менять:

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

DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Reading time11 min
Views129K


Внимание! В рецепте с отбеливателем обнаружилась опасность коррозии металла! Не рекомендуется в стандартном применении!

Обзор экспериментов год спустя:
DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

В прошлой публикации мы создавали дешевый порошок для посудомойки из желудей и спичек кальцинированной соды и стирального порошка. В этой я расскажу о том, как можно его улучшить с помощью кислородного отбеливателя и где можно купить компоненты для более продвинутой версии. Будем делать упор на эффективности мойки, но даже при этом цена не выйдет за 100 рублей/килограмм. А еще будет рецепт ополаскивателя с себестоимостью в районе 1 рубля за литр. Как справедливо заметил amarao, занятие не для всех и многим проще использовать готовые таблетки. Но в подобных экспериментах с бытовой химией есть что-то от детства, первых опытов по смешиванию соды с уксусом и газировки с мятными конфетами. Так что ощутимая экономия здесь все-таки вторична. Будем развлекаться) Если кому-то лень читать весь текст — в конце поста будут подробные рецепты с рекомендациями.
Читать дальше →

Почему Go — это плохо продуманный язык программирования

Reading time9 min
Views89K
Это перевод статьи юзернейма tucnak с Medium, которая получила обширное обсуждение на reddit.com/r/programming.

image
Окей, заголовок действительно несколько громкий, признаю. Cкажу больше: я прусь от громких заголовков, все из-за внимания. В этой блогозаписи я постараюсь доказать тот факт, что Go это ужасно продуманный язык (спойлер: это так). Я уже играюсь с Go уже на протяжении нескольких месяцев, первый helloworld собрал, кажется, в июне. Математик из меня никакой, но с тех пор прошло уже что-то около 4 месяцев и я даже успел залить на Github несколько репозиториев и собрать немного звезд! Стоит также упомянуть, что у меня совершенно нет опыта применения Go в продакшне, так что любые мои слова о «поддержке кода» или «деплое» не стоит принимать за единственноверную истину.

Я люблю Go, я полюбил его как только впервые попробовал его. Я потратил несколько дней на то, чтобы принять идиоматику, смириться с отсутствием дженериков, разобраться с откровенно странным способом обработки ошибок и вы знаете, всеми этими классическими проблемами, так или иначе связанными с Go. Я прочел Effective Go, много статеек из блога Dave Cheney, следил за всеми новостями из мира Go. Я даже могу сказать, что я достаточно активный участник сообщетсва! Я люблю Go и ничего не могу с этим поделать — Go просто замечательный. Тем не менее, я считаю, что Go это ужасный плохо продуманный язык, который делает совершенно не то, что «продает».
Читать дальше →

Calque — калькулятор, который удобнее, чем консоль браузера

Reading time1 min
Views54K
Приветствую.

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

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

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

Поиск чего-то похожего на Tydlig ничего не дал, и было принято решение писать свое приложение.

Что из этой затеи получилось:


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

О разработке головок 3D FDM-принтеров.Часть 1

Reading time27 min
Views23K
В конце 2013 года, после длительных размышлений и штудирования Интернета, я решился собирать3Д-принтер, в процессе сборки которого, я проникся идеологией «малого машиностроения» и, начиная с малого, занялся разработкой и модернизацией узлов своего принтера.

Такая часть принтера, как головка, оказалась достаточно загадочной. Имеется в виду, что подробно о принципах её конструирования не было слишком много написано, а в Сети пестрело жалобами на застревания и некачественный пластик. Сам я не испытал никаких проблем с головкой — вероятно потому, что купил сразу качественную головку от хорошего производителя.
Так или иначе, тема разработки головок меня заинтересовала. Я стал делать опытные экземпляры. Получилось вполне хорошо. Но, чем больше я углублялся в тему, тем больше раскрывалось в ней тонкостей и мелочей и тем больше интересного. Потом так сложилось, что я несколько месяцев разрабатывал головку и механизм подачи для ручного 3Д-принтера Lix Pen. Это добавило мне опыта и технических возможностей. Теперь я продолжаю изучать эту тему, считаю что у меня накопилось немало информации на эту тему и я хочу поделиться ею, если кому будет интересно.

Вообще, главной целью моих опытов является существенное увеличение скорости и разрешения печати 3Д-принтеров FDM типа.


Рис. 11 Головка Тип 3.1
ВНИМАНИЕ! Описанные ниже примеры принтерных головок — не товар, они не продаются, так как являются скоростными/рекордными/экспериментальными изделиями и никто их не выпускает.
Читать дальше →

Интерполяция данных: соединяем точки так, чтобы было красиво

Reading time7 min
Views167K
Как построить график по n точкам? Самое простое — отметить их маркерами на координатной сетке. Однако для наглядности их хочется соединить, чтобы получить легко читаемую линию. Соединять точки проще всего отрезками прямых. Но график-ломаная читается довольно тяжело: взгляд цепляется за углы, а не скользит вдоль линии. Да и выглядят изломы не очень красиво. Получается, что кроме ломаных нужно уметь строить и кривые. Однако тут нужно быть осторожным, чтобы не получилось вот такого:

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

Развёртывание приложений Qt в Windows

Reading time6 min
Views101K

Вступление


Добрый день, уважаемые читатели! Совсем недавно я завершил разработку одного своего приложения на Qt, и мне захотелось создать профессиональную программу установки, чтобы всё было «как у взрослых». Как оказалось, сделать это непросто, учитывая, что на официальном сайте инструментария информации по развёртыванию почти нет. В данной статье рассмотрены некоторые этапы подготовки программ на Qt версии 5.2 или выше для распространения на компьютеры других пользователей. Итак, вот план руководства:

  1. Подготовка проекта Qt к развёртыванию
  2. Компоновка дистрибутива программы
  3. Подписание кода и создание установщика

Не будем терять времени и приступим к работе.
Читать дальше →

Генерация LINQ to SQL кода для SQLite в .NET (C#)

Reading time3 min
Views17K
На C# я пишу редко, и в основном все наши приложения и сервисы подключаются к источнику данных, используя MSSQL сервер или службы баз данных. И вот настало время написать приложение, используя не сервер, а локальную БД. Немного погуглив, я внезапно выбрал SQLite.

Предисловие


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

Исходя из вышеперечисленного, для баз данных конечно же были использованы классы LINQ to SQL, связанные с реляционными объектами.
Читать дальше →

LampTest.ru — тестирование светодиодных ламп

Reading time4 min
Views60K
Рад сообщить, что cайт lamptest.ru (он же lamptest.com), над которым мы работали полгода, сегодня заработал в «боевом» режиме.



На сайте собраны данные по протестированным мной светодиодным лампам. Сейчас их там 102, но уже скоро добавится ещё пара десятков. На сайте уже есть данные по всем лампочкам Ikea, по большому количеству ламп Thomson, Navigator, Gauss.

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

Bus Blaster — универсальный скоростной bit-bang интерфейс для терпеливых энтузиастов

Reading time11 min
Views16K


Мне давно хотелось иметь какой-нибудь простой и универсальный аппаратный интерфейс с несколькими входными и выходными сигналами, функциональность которого определяется исключительно софтом, вроде достопамятного программатора PonyProg. И чтобы его можно было использовать не только как чтения/записи прошивок, но и для отладки программ через JTAG. При этом покупать что-либо промышленное, при моем нерегулярном баловстве с электроникой, избыточно и нерентабельно — требовалось что-то из серии «полуфабрикатов», на основе bit-bang.

Что такое bit bang и зачем он нужен
Кое-кто еще помнит, что в счастливые времена Windows 9x каждая системная плата и каждый ноутбук в обязательном порядке имели последовательный (COM) и параллельный (LPT) порты. В ту пору для организации интерфейса с микросхемой ППЗУ, служебными контактами мобильника или передней панели магнитолы достаточно было припаять к разъему порта несколько резисторов, диодов и транзисторов. Все остальное делали обычные пользовательские приложения, самостоятельно формировавшие сигналы нужного протокола путем выставления нулей или единиц на нужных выводах, и считывания сигналов на входах. У клятых буржуев это называлось bit-bang, а у нас — «дрыгоножество», «ногомашество» и т.п.

С переходом на 2k/XP возникли сложности с прямым доступом к портам ввода/вывода, но они успешно решались костылями вроде giveio. Гораздо сильнее портила жизнь более высокая фоновая активность в NT, из-за которой сложнее было выдержать стабильность передачи и приема.

Как известно, на современных компьютерах, тем более — ноутбуках, с аппаратными портами не густо, ибо большинству пользователей они не нужны. USB-адаптеры для подключения устройств с интерфейсами RS232 и Centronics (в просторечии — COM/LPT) хорошо работают лишь в рамках основного назначения, а делать на них «дрыгоножество» проблематично по целому ряду причин. Во-первых, большинство этих адаптеров умеет обрабатывать с хорошей скоростью только сигналы данных (те же Tx/Rx), а управляющие сигналы обрабатывает с большими задержками. Во-вторых, адаптеры различных производителей аппаратно несовместимы, а возможности нестандартного управления через драйвер производителя сильно ограничены. В-третьих, для передачи команд адаптеру почти все драйверы используют отдельные USB-пакеты, что ограничивает частоту смены состояний всего тысячей раз в секунду, чего для многих применений катастрофически мало.

К счастью, компания FTDI уже давно предлагает ряд решений для USB, ориентированных именно на скоростной обмен произвольными сигналами. Беглое изучение вопроса показало, что наиболее популярны в этом плане интерфейсы на микросхемах FT232H/FT2232H.
Читать дальше →

Свой шаблон отклика-письма на HeadHunter (и moikrug) без Copy-Paste

Reading time7 min
Views26K
Многим хорош сервис поиска вакансий hh.ru, но ищущий всегда найдёт, что усовершенствовать. К примеру, на сервисе есть поле для заполнения письма — ответа на вакансию, но нет элементарного шаблона оформления письма — заголовок, кратко о себе, ответы на требования по вакансии.

Если нет — надо сделать. Ведь специалист по JS не будет многократно заниматься Copy-Paste-операциями, когда знает, что их можно автоматизировать, даже не обременяя просьбами службы сайта. Есть такие инструменты, как пользовательские скрипты.

UPD 12.1.2016: Скрипт расширен на сайты career.ru (клон HH с той же клиентской базой), itmozg.ru, superjob.ru.

Вначале, конечно, пришлось покопировать, пока не выявились закономерности и не получился юзерскрипт hhFiller. Шаблон отклика, на мой взгляд, должен содержать:
1. Заголовок-приветствие. После него пойдёт сразу рукописный текст, живой ответ на вакансию в 2-3 или более строчек.

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

USB-адаптер для цифрового вольтметра В7-28 на базе Arduino Mega

Reading time4 min
Views21K
article-v7-28.jpg

Наша лаборатория занимается, в числе прочего, измерением электросопротивления различных образцов. Основные рабочие лошадки нашей измерительной установки — цифровые мультиметры американской компании Agilent, такие как 34401A.

Кроме этого, долгое время лежали неиспользуемыми несколько стареньких, но рабочих вольтметров В7-28 (один из них на фото). Данный вольтметр, правда, уступает по точности и быстродействию «американцам», но всё равно достаточно хорош: точность до 5 десятичных цифр, приемлемая шумность, экранированные входы, а главное — возможность дистанционного управления с ПЭВМ (которые теперь зовутся ПК).

Использовать их не получалось по следующим причинам:
Читать дальше →

НЕ Arduino за 55 центов

Reading time3 min
Views104K


Эксперимент с прикручиванию к дешевым микроконтроллерам ATTiny загрузчика и среды разработки Arduino был достаточно удачным. Конечно, с AVR неплохо живется и без Arduino. Но хорошо, когда есть возможность выбора. А потом я вляпался в STM32 и заковырялся в библиотеках и громоздких конструкциях инициализации портов. Спасением ARM-«чайника» стал проект ARM mbed. Лично мне он позволил просто взять и начать работать с STM32.

Но мигать светодиодом на плате Nucleo надоело очень быстро. Отложил я ее, ибо слишком много ножек и наворотов, и взялся за Maple Mini (STM32F103CBT6 с минимальной обвязкой). Тоже все довольно легко и просто — сервоприводы крутятся, датчики работают, экранчики показывают — все популярные библиотеки, знакомые ардуинщикам, в mbed имеются.

А третий заход отчасти повторял «Arduino за 1$». О нем я и расскажу подробно. Идея такая: хочу ARM за копейки. Открываю Aliexpress и нахожу STM32F030F4P6 за 55 центов за штучку при покупке пучка (10 чипов).
Читать дальше →

GammaRay — средство интроспекции Qt-приложений

Reading time4 min
Views15K
Фреймворк Qt предоставляет неплохие средства разработки — входящая в него IDE Qt Creator включает дизайнер, отладчик, профайлер и другие удобные вещи. К сожалению, даже со всем этим иногда не очень понятно, почему приложение в данные момент выглядит так, как выглядит: чего-то не видно, что-то выглядит не так, как ожидалось, где-то неподходящий размер шрифта или неверная картинка.

Часть этих проблем может быть решена в Qt Designer, но только часть. Qt Designer имеет несколько существенных недостатков: во-первых, он неверно отображает положение Qt Quick компонентов в случае активного использования Javascript при расчете их координат и размеров, во-вторых в дизайнере мы видим состояние только «пустой» формы, без загруженных в неё данных. В общем, очень не хватает чего-то вроде инструментов разработчика в любом современном браузере: чтобы можно было посмотреть всё дерево компонентов, найти нужный, увидеть его положение относительно других, свойства, поправить на лету что-то, подобрать цвет\шрифт\размер, увидеть какие обработчики повешены на события и т.д.

И такой инструмент в мире Qt появился! Встречайте — GammaRay, средство интроспекции приложений на Qt. GammaRay понимает, что такое Qt, из чего состоит ваше Qt-приложение, как в нём взаимодействую компоненты, как они выглядят, как генерируются и обрабатываются события и т.д. Давайте посмотрим, что умеет GammaRay.


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

Программируем микроконтроллеры в QtCreator

Reading time9 min
Views25K


Почему-то в интернете мало документации про qbs, и я решил немного исправить эту ситуацию. Попробую описать в виде повествования, что необходимо сделать, что бы в QtCreator можно было компилировать (и не только) что угодно под что угодно.
Читать дальше →

Простая схема для оценки коэффициента пульсаций

Reading time3 min
Views13K
В комментариях к серии моих публикаций про светодиодные лампы не раз звучал вопрос о том, как померять коэффициент пульсаций без применения хитрых приборов вроде осциллографа или чего-то еще более специального. В связи с этим я предлагаю простую схему для примерной оценки коэффициента пульсаций при участии компьютера. Схема изначально разрабатывалась с учетом требований предельной простоты и дешевизны, и потому не отличается особо хорошими характеристиками; тем не менее, грубо оценить коэффициент пульсаций она поможет.
Читать дальше →

Немного об основах схемотехники светодиодных ламп

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

image

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

Хроники лаборатории: крыса в полимерном шлеме, спектральный анализ банкой чипсов и синяя изолента

Reading time10 min
Views48K

Знакомьтесь — подопытная крыса Теодор-младший.

Как многие знают, я сменил род деятельности и теперь основную часть времени я занимаюсь выращиванием суперсолдат и порабощением мира стволовыми клетками. Сразу хочу предупредить — работа в нашей лаборатории сопряжена с NDA, поэтому некоторых вещей я коснусь лишь поверхностно.
Когда вы занимаетесь наукой, то очень часто возникает необходимость решать сложные и нестандартные задачи. Какими бы глянцевыми и красивыми ни были ваши портативные коллайдеры, любовно приборетенные для разработок, иногда возникает необходимость создать что-то «на коленке» для проверки какой-то идеи. Особенно остро это ощущается в госучреждениях, где, несмотря на зачастую прекрасное финансирование, закон вынуждает организовывать межгалактический тендер на приобретение карандаша. Поэтому я расскажу вам про синюю изоленту, спектральный анализ с помощью банки чипсов и художественную лепку экзоскелета для крысы-мутанта. А заодно узнаем, стоит ли топить сухой лед в унитазе и можно ли потом это пить.
Дальше очень-очень много фотографий и текста

Как я пытался лечиться по ДМС, а получил 3D модель головы и чуть больше здоровья за свои деньги

Reading time10 min
Views35K
Ситуация, с которой наверное сталкивались многие обладатели полиса ДМС с оплатой стоматологии, когда страховая отказывается оплачивать лечение зуба. Стоматолог отправляет с обострением домой — «записывайтесь на прием», не говоря ни слова про то что следующий прием и лечение будут не по страховке.



В заметке расскажу как удалось сделать КТ челюсти с записью на диск, что такое формат данных DICOM и с помощью каких open source программ с ним можно работать. А также как и где мне удалось найти стоматологическую помощь.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity