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

Разработчик

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

Nginx + Lua + Redis. Эффективно обрабатываем сессию и отдаем данные

Время на прочтение6 мин
Количество просмотров37K
image
Предположим, у вас есть данные, которые вы хотите кэшировать и отдавать, не используя тяжелые языки, как php, при этом проверяя, что пользователь аутентифицирован и имеет право на доступ к данным. Сегодня я расскажу, как, используя связку nginx lua redis, выполнить эту задачу, снять нагрузку с сервера и увеличить скорость отдачи информации сервером в десятки раз.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии12

Freenote – набор из 500 иконок для Keynote

Время на прочтение1 мин
Количество просмотров14K
image
Как вы пользуетесь иконками в keynote? Мало кто может похвастаться тем, что делает это без труда: иконки приходится либо качать в картинках и нудно обтравливать, либо можно скачать PNG (цвет которых невозможно поменять, и которые нельзя нормально отмасштабировать). Ну либо можно совсем заморочиться и при помощи специальных программ перегонять иконки по одной в закрытый векторный формат Keynote.

Нам неизвестно, когда создатель keynote добавят в программу набор хотя бы минимальных форм, поэтому мы все сделали сами. Отобрали более 500 иконок, перегнали их в векторный формат, отсортировали по категориям, собрали в удобную презентацию, которую вы сможете использовать каждый день.

Страница проекта >

Скачать freenote можно тут.

Спасибо за внимание!
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Топ-10 статей по User eXperience для начинающих, чтобы за час понять, что это такое

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


Моя стратегия разобраться в какой-либо теме — пару часов почитать Хабр. Я решил сэкономить немного времени таких же, как и я, и сделал небольшую подборку полезных и интересных материалов на тему UX. Сразу предупрежу, что получить профессиональный level up с помощью них не получится (для этого есть оффлайновые курсы), но вот вникнуть в тему и получить инсайты — запросто. И да, если есть, поделитесь ссылками на материалы, которые были для вас максимально полезными в свое время.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии3

Как я мониторил Avito по SMS

Время на прочтение8 мин
Количество просмотров62K
Как известно, на «Авито» периодически появляются товары очень хорошего качества и при этом очень дешевые. Но появляются они редко, висят там мало и исчезают быстро.

Поэтому возникла у меня идея: а не поискать ли сервис, который раз в несколько минут проверяет объявления, и если появилось что-то интересное для меня — оповещает об этом? При этом оповещать лучше всего по смс, а то почту я не всегда проверяю оперативно.

Гуглинг выдал несколько таких сервисов, «всего» от 3 руб за смс или от 4 руб в сутки.

В итоге, я решил написать такой сервис самостоятельно, но об этом дальше…
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии67

Безопасное криптопрограммирование. Часть 1

Время на прочтение5 мин
Количество просмотров26K
В данном посте мы бы хотели познакомить пользователей Хабра с базовыми правилами программирования криптографических алгоритмов. Этот набор правил под названием «Стандарт криптографического программирования» (“Cryptography coding standard”) был создан в 2013 году по инициативе одного из гуру современной криптографии Жана-Филиппа Омассона. Несмотря на то, что описанные в нем подходы хорошо известны тем, кто профессионально занимается разработкой систем защиты, новичкам и студентам, думаем, будет интересно ознакомиться с предлагаемым текстом, являющимся переводом набора правил с сайта cryptocoding.net.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии19

Пятничный формат: Как писать код, который никто не сможет сопровождать

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


Благодаря советам экспертов в области Java вы научитесь писать код, который будет настолько сложно сопровождать, что любому, кто будет с ним работать после вас, потребуются годы, чтобы внести даже малейшие правки. Более того, если будете неизменно следовать этим правилам, вы сможете гарантировать себе пожизненное рабочее место, так как никто кроме вас не сможет разобраться в вашем коде.
Читать дальше →
Всего голосов 89: ↑74 и ↓15+59
Комментарии119

Масштабируемая библиотека сериализации/десериализации JSON

Время на прочтение15 мин
Количество просмотров19K
Не так давно я участвовал в проекте написания прошивки для некоторого устройства. В процессе работы возник вопрос, а как, собственно, взаимодействовать с «большим братом» (управляющим компьютером)? Поскольку в качестве «большого брата» закладывались совершенно разные устройства (различные смартфоны, планшеты, ноутбуки с различными ОС и прочее), планировалось использовать web-приложение, что диктовало использование JSON для обмена сообщениями.

В итоге получилась легкая и быстрая библиотека сериализации/десериализации JSON. Основные фичи данной библиотеки:

  • в базовом функционале (без использования контейнеров STL) не использует динамическую память, вообще;
  • состоит только из заголовочных файлов (headers-only);
  • есть поддержка контейнеров STL;
  • позволяет создавать расширения для обработки произвольных типов.

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

Эволюция дизайна и юзабилити мобильных приложений известных сервисов. Как улучшить свое приложение?

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


В июле 2008 года корпорация Apple анонсировала появление Apple App Store — каталога приложений для iOS. Несколько позже появился и Google Play. Изначально в каталогах было минимум программ, но спустя некоторое время количество приложений увеличилось до сотен тысяч. Теперь в App Store около полутора миллионов программ, а в Google Play и того больше — около миллиона шестисот тысяч (1,6 млн).

С течением времени изменялся дизайн приложений, причем эти изменения были (и есть) весьма значительными. Естественно, они произошли не просто так — разработчики хотели привлечь больше пользователей, удержать уже существующих, улучшив юзабилити и внешний вид программы. Давайте посмотрим, как с течением времени изменялись приложения известных сервисов и к чему могут привести такие изменения.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии1

Онлайн-трейдинг: Как стать разработчиком систем для торговли на бирже

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


Фондовый рынок — высокотехнологичная отрасль. Для того, чтобы инвестор мог не вставая с дивана купить акции той или иной компании, задействуются различные протоколы передачи финансовых данных (например, FIX, FAST, Plaza II), терминалы, брокерские и биржевые торговые системы, а для обеспечения работы всей этой экосистемы используется передовое «железо».

При этом, для того, чтобы поучаствовать в интересных проектах инженеру вовсе не обязательно ехать за границу — новые технологии активно внедряются и на российском фондовом рынке. Мы решили подробнее рассказать о двух таких проектах — торговом терминале SmartX и брокерской системе Matrix, и пригласить заинтересованных хабраюзеров принять участие в их разработке.
Читать дальше →
Всего голосов 27: ↑16 и ↓11+5
Комментарии29

ФЗ-188: кому скоро категорически нельзя будет покупать иностранное ПО, если есть российский аналог

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


Есть такой федеральный закон №188, который гласит достаточно жёсткую (хоть и логичную вещь):
  • Если вам нужно купить софт по стандартной процедуре конкурсных закупок
  • И если есть ПО, которое соответствует требованиям и при этом произведено в РФ
  • То вы не можете выбрать иностранное ПО для такой закупки.

Далее — наши оценочные суждения и прогнозы с комментариями наших же IT-юристов. В первую очередь действие закона коснётся операционных систем (у нас есть много вариантов опенсорс-Linux, завёрнутых уже в оболочку «российской разработки»), продуктов ИБ (благо с этим у нас в стране очень даже неплохо), антивирусов, а также продукции «русских» компаний вроде Parallels, Veeam и Acronis, когда их продукты войдут в реестр отечественного ПО (и если войдут, потому что права на софт во многих случаях оформлены на иностранные компании или офшор — разработчики наши, а права нет).

Сейчас этот закон касается исключительно госучреждений, но его могут распространить и на компании с долей государства, а затем (например, лет через 5 лет) — на весь рынок.

Возможно, именно поэтому госкомпании сейчас ринулись закупать софт до вступления закона в силу — «впрок».
Читать дальше →
Всего голосов 56: ↑42 и ↓14+28
Комментарии113

GammaRay — средство интроспекции Qt-приложений

Время на прочтение4 мин
Количество просмотров15K
Фреймворк Qt предоставляет неплохие средства разработки — входящая в него IDE Qt Creator включает дизайнер, отладчик, профайлер и другие удобные вещи. К сожалению, даже со всем этим иногда не очень понятно, почему приложение в данные момент выглядит так, как выглядит: чего-то не видно, что-то выглядит не так, как ожидалось, где-то неподходящий размер шрифта или неверная картинка.

Часть этих проблем может быть решена в Qt Designer, но только часть. Qt Designer имеет несколько существенных недостатков: во-первых, он неверно отображает положение Qt Quick компонентов в случае активного использования Javascript при расчете их координат и размеров, во-вторых в дизайнере мы видим состояние только «пустой» формы, без загруженных в неё данных. В общем, очень не хватает чего-то вроде инструментов разработчика в любом современном браузере: чтобы можно было посмотреть всё дерево компонентов, найти нужный, увидеть его положение относительно других, свойства, поправить на лету что-то, подобрать цвет\шрифт\размер, увидеть какие обработчики повешены на события и т.д.

И такой инструмент в мире Qt появился! Встречайте — GammaRay, средство интроспекции приложений на Qt. GammaRay понимает, что такое Qt, из чего состоит ваше Qt-приложение, как в нём взаимодействую компоненты, как они выглядят, как генерируются и обрабатываются события и т.д. Давайте посмотрим, что умеет GammaRay.


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

Release it! Проектирование и дизайн ПО для тех, кому не всё равно

Время на прочтение4 мин
Количество просмотров26K
Привет, Хаброжители!
У нас вышла книга Майкла Нейгарда

image

Неважно, каким инструментом вы пользуетесь для программной разработки — Java, .NET, или Ruby on Rails. Написание кода — это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО «защита от дурака»? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами — методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов проектирования, помогающих избежать критических ситуаций, и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в приведенных примерах на Java, которые подробно поясняются и комментируются.
Стабильность, безопасность и дружественный интерфейс — вот три важнейших слагаемых успеха вашего программного продукта. Если в ваши планы не входит в течение последующих лет отвечать на недовольные письма пользователей, выслушивать критику заказчиков и постоянно латать дыры, устраняя возникающие баги, то прежде чем выпустить финальный релиз, прочтите эту книгу.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии9

Дополненная реальность на Qt

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


Сейчас дополненная реальность – это одно из самых интересных направлений. Поэтому я и взялся за ее изучение, а результатом этого стала собственная реализация кроссплатформенной безмаркерной дополненной реальности на Qt. Речь в этой статье пойдет о том, как это было реализовано (или же как это реализовать самому). Под катом можно найти демку и ссылку на проект на гитхабе.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии12

Новая бесплатная библиотека для аналитики данных Intel® DAAL

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

Сегодня вышел в свет первый официальный релиз новой библиотеки Intel для аналитики данных — Intel Data Analytics Acceleration Library. Библиотека доступна как в составе пакетов Parallel Studio XE, так и как независимый продукт с коммерческой и бесплатной (community) лицензией. Что это за зверь и зачем она нужна? Давайте разбираться.
Читать дальше →
Всего голосов 26: ↑18 и ↓8+10
Комментарии14

Анатомия программы в памяти

Время на прочтение6 мин
Количество просмотров86K
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.

Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.

image

Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Читать дальше →
Всего голосов 62: ↑61 и ↓1+60
Комментарии24

Разработка торговых роботов: поиск рыночных неэффективностей

Время на прочтение9 мин
Количество просмотров17K
Примечание переводчика: Ранее в нашем блоге на Хабре мы рассматривали различные этапы разработки торговых систем (есть и онлайн-курсы по теме), и даже описывали разработку событийно-ориентированного бэктест-модуля на Python. Сегодня речь пойдет о том, как HFT-трейдеры в процессе разработки моделируют поведение людей, которые будут противостоять их торговым роботам на бирже.



Большинство трейдеров считает, что лучшие сделки должны совершаться при участии людей, выступающих в роли контрагентов, не при помощи компьютеров. Под компьютерами я имею в виду компьютерное исполнение ордера: не только алгоритмы высокочастотной торговли (HFT), но и некоторые другие виды алгоритмов исполнения ордеров. Высокочастотные трейдеры выходят на рынок, только когда уверены, что ордер принесет прибыль, их алгоритмы исполнения в основном работают в случае движения большого объема акций, поэтому даже если алгоритм недостаточно эффективен, он все равно может составить [человеку] опасную конкуренцию. Люди же, в свою очередь, действуют недостаточно точно при установлении цены (установление мгновенной цены с точностью до нескольких знаков после запятой – не самая лучшая трата времени для трейдера), еще более неточно – при назначении времени исполнения своих ордеров и их отмене (человеку присущи медлительность и невнимательность).
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии2

Алгоритмическая и автоматизированная торговля: 13 книг по теме

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


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

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

Читатель видит такие книги и убеждается в том, что читает про алгоритмическую торговлю, когда на самом деле ему рассказывают об автоматизированной.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии32

Principle: инструмент для прототипирования, который вы должны попробовать

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


От переводчика
Principle — приложение для Mac OS, которое позволяет в два счета создать анимацию элементов пользовательского интерфейса и сгенерировать его интерактивный прототип. Будь то многоэкранное приложение или просто придуманный вами контрол, так просто и быстро реализовать это раньше не позволял ни один сервис. Бенжамин Бергер — бета-тестер ранней версии Principle, описал свой опыт в статье на Medium, где рассказал о первых впечатлениях и привел пару наглядных примеров использования.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии10

Под капотом ПО банкомата

Время на прочтение7 мин
Количество просмотров57K
Достаточного много читал на ГТ и Хабре статей про банковские карты, банкоматы, и вот решил внести свой вклад. Ниже я попробую рассказать о том, как устроен банкомат с точки зрения программного обеспечения.

Что такое банкомат?


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

Железо банкомата


Минимальный набор банкоматного железа включает в себя:
  • картридер, для чтения карты клиента
  • пин-пад, для ввода пин-кода и прочей информации как, например, суммы платежа/снятия
  • функциональные клавиши по бокам (4+4) являются дополнением подключаемым к пин-паду. В некоторых современных банкоматах их заменили на тач-скрин.
  • диспенсер для выдачи денег
  • различные датчики, подсветка

Кто же управляет всем этим зоопарком


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

Так появился стандарт CEN/XFS либо просто XFS, что расшифровывается как eXtension For Financial Services.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии27

Выпуск фреймворка Qt 5.5

Время на прочтение2 мин
Количество просмотров30K
Вчера, после шести месяцев разработки, вышла версия 5.5 кроссплатформенного фреймворка Qt.

Qt позволяет разрабатывать приложения при помощи C++ и декларативного языка программирования QML, поддерживает все основные десктопные и мобильные платформы, а также некоторые встраиваемые и имеет открытый исходный код. Существует коммерческая версия Qt, содержащая дополнительные проприетарные модули.

По сравнению с предыдущей версией, в 5.5 было внесено около 1500 исправлений и добавлен новый функционал. За подробностями прошу под кат.


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

Информация

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