среда, 31 октября 2007 г.
А вот если бы был короткоствол...
секреты успехов семейной жизни
Город Кеннесо (штат Джорджия) был избран в 2007 журналом Family Life в числе 10 самых лучших городов в США для проживания семей.
1 мая 1982 года горсовет Кеннесо принял закон об обязательном владении жителей огнестрельным оружием, обязывающий каждую семью владеть огнестрельным оружием и боеприпасами к нему.
Исключение указанное в законе составляют бывшие уголовные преступники, лица с психиатрическими расстройствами, инвалиды которые по физическому состоянию не могут применить оружие, лица не имеющие достаточных средств для приобретения оружия, а также отказываются от владения оружия по причинам свободы совести.
http://en.wikipedia.org/wiki/Kennesaw,_Georgia
О детях
«Контрольную группу» младенцев забрали у матерей и передали нянькам, которым было приказано осуществлять лишь самый общий и необходимый уход за ними — кормить, купать, но не брать на руки и не разговаривать с детьми. Фридрих хотел знать, на каком языке заговорят младенцы, которые никогда не слышали звуков человеческой речи и не засыпали под колыбельные.
Все дети умерли. Ни один из них не дожил до 4 лет.
ЗЫ: может и легенда...
Ваша страна еще не взяла кредит?
В 1982 году, в связи с очередным падением мировых цен на нефть, Мексика была вынуждена обратиться к международным и национальным финансовым организациям за дополнительными кредитами, и сумма ее внешней задолженности составила $86,8 миллиарда.
С тех пор по конец 2004 года страна выплатила $624,3 миллиарда, но продолжает числиться в должниках.
Как подчеркивается в докладе Всемирного банка, выплаты процентов по внешнему долгу и его обслуживание тяжелым финансовым бременем ложится не только на Мексику, но и на другие латиноамериканские страны.
Бразилия девятикратно выплатила свой долг 1982 года, Аргентина в 8,5 раз перекрыла своими выплатами начальную сумму долга, Венесуэла - в 6,2 раза. В общей сложности Латинская Америка выплатила по внешней задолженности с 1982 по 2005 годы $2 триллиона 49 миллиардов 366 миллионов.
http://www.rian.ru/economy/finance/20070227/61343614.html
Debugger Tips, Tricks and Tools - objectID
В C# оказывается тоже это есть.
Create an Object ID to keep track of an object while debugging
в этом блоге еще несколько типсов и триксов.
Creating Generic Types in PowerShell - 8-]
Ссылка - Creating Generic Types in PowerShell
Closures in VB.....почему не в C#?
Вопрос...и почему этого нет в C#? Принципиальная возможность должна быть!
Баловство с С# 3.0
namespace alogrithm
{
public static class collections
{
public delegate void WithFunctor<S>(S elem);
public delegate bool Predicate<S>(S elem);
public static IEnumerable<S> find_if<S>(this IEnumerable<S> list, Predicate<S> predicate)
{
foreach (S elem in list)
if(predicate(elem))
yield return elem;
}
public static void with<S>(this IEnumerable<S> source, WithFunctor<S> action)
{
foreach (S elem in source)
action(elem);
}
}
class Testing
{
static public void test()
{
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
numbers.find_if( (x) => { return x > 3 ? true : false; }).with( (x) => { System.Console.WriteLine(x); });
}
}
}
ЗЫ: но так все равно лучше...
var numberGroups =
from n in numbers
group n by n % 5 into g
select new { Remainder = g.Key, Numbers = g };
вторник, 30 октября 2007 г.
воскресенье, 28 октября 2007 г.
Удаляем элементы из массива
float *array;
int size;
задача - удалить из него отрицательные элементы. скорость и память имеет значение...
подзадачи - тоже самое но с условием что size достаточно большой а количество отрицательных элементов достаточно маленькое. а главное скорость имеет значение...
Читерить с STL низя.
Идеальный FAR
1. Консоль. Мне нужен файловый менеджер которые является "надстройкой" над консолью. Т.е. консоль сама по себе должна быть частью этого файлового менеджера. В Far это есть. То как это реализованно в TC для меня абсолютно недостаточно и в принципе является stopper-ом для использования TC вместо FAR.
2. Встроенные просмотр файлов. Есть.
3. Возможность просмотра файлов "родным" просмотрщиком (точнее настраиваемым). Частично есть. Например есть для картинок, видео, музыки, некоторых файлов баз данных и т.д. Но в то же время нет для .doc или .rtf или html или более правильная для xml.
4. Встроенная возможность редактировать файлы. Расширяемая. Есть в Фаре, меня практически устраивает. Хорошо бы еще уметь подключать интерпретаторы, т.е. легко и просто превратить в простейшее IDE
5. Удобная работа с архивами. Архив как папка...Есть.
6. Гуи интерфейс. Что бы не говорили апологеты тестового вывода графический вывод гораздо выразительние. Например - возможность показывать иконки файлов. Закладки (нормальные). И т.д. Как все это совместить с п.1 (консолью) другой вопрос.
7. Поддержка командного интерпретатора. Если по простому - bash. Для Windows существует PowerShell, хочется его поддержку. Плагин для Far есть, но...хочется с автодополнениями и т.д. Вообщем возможно отдельный класс плагинов для этого выделить.
8. Поддержка Unicode.
суббота, 27 октября 2007 г.
И еще задачка
Дан направленный граф, вершины которого - люди, а ребра - кто кого знает. Знаменитость - это человек, которого знают все, но который не знает никого.
Найти алгоритм, который по графу, представленному как матрица смежности n на n, найдет знаменитость, если таковая существует, за время O(n).
Кто обидел С++?
This is C++ FQA Lite. C++ is a general-purpose programming language, not necessarily suitable for your special purpose. FQA stands for "frequently questioned answers". This FQA is called "lite" because it questions the answers found in C++ FAQ Lite.
Ссылка
В целом согласен.
Задачка
Дан список из n чисел, из которых строго больше n/2 - одно и то же число. Найти это число, используя минимальные ресурсы.
Из комментариев мало что понял..
Мое решение:
Берем первый элемент. Проходим дальше по списку до первого несовпадения. Выбрасываем. Возвращаемся назад если есть куда либо идем вперед если назад некуда. Повторяем...То что не выбросилось в итоге и есть результирующий элемент. Но нашел в ответах и лучше... по крайней мере красивее.
А просто завести M счётчиков, где M разрядность числа. Затем для каждого числа в массиве если на битовой позиции K стоит 1, то увеличить К-й счётчик, иначе уменьшить.
хотя мое больше подходит для произвольных елементов для которых определена операция сравнения.
Far Manager открывает исходный код
пятница, 26 октября 2007 г.
Wide Finder challenge
В 2х словах:
The Wide Finder challenge is to write a program that:
1. Scans logfiles for hits on blog articles
2. which are counted and
3. sorted with the
4. top 10 most popular being printed to stdout. It should also
5. be about as elegant and concise as Tim’s Ruby version and
6. its performance should scale with additional CPU cores.
Собственно я впервые задумался о влиянии x-core архитектур ядра на современный стиль разработки.
Почему я отношусь с недоверием к функциональным языкам.
qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
Коротко, красиво, и главное сразу видно что она сработает.
Вот реализация (одна из) функции quicksort на языке С:
void qsort(int a[], int lo, int hi) {
{
int h, l, p, t;
if (lo < hi) {
l = lo;
h = hi;
p = a[hi];
do {
while ((l < h) && (a[l] <= p))
l = l+1;
while ((h > l) && (a[h] >= p))
h = h-1;
if (l < h) {
t = a[l];
a[l] = a[h];
a[h] = t;
}
} while (l < h);
t = a[l];
a[l] = a[hi];
a[hi] = t;
qsort( a, lo, l-1 );
qsort( a, l+1, hi );
}
}
Длинно, непонятно, и только для массива целых чисел, для других типов придется писать свою или обобщать эту. Кстати, вот императивная реализация того же на Haskell. Еще более некрасиво...
Очевидно что на Haskell получилось лучше, правда? Не совсем...
По коду на С видно (ок, мне видно) что дополнительной памяти в процессе сортировки не выделяется хотя стек растет. Впрочем этого(роста стека) можно было бы и избежать (частично).
Можно ли сказать это про реализацию на Haskell?
Далее...как ни странно но реализаций алгоритма quicksort может быть больше одной... Например реализуя руками этот алгоритм я привык брать в качестве "опорного" элемента элемент из серидины массива. Ну да это мелочь...А вот что более существенно:
Неправильный qsort() в Solaris
Выжимка - оказывается, quicksort() в Solaris работает очень медленно, если в сортируемом массиве много одинаковых подряд идущих значений.
Вот по ссылке для других OS (смотреть только на общую "тенденцию", эксперемент был не на скорость).
Операционная система | хорошая | плохая | разница |
FreeBSD 4.3 | 1.6 | 1.2 | 0.8 |
Linux RedHat 6.2 | 3.5 | 3.0 | 0.9 |
Windows NT 4.0 SP5 | 2 | 12 | 6.0 |
Solaris 7, x86 | 3.0 | 65.0 | 22.0 |
Solaris 8, x86 | 2.6 | 62.0 | 24.0 |
В обоих случаях на Solaris "плохая" программа выполняется существенно медленнее.
Оказывается, из-за этого под Solaris'ом очень медленно работают запросы PostgreSQL с сортировкой.
Кстати на NT та же проблема. Как сейчас не знаю, не проверял.
Выводы - иногда на алгоритмы накладываются дополнительные требования (основное - чтобы алгоритм работал). Как правило это требования по скорости, по памяти, по использованию каких-либо других ресурсов, по сложности. Используя С для реализации алгоритма quicksort я на эти вопросы ответить могу. Используя Haskell - нет.
Жонглирование за пределами...
вторник, 23 октября 2007 г.
GoogleMaps+wikitravel
Или по другому...навигация по GoogleMap с выдачей результатов из wikitravel
Onlive Music Player
Монетаризация трафика - продажа песен/альбомов, реклама.
Отличие от существующих - хранить музыку online.
пятница, 19 октября 2007 г.
четверг, 18 октября 2007 г.
Маленький C# компилятор, Tiddy Wiki, горячие клавиши при написании сообщений.
TiddyWiki- весь вики на одной странице, код для редактирования там же. Жаль не работает в Opera.
Оказывается Ctrl+Shift при написании сообщения переключает в режим preview. Что очень неудобно когда на этой же комбинации смена раскладки клавиатуры). Пришлось поменять. Раскладку.
Ну и сюда же -Reflector. Просмотр, анализ,декомпиляция и т.д. .NET assemblies.
CopySource As HTML - аддон к студии, название говорит само за себя.
Идеи приложения для FaceBook
1. Гараж. Все о твоем автомобиле, ну и прочее на автотематику.
2. "Задай вопрос другу".
Сравнение инструментария Google и Microsoft
среда, 17 октября 2007 г.
Микроформаты
Микроформаты
Планирование путешествий в онлайн - социальная сеть
What is Dopplr?
Dopplr is an online service for frequent travellers. It lets you share your future travel plans with a group of trusted fellow travellers that you have chosen. It also reminds you of friends and colleagues who live in the cities you’re planning to visit. You can use the service with your personal computer and mobile phone.
вторник, 16 октября 2007 г.
Текстовые редакторы с интегрированным вводом математических выражений
http://en.wikipedia.org/wiki/Help:Formula - тут же написаны их сокращения в TeX
Wikipedia:Mathematical symbols
Table of mathematical symbols
Design and Implementation of a Win32 Text Editor
Заметки по поводу создания "простейшего" редактора текста под windows.
Поэтапно описываются шаги по созданию редактора, с учетом обработки мишки и клавиатуры, margins и т.д.
Рассматриваются вопросы загрузки больших файлов, unicode, uniscribe (right-to-left typing, ect.) и т.д. и т.д.
Lua+C++, ссылки, будут полезны
User Data With Pointer Example - работа со структурами, выделенными (созданными) в С++ коде.
Binding With Metatable And Closures - тоже самое но и использованием closures.
Про краш при открытии lua.io - здесь
понедельник, 15 октября 2007 г.
Еще о теме "гравикола"
Мое непонимание скорее всего основано не только на том что законы России я не знаю (я и своей строны не знаю). Но и на том что механику отечественных судов я тоже не знаю...
И еще по теме - в свете подобного можно опять поговорить о тупой Америке в которой засуживают компании за абсолютную ерунду типа "не сказано что в микроволновке нельзя сушить кошек". То бишь перегиб в другую сторону.
Вообщем. Если нельзя добиться стабильного нормального состояния (и гравикаловцы проиграют в суде ( а заодно и рупор свободы поделится немалой суммой и репутацией ), и производителя микроволновок оправдают ибо нефиг) всяко лучше если перегиб будет в сторону потребителей.
Также - в комментариях описывают различные схемы продажи подобного гравикала. В основном сводится к "точечному маркетингу" с подачей рекламы прямо на дом и к "рекомендациям" "семейных докторов". Так вот - понятно что полностью избавится от гравикаловцев не удастся. Но свести вред от них к минимуму а усилия по продвижению гравикала к максимуму можно.
Это кстати затрагивает еще один из подвидов комментаторов с убогой логикой. Основной посыл - если нечто "А" полностью забороть никак не получится то и парится не стоит.
Наблюдатель за наблюдаемыми за наблюдаемыми...Гравикол 21
Обсуждение там же либо тут (avva отметился).
Мои 5к. - почему то больше всего бесят люди выражающие позицию "почему вы так обеспокоены этим вопросом когда в Америке негров линчуют (радиостанция "Б" беспринципно рекламирует препарат "В" и т.д.).
Т.е. общая схема - Есть некоторое "А". Внимание блогерских масс "почему-то" на этом "А" сосредоточилось. Получился некий флешмобик, плюс люди пытаются реально что-то с этим "А" сделать, кто-то пытается понять причины, кто-то еще чего...
И отдельная категория людей вопрошающая "почему "А" если есть "Б" такое же или хуже". Причем в контексте это звучит так - "раз вы "Б" не занимаетесь заниматься "А" вам тоже не стоит".
Бесит.
Безопастность в Висте по сравнению с...
Vista Security Report Raises More Doubts Than It Relieves
Как я понимаю основные сомнения вызывает правдоподобность результатов.
Замечание - интересно было бы перераспределить график в график "соотношение найденных уязвимостей к исправленным в процентном соотношение". И сразу станет ясно что "территория зла" исправила всего лишь 50% уязвимостей, в то время как Линукс!!....не скажу сколько точно, считать лень, но явно намного больше. И тогда все встанет на свои места...Ну а то что в абсолютных числах количество неисправленных уязвимостей у Линукса намного больше уже никого не будет волновать.
Apachie vs IIS
Ссылка
По данным октябрьского отчета компании NetCraft доля Apache среди web среверов продолжает стремительно падать. За месяц число сайтов работающих под управлением Apache сократилось на 2.03%, доля IIS возросла на 1.6%, число хостов обслуживаемых программным обеспечением Google возросло на 0.65%.
Рост IIS и Google главным образом обусловлен увеличением числа хостов в сервисах MySpace, Microsoft Live.com и Google Blogger (число сайтов в каждом сервисе увеличилось примерно на миллион) .
пятница, 12 октября 2007 г.
windowless ui
Требования к скриптовому языку:
если исходный xml описан в виде
<canvas >
<block id="block1" >
....
</block >
</canvas >
то в используемом скриптовом языке хочется иметь возможность написать что-то примерно
block3.OnMouseLeave =
{
block1.visible=false
}
и в другом месте
block3.OnMouseEnter =
{
block1.visible=true
block2.style.border.left.width = 1px
}
"Куда движется математика"
Интересный факт - формулировки теоремы Эйлера раз за разом оказывались неточными а то и вовсе неправильными. Но поскольку сама по себе теорема верна (а еще думаю физики 20го века сказали бы что она красива а следовательно верна) раз за разом все это удавалось устранить. Ну и т.д.
четверг, 11 октября 2007 г.
Неизбежность классового расслоения общества обоснована математически
передеру:
В своей работе Бен-Наим и Реднер использовали упрощенную версию модели социального разнообразия Бонабо (Bonabeau), в которой каждому индивидууму присваивается индекс «социальной приспособленности» (fitness). Этот индекс рассчитывается по двум показателям — конкурентоспособности (competition) и вероятности победы в конкурентной борьбе (winning probability).
Конкурентоспособность индивидуума А изменяется в момент социального столкновения с индивидуумом Б. Если конкурентоспособность индивидуума А на момент встречи оказывается выше, он приобретает еще большую силу, а конкурентоспособность индивидуума Б, в свою очередь, снижается. И наоборот. Вероятность же победы для каждого индивидуума снижается по мере того, как увеличивается время, прошедшее с момента последней конкурентной «схватки».
В качестве начальных условий выбрано предположение о том, что (1) в первой итерации все члены общества имеют нулевой уровень конкурентоспособности и (2) в случае встречи двух индивидуумов с равным уровнем конкурентоспособности побеждает только один
Компьютерное моделирование показало, что изначально однородное бесклассовое общество, члены которого живут по этим правилам, в определенный момент демонстрирует фазовый переход к иерархическому, разделенному на классы. Любопытно, что возникший в определенный момент «низший» класс неизбежно погружается в состояние беспросветной нищеты, в то время как члены среднего класса демонстрируют весьма энергичную вертикальную подвижность с тенденцией к постоянному повышению своего статуса. То есть в полном соответствии с известным изречением классика, «богатые становятся богаче, а бедные — беднее», и ничего тут не попишешь. Коммунизм бывает только в сказках.
ни в коем случае не хочу сказать что я тут хоть что-то понимаю...но:
снижение "конкурентноспособности" (что бы под этом не понималось) не должно быть обязательном в модели. Равно как и не рассмотрены столкновения 1 vs N. И в целом мыслей в голове на эту тему достаточно, интересно будет поискать дополнительную информацию.
четверг, 4 октября 2007 г.
Исходники .NET Framework будут открыты
Ссылки: Scott Gu, Shawn Burke