Как стать автором
Обновить
28
0
dizews @dizews

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

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

Как научить веб-приложение говорить на 100 языках: особенности локализации

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


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

Идея написания этой статьи возникла после MoscowJS митапа, на котором я говорил о том, как происходит процесс локализации в компании Badoo. Но в этой статье я бы хотел рассказать немного подробнее об особенностях локализации на примере веб-приложений, о том, какие существуют решения для локализации и почему в Badoo пошли своим путем. Всем неравнодушным — добро пожаловать под кат.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии5

Памятка для посевных инвесторов

Время на прочтение2 мин
Количество просмотров1.4K
При инвестировании на посевной стадии, провал можно простить. Но неэффективная схема принятия решения при инвестировании — непростительна. У себя в Upside Partnership, чтобы не упустить какие-либо аспекты при заключении сделок, я сверяюсь со списком контрольных вопросов при принятии решения.

Чтобы принять положительное решение по проекту, не обязательно положительно ответить на все вопросы. Но все вопросы должны быть заданы. Таким образом мы заранее определяем потенциальные риски и осознаем все «слепые пятна» принятого решения. Мы целенаправленно не придерживаемся скучного перечня показателей, которые компания должна будет достичь для того, чтобы собрать раунд инвестиций. Мы разработали инструмент совмещающий и творческий и рациональный подход.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Инструкция: Как создавать ботов в Telegram

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.7M
24 июня 2015 разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.
Попробую это исправить
Всего голосов 19: ↑14 и ↓5+9
Комментарии22

Адреса ФИАС в среде PostgreSQL. Часть 3

Время на прочтение9 мин
Количество просмотров7.4K
Это третья часть статьи, в которой описана функция поиска в списке адресообразующих
элементов ФИАС, загруженных в базу данных под управлением PostgreSQL. Вот ссылки на первую и вторую части.


Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии5

Как цифровое производство изменит будущее?

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


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

Когда-то — применение паровых машин на фабриках, потом — начало массового применения электричества, еще позже — изобретение конвейерного производства; на каждом из этих этапов производственная культура делала резкий рывок в стремлении удовлетворить растущие потребности потребителей. В наши дни таким фактором, давшим новый толчок прогрессу, стало распространение цифровых технологий — технологий 3D-моделирования, 3D-сканирования, объёмной печати и роботизации.
Всего голосов 10: ↑8 и ↓2+6
Комментарии17

5 книг, которые помогут мыслить нестандартно и почему это важно именно сейчас

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


Потребляя гигабайты информации, мы начинаем мыслить шаблонно. Роботы автоматизируют все больше специальностей, и незаменимыми становятся лишь те работники, кто мыслит нестандартно. Многие считают, что креативность — это врожденный навык. Я тоже так думал, пока не прочел эти книги. Они доказали, что мыслить нестандартно может научиться каждый.
Читать дальше →
Всего голосов 49: ↑35 и ↓14+21
Комментарии35

Нужны ли книжные советы начинающим предпринимателям?

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

Том Питерс – один из самых известных бизнес-гуру, книги которого расходились миллионными тиражами. Теории менеджмента Питерса основаны на его уникальном опыте консультационной деятельности. Он породил не только множество подражателей, но и новую категорию в литературе – книги про «успешный успех». Лейтмотив таких трудов – существование особых секретов/принципов/правил/лайфхаков достижения успеха в какой-нибудь выбранной области.

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

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

Протокол QUIC: переход Web от TCP к UDP

Время на прочтение9 мин
Количество просмотров88K
Протокол QUIC (название расшифровывается как Quick UDP Internet Connections) — совершенно новый способ передачи информации в интернете, построенный поверх протокола UDP, вместо общепринятого ранее использования TCP. Некоторые люди называют его (в шутку) TCP/2. Переход к UDP — наиболее интересная и мощная особенность протокола, из которой следуют некоторые другие особенности.

Сегодняшний Web построен на протоколе TCP, который был выбран за его надёжность и гарантированность доставки пакетов. Для открытия TCP-соединения используется так называемое «трёхкратное рукопожатие». Это означает дополнительные циклы отправки-приёма сообщений для каждого нового соединения, что увеличивает задержки.

image

Если вы захотите установить защищённое TLS-соединение, придётся переслать ещё больше пакетов.

image

Некоторые инновации, вроде TCP Fast Open, улучшат некоторые аспекты ситуации, но эта технология пока не очень широко распространена.

Протокол UDP, с другой стороны, построен на идее «отправить пакет и забыть о нём». Сообщение, отправленное по UDP, будет доставлено получателю (не гарантированно, с некоторой вероятностью успеха). Яркое преимущество здесь в меньшем времени установки соединения, такой же яркий недостаток — негарантированность доставки или порядка прихода пакетов получателю. Это означает, что для обеспечения надёжности придётся построить некоторый механизм поверх UDP, который гарантирует доставку пакетов.

И здесь на сцену выходит QUIC от Google.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии23

27 open-source ништячков для iOS разработчика

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

1. DZNEmptyDataSet


Это должно быть стандартом, встроенным в iOS, как способ работы с пустыми таблицами и просмотром коллекций. По умолчанию, если табличное представление пустое, то на экране ничего не отображается. Это не лучший пользовательский опыт, который вы можете получить.

С этой библиотекой вам необходимо всего лишь соответствовать определённым протоколам и iOS сама позаботиться о просмотре коллекций и выделит необходимое особым шрифтом, в виде красивых сообщений для пользователя. Элементарное решение для каждого проекта под iOS.

image


Всего голосов 29: ↑23 и ↓6+17
Комментарии9

Реализация восстановления после аварий

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

Сергей Бурладян (Avito)


Сергей Бурладян

Всем привет, меня зовут Сергей Бурладян, я работаю в «Avito» администратором баз данных. Я работаю с такими системами:



Это наша центральная база 2 Тб, 4 сервера — 1 мастер, 3 standby. Еще у нас есть логическая репликация на основе londiste (это из Skytools), внешний индекс sphinx’а, различные выгрузки во внешние системы — такая, как DWH, допустим. Еще у нас есть собственные наработки в области удаленного вызова процедуры, xrpc так называемая. Хранилище на 16 баз. И еще такая цифра, что наш бэкап занимает 6 часов, а его восстановление — около 12-ти. Мне хотелось бы, чтобы в случае различных аварий этих систем простой нашего сайта занимал не более 10-ти минут.
Всего голосов 22: ↑19 и ↓3+16
Комментарии20

Badoo открывает исходные коды Live Streaming Daemon

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


Для того чтобы мы могли считать статистику, наш сайт в своей работе генерирует огромное количество событий. Например, при отправке сообщения другому пользователю, при заходе пользователя на сайт, при смене местоположения и т.д. События представляют из себя строку в формате JSON или GPB (Google Protocol Buffers) и содержат время отправки, идентификатор пользователя, тип события, а также поля, относящиеся непосредственно к самому событию (например, координаты пользователя).

Каждую секунду генерируются сотни тысяч событий, и нам нужны инструменты, чтобы их собирать и анализировать эффективно и с минимальной задержкой. Мы рассматривали несколько существующих решений для этой задачи и до недавнего времени использовали демон под названием Scribe от Facebook. Он в целом нас устраивал и позволял делать все, что нам нужно. Однако в какой-то момент Facebook забросил свою разработку, и при некоторых условиях Scribe начал у нас падать (например, при перегрузке upstream-серверов). Самостоятельно устранить причину падений демона у нас не получилось, поэтому мы начали искать альтернативу.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии34

Обзор расширения OPCache для PHP

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


PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.

Очень маловероятно, что на production-серверах PHP-код изменится между выполнением нескольких запросов. Так что можно считать, что при компилированиях всегда считывается один и тот же исходный код, а значит и опкод будет точно таким же. И если извлекать его для каждого скрипта, то получается бесполезная трата времени и ресурсов.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии25

1 сентября — снова на курсы

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


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

Пойдём от старого к новому. Для начала напомним о нашей последней мегаподборке, здесь учебных материалов хватит на несколько высших образований: «Время учиться: дайджест бесплатных образовательных материалов от Mail.Ru Group». А далее поговорим о новых материалах, туда не вошедших.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии2

Яндекс открывает ClickHouse

Время на прочтение14 мин
Количество просмотров168K
Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.



ClickHouse позволяет выполнять аналитические запросы в интерактивном режиме по данным, обновляемым в реальном времени. Система способна масштабироваться до десятков триллионов записей и петабайт хранимых данных. Использование ClickHouse открывает возможности, которые раньше было даже трудно представить: вы можете сохранять весь поток данных без предварительной агрегации и быстро получать отчёты в любых разрезах. ClickHouse разработан в Яндексе для задач Яндекс.Метрики — второй по величине системы веб-аналитики в мире.

В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Читать дальше →
Всего голосов 176: ↑172 и ↓4+168
Комментарии204

Время учиться: дайджест бесплатных образовательных материалов от Mail.Ru Group

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

Кадр из к/ф «Операция Ы и другие приключения Шурика»

Как говорят, «кризис — пора возможностей». И поэтому сейчас самое время начать вкладывать в саморазвитие, осваивать новую профессию или повышать свою квалификацию. Займитесь изучением языков программирования, обретением навыков разработки, тестирования и вообще всячески прокачивайте свой IT-скилл. Ведь чем больше вы знаете, тем прочнее будете стоять на ногах. А чтобы вам было легче сориентироваться и выбрать направление, мы сделали подборку наших бесплатных образовательных материалов, курсов и инициатив за 2015–2016 годы.
Читать дальше →
Всего голосов 48: ↑43 и ↓5+38
Комментарии29

Основатель сервиса COUB Михаил Табунов о персонализации сайта, виральности и спецпроектах

Время на прочтение6 мин
Количество просмотров5.8K
image

Сервис зацикленных видео COUB – одна из первых площадок, которая начала использовать наши технологии для персонализации сайта. Основатель сервиса Михаил Табунов рассказал, как устроен COUB​ и почему не надо делать свою рекомендательную систему, когда есть Relap.io​.

О чем говорили:
  • Как COUB перестал делать свою рекомендательную систему и почему не советует делать ее остальным.
  • Как делать спецпроекты на 1 миллион охвата на сайте, где контент генерируют пользователи.
  • Люди делятся тем, что создают. Как юзеры взяли на себя продвижение COUB.
  • Почему новые сервисы для планирования не могут победить Excel.
  • Где искать идеи и кого читать.

 

Relap.io сейчас формирует весь блок рекомендаций под коубами. Почему вы не сделали свою рекомендательную систему?


На самом деле мы её сделали, и даже было несколько версий. Когда решили сравнить конверсию с Relap, то оказалось, что Relap дает в два раза больше переходов по рекомендациям. Мы пробовали несколько алгоритмов: ставили похожие по тегам коубы, самый «горячий» контент и контент, который похож по содержимому. В результате у нашего алгоритма было максимум 25% конверсии, а у Relap доходило до 50%.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

DevConf 2015: видео докладов секции PHP

Время на прочтение4 мин
Количество просмотров17K
Ежегодная конференция профессиональных веб-разработчиков DevConf проходит с 2010 года. Она состоит из нескольких секций, посвященных самым популярным языкам и технологиям веб-разработки. В 2015 году году компания Badoo взяла на себя важную миссию — записать видео выступлений, чтобы те, кто не смог посетить конференцию, могли посмотреть их в любое время.

Первым делом мы решили выложить видео с самой интересной для нас секции, посвященной нашему любимому языку PHP. Некоторые темы нам настолько близки, что мы постарались рассказать не только о содержании доклада, но и о том, что мы в Badoo делаем и думаем на этот счет. Надеемся, этот формат покажется интересным читателям и даст более широкое представление о теме.

Секция PHP конференции DevConf 2015

В первую очередь хотелось бы отметить доклад Дмитрия Стогова (Zend Technologies) «Релиз PHP 7: что нас ждет в октябре 2015». Не будем мучить вас переводом «чейнджлога» седьмой версии, а скажем просто: смотреть всем, кто имеет хоть какое-то отношение к PHP. Если вы за свою жизнь написали хотя бы строчку кода на PHP, то, скорее всего, уже слышали про сумасшедшую производительность, JIT и spaceship operator. JIT в PHP так и не появился, но оптимизации проведены масштабные. В докладе Дмитрий рассказывает много о внутренней кухне PHP, есть графики производительности разных версий PHP и HHVM на реальных приложениях. Badoo сейчас как раз в процессе перехода на PHP 7, нам пришлось сильно «перекопать» инфраструктуру тестирования и переписать кучу расширений, но мы на финишной прямой и можем подтвердить, что PHP 7 действительно показывает очень серьезный рост производительности. Какой именно получается прирост? Пока секрет. Ждите от нас отдельной статьи на эту тему, когда мы поборем последние косяки, отлавливаемые на продакшн-трафике.


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

Визуализация concurrency в Go с WebGL

Время на прочтение12 мин
Количество просмотров37K
Одной из самых сильных сторон языка программирования Go является встроенная поддержка concurrency, основанная на труде Тони Хоара «Communicating Sequential Processes». Go создан для удобной работы с многопоточным программированием и позволяет очень легко строить довольно сложные concurrent-программы. Но задумывались ли вы когда-нибудь, как выглядят различные паттерны concurrency визуально?

Конечно, задумывались. Все мы, так или иначе, мыслим визуальными образами. Если я попрошу вас о чём-то, что включает числа «от 1 до 100», вы мгновенно их «увидите» в своей голове в той или иной форме, вероятно даже не отдавая себе в этом отчёт. Я, к примеру, ряд от 1 до 100 вижу как линия с числами уходящая от меня, поворачивающая на 90 градусов вправо на числе 20 и продолжающая до 1000+. И, покопавшись в памяти, я вспоминаю, что в самом первом детском саду в раздевалке вдоль стены были написаны номерки, и число 20 было как-раз в углу. У вас же, вероятно, какое-то свое представление. Или вот, другой частый пример — представьте круглый год и 4 сезона года — кто-то их видит как квадрат, каждая грань которого принадлежит сезону, кто-то — как круг, кто-то ещё как-то.

Так или иначе, позвольте мне показать мою попытку визуализировать основные паттерны concurrency с помощью Go и WebGL. Эти интерактивные визуализации более-менее отражают то, как я вижу это в своей голове. Интересно будет услышать, насколько это отличается от визуализаций читателей.

Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии21

Работа с JSON в Swift

Время на прочтение9 мин
Количество просмотров48K
JavaScript Object Notation, или сокращенно JSON является самым распространенным способом связи с сервером и получения информации с него. Он чрезвычайно популярен из-за простоты в использовании и восприятии.

Рассмотрим следующий фрагмент JSON:
[
  {
    "person": {
      "name": "Dani",
      "age": "24"
    }
  },
  {
    "person": {
      "name": "ray",
      "age": "70"
    }
  }
]

Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии11

5 типичных ошибок при работе с Amazon Web Services

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


Мы в «Латере» занимаемся созданием биллинга для операторов связи. В блоге на Хабре мы не только рассказываем об особенностях нашей системы и деталях ее разработки (например, обеспечении отказоустойчивости), но и публикуем материалы о работе с инфраструктурой в целом. Разработчик и системный архитектор Михаель Виттиг (Michael Wittig) написал в блоге Cloudonout интересный материал о наиболее распространенных ошибках при работе с сервисом AWS (Amazon Web Services). Мы представляем вашему вниманию основные тезисы этой заметки.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии5

Информация

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