Обновить
181
0
Алексей@Scratch

Системный архитектор, криптоманьяк

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

Home Screen-хамелеон для Android

Время на прочтение1 мин
Охват и читатели5.8K


Chameleon, альтернатива домашнему экрану для Android 3.2 / 4.0, изменяется в зависимости от текущего времени суток, wifi-сети поблизости и от текущего местоположения пользователя.
Читать дальше →

Что такое Hi10P?

Время на прочтение7 мин
Охват и читатели119K
В сущности, Hi10P всего навсего профиль известного стандарта H.264, который использует 10 бит для передачи цвета, тем самым уменьшая сегментацию изображения (например, досаждающие многим ступенчатые градиенты) и уменьшая общий вес файла. Если не углубляться в детали, то достаточно сказать, что применение данного профиля это большой шаг вперёд. Данный текст ставит своей целью помочь людям в выборе проигрывателя способного корректно воспроизводить Hi10P видео.
В оригинальной статье есть некоторые изменения, посему данный перевод можно считать устаревшим, тем не менее инструкция остаётся работоспособной.
Читать дальше →

Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

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

И что же них такого деформированного?

Как я выиграл суд с EMS Почта России

Время на прочтение10 мин
Охват и читатели205K
Как я выиграл суд с EMS.
Итак, как было обещано в вопросе habrahabr.ru/qa/19545, я публикую свой опыт по подаче иска к «EMS – Почта России», который завершился положительно для меня. Впрочем, обо всем по порядку.
Big Update — сегодня, 6.03.2013 получил деньги. Кафкианский процесс завершен. Ура!
Читать дальше →

Потокобезопасные события в C# или Джон Скит против Джеффри Рихтера

Время на прочтение11 мин
Охват и читатели71K


Готовился я как-то к собеседованию по C# и среди прочего нашел вопрос примерно следующего содержания:
«Как организовать потокобезопасный вызов события в C# с учетом того, что большое количество потоков постоянно подписываются на событие и отписываются от него?»


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

Особо внимательный читатель сможет найти в статье два комикса в стиле xkcd.
(Осторожно, внутри две картинки примерно по 300-400 кб)
Читать дальше →

UDP и C# Reactive Extensions

Время на прочтение4 мин
Охват и читатели23K
Недавно прочитал пост о UDP и C# async/await, в котором описание решения несложной задачи по опросу устройств по UDP одним клиентом. Решение задачи с помощью async\await действительно сокращает объем кода, по сравнению с ручной реализацией асинхронных вызовов. С другой стороны создает много проблем с синхронизацией задач, конкурентным доступом к данным и обработкой исключений. Полученное решение очень подвержено ошибкам. Первоначальная версия автора содержала ошибки неосвобождения ресурсов.

Можно ли сделать проще и надежнее?
Читать дальше →

Двухпанельный веб-файл менеджер Cloud Commander

Время на прочтение9 мин
Охват и читатели64K
Файловых менеджеров много, но есть один, о котором, думаю, будет многим интересно узнать. Ведь он двухпанельный, работает в браузере, оснащён редактором (с подсветкой синтаксиса) и консолью, состоит из клиента и сервера, а написан на JavaScript/Node.js.



Читать дальше

3 самые плохие вещи, которые можно сделать с помощью Linq to Database

Время на прочтение3 мин
Охват и читатели41K
Дисклеймер: Под Linq to Database здесь и далее понимаем самые распространенные .NET библиотеки для доступа к реляционным СУБД с использованием Linq запросов. Такие как Linq2SQL, Entity Framework, NHibername, Linq2db и подобные
С момента появления IQueryable провайдеров для доступа к базам данных писать запросы стало гораздо легче. С одной стороны это хорошо, потому что приложения стало делать гораздо легче. С другой стороны качество запросов сильно упало. И дело не в том, что провайдеры генерируют плохой SQL, а в том, что люди пишут запросы, не понимая как оно работает под капотом. Для многих C# программистов IQueryable является магией, и появляется естественное желание уменьшить влияние магии на приложения, изолировать магию от остального кода. Такой подход не только не исправляет ситуацию, а усугубляет её…
Читать дальше →

Когда AES(☢) = ☠ — криптобинарный фокус

Время на прочтение2 мин
Охват и читатели36K


Специалиста по реверс-инжинирингу Анжа Альбертини (Ange Albertini) из компании Corkami в шутку спросили: можно ли сгенерировать картинку JPEG, которая после обработки шифром AES опять превратится в валидный JPEG. Анж принял вызов, а по результатам исследования опубликовал презентацию с объяснением, как это делается с разными форматами.
Читать дальше →

Команда разработчиков из ЦЕРН запустила защищённый анонимный почтовый сервис ProtonMail

Время на прочтение2 мин
Охват и читатели84K


Несколько сотрудников Европейской лаборатории по ядерным исследованиям (ЦЕРН) разработали почтовый сервис ProtonMail, который претендует на то, чтобы стать одним из самых защищённых — всё содержимое почтовых ящиков шифруется на стороне клиента, а серверы ProtonMail расположены в Швейцарии, которая славится своими законами о защите персональных данных. Создатели сервиса утверждают, что ProtonMail способен и превзойти по защищённости недавно закрывшийся Lavabit, которым пользовался среди прочих и Эдвард Сноуден.

ProtonMail успел занять несколько призовых мест на конкурсах стартапов, а 15 мая началось открытое бета-тестирование. Правда количество желающих попробовать сервис оказалось настолько большим, что серверы не выдержали нагрузки и сейчас временно введён режим регистрации по инвайтам. Как только команда проекта нарастит мощности, регистрация вновь станет открытой. Монетизировать ProtonMail предполагается по модели Freemium. Создатели обещают, что минимальный набор услуг будет бесплатным всегда.
Читать дальше →

Кодирование бинарных данных в строку с алфавитом произвольной длины (BaseN)

Время на прочтение5 мин
Охват и читатели20K
Всем хорошо известен алгоритм преобразования массива байт в строку base64. Существует большое количество разновидностей данного алгоритма с различными алфавитами, с хвостовыми символами и без. Есть модификации алгоритма, в котором длина алфавита равна другим степеням двойки, например 32, 16. Однако существуют и более интересные модификации, в которых длина алфавита не кратна степени двойки, такими являются алгоритмы base85, base91. Однако мне не попадался алгоритм, в котором алфавит мог бы быть произвольным, в том числе большей длины, чем 256. Задача показалась мне интересной, и я решил ее реализовать.

Сразу выкладываю ссылку на исходники и демо на js. Хотя и разработанный алгоритм имеет скорее теоретическое значение, я посчитал нужным описать детали его реализации. Практически его можно использовать, например, для случаев, когда меньшая длина строки актуальней, чем ее размер в байтах (например, в квайнах).
Детали реализации

Гармонические колебания

Время на прочтение10 мин
Охват и читатели287K
На хабре было несколько статей по преобразованию Фурье и о всяких красивостях типа Цифровой Обработки Сигналов (ЦОС), но неискушённому пользователю совершенно не понятно, зачем всё это нужно и где, а главное как это применить.


АЧХ шума.

Лично мне после прочтения этих статей (например, этой ) не стало понятно, что это и зачем оно нужно в реальной жизни, хотя было интересно и красиво.
Хочется не просто поглядеть красивые картинки, а так сказать, ощутить нутром, что и как работает. И я приведу конкретный пример с генерацией и обработкой звуковых файлов. Можно будет и послушать звук, и поглядеть его спектр, и понять, почему это так.
Статья не будет интересна тем, кто владеет теорией функций комплексной переменной, ЦОС и прочими страшными темами. Она скорее для любопытствующих, школьников, студентов и им сочувствующих :).
Читать дальше →

MongoDB от теории к практике. Руководство по установке кластера mongoDB

Время на прочтение9 мин
Охват и читатели93K
     Доброго времени суток, уважаемые читатели. В этом посте я хотел бы описать несколько примеров развертки mongoDB, отличия между ними, принципы их работы. Однако больше всего хотелось бы поделиться с вами практическом опытом шардирования mongoDB. Если бы этот пост имел план, он бы выглядел скорее всего так:

  1. Вступление. Кратко о масштабировании
  2. Некоторые примеры развертки mongoDB и их описание
  3. Шардинг mongoDB

    Пункты 1 и 2 — теоретические, а номер 3 претендует на практическое руководство по поднятию кластера mongoDB и больше всего подойдет тем, кто столкнулся с этим в первый раз.
Читать дальше →

TOX: Что произошло в проекте за полгода

Время на прочтение4 мин
Охват и читатели63K


Многие наверно уже слышали о Tox — это мессенджер, который должен заменить Skype, предоставив такой же функционал, как и его проприетарный аналог, подарив такие полезные вещи, как: Шифрования всего и вся, отсутствие слежки, отсутствие рекламы, децентрализация.

Может показаться, что проект умер развивается слишком медленно, но на самом деле, у него под капотом (в ядре) произошли огромные изменения которые стоит осветить.
Читать дальше →

Высоконагруженные системы: решение основных проблем

Время на прочтение7 мин
Охват и читатели57K
Привет, Хабр!

Сегодня я хочу рассказать о некоторых решениях проблем, которые возникают во время использования высоконагруженных систем. Все, о чем пойдет речь в этом материале, проверено на собственном опыте: я – Social Games Server Team Lead в компании Plarium, которая занимается разработкой социальных, мобильных, браузерных игр.

Для начала немного статистики. Plarium занимается разработкой игр с 2009 года. На данный момент наши проекты запущены во всех наиболее популярных социальных сетях («Вконтакте», «Мой мир», «Одноклассники», Facebook), несколько игр интегрированы в крупные игровые порталы: games.mail.ru, Kabam. Отдельно существует браузерная и мобильная (iOS) версии стратегии «Правила войны». В базах числятся более 80 миллионов пользователей (5 игр, локализация на 7 языках, 3 миллиона уникальных игроков в день), в итоге все наши серверы получают в среднем около 6500 запросов в секунду и 561 миллион запросов в сутки.

В качестве аппаратной платформы на боевых серверах в основном используются два серверных CPU с 4 ядрами (x2 HT), 32-64 GB RAM, 1-2 TB HDD. Серверы работают на базе Windows Server 2008 R2. Контент раздается через CDN с пропускной способностью до 5 Gbps.
Разработка ведется под .NET Framework 4.5 на языке программирования C#.

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

Все самое интересное - под катом

Дифференциальный криптоанализ для чайников

Время на прочтение9 мин
Охват и читатели48K
image

Шифр FEAL обладает таким же уровнем стойкости что и DES. Более того, увеличенная длина ключа (64 бита по сравнению с 56 битами в DES) затрудняет возможность перебора. Шифр FEAL обладает хорошим распределением шифротекстов, близким к случайному. И это тоже говорит в пользу FEAL по сравнению с DES.
Это краткое содержание спецификации алгоритма шифрования FEAL, опубликованного в 1987 году.

Ничто не вечно под луной. В данном топике я расскажу как при наличии всего 40 пар открытых-закрытых текстов получить полный ключ FEAL4 за несколько минут.
Читать дальше →

Проблема 10 миллионов соединений

Время на прочтение1 мин
Охват и читатели26K
Несколько дней назад Роберт Грэм начал работу над серией статей C10M и планирует закончить работу в июле этого года.

Сегодня уже доступны следующие главы:
Читать дальше →

Использование async и await в C# — лучшие практики

Время на прочтение8 мин
Охват и читатели229K

Ключевые слова async и await, введённые в C# 5.0, значительно упрощают асинхронное программирование. Они также скрывают за собой некоторые сложности, которые, если вы потеряете бдительность, могут добавить проблем в ваш код. Описанные ниже практики пригодятся вам, если вы создаёте асинхронный код для .NET приложений.
Читать дальше →

Лекции от Яндекса для тех, кто хочет провести каникулы с пользой. Дискретный анализ и теория вероятностей

Время на прочтение3 мин
Охват и читатели145K
Для тех, кому одного курса на праздники мало и кто хочет больше, продолжаем нашу серию курсов от Школы анализа данных Яндекса. Сегодня подошла очередь курса «Дискретный анализ и теория вероятностей» – даже более фундаментального, чем предыдущий. Но без него нельзя представить ещё большую часть современной обработки данных.

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



Читает курс Андрей Райгородский. Доктор физико-математических наук. Профессор кафедры математической статистики и случайных процессов механико-математического факультета МГУ им. М. В. Ломоносова. Заведующий кафедрой Дискретной математики ФИВТ МФТИ. Профессор и научный руководитель бакалавриата кафедры «Анализ данных» факультета инноваций и высоких технологий МФТИ. Руководитель отдела теоретических и прикладных исследований компании «Яндекс». (Ещё больше можно узнать в статье о нём на Википедии).

Содержание курса и тезисы лекций

Хитрые задачи по Java

Время на прочтение7 мин
Охват и читатели118K
Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.

В замечательной статье Знаешь ли ты JAVA, %username% и её второй части автор тоже поделился опытом после подготовки. Однако я пришёл к выводу, что могу добавить что-то своё. Так и зародилась эта статья.

Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность