Delphi 2010 включает в себя расширенную поддержку RTTI, также известную как информация о типах времени выполнения (run-time type info) или рефлексия. Множество подходов в проектированию раньше были доступны только в управляемых языках, таких как C# и Java, так как для них необходима аннотация кода (code annotation) и интроспекция (самоанализ). Теперь это возможно и в мире Delphi.
xRay @xRay
Пользователь
Как получился Indie-Tracker
4 мин
834Я разрабатываю онлайн-сервис таск-трекинга для небольших команд разработчиков. Он будет очень простым и наглядным, с современным графическим интерфейсом. Чтобы начать им пользоваться, достаточно пройти по ссылке внизу поста и зарегистрироваться.
Сейчас я расскажу, почему во время разработки программы я несколько раз изменял её концепцию. Какие ошибки я допустил и к чему пришел в конце.
Сейчас я расскажу, почему во время разработки программы я несколько раз изменял её концепцию. Какие ошибки я допустил и к чему пришел в конце.
+20
Nvidia открыла исходный код компилятора CUDA
1 мин
2.8KNvidia открыла исходный код нового компилятора CUDA на базе LLVM. Сорцы не раздаются направо и налево, а доступны только для «квалифицированных исследователей и разработчиков». Для их получения нужно зарегистрироваться, заполнить форму и указать, для каких проектов вы намерены применять компилятор. Так что пока непонятно, под какой лицензией опубликован компилятор и вообще — свободная ли это лицензия. В пресс-релизе компания намекает на более открытый доступ к исходникам в будущем.

С помощью компилятора и нового CUDA Toolkit 4.1 можно будет приспособить платформу GPGPU для других архитектур и процессоров, в том числе AMD GPU и x86 CPU, а также создавать гетерогенные суперкомпьютерные системы.

С помощью компилятора и нового CUDA Toolkit 4.1 можно будет приспособить платформу GPGPU для других архитектур и процессоров, в том числе AMD GPU и x86 CPU, а также создавать гетерогенные суперкомпьютерные системы.
+20
Esprima — парсер для javascript, написанный на javascript
3 мин
14K
+30
Знакомство с Gem. Часть первая
2 мин
22KДоброго времени суток!
Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem'ы. Итак, давайте познакомимся с ним поближе.
Введение
Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem'ы. Итак, давайте познакомимся с ним поближе.
+29
Игры на CANVAS/WebGL
1 мин
12KVortal Combat
Практически полноценный скроллер, обладающий всеми атрибутами жанра: разные типы врагов, выпадающие бонусы, с помощью которых можно апгрейдить оружие, восстанавливать защиту и тп. Есть и музыка, единственное чего не хватает — звуков сражения.

+53
Как создавать «зеленый» код
6 мин
5.4K
Каждому пользователю хотелось бы как можно реже заряжать свое мобильное устройство, будь то смартфон, нетбук, ультрабук. Возможно, когда-нибудь наступит момент, когда устройство нужно будет зарядить всего один раз, после его покупки и пользоваться до тех пор пока оно не надоест или морально не устареет.
+91
Установка приложений Google в эмулятор Android
3 мин
37K
В этой статье описано как установить дополнительные программы (в частности, Google Apps) в эмулятор Android. Это может понадобиться если вы хотите на эмуляторе:
1. Настроить синхронизацию с аккаунтом Google.
2. Установить календарь и календарь провайдер.
3. Установить Android Market.
4. И прочее…
+44
MongoDB: Запросы
4 мин
248KХоть и некоторые писали относительно моего предыдущего топика MongoDB: Создание, обновление и удаление документов, что это пересказ офф. документации, я с этим не полностью согласен. Мне показалось, что информация в нём оказалось кому-то полезной, поэтому выкладываю продолжение.
Find — аналог SELECT в MySQL. Используется для выборки документов из MongoDB. Возвращает массив документов в виде коллекции, если документов нет — пустую коллекцию. Пример:
Вернёт всех пользователей из коллекции.
Вернёт всех пользователей, у которых возраст равен 27.
Find — аналог SELECT в MySQL. Используется для выборки документов из MongoDB. Возвращает массив документов в виде коллекции, если документов нет — пустую коллекцию. Пример:
> db.users.find();
Вернёт всех пользователей из коллекции.
> db.users.find( { age: 27 } );
Вернёт всех пользователей, у которых возраст равен 27.
+26
Node.JS на Android, если Android порутованный
1 мин
8.6KТуториал
Оказывается, ещё в начале 2011 года японский исследователь по имени Тосио Мори, действующий под псевдонимом forest1040, выяснил, что возможно запустить Node.js на устройстве с Android, если обладать правами рута. Итоги его наблюдений изложены на нижеследующих тринадцати слайдах:
Для тех, кто не вполне понимаетпо-японски, переводчик Jed Schmidt создал англоязычную версию инструкций, выложенную во блоге у forest1040. Говоря вкратце, предлагаемая последовательность действий вот какова:
Для тех, кто не вполне понимает
- Получить права рута на устройстве под Android
- Использовать qemu и собрать Linux для ARM
- Внутри ARM Linux собрать Node.js
- Скопировать собранный Node.js на устройство под Android
+5
Выпущена новая версия пакетного менеджера NuGet 1.6
2 мин
5.6K
Вчера пакетный менеджер NuGet для платформы .NET получил очередное обновление до версии 1.6. Ниже перечислены нововведения в новой версии.
Семантическое версионирование
Добавлена поддержка механизма семантического версионирования (Semantic Versioning (SemVer), который позволяет задавать условия зависимостей пакетов по версиям в определенной нотации. Например:
1.0 = 1.0 ≤ x
(,1.0] = x ≤ 1.0
(,1.0) = x < 1.0
[1.0] = x == 1.0
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ≤ x ≤ 2.0
пустое значение = последняя версия.
Описание нотации и документация по версионированию в NuGet 1.6 доступна по следующей ссылке.
+12
Channel.me → совместный просмотр сайтов
2 мин
5.3K
Кидать ссылки друг другу или шарить один из рабочих столов я посчитал неэффективным. Но нашёлся революционный сервис, который похож на Google Docs, но только для совместного посещения сайтов — Channel.me.
Ближе к делу: демо-канал для хабрапользователей | демо-канал №2
Комментарий от создателей по поводу хабра-эффекта в демо-канале:
The demo-channel is a bit crowded… Looks more like a stress test :-)
Our virtual server is running at 160% and with 20Mb/s traffic… cool!
+70
Объединенные формы и значения по умолчанию
2 мин
2.1KЗдравствуйте.
Сейчас я бы хотел облегчить жизнь всем тем людям, которые пишут свои проекты на основе фреймворка Symfony 2.
В Symfony 2, есть отличные инструменты по созданию форм из сущностей, а так же, что более интересно — объединенные формы.
Так вот, если вам понадобится установить в такую (объединенную) форму значения по умолчанию из сущностей (объектов), то вы (как и я) будете блуждать по просторам интернета, в поисках решения этой задачи, т.к. в документации этого, вроде бы, нет (во всяком случае, я не нашёл).
Сейчас я бы хотел облегчить жизнь всем тем людям, которые пишут свои проекты на основе фреймворка Symfony 2.
В Symfony 2, есть отличные инструменты по созданию форм из сущностей, а так же, что более интересно — объединенные формы.
Так вот, если вам понадобится установить в такую (объединенную) форму значения по умолчанию из сущностей (объектов), то вы (как и я) будете блуждать по просторам интернета, в поисках решения этой задачи, т.к. в документации этого, вроде бы, нет (во всяком случае, я не нашёл).
+25
3D-сканер за $30
9 мин
210KПрофессиональный 3D-сканер, с помощью которого можно оцифровать реальный объект, получив его компьютерную модель, стоит десятки тысяч долларов. Мы же сможем провернуть то же самое с помощью специальной программы, лазерной указки и веб-камеры. Всего долларов за тридцать.


+135
VirusTotal для «своих»
3 мин
14KСегодня мы выпускаем очередной пост для Хабрахабра. Наш старший вирусный аналитик Закоржевский Вячеслав расскажет про интересную сторону киберкриминала.
Всем понятно, что большинство малварщиков заинтересованы в том, чтобы их детища как можно дольше «жили» у пользователей. Чем больше времени малвара находится на компьютере, тем больше денег потенциально можно заработать. Основная угроза для них — антивирусы. В подавляющем большинстве случаев для защиты зловреда от сигнатурного/эвристического детекта антивирусом вирусописатели применяют крипторы. Рынок крипторов достаточно обширен, на нём много предложений, поскольку крипторы пользуются спросом.


Всем понятно, что большинство малварщиков заинтересованы в том, чтобы их детища как можно дольше «жили» у пользователей. Чем больше времени малвара находится на компьютере, тем больше денег потенциально можно заработать. Основная угроза для них — антивирусы. В подавляющем большинстве случаев для защиты зловреда от сигнатурного/эвристического детекта антивирусом вирусописатели применяют крипторы. Рынок крипторов достаточно обширен, на нём много предложений, поскольку крипторы пользуются спросом.


+15
Выложены дополнительные сборки Android-x86 4.0 под x86
1 мин
7.8KНа www.android-x86.org выложены дополнительные сборки, предназначенные для запуска на x86 платформе.


+36
AzaThread — многопоточность для PHP с блэкджеком
6 мин
18KВ сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.
Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
В результате получилась библиотека AzaThread (старое название — CThread).
Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
- Использование форков;
- Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
- Многократное использование дочерних процессов;
- Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
- Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
- Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
- Обработка ошибок выполнения;
- Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
- Максимум производительности;
В результате получилась библиотека AzaThread (старое название — CThread).
+136
Битовые операции в PHP на примерах
3 мин
90K
Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
илиif(in_array($error['type'], array(E_ERROR, E_PARSE, E_COMPILE_ERROR)) {…}
В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
+164
Firefox не вмещается в 32-битное адресное пространство
1 мин
3.3KРазработчики Mozilla столкнулись с проблемой: в процессе компиляции mozilla-inbound под Windows вылетает ошибка (см. баг 709193).
Проведённое расследование показало, что компоновщик выходит за пределы виртуального адресного пространства во время оптимизации. Ему не хватает 3 ГБ памяти, которые выделяет приложению 32-битная Windows.
nswindowmediator.cpp(821): fatal error C1001: An internal error has occurred in the compiler. LINK: fatal error LNK1000: Internal error during IMAGE::BuildImage
Проведённое расследование показало, что компоновщик выходит за пределы виртуального адресного пространства во время оптимизации. Ему не хватает 3 ГБ памяти, которые выделяет приложению 32-битная Windows.
+59
«Защита» mp3 файлов на amazon.com
3 мин
11KВсем привет.
Не так давно дали на работе задачку по изучению факта наличия какой-либо скрытой информации в требуемых mp3-файлах. Т.к. точно не было известно, есть ли что-то в них или нет, задача представлялась почти неразрешимой. В свое время писал диплом на тему скрытия информации в аудиофайлах (аудиостеганография) и представлял, что если захотеть что-то спрятать, то обнаружить это будет почти невозможно. Первым делом начал поиски с чтения полей ID3 тэгов, вспомнил, что есть, в частности, тэг Lyrics (служащий для сохранения текста песни), содержимое которого в том же winamp-е не отображается.
На поверку данное поле оказалось пустым.
После некоторого времени общения с гуглом наткнулся вначале на статью про Amazon MP3 (http://en.wikipedia.org/wiki/Amazon_MP3), а затем уже и на песни на amazon.com, которые содержат в себе некий «unique purchase identifier».
Не так давно дали на работе задачку по изучению факта наличия какой-либо скрытой информации в требуемых mp3-файлах. Т.к. точно не было известно, есть ли что-то в них или нет, задача представлялась почти неразрешимой. В свое время писал диплом на тему скрытия информации в аудиофайлах (аудиостеганография) и представлял, что если захотеть что-то спрятать, то обнаружить это будет почти невозможно. Первым делом начал поиски с чтения полей ID3 тэгов, вспомнил, что есть, в частности, тэг Lyrics (служащий для сохранения текста песни), содержимое которого в том же winamp-е не отображается.
На поверку данное поле оказалось пустым.
После некоторого времени общения с гуглом наткнулся вначале на статью про Amazon MP3 (http://en.wikipedia.org/wiki/Amazon_MP3), а затем уже и на песни на amazon.com, которые содержат в себе некий «unique purchase identifier».
+98
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность