Pull to refresh
37
-1
Сергей @KREGI

Development Team Leader at QIWI

Send message

Разработка REST API на Express, Restify, hapi и LoopBack

Reading time5 min
Views44K
Если вы работаете над Node.js приложением, то есть все шансы, что у него появится некое API, которое будет использовано вами или кем-то другим. Наверняка это будет REST API и перед вами возникнет дилемма — какие инструменты и подходы использовать. Ведь выбор так широк…

image

Благодаря невероятно активному сообществу Node.js, количество результатов на NPM по запросу «rest» зашкаливает. У каждого есть свои реализации и подходы, но у некоторых есть что-то общее в создании REST API на Node.js.
Читать дальше →
Total votes 47: ↑31 and ↓16+15
Comments25

Что мешает веб-студиям масштабировать бизнес, и как в этом могут помочь внутренние проекты

Reading time14 min
Views32K


Что представляет собой российский рынок веб-разработки? Большая часть самых высокооплачиваемых проектов для крупнейших компаний России в основном поделены между примерно сотней веб-студий, а среди этой сотни около 40% проектов приходится на 25 агентств. Как на этом рынке выжить молодой веб-студии? Расти веб-студиям довольно сложно, и тому есть несколько причин. В этой статье на примерах нескольких веб-студий будет рассказано о том, чем «болеют» веб-студии, а участники рынка расскажут, как им удалось победить болезнь и решить все основные проблемы.

У каждой маленькой веб-студии есть несколько условных путей развития: она может превратиться в большое интернет-агентство, может работать над уникальными проектами на заказ, может «запилить» свой продукт/веб-сервис или наладить конвейерное производство типовых продуктов. Нюанс с «рождением» своего продукта заключается в том, что внутренний стартап, как и настоящий ребенок, требует больших временных и денежных затрат. Именно этот сценарий развития студии представляет наибольший интерес для ФРИИ как венчурного фонда, потому что в этом случае веб-студия может задуматься над привлечением стороннего инвестора. У веб-студий гораздо больше шансов создать качественный продукт, чем у отдельных фрилансеров или сотрудников крупных компаний, но на практике эти проекты не всегда отвечают ожиданиям фондов. В данном материале участники рынка расскажут каждый свою историю о том, как им удалось создать отдельный продукт в рамках веб-студии, и развивать его с инвестициями или без, а последняя часть статьи поможет разобраться, на что обращает внимание инвестор при принятии решения.

Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments11

Лицензия для вашего open-source проекта

Reading time98 min
Views182K
В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

Статья будет полезна тем, кто хочет:

— в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
— подобрать свободную лицензию для своего проекта;
— разобраться, что нужно писать в шапке файла исходного кода.
Читать дальше →
Total votes 136: ↑132 and ↓4+128
Comments117

Быстрая настройка Grunt для комфортной разработки

Reading time7 min
Views25K
Быстрая настройка Grunt для комфортной разработки

Во время разработки нашего сервиса bitcalm.com, нам потребовалось организовать автоматическую сборку проекта. Перед нами стояла цель улучшить производительность frontend-части нашего приложения, а также оптимизировать процессы разработки и развертывания на сервере.

Основными задачами, которые требовалось решить, стали:
  1. Объединение и минификация скриптов
  2. Объединение и минификация стилей
  3. Сжатие png-изображений
  4. Создание спрайтов из всех изображений (с возможностью удобного использования и с поддержкой двух видов спрайтов для девайсов с разным PPI)
  5. Построение разных версий html-документов для разработки и для продакшна

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

Читать дальше →
Total votes 37: ↑31 and ↓6+25
Comments20

Пересмотренное руководство по Grunt для начинающих

Reading time6 min
Views50K
Еще в марте 2013 года я написал статью руководство по Grunt для начинающих и она стала самой посещаемой статьей на моем сайте. Я написал ее в то время, когда сам только начинал своё знакомство с Grunt, и это было скорее руководство для себя, чем для кого-то ещё. Теперь, спустя 18 месяцев, я почувствовал, что пришло время пересмотреть как я использую Grunt потому что сейчас я знаю гораздо больше, чем в то время.

Если вам не терпится просто увидеть код, то весь он есть на Github.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments16

Java-конференция Joker 2014 глазами докладчика из Сибири

Reading time4 min
Views15K
Недавно в Санкт-Петербурге прошла Java — конференция Joker 2014. На мой взгляд, самая технически насыщенная и масштабная из всех подобных в России.

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



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

Казалось бы, после принятия заявки я как обычно смогу дудеть в дуду и ничего не делать, ваять потихоньку презентацию. Но не тут-то было! Мне пришлось пройти строгое предпрослушивание и пару тренингов, перед тем как сдать окончательный вариант доклада организаторам. Имейте это ввиду, когда сами будете посылать заявки этой команде маньяков!
Читать дальше →
Total votes 43: ↑28 and ↓15+13
Comments7

Контроль исправности сервера под управлением гипервизора VMware vSphere ESXi v5

Reading time2 min
Views62K
Встала необходимость организовать мониторинг исправной работы контроллеров семейства LSI MegaRAID на серверах, работающих под управлением гипервизора VMware vSphere ESXi v5.5. И соответственно автоматически получать уведомления при наличии какого-либо сбоя, например отказе одного из HDD. В процессе проработки оказалось, что найденное решение не ограничивается только хранилищами данных гипервизора.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments15

Бесплатный Code signing для Open Source от Certum

Reading time3 min
Views29K
Запустив сегодня программу, описанную в статье, я увидел следующее предупреждение:


Бросается в глаза необычный префикс, Open source developer. Кроме того, несколько дней назад я уже видел точно такой же префикс, с другим именем. Напрашивается вывод, что, скорее всего, существует какая-то программа выдачи подобных сертификатов.

Несложный поиск показал следующее:
Что именно?
Total votes 29: ↑28 and ↓1+27
Comments19

HP Vertica, первый запущенный проект в РФ, опыт полтора года реальной эксплуатации

Reading time17 min
Views35K

В качестве вступительного слова


На Хабре и других источниках уже было описание HP Vertica, но, в основном, вся информация сводилась к теории. До недавнего времени в реальной промышленной эксплуатации Vertica использовалась (так как мы называем ее Вертика, предлагаю назначить женский род) в Штатах и немного в Европе, на Хабре же о ней писали ребята с LifeStreet Media. Уже прошло полтора года работы с Vertica, наше хранилище данных содержит десятки терабайт данных. В минуту сервер данных обрабатывает тысячи запросов, многие из которых содержат десятки миллиардов записей. Загрузка данных идет не переставая в реалтайме объемами порядка 150 гб в сутки … В общем я подумал, что стоит восполнить пробел и поделиться ощущениями от езды на реально современных новых технологиях под BigData.

Кому это будет полезно


Думаю, это будет полезно для разработчиков, архитекторов и интеграторов, которые сталкиваются с задачами хранения и аналитической обработки больших данных по объему, содержанию и сложности анализа. Тем более, у Vertica сейчас наконец то есть вменяемая бесплатная полноценная версия Community Edition. Она позволяет развернуть кластер из 3 серверов и загрузить в хранилище данных до 1 тб сырых данных. С учетом производительности и легкости развертывания решений на Vertica, считаю это предложение достойным для того, чтобы его рассмотреть при выборе хранилища данных для компаний, у которых объем данных впишется в 1 тб.

В один абзац о том, как мы выбирали


Кратко без повода к холивару:
При выборе сервера хранилищ данных нас интересовали принципы ценообразования, высокая производительность и масштабируемость работы с большими объемами данных, возможность загрузки данных в реалтайм с множества разных источников данных, легкость стартапа проекта своими силами и минимальная стоимость сопровождения: в итоге по всем этим показателям лучше всего для нас выступила Vertica, победив IBM Netezza и EMC GreenPlum. Последние не смогли полностью удовлетворить всем нашим требованиям. Это могло вылиться в дополнительные издержки на разработку и сопровождение нашего проекта, имеющего не сильно большой бюджет.

Как выглядит Verica с точки зрения архитектора


Архитектор — это самый важный для хранилища данных человек в Vertica. Именно в первую очередь от него зависит успешность и производительность функционирования хранилища данных. У архитектора две сложных задачи: грамотно подобрать техническую начинку кластера Vertica и правильно спроектировать физическую модель базы данных.

На что влияет техническая архитектура
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments9

JBOSS 4.2.3 Manual

Reading time12 min
Views86K
Копаясь в своих старых записях совершенно случайно наткнулся на документ JBOSS 4.2.3 Manual, написанный мной (а по сути скомпилированный из разных источников) несколько лет назад. И чтобы не пропадать добру, решил немного поделиться знаниями с уважаемым Хабрасообществом.
Если вы являетесь специалистом с опытом более года — скорее всего ничего нового для себя не найдете и можете сразу проходить мимо, дабы не тратить свое время. Статья же может быть полезна следующим людям:
  • студентам, начинающим свой путь в IT карьере по Java направлению
  • java junior разработчикам
  • junior инженерам внедрения и техподдержки
  • junior deploy и build инжеренам

Понятно, что версия JBoss 4.2.3 достаточно древняя (сейчас актуален 8-ой JBoss, который по сути уже и не «Jboss»), но считаю, что она все еще может быть полезна, учитывая наличие большого количества старого унаследованного java-кода и приложений в жестоком интерпрайз секторе, которые все же необходимо иногда поддерживать.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments20

Raspberry Pi — что можно сделать на основе «малинки»?

Reading time3 min
Views353K


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

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

Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments38

Опыт работы SAP-консультантом в Австрии или где ИТ-шнику жить хорошо

Reading time5 min
Views90K
Благодаря открывшейся в июле 2011 года программы иммиграции для высококвалифицированных специалистов в Австрию, я смогла попытать свой шанс и изменить жизнь к лучшему.

Жизнь SAP — консультанта в России


Что привык видеть ежедневно обычный российский SAP консультант? Переработки, нервы начальника или клиента, постоянно недовольные пользователи. Консультанту приходится поздно приходить домой, если не жить в отеле какого-нить далекого северного города. Один питерский SAP консультант как-то заметил: «Нормально — это когда просыпаешься ночью в поезде и уже не помнишь, куда ты едешь — в Питер или в Москву». Да, за все это хорошо платят, как считают не SAP-консультанты. Но не больше, чем профессиональному разработчику, с той лишь разницей, что в SAP можно прийти из бизнеса, или, например, поработав секретаршей где-то в офисе, где в «соседней двери» внедряли SAP. Хотя есть в России и хорошие компании, где здоровый коллектив, хорошо и уютно, кормят, и домой после 18 отпускают. Но их мало, и чаще они зарубежные.
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments60

IBM System/360 — История о провале, не оказавшимся таковым

Reading time4 min
Views39K
Я продолжаю мой цикл статей про IBM System/360 (первая часть о системе «в целом», вторая часть про архитектуру). Не затронутыми осталось несколько интересных тем, и первая из них — это операционные системы System/360, особенно исторический аспект их развития.

До начала 60-х годов, «мощные» и «бюджетные» решения IBM были несовместимы. Перенос программ был затруднен, а порою и совсем невозможен. Это обуславливалось многими причинами, начиная с разницы в операционных системах, и заканчивая различиями периферии. То, что сейчас кажется само собой очевидным — совместимость различных программных и аппаратных компонентов, тогда было совсем не обязательным. Именно в ходе разработки System/360 инженеры компании решили, что такой подход сильно удорожает разработку и дальнейшее сопровождение, и решили стандартизировать новую систему, упростив портирование программ и сопровождение ЭВМ.

Изначально планировалось поставлять компьютеры System/360 с новой операционной системой с пакетной обработкой заданий. Проще говоря, каждая программа, которую надо запустить, описывается в виде «пакета» — самой программы и набора входных данных. Эти пакеты обрабатываются последовательно в зависимости от приоритета и наличия ресурсов. Такой подход позволял уменьшить человеческое участие в планировании работы мейнфрейма и оптимизировать его загрузку, снижая таким образом накладные расходы. Операционная система должна была называться OS/360.

Разработчики этой ОС поставили перед собой невероятно амбициозные задачи, которые не решались до этого. Данная операционная система должна была обеспечить поддержку «многопрограммности». С медленной периферией исполнение только одной программы за раз приводило к частым простоям, когда система ждала каких-то данных с внешнего устройства. Поэтому использовался подход, схожий с современным асинхронным программированием. В память загружалось несколько программ и первая из них запускалась на выполнение. При необходимости долгого ожидания, контекст текущей программы сохранялся, и управление передавалось следующей, которая могла работать, пока первая ждала данные. Операционная система в этом случае должна была держать все под постоянным контролем, защищая загруженные программы от сбоев других программ, и контролируя доступ к ресурсам. Все это усложнялось отсутствием концепции виртуальной памяти. Операционная система должна была работать на всех моделях линейки, поэтому конфигурации разнились от 16 КБ ОЗУ и до 1 МБ, а скорость работы — от нескольких тысяч операций в секунду, до полумиллиона. Так же операционная система должна была удовлетворять потребности всех программ, начиная со сложных математических расчётов, почти не использовавших внешние накопители, и заканчивая простыми аналогами СУБД, которые полностью строились на операциях ввода-вывода.



Как видите, планы были амбициозными, но поджимало время. Аппаратная часть была готова поступить в продажу, конкуренты атаковали сегменты рынка, в которых IBM была наиболее уязвима, а стабильная и надежная версия OS/360 никак не рождалась.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments9

Умные часы Sony Smartwatch 2 SW2

Reading time6 min
Views113K
Несмотря на то, что сейчас наручные часы рассматриваются больше как украшение, а не как прибор для измерения времени, я, скорее, выйду из дома без мобильного телефона, чем без часов. Привык я к ним. К часам у меня требования небольшие — аналоговый циферблат, отображение даты, водонепроницаемость (чтобы руки можно было помыть), подсветка. Приятный, но не обязательный бонус — цифровой циферблат.

OLYMPUS DIGITAL CAMERA

До недавнего времени у меня были недорогие Casio, который, в принципе, устраивали всем. Имелся только один недостаток — спешили. Где-то на минуту в месяц. Если отставали, то это раздражало бы не так сильно — время от времени переводить на минуту вперёд несложно. А вот чтобы перевести на минуту назад, аналоговые часы надо было отмотать на 11 часов 59 минут вперёд — назад стрелки не двигались. Так что возникла мысль купить часы с синхронизацией времени.
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments70

Вам календарик 2014

Reading time1 min
Views97K
В этом году мой брат anatoly_rr не смог выложить новую версию своего календарика. Чтобы не нарушать традицию взял на себя ответственность и выложил за него:



Добрые традиции — это здорово! Календарик!
Читать дальше →
Total votes 164: ↑148 and ↓16+132
Comments31

Распознавание маркера дополненной реальности

Reading time5 min
Views50K

О дополненной реальности(Augumented reality, AR) написано много статей. На хабре есть целый раздел посвящённый этому направлению. Если коротко, то существуют два принципиальных подхода для создания дополненной реальности: с использованием заранее приготовленного маркера(ещё), который нужно распечатывать и без такого. Оба подхода используя алгоритмы “компьютерного зрения” распознают объекты в кадре и дополняют их.
Данная статья посвящена алгоритмам распознавания при создании дополнительной реальности с заранее приготовленным маркером.
Читать дальше →
Total votes 89: ↑84 and ↓5+79
Comments37

dSort — раскладываем все по полочкам

Reading time2 min
Views78K

Доброго времени суток, Хабравчане! В этой статье я хочу рассказать о небольшой Windows утилите, написанной мной, которая может пригодится для разбора завалов на рабочем столе. Все подробности – под катом.
Читать дальше →
Total votes 66: ↑56 and ↓10+46
Comments77

Mini-Desktop своими руками

Reading time5 min
Views278K
Update: Версия 2.0 здесь.

Немного лирики:


Лет пять назад у меня появилась мечта самому сделать домашний мини сервер. Изучив существующие на то время железки, я остановил свой выбор на материнской плате Intel D945GSEJT с процессором Atom N270. Корпуса, которые были в продаже для этой материнской платы мне совершенно не понравились, по этому я привинтил все это дело к картонке вместе с жестким диском, поставил Хакинтош и повесил за шкаф. Все это дело провисело пару лет, интенсивно качая и раздавая файлы и интернет по всей квартире.
Все бы хорошо, но быстродействия этого агрегата хватало только на дать и взять, никакой речи о проигрывании, или конвертировании HD видео, или помощи при тонировании 3D графики речи быть не могло. А хотелось бы.
Мысль сделать домашний мощный-мини-сервер заела меня окончательно в начале этого года. Просто спать по ночам не мог. И что бы избавиться от этой навязчивой идеи было решено:
1. Сделать не так как у всех
2. Сделать самый маленький Desktop из ныне существующих
3. Сделать проект не индивидуальным, а с учетом промышленных стандартов, а так же с обоснованием адекватной стоимости дальнейшего серийного производства.
Читать дальше →
Total votes 156: ↑149 and ↓7+142
Comments163

Вышла программа f.lux 3 с режимом кино и температурой 2700 K

Reading time1 min
Views83K
Автор программы f.lux выпустил новую версию f.lux 3 (бета). Это очень полезная программа для тех, кто часто работает за монитором при искусственном освещении, то есть вечером и ночью.



Программа изменяет цветовой профиль монитора, в зависимости от времени суток. Ночью устанавливаеются тёплые цветовые тона (2700 K), которые соответствуют искусственному освещению в квартире, днём — холодные (6500 K), соответствующие дневному свету.
Читать дальше →
Total votes 50: ↑43 and ↓7+36
Comments52

Смысл и качество жизни программиста

Reading time5 min
Views11K
Прочтение текста вынудит решать новые задачи. У Вас есть право на незнание. Не читайте далее если Вас сейчас все устраивает.
Цель статьи показать, что есть люди с особым мышлением и психикой, что эти свойства определяют специфичные задачи и только положительное решение задач позволяет быть в гармонии с обществом, психологическом здравии и ощущении счастья.
Если кратко – что надо делать программисту, чтобы быть здоровым и счастливым.
Читать дальше →
Total votes 53: ↑23 and ↓30-7
Comments35

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Python
High-loaded systems
PostgreSQL
Development management
Kubernetes
Google Cloud Platform