Pull to refresh
0
0
Send message

Развитие баз данных в Dropbox. Путь от одной глобальной базы MySQL к тысячам серверов

Reading time33 min
Views18K
Когда только Dropbox запустился, один пользователь на Hacker News прокомментировал, что реализовать его можно несколькими bash-скриптами с помощью FTP и Git. Сейчас такого сказать никак нельзя, это крупное облачное файловое хранилище с миллиардами новых файлов каждый день, которые не просто как-то хранятся в базе данных, а так, что любую базу можно восстановить на любую точку в течение последних шесть дней.

Под катом расшифровка доклада Славы Бахмутова (m0sth8) на Highload++ 2017, о том, как развивались базы данных в Dropbox и как они устроены сейчас.


О спикере: Слава Бахмутов — site reliability engineer в команде Dropbox, очень любит Go и иногда появляется в подкасте golangshow.com.

Содержание




Total votes 73: ↑71 and ↓2+69
Comments9

Пунктирные вау-эффекты: о магии простыми словами

Reading time7 min
Views37K


Продолжаем смотреть технические приемы создания различных анимаций в интерфейсах. Мы уже познакомились с частицами, масками и изменением форм различных объектов — настал черед рисовать пунктирные линии.

Перед тем, как перейти к статье, сделаю небольшое отступление. Эта серия статей предназначена для разработчиков (в первую очередь начинающих), которые хотят делать красивые вещи, но совершенно запутались в сложных инструментах. Каждый раз мы затрагиваем какой-то один прием использования того или иного инструмента и смотрим, к созданию какиих эффектов его можно применить. Комментарии о том, что “во времена флеша было лучше” или что “нужно анимации рисовать в AfterEffects” безусловно имеют право на существование, но будут вырваны из контекста и совершенно не помогут начинающим в решении их задачи.
Total votes 60: ↑60 and ↓0+60
Comments15

Обзор материалов для 3D-печати ESUN

Reading time5 min
Views8.7K
Технологии 3D печати не стоят на месте. Производители пластиков то же не стоят на месте – появляются новые виды пластика, улучшаются старые. Новичку бывает сложно разобраться в многообразии материалов. Для них мы решили написать небольшой обзор по пластикам фирмы ESUN, крупнейшего производителя пластика для 3D-принтеров в мире.

  • Основанная в 2002 году, и расположенная в особой экономической зоне Шенжень компания ESUN – это высокотехнологичное предприятие специализирующееся в исследовании, разработке и производстве разлагаемых полимерных материалов таких, как PLA, а также другие виды пластика. Компания ESUN владеет тремя R&D центрами, которые специализируются на синтезе материалов их модификации и применении.

  • Начиная с 2007 года компания ESUN начала разработку материалов для 3D печати. За это время компании удалось разработать такие материалы, как PLA, ABS, PVA (водорастворимый материал поддержки) и другие. Использую эксклюзивные формулы, и профессиональные производственные линии компания производит пластиковую нить абсолютной круглой формы, с соблюдением заданного диаметра нити, высокой прочностью, большой палитрой цветов и стабильной температурой плавления.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

Как открыть банк в Европе: лицензирование и блокчейн

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



Сайт bits.media взял интервью у нашего спикера Эдгара Берса, в котором он подробно описал процесс регистрации банка и рассказал о типах лицензий финансовых учреждений. В числе прочего, оно отвечает и на вопросы, которые задавались в комментариях к первой статье.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments110

Как построить гоночный коптер и не устать

Reading time6 min
Views24K
Многих интересует тема строительства мультироторных гоночных квадрокоптеров на раме ZMR250, но как только начинаешь исследовать тему, то обнаруживается просто тонна специфической информации, которая может только отпугнуть новичков, но никак не помочь при этом.

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


Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments55

Связь в интернете вещей: LoRa против UNB. Часть 1: физика

Reading time8 min
Views40K
Первая из серии статей, посвящённой описанию основных отличий технологий маломощной дальнобойной радиосвязи, получающей сейчас распространение в системах Интернета вещей: широкополосной связи LoRa от узкополосных (UNB, Ultra Narrow Band) систем, таких как Sigfox и «Стриж»

  1. Связь в интернете вещей: LoRa против UNB. Часть 1: физика
  2. Связь в интернете вещей: LoRa против UNB. Часть 2: бизнес
  3. Связь в интернете вещей: LoRa против UNB. Часть 3: технические тонкости
  4. Связь в интернете вещей: LoRa против UNB. Часть 4: сети и оборудование LoRa

Тема маломощной радиосвязи, позволяющей, не выходя за рамки безлицензионных диапазонов (то есть, как правило, за мощность 25 мВт), передавать низкоскоростные данные на расстояния от 1-3 до 10-30 километров, в России начала бурно развиваться в последние полгода. То есть — говорили о ней и до этого, но практические применения встречались очень редко, а разработчиков и интеграторов, способных сделать проект на подобных технологиях, было крайне мало.

Сейчас мы на грани переломного момента: хотя крупные проекты по-прежнему лишь ожидаются в будущем (но уже можно прогнозировать, что это будущее — вопрос месяцев, а не лет), среди интеграторов и заказчиков появился серьёзный интерес к технологиям IoT-связи, причём выражающийся не только в словах, но и в непосредственном желании попробовать эти технологии в деле.

Основная конкуренция в этом сегменте сейчас — между широкополосной связью LoRa и узкополосной Sigfox (а конкретно в России — схожей с ней технологией «Стриж-Телематики»). В будущем к этому списку добавится UNB-протокол Weightless, а также сети, продвигаемые поставщиками классического оборудования сотовой связи — NB-IoT и LTE-M, но это случится года через два-три.

Итак, в чём же разница — и что выбрать для конкретного проекта? Поехали.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments53

Простые графики с помощью D3.js

Reading time13 min
Views64K

Gualtiero Boffi | Dreamstime.com


D3.js (или просто D3) — это JavaScript-библиотека для обработки и визуализации данных с невероятно огромными возможностями. Я, когда впервые узнал про нее, наверное, потратил не менее двух часов, просто просматривая примеры визуализации данных, созданных на D3. И конечно, когда мне самому понадобилось строить графики для небольшого внутреннего сайта на нашем предприятии, первым делом вспомнил про D3 и с мыслью, что “сейчас я всех удивлю крутейшей визуализацией”, взялся изучать исходники примеров…

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments22

Компьютерное зрение и мобильные роботы. Часть 1 — V-REP, Python, OpenCV

Reading time6 min
Views46K


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

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

Так и возникла идея серии статей, про решение простейшей задачи ориентации робота в пространстве — от виртуальной симуляции, до воплощения в реальном мобильном роботе:

Часть 1. Настройка виртуальной среды, интеграция с python и OpenCV для распознавания образов из виртуального мира.
Часть 2. Создание виртуального мобильного робота, алгоритм автономного перемещения (поиск объекта)
Часть 3. Создание реального робота, перенос логики на него.

Хочется добиться такого результата — чтобы python скрипт, управляющий виртуальным роботом — был бы максимально идентичным тому, что будет управлять реальным роботом.

Мозгом робота будет микрокомпьютер RaspberryPi2 — на котором без проблем работает и python, и OpenCV. Таким образом необходимо состыковать систему виртуальной робототехники V-REP — с Python и OpenCV. Вот про это и будет первая часть — данная публикация.

Видео, что получилось (поиск зеленого объекта)

На верхнем окне — прямое изображение с видео-камеры в 3д виртуальном мире, на нижнем окне — результат выполнения python скрипта, что получает изображение передаёт её OpenCV и рисует маркер, вокруг найденного объекта.

Нарисуем архитектуру нашего мобильного робота.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments1

7 лучших форумов, блогов и YouTube-каналов о квадрокоптерах

Reading time3 min
Views25K
Для тех, кто хорошо владеет английским языком я хочу сразу посоветовать подборку лучших англоязычных мест, но для тех, кто хочет познавать мир квадрокоптеров на родном языке, я расскажу о самых интересных местах, куда обязательно стоит заглянуть.


Фото со встречи нашей группы. Другие фото тут.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments3

Ваш wi-fi расскажет мне, где вы живёте, где работаете и где путешествуете

Reading time3 min
Views146K

