Pull to refresh
28
0
Илья @w32blaster

Пользователь

Send message

Создаём окружение для PyQt5 в Linux MInt (Ubuntu)

Reading time7 min
Views63K
image image image
Давно уже до пятой версии обновился Qt и вместе с ним PyQt, но найти информацию по ним в русскоязычном сегменте — задача не из простых. Под катом подробный туториал для тех, кто только начинает знакомиться со связкой Qt + python3.

Цель: собрать и настроить окружение, пройти путь от установки PyQt5 и создания формы в Qt Designer до запуска переносимого бинарника под Windows (да, всё верно, разрабатываем под Mint, собираем для linux и windows).

Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments7

Как жить с Docker, или почему лучше с ним, чем без него?

Reading time5 min
Views77K


Эта статья предназначена для тех, кто уже знает про Docker, знает для чего он. А вот что делать с этим дальше не знает. Статья носит рекомендательный характер и не посягает на звание «лучшая практика».

Итак, возможно вы прошли docker tutorial, докер кажется простым и полезным, но вы пока не знаете, как он может вам помочь с вашими проектами.

Обычно с деплоем возникает три проблемы:
  1. Как мне доставить код на сервера?
  2. Как мне запустить код на серверах?
  3. Как мне обеспечить одинаковость окружения, в котором запускается и работает мой код?


Как с этим поможет Docker под катом.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments41

Поверхностный монтаж: трафарет и печь оплавления в домашних условиях

Reading time5 min
Views115K
Печатная плата с поверхностными компонентами

Когда начинаешь искать возможности произвести на продажу малую партию собственных электронных устройств, то обнаруживаешь, что эту задачу можно решить, не вставая с кресла. Например, так работает сервис Seeed, организующий не только производство, но и продажу ваших устройств. Если же вы не уверены, будет ли спрос, или просто желаете сэкономить, то оптимальным вариантом, на мой взгляд, будет заказать печатные платы где-нибудь в Китае, а себе оставить монтаж поверхностных (SMD) компонентов в домашних условиях. Я хочу рассказать, как можно существенно ускорить поверхностный монтаж с помощью самодельных трафаретов и импровизированной печи оплавления.
Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments67

Интерфейс для Яндекс.Диска в Ubuntu 14.04

Reading time3 min
Views44K
image

Как известно, Яндекс.Диск на Ubuntu существует только как консольный клиент. Сегодня я решил «хватит это терпеть» и написал для себя простенький скрипт, который значительно упрощает работу с ним (исходники внизу статьи).
Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments16

Ручной монтаж сложных плат на компонентах 0402, 0603, QFN, LQFP и THT

Reading time5 min
Views85K
Приветствую!



Сегодня речь пойдет о том, как добиться высокого качества монтажа на платах с большим количеством компонентов — до 1500шт (можно и больше при плотном монтаже или при сборке 1-2 плат одновременно — не более). Потребность в таком сложном монтаже обычно возникает при изготовлении первого макета или нескольких образцов, чтобы убедиться в правильности трассировки печатной платы (основных сложных моментов) или же при разовом производстве. После получения такого макета можно начинать отлаживать программное обеспечение и вносить корректировки в плату. Заводская сборка, в этом случае, не совсем подходит из-за ее стоимости, подготовки конструкторской документации, подборки компонентов, сроков, макетирования и многого другого (под катом картинки на 8Мб).
Читать дальше →
Total votes 67: ↑65 and ↓2+63
Comments72

Недорогие, маленькие, сетевые компьютеры — небольшой обзор

Reading time6 min
Views96K
«Чтоб ты жил в интересные времена!» — якобы старинное китайское проклятие.
Да, нам с вами повезло или «повезло» жить в действительно интересные времена (вариант — «в эпоху перемен»). Возможно, это на самом деле проклятие, особенно с точки зрения мифических древних китайцев. Однако факт остается фактом: то, что еще пара десятков лет назад казалось невозможным, сейчас доступно практически каждому. Особенно это заметно в нашей отрасли — информационные технологии и цифровая электроника развиваются просто какими-то совершенно фантастическими темпами. Функциональные возможности, быстродействие, миниатюрность и (относительная) дешевизна современных цифровых решений поражает воображение.
Еще совсем недавно сетевой компьютер размером меньше кредитки и стоимостью в несколько сотен рублей, пригодный для создания на его базе интересных самостоятельных проектов энтузиастами-одиночками с относительно невысоким уровнем знаний в области электроники и программирования, казался весьма отдаленной перспективой. И вот уже мы можем смело выбирать из десятка (как минимум) альтернатив! Давайте посмотрим, что сейчас можно приобрести буквально за несколько десятков долларов, чтобы построить вокруг этого нечто впечатляющее и даже, может быть, полезное.
Итак, поехали.
Total votes 65: ↑60 and ↓5+55
Comments124

Выбор технологии 3D печати для производства небольшого количества корпусов

Reading time4 min
Views57K

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

Данная публикация — продолжение статьи о процессе производства пилотной партии LaMetric, а именно о том, как создавался корпус прибора. Нижеизложенный опыт основывается на несколько пройденных итераций производства, во время которых мы опробовали и объединили различные технологии.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments26

Не пельменем единым жив программист или история о том, как все успеть

Reading time7 min
Views138K
image

По заявкам трудящихся и в связи с переносом — возвращаю пост, который многих порадовал. Надеюсь НЛО будет не против.

На написание этого поста меня сподвиг замечательный пост «За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил». Сразу хочу извиниться за возможные опечатки — пишу с планшета, сидя в микроавтобусе и вытягивая сеть телефоном. Hacker's keyboard очень удобен для ssh-доступа, но большие тексты писать им не очень удобно.

IT- специалисты — народ любопытный. То соберут на базе микроконтроллеров автоматическую систему полива и освещения для любимого фикуса, то пропатчат прошивку мультиварки для раздачи торрентов. Но, по непонятной и загадочной причине, когда дело доходит до еды, пресловутый принцип DIY дает сбой. И наш герой, способный часами переделывать кинескоп старого телевизора в Луч Смерти, идет на кухню утолить голод соевым текстуратом пополам с гидроцеллюлозой и «коллагеновым сырьем».

В этом посте я хочу разрушить миф о том, что еда может быть либо быстрой и удобной, либо съедобной. Не секрет, что многим из нас приходится работать по 12 часов в сутки, что не способствует кулинарным подвигам с участием 28 приправ и перьев с зада дракона, омытых слезами единорога. Вы получите замечательную возможность посмотреть в глаза своей половинки на 8 марта после того, как она получит не контроллер для дистанционного управления шторой, а свежевыпеченный хлеб ручной работы рано утром. Если вам надоело есть синтетику — добро пожаловать под hubracut.
Читать дальше →
Total votes 269: ↑263 and ↓6+257
Comments303

Плакаты на IT тематику

Reading time1 min
Views29K
Почитывая «Банду четырех», всё чаще думаю как хорошо было бы иметь отдельный плакат на стену в офисе, резюмирующий и объясняющий шаблоны проектирования. Как здорово было бы не держать все их в голове, а имея проблему, взглянуть и найти подходящее решение. Но найти подходящий постер оказалось не так то просто, да и тот оказался не идеальным.
Читать дальше →
Total votes 69: ↑57 and ↓12+45
Comments38

Полезность Kindle 3

Reading time1 min
Views2.4K
Совсем недавно приобрел себе в пользование Amazon Kindle 3 (WiFi).
Удобнейшая штука оказалась, жаль что не купил раньше.
Вообще-то это мой первый опыт использования электронных читалок, но уже сейчас могу сказать, что буду использовать такие устройства в дальнейшем.
Впрочем все восторги и разочарования по поводу этих устройств описаны в сотнях обзорах, так что повторятся я не буду.
Речь не об этом!
Буквально через пару часов использования решил для себя что эта штука может очень сильно экономить мое время.
Читать дальше →
Total votes 75: ↑65 and ↓10+55
Comments70

О тестировании web-приложений

Reading time7 min
Views13K
Тестирование софта это процесс, участвующий во всех жизненных циклах его разработки, который занимается проверкой и планированием требований продукта, подготовкой и проведением изменений в разрабатываемой системе. Как следствие — находятся несоответсвия требованиям и ошибки, оцениваются инструменты которые были использованы.
А если отвлечься и рассматривать системно, то роль тестера на самом деле лежит в каждом человеке. Если смотреть на проект как на человека, то роли
  • управляющего проектом это позвоночник и вегетативная нервная система
  • программисты это скелет и моторика
  • аналитики это органы чувств
  • тестеры это совесть

