Публикации

сегодня в 13:20

Numpy и многопроцессорность из песочницы

Сейчас уже многие используют библиотеку numpy в своих python-программах, поскольку она заметно ускоряет работу с данными и выполнение математических операций. Однако во многих случаях numpy работает в разы медленнее, чем она может… потому что использует только один процессор, хотя могла бы использовать все, что у вас есть.
сегодня в 13:21

Сравнить несравнимое: json в PostgreSQL vs Mysql vs Mongodb перевод

As such, there’s really no “standard” benchmark that will inform you about the best technology to use for your application. Only your requirements, your data, and your infrastructure can tell you what you need to know.

Для начала немного философии. NoSql окружает и от этого никуда не убежать (хотя не очень то и хотелось). Оставим вопросы о глубинных причинах за рамками данного текста, отметим лишь, что этот тренд отражается не только в появлении новых NoSql решений и развитии старых. Еще одна грань — смешение противоположностей, а именно поддержка хранения schema-less данных в традиционных реляционных базах. В этой серой области на стыке реляционной модели хранения данных и всего остального кроется головокружительное количество возможностей. Но, как и всегда, нужно уметь найти баланс, который подходит именно для ваших данных. Это бывает трудно, в первую очередь из-за того, что приходится сравнивать мало сравнимые вещи, например, производительность NoSql решения с традиционной базой данных. В этой небольшой заметке будет предложена такая попытка и приведено сравнение производительности работы с jsonb в PostgreSQL с json в Mysql и с bson в Mongodb.
сегодня в 13:56

Почему важно не выдавать пользователям простой пароль из песочницы

В начале года во всех (ну почти) школах Москвы ввели новый электронный дневник. Его использование было обязательно. Разработчиком этого «великолепного» творения был Департамент ИТ города Москвы. Хоть и красивый дизайн, который доступен пользователям Chrome, внушал, что журнал хорош, на деле было наоборот. Фронтенд был написан на Angular, который, используя API дневника, получал все пользовательские данные. Из-за большой нагрузки со всех школ Москвы или плохой оптимизации, скорость работы дневника была низкой и иногда он даже не был доступен. Учителя жаловались о том, что оценки не выставляются и домашнее задание не сохраняется. Ученики и их родители были не довольны кривым отображением расписания и сообщений от учителей. По поводу отсутствия кроссбраузерности и поддержки мобильных девайсов на фоне всего не очень сильно переживали. Также кроме багов и медленной скорости работы была и «особенность».
сегодня в 09:24

Компания Adobe выпустила экстренный патч для исправления критических уязвимостей Flash Player



В понедельник 28 декабря компания Adobe выпустила экстренное обновление безопасности, закрывающее 19 уязвимостей в продукте Flash Player. Обнаруженные ошибки безопасности могут быть использованы злоумышленниками для исполнения вредоносного кода на компьютере жертвы, получая над ним полный контроль. В зоне риска находятся пользователи Flash Player для всех существующих ОС.
сегодня в 10:46

Видео лучших докладов Java-конференции JPoint 2015 — Часть 1

image

Год подходит к концу, впереди длинные каникулы. Для многих каникулы — это отличная возможность посидеть и посмотреть вокруг, что же у нас нового и интересного происходит нынче в профессиональном джавовском мире.

В апреле в Москве мы провели в Москве большую Java-конференцию — JPoint 2015. Конференция собрала более тысячи разработчиков на площадке, еще несколько сотен — смотрели конференцию онлайн. Мы экспериментировали и с открытием (лекция Дмитрия Галкина о современном искусстве и программировании действительно шокировала многих) и с новыми форматами (круглые столы и экспертные дискуссии). Но ключевой темой конференции были и остаются доклады.

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



10 место


Сергей Куксенко, Oracle — Железные счётчики на страже производительности
Средняя оценка: 4.28



Этот доклад получил специальный приз жюри в номинации «аццкий хардкор». Общая идея доклада сводится к следующему: представьте, что вы уже наоптимизировали в своем приложении все, что можно — посмотрели на сеть, ОС, JVM и т.д. и поняли, что все уперлось в процессор. После этого мы попрофилировали, работать стало быстрее, но все равно процессор загружен на 100%. Что делать?

Оказывается, внутри процессора есть разные счетчики событий. Называется этот механизм Hardware Performance Counters. Архитектура современных процессоров очень сложна, в них может происходить очень много разного. Фокус в том, что мы можем включить некоторые счетчики внутри процессора, которые будут считать количество произошедших событий. То есть, некоторый железный профилировщик внутри процессора.

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



В этом году Сергей снова прилетит к нам в Москву — правда уже не из Питера, а из Калифорнии. С темой он определится в январе. Скорее всего это будет снова что-то про оптимизацию производительности.
Реклама
сегодня в 11:34

Пример реализации методов обработки и распознавания изображений на Android из песочницы

Занимаясь разработкой приложений под ОС Android возникают интересные идеи, которые хочется попробовать, либо есть какой-то набор теоретических знаний и их хочется применить на практике, из совокупности этих факторов и возникла идея описываемого проекта.

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

Пример реализации представлен в виде Android приложения, а исходным изображением является скриншот текста, с введенным ключевым словом, для решения задачи применяются различные алгоритмы обработки и распознавания изображений.
сегодня в 11:43

Больше чем Го

Бросая в воду камешки, смотри на круги, ими образуемые;
иначе такое бросание будет пустою забавою.


                      Козьма Прутков "Плоды раздумья
 

Эта игра — самый настоящий долгострой. Я начал работать над ней ещё в июне! Нельзя сказать, чтобы я каждый день надрывался, но крови она мне попортила немало. На сегодняшний день, это мой самый сложный проект в Axiom. По объёму (весьма нетривиального) кода, MarGo сопоставима, разве что, с Ритмомахией.

Что особенного в этой игре? Стоило ли из за неё так мучиться? Я расскажу, а вы сами судите.
сегодня в 13:00

Printf Oriented Programming из песочницы



Intro


К своему удивлению не нашел статей на хабре по этой теме и этой статьей я хотел бы исправить положение дел. В ней я постараюсь максимально доходчиво рассказать со стороны атакующего о Format String Attacks, однако с некоторыми упрощениями. На практике они достаточно просто разрешаются, но не очень хочется на них зацикливаться. Кроме того, самых стойких, долиставших до конца, помимо бесценных знаний ждет небольшой бонус.
сегодня в 13:22

Как создать убедительную механику смерти и не облажаться перевод

Играм, в которых нельзя умереть (или, если угодно, проиграть), недостает глубины. Если проиграть невозможно, зачем пытаться выиграть? Иначе говоря, если вы не боитесь поражения, стремление к победе теряет всякий смысл. Однако после смерти персонажа игроку необязательно кусать локти и переигрывать все по новой. Механику смерти можно интегрировать в сюжет или геймплей, но главное – сделать это правильно.


сегодня в 11:31

Ищем ошибки в MonoDevelop


В жизни анализатора PVS-Studio состоялось важное событие — в последней версии была добавлена возможность проверки кода, написанного на C#. Являясь одним из разработчиков данного анализатора, я просто не мог пройти мимо, не проверив какой-нибудь проект. Понятно, что мало кому будет интересно читать про проверку маленьких и неизвестных проектов, поэтому нужно было выбрать что-то известное, и выбор пал на MonoDevelop.

Интересные публикации

Вакансии

Заказы