Как стать автором
Обновить
30
0
Отправить сообщение

Как мы побеждали хаос на центральном складе

Время на прочтение7 мин
Количество просмотров13K
Привет, Хабр! Меня зовут Алексей Шихов, я руковожу командой разработчиков CarPrice в Кирове. Сейчас Carprice занимает второе место в России по продажам автомобилей на вторичном рынке, и почти все машины, выкупленные в Москве, проходят через один огромный центральный хаб, откуда их забирают покупатели (дилеры) или отправляют в регионы на автовозах. На складе всегда есть как минимум 700 автомобилей, которые не задерживаются там больше чем на пять дней. В этой статье я расскажу, как наша команда из дружных разработчиков и неравнодушной тестировщицы боролась с неизбежным для такого муравейника хаосом и победила его.


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

Как не утонуть в лендингах: история создания японского CarPrice

Время на прочтение5 мин
Количество просмотров9.6K
В прошлой статье про развитие CarPrice в Японии мы обещали отдельно написать о создании сайта для экзотического японского рынка. Абсолютно незнакомый язык. Мало времени на запуск. Большая разница во времени между IT и бизнесом. Географически разрозненная команда из России, Японии, Канады, Белоруссии, Филиппин и Китая. В этом посте мы расскажем, как у нас все получилось в этих непростых условиях.


Всего голосов 30: ↑30 и ↓0+30
Комментарии8

Побег из гнезда успеха или Проблемы больших компаний

Время на прочтение9 мин
Количество просмотров59K
Привет, Хабр! Говорят, чистосердечное признание смягчает наказание. Каюсь — большая часть статьи будет откровенным копипастом чужого текста. Прошу модераторов не судить строго и считать огромной цитатой. Потому что лучше не скажешь. Потому что я, вы, ты, читатель, — все мы там были или можем быть. В больших межгалактических корпорациях компаниях, которые заманивают офисами, всевозможными плюшками из рога изобилия, самокатами в коридорах и прочими релакс-капсулами, но редко говорят, что будет взамен. А взамен будут бесконечные совещания, легаси, инерция и… мать его, одинокое ощущение себя маленьким винтиком какой-то адовой машины. Начну со своей истории — в одном абзаце. А потом — просто откровенная бомба — текст, каждое слово которого крепко отозвалось во мне, вроде суровом дядьке.


Читать дальше →
Всего голосов 200: ↑193 и ↓7+186
Комментарии55

Приложение для инспекторов CarPrice

Время на прочтение11 мин
Количество просмотров8K
Нашим инспекторам, осматривающим автомобили при их приёмке на аукцион, условия выбирать не приходится — они работают и в дождь, и в снегопад, и в летнюю жару. Они не просто тщательно осматривают автомобиль, но и заполняют сотни пунктов чек-листов, снимают десятки, а то и сотни фотографий, записывают видео. И всё это без пачки бумаг, фотоаппарата и камеры, а с помощью одного лишь смартфона и нашего специального приложения. Недавно мы даже защитили патентом нашу систему осмотра автомобилей. Под катом — рассказ с подробностями.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии4

CarPrice в Японии: особенности национального автоаукциона

Время на прочтение5 мин
Количество просмотров22K
Возможно, вы слышали, что CarPrice работает не только в России, но и в Японии. Рынок подержанных автомобилей там очень развит, и на первый взгляд кажется, что занять определенную нишу просто невозможно. Но это не так.

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

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии38

Jaeger Opentracing и Microservices в реальном проекте на PHP и Golang

Время на прочтение6 мин
Количество просмотров28K
Всем привет, меня зовут Юрий Буйлов, я руковожу разработкой в CarPrice. Коротко расскажу как и почему мы пришли к микросервисам на PHP и Golang. Что используем, как инструментируем и мониторим наши приложения в production. Далее расскажу о распределенном трейсинге, который обеспечивает нам прозрачность работы сервисов.


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

Честный realtime на React и Redux, как основа автоаукциона

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


В нашей первой статье о программной инфраструктуре сервиса CarPrice, — если не читали, то рекомендуем почитать, — упоминалось про сайт для дилеров. Что он собой представляет и как устроен, мы попросили рассказать одного из его разработчиков, Никиту Лебедева.
Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии30

Huginn: простая интеграционная платформа

Время на прочтение4 мин
Количество просмотров12K
В мире API, сервисных архитектур и облачных решений многое доступно вообще без программирования. Однако, компании все еще тратят драгоценное время разработчиков на рутинные задачи по интеграции. Мы хотим рассказать об одной из платформ, которая позволяет нам подключить новомодный маркетинговый сервис или проверить гипотезу максимально быстро и без участия разработки.

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

Что скрыто внутри платформы автомобильного аукциона

Время на прочтение11 мин
Количество просмотров28K
Сервисы по продаже подержанных автомобилей обычно построены по одному принципу: «разместил объявление, позвонили, показал машину, продал». В таких проектах высокие технологии сконцентрированы, в основном, вокруг самого сайта. Но у нас всё иначе. Мы создали платформу, на которой любой желающий может продать автодилерам через аукционную систему свою подержанную машину (даже аварийную), с проверкой технического состояния нашими специалистами. За кажущейся простотой описания скрывается сложная экосистема из самописных и сторонних программных продуктов, о которой мы хотим рассказать.

image
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии43

Нейронные сети в картинках: от одного нейрона до глубоких архитектур

Время на прочтение7 мин
Количество просмотров96K
Многие материалы по нейронным сетям сразу начинаются с демонстрации довольно сложных архитектур. При этом самые базовые вещи, касающиеся функций активаций, инициализации весов, выбора количества слоёв в сети и т.д. если и рассматриваются, то вскользь. Получается начинающему практику нейронных сетей приходится брать типовые конфигурации и работать с ними фактически вслепую.

В статье мы пойдём по другому пути. Начнём с самой простой конфигурации — одного нейрона с одним входом и одним выходом, без активации. Далее будем маленькими итерациями усложнять конфигурацию сети и попробуем выжать из каждой из них разумный максимум. Это позволит подёргать сети за ниточки и наработать практическую интуицию в построении архитектур нейросетей, которая на практике оказывается очень ценным активом.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии53

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

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



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

Восход разработчикономики

Время на прочтение10 мин
Количество просмотров61K
От переводчика
Почитывая несколько лет назад журнал "Форбс", я наткнулся на статью, которую нашёл крайне интересной. Ну, знаете как бывает — читаешь, читаешь, и на каждом абзаце воскликаешь: «О! Це ж про меня!». Не мог поверить, что я один такой, и никто не сподобится уж если не перевести, то хотя бы сослаться на неё в русскоязычной прессе. Однако за четыре года этого так и не произошло. Ну что ж, «хочешь сделать что-то правильно — сделай это сам», посему предоставляю вниманию почтенной публики первую половину статьи. (Стараюсь переводить художественно, поэтому работа двигается небыстро; размер оригинала — больше 30 килобайт, и, «земную жизнь пройдя до половины», я понял, что держаться нету больше сил.)

P.S. Так и не смог разобраться, как поставить в заголовке тег «перевод».

Восход разработчикономики


Статья Венкатеша Рао опубликована в декабре 2011 года в журнале «Форбс».

В эволюционной биологии существует теория, согласно которой взаимный альтруизм и сотрудничество возникли как решение проблемы хранения еды. Если вам, раннему гоминиду, посчастливилось завалить крупного мамонта, у вас не было ни малейшего шанса умять его целиком до того, как он протухнет. Тогда вы делились едой: лучшим вложением для избыточного капитала было вложение в желудок вашего приятеля. В этом случае вы могли потребовать возврата вклада в тот раз, когда мамонта завалит уже этот самый приятель.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии76

Десятка лучших консольных команд

Время на прочтение2 мин
Количество просмотров198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Всего голосов 382: ↑346 и ↓36+310
Комментарии215

Заовнил, вонзился, запилил: словарь IT-шника

Время на прочтение5 мин
Количество просмотров98K
Как часто друзья и родственники, не связанные с IT, просили вас рассказать, что нового на работе, а вы, увлекаясь, начинали говорить вроде на русском, но совершенно непонятном для них языке? Мы создали наш словарь терминов, в который вошли как внутренний сленг отдельных проектов, так и достояние широкой общественности. Надеемся, эта компиляция поможет айтишникам при необходимости выразить свои мысли на языке маглов, а неайтишникам – понять, что айтишники несут. Ну и просто повеселит всех. Ведь пятница!

Про код и изменения





Код добра – программный код, очевидно содержащий непоправимые улучшения.
Котятоемкий код — очень некрасивое техническое решение. Выражение обязано своим происхождением предположению, что каждый раз, когда программист пишет строчку некрасивого кода, бог убивает котенка.
Непоправимо улучшить – запилить годное, но не до конца проверенное изменение функционала. Синоним — необратимо улучшить.
Мясной коммит (ковровый коммит) – правка, судя по количеству и характеру изменений, наверняка содержащая непоправимые улучшения.
Тупач – очень срочная задача, результаты работ по которой должны попасть в бранч для выкатываемой версии. Образовано от to patch.
Минорный тупач – задача горит – сильнее некуда, но уж очень мелкая.
Глубокий ToDo Later — (отправить задачу в глубокий тудулейтер) статус задачи в таск-трекере отложена на неопределенный срок.
Подпереть костылями – реализовать функциональность за счет непредусмотренного временного решения.
Шрапнельные правки – огромное количество мелких правок по всему проекту, которые очень сложно оттестировать.
Скриптюня — очень классный скрипт, экономит кучу времени, практически лучший друг оператора.
Читать дальше →
Всего голосов 280: ↑173 и ↓107+66
Комментарии97

#FailOverConf Украина состоится 3 октября в Киеве!

Время на прочтение2 мин
Количество просмотров2.9K
Шановні пані та панове! Рады сообщить вам, что специализированная технологическая конференция «FailOver Conference Украина» состоится 3 октября 2013 года в Киеве!

В начале апреля этого года мы провели первую «FailOver Conference» в Москве. Опыт ее проведения оказался очень удачным — в офф-лайне и он-лайне присутствовали около 800 участников (материалы прошедшей конференции выложены на Хабре).

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

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

Проблема инициализации объектов в ООП приложениях на PHP. Поиск решения при помощи шаблонов Registry, Factory Method, Service Locator и Dependency Injection

Время на прочтение13 мин
Количество просмотров49K
Так уж повелось, что программисты закрепляют удачные решения в виде шаблонов проектирования. По шаблонам существует множество литературы. Классикой безусловно считается книга Банды четырех «Design Patterns» by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides" и еще, пожалуй, «Patterns of Enterprise Application Architecture» by Martin Fowler. Лучшее из того, что я читал с примерами на PHP – это «PHP Objects, Patterns and Practice» by Matt Zandstra. Так уж получилось, что вся эта литература достаточно сложна для людей, которые только начали осваивать ООП. Поэтому у меня появилась идея изложить некоторые паттерны, которые я считаю наиболее полезными, в сильно упрощенном виде. Другими словами, эта статья – моя первая попытка интерпретировать шаблоны проектирования в KISS стиле.
Сегодня речь пойдет о том, какие проблемы могут возникнуть с инициализацией объектов в ООП приложении и о том, как можно использовать некоторые популярные шаблоны проектирования для решения этих проблем.
Читать дальше.
Всего голосов 59: ↑53 и ↓6+47
Комментарии31

RBAC Авторизация в YII и LDAP

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

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

К сожалению стандартный мануал по RBAC в YII оставляет больше вопросов чем ответов. Эту ситуацию я и намереваюсь исправить.
Я расскажу о создании “правильной” иерархии: как делать не стоит. А в завершении я приберёг инструкцию, о том как подружить LDAP авторизацию (из ActiveDirectory ) с Yii и RBAC.

Все кто заинтересовался, добро пожаловать под кат!
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии26

Objective-C с нуля

Время на прочтение23 мин
Количество просмотров434K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Всего голосов 163: ↑155 и ↓8+147
Комментарии61

Подборка полезного для любителей Twitter Bootstrap

Время на прочтение2 мин
Количество просмотров250K
В подборке сервисы, плагины, темы и другие полезности, облегчающие работу с Twitter Bootstrap.

Стилизация


BootSwatchr — быстрая стилизация Twitter Bootstrap.

Читать дальше →
Всего голосов 248: ↑243 и ↓5+238
Комментарии58

Профилирование JavaScript с Chrome Developer Tools

Время на прочтение7 мин
Количество просмотров67K
Скорость сайта состоит из 2 частей: как быстро загружается страница и как быстро работает код в ней. Многие сервисы, такие как минификаторы или CDN, помогают ускорить загрузку, но скорость работы кода зависит только от вас.

Небольшие изменения в коде могут давать огромные изменения в производительности. Всего несколько строк могут означать разницу между быстрым сайтом и диалогом “Unresponsive Script”.
Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии5
1

Информация

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