понедельник, 4 апреля 2011 г.

Хабрахабр

КупиКупон - скидки от 50% до 90%

Хабрахабр:

Еще 31 марта во многих интернет-сми, в том числе, и на Хабре, появилась новость о том, что эксперты обнаружили массовую SQL-инъекцию вредоносного скрипта LizaMoon. На тот момент количество зараженных сайтов достигало около 200 тысяч. На днях команда специалистов провела повторный поиск (собственно, ничего сложного ? специалисты использовали поиск Google для обнаружения зараженных сайтов). В результате выяснилось, что эпидемия не пошла на спад, наоборот ? уже 1 апреля около полумиллиона сайтов содержали этот скрипт. Читать дальше →


Каждый раз, когда необходимо выводить flash-сообщение сталкиваешься с одними и теми же проблемами: непонятно где эти сообщения выводить, толи заранее на странице определить место, которое жалко, толи сделать растягиваемый дизайн, что не всегда удобно. А еще этих сообщений может быть много, а еще каждый норовит сохранять их под своим ключем (warning, notice..). Когда понадобилось посылать пользователю сообщения из delayed_job стало понятно что нужно решить эту проблем раз и навсегда. gem gritter_notice ? выводит flash и удобно обрабатывает сохраняемые в базе всплывающие сообщения в 5 строчек кода. Читать дальше →


Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку: Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики ? пакеты, белые ? классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый ? это начало, а красный ? конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить. Под катом описание метода, решающего эту проблему. Читать дальше →


Наверное каждый из нас хоть раз забывал пароль от какого-нибудь важного сайта, а потом пытался расшифровать его по сохранившимся кукам в браузере. Возможно это были даже не Ваши куки, но это не важно ? если Вам интересна тема скоростного брутфорса, то добро пожаловать под кат! Сразу скажу, что описанные в статье техники ускорения подходят для любого алгоритма хеширования, но из-за широкой распространённости я выбрал именно md5. Читать дальше →



В данной статье я хочу развенчать мифы о сложности и узкоспециализированности функционального программирования в общем и языка Haskell в частности. Я постараюсь сделать эту статью понятной даже для людей с минимальным представлением о Haskell. Но сначала небольшое введение. Я отношу себя к категории ленивых фотолюбителей. У меня есть неплохая ?беззеркальная зеркалка?, иногда на меня нападает желание пощёлкать чего-нибудь вокруг себя. Однако я ленив, и ковыряться потом в полученном фотоархиве у меня ни времени, ни желания нет. Как правило фотографии просматриваются один-два раза сразу после съемки путём подключения фотоаппарата к телевизору через HDMI кабель. Затем фотографии отправляются в небытие каталог ~/Pictures/Photos/Unsorted и, как правило, остаются там навсегда. С различным спец. ПО я как-то не сдружился, посему этот бардак просуществовал почти два года. И вот, на волне изучения Haskell, я созрел для решения проблемы. Читать дальше →


Несколько дней назад, не помню точной даты, компания Google представила свой новый инструмент для работы с электронной почтой ? Gmail Motion. Об этом даже писали на Хабре. Решив воспользоваться этой прекрасной фичей, я, к своему огромному сожалению, не нашел возможности включить её в своей учетной записи Gmail. Наверное, я не вошел в группу бета-тестеров. Это, конечно, расстраивает. Но не нас! Ниже я расскажу, как за бутылку один час я сделал свой Gmail Motion. Сразу видео с результатом, под катом ? технические детали. Читать дальше →


На сайте OpenNews и затем на форуме Mozilla Россия появились сведения о том, что Фонд Мозиллы обеспокоен тем замедлением запуска и работы Файерфокса, которое вызывается целым рядом популярных дополнений: Для борьбы с этим явлением планируются комплексные меры просвещения и пользователей, и (прежде всего!) создателей расширений о тех мерах, которые позволят сократить задержки и улучшить производительность. Подробности я не стану здесь пересказывать, так как вы и сами без труда сможете прочесть их в первоисточнике. В новостях о выходе Firefox 4 читатели Хабрахабра жаловались прежде всего на скорость, так что я предвижу, что эта инициатива будет воспринята с энтузиазмом.


Только что вернулся с конференции ПАВТ 2011 и хотел бы познакомить уважаемое хабрасообщество с современным состоянием дел в области высокопроизводительных вычислений. Постараюсь по возможности ссылаться на первоисточники ? а именно, на статьи из журнала "Суперкомпьютеры" и материалы конференции. Зачем это все нужно Суперкомпьютеры традиционно использовались в военных и научных целях, но в последние годы в их применении произошли революционные изменения, связанные с тем, что их мощность ?доросла? до моделирования реальных процессов и предметов при доступной для бизнеса стоимости. Все, наверное, знают, что в автомобилестроении расчеты на суперкомпьютерах используются для повышения безопасности, например так получил свои 5 звезд Ford Focus. В авиапромышленности выпуск нового реактивного двигателя по традиционной технологии ? дорогостоящее удовольствие, например создание АЛ-31 для СУ-27 заняло 15 лет, потребовало создать и разрушить 50 опытных экземпляров и стоило 3,5 млрд. долларов. Двигатель для Сухой Супержет, спроектированный уже с участием суперкомпьютеров, сделали за 6 лет, 600 млн евро и было построено 8 опытных экземпляров. Нельзя не отметить и фармацевтику ? большая часть современных лекарств проектируется с помощью виртуального скрининга , который позволяет радикально снизить затраты и повысить безопасность лекарств. Дальше ? больше. Сегодня в развитых европейских странах: 47,3% высокотехнологической продукции производится с использованием имитационного моделирования фрагментов проектируемых сложных систем или изделий; 32,3% продукции производится с использованием имитационного моделирования мелкомасштабных аналогов проектируемых систем и изделий; 15% продукции производится с использованием полномасштабного имитационного моделирования проектируемых систем и изделий; и лишь 5,4% проектируемых сложных систем и изделий производится без имитационного моделирования. Суперкомпьютерные технологии в современном мире стали стратегической областью, без которой невозможно дальнейшее развитие. Мощность национальных суперкомпьютеров сейчас так же важна, как мощность электростанций или количество боеголовок. И сейчас в мире началась Читать дальше →


Я был несколько удивлён, не увидев mono в репозиториях для этого замечательного устройства. Но, поскольку оно было позарез нужно, решил всё-таки собрать. И тут же напоролся на весьма забавную особенность маэмовского SDK, которая этого сделать мне не позволила. Но обо всём по-порядку. А пока что небольшой скрин того, что получилось: Вместо нормального эмулятора устройства и тулчейна для сборки, ребята из нокии приспособили под это дело scratchbox, который, эксплуатируя qemu-user, запускает arm-ные бинарники прямо на ядре текущей ОС. И всё бы замечательно, если бы оно работало как надо. На деле же во время сборки qemu выдаёт ?unsupported syscall 242?, после чего сборка стопорится. Обычным кросскомпилером тут что-либо сделать сложно, ибо mono в лучших традициях процедуры bootstrap (поднятие самого себя за шнурки ботинок) компилит сначала свой компилер и уже с его участием дособирает всё остальное. Как с этим бороться, не особо понятно, если только компилить на девайсе, но там это займёт годы. Для N800 mono какой-то герой таки смог собрать, но работать на n900 оно отказалось, вываливаясь с SIGSEGV. Если кому-то интересно, как сия проблема была решена, или же самостоятельно пощупать моно на устройстве (можно прямо в Visual Studio писать, если что) прошу под кат. Читать дальше →


Вас ожидают две части: Создание простейшего решения (solution) со стандартными конечными точками (default endpoints) Добавление и настройка конечных точек вручную Прошло много времени с тех пор, как я написал оригинальный пост Простой пример использования WCF. Это было еще до выхода Visual Studio 2008, и с тех пор многое изменилось. Поскольку множество людей по-прежнему задают вопросы в комментариях к тому посту, давайте посмотрим, что в настоящее время мы должны сделать, чтобы поднять и запустить службу (service), а также обратиться к ней из клиентского приложения. Читать дальше →



В отличие от Windows среда Linux не может похвастаться большим количеством разных трюков против отладки. Opensource и всё такое сыграли свою долю в этом. Среди дебаггеров есть  gdb, но он очень легко обнаруживается простейшими техниками анти-отладки. Соответственно не много известно протекторов способных сильно затруднить отладку бинарника, среди них можно вспомнить разве что 'shiva', но она уже давно ?умерла?. Игрушкой сегодня для нас будет служить программка lincrackme3 с crackmes.de, она ? не сложна и при этом,  в ней имеется несколько анти-отладочных трюков. Мы будем использовать  только дисассемблер ? никаких отладчиков, ltracer-ов и тем более патчинга бинарника. Дисассемблером будет служить IDAPro 5.5. Читать дальше →


Дизайнер из Хорватии Robert Butkovic взялся нарисовать 100 логотипов за 100 дней, на разработку логотипа он отвел себе не более 100 минут. Цель начинающего дизайнера тренировка креативного мышления и безусловно самореклама. Логотипы превращались во все что приходило в голову. Большинство логотипов смахивает на иллюстрации, некоторым явно не хватает профессионализма, но учитывая, что на разработку логотипа отводилось мало времени, дизайнер позволил себе некоторую свободу, на первое место вышла идея, а не ее реализация. BRAINSTORMING День 004 Время работы: 80 мин SPAVANJE День 021 Время работы: 3 мин Читать дальше →


Многие помнят недавнюю статью про самодельный ядерный реактор. Вынужден признаться, что статья была первоапрельской шуткой, на редкость удавшейся. В этой краткой статье я хочу рассказать, как можно было быстро понять, что это шутка и какие я вижу ключевые факторы успешной первоапрельской статьи ?это может пригодиться вам в написании ваших статей через год (или насторожить при чтении). Также стоит заметить, что аналогичные подтасовки очень часто есть и в обычных СМИ. Итак, приступим (публикую в DIY чтобы все кто видели первую статью, увидели и опровержение). Читать дальше →


Этим постом мы продолжаем цикл статей о том, как мы делали порнофильтр. Сейчас речь пойдет о попытке классифицировать порнографический контент по характерным движениям в кадре. Началось это все как просто шутка из разговора. Ведь классифицировать порнографические движения довольно непросто ? они слишком разные, чтобы найти в них что-то общее. Но мы попробовали, результат нас вполне устроил, и детектор движения занял свое место в общем классификаторе порнографического видеоконтента. Читать дальше →


Это вольный перевод моего поста из блога моей компании ? о том, как я разгребал последствия хакерской атаки на наш сервер. Если в двух словах ? мой сервер взломали. Злоумышленник получил пароль к FTP-серверу и в течении почти 10-ти часов скачивал все, до чего дотянулись ручонки. То, как, собственно, был взломан сервер ? отдельная история. Вкратце ? хакер отправил фальшивый саппорт-тикет моему хостеру с просьбой помочь создать FTP-юзера. И хостер, в общем-то, повелся. Мало того, что создал юзера, да еще и дал ему админские права? Переписку хакера с хостером (мне удалось завладеть копией) я ? если хабровчане захотят ? выложу обязательно, это отдельная веселуха. А пока просто перечислю шаги, которые я предпринял, чтобы защитить свой сервер и ликвидировать последствия: Читать дальше →


Хочу поделиться радостью от проделанной сегодня успешной работы (на интуитивном уровне) по доработке алгоритмов подсчета кармы и рейтинга пользователей в Drupal 6. Но для начала надо немного рассказать о моем уровне подготовки, чтобы стало понятно, насколько универсализация API и принципы ООП украшают жизнь людям. Надеюсь, будет полезно для новичков, вроде меня и поможет им преодолеть первые трудности на пути освоения Drupal. Кто хочет сразу перейти к сути статьи, листайте до заголовка ?Долгожданные оценки и карма?. Читать дальше →




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

Комментариев нет:

Отправить комментарий