Москва вайфайная

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

Пробы WiFi


Чтобы соединиться с уже известными сетями, которые не сообщают о своём присутствии, все ваши мобильные устройства отправляют пробные пакеты, чтобы найти известные им сети. Эти пакеты можно перехватить, когда телефон включается, или когда он отсоединяется от сети. Для этого используются обычные инструменты — airodump / tcpdump. Пример:

# airodump-ng -w wifi-dump wlan0
# tcpdump -n -l -e -r wifi-dump.cap |
    grep 'Probe Request ([^)]'


Вывод содержит время, MAC-адрес устройства и имя сети. Пример:

16:32:26.628209 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:50:ea:d6:aa:bb:cc
    Probe Request (SUBWAY) [1.0 2.0 5.5 11.0 Mbit]


То бишь, устройство 50:ea:d6:aa:bb:cc проверяло, есть ли сеть SUBWAY в пределах доступности.

Ну и что тут плохого?


Ну испускают они эти пакеты с именами сетей. Подумаешь.
Читать дальше →
Total votes 64: ↑61 and ↓3+58
Comments51

Амбары красят в красный цвет из-за особенностей физики звёзд

Reading time2 min
Views69K


Если вы путешествовали по странам Скандинавии или по США, вы могли обратить внимание, что большие амбары преимущественно красят в красный цвет. Есть даже такой вопрос, популярный в местных интеллектуальных шоу – почему именно в красный. Ответ прост – потому, что красная краска дешевле всех остальных. Но вот почему именно красный пигмент оказывается дешевле?

В экономике обычно дешевле то, что есть в изобилии, и то, что легче произвести. Один из работников Google, Йонатан Зангер, в своём блоге решил рассказать, почему красная краска стоит дешевле. Оказывается, потому, что так устроена физика умирающих звёзд.
Читать дальше →
Total votes 118: ↑109 and ↓9+100
Comments58

Raspberry и Telegram: предпосылки создания умного дома

Reading time3 min
Views87K


Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.

Читать дальше →
Total votes 52: ↑44 and ↓8+36
Comments62

Как реализовать почти мгновенное переключение сайта между площадками, когда одна упала

Reading time11 min
Views40K
image

Бывает, сайты падают из-за отказа площадки хостера, каналов и так далее. Я 7 лет работаю в хостинге, и часто вижу такие проблемы.

Пару лет назад я понял, что услуга резервной площадки (без доработки их сайта или сервиса) очень важна клиентам. Теоретически тут всё просто:
1. Иметь копию всех данных в другом дата-центре.
2. При сбое переключать работу на резервный ДЦ.

На практике система пережила 2 полные технические реорганизации (сохранение основных идей со сменой значительной части инструментария), 3 переезда на новое оборудование, 1 переезд между поставщиками услуг (переезд из немецкого дата-центра в два российских). На исследование поведения разных систем в реальных условиях под клиентской нагрузкой ушло 2 года.
Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments45

02 Ссылки для UX-специалистов

Reading time3 min
Views33K
В этой подборке продолжаю делиться информационными ресурсами, где можно почерпать новые знания, отследить новые методы, техники и аналитку, а также улучшить свои навыки в области UX. В отдельном абзаце собрал некоторые материалы по UX в области носимых устройств.


Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments0

Самые популярные торрент-сайты: рейтинг на начало 2015 года

Reading time2 min
Views52K
В начале 2015 года KickassTorrents вырвался на первое место по трафику, а следом за ним идёт Torrentz. «Икона» файл-шаринга The Pirate Bay пока ещё не работает, но его суммарные клоны, копии и последователи участвуют в рейтинге совместно.

Остальные пункты списка заняты уже известными сайтами. С прошлого года произошла лишь одна замена – место выбывшего Bitsnoop.com занял Limetorrents.cc. Один из старейших сайтов, Demonoid, вернувшийся в онлайн после долгого отсутствия, хоть и не попал в рейтинг, но неуклонно карабкается вверх. Мы ещё можем увидеть его в чарте.

Итак, сам чарт (основан на данных от Alexa и U.S. Compete, и некоторых других показателях):
Смотреть чарт
Total votes 24: ↑21 and ↓3+18
Comments6

Проверка идеи боем: fake landing page

Reading time6 min
Views37K

Основная проблема любой идеи стартапа — никто не знает, нужно ли это вообще кому-нибудь или нет. Готовы ли люди изменить своё поведение, свои привычки и начать пользоваться новым продуктом? И главное — готовы ли они за него заплатить?



Десятки-сотни тысяч стартапов ежегодно запускаются, не зная ответа на этот вопрос. Это понятно — никогда нельзя быть абсолютно уверенным в успехе нового бизнеса. Тем не менее, существуют несколько методов проверки идеи — и все они с разной степенью могут предсказать будущее продукта. Один из самых эффективных методов — это разработка fake landing page.



Начнем «раскручивать» термин с конца. Landing page («посадочная страница») называют страницу сайта, на которую пользователь переходит по нажатию на рекламное сообщение. Обычно на этой странице кратко и полно описывается суть продукта, а так же размещается action button, например «Зайти», «Начать», «Узанать подробнее». Цель landing page — «взять на руку» человека, пришедшего извне по рекламе, быстро и четко объяснить, что здесь происходит, и показать один путь, куда двигаться дальше. Переход же на главную страницу сайта, как часто делают многие рекламодатели, обычно является серьезной ошибкой — большое количество информации, которая понятна уже постоянному пользователю, пугает новичка — и даже не надейтесь, что он найдет раздел «О нас» или «Что это?».



С появлением приставки fake — фальшивый, ненастоящий — проявляется сакральный смысл всей идеи проверки будущего стартапа на реальности. Мы создаем landing page для еще несуществующего продукта, «пригоняем» траффик посредством рекламного объявления и проверяем, как ведут себя наши потенциальные клиенты. Итоговым результатом является четкий ответ — сколько из всех, кто в принципе заинтересован предложенной идеей (нажали на рекламное объявление) готовы стать вашими клиентами (нажали на кнопку «Зайти» на fake landing page).


Дальше - конкретные шаги по созданию fake landing page
Total votes 73: ↑66 and ↓7+59
Comments16

Повышение производительности работы в Mac OS X, в том числе путем уменьшения использования мыши

Reading time9 min
Views83K
Мне кажется целесообразным поделиться личным опытом роста производительности работы в Mac OS Х (на примере 10.7), в частности, путем максимального отказа от использования мыши (через что придем и к многим другим способам).

С чем связана актуальность проблемы?
1. Эргономически прицелиться и попасть мышью в мелкий объект всегда хуже для времени, мелкой моторики и зрения, чем использовать операции, не требующие идентификации мелких объектов и «прицеливания» в них. Для наиболее массового примера достаточно сравнить количество людей в Windows, которые переключают клавиатуры комбинацией клавиш или мышкой в соответствующем меню на рабочем столе (которое вроде тоже бы в пределах доступности).

2. Для мобильной работы большая разница – брать с собой мышь или нет. Если в Windows многим недостаточно внутренних тачпадов для полноценной работы, то при взгляде на макбук с подключенной мышью возникает когнитивный диссонанс – т.к. часть вещей, ради которых человек взял ее с собой в дорогу, объективно имеет более эффективное альтернативное решение, если избавится от определенной парадигмы сознания.

3. Меньшее использование мыши в OS X для переходящих с Windows позволяет предотвратить ряд неудобств и ошибок – в частности, «эффект красного крестика» и «синдром единственного рабочего стола», а также лучше понять отличия между окнами и процессами.

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

Итак.
Читать дальше →
Total votes 44: ↑34 and ↓10+24
Comments61

Изобретаем JPEG

Reading time28 min
Views172K

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

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →
Total votes 356: ↑354 and ↓2+352
Comments70

10 самых распространённых ошибок при программировании на JavaScript

Reading time10 min
Views155K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

На первый взгляд, этот язык может показаться довольно простым. Встраивание в веб-страницу базового функционала JavaScript — это не проблема для любого опытного разработчика, даже если он ранее не сталкивался с этим языком. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. Сегодня мы рассмотрим некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Читать дальше →
Total votes 205: ↑176 and ↓29+147
Comments127

Information

Rating
Does not participate
Registered
Activity