Quality Assurance часто считается синонимом тестирования, но на самом деле это методика предотвращения ошибок, а не их поиска и исправления. Качество в этом смысле — характеристика сделанного продукта.

Формально говоря, тестер должен проверять даже техническое задание, план проекта и анализ на логичность и понятность, а не только код и интерфейс программы. Тестирование как независимая дисциплина в общем потоке разработки ПО появилась в начале девяностых, когда стали более важны аудитория (клиенты), качество и время разработки.
Важность тестирования ПО особенно важна в критических системах. К примеру аппарат по лучевой терапии Therac (1985) облучил смертельной дозой радиации 6 человек из-за отсутсвия проверки состояния агрегата в коде и валидации. Или марсоход в 1999 году принёс убыток в 125 млн долларов из-за непродуманности единой системы измерения между коммандами разработчиков. И даже в Эстонии при электронных выборах были проблемы из-за плохого нагрузочного тестирования.
Основные принципы тестирования воплощены в небольшом документе ISTQB и в книге «Foundations of software testing».
Вся «прелесть» специальности тестера в том что как правило для этого не нужны большие познания в программировании и люди далёкие от web-строительства могут себя попробовать в этой роли.
Читать дальше →
Total votes 27: ↑21 and ↓6+15
Comments6

Альтернативная среда сборки для N900

Reading time5 min
Views2.1K
На текущий момент существует единственный официальный способ компиляции под N900 — через Scratchbox. Чем он мне не угодил? Да вот чем. Во-первых, он есть только под i386, со всеми вытекающими из этого весёлостями в виде необходимости держать кучу 32-хбитных библиотек. Во-вторых, ставится оно вопреки всем канонам зачем-то в /scratchbox, попутно прописывая свои модули для binfmt и, вытворяя прочую похабщину, разрушает стройную структуру дистрибутива. В-третьих там достаточно древний qemu, что даёт отнюдь не рекордную скорость компиляции. Ну и в-четвёртых, ставится это чудо очень медленно (я не знаю, где они хостятся, но установщик качал полгига пакетов довольно-таки длительное время. Кстати говоря, весит оно в установленном виде тоже изрядно. А поверх него ещё идёт SDK.
Ну и самое важное. qemu-user не поддерживает весь набор системных вызовов ядра. А, значит, часть софта (в частности, mono), банально не сможет работать. Проблему можно было бы решить, chroot'ясь в окружение из arm-ной системы в режиме полной эмуляции, но см. пункт первый.
В общем, убогое поделие, вообще не представляю, у кого рука поднялась его использовать в серьёзном проекте.

По-идее ещё можно компилить непосредственно на устройстве. Но тут проблема в том, что там стоит busybox, c которым очень плохо дружит тот же dpkg-buildpackage. Соответственно, при переносе rootfs c устройства и попытках оную использовать, эти грабли никуда не исчезают. А заменить его на coreutils не так-то просто, ибо это сломает часть зависимостей и отвалится полсистемы.



И что делать? А мы пойдём другим путём. Изобразим из себя ярых последователей барона Мюнхгаузена и в лучших традициях процедуры bootstrap (поднятие самого себя за шнурки ботинок) установим систему с нуля из пакетов. Как именно, читайте под катом.
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments14

Nokia Qt SDK, пишем первое приложение и запускаем его в эмуляторе и на устройстве

Reading time9 min
Views17K
Доброго времени суток хабрапользователи. Продолжаю писать о платформе Maemo (пока еще для Maemo Fremantle). Эта статья посвящена новости в мире Nokia — выход Nokia Qt SDK. Пока еще это TP (Technical Preview, долго силил перевод на русский, не получилось, так что пуст будет «TP» далее по тексту). Но писать на этом уже можно, но есть несколько оговорок. Подробности далее по порядку. Еще я расскажу подробней о MADDE, так как именно эта часть в Nokia Qt SDK отвечает за разработку для Maemo.

image

Как результат мы напишем приложение (очень громко сказано :-), вообще так, приложенице ), соберем и запустим его на эмуляторе и на устройстве ( точнее на Nokia N900 ). Да и вообще разберемся что чем и как писать для устройств Nokia сейчас и в будущем.

Ну если интересно, то приступим.
Total votes 66: ↑59 and ↓7+52
Comments24

Nokia N900. Продолжаем разбираться в возможностях устройства (КМБ-2)

Reading time10 min
Views12K
Доброго времени суток дорогой читатель. Продолжаю цикл статей о Nokia N900.
Предыдущие статьи Вы можете найти здесь:
Nokia N900: Курс молодого бойца (КМБ) или осваиваем и осматриваемся
Nokia N900 — «кто» это?

В предыдущих статьях мы выяснили, что же это такое — Nokia N900, как его подружить с компьютером и список из некоторых программ, доступных под эту платформу.

image

О чем речь пойдет в этой статье? Да в общем будем двигаться дальше и я расскажу о таких моментах как:
  1. Загружаем карты в Ovi Maps, чтоб не использовать лишний трафик в пути.
  2. Создание списка воспроизведения в медиаплеере «на лету» («on-the-go»).
  3. Список полезных комбинаций клавиш.
  4. О чем моргает светодиод на передней панели.
  5. Список полезных программ (продолжение).


под катом инструкции и видео
Total votes 31: ↑27 and ↓4+23
Comments21

Быстрая установка Fremantle SDK (Maemo 5). Установка Qt 4.6. Запуск и отладка в эмуляторе и на устройстве

Reading time8 min
Views3K
Доброго времени суток хабрасообщество. Продолжаю цикл статей по программированию для Maemo. Ранее я писал как установить и настроить SDK в «гибридном» режиме — пишем на родной ОС, а собираем и запускаем на виртуальной машине.

Некоторым показалось, что начать программировать для Maemo тяжело. Именно поэтому я решил начать с демонстрации легкого пути «Easy way» ©, чтоб показать как легко начать. Далее, учитывая выход официального релиза t 4.6.2 для maemo 5, я покажу как поставить этот релиз на Fremantle SDK. Продемонстрирую отладку в эмуляторе. И самое главное, как отлаживать приложение на устройстве используя обычное сетевое подключение и подключение по USB.

Результатом нашего труда будет вот такое вот окошечко на устройстве:

image

Примечание: в качестве IDE используется Scratchbox, так как речь идет о Fremantle SDK. QtQreator можно использовать, но как таковой поддержки Fremantle в нем нет и не будет. Почему? Да потому-что в нем делают поддержку нового, кросс-платформенного SDK — MADDE, о котором я уже упоминал (и упомяну еще в заключении).

Под катом ищите видео и инструкции ...
Total votes 28: ↑25 and ↓3+22
Comments19

Как настроить Maemo 5(4) SDK и начать писать приложения под Windows/Linux/MacOS менее чем за полчаса!

Reading time12 min
Views6.1K
image

Уже нет смысла, я думаю, объяснять что такое Maemo и где он работает. Всем понятно, что это Linux, который сейчас работает на таблетках от Nokia и на новом Nokia N900. Но так как проект open-source, то думаю другим производителям ничто не мешает сделать свое устройство под этой платформой (кто знает, может появится HTC или Motorolla на базе Maemo).

Речь в этой статье пойдет о том как настроить окружение для разработки для Maemo.

Начнем с того, что сейчас существуют два типа SDK — текущий стабильный для Maemo5/4 (Fremantle/Diablo) и новый SDK, который сейчас в бете — MADDE.

Ну давайте начнем со стабильного (относительно и спорно, позже покажу почему) и текущего — Fremantle (на момент написания статьи но был «pre-final 2», теперь в «final»). Он базируется на Diablo и поэтому процесс установки и нструменты те же. И если вам нужен Diablo — инструкция подойдет эта, а далее я буду говорить только о Fremantle, подозревая что по желанию можно использовать Diablo.

Хорошо, предположим, что мы выбрали SDK Fremantle (MADDE я посвящу последующие статьи). У этого SDK есть один недостаток — он моно-платформенный. Он работает только под Linux x86 (желательно debian based, но не обязательно). Для счастливый пользователей этой системы существует простой путь для установки SDK нужно скачать скрипт с этой страницы и действовать согласно этой инструкции.

