Search
Write a publication
Pull to refresh
7
0

User

Send message

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

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


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


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

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

Reading time16 min
Views55K


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



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

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

Reading time15 min
Views267K


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


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


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


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

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

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

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

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

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

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

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

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

Reading time17 min
Views217K

Привет.


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

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

Вы — не Google

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

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

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

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

image

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

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

Reading time9 min
Views961K

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


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


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

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

Reading time2 min
Views22K


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

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

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

Reading time4 min
Views36K

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

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

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

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

Reading time5 min
Views105K


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

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

Reading time11 min
Views172K


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


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


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

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

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

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

Reading time12 min
Views121K

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


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


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


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

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

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

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

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

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

Reading time13 min
Views127K

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

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


Содержание



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

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

Reading time20 min
Views21K

Крошка сын к отцу пришёл, и спросила кроха: — Что такое хороший 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 по-разному).
Читать дальше →

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

Reading time22 min
Views29K


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


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


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


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

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

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

Reading time7 min
Views127K

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


Amazon - We Pioneer


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


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


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

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

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

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

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


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

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

Reading time15 min
Views15K


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

Ди Хок


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

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

Information

Rating
Does not participate
Registered
Activity