Как стать автором
Обновить
-2
0

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

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

Использование rebar3 для управления проектами на Erlang

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


Rebar3 — это инструмент для языка программирования Erlang, который позволяет легко и удобно управлять проектами, написанными на Erlang (иногда и на Elixir).


Люди уже давно знакомые с Erlang знают старый rebar и, возможно даже, до сих пор его используют. Многим (особенно тем, кто пришел из других языков с гораздо более развитой экосистемой) rebar не нравится и время от времени его там и тут называют "позорной подделкой", которую можно было бы заменить скриптом на Perl. К счастью много работать с rebar мне не приходилось (в отличие от автора выше приведенных слов), но с базовыми вещами rebar справлялся довольно-таки неплохо. Но "неплохо" — это не "хорошо". Несогласных с таким положением дел (с "неплохо") оказалось немало и потому решили они дать арматуре вторую жизнь в виде проекта rebar3, который нынче активно развивается. Над проектом среди прочих работает небезызваестный сир Фред Хеберт, который подарил миру книгу "Изучай Erlang во имя добра!".

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

Развитие продукта: два года работы над мобильным приложением банка «Открытие»

Время на прочтение8 мин
Количество просмотров13K
Привет, Хабр! Мы уже писали о том, как в ноябре прошлого года затеяли работу над самым крупным обновлением мобильного банка «Открытие» за все время его существования. В этой статье мы расскажем про процессы — про то, как развиваем продукт совместно с Открытие Digital.


Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии9

Собираем данные с помощью Scrapy

Время на прочтение4 мин
Количество просмотров116K
Здесь уже проскакивали вскользь упоминания об этом фреймворке для сбора данных. Инструмент действительно мощный и заслуживает большего внимания. В этом обзоре я расскажу, как

scrapy

  • создать паука, выполняющего GET запросы,
  • извлекать данные из HTML документа,
  • обрабатывать и экспортировать данные.





Читать дальше →
Всего голосов 87: ↑85 и ↓2+83
Комментарии49

Начнём год с позитива: как садятся админы и CIO

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


На самом деле, конечно, вот прямо сесть — достаточно серьёзная задача даже при полном раздолбайстве. Но потерять работу за день и больше никогда не вернуться в ИТ-сферу — таких случаев сотни.

Я расскажу несколько баек. В некоторых из них изменены детали, чтобы нельзя было узнать компанию. Если вы узнаете свою — не беспокойтесь, наверняка эти случаи почти типичные для всей страны. Вы же знаете анекдот про первого залетевшего дятла.
Читать дальше →
Всего голосов 74: ↑68 и ↓6+62
Комментарии108

jl-sql: SQL-запросы по JSON-логами в командной строке

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

Вступление никому не интересно, поэтому начну сразу с примеров использования


json-pipe-sql
% cat log.json

{"type": "hit", "client": {"ip": "127.1.2.3"}}
{"type": "hit", "client": {"ip": "127.2.3.4"}}
{"type": "hit", "client": {"ip": "127.3.4.5"}}
{"type": "hit", "client": {"ip": "127.3.4.5"}}
{"type": "hit", "client": {"ip": "127.1.2.3"}}
{"type": "click", "client": {"ip": "127.1.2.3"}}
{"type": "click", "client": {"ip": "127.2.3.4"}}

Выполняем запрос:


% cat log.json | jl-sql 'SELECT client.ip, COUNT(*) AS count WHERE type = "hit" GROUP BY client.ip'

{"client":{"ip":"127.1.2.3"},"count":2}
{"client":{"ip":"127.2.3.4"},"count":1}
{"client":{"ip":"127.3.4.5"},"count":2}
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии23

Тернистый путь эволюции синтезаторов: монстры 50-х, «Вояджер» Моога, цифровая революция от Чоунинга и Курцвейла

Время на прочтение8 мин
Количество просмотров19K
Это третий пост в цикле об истории музыкальных синтезаторов. Перед тем как перейти к теме, хочу поблагодарить пользователей за живой интерес к статьям, насыщенные дискуссии и высокую оценку публикаций. Благодаря своевременным и точным комментариям удалось охватить истории практически всех приборов, изобретение которых предопределило развитие синтеза звука и электронных музыкальных инструментов.


Хронологический период, который охватывает эта статья, начался в 50-х годах прошлого столетия и продолжается до текущего момента. Разработки и изобретения этого этапа подарили нам практически всё, что мы используем сегодня: сэмплеры, цифровые синтезаторы, контроллеры динамических клавиш, а главное – сравнительно низкие цены на эти устройства.
Всего голосов 26: ↑24 и ↓2+22
Комментарии18

ProxySQL — еще один mysql-proxy

Время на прочтение9 мин
Количество просмотров44K
На хабре не раз упоминался данный инструмент для проксирования SQL-запросов, но, к сожалению, я не нашел ни одной статьи описывающей его работы, кроме того, документации на русском языке тоже не было найдено. Ну чтож, попробуем заполнить этот пробел. В статье мы рассмотрим структуру ProxySQL, конфигурирование и пример использования.

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

Jii: Масштабируемый комет сервер и клиент

Время на прочтение10 мин
Количество просмотров11K
Продолжаю серию статей про Jii Framework. Сегодня настал момент релиза комета, о котором я и расскажу в этой статье.



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

Jii-comet предоставляет набор компонентов и классов, которые упрощают обмен сообщениями между каналами, подписки на них, обмена данными между серверами и так далее. Сам модуль не умеет доставлять сообщения на клиент и обратно, но в нем заложена абстракция, чтобы это можно было делать любой из существующих популярных библиотек (например, socket.io, sockjs), а так же чтобы это было надежно и масштабируемо.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии7

8 успешных людей делятся опытом: как найти ментора?

Время на прочтение3 мин
Количество просмотров46K
Грамотный наставник играет большую роль в пути к успеху. Но как найти ментора, как вести себя с ним? Об этом рассказывают бывший госсекретарь США, основатели нескольких успешных стартапов и один из лучших авторов New York Times.

1. Речь о человеке, не о должности


«Для меня наставничество жизненно необходимо. Я приписываю большую часть своего успеха тому, что у меня было много отличных менторов, людей, к которым я могла придти и у которых могла спросить совета», — пишет Алекса фон Тобель, основатель и глава сервиса для финансового планирования LearnVest.com. Алекса отмечает, что важны знания и личные качества наставника: если ваш ментор не думает наперёд или же не самый честный человек, то он сам станет проблемой.

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

8 признаков того, что вам пора сменить работу

Время на прочтение2 мин
Количество просмотров15K
Джейн Мэттсон, старший вице-президент Keystone Associates, специализируется на помощи специалистам в карьерных решениях и нетворкинге. Она предлагает список из восьми признаков того, что вам пора сменить работу и найти новое занятие, которое будет удовлетворять вашим жизненным ценностям и приносить удовольствие.

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

Моя первая карта на Leaflet.js

Время на прочтение4 мин
Количество просмотров44K
Как я делал свою первую карту на Leaflet.js.

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

Итак задание было следующее: есть черно-белый планшет (маленький кусок карты города) размером 5913x7863 пикселей в формате .bmp + .shp слои.
(изначально карты были отрисованы в формате .dwg (формат автокада), но это закрытый формат и с ним ничего не сделаешь, поэтому ребятам пришлось сохранить каждый слой отдельно в .shp + атрибутивные данные в .dbf)

Из этого всего нужно сделать онлайн карту, основной функционал которой — это вывод атрибутов при нажатии на слой и включение/отключение этих слоёв.

Выбор пал на leaflet.js, так как это оболочка с открытым кодом, на ней сделаны OSM и мой любимый 2GIS. К тому же он хорошо работает на мобильных устройствах.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии25

Переписываем с java на C++ на платформе Android

Время на прочтение4 мин
Количество просмотров22K
Хочу с вами поделиться опытом переписывания с java на C++ на платформе Android и тем, что в результате получилось.

Для своего маленького домашнего проекта был использован алгоритм поиска лиц Виола-Джонса, java-исходники с моделью были взяты отсюда code.google.com/p/jviolajones с небольшой модификацией — были добавлены два класса: Point и Rectangle. Уточню почему не стал использовать OpenCV под Android — для его работы необходимо поставить отдельно приложение-библиотеку, что в моем случае будет весьма неудобно, и опыты показали его падение без предупреждения, разбираться с этим долго не стал, также и с поиском других библиотек, и решил взять простейшую готовую реализацию.

Быстродействие алгоритма показало плачевные результаты, на фотографии размером 400 на 300 на моем стареньком разбитом GT-I9300I — 54 секунды, на avd (виртуальном устройстве) и то дольше — 250 секунд.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии15

Как йога кодить и жить помогает: личный опыт

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



Всю жизнь мы живём в стрессе, переходя от одних проблем к другим. Иногда вызываемое ими беспокойство достигает таких масштабов, что это начинает сказываться на результатах труда: физически ты сидишь и занимаешься одним делом, а умом находишься где угодно, но не в данной задаче.
Читать дальше →
Всего голосов 48: ↑27 и ↓21+6
Комментарии30

(Архив) Matreshka.js ECMAScript.next boilerplate

Время на прочтение4 мин
Количество просмотров7.4K
Пост устарел, SystemJS — не панацея, он обладает множеством проблем со сборкой (лично я отрепортил о массе багов), Gulp можно заменить на NPM Scripts. Используйте Webpack.

Дисклеймер: этот пост может показаться неинтересным для продвинутых JavaScript разработчиков. Он ориентирован на новичков, желающих освоить ECMAScript 2015+.

С появлением частичной поддержки ECMAScript 2015 в Chrome 45 и NodeJS 4, мы, веб разработчики, вступили в новую эпоху отрасли, которая нам приносит не только «хлеб с маслом», но и доставляет массу удовольствия. К сожалению, новый JavaScript не поддерживается всеми браузерами. Разработчику на помощь приходит Babel, который компилирует новый JavaScript в старомодный и поддерживаемый всеми браузерами (даже древними). На самом деле компиляторов ECMAScript.next в ECMAScript 5 больше чем один: Traceur, ES6 Transpiler и другие. Но Babel (бывший 6to5) является самым популярным и самым быстроразвивающимся компилятором, на сегодня.

Матрешка, в свою очередь (как же без неё, всё-таки это блог проекта Matreshka.js), — умеренно популярный фреймворк, иногда вызвающий вопрос «с чего начать» у новичков.

Решение — Matreshka.js ECMAScript.next boilerplate. Этот репозиторий убивает двух зайцев одним выстрелом: он содержит настроенный Gulp, SystemJS, а так же пример простых модулей, использующих Матрешку.

<habracut /|>

Репозиторий сделан для всех, не только для пользователей Матрешки. Если вы не желаете использовать этот фрефмворк, просто не импортируйте его и удалите сответствующие файлы из /src/lib/.

Пример максимально упрощен для того, чтоб новичек сосредоточился на реализации, исключительно, JavaScript кода. CSS препроцессор, browserify, jspm и другие вещи не включены, а библиотеки, которые вы желаете подключить, можно копировать напрямую в папку /src/lib/.

Что мы будем использовать?


  • Gulp — «запускатель задач».
  • SystemJS — универсальный загрузчик модулей (AMD, CJS, ES6).
  • Babel — компилятор JavaScript нового поколения в старый.
  • Matreshka — фреймворк, использующийся по умолчанию.

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

Бенчмарки в Go

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

Бенчмарки


Бенчмарки это тесты для производительности. Довольно полезно иметь их в проекте и сравнивать их результаты от коммита к коммиту. В Go есть очень хороший инструментарий для написания и запуска бенчмарков. В этой статье я покажу, как использовать пакет testing для написания бенчмарков.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии2

Greenplum DB

Время на прочтение17 мин
Количество просмотров186K
Продолжаем цикл статей о технологиях, использующихся в работе хранилища данных (Data Warehouse, DWH) нашего банка. В этой статье я постараюсь кратко и немного поверхностно рассказать о Greenplum — СУБД, основанной на postgreSQL, и являющейся ядром нашего DWH. В статье не будут приводиться логи установки, конфиги и прочее — и без этого заметка получилась достаточно объёмной. Вместо этого я расскажу про общую архитектуру СУБД, способы хранения и заливки данных, бекапы, а также перечислю несколько проблем, с которыми мы столкнулись в ходе эксплуатации.



Немного о наших инсталляциях:

  • проект живёт у нас чуть больше двух лет;
  • 4 контура от 10 до 26 машин;
  • размер БД около 30 Тб;
  • в БД около 10000 таблиц;
  • до 700 queries per second.

За тем, как оно работает, прошу под кат!
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии33

Документация разработчика Hibernate – Глава VI. Кэширование

Время на прочтение7 мин
Количество просмотров35K
Представляю вашему вниманию перевод шестой главы официальной документации Hibernate.

Перевод статьи актуален для версии Hibernate 4.2.19.Final

Предыдущая главаДокументация разработчика Hibernate – Глава V. Блокировки

Что собой представляют кэш первого и второго уровня в Hibernate, показано на следующий диаграмме (прим. автора).

image

6.1. Кэш запросов


Если у вас есть запросы, выполняющиеся снова и снова, с одними и теми же параметрами, кэширование запросов предоставит выигрыш в производительности.

Кэширование вводит дополнительные накладные расходы в области выполнения транзакций. К примеру, если вы кэшируете результаты запроса по отношению к какому-либо объекту, Hibernate необходимо отслеживать, были ли закоммичены какие-либо изменения по объекту, и в соответствии с этим, аннулировать записи в кэше. В дополнение, плюсы от кэширования запросов ограничены, и очень зависят от шаблонов использования вашего приложения. По этим причинам, Hibernate по-умолчанию выключает кэширование запросов.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии2

Преимущества управляемого сервиса безопасности

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


В корпоративной среде кибер-угрозы становятся все более и более изощренными, стандарты безопасности – более сложными, а бюджеты – все меньше и меньше.

Технологический мир на работе больше не ограничивается серверами, рабочими станциями или почтовыми аккаунтами, и теперь нам необходимо учитывать также мобильные устройства и принцип использования собственных устройств на рабочем месте BYOD (Bring Your Own Device). Кроме того, нам необходимо быть в курсе проблем, которые могут возникнуть в рамках новых тенденций (таких как социальное медиа) и степени их влияния на безопасность наших корпоративных сетей.

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

Что такое управляемые сервисы безопасности?

В настоящее время на рынке существуют новые серии
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии3

Alibaba vs. Facebook – там, где Запад сходится с Востоком

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


Конечно, мы не могли не воспользоваться декларируемым руководством страны поворотом на Восток. В Китае существуют свои социальные сети, свои поисковые системы, свои почтовые службы и, может быть, даже собственные технологии?
 
В мире много стран, продающих труд своих программистов, но очень мало способных самостоятельно разрабатывать крупные серьезные программные продукты. Свои поисковые системы, свои социальные сети и свой антивирус есть только у трех стран в мире — это США, Россия и… Китай!
 
Причем, если информационными продуктами и технологиями, произведенными в США, мы пользуемся каждый день, то что там в Китае — известно слабо.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии17

PostgreSQL: Приемы на продакшене

Время на прочтение9 мин
Количество просмотров90K
Можно прочитать много книг по базам данных, написать кучу приложений на аутсорс или для себя. Но при этом невозможно не наступить на грабли, при работе с действительно большими базами/таблицами особенно, когда downtime на большом проекте хочется свести к минимуму, а еще лучше совсем избежать. Вот здесь самые простые операции, как например изменение структуры таблицы может стать более сложной задачей. Наиболее интересные случаи, проблемы, грабли и их решения из личного опыта с которыми нам на проекте Pushwoosh пришлось столкнуться описаны под катом. В статье нет красивых картинок, зато есть много сухого текста.

image
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии18
1

Информация

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