Хабрахабр:
Начало истории Почитал тут статеек ваших, решил присоединиться к вам и рассказать историю, как я боролся со спамом. Дело было в январе 2010 года. Начали приходить письма с просьбой помочь девочке для сбора крови. Ну и разослать всем по списку. Прилагался номер телефона. Набираю его в поиске. Обнаруживаю стопку сообщений, при этом текст одинаковый, а имена разные. И где-то требуется кровь, где то деньги на операцию. В общем, решил я сообщить в МВД. Зашёл на сайт, расписал, как получил сообщение, какой номер телефона, список сайтов, на которых весит объявление. Да и подзабыл это дело, как то. Написал исключительно, чтоб со спокойной душою говорить ?Они просто не хотят?, а то все говорят. И получил ответ, из которого следует, что тут как бы нет нарушения закона. Все отправляют деньги добровольно, а то что нет больного, простите, сами думайте. Вы лично деньги не отправили, поэтому не пострадали. Читать дальше →
Привет, хабражители! Грядут очередные конференции Java-разработчиков в Петербурге и Москве. Пока точные даты и места определяются, мы бы хотели заранее ?закинуть удочку? для одной из наших сессий. Для начала, о нас: мы бравые парни, по-крупному занимающиеся Java performance'ом. Мы работали в Sun Microsystems, теперь работаем в Oracle, в команде, посвящающей 100% своего времени разным перформансным штукам, в т.ч. методологиям тестирования, быстрым алгоритмам, оптимизациям в Java/C++ коде, моделям памяти, микроархитектурным изыскам на x86 и SPARC. У нас в голове есть несколько возможных тем, о которых мы бы хотели вам рассказать: и про JMM, и про concurrency, и про performance вообще ? настолько много, что хотелось бы посвятить больше времени нужным вещам. Кроме того, напрашивается встреча в формате ?вопрос-ответ?, когда и у вас будет достаточно времени для подготовки вопроса, и у нас ? для подготовки хорошего ответа. Так что, к делу: Какие у вас вопросы о производительности (Java)? Читать дальше →
Преамбула У меня дома стоит масляное отопление. Для измерения уровня масла в баке используется допотопный датчик со стрелкой и поплавком на веревке. Принцип работы датчика поражает свой неточностью. Но так как мы с вами живем в далеком будущем, по отношению к моему детству, то мне захотелось сделать датчик, который выполняет следующие условия: Датчик должен быть цифровым. Его показания должны сохранятся для последующей обработки. Данные должны быть доступны для меня всегда и везде. Все устройство должно быть дешевле 200?. Вот с такой спецификацией я и начал поиск подходящих компонентов. Выбор довольно быстро упал на платформу Arduino. Само железо устраивало меня полностью, но вот среда разработки была просто ужасна. Поэтому было принято решение перейти на Eclipse. Можно было, конечно, перейти на горячо любимую Visual Studio, но в данный момент я открываю заново для себя линукс, поэтому виндоуса нет в наличии. Сегодня, я хочу поделиться с вами о том, как настроить Eclipse для работы с Arduino Uno под Ubuntu 10.10. Читать дальше →
При проектировании доменов приложения, разрабатываемого с использованием Hibernate, разработчику необходимо сделать выбор: инициализировать ли свойства домена, соответствующие коллекциям связанных доменов, сразу (FetchType=EAGER) или же делать это только при обращении к ним (FetchType=LAZY). На самом деле в случае, когда предметная область имеет сколь-либо сложную структуру связей между объектами, выбор уже сделан ? загружать полбазы ради одного объекта, как это было бы при FetchType=EAGER, мягко говоря, неразумно. Поэтому ленивая инициализация в случае коллекций есть наиболее предпочтительная стратегия инициализации связанных объектов. Однако, не всё так просто. Ленивая инициализация реализуется за счёт создания прокси-объекта с помощью JDK Dynamic Proxy или библиотеки CGLIB. В обоих случаях проксирование соответствующих get-методов сводится к обращению к сессии Hibernate для получения необходимых данных. Последнее же в свою очередь означает, что обращение к ленивым свойствам объекта может быть осуществлено только при наличии сессии Hibernate. В противном случае, попытка получить свойство объекта приведёт к незабвенному исключению ?LazyInitializationException: could not initialize proxy ? the owning Session was closed?. Читать дальше →
Попытка (достаточно давняя) компании Apple зарегистрировать товарную марку ?App Store? была встречена в штыки корпорацией Microsoft, которая считает фразу ?app store? слишком общей и уже распространенной для многих онлайн магазинов, продающих софт; так что будет несправедливо, если многим компаниям в одночасье запретить использовать это словосочетание для описание своих сервисов. Microsoft настаивает, что слово ?app? во повсеместно используется как сокращение application, когда речь идет о программном обеспечении; не говоря уже о ?store?, обозначающее ?место, где продают товары?. Apple подала заявку на приобретение этой торговой марки еще в 2008-м, через неделю после открытия своего App Store для iPhone. Сообщается, что также была попытка (встретившая отказ соответствующих органов) зарегистрировать понятия ?The Computer Store? и ?Log Cabin Homes?. В качестве еще одного аргумента Microsoft упоминают, что сам Стив Джобс в интервью в октябре 2010 использовал словосочетание ?app store? по отношению к другим компаниям. Вот выдержка из того интервью: In addition to Google's own app marketplace, Amazon, Verizon and Vodafone have all announced that they are creating their own app stores for Android. There will be at least four app stores on Android which customers must search through to find the app they want and developers will need to work to distribute their apps and get paid. Microsoft также приводят статистику по использованию фразы ?app store? в масс-медиа по отношению к разным компаниям: Напоследок хочу напомнить, что Microsoft открыла свой App Store для Windows Mobile в октябре 2009-го.
Приватные ключи в системе Windows, как правило, сохраняются в специальном хранилище ключей. Работа с этими ключами происходит путем вызова функций криптографического провайдера (далее CSP). При использовании стандартного CSP (Microsoft Base Cryptographic Provider) ключи пользователя хранятся в папке C:\Users\[Vasia]\AppData\Roaming\Microsoft\Crypto. При использовании специальных устройств, ключи хранятся в памяти самого устройства. Для повышения безопасности, было принято решение импортировать ключ WebMoney (тот самый .kwm, которым подписывают запросы к интерфейсам) в CSP. Обычно те, кто использует ключ для подписи запросов к WM-интерфейсам, хранят его либо в виде файла .kwm в файловой системе, либо в виде xml-представления ? оба варианта не очень-то безопасны. Это оказалось не так уж просто. Детально о проблемах, с которыми вы столкнетесь, при повышении безопасности своего платежного сервиса, читайте под катом. Читать дальше →

Отписаться от этой рассылки