Обновить
7
0

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

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

DevConf: переход Uber с PostgreSQL на MySQL

Время на прочтение20 мин
Охват и читатели57K
18 мая 2018 года в Digital October состоится DevConf 2018. И мы решили пересказать некоторые интересные доклады с прошлогодней конференции. Там был доклад с несколько холиварным заголовком: "О чём молчит политрук: к дискуссии о переходе Uber с PostgreSQL на MySQL". В нем разработчик MySQL Алексей Копытов рассмотрел различия InnoDb и PostgreSQL на самом низком уровне, включая организацию данных, памяти и репликаций. Предлагаем вашему вниманию краткий пересказ доклада.


История вопроса


Uber перешел с MySQL на Postgres в 2013 году и причины, которые они перечисляют, были во-первых: PostGIS — это геоинформационное расширение для PostgreSQL и хайп. То есть, у PostgreSQL есть некий ореол серьезный, солидная СУБД, совершенный, без недостатков. По крайней мере, если сравнивать с MySQL. Они мало что знали о PostgreSQL, но повелись на весь этот хайп и перешли, а через 3 года пришлось переезжать обратно. И основные причины, если просуммировать их доклад — это плохие эксплуатационные характеристики при эксплуатации в production.
Читать дальше →

Цвет: от шестнадцатеричных кодов до глаза

Время на прочтение16 мин
Охват и читатели57K


Почему мы воспринимаем background-color: #9B51E0 как этот конкретный фиолетовый цвет?



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

Объясняем современный JavaScript динозавру

Время на прочтение15 мин
Охват и читатели270K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Code review по-человечески (часть 1)

Время на прочтение14 мин
Охват и читатели311K
В последнее время я читал статьи о лучших практиках code review и заметил, что эти статьи фокусируются на поиске багов, практически игнорируя другие компоненты ревью. Конструктивное и профессиональное обсуждение обнаруженных проблем? Неважно! Просто найди все баги, а дальше само сложится.

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

Моя революционная книга обучит вас проверенным техникам по выявлению максимального количества недостатков в своём партнёре. Книга не затрагивает следующие области:

• Обсуждение проблем с сочувствием и пониманием.
• Помощь партнёру в устранении недостатков.

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

Как вам нравится такая книжка? Предполагаю, что она вам не очень по душе.
Читать дальше →

Четыре типажа программистов

Время на прочтение17 мин
Охват и читатели221K

Привет.


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

Читать дальше →

Вы — не Google

Время на прочтение7 мин
Охват и читатели104K
Мы, программисты, иногда почему-то сходим с ума. Причём по каким-то совершенно нелепым причинам. Нам нравится думать о себе, как о супер-рациональных людях, но когда дело доходит до выбора ключевой технологии нового продукта, мы погружаемся в какое-то безумие. Вдруг оказывается, что кто-то слышал что-то об одной классной вещи, а его коллега читал комментарий о другой на Хабре, а третий человек видел пост в блоге о ещё чём-то похожем… и вот мы уже пребываем в полнейшем ступоре, беспомощно барахтаясь в попытках выбора между совершенно противоположными по своей сути системами, уже и забыв, что мы вообще пытаемся выбрать и почему.

Рациональные люди не принимают решения таким образом. Но именно так программисты часто решают использовать что-то вроде MapReduce.

Вот как комментировал этот выбор Joe Hellerstein своим студентам (на 54-той минуте):

Дело в том, что в мире сейчас есть где-то 5 компаний, обрабатывающие данные подобных объёмов. Все остальные гоняют все эти данные туда-сюда, добиваясь отказоустойчивости, которая им на самом деле не нужна. Люди страдают гигантоманией и гугломанией где-то с середины 2000-ых годов: «мы сделаем всё так, как делает Google, ведь мы же строим один из крупнейших (в будущем) сервисов по обработке данных в мире!»

image

Сколько этажей в вашем датацентре? Google сейчас строит четырёхэтажные, как вот этот в Оклахоме.
Читать дальше →

Как «пробить» человека в Интернет: используем операторы Google и логику

Время на прочтение9 мин
Охват и читатели992K

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


В комментариях к первой нашей статье, читатели просили побольше практических примеров и скриншотов, поэтому в этой статье практики и графики будем много. Для демонстрации возможностей «продвинутого» поиска Google в качестве целей были выбраны личные аккаунты автора. Сделано это, чтобы никого не обидеть излишним интересом к его частной жизни. Хочу сразу предупредить, что никогда не задавался целью скрыть свое присутствие в интернете, поэтому описанные методы подойдут для сбора данных об обычных людях, и могут быть не очень эффективны для деанонимизации фэйковых аккаунтов, созданных для разовых акций. Интересующимся читателям предлагаю повторить приведенные примеры запросов в отношении своих аккаунтов и оценить насколько легко собирать информацию по ним.


Читать дальше →

AWS Snowmobile: перевоз петабайт данных в облако на … грузовиках от Amazon

Время на прочтение2 мин
Охват и читатели23K


В прошлом году компания Amazon представила новый сервис AWS Snowmobile, предназначенный для быстрого физического переноса данных при помощи вместительного накопителя информации. Этот сервис предусматривает возможность высылки клиенту устройства на 80 терабайт с предустановленными приложениями для шифрования и защиты данных, записываемых на этот диск. После завершения записи клиент отправляет диск обратно в Amazon, а сотрудники этой компании отправляют всю информацию в «облако».

Мы в свое время интересовались расценками на эту услугу, и, в целом, считаем ее довольно нужной (в специфических случаях, конечно). Сейчас Amazon представила еще один схожий сервис, который получил название AWS Snowmobile. И это уже не шутки — AWS Snowmobile представляет собой мощный грузовик шириной в 3 метра и длиной 13 метров. Кузов грузовика — вандалоустойчивый и очень прочный. Внутри — система накопителей данных огромной емкости. Фактически, весь грузовик — это «внешний диск» на колесах. Он способен передавать данные со скоростью в 1 терабит в секунду через кабель и высокоскоростной свитч.

Сделано в МТИ: система контроля версий Gitless

Время на прочтение4 мин
Охват и читатели37K

Все вы знаете систему Git. Хотя бы слышали — это наверняка. Разработчики, которые пользуются системой, ее или любят, или ругают за сложный интерфейс и баги. Система управления версиями Git де-факто является стандартом в индустрии. У разработчика могут быть мнения о преимуществах Mercurial, но чаще всего приходится мириться с требованием уметь пользоваться Git. Как у любой сложной системы, у нее множество полезных и необходимых функций. Однако, до гениальной простоты добираются не все, поэтому существующая реализация оставляла пространство для совершенствования.

Простыми словами — мудреным приложением было трудно пользоваться. Поэтому в лаборатории Массачусетского Технологического Института взялись за улучшения и отсекли все «проблемные элементы» (ведь то, что для одного проблема, для другого легко может быть преимуществом). Улучшенную и упрощенную версию назвали Gitless. Её разрабатывали с учетом 2400 вопросов, связанных с Git и взятых с сайта разработчиков StackOverflow.

Команда авторов вычленила самые проблемные места в Git, включая две концепции staging и stashing. Затем они предложили изменения, призванные решить известные проблемы.
Читать дальше →

Toyota: 81 514 нарушений в коде

Время на прочтение5 мин
Охват и читатели109K


Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010.
Тойота: — Да они сами виноваты, путают педали.
Люди: — Хьюстон, у нас проблемы.
NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов.
Люди: — На.
Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.
(прошло 10 месяцев)
NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных.
Тойота: — А у нас свои стандарты. А вы ваще на Луну летали?
NASA (публично): — Тойота ни в чем не виновата.
(Акции Тойота подскочили на 4,6%)
Люди: — Ну ё-моё.
(спустя 3 года)
Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?

Состоялся финальный релиз Angular 2

Время на прочтение2 мин
Охват и читатели35K
image
15 сентября состоялся финальный релиз второй версии популярного фреймворка для разработки одностраничных веб-приложений Angular 2.

Масштабирование базы данных через шардирование и партиционирование

Время на прочтение11 мин
Охват и читатели185K


Масштабирование базы данных через шардирование и партиционирование


Денис Иванов (2ГИС)


Всем привет! Меня зовут Денис Иванов, и я расскажу о масштабировании баз данных через шардирование и партиционирование. После этого доклада у всех должно появиться желание что-то попартицировать, пошардировать, вы поймете, что это очень просто, оно никак жрать не просит, работает, и все замечательно.

Немного расскажу о себе — я работаю в команде WebAPI в компании 2GIS, мы предоставляем API для организаций, у нас очень много разных данных, 8 стран, в которых мы работаем, 250 крупных городов, 50 тыс. населенных пунктов. У нас достаточно большая нагрузка — 25 млн. активных пользователей в месяц, и в среднем нагрузка около 2000 RPS идет на API. Все это располагается в трех датацентрах.

Перейдем к проблемам, которые мы с вами сегодня будем решать. Одна из проблем — это большое количество данных. Когда вы разрабатываете тот или иной проект, у вас в любой момент времени может случиться так, что данных становится очень много. Если бизнес работает, он приносит деньги. Соответственно, данных больше, денег больше, и с этими данными что-то нужно делать, потому что эти запросы очень долго начинают выполняться, и у нас сервер начинает не вывозить. Одно из решений, что с этими данными делать — это масштабирование базы данных.
Читать дальше →

Почему, ну почему, эти #?@! придурки используют vi?

Время на прочтение12 мин
Охват и читатели123K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →

Эксперимент, который навсегда изменил наше представление о реальности

Время на прочтение7 мин
Охват и читатели277K
Принцип неопределенности говорит, что мы не можем знать определённые свойства квантовой системы в один и тот же момент времени. Например, мы не можем одновременно узнать положение частицы и ее скорость. Но что это говорит нам о реальном мире? Если бы мы могли заглянуть за кулисы квантовой теории, обнаружили бы мы, что объекты действительно обладают определенным положением и скоростью? Или принцип неопределенности означает, что на фундаментальном уровне объекты просто не имеют четкой координаты и импульса одновременно. Другими словами, неполна ли наша теория или реальность «размыта» на самом деле?

Читать дальше →

Эффективное использование Github

Время на прочтение13 мин
Охват и читатели132K

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


Содержание



Читать дальше →

Бизнес-процессы: Как все запущено и запутано. Глава Вторая «Мухи и котлета»

Время на прочтение20 мин
Охват и читатели22K

Крошка сын к отцу пришёл, и спросила кроха: — Что такое хороший BPM?


Business Process Management. Предлагается из всего многообразия «BPM-наукообразия» выделить «чисто инженерную составляющую», исключив лукавый маркетинг и высокоуровневые бизнес-абстракции, бизнес-надстройки и прочую «бизнес-шелуху» на BPM — инженерии (как инженерной дисциплины), а также вынести за скобки ИТ-составляющую. Вводится понятия процессная инженерия, процессная система, процессные технологии, Process BPM (Natural BPM). Process technology рассматриваются комплексно: Операционная деятельность — Разработка — Внедрение — Контроль.


Вводная
Крошка сын к отцу пришёл, и спросила кроха: — Что такое хороший BPM?

Термин BPM, Business Process Management так «заговорили», что понять, «что же это такое» — уже совсем не просто. В первой главе был показан «Business Process Management маркетин говый» (PR-bpm). Главу первую можно было долго развивать, например, тему (проблему) путаницы терминологий вокруг BPM и тезис «BPM vs [всего и самого себя]»:
Вариант 1: «BPM vs BPM», где буква «M» = {Management vs Modelling vs Mapping}.
Вариант 2: "BPM vs BPM", где в одном из вариантов «P» = Performance.

В «современном» термине «BPMS», буква «М» вообще «не к месту» и что бы людей не путать заглавная буква от «Management» должна быть заменена или на «А» (Аutomation) или на «Е» (Еxecution), т.к. речь там в основе — о разработке программ. Последнюю — букву «S» можно читать как угодно и без потери смысла: suite, system, software (даже в разных версиях BPM CBOK по-разному).
Читать дальше →

Бизнес-процессы: Как все запущено и запутано. Глава Первая

Время на прочтение22 мин
Охват и читатели30K


Всё выше, выше и выше
Стремим мы полёт БиПиЭм …


Термин «управление бизнес-процессами» — он же BPM (Business Process Management) прочно вошел в словарь важных слов современного (продвинутого) управленца. Реально этот термин должен отражать его повседневную деятельность (т.к. «само собой» ничего не работает и требует управления), но «с легкой руки» консалтеров это словосочетание стало обозначать нечто иное, но «очень эффективное и нужное», недешевое и, соответственно, сложное и непонятное (иначе, зачем столько BPM-консультантов?).
Тема активно муссируется с 80-х годов, за это время написано очень много умных книжек и статей, с конца 90-х в России ведется агрессивное продвижение «BPM-флагмана» ARIS и внедрение других «чуть менее» эффективных программных комплексов. Но до сих пор без помощи консалтеров назначение «модного» BPM не всем понятно, а его эффективность не однозначна. В очередной раз «просто о сложном» B-P-M или «Бизнес-процессы: Как все запущено и запутано».


1. Глава скептическая
1.1 BPМ-мантры


Каждый тор-менеджер сталкивается с «выгодным» предложением о внедрении загадочного Business Process Management. Мантры BPM-консалтеров обычно включают текст, приведенный в десятке абзацев ниже (кто знаком с мантрами, может их пролистнуть).
Для возбуждения интереса к теме, вступительные Мантры к вопросу «а зачем?» содержат:
— Необходимо комплексное восприятие бизнеса как системы взаимодействующих бизнес-процессов и переход на качественно новый уровень в организации производства, повышение операционной эффективности компании.
— Поэтому, эффективные бизнес-процессы — это залог успеха, конкурентоспособности и прибыльности компании (т.е. «правильности» компании).
— Следовательно, Управление бизнес-процессами (BPM) – эффективный инструмент повышения эффективности бизнеса и непрерывного улучшения вашей работы (не волнуйтесь, мы научим вас любить «бизнес-процессы вашу»).

Читать дальше →

Собеседование на программиста в Amazon

Время на прочтение7 мин
Охват и читатели127K

Представляю вашему вниманию перевод своей статьи Amazon software engineer interview, изначально опубликованной на английском на sobit.me.


Amazon - We Pioneer


Не так давно со мной связался технический рекрутер из Amazon. Компания организовывала трехдневное онсайт собеседование по найму программистов в их берлинский офис.


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


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

Читать дальше →

Недостатки чистого функционального программирования

Время на прочтение8 мин
Охват и читатели41K
От автора: перевод статьи «Функциональное программирование непопулярно, потому что оно странное» вызвал бурное обсуждение. В нескольких комментариях весьма справедливо замечалось, что при обсуждении недостатков функционального программирования хорошо бы опираться на современные и развитые функциональные языки (в оригинальной статье примеры были на шаблонах C++) и что Хаскель, например, последние пять лет широко используется в индустрии. В связи с этим я хотел бы обратить внимание на две очень предметные статьи из другого блога (от автора книги F# for Scientists): (i) "Недостатки чистого функционального программирования" и (ii) "Почему Хаскель так мало используется в индустрии". Перевод первой из них я как раз и хотел бы представить ниже.

1. На чистых функциональных языках не существует эффективного неупорядоченного словаря и множества


Читать дальше →

Хаордическая организация Visa (Часть 3)

Время на прочтение15 мин
Охват и читатели15K


В какой бы стране ни оказался сегодня, перед какой бы аудиторией ни выступал, если я покажу кредитную карту NBI и спрошу: «Кто из вас знает, что это такое?» — в ответ поднимется лес рук. Но стоит мне спросить: «А скажите-ка мне, кто владеет NBI, кто ею управляет и где можно купить ее акции?» — как в зале наступит гробовая тишина. Все чувствуют, что речь идет о чем-то необычном, да только не могут выразить словами, что и как. В этом нет ничего удивительного. Результаты деятельности хаордической организации всегда на виду, а вот ее структура, управление и процессы скрыты

Ди Хок


Уважаемые читатели, мы продолжаем цикл статей об истории зарождения самой крупной финансовой организации в мире — Visa. Как и в предыдущей части, цитаты из книги Ди Хока “One from Many: VISA and the Rise of Chaordic Organization” выделены курсивом. Важные цитаты выделены жирным шрифтом. Эти моменты мы и обсудим в 4-ой заключительной части.

<<Хаордическая организация Visa (Часть 2)
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность