Search
Write a publication
Pull to refresh
4
0
xRay @xRay

Пользователь

Send message

Кастомные аннотации в Symfony 2

Reading time3 min
Views12K
Symfony2 — это веб-фреймворк, который появился совсем недавно. Соответственно, разработчики просто не успели написать к нему стоящую документацию. В одном из текущих проектов используется MongoDB, и ACL прикрутить нему можно, нужно всего лишь написать свой ACL-провайдер. Но я решил пойти своим путём. Итак, вот что примерно у нас получится:
class DefaultController extends Controller
{

    /**
    * Dashboard page.
    * @Permissions(perm="dashboard_view")
    * @Route("/", name="ITEDashboardBundle_index")
    * @Template()
    * @return array
    */
    public function indexAction()
    {.......

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

Нормальная офлайновая документация

Reading time1 min
Views2.2K
Вместе с выходом второй версии фреймворка CakePHP обновилась и документация — book.cakephp.org/2.0/. А самое главное, появилась офлайновая дока. Скачать можно прям с первой страницы кукбука: CakePHPCookbook.epub. Можно скачть с гитхаба исходники или помочь с переводом и исправлением.

Мне было лень искать что-то, что читает формат .epub и я просто распаковал файлы и получил много html страничек. Такая документация выглядит примерно так. Zip с html страничками качаем отсюда

Chop Slider 2 — лучший jQuery-слайдер

Reading time5 min
Views54K

Добрый день. Несколько дней назад появилась необходимость использовать слайд-шоу на своём сайте, но оно должно было быть нестандартным, чтоб привлекало внимание пользователей. Искал в течение дня и ничего нормального не мог найти, были более менее подходящие «слайдеры», но душа хотела клубнички. После того как я облазил весь рунет, переключился на «забугорных» друзей и… удача! Забегая наперёд хочу сказать: этот обзор сделан потому, что в рунете нет никакого упоминания про это слайд-шоу, отсюда и логика.
Читать дальше →

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

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

image

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

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

Вышел AnjLab SQL Profiler 1.2

Reading time1 min
Views5.3K
AnjLab SQL Profiler — это бесплатный Open Source профайлер для MS SQL Server (Express).

В новой версии появилась возможность автоматической группировки одинаковых запросов по соединениям в Performance Dashboard.

Спасибо PowerDNN за спонсорскую помощь в развитии проекта.

Qt Quick: лучшие приёмы

Reading time1 min
Views12K
Доброе утро, Хабр!

Мы начинаем вести новую серию постов в блоге, посвящённую лучшим трюкам и приёмам в фреймворке Qt Quick, концентрируя внимание на языке QML. Весь цикл постов пишет Майкл Хассельман. Он работает в Openismus и известен разработкой виртуальной клавиатуры для Nokia N9 (MeeGo Harmattan 1.2).

Посты, написанные Хассельманом, должны показать лучшие приёмы разработки в Qt Quick путём изучения того, как использовать основные концепции рационально, и как оградить себя от распространённых ошибок.

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

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

Facebook подтвердила предположение о шести рукопожатиях

Reading time1 min
Views17K


Миланский университет и Facebook окончили исследование о теории шести рукопожатиях. За основу брался социальный граф Facebook. Были исследованы все аккаунты Facebook. В итоге получилось, что двух любых людей отделяют не 6, а 4,74 уровня связи.
И в США, кстати, количество звеньев меньше — 4,37 (по статистике более половины американцев старше 13 лет пользуются Facebook).
«Даже если взять самого территориально удаленного пользователя Facebook в сибирской тундре или перуанских джунглей, друг вашего друга, вероятно, знает друга их друга» — так отмечают исследователи.
Три года назад Microsoft провела аналогичное исследование на 242 миллионах пользователей MSN, написавших хоть одно сообщение за месяц. Их результат тогда был равен 6,6.
А вот исследование аудитории ВКонтакте, которое сделал shuttie, показывает, что этот результат в более локализованной сети — меньше, 5.65 пользователей.

Как мы поставили процесс разработки на проекте длиной в 2 года

Reading time4 min
Views15K
Именно столько мы уже делаем геосоциальную сеть Альтергео. Я расскажу, как нам удаётся быть и оставаться достаточно эффективными в разработке, сохраняя бодрый темп всё время.

Основное:
  • Численность команды разработчиков — 7 человек;
  • Длительность спринта — примерно две недели;
  • Стендапы каждый день;
  • Организацонные вещи хранятся в Acunote, google docs и MindMap;
  • Код хранится в SVN, новая фича — новая ветка, над одной фичей трудятся несколько разработчиков;
  • Тестирование — через unit-tests.

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

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

Node.js на Windows (с тестами производительности)

Reading time11 min
Views48K


В этой статье мы рассмотрим вопросы наиболее важные для начинающих веб программистов и тех кто задумывается об изучении Node.js, а именно:
  • как установить рабочее окружение Node.js на своем компьютере;
  • как писать код;
  • как отлаживаться;
  • как развернуть то, что получилось на удаленном сервере.
А тесты производительности в конце статьи возможно дадут ответ на вопрос зачем собственно вам может понадобится изучать Node.js.
Читать дальше →

FM-синтезатор на WolframAlpha

Reading time1 min
Views2.3K
Поисковик с зачатками искусственного интеллекта WolframAlpha научился синтезировать звуки путём частотной модуляции. Просто указываете характеристики звуковой волны (амплитуда несущей, угловая частота несущей и угловая частота модуляции) — и можете прямо на сайте прослушать результат с помощью команды play.

Банковский троянец Carberp приобрел буткит-функционал

Reading time5 min
Views17K
Сегодня мы публикуем часть нашего расследования, посвященного вредоносной программе Carberp, которая направлена на системы дистанционного банковского обслуживания (ДБО).

В этом месяце нам удалось собрать интересную информацию о новой модификации троянца из семейства Win32/TrojanDownloader.Carberp. Это одна из самых распространенных вредоносных программ в России, которая занимается хищением финансовых средств в системах удаленного банковского обслуживания и нацелена, в первую очередь, на атаки компаний, которые осуществляют ежедневно большое количество денежных транзакций. Мы уже рассказывали об этом троянце в нашей презентации “Cybercrime in Russia: Trends and issues”. Разработчики данного вредоносного ПО — одна из самых активных киберпреступных групп на территории России и близлежащих стран, которая занимается кражей денежных средств в RBS. Первые инциденты с троянцем Carberp были зафиксированы нами в начале 2010 года, а пик его активности в этом году приходится на конец весны и лето, причем с началом осени опять увеличилось число инцидентов, связанных с этой программой.

image

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

Интеграция JavaScript cookies в CURL-запросы

Reading time10 min
Views25K
В этой статье я расскажу об одной необычной проблеме, с которой мне однажды пришлось столкнуться по роду своей деятельности. Внимание: эта статья не для начинающих. Предполагается, что читатель уже имеет опыт веб-программирования и знаком с языком PHP, библиотекой CURL и основами HTTP.

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

Вышла библиотека jQuery версии 1.7.1

Reading time1 min
Views1.8K
Во блоге jQuery совсем недавно появилось объявление о выходе версии 1.7.1.

Как и у всякого обновления, отличающееся только цифрою после последней точки, здесь речь идёт не о внедрении крупных новинок, а об исправлении целого ряда неприятных багов (и об изменении багоподобных мелких особенностей), которых на сей раз насчитывается три десятка.

Каждый волен самостоятельно отобрать среди них наиболее важные для себя. Лично мне существенными показались вот какие:
  • $(document).text() перестанет всегда возвращать пустую строку;
     
  • $.error теперь швыряет instanceof Error;
     
  • при создании DOM-элементов вызовом $('<…>') перестанет подтекать память;
     
  • анимация ширины, заданная приращением процентов в духе $('div').animate({ width: '-=5%' }), будет приводить к изменению ширины в процентах же (как и было в jQuery 1.6.4), а не в пикселах (как в jQuery 1.7).

Волшебный кэширующий декоратор

Reading time3 min
Views4.8K
Сейчас работаю над доработкой/переписыванием проекта, который был написан, ну скажем так, «не совсем грамотно». По ходу есть задача оптимизировать работу, т.к. код изначально был написан крайне неоптимально. Среди работ по оптимизации прикручивается кэш.

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

$query = "Select something";
$result = $cache->get($query, $tag);
if (!$result) {
    $result = $db->queryAll($query);
    $cache->set($query, $tag);
}

И хочется чего-то другого. Конечно, код можно вынести в отдельную функцию или метод, но это как-то скучно и к тому же, для каждого разного вызова (а там есть не только $db->queryAll, а несколько разных вариантов) нужен будет свой код и своя функция/метод.

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

В общем, хотелось единого, универсального решения, которое бы подошло для разных источников данных, с разными интерфейсами, но в то же время было единообразным. Было решено сделать «волшебный» декоратор.

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

Попытка просто объяснить сложные, для новичков, вещи в javascript

Reading time8 min
Views24K
Я попытаюсь просто объяснить, как работают замыкания в Javascript, как работает this, как создавать конструкторы для своих классов и чем различаются различные подходы к их созданию.
Статья не претендует на новаторство, но достаточно доступные объяснения how it works для новичков я не видел, и на мой взгляд — это три самых узких места в Javascript (не привязанному к какому либо контексту, серверу или браузеру, например).
Читать дальше →

Нате, что ли, карты в руки!

Reading time1 min
Views2.2K
Привет, друзья! Мы наконец-то сделали карту, которая в реальном времени показывает статистику угроз по регионам. Теперь она всегда будет доступна на сайте www.securelist.ru. На ней вы можете видеть, в какой обстановке находитесь сами, а как поживают интернет-пользователи в соседней стране.
image
Читать дальше →

Одна история разработки под Kindle

Reading time4 min
Views3.6K
В этой статье я хочу поделиться опытом разработки для Kindle 3 (ныне Kindle Keyboard). Эта статья не содержит какой-либо критики Амазона, его команды, сервисов и предоставленых мне в рамках программы материалов (в этом плане я связан соглашением участника программы бета-тестирования).
Читать дальше →

Выпущен релиз-кандидат SQL Server 2012

Reading time2 min
Views9.6K
image

На прошлой неделе состоялся важный выпуск новой предварительной версии сервера баз данных SQL Server 2012, который ранее был известен под кодовым именем Denali. Новая предварительная версия носит статус Release Candidate (релиз-кандидат), что во-первых, означает ее готовность для промышленного тестирования, а во вторых говорит нам о полнофункциональном статусе продукта, который на этом этапе уже укомплектован всеми функциями, которые будут доступны в финальном релизе.

Говорить про нововведения в SQL Server 2012 можно очень долго, новое поколение базы данных содержит массу новшеств во всех компонентах. Небольшая часть нововведений кратко описывается в этой статье посвященной первому анонсу Denali.

Загрузить SQL Server 2012 Release Candidate 0 (RC0) можно отсюда.

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

История одного интерфейса

Reading time1 min
Views1.1K
screenshot

Жил да был один проект. И был у него интерфейс для выбора неких сущностей, живущих в древовидной структуре.

Изначально он выглядел как обычные выпадающие менюшки со скроллингом. Однако через некоторое время сущностей стало много и работа с ними преобрела характер пытки. Пользователи попросили сделать хотя бы саджест.

Просто саджест делать было скучно, поэтому я сделал вот такую штуковину, которая немного напоминает по внешнему виду маковский Файндер в мультиколоночном режиме. Отсюда и название — b-finder.

Изначально, «Файндер» был заточен только под один проект. Но народу эта штука понравилась и меня неоднократно спрашивали, можно ли его использовать где-нибудь еще. Посему я решил «отвязать» его от проекта и сделать jQuery-плагином для пущей совместимости.

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

Ищем неиспользуемые расширения PHP

Reading time1 min
Views2.2K
image

Одним из способов ускорения работы интерпретатора PHP является отключение неиспользуемых расширений.
Конечно же прирост производительности будет незначителен, но отключение расширений не занимает много времени, поэтому есть смысл воспользоваться данным способом.

Главной проблемой будет найти неиспользуемые расширения, для этих целей я написал небольшую утилитку, которая поможет вам в этом деле.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity