Как стать автором
Обновить
17
0
BeeZONE @BeeZONE

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

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

Архитектура приложения малой кровью

Время на прочтение3 мин
Количество просмотров110K
Маленькая зарисовка на тему того, как разработать высокоуровневую архитектуру приложения.

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

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

Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), — снизу.

Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API — это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем представления. Объедините все прямоугольники с API и обзовите слоем сервисов.

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

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

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

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

Теперь вам остаётся детально проработать каждый маленький квадратик.

Маленький практический пример запрячу под кат.
Читать дальше →
Всего голосов 32: ↑19 и ↓13+6
Комментарии89

Красивые математические GIF-анимации

Время на прочтение1 мин
Количество просмотров52K
У американского математика Клейтона Шонквилера (Clayton Shonkwiler) есть необычное хобби: он рисует GIF-анимации. Но не простые анимации, а научно выверенные, которые иллюстрируют красоту математики и геометрии. Некоторые из этих концепций можно даже использовать в дизайне.

У него уже накопилась немаленькая подборка.
18 МБ
Всего голосов 56: ↑52 и ↓4+48
Комментарии12

На пороге дополненной реальности: к чему готовиться разработчикам (часть 2 из 3)

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

Это продолжение (см. часть 1) стенограммы одноименного доклада с конференции ADD-2010.

В этой части речь пойдет о том, как обрабатывать данные с сенсоров, а именно: акселерометров, гироскопов и магнитных компасов. И зачем в современных устройствах ставят все три вида датчиков.
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии15

Елочка, зажгись! Часть 1: гирлянда и сборка ПО для OpenWRT

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

28 декабря, за четыре дня до Нового года, у меня возникла проблема: я осознал, что имеющие в продаже новогодние гирлянды — редкостная китайская дрянь. Дело в том, что у меня дома маленькая искусственная ёлка, а также маленький ребёнок — поэтому я не хотел, чтобы на ёлке в каком-либо виде присутствовали 220 В, а также не нуждался в гирляндах на несколько сотен лампочек. И быстро обнаружил, что после вычёркивания всего, подпадающего под эти пункты, в окрестных магазинах остаются исключительно товары категории «обнять и плакать».

Поэтому мне пришлось сделать гирлянду самому. И у этой гирлянды есть IP-адрес.



Впрочем, если говорить серьёзно, я преследовал две цели: не только сделать гирлянду себе, но и показать вам, как на нашем нанокомпьютере Black Swift можно делать различные проекты, от наколенных до вполне себе профессиональных — чтобы показать вам, что это довольно просто и быстро. С попутным обсуждением разных интересных моментов.

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

Так как это — первая статья по теме, я разобью её на три части, чтобы не получалась огромная простыня:
  1. Гирлянда, подключение Black Swift и среда сборки под OpenWRT на C/C++
  2. Софт на C, работа с GPIO и программная ШИМ
  3. Веб-интерфейс и приложение для Android



В реальном времени все три части легко укладываются в рамки «проекта выходного дня».
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии44

Бесплатный видеокурс CCNA Сisco доступен на одном из каналов YouTube

Время на прочтение2 мин
Количество просмотров107K
По моему глубокому убеждению, в особенности в сфере IT, важнейшим качеством любого из специалистов является способность к самообучению. Именно потому в нашей небольшой компании стало хорошей традицией уделять ежедневно время этому процессу, собственному развитию. Даже менеджер должен понимать, как устроена и функционирует сеть. Не давнее, как вчера, обсуждая проблему с BGP, коллега сказал «Вот не был бы я лентяем — прошел бы в студенческие годы курс CCNA и знал бы ответ на твой вопрос». И я задался задачей помочь коллеге, найти способ получить знания в этой области самому, хотя бы начального уровня, чтоб лучше понимать с чем мы работаем. На Хабре, введя в поиск CCNA, можно встретить массу рекомендаций, но все же, англоязычный Интернет — основной источник знаний в области IT-коммуникаций.



Я просто обожаю YouTube! Ведь он предоставляет волшебную возможность удаленного «посещения» тематических конференций и семинаров, причем абсолютно бесплатно. В этот раз, как оказалось, там уже месяца 2 существует бесплатный канал, на котором лектор Imran Rafai, четко и доступно излагает материал из 30-дневного CCNA-курса, весьма доступно и увлекательно!

Даже если Вы не системный администратор, а просто хотите обладать немного лучшим пониманием, что такое Интернет — курс для Вас! Помимо прочего Вы повысите свой уровень английского, ведь курс на английском языке, с субтитрами.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии11

Трёхмерный фон для сайта в реальном времени на JavaScript при помощи three.js

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


Обучающий материал с ресурса Phyramid, у которых именно такая шапка сайта.



Обновив в 2014 свой сайт, мы сделали трёхмерный фон в шапке, состоящий из геометрических фигур в 3D Max. Но потом мы подумали, что было бы гораздо круче генерить его в реальном времени на JS. Сказано – сделано, и при помощи замечательного фреймворка three.js мы сделали простенькую сценку. И вот, как это было.

Замечание по стилю кода: мы сначала хотели использовать только функциональный стиль, но из-за особенностей веба и работы алгоритма переключились на ООП.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии10

Command line interpreter на микроконтроллере своими руками

Время на прочтение4 мин
Количество просмотров30K
В каждом разрабатываемом устройстве у меня присутствовал отладочный вывод в UART, как в самый распространённый и простой интерфейс.
И каждый раз, рано или поздно, мне хотелось помимо пассивного вывода сделать ввод команд через тот же UART. Обычно это происходило когда мне хотелось для отладки выводить какой-нибудь очень большой объём информации по запросу (например состояние NANDFLASH, при разработке собственной файловой системы). А иногда хотелось программно управлять ножками GPIO, чтобы отрепетировать работу с какой-нибудь переферией на плате.
Так или иначе мне был необходим CLI, который позволяет обрабатывать разные команды. Если кто-то натыкался на уже готовый инструмент для этих целей — буду благодарен за ссылку в комментариях. А пока я написал собствыенный.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии38

TrendVision MR-710GP: лучший видеорегистратор-зеркало 2015 года

Время на прочтение11 мин
Количество просмотров41K
Пожалуй, основным и самым явным преимуществом видеорегистраторов в корпусе зеркала является возможность скрытой установки. И если ранее выбор автомобилистов ограничивался регистраторами в таком форм-факторе далеко не с самыми современными техническими характеристиками, то теперь это недоразумение исправлено.

Несколько дней назад компания TrendVision представила видеорегистратор-зеркало, построенный на базе самого производительного видеопроцессора из применяемых в регистраторах — Ambarella A7LA70 в связке с лучшим сенсором 2014 года — OmniVision OV4689 (CMOS 1/3", 4МП). Преимуществом нового зеркала-видеорегистратора TrendVision MR-710GP над ближайшими конкурентами станет установленный в устройстве суперсветосильный 8-ми линзовый объектив (F=1,6).


Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии44

Portaller — теперь с поддержкой Pandora, Spotify, Rdio, Netflix и Amazon Video на всех устройствах

Время на прочтение2 мин
Количество просмотров6K
Привет.
Хочу рассказать вам несколько интересных новостей о том, что происходит с Portaller — небольшим сервисом для использования Pandora, Spotify, Netflix и еще нескольких сервисов за пределами США.

Одной строкой, если у вас нет времени идти под кат — кроме Pandora и Spotify теперь поддерживается Netflix и Amazon Video, сервис работает на всех устройствах, включая клиентов на Android (почему на нем такой акцент — читайте ниже) и к нему можно присоединиться на GitHub.

Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии15

Mikrotik. Failover. Load Balancing

Время на прочтение12 мин
Количество просмотров285K
Когда у меня встала необходимость разобраться, как сделать failover или load balancing, имея два и более каналов в мир, я нашел множество статей и инструкций, в которых описывались рабочие конфигурации. Но почти нигде не нашел разъяснения, как все работает, и описания отличий разных вариантов. Хочу исправить эту несправедливость и собрать простейшие варианты построения failover и load balancing конфигураций в одной статье.

Итак, у нас есть роутер, который соединяет нашу локальную сеть и два канала в интернет (основной ISP1 и резервный ISP2).

Давайте рассмотрим что же мы можем сделать:

Сразу предупрежу: несмотря на то, что в этой статье буду все описывать для mikrotik, не буду касаться темы скриптов
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии45

3G Модем и MikroTik

Время на прочтение4 мин
Количество просмотров231K
Все началось с того, что дома пропал интернет. У меня подключены два проводных оператора и оба стали недоступны. Позже оказалось, что в соседнем доме выключили электричество. Поскучав час другой без интернета, я вспомнил о 3G модеме ZTE MF112. Подключил к компьютеру, но этого было мало, хотелось еще и рабочий Wi-Fi в квартире. По этой причине я его подключил к своему MikroTik RouterBoard 951g-2hnd. Вот об этом я и расскажу.
image
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии11

Как быстро создать опрос на вашем сайте с помощью форм Google?

Время на прочтение4 мин
Количество просмотров145K
Как быстро создать опрос на вашем сайте с помощью форм Google?Рано или поздно, практически все, у кого есть собственный сайт, сталкиваются с необходимостью создания форм обратной связи для сбора данных (проведения опросов) с посетителей сайта.

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

Есть несколько подходов в создании подобных форм:

• Формы можно сделать, используя теги HTML и завязать нажатие кнопки «Отправить» с отправкой введенных данных вам на email

• Можно сделать связку PHP+MySQL (или любой другой язык программирования и базу данных) и все введенные данные сохранять в базу данных для дальнейшей работы.

• Если ваш сайт сделан с использованием какой-нибудь популярной CMS (например, Joomla, Drupal или WordPress), то вы можете поискать в сети плагины, модули и компоненты, которые достаточно просто позволяют создавать формы

• А можно для создания форм обратной связи использовать бесплатные инструменты всем известного Google.Docs

И в этой статье я хотел бы показать как с помощью Google.Docs вы можете легко и быстро создавать всевозможные формы опроса для ваших сайтов.
Читать дальше →
Всего голосов 63: ↑48 и ↓15+33
Комментарии16

Повышение производительности работы в Mac OS X, в том числе путем уменьшения использования мыши

Время на прочтение9 мин
Количество просмотров83K
Мне кажется целесообразным поделиться личным опытом роста производительности работы в Mac OS Х (на примере 10.7), в частности, путем максимального отказа от использования мыши (через что придем и к многим другим способам).

С чем связана актуальность проблемы?
1. Эргономически прицелиться и попасть мышью в мелкий объект всегда хуже для времени, мелкой моторики и зрения, чем использовать операции, не требующие идентификации мелких объектов и «прицеливания» в них. Для наиболее массового примера достаточно сравнить количество людей в Windows, которые переключают клавиатуры комбинацией клавиш или мышкой в соответствующем меню на рабочем столе (которое вроде тоже бы в пределах доступности).

2. Для мобильной работы большая разница – брать с собой мышь или нет. Если в Windows многим недостаточно внутренних тачпадов для полноценной работы, то при взгляде на макбук с подключенной мышью возникает когнитивный диссонанс – т.к. часть вещей, ради которых человек взял ее с собой в дорогу, объективно имеет более эффективное альтернативное решение, если избавится от определенной парадигмы сознания.

3. Меньшее использование мыши в OS X для переходящих с Windows позволяет предотвратить ряд неудобств и ошибок – в частности, «эффект красного крестика» и «синдром единственного рабочего стола», а также лучше понять отличия между окнами и процессами.

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

Итак.
Читать дальше →
Всего голосов 44: ↑34 и ↓10+24
Комментарии61

Zabbix и бесплатные SMS

Время на прочтение2 мин
Количество просмотров14K
Когда в Google Календаре появилась возможность получать бесплатные SMS уведомления, думаю все разработчики подумали о том, что это можно прикрутить к своим скриптам. Многие так и не нашли времени и сил этим заняться, поэтому предоставляю PHP скрипт для бесплатной отправки SMS себе, а для пущей пользы прикручу его к системе мониторинга Zabbix. Надеюсь после этих слов все системные администраторы подумали о том, как будет здорово получать SMS когда из сети выпадает сервер, кто-то наступает на сетевой провод, перезагружается роутер или повышается температура в серверной.
Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии28

Оптимизация OSX для работы с SSD

Время на прочтение3 мин
Количество просмотров114K
Про замену сидирума на SSD писать нет смысла, думаю все и так уже в курсе как это сделать. Слава богу, про это написано не мало статей (тыц, тыц).
image
А вот как правильно настроить систему для работы с HDD и SSD знают далеко не все.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии80

Установка Hackintosh на примере Packard Bell TM85

Время на прочтение4 мин
Количество просмотров83K
Здравствуй, Хабр. Хочу поделиться своим опытом относительно установки Мака на обычные ПК. Возможно кому-то этот топик будет интересен или полезен.
В этой статье я рассмотрю еще один способ установки Hackintosh на конкретную конфигурацию, без использования различных сборок.
Ставить будем оригинальную Mac OS X 10.7.3 (на момент написания) c загрузочной установочной флешки.
Кстати, данный метод применим и к любому другому IBM PC-совместимому компьютеру.
В итоге Вы получите полностью рабочий Hackintosh.
Читать дальше →
Всего голосов 68: ↑49 и ↓19+30
Комментарии41

Операция «посредник» или доставка товаров из США — проще, надежнее, дешевле

Время на прочтение5 мин
Количество просмотров96K
Все мы знаем, что большинство гаджетов дешевле купить в США, чем у нас на родине, и особенно это относится к различным новинкам, цены на которые у нас просто взлетают к небесам! Так же всем известно, что самые «вкусные» предложения на eBay и в интернет магазинах США обычно имеют доставку US only и соответственно не доступны для нас. В этой статье я попытаюсь рассказать про еще один способ исправить это недоразумение. Конечно все более-менее опытные интернет-покупатели знают о посредниках, которые предоставляют услугу mail forwarding — тоесть пересылку посылок. Происходит это так — вы заказываете доставку товара на адрес в США, который вам выдал посредник, он получает посылку и пересылает ее вам, беря за это небольшую комиссию. Известные посредники это Shipito, Ebaytoday, Бандеролька и т.д. их достаточно много и все они предлагают набор услуг — пересылка, объединение нескольких посылок в одну, наоборот — разделение крупной посылки на несколько мелких и тд. Берут обычно фиксированную плату за каждую посылку + оплату за дополнительные услуги. Стоимость самой пересылки обычно рассчитывается по тарифам USPS и этой же службой отправляют посылку вам. Я же хочу рассказать про еще одну компанию — Meest.us, которая осуществляет пересылку посылок (среди различных других услуг) но в принципе ее работы есть некоторые интересные особенности.
Читать дальше →
Всего голосов 52: ↑44 и ↓8+36
Комментарии59

Проблема с режимом сна в Mac OS Lion

Время на прочтение3 мин
Количество просмотров88K
Mac OS Lion

После установки обновления огромное количество пользователей жалуются на некорректную реакцию компьютера на выход из режима сна, причём независимо от типа устройства, будь то iMac, Macbook или Mac Mini. Проявляется это таким образом: после погружения компьютера в сон, его уже невозможно разбудить традиционными способами: открытием крышки ноутбука, нажатием кнопки включения, etc, приходится делать hard reset. Главная прелесть заключается в том, что существует множество модификаций этого бага: у кого-то он проявляется только если вводить компьютер в режим сна путём закрытия крышки, у кого-то только путём нажатия «Режим сна» в меню; у кого-то он проявляется только при подключённом MagSafe, а у кого-то только при работе от аккумулятора. У меня же он проявляется крайне экзотическим образом: система просыпается, но ведёт себя так, как будто её перезапускали, — все приложения загружаются заново.

Что интересно, единого лекарства против этого нету. На форуме поддержки предлагают огромное количество решений проблемы, но ни один из них не помогает всем и наверняка.
Этот пост — сборка всех возможных решений отсюда: https://discussions.apple.com/thread/3190738.

Читать дальше →
Всего голосов 48: ↑33 и ↓15+18
Комментарии115

Психологическая деформация программистов. Взгляд с обеих сторон баррикад

Время на прочтение6 мин
Количество просмотров136K
Само наличие психологической деформации у какой-либо профессии, как правило, достаточно спорный момент ввиду того, что у разных людей она проявляется по-разному. Однако общую тенденцию можно выделить и, пожалуй, настало то время когда можно достаточно смело говорить, что программисты всё же имеют свой особенный психологический портрет который обусловлен их профессиональной деятельностью.

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

И что же них такого деформированного?
Всего голосов 461: ↑436 и ↓25+411
Комментарии558

В процессе поиска работы

Время на прочтение3 мин
Количество просмотров14K
Приветствую, хабраюзеры.

Недавно мне довелось искать новое место работы. Это значит, что пришлось посетить довольно много собеседований, а посему я хотел бы поделиться опытом, высказать свои наблюдения и замечания относительно всего процесса найма сотрудников на работу. Надеюсь, в посте найдут что-то полезное и те, кто ищет работу, и те, кто ищет нового сотрудника.
Читать дальше →
Всего голосов 70: ↑61 и ↓9+52
Комментарии119

Информация

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