Pull to refresh
-4
0
Ильяс @Blumfontein

User

Send message

Как писать меньше кода для MR, или Зачем миру ещё один язык запросов? История Yandex Query Language

Reading time 14 min
Views 44K
Исторически во многих уголках Яндекса разрабатывались свои системы хранения и обработки больших объемов данных — с учетом специфики конкретных проектов. При такой разработке в приоритете всегда была эффективность, масштабируемость и надежность, поэтому на удобные интерфейсы для использования подобных систем времени, как правило, не оставалось. Полтора года назад разработку крупных инфраструктурных компонентов выделили из продуктовых команд в отдельное направление. Цели были следующими: начать двигаться быстрее, уменьшить дублирование среди схожих систем и снизить порог входа новых внутренних пользователей.



Очень скоро мы поняли, что тут мог бы здорово помочь общий высокоуровневый язык запросов, который бы предоставлял единообразный доступ к уже имеющимся системам, а также избавлял от необходимости заново реализовывать типовые абстракции на низкоуровневых примитивах, принятых в этих системах. Так началась разработка Yandex Query Language (YQL) — универсального декларативного языка запросов к системам хранения и обработки данных. (Сразу скажу, что мы знаем, что это уже не первая штука в мире, которая называется YQL, но мы решили, что это делу не мешает, и оставили название.)

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

Читать дальше →
Total votes 101: ↑100 and ↓1 +99
Comments 5

Яндекс выложил в опенсорс YDB

Reading time 16 min
Views 139K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



YDB решает задачи в одной из самых критичных областей — позволяет создавать интерактивные приложения, которые можно быстро масштабировать по нагрузке и по объёму данных. Мы разрабатывали её, исходя из ключевых требований к сервисам Яндекса. Во-первых, это катастрофоустойчивость, то есть возможность продолжить работу без деградации при отключении одного из дата-центров. Во-вторых, это масштабируемость на десятки тысяч серверов на чтение и на запись. В-третьих, это строгая консистентность данных.

В посте я расскажу об истории развития технологий баз данных, о том, зачем использовать YDB, как её применяют текущие пользователи и какие плюсы для всех несёт выход в опенсорс. А во второй половине поста поговорим о разных вариантах развёртывания.
Читать дальше →
Total votes 335: ↑332 and ↓3 +329
Comments 135

Рейтинг языков программирования 2022. C# обошел Java, TypeScript сравнялся с PHP, а Dart – наиболее комфортный язык

Reading time 4 min
Views 255K

Украинский профильный ресурс DOU.UA провел очередной ежегодный опрос о языках программирования.

Python уже второй год подряд демонстрирует негативную динамику. Java тоже теряет позиции – в этом году она на третьем месте по популярности. На второе место поднялся язык C#. Доля JavaScript после небольшого падения в 2021 году снова растет. Но самая лучшая динамика у TypeScript (уже более 10% и прирост увеличился почти вдвое).

Читать далее
Total votes 24: ↑22 and ↓2 +20
Comments 79

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

Reading time 11 min
Views 26K


Всем привет! Меня зовут Алексей, я тимлид команды Vimbox (платформа для обучения в Skyeng). Не так давно я выступал на конференции с докладом об удаленной работе и особенностях распределенной команды. Неожиданно темой заинтересовалось много людей, хотя я думал, что хайп уже прошел и никого не удивить. Поэтому я решил поделиться и с вами наработками, полученными за четыре года функционирования в этом формате. Поскольку у нас в компании из 55 разработчиков 51 человек постоянно работает вне офиса, да и сам я живу в Калининграде, думаю, наш опыт многим может пригодиться.

Читать дальше →
Total votes 36: ↑32 and ↓4 +28
Comments 39

25 Android-библиотек, которыми определенно стоит воспользоваться в начале 2017 года

Reading time 5 min
Views 45K
Вот список 25 Android-библиотек, релиз которых состоялся в январе-феврале 2017 года. Все они достойны внимания, место в списке не определяется значимостью. Приступим!


Читать дальше →
Total votes 41: ↑32 and ↓9 +23
Comments 9

У нас проблемы с промисами

Reading time 16 min
Views 234K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи
Total votes 139: ↑136 and ↓3 +133
Comments 121

Поверхностный обзор javascript-enabled BaaS платформ

Reading time 9 min
Views 21K
Будучи начинающим javascript разработчиком, я заинтересовался темой межплатформенной разработки мобильных приложений. В этой области, в настоящее время, балом правят Cordova (phonegap) www.phonegap.com, Appcelerator Titanium www.appcelerator.com, Mosync www.mosync.com.

Рано или поздно, после выпуска первых мини-приложений, основанных на этих системах, разработчику захочется создать что-нибудь Большое и Светлое, и хотелось бы, чтоб в этом новом приложении/сервисе были пользователи (c аватарами и проч.), push-notifications, user-generated-content и т.д… Но при этом, не хотелось бы тратить время и деньги на написание своей серверной инфраструктуры, а хотелось бы воспользоваться чем-нибудь недорогим, вплоть до бесплатного, и простым в освоении (и ещё чтоб «в облаке»!).

Как раз подобного рода тяжести и взяли на себя многочисленные Backend-as-a-Service (не путать с другими aaS). Я хочу кратко пробежаться по некоторым игрокам на этом рынке. Подчеркну, что меня в первую очередь интересовали те платформы, которые можно было бы легко и безопасно использовать с мобильным javascript (Phonegap/Titanium). Если платформа просто предоставляет REST API, этого мало, т.к. вопрос безопасности требует наличия некоторого специального ограничительного функционала: AccessControlList/permissions/masterKeys/etc. И вообще, желательно отдельный javascript SDK.

(Так как это «поверхностный обзор», я не буду подробно писать кому и зачем нужен BaaS и почему вместо всего этого не использовать старый-добрый PHP/MySQL на VPS или новый-добрый node.js в облаке)

Я начал поиск с www.programmableweb.com/apis/directory/1?apicat=Backend там перечислено почти 40 платформ, просмотрев их, я оставил для обзора те, что легко можно использовать с javascript:
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 13

30 чудных библиотек для PHP программистов

Reading time 6 min
Views 104K
Предлагаю читателям «Хабрахабра» перевод публикации «30 Amazing PHP Libraries for Programmers and Developers». Авторы собрали несколько удивительных PHP-библиотек, которые помогут реализовать некоторые классные вещи, не прилагая много усилий. Цель обзора состоит в том, чтобы преподнести что-то новое, поэтому список не включает популярные библиотеки.
Читать дальше →
Total votes 71: ↑60 and ↓11 +49
Comments 18

Верстка email рассылок от А до Я для чайников

Reading time 9 min
Views 402K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →
Total votes 66: ↑62 and ↓4 +58
Comments 35

Do not be evil

Reading time 6 min
Views 156K
Сегодня довольно непростой, но, очевидно, знаменательный день. Сегодня Яндексу пришлось пойти на шаг, который, как мне всегда хотелось верить, никогда не придётся делать.

Мы обратились в регулирующий орган, ФАС, чтобы вернуть равноправные отношения на рынке мобильных устройств. Наше обращение — признание одного неприятного факта. У нас с вами есть все шансы попасть в мир, где только одна компания будет решать, кто получит возможность донести сервисы до людей и чем эти люди смогут пользоваться.

Мы всегда верили в конкуренцию и право выбора пользователя. Настолько, что даже в наших поисковых результатах с первых дней существования Яндекса стоят ссылки на другие популярные поисковики. Если честно, я всегда был уверен, что и Гугл верит в то же. Что это компания инженеров, производящих крутые продукты. Увы, сейчас очевидно, что помимо технической компании, которая когда-то считала своим лозунгом «Do not be evil», теперь есть и совсем другая – компания, контролируемая юристами и бизнесменами.

Android давно уже совсем не выглядит открытой OS. И уж точно не выглядит открытой политика конкуренции Google на этой платформе. Например, сейчас мы столкнулись с тем, что вендоры, чтобы продавать в России телефоны с сервисами Яндекса, должны отказаться от всех сервисов Google не только в России, но и во всех остальных странах. При этом правила получения GMS и Google Play для каждого из них могут измениться в любой момент.

Мы хотим, чтобы в открытой OS условия и лицензии были открыты и прозрачны для всех.
Читать дальше →
Total votes 462: ↑340 and ↓122 +218
Comments 1060

Авторизация пользователей с AngularJS и Firebase

Reading time 4 min
Views 17K
В прошлой статье, я рассказывал о Firebase. Сегодня я хочу рассказать как я организовал авторизацию пользователей с использованием AngularJS и Firebase.

На данный момент я работаю, в свободное время над своим проектом, если в вкратце, то это сервис для создания прототипов SPA-приложений, думаю в скором времени я смогу расказать о нем больше, но пока только об авторизации. Почему я выбрал Firebase? Все просто, я очень ленивый программист и не люблю писать велосипеды, а данный сервис предлагает кучу готовых решений среди которых и авторизация и регистрация пользователей.

Для основы проекта я использую ngBoilerplate, так считаю его достаточно удачной сборкой не требующей каких-то особых доработок. В сборке предустановлены Twitter Bootstrap, Angular UI, Angular Bootstrap, Font Awesome и LESS. Также замечательно настроен Grunt и Bower. Для установки и запуска чистого приложения, нужно всего лишь выполнить следующие команды:
$ git clone git://github.com/joshdmiller/ng-boilerplate
$ cd ng-boilerplate
$ sudo npm -g install grunt-cli karma bower
$ npm install
$ bower install
$ grunt watch


Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 7

Вышла новая версия reCaptcha API 2.0

Reading time 3 min
Views 132K
На днях, занимаясь очередным внедрением reCaptcha для одного из проектов, столкнувшись с небольшой проблемой в области отображения нескольких защитных изображений на 1 странице с помощью AJAX я в очередной раз пошел на страницу официальной документации «reCaptcha» и обнаружил, что документация существенно отличается от предыдущих версий.
Воспользовавшись поиском стало ясным — в мир вышла «recaptcha 2.0» с обновленным API и визуализацией а так же рядом других «плюшек», о чем я и расскажу в данной статье.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 35

Делаем автоматизированный обзвон для нотификаций или опросов

Reading time 7 min
Views 11K
В ряде случаев у компании может возникнуть необходимость обзвонить каких-то из своих клиентов и сообщить им о чем-то, или, например, провести опрос про качеству обслуживания. Данную задачу можно решать разными способами, но мы будем исходить из того, что в данном случае ее нужно решить веб-разработчику, который привык иметь дело с Javascript/веб-сервисами и не сильно хочет вникать в особенности систем IP-телефонии. К счастью для него есть подходящий инструмент, о котором подробнее под катом.
Читать дальше →
Total votes 11: ↑6 and ↓5 +1
Comments 2

Osquery выставляет ОС как реляционную СУБД

Reading time 1 min
Views 16K
Facebook выложил на гитхабе фреймворк OSquery, он осуществляет низкоуровневый мониторинг процессов в OS X и Linux и хранит их в виде SQL-таблиц. Такой способ по-своему удобен, ведь в запросе можно объединять разные таблицы.

Например, если мы хотим посмотреть названия, pid и порты всех процессов, которые прослушивают порты во всех интерфейсах, то составляем запросик

SELECT DISTINCT 
  process.name, 
  listening.port, 
  process.pid
FROM processes AS process
JOIN listening_ports AS listening
ON process.pid = listening.pid
WHERE listening.address = '0.0.0.0';
Читать дальше →
Total votes 54: ↑38 and ↓16 +22
Comments 18

Гигафабрика аккумуляторов Tesla в Неваде получит 1,3 миллиарда налоговых льгот

Reading time 1 min
Views 68K


На днях стало ясно, почему вместо Калифорнии фабрика аккумуляторов Tesla будет построена в Неваде. Ранее этот объект действительно собирались построить в Калифорнии, но затем поступила довольно неожиданная новость о том, что гигафабрика аккумуляторов будет построена в Неваде. А все потому, что в Неваде Tesla получит довольно значительные налоговые льготы, общая сумма которых за 20 лет составит 1,3 миллиарда долларов США.

Это — значительные деньги даже для Элона Маска и Tesla. Само собой, такая экономия позволит компании эффективнее распорядиться доступными средствами, и сделать производство менее дорогим.

Читать дальше →
Total votes 60: ↑59 and ↓1 +58
Comments 65

Что такое холакратия и почему она вам не нужна

Reading time 12 min
Views 147K
Холакратия скоро станет новым модным баззвордом в мире IT-бизнеса, какими в своё время стали стартапы, аджайл и лин. Уже сейчас в Силиконовой долине поднялся невероятный хайп: компании уровня Medium, Zappos и Airbnb вовсю внедряют Конституцию 4.0, появляются форки и альтернативные системы, рождается куча мисконцепций, спекуляций и критики в адрес этой модели распределения власти. Скоро тренд доберётся до наших северных широт и вызовет ещё больше непонимания из-за трудностей перевода. Давайте опередим события и попробуем разобраться, что такое холакратия, откуда она взялась и какую пользу может принести.



Кнопка обслуживает предпринимателей, и так уж получается, что нам всегда нужно быть чуточку впереди, чтобы предлагать самые крутые решения. Поэтому мы обожаем пробовать всё новое. Эксперименты с холакратией мы начали несколько месяцев назад: набили первые шишки, пообщались с консультантами из США, почувствовали первые улучшения и продолжаем внедрять и изучать. В первой статье расскажем про важные для понимания базовые штуки, а в следующих поделимся собственным опытом и ответим на популярные вопросы.
Читать дальше →
Total votes 52: ↑37 and ↓15 +22
Comments 108

Как использовать API сайта, у которого нет API?

Reading time 4 min
Views 79K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Total votes 115: ↑105 and ↓10 +95
Comments 40

Несколько интересностей и полезностей для веб-разработчика #30

Reading time 6 min
Views 51K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Cloudtunes



Cloudtunes один из тех проектов, глядя на которые я не понимаю мотивации разработчиков выкладывать такие наработки в открытый доступ. Не сочтите меня за сугубо меркантильную личность, но данный проект — это грубо говоря клон iTunes в облаке и это просто великолепный сервис. Cloudtunes обеспечивает единый интерфейс для вашей медиатеки, синхронизируя данные между Dropbox, Youtube, Lastfm и тд. Серверная часть написана на Python (Tornado, Celery, Mongo DB, MongoEngine, Redis), а клиентская на CoffeeScript (Backbone.js, SocketIO, Handlebars, Compass, SoundManager).

Читать дальше →
Total votes 75: ↑71 and ↓4 +67
Comments 13

Релиз KPHP и движков

Reading time 6 min
Views 164K
Довольно часто, выступая на различных конференциях, мы делились желанием выпустить под открытой лицензией KittenPHP, согласно традиции, заложенной крупными IT-компаниями, такими как Google и Facebook.

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

В связи с этим под катом вас ждет более подробный рассказ о внутреннем устройстве ВКонтакте и тех инструментах, которые сегодня стали доступны opensource-сообществу.


Читать дальше →
Total votes 323: ↑311 and ↓12 +299
Comments 159

Эффект неисправного монитора для текста, картинок и SVG

Reading time 4 min
Views 115K
Эффект Glitch Лукаса Беббера выглядит очень круто — как будто вы смотрите на текст на старом мониторе, который слишком часто роняли на пол и у него «плавает» вертикальная синхронизация и сведение.

Реализация этого эффекта на CSS выглядит вполне убедительно. Мне пришлось немного поломать голову, чтобы выяснить, как он работает, и теперь я хочу объяснить это вам. Кроме того, я воспроизвёл этот эффект не только для текста, но и для растровых изображений и SVG, а так же написал несколько примесей Sass, чтобы облегчить работу с ним.


Читать дальше →
Total votes 182: ↑176 and ↓6 +170
Comments 34
1

Information

Rating
Does not participate
Location
Астана, Акмолинская обл. (Целиноградская обл.), Казахстан
Date of birth
Registered
Activity