Как стать автором
Обновить
27
0
Артур @avrfun

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

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

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

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

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

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

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

Рождественская распродажа: арендуйте VPS либо сервер в Нидерландах или США и получите от 1 до 3 месяцев в подарок

Время на прочтение2 мин
Количество просмотров12K
Прежде всего мы хотели бы поздравить Вас с Рождеством и наступающим Новым годом, пожелать успехов Вам и Вашим проектам и поблагодарить Вас за то, что Вы с нами.

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

Таким образом (только для читателей habrahabr), помимо скидок:

— при оплате VPS / cервера на срок от 1 месяца Вы получаете еще месяц пользования абсолютно бесплатно;
— на срок от 6 месяцев — 2 месяца в подарок;
— от 1 года — 3 месяца в подарок.

И это все несмотря на волшебные скидки, которые все еще продолжают действовать, в особенности при годовой оплате! А они по истине волшебны, к примеру, арендовать выделенный сервер в Нидерландах 2 x Intel Quad-Core Xeon 5504 / 16GB DDR3 / 12x500GB SATA / 1Gbps 100TB сейчас можно всего лишь за $59,93 в месяц! Это почти в 4 раза дешевле стандартной стоимости!



Читать дальше →
Всего голосов 24: ↑17 и ↓7+10
Комментарии23

Cоветы начинающему фрилансеру: как продавать услуги на развитые рынки через открытые площадки

Время на прочтение16 мин
Количество просмотров64K
Я занимаюсь разработкой программного обеспечения в роли ведущего программиста-проектировщика с конца 90х годов. Фриланс никогда не был основным источником моего дохода. Но в 2010 году я начал всерьез заниматься фрилансом как побочным видом деятельности, приносящим существенный доход (за несколько месяцев я вышел на уровень продаж порядка $5k в месяц с фрилансерских контрактов с практически нулевыми расходами на исполнение контрактов, за исключением моего времени). Позднее я переехал в Северную Америку, но фриланс продолжает оставаться для меня важным побочным бизнесом. Кроме того, в своей работе я постоянно общаюсь с фрилансерами, в т.ч. профессиональными full-time фрилансерами из Северной Америки.

В этой статье я хотел бы поделиться своим опытом работы на площадках вроде elance.com с коллегами из экс-СССР и дать конкретные рекомендации по входу на рынок, позиционированию услуг, конкуренции с демпингом из Южной Азии, а также дать ликбез по общей профессиональной подготовке.
Много текста с конкретными примерами
Всего голосов 32: ↑31 и ↓1+30
Комментарии24

Пишем драйвер пользовательского окружения для uinput на Raspberry Pi

Время на прочтение7 мин
Количество просмотров20K
Фотография дисплеяРади одного из своих небольших проектов на Raspberry Pi 2 я приобрел емкостной сенсорный дисплей Waveshare с демократичной ценой, скромным разрешением и сомнительной поддержкой. В коробке с дисплеем лежала DVD-R DL, и по заявлениям продавца, там лежали образы систем на базе Raspbian. Прочитать их мне не удалось, поиск решений в интернете подсказал, что драйвер, который там лежал, был и так не самым лучшим решением (уже скомпилированное ядро без исходников).

В процессе поиска я наткнулся на проект одного парня из дружественного Китая. Благодаря нему я смог прийти к своему решению.

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

50 наиболее интересных hardware-стартапов в Европе

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


Мы адаптировали подборку европейских hardware-стартапов и привели примеры собственных портфельных проектов в данной области. Подборка наиболее заметных стартапов поможет вам быстро разобраться в трендах, оценить потенциальных конкурентов и направить собственный проект в нужное русло.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии3

Лекции Технопарка. 1 семестр. Алгоритмы и структуры данных

Время на прочтение2 мин
Количество просмотров166K
Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

Лекция 1. Основы


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


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

ПЛК Ace: маленький контроллер для «умного дома»

Время на прочтение7 мин
Количество просмотров51K
Я занимаюсь разработкой программ для программируемых логических контроллеров(ПЛК) в промышленных автоматизированных системах управления технологическими процессами(АСУ ТП).

Для тех, кто сталкивается с этим словом впервые, поясню. ПЛК это специальный мини-компьютер, который работает так:
1. Принимает входные дискретные (Di) или аналоговые (Ai) сигналы;
2. Обрабатывает эти сигналы по заданной программистом программе;
3. Выдает управляющий сигнал через дискретные (DO) или аналоговые (AO) выхода.

Дискретный — когда у сигнала может быть только 2 состояния: 0 или 1, «да» или «нет». Например, кнопка нажата или отжата, лампочка включена или выключена.
Аналоговый — когда значение параметра зависит от уровня электрического сигнала. Например, чем выше уровень сигнала (вольт или миллиампер) от датчика температуры, тем больше измеряемая температура.

Применяются ПЛК в основном в промышленности, станках, системах домашней автоматизации «умный дом» и т.д.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии24

Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации

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

Предыстория


Хотелось создать своего робота, а так же автоматизировать управление светом и климатом дома. С этой целью начал изучать имеющиеся возможности. Для себя я разделил все решения на две группы: системы в которых код на контроллере выполняется в одном главном цикле (arduino, lego и т.п.) и системы состоящие из параллельно работающих процессов обменивающихся между собой сообщениями.
Интуитивно выбрал вторую группу, так как хотелось найти максимально простое решение с дружественным пользовательским интерфейсом. Из наиболее популярных представителей этого «семейства» очень понравились Microsoft Robotics Studio и ROS. Но к сожалению, на текущий момент, привязать их к конкретному железу весьма не просто, да и разобраться в них с нуля так же весьма не тривиальная задача. В итоге принял решение писать сам, но «кодить» на C очень не хотелось, Душа просила чего-нибудь попроще и полегче. В итоге выбрал Python. А учитывая, что по мимо робота и «умного дома» в голову начало лезть куча других идей, то решил сразу сделать небольшой фреймворк, в котором основной упор был бы сделан на простоту разработки.

Концепция


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

Bubot - Схема

Сеть процессов строится на базе стандартного Python модуля multiprocessing. Система обмена сообщениями и разделяемая память реализованы при помощи Redis.

Каждый Bubot имеет встроенный веб-сервер веб-сервер Tornado, который позволяет контролировать состояние, управлять роботом, на ходу менять параметры (калибровать) робота, а также закладывается возможность обмена данными между роботами.
Bubot не является системой реального времени, хотя Bubot возможно интегрировать с кодом реального времени.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии10

300 потрясающих бесплатных сервисов

Время на прочтение11 мин
Количество просмотров1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Всего голосов 341: ↑325 и ↓16+309
Комментарии107

Wi-Fi термометр на ESP8266 + DS18B20 всего за 4$

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


В последнее время всё большую популярность набирают Wi-Fi модули на основе ESP8266. Я тоже решил приобщиться к прекрасному, задумав реализовать термометр, отдающий данные по HTTP. Итак, поехали.
Читать дальше →
Всего голосов 50: ↑49 и ↓1+48
Комментарии74

Архитектура мобильного клиент-серверного приложения

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

К добавлению внешнего сервера рано или поздно приходит любой сложный проект. Причины, при этом, бывают совершенно различные. Одни, загружают дополнительные сведения из сети, другие, синхронизируют данные между клиентскими устройствами, третьи- переносят логику выполнения приложения на сторону сервера. Как правило, к последним относятся большинство «деловых» приложений. По мере отхода от парадигмы «песочницы», в которой все действия выполняются только в рамках исходной системы, логика выполнения процессов переплетается, сплетается, завязывается узлами настолько, что становится трудно понять, что является исходной точкой входа в процесс приложения. В этом момент, на первое место выходит уже не функциональные свойства самого приложения, а его архитектура, и, как следствие, возможности к масштабированию.
Заложенный фундамент позволяет либо создать величественный архитектурный ансамбль, либо «накурнож» — избушку на куриных ножках, которая рассыпается от одного толчка «доброго молодца» коих, за время своего существования повидала видимо — невидимо, потому что, глядя на множественные строительные дефекты заказчик склонен менять не исходный проект, а команду строителей.
Планирование — ключ к успеху проекта, но, именно на него выделяется заказчиком минимальный объем времени. Строительные паттерны — туз в рукаве разработчика, который покрывает неблагоприятные комбинации где время — оказывается решающим фактором. Взятые за основу работающие решения позволяют сделать быстрый старт, чтоб перейти к задачам, кажущиеся заказчику наиболее актуальными (как-то покраска дымоходной трубы, на еще не возведенной крыше).
В этой статье я постараюсь изложить принцип построение масштабируемой системы для мобильных устройств, покрывающей 90-95% клиент-серверных приложений, и обеспечивающей максимальное отдаление от сакраментального «накурножа».
Читать дальше →
Всего голосов 20: ↑11 и ↓9+2
Комментарии7

Питер Тиль: конкуренция – удел проигравших

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


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии53

Никогда не «не делай» того, о чем пожалеешь или умный дом с CCU.IO

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

Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).


Подробности
Всего голосов 84: ↑81 и ↓3+78
Комментарии88

3d принтеры: китайские «близнецы»

Время на прочтение3 мин
Количество просмотров46K
Три девицы под окном
Пряли поздно вечерком.



Под катом есть разоблачение трех китайских близнецов, лайвхак как в полевых условиях отличить пластик ABS от PLA, а так же каким народным методом можно чистить засорившееся сопло.

Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии10

Google купила производителя термостатов за 3.2$ млрд

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

Не готовится ли Google предложить что-то и для идеи «умного дома»?

Сегодня стало известно, что поисковый гигант приобрёл компанию Nest — производителя термостатов — за значительные 3.2 миллиарда долларов. О самой компании стало известно примерно три года назад: в частности то, что главой компании является Тони Феделл, бывший старший вице-президент одного из подразделений Apple (именно с ним связывают выпуск и успех iPod), а её техническая сторона, вероятно, имеет академические корни — вице-президентом является Йоку Мацуока, профессор CS университета Вашингтона.
Узнать подробности
Всего голосов 37: ↑33 и ↓4+29
Комментарии29

Обзор UP! 3D Printer Mini

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

Данная модель привлекла мое внимание и я хочу поделиться с публикой, по той причине, что это готовый, законченный, настроенный (можно достать из коробки и печатать) принтер по цене набора для самостоятельной сборки. (45 000 рублей, цена на складе в Москве, т.е. уже с учетом «таможни»).

Этот принтер прост.
(Если хотите узнать, что такое «сложно» — почитайте здесь, здесь или здесь. А так же можно найти того счастливчика, кто обладает принтером Solidoodle).

Этот принтер дешев.
В сравнении с Up! Plus 2 за 83 тысячи рублей, Picaso, Ultimaker 2, Printbox3d, Replicatort 2 (которые есть в Москве) — больше 99 тыс рублей.

Этот принтер работает. Его не надо собирать по кусочкам, у него уже есть все настройки и драйвера, выставлены все параметры и тд.
Нужно только скачать ПО с сайта, загрузить 3д модель, ввести уровень платформы и отправить на печать.

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

Дерзкий слоган на коробке


Как у американских военных
image
image


Под катом несколько фотографий содержимого принтера и короткие комментарии.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии5

Список сервисов 3d-печати

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

Добрый день всем!


На хабре относительно часто можно увидеть статьи посвященные 3d принтерам, сравнению их цен и возможностям заказа у нас.
А как дело обстоит с готовыми 3д моделями?
Что если я пока не хочу покупать принтер, а «пощупать» напечатанную модель было бы интересно. И желательно выбрать из каталога готовых моделей, а не рисовать самому.
Много ли ресурсов, где их можно скачать, купить или распечатать из каталога?
Отвечая на эти вопросы я и решил сделать небольшой список ресурсов с возможностью выбора готовых моделей и заказа печати.

Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии18

Зачем регистрировать программу для ЭВМ? Актуально на 2021 год

Время на прочтение3 мин
Количество просмотров112K
Статья актуальна на 2021 год!

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

Это наиболее очевидный и простой способ защиты прав на ПО. Но насколько этот способ защиты действенный и какие преимущества в защите прав дает регистрация?

Внимание! Апгрейд статьи в связи с изменением порядка регистрации с 18 июля 2016 г. здесь.

image

Попробуем разобраться
Всего голосов 47: ↑38 и ↓9+29
Комментарии34

Wandboard Freescale i.MX6 — мини ПК для разработчика за 69 у.е

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


Сейчас миниатюрные ПК появляются в самых разнообразных вариантах. Надо думать, что уже в недалеком будущем появится гораздо больше моделей таких ПК, чем сейчас, однако, и в настоящее время количество мини-компьютеров велико. Новинки появляются с завидной регулярностью, и среди таких новинок есть те модели, что заслуживают особого внимания. Таким устройством является и Wandboard Freescale i.MX6, позиционируемый производителем как мини-ПК для разработчика.

Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии34
1
23 ...

Информация

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