Pull to refresh
63
0
Андрей Николаев @Dremkin

User

Send message

Применение биполярных транзисторов с микроконтроллерами

Level of difficultyMedium
Reading time10 min
Views45K

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

Читать далее
Total votes 100: ↑100 and ↓0+100
Comments77

Разрабы работают медленно и дорого — и люди считают нас лентяями. Просто в разработке всё сложно

Reading time7 min
Views75K

— Люди не из индустрии вечно не понимают программистов: что они там такое сложное делают, если видно только две кнопки? Что за непонятные слова говорят? Почему так много получают?


Вместе с парнями из подкаста «Мы обречены» решили с этим разобраться и запустили совместную рубрику, где будем объяснять, почему в разработке всё так сложно. А для тех, кто любит читать, а не слушать, парни написали эту статью.


Читать дальше →
Total votes 219: ↑183 and ↓36+147
Comments533

Договорные модели разработки ПО

Reading time5 min
Views9.5K
Как юристы в сфере ИТ, мы готовим договоры на создание ПО как для разработчиков, так и для заказчиков. В договоре необходимо учесть особенности различных моделей разработки ПО, выделить возникающие в связи с этим риски клиента и постараться их нивелировать.

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

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

1. Договор с фиксированной ценой (Fixed Price)


Условия применения. Применяется в стандартных проектах с понятными решениями и требованиями, поддающимися детализации. Требования к результату выносятся в отдельное техническое задание. Фиксируются сроки выполнения работ и их стоимость.

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

Риски заказчика. Сложность изменения требований к продукту в процессе его разработки. В результате такие условия плохо подходят к разработке нестандартного ПО и сложных систем.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

Типичные взаимные блокировки в MS SQL и способы борьбы с ними

Reading time11 min
Views104K
Чаще всего deadlock описывают примерно следующим образом:
Процесс 1 блокирует ресурс А.
Процесс 2 блокирует ресурс Б.
Процесс 1 пытается получить доступ к ресурсу Б.
Процесс 2 пытается получить доступ к ресурсу А.
В итоге один из процессов должен быть прерван, чтобы другой мог продолжить выполнение.
Но это простейший вариант взаимной блокировки, в реальности приходится сталкиваться с более сложными случаями. В этой статье мы расскажем с какими взаимными блокировками в MS SQL нам приходилось встречаться и как мы с ними боремся.


Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments18

DDoS атака в обход Qrator. Как защититься?

Reading time4 min
Views26K
Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments10

Мой опыт построения промышленной сети 1-Wire

Reading time4 min
Views47K

Предыстория

Как и многие хабрапользователи, обладая некоторыми навыками и неплохой фантазией, как-то наткнулся на сайт, тогда еще он висел на народе, и посвящался сопряжению самодельных устройств с ПК. Именно тогда зародилось семя безудержного интереса, чтобы что-то сделать и управлять этим с компьютера. Тогда, конечно, все начиналось с lpt порта принтера и постепенно перерастало на com порт и в конечном на usb. Все бы ничего, пока не наткнулся на сайт, посвящений созданию системы умного дома. Тогда я понял, что мне действительно интересно. Опустим долгий и интересный рассказ и перейдем прямо к теме.Пишу данную статью в качестве любителя, не профи, и надеюсь она поможет вам создать свою сеть с нуля, или почерпнуть полезный опыт для своей сети.В статья я хочу описать создание своей сети 1wire с нуля, включая все этапы построения и полезные советы.
  • Проектирование, печать, травление, лужения и пайка печатной платы;
  • Монтаж промышленной шины 1wire;
  • Программные и аппаратные средства управления и мониторинга.
Читать дальше →
Total votes 32: ↑24 and ↓8+16
Comments17

Квадрокоптер DJI Phantom FC40 — мини-разбоксинг и первый полёт

Reading time4 min
Views49K
Приветствую,

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

Почитав разные статьи/форумы про квадрокоптеры и посмотрев десятки видео с полётами и падениями, мой выбор сузился до моделей типа ready-to-fly. Я не хотел собирать дрона сам, не хотел ничего паять и не хотел после сборки обрабатывать напильником, что бы он полетел. Я хотел достать товар коробки, зарядиться и улететь.

Дальнейшее штудирование темы остановило мой выбор на фирме DJI. В ассортименте были навороченные модели с много-мегапиксельными камерами, большим радиусом полёта, долгоиграющими аккумуляторами и прочими плюшками. Но цена отталкивала. Запустить больше 1000 евро в стратосферу — нет, спасибо. Для первой «этажерки» это через чур кучеряво и я снизил ценовую планку.

В итоге мной была выбрана модель DJI Phantom FC40.

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

Исчерпывающее руководство по составлению почтовых рассылок

Reading time13 min
Views175K


Несмотря на то, что большая часть общения онлайн перешла в социальные сети, почтовые рассылки по-прежнему остаются важной частью любой маркетинговой кампании.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments12

Заставьте сайт работать на сенсорных устройствах

Reading time8 min
Views67K


Сенсорные экраны на мобильных телефонах, планшетах, ноутбуках и настольных компьютерах открыли веб-разработчикам целый ряд новых взаимодействий. В переведенном руководстве Патрик Локи рассматривает основы работы с сенсорными событиями в JavaScript. Все рассматриваемые далее примеры есть в архиве.

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments7

Собираем лазерный проектор из доступных деталей

Reading time7 min
Views87K
UPD: Добавлены файлы платы с ЦАП на GitHub

Изначально я планировал сделать Лазерную арфу, но пока получился промежуточный результат — устройство, которое можно использовать как лазерный проектор — рисовать лазером различные фигуры, записанные в файлах формата ILDA. Я в курсе, что многие, кто берется за сборку лазерного проектора, в качестве устройства, управляющего гальванометрами (так и не понял как лучше перевести на русский сочетание “galvo scanner"), используют дешевые слегка модифицированные звуковые платы для компьютера. Я пошел иным путем, так как в конечном счете мне нужно будет полностью автономное устройство, которое может работать без компьютера.



Посмотрим из чего состоит мой лазерный проектор. Стоимость всех деталей составила около 8000 руб, из которых больше половины — это 70mW лазерный модуль.
  1. Гальванометры и драйверы к ним для отклонения луча лазера по осям X/Y
  2. 532нм 70mW лазерный модуль с питанием от 5В Dragon Lasers SGLM70
  3. Texas Instruments Stellaris Launchpad
  4. Самодельная плата с ЦАП AD7249BRZ
  5. Блок питания

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments10

Наш контроллер для умного дома

Reading time6 min
Views156K


UPD: мы сняли работу Wiren Board Smart Home на видео

Краткое содержание:


На базе нашей платформы Wiren Board (компактный индустриальный компьютер с Linux и разными интерфейсами) мы сделали навороченный контроллер для домашней автоматизации Wiren Board Smart Home (ARM9 64MB RAM, GSM/GPRS, Ethernet, Wi-Fi, USB, 2xRS-485/Modbus, CAN, 2 реле, ASK/FSK радиомодуль 433MHz, NRF24L01+ и т.д.), к которому можно подключить кучу всяческих проводных и беспроводных исполнительных устройств и датчиков от разных систем и производителей. Устройство готово и протестировано. На устройства из первой большой партии мы открываем заказ с доставкой до майских праздников по специальной цене.
Читать дальше →
Total votes 93: ↑87 and ↓6+81
Comments132

Начинаем изучать Cortex-M на примере STM32, часть 2

Reading time21 min
Views163K
Данная статья является продолжением цикла по программированию микроконтроллеров на базе ядра Cortex-M.
Первую статью можно прочитать здесь:
Начинаем изучать Cortex-M на примере STM32
Задачей статей является подробное описание особенностей, возникающих при программировании МК. Материал не предназначен для желающих за 10 минут запустить пример мигания светодиодом. Я постараюсь подробно описать то, что часто скрывают от новичков, чтобы их не напугать.

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

Основной акцент сделан на изучение документации на ядро Cortex-M и документации на конкретный контроллер.
На этот раз речь пойдет про прерывания, а так же будут затронуты некоторые вопросы архитектуры памяти и структуры прошивки МК.
Продолжение под катом
Total votes 29: ↑28 and ↓1+27
Comments33

Уменьшаем количество проводов в Arduino — I2C LCD экран и RTC часы по двум проводам

Reading time6 min
Views228K
Совсем недавно познакомился с Ардуино, поэтому многим мои примеры покажутся простыми.

Однако таким же новичкам, как я, данная информация будет полезна и сэкономит массу времени.

I2C — стандарт общения устройств по 2м проводам, при этом количество устройств, которое висит параллельно на этих проводах может быть очень большим. У каждого устройства есть свой адрес, по которому происходит обращение к устройству. Адресацию можно менять, если на устройстве есть перемычки, которыми можно установить дополнительное смещение относительно базового адреса, жестко прописанного в устройстве.

Это в двух словах.

Начал я все с того, что купил 16х2 символьный LCD дисплей на Ибее. Подключив стандартно — понял что это не то, что нужно. Масса проводов — занимает кучу ножек, хаос и беспорядок.

image

Погуглил, понял что есть дисплеи с интерфейсами, упрощающие подключение. погуглил еще, нашел переходник на I2C для моего LCD. Месяц ожидания, ура-ура, подключил.

image

Выглядит гораздо интереснее!

Читать дальше →
Total votes 61: ↑56 and ↓5+51
Comments40

Гексапод Б.У.Н.Т

Reading time3 min
Views81K
Насмотревшись на youtube видео про гексаподов (особенно впечатлил PhantomX), решил попробовать свои силы в роботостроении. Забегая вперёд — всё получилось и вот результат:



Всех интересующихся прошу под кат, там вкратце описана история создания и трудности с которыми пришлось столкнуться, а так же видео работы гексапода. Ни каких графиков, схем и кода, только лирика.
Читать дальше →
Total votes 77: ↑75 and ↓2+73
Comments35

Как создавать и зарабатывать на SaaS (Часть 2 / бесценный опыт российских ISV)

Reading time14 min
Views23K
image

В первой части статьи я рассуждал о способах оптимизации стоимости/функциональности при создании SaaS (Онлайн) сервисов. Мой подход к проблеме был скорей стратегический (куда бежать, что отрезать), но не технологический, да и надо было с чего-то начать. Что из этого получилось можно прочитать тут.

Сегодня, как я и обещал, у меня гости, которые открыто делятся своими рецептами создания успешных SaaS историй. Отмечу, что большинство приглашенных компании уже состоялись в плане бизнеса и лидируют в свои сегментах автоматизации (гуру). Пришли и проекты, которые только начинают завоевывать сердца пользователей семимильными шагами (новички). В гости, сегодня, заглянули: amoCRM, МойСлад, Asoft CRM, Сopiny, Do.Docs, Zingaya, SMEOn и я задал всем одни те же вопросы, которые помогут тиражировать опыт коллег и передать его новым командам. По-моему, получился интересный микс мнений, который поможет правильно подойти к созданию SaaS всем тем, кто решит или уже решил играть на этом поле.

Собственно, вопросы:

1. Как возникла идея создания сервиса?
2. Инструментарий разработки и почему именно этот?
3. Целевая аудитория сервиса?
4. Экономия при создании — методы, подходы, технологии.
5. Стратегия продвижения.
6. Friends/family/fools — откуда были привлечены средства на начало разработки?
7. Ошибки проекта и как справлялись.
8. Особое мнение (бонус по делу).

Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments10

10+ полезных jQuery сниппетов на каждый день

Reading time5 min
Views86K


Спустя годы библиотека jQuery стала неотъемлемой частью в работе каждого web-разработчика. Ведь она простая в использовании, быстрая и имеет очень широкие возможности. В этой статье я собрал список из более чем десяти сниппетов, которые вы можете свободно брать для использования. Их очень легко адаптировать под нужды ваших собственных проектов.
Читать дальше →
Total votes 194: ↑109 and ↓85+24
Comments55

Делаем вебсокеты на PHP с нуля

Reading time18 min
Views304K
Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

Я изучал библиотеки phpdaemon и ratchet, они достаточно монструозны (причём используя ratchet для отправки сообщения конкретному пользователю рекомендовано дополнительно использовать wamp). Мне не совсем было понятно для чего использовать таких монстров, которые требуют установку других монстров. Почитав исходники этих, а также других библиотек, я разобрался как всё устроено и мне захотелось написать простой вебсокет-сервер на php самостоятельно. Это помогло мне закрепить изученный материал и наткнуться на некоторые подводные камни, о которых я не имел представления.

Так я решил написать необходимый для меня функционал с нуля.

Получившийся код и ссылка на демонстрационный чат в конце статьи.
Читать дальше →
Total votes 88: ↑76 and ↓12+64
Comments77

Трюки с CSS-анимациями: мгновенные изменения, отрицательные задержки, анимация transform-origin и другое

Reading time14 min
Views221K
Применяя CSS-анимации в повседневной работе, я постепенно выработал привычку экспериментировать с ними в свободное время. Постоянно пытаясь реализовать очередную интересную задумку с использованием как можно меньшего числа элементов HTML, я обнаружил немало способов сделать с помощью CSS довольно неочевидные вещи. В этой статье я хочу поделиться некоторыми из них.

Быстрое изменение состояния посреди анимации

Обычно анимации используются для того, чтобы плавно менять свойства элементов со временем. Однако изменения могут также быть практически мгновенными. Для этого надо задать два ключевых кадра с очень маленьким интервалом, например в 0.001%:

@keyframes toggleOpacity {
  50% { opacity: 1; } /* Turn off */
  50.001% { opacity: 0.4; }

  /* Keep off state for a short period */

  52.999% { opacity: 0.4; } /* Turn back on */
  53% { opacity: 1; }
}

Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства text-shadow:


Читать дальше →
Total votes 213: ↑211 and ↓2+209
Comments23

Очередной mp3-box из mpd и raspberry

Reading time5 min
Views37K
Захотелось мне собрать сетевой аудиоплеер. Не «медиа», а исключительно под музыку. Раньше этим занимался домашний сервер (foobar2000 + всякие удаленные управления для него), но наконец-то созрел вынести его поближе к точке входа сетевых проводов в квартиру, потому возникла вакансия. А десктоп или ноут для этого использовать накладно в плане потребления ресурсов. Я не требователен, музыка у меня играет просто для создания приятного фона, а не для эстетического наслаждения, потому каких-то высоких требований к аудиотракту у меня не было, лишь бы не шипел сильно.

image

ТЗ изначально выглядело так:
1) ethernet, в крайнем случае — wifi
2) поддержка самбы и всяких интернет-радио
3) поддержка любых форматов (минимально — mp3 и flac, можно ape)
4) аудио-разъем 3,5мм
5) удаленное управление с компьютера (составление плейлистов и т.п.), плюс желателен ПДУ (вполне хватит управления громкостью и переключения треков), вместо ПДУ устроит клиент для андроида
6) готовое устройство, а не конструктор
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments17

Создаём сетевую звуковую карту с преферансом и поэтессами

Reading time6 min
Views113K
Вдохновленный топиками раз и два, решил соорудить нечто похожее.

В наличии:
— Один усилитель с колонками
— Один стационарный компьютер
— Один ноутбук
— Желание слушать интернет радио независимо от двух предыдущих пунктов и перетыканию проводов

В результате родился план собрать «audio card over ethernet». Исследовав вопрос совместимости оборудования, я выбрал роутер TP-link MR3020 и USB аудио-карточку Creative SB Play.

Что из этого получилось:


О том, как это получить, добро пожаловать под кат.
Читать дальше →
Total votes 123: ↑119 and ↓4+115
Comments93
1

Information

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