Что же делать, если рабочая система у нас Windows(самая популярная)/Linux x64/MacOs? Не отчаивайтесь. У вас и тут есть выбор. Самый легкий путь — это скачать отсюда виртуальный образ с настроенным окружением и в нем работать. Все предельно просто — качаем, запускаем из-под VMWare, QEMU, VirtualBox. Там уже стоит ESBox и SDK. Если вы не знаете как установить систему в виртуальной машине, можно подсмотреть в этой статье далее.

image
Ну и последний вариант — если Вы хотите разрабатывать приложения на своей родной платформе — нет проблем! ESBox (забыл представить — это Eclipse+плагины для разработки под Maemo5/4) умеет работать с виртуальной машиной. То есть получается, что вы пишите код в ESBox, он собирает это в виртуальной машине и запускает там, а результат отображается опять же в вашей родной системе. Виртуальная система работает «в тени». Идея прекрасна, не правда ли?

На деле все не так гладко в Windows, под Mac OS и Linux все работает как надо (надеюсь в скором будущем для Windows все отмеченные мною баги будут исправленны). Я столкнулся с несколькими неприятными моментами, плюс часть документации, которую можно найти в разных местах создана не Нокиа, а open source community и иногда встречаются неточности и несоответствия версий

Вот в этой статье далее пойдет речь о том как установить Maemo SDK под Windows (будут замечания, если процесс будет отличатся от Linux, Mac OS вариантов) и более того, я при вас это сделаю менее чем за пол часа. Всё видео и нотации к ним под катом.

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

Некоторым кажется, что процесс утсановки сложен и много букв. В действительности не так, просто я постарался описать как можно подробней. В действительности достаточно посмотреть видео, и если что-то непонятно — прочитать описание к этому видео.

пошаговые инструкции по установке ...
Total votes 64: ↑54 and ↓10+44
Comments44

Групповой заказ печатных плат — мифы и реальность

Reading time5 min
Views89K


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

Жизнь жестоко проучила меня. На деле необходимый минимум ограничений для обеспечении ощутимой выгоды оказался ГОРАЗДО больше чем я ожидал. В итоге у меня ничего не получилось. Мы, конечно, собрали и запустили один заказ. Все финансовые выкладки и технические тонкости под катом.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments51

Время против памяти на примере хеш-таблиц на Java

Reading time3 min
Views18K
Эта статья иллюстрирует т. н. компромисс скорости и памяти — правило, которое выполняется во многих областях CS, — на примере разных реализаций хеш-таблиц на Java. Чем больше памяти занимает хеш-таблица, тем быстрее выполняются операции над ней (например, взятие значения по ключу).

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments28

Расширенный материал по Java 8

Reading time4 min
Views52K
Не секрет, что многие Java-программисты, начиная свой путь в индустрии, уделяют большое внимание «тяжелым» технологиям — OpenJPA, Spring, JAX-RS, EJB, WS-*,… Это дает возможность как скорее влиться в современные корпоративные проекты, так и максимизировать скорость роста зарплаты.

Многие из них в конце концов «спускаются» до технологий лежащих в основе указанных фреймворков — JDBC, Servlet API, NIO/NIO.2. Однако прискорбно, что зачастую не остается время на детальное изучение самого языка и возможностей платформы.

Речь идет не о тонкостях или экзотике, а о том, что составляет существенную часть работы фреймворка: Servlet-контейнер использует множественные ClassLoader-ы, JPA2-провайдер использует манипулирование байткодом, абсолютное большинство библиотек используют Reflection API, всеобщее использование Generics только «усугубилось» с появлением функциональных интерфейсов (java.lang.function.*) и лямбд.

На недопонимание изначальной платформы (ClassLoader, Reflection API) накладываются «новвоведения» Java 5 (Generics), а теперь еще и Java 8 (методы в интерфейсах, ссылки на методы, лямбды, Stream API, JSR 308: Pluggable Type Systems). Надо обратить внимание на то, что Generics + Java 8 — это не просто языковые фичи, это частично переход к функциональному стилю программирования.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Я собрал определенное количество полезных (на мой взгляд) ссылок по следующим темам
  1. Методы в интерфейсах, ссылки на методы, множественное наследование
  2. Лямбды (Project Lambda)
  3. Stream API
  4. Функциональные алгоритмы
  5. Аннотации
  6. Генерики
  7. Reflection API
  8. Загрузка классов

Надеюсь кто-то сочтет их полезными.
Читать дальше →
Total votes 43: ↑34 and ↓9+25
Comments37

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity