Как стать автором
Обновить
0
0
Дарья Кафтан @pelment

Системный аналитик

Отправить сообщение

Немного об архитектурах программного обеспечения

Время на прочтение7 мин
Количество просмотров63K


Никаких сомнений, что за последнее время мир только укрепил свою зависимость от программного обеспечения. Приложения должны обладать высокой доступностью, качественно выполнять требуемые функции и иметь адекватную стоимость. Эти характеристики, в той или иной степени, определяет архитектура ПО.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии2

Создание архитектуры программы или как проектировать табуретку

Время на прочтение25 мин
Количество просмотров681K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Всего голосов 88: ↑85 и ↓3+82
Комментарии45

Конвертируем svg to png

Время на прочтение2 мин
Количество просмотров47K
Иногда появляется необходимость сохранить svg в png средствами браузера. К сожалению, браузер не имеет волшебного api, который позволил бы это сделать без различных хаков. Что же делать, если все таки хочется добиться желаемого?
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии12

Детектирование и локализация произвольного текста на изображениях, полученных с помощью фотокамер мобильных телефонов

Время на прочтение3 мин
Количество просмотров25K
Я иногда путешествую по разным странам, и языковой барьер, довольно часто, становится серьезным препятствием для меня. И если в странах, где используются языки германской группы, я еще как то могу сориентироваться, то в таких странах как Китай, Израиль и арабские страны без сопровождающего, путешествие превращается в загадочный квест. Невозможно понять местное расписание автобусов/поездов/электричек, названия улиц в небольших городах очень редко есть на английском языке. А уж проблема с выбором, что бы поесть, из меню на непонятном языке вообще сродни ходьбы по минному полю.
Так как я разработчик под iOS, я подумал, а почему бы не написать такое приложение: наводишь камеру на вывеску/расписание/меню и тут же получаешь перевод на русский.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии41

Сто строчек кода для любимой

Время на прочтение5 мин
Количество просмотров59K
Я бы мог читать ей поэзию. Я бы мог забронировать столик в ресторане, устроить ужин при свечах: хорошее вино, услужливый официант, приличные люди вокруг. Нежно касаюсь её руки и шепчу:
— Любимая…


Но когда ко мне подошел коллега и сказал:
— Смотри, что я закодил для своей женщины.…
Я понял, что это — любовь. Это — навеки.
Я тоже хочу так.
Читать дальше →
Всего голосов 131: ↑92 и ↓39+53
Комментарии23

9 фактов, которые знают программисты, и не знают все остальные

Время на прочтение3 мин
Количество просмотров190K
image

Факт 1


Под капотом самых критичных программ, которые вы используете на ежедневной основе (Mac OS X или Facebook) содержится ужасное количество хаков и костылей, которые с трудом уживаются друг с другом. Это как если бы вы разобрали боинг 747 и увидели, что топливопровод держится вешалкой для одежды, а шасси смотаны изолентой.

Бен Черри
Читать дальше →
Всего голосов 237: ↑164 и ↓73+91
Комментарии88

Архитектура умного дома — с Black Swift и не только

Время на прочтение7 мин
Количество просмотров37K
Привет, Хабр!

Если раньше мы смотрели на проекты «умного дома» с интересом, но несколько со стороны, то сейчас, после выхода Black Swift в публичное поле, нам самим стали приходить вопросы и предложения по использованию его в качестве базы для «умного дома» — и естественно, я не мог не уделить отдельное внимание этой теме.

Результат меня расстроил, и я хотел бы поговорить об этом.

Проекты «умного дома» сейчас рождаются (и умирают) как грибы — но, к сожалению, в большинстве случаев они обусловлены не осознанием недостатков уже существующих решений, а самим фактом наличия технологических платформ, на которых что-то такое можно построить. Это хорошо видно по Хабру: по мере популяризации того или иного решения проходит волна очередных «беспроводных розеток» на нём. Так было с NRF24LE1, сейчас такая же волна идёт с ESP8266. Некоторые многообещающие проекты за свою жизнь успевают поменять по две-три платформы — в зависимости от текущей моды и наличия под рукой кого-нибудь, кто может на одной из них что-нибудь спаять.

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

Я пока не буду трогать какие-то серьёзные проблемы «умных домов», а поговорю о том, почему и какие технологии стоит рассматривать в качестве основы — чтобы не объяснять в комментариях в пятидесятый раз, почему я не считаю встраивание Wi-Fi в каждую розетку ни необходимым, ни разумным решением.

Ах да, чуть не забыл КДПВ. Вот:



Она не про «умный дом», а про то, что Black Swift можно найти на MWC на стенде Imagination Technologies. А теперь давайте про «умный дом».
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии177

Ликбез: почему дома интернет по Wi-Fi тормозит

Время на прочтение5 мин
Количество просмотров284K


Классическая схема включения услуг Интернет в многоквартирном жилом доме выглядит следующим образом: ТКД (точка коллективного доступа) — витая пара — роутер в квартире клиента, к которому подключены клиентские устройства по проводу и по Wi-Fi.

Характерные жалобы абонентов – скорость ниже тарифа, и возникают регулярные «замирания» при работе в интернете, что выражается долгим открыванием страниц в браузере, прерываниями видео, потерей связи с игровыми серверами и т.д. Данное поведение носит нерегулярный характер, а наиболее часто возникает в часы наибольшей пользовательской активности примерно с 18:00 до 23:00 в зависимости от города.

Есть несколько простых шагов, которые позволят определить возможную причину подобных проблем и решить 90% пользовательских ситуаций. Они ниже.
Читать дальше →
Всего голосов 87: ↑54 и ↓33+21
Комментарии164

Corona SDK стала бесплатной

Время на прочтение1 мин
Количество просмотров32K

Создатели известного движка для разработки кроссплатформенных мобильных приложений Corona SDK 2 марта объявили о том, что отныне Corona SDK будет бесплатна.

Четыре месяца назад, в ноябре 2014 Corona была куплена компанией FusePowered. Многие предрекали грядущие изменения в политике компании и в выборе путей ее развития. Вопрос был, в какую сторону будут эти изменения. И вот сегодня случилось — Корона объявила, что возможности, доступные раньше только в платных подписках, теперь будут бесплатны.
Разберемся, что же они теперь нам предлагают.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии19

Оптическое распознавание символов в Linux

Время на прочтение17 мин
Количество просмотров83K

Введение


Это не просто обзор существующих OCR (мы будем говорить всего о трёх) и не руководство по установке (хотя установка будет описана). Эта статья была создана с целью разобраться, что и как реально может распознать русский и английский языки в Linux.
Читать дальше →
Всего голосов 87: ↑82 и ↓5+77
Комментарии24

Обзор робототехнической платформы Strela или простой bluetooth-бот своими руками

Время на прочтение10 мин
Количество просмотров55K
Недавно мы получили подарок для нашей мастерской от одного из ведущих производителей учебных наборов по электронике в России — от Амперки. Плата Strela — это новая разработка компании и они предложили нам попробовать применить ее в реальных условиях.

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



В статье я предлагаю вам свой взгляд на то, что из этого получилось, и расскажу, как мы построили своего робота, управляемого по bluetooth с Android-смартфона. Я постарался быть максимально беспристрастным, но определенная доля субъективности, конечно, присутствует.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии9

Windows 10 приходит на Raspberry Pi 2

Время на прочтение2 мин
Количество просмотров82K
Статья – перевод статьи одного из наших любимых авторов, настоящего гика, Скотта Хансельмана.

Я – искренний фанат Raspberry Pi. Я использую три штуки дома, одну для мультимедиа-центра, одну для 3D-печати и одну просто на поиграть. Теперь же у меня еще больше хорошего, после новости о том, что была анонсирована Raspberry Pi 2. За $35 я получаю компьютер, который можно засунуть в карман, и у которой есть несколько отличных моментов:
  • Она все еще небольшая! Размера Raspberry Pi B+. То, что у меня работало, будет работать и дальше. ;)
  • HDMI! Ethernet! Порт под камеру!
  • Micro USB для питания!

ПРИ ЭТОМ
  • Четырехядерный 900 MHz ARM Broadcom Cortex A7 с BCM2836 на чипе – от 3 до 6 раз увеличения производительности. Вау.
  • 1 гиг RAM (поделено с GPU)



Вообще, мне нравится использовать Raspberry Pi как отдельный девайс (“Dedicated Device”).
Она, конечно, компьютер общего назначения, но при этом такой дешевый и мощный, что его можно использовать под одну конкретную задачу, и работать он будет прекрасно.
Читать дальше →
Всего голосов 59: ↑46 и ↓13+33
Комментарии39

Raspberry Pi 2: 4 ядра, гигабайт ОЗУ, в шесть раз больше производительности

Время на прочтение2 мин
Количество просмотров272K

Возможно, цена останется прежней — 35 $


Без особых подготовок глава Raspberry Pi Foundation Ибен Аптон рассказал изданию The Register о новой модели Raspberry Pi. Согласно его заявлению, теперь это относительно полноценный компьютер, оглядываясь на характеристики которого не нужно повторять «он стоит всего лишь 35 долларов».

Основные изменения новой модели под названием Raspberry Pi 2 Model B: однокристальная система Broadcom BCM2836 с четырьмя ядрами ARMv7 Cortex-A7 частотой 900 МГц и Broadcom VideoCore IV 250 МГц, 1 гигабайт ОЗУ, как минимум в шесть раз больше производительности, чем у B+, и бесплатная Windows 10. Вот результаты выдачи команды uname -a новой платы.
Читать дальше →
Всего голосов 53: ↑50 и ↓3+47
Комментарии60

Raspberry и Telegram: предпосылки создания умного дома

Время на прочтение3 мин
Количество просмотров87K


Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.

Читать дальше →
Всего голосов 52: ↑44 и ↓8+36
Комментарии62

Arduino & Modbus

Время на прочтение6 мин
Количество просмотров207K
В предыдущей статье мы соединили открытую платформу домашней автоматизации OpenHAB с контроллером Arduino использовав очень простой, текстовый протокол. Но это решение поставит нас в тупик, если мы захотим подключить наш контроллер к другой системе, что же делать?

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

Что нам необходимо знать об этом стандарте?
Протокол Modbus использует последовательные линии связи (например, RS232, RS485), а протокол Modbus TCP рассчитан на передачу данных по сетям TCP/IP.
Протокол Modbus имеет два режима передачи RTU и ASCII, в режиме ASCII каждый байт передается как два ASCII символа его шестнадцатеричного представления.
В сети Modbus есть только один ведущий, который с заданным интервалом опрашивает несколько ведомых устройств, каждое из которых имеет свой уникальный адрес от 1 до 254, адрес 0 широковещательный и на него отвечают все устройства, так как ведущий в сети один у него нет своего адреса.
В спецификации Modbus определено два типа данных, один бит и 16 битное слово. Данные организованны в четыре таблицы с 16 битной адресацией ячеек, адресация в таблицах начинается с 0. Для доступа к данным из разных таблиц предназначены отдельные команды.
Discrete Inputs 1 бит только чтение
Coils 1 бит чтение и запись
Input Registers 16 бит только чтение
Holding Registers 16 бит чтение и запись

Как нам подключить Modbus устройство к OpenHAB?
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии49

«Дуров, верни стену» или «Хабрахабр + Geektimes + Мегамозг» в одной ленте

Время на прочтение4 мин
Количество просмотров21K


Когда разбушевался Роскомнадзор и Хабр по вынужденным причинам разделился, появился «младший брат», которого не жалко — Geektimes. Мне такое разделение пришлось не по душе и Я сделал для локального пользования небольшое расширение для браузера, которое выводит посты Geektimes на Хабре в одной ленте.

Вчера же, случилось еще одно разделение, у Хабра появляется «кузен гуманитарий» — Мегамозг. Добавить его ленту в общую ленту на Хабре Мне не составило труда. Увидев настроение пользователей от всех этих разделений, Я решил выложить это расширение в общий доступ, возможно Вам тоже будет удобней так читать Хабр (по старинке).

Читать дальше →
Всего голосов 128: ↑125 и ↓3+122
Комментарии116

Интернет тест-драйв «Мехатроника и робототехника». Нужна помощь Сообщества

Время на прочтение3 мин
Количество просмотров16K
Привет, Хабр!

Пишу — потому что нужна помощь Сообщества.

Меня зовут Александр Лемех. Я являюсь руководителем Лаборатории развития робототехники Механико-машиностроительного института УрФУ. 6 лет назад для меня стало очевидным — что будущее за робототехникой и автоматизацией. С тех пор начал заниматься этим направлением.

Вначале мы с друзьями-единомышленниками организовали Клуб по развитию робототехники в Уральском федеральном университете, потом я стал в университете преподавать дисциплину «Промышленные роботы» и другие, 2 года назад удалось основать Лабораторию развития робототехники Механико-машиностроительного института УрФУ.

Видео о нашей лаборатории:


Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии16

Практический семинар Intel RealSense Hands-On Lab. От идеи до проекта — за 6 часов

Время на прочтение2 мин
Количество просмотров7.1K


Вам тоже, как и актеру Джиму Парсонсу, хочется узнать, что делается за дверями секретных лабораторий Intel RealSense? Уже буквально через неделю у вас будет возможность не только узнать это, но и изучить эти технологии на собственном опыте.

Компания Intel приглашает на практический однодневный семинар Intel RealSense Hands-On Lab, который состоится 23 января в Москве.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии7

Распознавание речи в ROS с Google Speech API

Время на прочтение2 мин
Количество просмотров28K
Я уже рассказывал об использовании pocketsphinx для распознавания речи в ROS. В этой статье я хочу рассказать об использовании gspeech для распознавания речи. gspeech — это пакет ROS, который использует Google Speech API: wiki.ros.org/gspeech.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии6

Распознавание лиц в 4 строки на JQuery

Время на прочтение3 мин
Количество просмотров25K


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

Я расскажу о том, как в несколько строк реализовать распознавание любого количества лиц на любой фотографии или видео в браузере с помощью JavaScript и JQuery плагина FaceDetection.

Кому интересно, прошу под кат.
Читать дальше →
Всего голосов 43: ↑20 и ↓23-3
Комментарии8
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность