Tuesday, July 28, 2009
Подсчет количества битов в байте или слове
Циклически сбрасывается крайний справа единичный бит исследуемого байта,
до тех пор, пока байт не станет равным 0.
Эффективность: 2 + 5*pop(x) команд, подходит для малозаполненных байтов.
private static int pop(byte x)
{
int n = 0;
while (x != 0)
{
n += 1;
x = (byte) (x & (x - 1));
}
return n;
}
Другой способ:
В слове циклически устанавливается крайний справа нулевой бит ( x = x | (x + 1)) до тех пор, пока во всех разрядах слова не оказываются единицы (то есть слово = -1).
После этого возвращается число 32 - n.
Третий способ:
Вычисляется сумма всех 32 битных слов, полученных в результате циклического сдвига слова влево на один разряд. Итоговая сумма равна значению pop(x) со знаком минус.
до тех пор, пока байт не станет равным 0.
Эффективность: 2 + 5*pop(x) команд, подходит для малозаполненных байтов.
private static int pop(byte x)
{
int n = 0;
while (x != 0)
{
n += 1;
x = (byte) (x & (x - 1));
}
return n;
}
Другой способ:
В слове циклически устанавливается крайний справа нулевой бит ( x = x | (x + 1)) до тех пор, пока во всех разрядах слова не оказываются единицы (то есть слово = -1).
После этого возвращается число 32 - n.
Третий способ:
Вычисляется сумма всех 32 битных слов, полученных в результате циклического сдвига слова влево на один разряд. Итоговая сумма равна значению pop(x) со знаком минус.
Friday, July 10, 2009
USB Connection
Мониторинг подключения USB драйва.
Реализация через WMI.
Я нашел несколько способов.
Реализация через WMI.
Я нашел несколько способов.
1. Класс: Win32_PnPEntity, событие __InstanceCreationEvent
Event: "__InstanceCreationEvent"
Target: "TargetInstance ISA 'Win32_PnPEntity'"
2.Класс: Win32_LogicalDisk, событие __InstanceCreationEvent
Event: "__InstanceCreationEvent"
Target: "TargetInstance ISA 'Win32_LogicalDisk'"
3.Класс: Win32_Volume, событие __InstanceCreationEvent
Event: "__InstanceCreationEvent"
Target: "TargetInstance ISA 'Win32_Volume'"
(Последний класс недопустим на системах от XP и ниже)
Tuesday, July 7, 2009
Security
Из разговора с коллегой, памятка.
1. Алгоритм Диффи - Хеллмана
http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange
2. И все, что касается CISSP/SSCP, сертификация в области безопасности.
3. Сайты InsidePro - rainbow таблицы, генерация хешей, и прочее, securitylab - общая информация по уязвимостям.
1. Алгоритм Диффи - Хеллмана
http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange
2. И все, что касается CISSP/SSCP, сертификация в области безопасности.
3. Сайты InsidePro - rainbow таблицы, генерация хешей, и прочее, securitylab - общая информация по уязвимостям.
Friday, July 3, 2009
Voxel, Воксельная графика
Читая блог по анонимным функциям Objective-C одного канадского программиста, наткнулся на его тезисы в университете по визуализации 3D потоков. Стал с удовольствием читать, тем более что, в далеком 2002 году на первой работе коллеги занимались как раз визуализацией взрывной волны, проходящей по всем техническим помещениям АЭС, после насыщения атмосферы помещений водородом и последующей детонации. Но там просто тупо происходил объемный расчет по плотности волны по времени (целыми днями), и, кажется, распределения концентрации водорода, а потом из этих данных воссоздавался ролик.
Интересные тезисы, начал копать по поводу воксельной графики, но нашел информацию более, чем скудную, практически ничего по поводу реализации, лишь только общие детали.
Кое-какая информация: CiteSeerX, CodeNet, Здесь и в Wiki есть скудное описание. Литературы тоже никакой нет. Реализованы некоторые элементы в известных игрушках, есть пара программистов из Екатеринбурга, которые занимаются именно этой технологией. Есть теориетические статьи на западе, больше инфы никакой нет.
Интересные тезисы, начал копать по поводу воксельной графики, но нашел информацию более, чем скудную, практически ничего по поводу реализации, лишь только общие детали.
Кое-какая информация: CiteSeerX, CodeNet, Здесь и в Wiki есть скудное описание. Литературы тоже никакой нет. Реализованы некоторые элементы в известных игрушках, есть пара программистов из Екатеринбурга, которые занимаются именно этой технологией. Есть теориетические статьи на западе, больше инфы никакой нет.
NoSQL
Очень примечательное явление: Anti-database movement gains steam
По ссылке описаны мотивы и решения на основе которых разработчики уходят от принятых стандартов: Hadoop, Voldemort, Dynomite, BigTable, HyperTableSciDb:
http://www.scidb.org
Membase:
Redis:
Redis is an open source, advanced key-value store.
It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Others:
http://www.kobrix.com/hgdb.jsp
http://infogrid.org
http://opensource.plurk.com/LightCloud
IndexDB for offline Web applications:
http://msdn.microsoft.com/en-us/scriptjunkie/gg679063.aspx
Foundry:
http://degizmo.com
Subscribe to:
Posts (Atom)
Powered by Blogger.