Продолжаю повествование о проекте Недвижимости, который пытался долго взлететь, но так и не взлетел. Пишу все как есть — личный опыт.
Читать полностью »
Рубрика «Программирование» - 334
Почему не взлетел портал недвижимости. Часть 2
2019-02-07 в 7:57, admin, рубрики: Программирование, продвижение, Проектирование и рефакторинг, Развитие стартапа, стартап, Управление продуктом, управление проектами, Управление проектомКак мы распределяем заказы между водителями в Яндекс.Такси
2019-02-07 в 7:12, admin, рубрики: Алгоритмы, Блог компании Яндекс, Программирование, Промышленное программирование, разработка мобильных приложений, яндекс
Одна из главных задач в Яндекс.Такси — как сделать так, чтобы к пользователю быстро приезжала машина, а у водителя сокращалось время «холостого пробега» (то есть время, когда он на линии без пассажира). Казалось бы, всё просто: пользователь выбирает тариф, указывает дополнительные пожелания (детское кресло, например). Остаётся отфильтровать водителей на линии по этим критериям, выбрать ближайшего и предложить ему заказ. Однако всё так просто только на первый взгляд.
Сегодня я расскажу сообществу Хабра о том, как мы выбираем наиболее подходящего водителя и как этот процесс эволюционировал со временем. Вы узнаете о двух подходах к решению задачи.
Советский номерной знак и колмогоровская сложность
2019-02-07 в 5:13, admin, рубрики: edisonsoftware, Алгоритмы, Блог компании Edison, Занимательные задачки, математика, Программирование
Физик Лев Ландау играл в ментальную игру с советскими номерами[1]. Таблички имели форму двух цифр, тире, еще двух цифр и некоторых букв.
Правила игры
Его игра заключалась в том, чтобы применять математические операторы к числам по обе стороны от тире, чтобы тире можно было заменить на знак равенства. Например, если взять номерной знак 44-74, одним из решений будет
4! + 4 = 7 * 4
Обратите внимание, что мы можем вставить операторы, такие как !, + и *, но не добавляя цифр.
Есть ли решение для каждого возможного номерного знака? Это зависит от того, какие операторы вы разрешаете использовать.
Вы можете тривиализировать игру, применив операцию дробной части { x } к обеим сторонам, поскольку дробная часть целого числа равна нулю. Вы можете запретить оператор дробной части на том основании, что это явно не математическая операция старшей школы, или просто запретить ее, потому что она делает игру неинтересной.Читать полностью »
Generic Methods in Rust: How Exonum Shifted from Iron to Actix-web
2019-02-06 в 18:00, admin, рубрики: Bitfury Group, blockchain, Exonum, Rust, Блог компании Bitfury Group, ПрограммированиеThe Rust ecosystem is still growing. As a result, new libraries with improved functionality are frequently released into the developer community, while older libraries become obsolete. When we initially designed Exonum, we used the Iron web-framework. In this article, we describe how we ported the Exonum framework to actix-web using generic programming.
У дизайнера новая идея? Что может быть проще
2019-02-06 в 8:39, admin, рубрики: css, html, javascript, svelte, SvelteJs, Программирование, Разработка веб-сайтовПривет, хабровчанин! Дизайнеры люди идейные, а заказчики с их бизнес-требованиями, тем более.
Представь, что ты сваял свой самый лучший UIkit на свете на самом крутом %вставить свое% JS фреймворке. Казалось бы, там есть все, что нужно проекту. Теперь-то ты сможешь пить кофе, а все новые задачи закрывать накидыванием компонентов на страницу. Еще лучше, если ты нашел такой UIkit на помойке на просторах NPM и он идеально соответствует текущему UX/UI и его потребностям. Фантастика!
И действительно… кого я обманываю? Твое счастье, скорее всего, будет недолгим. Ведь когда дизайнер прибежит с талмудом новых UI-решений для очередной страницы или «спец-проекта», что-то по-любому пойдет не так.
В этот момент перед разработчиком встает вопрос «DRY или не DRY»? Стоит ли как-то кастомизировать существующие компоненты? Да еще так, чтобы не отхватить регрешн на существующих кейсах. Или же действовать по принципу «работает — не трогай» и написать новые компоненты с нуля. При этом, раздувая UIkit и усложняя поддержку.
Если ты, как и многие, бывал в такой ситуации, загляни под кат!

Программирование в России введут с начальной школы
2019-02-06 в 5:34, admin, рубрики: начальная школа, Программирование, уроки программирования
Одно из заданий детского курса программирования на Code.org. Справа — программа на языке Blockly
Согласно предложению Министерством просвещения РФ, в курс математики для младших школьников включат основы создания кодов и языков программирования, пишут «Известия». Это предусмотрено концепцией преподавания предметной области «Технология».
Читать полностью »
Courier: миграция Dropbox на gRPC
2019-02-05 в 16:01, admin, рубрики: DropBox, grpc, python, RPC, TLS, Блог компании Badoo, высокая производительность, Программирование, Разработка веб-сайтов, Серверная оптимизация
Примечание переводчика
Большинство современных программных продуктов не являются монолитными, а состоят из множества частей, которые взаимодействуют друг с другом. При таком положении дел необходимо, чтобы общение взаимодействующих частей системы происходило на одном языке (притом что сами эти части могут быть написаны на разных языках программирования и выполняться на разных машинах). Упростить решение этой задачи помогает gRPC — open-source-фреймворк от Google, выпущенный в 2015 году. Он решает сразу ряд проблем, позволяя:
- использовать язык Protocol Buffers для описания взаимодействия сервисов;
- генерировать программный код на основании описанного протокола для 11 разных языков как для клиентской части, так и для серверной;
- реализовать авторизацию между взаимодействующими компонентами;
- использовать как синхронное, так и асинхронное взаимодействие.
gRPC показался мне довольно интересным фреймворком, и мне было интересно узнать про реальный опыт компании Dropbox по построению системы на его основе. В статье есть масса деталей, связанных с использованием шифрования, построением надёжной, наблюдаемой и производительной системы, процессом миграции со старого RPC-решения на новое.
Спасибо Алексею Иванову aka SaveTheRbtz за написание оригинальной статьи и помощь с переводом трудных мест.
Spring Boot 2: что нового?
2019-02-05 в 10:15, admin, рубрики: java, release, spring boot, Блог компании Haulmont, ПрограммированиеОт переводчика: несмотря на то, что уже прошел год, вопросы о том что же нового дал нам 2-й Boot не заканчиваются. Писать такой контент с нуля — затея не самая умная. Поэтому решили перевести статью, которая нам кажется наиболее лаконичной и при этом достаточно полной.
Релиз Spring Boot 2 состоялся в начале 2018 года, и всем не терпится скорее посмотреть на него в деле. Этот релиз стал кульминацией 17 месяцев работы и более 6800 коммитов от 215 разных людей. Есть много крутых функций, которые стоит обсудить, так что поговорим о том, что нового в Spring Boot 2.
В этой статье мы рассмотрим:
- Историю Spring Boot
- Что нового в Spring Boot
- Руководство по переходу на Spring Boot 2
Бизнес, не горюй
2019-02-04 в 19:43, admin, рубрики: Анализ и проектирование систем, бизнес не горюй, Карьера в IT-индустрии, Программирование, управление персоналом, управление проектамиБольшинство ИТ-проектов, которые я видел в жизни, были очень успешными. Выполнялись они в разных компаниях, на всевозможных платформах, совершенно разными людьми. Но успех приходил всегда, за редкими исключениями.
Я каждый раз удивлялся, откуда у ИТ-команд такая целеустремленность, тонкое чувство стратегии и ее реализации, понимание ситуации и железная воля следовать избранным путём? Есть ли какой-то секрет успеха?
Я посмотрел, проанализировал, и составил перечень алгоритмов, которые успешно приводят ИТ-проекты к цели. Начнем с целей — чего же такого успешно достигается?
Внимание. Эта статья — только для людей из мира ИТ. Если вы не из ИТ, или, не дай Бог, какой-нибудь директор или собственник, вам лучше не читать эту статью. Иначе вы всё нам испортите.
И еще раз внимание. Эта статья — не сарказм, не попытка кого-то разгромить, не градация рынка и не поднятие чьего-либо ЧСВ, включая моё. Я, как и любой ИТ-специалист, и компания, в которой я работаю, как и любая другая ИТ-компания, подходят под определения из этой статьи.Читать полностью »
Tips and tricks from my Telegram-channel @pythonetc, January 2019
2019-02-04 в 13:28, admin, рубрики: python, Блог компании Mail.Ru Group, Программирование
It is new selection of tips and tricks about Python and programming from my Telegram-channel @pythonetc.
Previous publications:

