Pull to refresh
16
0
Send message

Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен

Reading time10 min
Views46K
image

Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.

На мою долю выпало достаточно опыта в проектировании и создании крупномасштабных систем. Я принимал участие в переписывании распределенной системы платежей в Uber, проектировании и релизе Skype на Xbox One и выпуске в открытый доступ RIBs — мобильного архитектурного фреймворка, созданного в Uber. Все эти системы имели тщательно продуманный дизайн, прошли через несколько итераций, с ними связано множество совещаний, проведенных у маркерной доски, и других обсуждений. Затем придуманный дизайн сводился к дизайн-документу, который распространялся среди других разработчиков для сбора дополнительной обратной связи, который продолжался до тех пор, пока мы не переходили к разработке.

Все эти системы отличали большие масштабы: их создавали сотни разработчиков — или они использовали их в своих разработках — и сегодня они бьются в сердцах систем, которыми ежедневно пользуются миллионы людей. Причем, эти проекты создавались не с нуля. Система платежей должна была заменить две другие существующие платежные системы, используемые десятками других систем и дюжинами команд, и все это — без какого-либо ущерба для бизнеса. Переписывание приложения Uber было проектом, над которым одновременно работало несколько сотен инженеров — он включал в себя портирование всей существующей функциональности на новую архитектуру.
Читать дальше →
Total votes 73: ↑66 and ↓7+59
Comments66

Задачи с собеседований (front-end)

Reading time18 min
Views327K
Так получилось, что за свою карьеру front-end разработчика, я побывала на многих собеседованиях. Тема прохождения интервью не теряет своей актуальности, а в комментариях, когда речь заходит о собеседованиях, начинают ломаться копья. Хочу тоже внести свой вклад и поделиться накопившейся коллекцией вопросов. Прошу.

image
Читать дальше →
Total votes 74: ↑58 and ↓16+42
Comments230

R в качестве инструмента мониторинга цен

Reading time6 min
Views18K
В данной статье хотел бы коснуться такой темы как мониторинг конкурентов. Понимаю, что у данной темы есть как много сторонников, ведь так или иначе мониторинг необходим для успешного развития почти любой компании, так и противники, которые защищают интересы своего бизнеса от мониторщиков.

Те, кто как то связан с продажами на конкурентном рынке, наверняка знают, что мониторинг конкурентов является важной задачей. Результаты используются для совершенно различных целей — от изменения локальных политик ценообразования и ведения ассортимента до составления стратегических планов развития компании. Автор решил попрактиковаться в решении данной задачи и промониторить одного из крупных ритейлеров электроники в России, чьим регулярным клиентом автор является. Что из этого вышло —
далее под катом
Total votes 13: ↑11 and ↓2+9
Comments14

Чтобы распознавать картинки, не нужно распознавать картинки

Reading time18 min
Views236K
Посмотрите на это фото.



Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
Осторожно, тяжелые гифки
Total votes 263: ↑258 and ↓5+253
Comments104

Копирование книг с Android (Amazon Kindle, Google Books)

Reading time1 min
Views11K
Я купил электронную книгу в Amazon Store, сын захотел копию. Возиться с DRM не очень то и хотелось, поэтому появилась идея сделать скриншот каждой страницы. Сначала думал перелистывать и делать копию экрана — в результате появился маленький шелл скрипт:
Читать дальше →
Total votes 25: ↑19 and ↓6+13
Comments9

Работа людей с проблемами зрения на сенсорных устройствах — это уже не перспектива, а реальность

Reading time7 min
Views14K


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

Этот видеоролик сегодня делается без особых проблем, связанных с монтажем и бесчисленными дублями. Здесь всё снято именно так, как это происходит в обычной жизни человека, работающего на Android с помощью программы TalkBack, обеспечивающей речевой доступ на всех современных Android-устройствах, начиная с версии 4.1.

Читатели, интересующиеся вопросом истории невизуальной доступности Android могут посетить сайт Tiflocomp. Если же говорить о существующих проблемах, связанных с невизуальной доступностью Android-устройств и программных продуктов, то здесь скорее дело в низкой заинтересованности разработчиков, в то время, как арсенал средств доступности, заложенных в самой операционной системе Android весьма существенен.
О проблемах и конкретных решениях
Total votes 32: ↑30 and ↓2+28
Comments9

APK Downloader v 2.0

Reading time1 min
Views86K
Обновилось популярное расширение для браузера Chrome (Chromium) под названием APK Downloader, и одновременно с этим запущен специальный веб-сервис, позволяющий по ссылке на приложение из Google Play загрузить .apk-файл для установки.

image

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

Вот как, например, выглядит получение ссылки на приложение Instagram:

image

Получить расширение для браузера Chrome (Chromium) можно здесь.
Total votes 38: ↑27 and ↓11+16
Comments22

Как снять TimeLapse-видео длиной в год на Android-телефон

Reading time3 min
Views31K
Всем нам хорошо знакома техника съемки медленных процессов, которая называется TimeLapse. Суть её заключается в том, чтобы делать фотографию через заданные промежутки времени, а затем собрать из множества фотографий видеоролик. Например, снимая фото раз в 6 секунд и склеив затем в видео с частотой кадров 25fps, мы ускорим время в 150 раз. Облака будут плыть по небу и кораблики по воде со скоростью реактивного самолёта, цветы — распускаться на глазах и т.д. Из статьи вы узнаете некоторые детали того, как можно снять TimeLapse вида из окна длиной в год на обычный телефон с Android.

Пример видео

Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments26

Сверхбыстрое распознавание речи без серверов на реальном примере

Reading time10 min
Views331K

В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
К статье я также прилагаю все исходники программы и саму сборку под Android.

Прикручиваем Pocketsphinx к своему Андроиду
Total votes 185: ↑182 and ↓3+179
Comments87

Обзор образовательных ресурсов к 1 сентября

Reading time4 min
Views66K
Сегодня наступил день, символизирующий одно из сильнейших и лучших свойств человека — его интеллект. День Знаний, он же 1 сентября, он же начало учебного года. Ведь кем бы мы были без знаний и науки? Болтались бы где-то внизу пищевой пирамиды.



В честь этого рокового для каждого школьника и студента дня, мы решили сделать подборку различных образовательных ресурсов в сфере IT. Когда-то мы уже делали нечто подобное для желающих научиться веб-разработке и дизайну. Всё-таки учиться никогда не поздно, как бы банально это ни звучало. А в наше время так и совсем нельзя прекращать учиться, а то велик риск всё-таки оказаться на дне пирамиды, только уже социальной.
Читать дальше →
Total votes 69: ↑60 and ↓9+51
Comments21

Язык Вольфрам и пакет Mathematica доступны бесплатно для Raspberry Pi

Reading time2 min
Views29K
Прошло всего три дня с анонса масштабного проекта от Стивена Вольфрама, о котором уже писали на хабре, как стало известно о том, что новый язык Wolfram (Wolfram Language) можно опробовать на практике: он доступен для платформы Raspberry Pi вместе с математическим пакетом Mathematica уже сегодня — причем совершенно бесплатно. Подписавшиеся на получение новостей о языке Wolfram получили рассылку с новостью об этом. Ниже приведен её перевод (статья написана от имени разработчиков Raspberry Pi).


Рисование трехмерных графиков в пакете Mathematica на Raspberry Pi

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

Как защищать данные на мобильных сотрудников

Reading time5 min
Views29K
Мобильный офис

Мобильный офис — крутая штука. Можно получать доступ к рабочим приложениями и документам с планшета или смартфона. Тем, кто работает в дороге или в командировках это экономит время, кто часто «в поле» — просто необходимо, а тем, кто в офисе — более чем удобно.

Правда, с точки зрения безопасников, каждый смартфон или планшет — это дыра в ИБ размером с карьерный самосвал. Поэтому чтобы всё это заработало, нужно выстроить процесс управления мобильными устройствами сотрудников. Как личных, так и закрепленных на корпоративном уровне. И решения для этого есть, в том числе и «из коробки».

После того как мы говорим, что можно, например, задать политику отключения камеры смартфона на территории охраняемой зоны, многие начинают просто лучиться счастьем.
Читать дальше →
Total votes 35: ↑26 and ↓9+17
Comments25

Фотонаблюдение или timelapse видео на Raspberry Pi

Reading time7 min
Views165K

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

Исходя из критериев, можно было бы остановиться на готовых решениях в виде IP-камер. Однако, проведенный на скорую руку анализ рынка показал, что в устройствах, стоимостью до $100, размер картинки редко превышает 640x480 точек, и, при этом, они не могут похвастать хорошими возможностями для настройки софта. То есть, вполне возможно, что купив такую камеру, вам придется мириться с кривизной заводской прошивки и невозможностью в полной мере реализовать свои замыслы.

В противовес готовым решениям, самоделка на Raspberry Pi – это достаточно недорого, куда более увлекательно, и гораздо более гибко, благодаря полноценной ОС на борту и терабайтам готового софта на любой вкус.
Читать дальше →
Total votes 79: ↑75 and ↓4+71
Comments47

Летний переполох: ищем облачную CRM

Reading time8 min
Views85K
В начале лета ко мне обратился знакомый владелец небольшого бизнеса и попросил о том, «сам не знаю о чем, ну, в общем такой электронный менеджер». Несмотря на растущий бизнес, он долго сокрушался и из его рассказа стало понятно, что мониторы менеджеров сплошь заклеены стикерами-напоминалками, таблицы MS Excel неудобны для ведения клиентов, сделки стали срываться хотя бы потому, что о некоторых из них забывали. После небольшого опроса выяснилось, что к старту осеннего бума продаж и клиентов он хочет приобрести программу, которую «раз и открыл», занес клиента, закрыл, проконтролировал, прикрепил документ, проверил оплату, поздравил всех с завершением сделки. Ну и, само собой, недорого и быстро. Дополнительным требованием была возможность доступа сотрудников с их iPad, устройств на Android и с домашних терминалов. Ответ для него возник незамедлительно: CRM, причем лучше в облаке, благо что бизнес не предъявляет особых требований к безопасности.

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

Конечно, абсолютно все CRM рассмотреть невозможно, выбор пал на те, что на слуху, на первой странице поиска или в Яндекс.Директе.
image
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments58

Разработка ПО: факты против мифов

Reading time3 min
Views69K
Мифы – это попытки осмысления картины окружающего мира, присущие первобытной культуре.

Материальное производство (обработка объектов физического мира) насчитывает десятки тысяч лет истории. Оно прошло путь от каменных пещер до современных небоскребов, от сигнальных костров до мобильной связи, от навигации по звездам до навигации по космическим спутникам. На этом пути был накоплен колоссальный объем знаний естественных наук: математики, физики, химии, географии, геологии, биологии и проч.

То, что производят программисты, нематериально – это brainware, результат коллективного мыслительного процесса проектной команды, материализованный на одном из языков программирования. Программной инженерии чуть больше полувека. Если сравнивать с материальным производством, то необходимо констатировать, что разработка ПО пребывает еще в первобытном состоянии.

За короткую историю в отрасли сложилось большое количество мифов, суеверий и религиозных заблуждения. Эти мифы, суеверия и заблуждения, порой очень похожи на правду. Они получили широкое распространение и пагубно влияют на руководителей, которые никогда сами профессионально не разрабатывали ПО. Следствием этого является применение неадекватных методов и подходов в управлении программистами, что гарантированно приводит проект к провалу.

Вот наиболее распространенные мифы и факты, которые их опровергают.
Читать дальше →
Total votes 150: ↑135 and ↓15+120
Comments124

Посты-рекордсмены

Reading time5 min
Views104K
На Хабре я недавно (чуть меньше месяца), до этого Хабр практически не читал. Пришёл, огляделся, походил по тематическим «хабам», почитал «Лучшее за всё время», просмотрел статьи отдельных, заинтересовавших меня персонажей и понял, что для того, чтобы получше понять, как живёт и чем дышит это замечательное сообщество, мне придётся Хабр распарсить и позадавать ему разные вопросы. К тому же, раз уж в своих статьях я писал в основном об автореферентности в разных её проявлениях, как не написать на Хабре статью о Хабре?

Посмотрю, интересно ли это всё кому-либо кроме меня. Если интересно, напишу ещё несколько постов, идей и материала для этого более чем достаточно.

Если я ничего не пропустил в интерфейсе сайта, единственные списки самых-самых, которые можно посмотреть — это общий рейтинг пользователей и список статей, т.н. «Лучшее за всё время». Оба списка отсортированы по рейтингу (пользователей и статей, соответственно). Между тем, существует ещё куча параметров, по которым было бы интересно всё отранжировать.
Читать дальше →
Total votes 215: ↑202 and ↓13+189
Comments59

Как HTTPS обеспечивает безопасность соединения: что должен знать каждый Web-разработчик

Reading time9 min
Views358K


Как же все-таки работает HTTPS? Это вопрос, над которым я бился несколько дней в своем рабочем проекте.

Будучи Web-разработчиком, я понимал, что использование HTTPS для защиты пользовательских данных – это очень и очень хорошая идея, но у меня никогда не было кристального понимания, как HTTPS на самом деле устроен.

Как данные защищаются? Как клиент и сервер могут установить безопасное соединение, если кто-то уже прослушивает их канал? Что такое сертификат безопасности и почему я должен кому-то платить, чтобы получить его?
Читать дальше →
Total votes 173: ↑163 and ↓10+153
Comments56

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

Reading time2 min
Views38K
Древний холивар о том, нужна ли программисту математика, получил неожиданное продолжение в спорах о ЕГЭ. Активно начала продвигаться идея о том, что вообще не надо проверять знания, а надо проверять умение быстро искать ответы. Ну и как вывод – замена ЕГЭ на чемпионат по поиску в Гугле/Яндексе. На мой взгляд, с тем же успехом можно проводить экзамен в виде поиска по школьной библиотеке. Почему-то никто не замечает такой очевидной истины, что быстро находит ответы те, кто знают, что искать, то есть как раз обладают знаниями. Для подтверждения этой идеи я составил 3 задачки для программистов, алгоритмы решения которых я нашел бы за пару минут.
Читать дальше →
Total votes 172: ↑114 and ↓58+56
Comments212

Альтернативные крестики-нолики

Reading time3 min
Views91K
Однажды на пикнике я заметил математиков, толпящихся возле игры, интереса к которой я ожидал меньше всего: крестики-нолики.

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



Но математики на пикнике играли в более изощренную версию игры. В каждой из клеток на квадратном поле они нарисовали поле поменьше:
Читать дальше →
Total votes 244: ↑236 and ↓8+228
Comments104

Инфографика — Tor, HTTPS и безопасность

Reading time2 min
Views82K
На волне охватившей жителей США паники «наше правительство следит за нами» (сюрприз!), Electronic Frontier Foundation выложили в доступной графической форме описание того, что скрывает Tor, что скрывает протокол шифрования HTTPS, и что они могут скрыть, вместе взятые.

Итак, всю информацию, передаваемую через интернет от пользователя к сайту и обратно, можно разделить на (как обозначено на картинках):

site.com — адрес сайта
user/pw — логин и пароль на сайте
data — данные, передаваемые между пользователем и сайтом
location — информация о пользователе (ip-адрес, и в потенциале — его идентификацию)
tor — информация о том, что пользователь использует сеть tor
Читать дальше →
Total votes 72: ↑67 and ↓5+62
Comments81
1

Information

Rating
Does not participate
Location
Казахстан
Date of birth
Registered
Activity