Как стать автором
Обновить
10
0

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

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

IronZen: как мы решили боль тысяч тревожных людей, разработав собственное мобильное приложение

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.7K

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

Читать далее
Всего голосов 21: ↑17 и ↓4+13
Комментарии36

Пожалуйста, перестаньте рекомендовать Git Flow

Время на прочтение6 мин
Количество просмотров199K
Прим. перев.: Новая статья с критикой полюбившейся многим Git Flow получила столь заметное внимание, что даже оригинальный автор модели обновил публикацию 10-летней давности, актуализировав свой взгляд на её применение сегодня. Публикуем перевод как самой критики, так и официальной реакции.



Git-flow — это методология ветвления и слияния, сильно популяризированная заметкой 2010 года под названием «A Successful Git branching model» (была переведена на хабре как «Удачная модель ветвления для Git» — прим. перев.).

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

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

На этом можно заканчивать, так? Ну, не совсем. Наверняка некоторые из вас скептически отнеслись к моей цепочке рассуждений, поэтому давайте копнем поглубже и попытаемся понять, почему модель ветвления Git-flow должна поджариться на медленном огне.
Читать дальше →
Всего голосов 98: ↑89 и ↓9+80
Комментарии177

Советуют разработчики: подборка популярных книг о программировании, языках, алгоритмах

Время на прочтение9 мин
Количество просмотров64K
В сегодняшнем материале мы собрали одни из наиболее популярных книг, отобранных самими разработчиками — резидентами Reddit, Quora, Stack Exchange, Stack Overflow и Hacker News.

В нашу подборку попали работы по популярным языкам программирования, проектированию ПО, работе с Linux-системами, сборники практических советов для разработчиков — от начинающих, до опытных. Объединяют эту подборку высокие оценки самих программистов, которым эти книги помогали на разных этапах их карьеры.

Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии12

Разбираемся с SOLID: Инверсия зависимостей

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

Давайте глянем на определение принципа инверсии зависимостей из википедии:


Принцип инверсии зависимостей (англ. dependency inversion principle, DIP) — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах. Входит в пятёрку принципов SOLID.

Формулировка:

A. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
B. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Большинство разработчиков, с которыми мне доводилось общаться, понимают только вторую часть определения. Мол "ну а что тут такого, надо завязывать классы не на конкретную реализацию а на интерфейс". И вроде бы верно, но только кому должен принадлежать интерфейс? Да и почему вообще этот принцип так важен? Давайте разбираться.

Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии21

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

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

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии43

Перевод С++ проекта на разработку с юнит-тестированием/TDD

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

Полгода назад на моем проекте было примерно около 0% покрытие кода юнит-тестами. Простых классов было достаточно мало, создавать для них юнит-тесты было легко, но это было относительно бесполезно, так как на самом деле важные алгоритмы находились в сложных классах. А сложные, с точки зрения поведения, классы было трудно юнит-тестировать так как такие классы были завязаны на другие сложные классы и классы конфигурации. Создать объект сложного класса и тем более его протестировать юнит-тестами было невозможно.


Некоторое время назад я прочёл "Writing Testable Code" в Google Testing Blog .


Ключевая идея в статье заключается в том, что C++ код, пригодный для юнит-тестирования, пишется совсем не так, как привычный C++ код.

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

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

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



Мы собрали интересные лекции, которые помогут понять, как работает машинное обучение, какие задачи решает и что нам в ближайшем будущем ждать от машин, умеющих учиться. Первая лекция рассчитана скорее на тех, кто вообще не понимает, как работает machine learning, в остальных много интересных кейсов.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии5

Сколько пыльцы в воздухе и какая пыльца вызывает аллергию

Время на прочтение4 мин
Количество просмотров61K
Аллергосезон 2016 открыт: в середине марта полетела первая пыльца. Аллергия вообще и аллергия на пыльцу в частности — тема широкая, и о ней будет несколько публикаций в блоге компании Тион.



Для начала предлагаем бросить два «пристрелочных» взгляда на пыльцу: количественный и качественный. Количественный взгляд: сколько пыльцы в воздухе, которым мы дышим, и на какие сервисы пыльцевого мониторинга стоит обратить внимание. Качественный взгляд: какими признаками должна обладать аллергенная пыльца и как она выглядит под электронным микроскопом.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии18

От STUPID кода к SOLID коду

Время на прочтение7 мин
Количество просмотров72K
На прошлой неделе я выступил с докладом об Объектно-ориентированном программировании в Мишлене, в компании, где я работаю. Я рассказывал о написании более эффективного кода, от STUPID коду SOLID коду! STUPID, а также SOLID являются акронимами, и рассматривались довольно много в течение длительного времени. Однако эти мнемоники не всегда известны, таким образом, имеет смысл распространить эту информацию.

image

Далее я познакомлю вас с принципами STUPID и SOLID. Следует иметь в виду, что это принципы, а не законы. Однако, рассматривая их в качестве законов было бы хорошо для тех, кто хочет усовершенствоваться в написании кода.
Читать дальше →
Всего голосов 16: ↑7 и ↓9-2
Комментарии8

Масштабирование наоборот: БЭМ-методология Яндекса на небольших проектах

Время на прочтение21 мин
Количество просмотров62K
В разработке интерфейсов отдельные фреймворки уже не так важны: когда инструменты доступны, наша задача сводится к выбору нужных. Чтобы сделать правильный выбор, следует начать с общего подхода, с методологии. Большинство методологий, однако, разработаны крупными компаниями. Применимы ли они в маленьких проектах или для успешного использования их нужно переизобретать заново?

Скорее всего, вы уже знаете об одной из таких методологий, разработанной Яндексом, — БЭМ. БЭМ утверждает, что трёх сущностей (блоков, элементов и модификаторов) достаточно для написания HTML и CSS, задания структуры кода и компонентной структуры с последующим масштабированием проекта до самого высокого уровня.

Я проработал в Яндексе достаточно долго и видел, как эта методология работает на больших проектах. В Яндексе БЭМ используют для разработки CSS- и JavaScript-компонент, с помощью этой методологии также пишут шаблоны и задают зависимости между компонентами. Есть БЭМ-инструменты, поощряются различные эксперименты с кодом, исследования. В масштабах большой компании эти трудозатраты окупаются и дают Яндексу возможность быстро и качественно разрабатывать сотни сервисов одновременно.

Могут ли маленькие команды получить от БЭМ то же самое? Я совершенно не был в этом уверен. Всё же БЭМ — абстракция, которая поставляется вместе с инструментами и технологиями. Для маленькой компании польза от переключения на «полный стек» этих технологий — сомнительна, многие из инструментов изначально приспособлены под крупные и сложные задачи. Быть может, тогда полезной окажется сама идея, сама методология?

Изначально эта моя статья была опубликована в известном многим журнале Smashing Magazine. Но я решил, что и на Хабре она может быть интересна, ведь многие здесь занимаются собственными небольшими проектами.

Читать дальше →
Всего голосов 87: ↑77 и ↓10+67
Комментарии54

Bootstrap 4 вышел в alpha версии

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

Те кто так или иначе связан с веб разработкой скорее всего знает что такое Bootstrap.
Лично я познакомился с фреймворком Bootstrap версии 2.x и он на меня произвел неизгладимое впечатление. Можно было без участия дизайнера получить вполне сносный интерфейс. Встроенный перфекционист ликовал. Можно ругаться, что интернет стал очень уж бутстраповым, но нужно отдать должное, парни, работающие над ним в целом молодцы и делают нужное, а то, что народ ленивый – проблема другая.

Сегодня день рождения этого замечательного фреймворка. В свой день рождения был объявлен Bootstrap 4.


Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии46

Подборка полезных ссылок от команды дизайнеров e-Legion

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

Привет! Мы команда дизайнеров, которые проектируют и создают дизайн приложений для Android, iOS и Windows.

image

За 10 лет работы в e-Legion мы сделали проекты разной сложности: от интернет-магазина до мобильного банка. Идеи архитерктуры приложения / дизайна мы искали в разных источниках, что-то придумывали сами, искали интересные решения в интернете. И за время работы у нас накопилось достаточно полезных ссылок, которыми мы хотим поделиться.
Читать далее
Всего голосов 22: ↑15 и ↓7+8
Комментарии5

По стопам Meteor, или велосипедируем реактивность

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

Доброе время суток, хабраюзер! Сегодня мы попытаемся немного разобрать реактивность, которая лежит в основе одного из самых хипстерских фреймворков — Meteor.

Для начала приведем немного сухой теории из Википедии:
Реактивное программирование — парадигма программирования, ориентированная на потоки данных и распространение изменений. Это означает, что должна существовать возможность легко выражать статические и динамические потоки данных, а также то, что выполняемая модель должна автоматически распространять изменения сквозь поток данных.

К примеру, в императивном программировании присваивание a = b + c будет означать, что переменной a будет присвоен результат выполнения операции b + c, используя текущие (на момент вычисления) значения переменных. Позже значения переменных b и c могут быть изменены без какого-либо влияния на значение переменной a.

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

* велосипедируем — пишем свой велосипед, подглядывая на уже готовую реализацию.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии19

Битовые операции в PHP на примерах

Время на прочтение3 мин
Количество просмотров87K
Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
или
if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читать дальше →
Всего голосов 242: ↑203 и ↓39+164
Комментарии162

Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева

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

Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.



В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
  • Точки зрения на систему, или Почему мы слепнем при проектировании
  • Адресация ключевых рисков, или Гордыня убивает
  • Учитываем контекст, или Как не долбиться в закрытую дверь

Краткое содержание и видеозапись
Всего голосов 46: ↑43 и ↓3+40
Комментарии12

Кардхолдеры — самый популярный продукт на Кикстартере

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


В поисках интересных стартапов на Кикстартере мы обратили внимание на довольно часто попадающиеся на глаза проекты создания портмоне и кардхолдеров, представленных в той или иной форме, с тем или иным функционалом. Более того, оказалось, что тема «идеального бумажника» стала даже объектом исследования — зачем люди вообще берутся за креатив в этой области? И, как выяснилось, в основе этих изысканий лежит очень простой факт — абсолютно все недовольны своим бумажником. А что и как можно улучшить — давайте посмотрим вместе со стартаперами.
Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии13

Несколько интересностей и полезностей для веб-разработчика #40

Время на прочтение5 мин
Количество просмотров72K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

NativeScript




Открытый фреймворк для создания мобильных приложений под iOS, Android и Windows Phone основанный на NodeJS. И весь цимус в том, что это не очередная кроссплатформенная оболочка над WebView (аля PhoneGap), NativeScript со слов разработчиков обеспечивает на JavaScript такие же возможности, какие обеспечивают нативные Objective-C, Java или .NET.

Также хочу упомянуть о NW.js, который до появления IO.js назывался Node-Webkit. Проект по такому же принципу позволяет писать десктопные приложения под Windows, Mac и Linux с помощью веб-технологий. Более того микроконтроллеры, умные дома, интернет вещей, Oculus Rift, Nest выпускают API на JS. Вспоминая все эти новости, хочется сказать, что JavaScript все чаще и чаще представляется как унифицированное средство для кроссплатформенной разработки.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии9

3 лучших инструмента для описания RESTful API

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

Взаимодействие различных сервисов с использованием АPI, из новаторства превращается в обыденность. Количество бесплатных и платных API уже исчисляется тысячами, и с каждым днем их число активно растет. А почему бы и нет? Продажа удаленных запросов к своему новаторскому сервису может принести больше прибыли, чем распространение услуг через свою площадку. И пусть, в таком случае, уже ваши клиенты ломают голову и тратят деньги на привлечение аудитории. Используя свой опыт работы, я предлагаю краткий обзор лучших решений по реализации API на сегодняшний день.
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии17

PC Buyer's Guide: охлаждение

Время на прочтение10 мин
Количество просмотров27K
Всем привет! В прошлом выпуске PC Buyer’s guide мы кратко рассмотрели современные материнские платы, чипсеты, сокеты, а также одним глазком взглянули на рынок современных процессоров. Подробнее о «пламенных моторах» поговорим в другой раз, а вот сегодня нас ждёт немного другая тема, которая напрямую связана как с личным комфортом пользователя ПК, так и со здоровьем «железного коня». Речь пойдёт о системах охлаждения для различных комплектующих.


Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии30

Pebble Time – новые умные часы от Pebble с цветным E-Paper дисплеем

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


Сегодня Pebble анонсировала новую модель умных часов Pebble Time и одновременно запустила краудфандинг-кампанию на Kickstarter для сбора денег на первую партию. Поддержавшие компанию смогут получить часы за $159.

На сбор необходимых $500,000 у компании ушло меньше 30 минут – это абсолютный рекорд для Kickstarter.

Основная особенность новинки — постоянно работающий цветной дисплей. Корпус Pebble Time выполнен из алюминия, а дисплей защищен стеклом Gorilla Glass. Несмотря на 20% более тонкий корпус по сравнению с оригинальным Pebble время автономной работы осталось прежним — 5-7 дней.
Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии92

Информация

В рейтинге
Не участвует
Откуда
Stuttgart, Baden-Württemberg, Германия
Зарегистрирован
Активность