вторник, 25 декабря 2007 г.

Дотационность донецких

Так...для статистики

Но распределение заработанных средств происходит более чем неравномерно. Из Закона Украины «О Государственном бюджете Украины на 2007 год» следует, что из Донецкого городского бюджета в 2007 г. в госбюджет передадут 149 млн. 845 тысяч гривен, а из Львовского городского бюджета — 60 млн. 786 тысяч. А вот дотации выравнивания из государственного бюджета для Донецкой области определены в сумме 3 млн. 347 тыс. гривен., а для Львовской области — 285 млн. 982 тыс. гривен. Эти цифры просто некорректно сравнивать. При этом, согласно статистическим данным Всеукраинской переписи населения 2001 года в Донецкой области проживает 4 млн. 841 тысяч человек; во Львовской области — 2 млн. 626 тыс. человек. Вывод напрашивается сам-собой — Львов и вся Львовская область являются дотационными субъектами, в то время как Донецк одним из самых крупных доноров государственного бюджета.


взято тут

Сравнение скорости Perl,Python, java и с++ на примере задачки от гугля

Вольный перевод, а вот и оригинал
Итак, задачка простая - найти решение равенства
"wwwdot - google = dotcom"


Решение тоже лобовое.
Python:

#!/usr/bin/python

print "Program Start."

for W in range(10):
for D in range(10):
for O in range(10):
for T in range(10):
print "looking for W=", W, "D=", D, "O=", O, "T=", T
for G in range(10):
for L in range(10):
for E in range(10):
for C in range(10):
for M in range(10):
a = 100000*W+10000*W+1000*W+100*D+10*O+T
b = 100000*G+10000*O+1000*O+100*G+10*L+E
s = a - b
r = 100000*D+10000*O+1000*T+100*C+10*O+M
if s == r:
print "FOUND the solution: a=", a, "b=", b, "s=", s, "r=", r
print " W=", W, "D=", D, "O=", O, "T=", T, "G=", G, \
"L=", L, "E=", E, "C=", C, "M=", M

print "Program End."


Perl:
#!/usr/bin/perl -w

print "Program Start.\n";

for $W (1..10) {
for $D (1..10) {
for $O (1..10) {
for $T (1..10) {
print "\nlooking for W=", $W, "D=", $D, "O=", $O, "T=", $T;
for $G (1..10) {
for $L (1..10) {
for $E (1..10) {
for $C (1..10) {
for $M (1..10) {
$a = 100000*$W+10000*$W+1000*$W+100*$D+10*$O+$T;
$b = 100000*$G+10000*$O+1000*$O+100*$G+10*$L+$E;
$s = $a - $b;
$r = 100000*$D+10000*$O+1000*$T+100*$C+10*$O+$M;
if ($s == $r) {
print "\nFOUND the solution: a=", $a, "b=", $b, "s=",
$s, "r=",$r;
print "\n W=", W, "D=", D, "O=", O, "T=", T, "G=", G,
"L=", L, "E=", E, "C=", C, "M=", M;
}
}
}
}
}
}
}
}
}
}


Java
public class GoogleSolver
{
public static void main(String[] args)
{
System.out.println("Program Start.");
int a=0, b=0, s=0, r=0;

for (int W=1; W <11; W++)
for (int D=1; D <11; D++)
for (int O=1; O <11; O++)
for (int T=1; T <11; T++)
{
System.out.println("looking for W="+ W+ " D="+ D+ " O="+ O+ " T="+ T);
for (int G=1; G <11; G++)
for (int L=1; L <11; L++)
for (int E=1; E <11; E++)
for (int C=1; C <11; C++)
for (int M=1; M <11; M++)
{
a = 100000*W+10000*W+1000*W+100*D+10*O+T;
b = 100000*G+10000*O+1000*O+100*G+10*L+E;
s = a - b;
r = 100000*D+10000*O+1000*T+100*C+10*O+M;
if (s == r)
{
System.out.println("FOUND the solution: a="+ a+ "b="+
b+ "s="+ s+ "r="+ r);
System.out.println(" W="+ W+ "D="+ D+ "O="+ O+ "T="+
T+ "G="+ G+ "L="+ L+ "E="+ E+ "C="+
C+ "M="+ M);
}
}

System.out.println("Program End.");
}
}


Ну и С++

#include 
using namespace std;

int main()
{
cout << "Program Start.\n";
int a=0, b=0, s=0, r=0;

for (int W=1; W <11; W++)
for (int D=1; D <11; D++)
for (int O=1; O <11; O++)
for (int T=1; T <11; T++)
{
cout << "\nlooking for W="<< W<< "D="<< D<< "O="<< O<< "T="<< T;
for (int G=1; G <11; G++)
for (int L=1; L <11; L++)
for (int E=1; E <11; E++)
for (int C=1; C <11; C++)
for (int M=1; M <11; M++)
{
a = 100000*W+10000*W+1000*W+100*D+10*O+T;
b = 100000*G+10000*O+1000*O+100*G+10*L+E;
s = a - b;
r = 100000*D+10000*O+1000*T+100*C+10*O+M;
if (s == r)
{
cout << "\nFOUND the solution: a="<< a<< "b="<< b<< "s="
<< s<< "r="<< r;
cout << "\n W="<< W<< "D="<< D<< "O="<< O<< "T="
<< T<< "G="<< G << "L="<< L<< "E="<< E<< "C="
<< C << "M="<< M;
}
}
}

cout << "\nProgram End.";
}


Результаты:
Perl: Program End. 2526.790u 0.310s 42:11.34 99.8% 0+0k 0+0io 244pf+0w
Python: Program End. 4494.230u 0.330s 1:15:00.51 99.8% 0+0k 0+0io 337pf+0w
Java: Program End. 38.847u 0.150s 0:38.86 100.3% 0+0k 0+0io 1pf+0w
C++: Program End. 37.420u 0.060s 0:37.92 98.8% 0+0k 0+0io 197pf+0w

Мой С++ мир разрушен окончательно...С++ оказался хоть и быстрее но столь незначительно...JIT оптимизация действительно сильная вещь...

Опаньки - С++ код компилировался без оптимизации...

Ну попробуем с оптимизацией:
C++: Program End. 8.030u 0.010s 0:08.41 95.6% 0+0k 0+0io 199pf+0w

Устоял...устоял мой изрядно обветшалый с++ мирок...:)

Итак - С++ практически в 5 раз быстрее чем java. С оптимизацией. На этом конкретном примере...
Ну а сама Java практически в более чем 100 раз быстрее чем Python. С оптимизацией. На этом примере. И всего лишь примерно в 67 раз быстрее Перла. С оптимизацией. На этом примере.

Мы делили апельсин...распил денег в гос. интернет-портале

Экслер отписался
Занимательно - сейчас сайт лежит находится в режиме закрытого тестирования...

пятница, 14 декабря 2007 г.

Люблю я хабру...но странную любовью

из очередного обсирасуждения IE хабарапиплами. Точнее по поводу последних исков от Opera.
так эпл прошу не загребать под одну гребенку!
во-первых: на маках раньше рядом с Сафари ставился ИЕ
во-вторых: апл не интегрирует сафари с ВМ - у мелких ИЕ для интернета и ИЕ для десктопа одно и тоже (даже папку с файлами в хтмл отображает - точнее то что справа) а у аплов Сафари это всетаки отдельное приложение для файлов есть финдер


как говорится для тех кто в курсе...

Тапёр в барделе...

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

Например - "сделать выборку из чисел меньше 5".
Детали:
Входные данные:
Массив из 10 чисел...
Массив из 1000 чисел...число теперь не 5 а 100.
Массив из 10000 чисел, число задается.
Массив из 10000 чисел, число задается, выборка предполагается примерно 100 раз в секунду.
Размер массива хотя и не очень большой но не известен, число не известно, но массив неизменен на протяжении всей жизни программы.
Массив уже не из чисел а из структур у которых одно из полей число
Массивов много, структуры разные, вызывается часто...
Массивов много, структуры разные, вызываются часто, размер массива большой.
Массивов много, структуры разные, вызываются часто, размер массивов не просто большой а Большой.
Массивов много, структуры разные, вызываются относительно часто, числа хоть и задаются но часто повторяются, размер массивов Большой.
Массивов много, структуры разные, вызываются относительно часто, числа хоть и задаются но часто повторяются, размер массивов не просто Большой а Очень Большой.
....

ЗЫ: навеяно все это видеороликом про Dryad: A general-purpose distributed execution platform

четверг, 6 декабря 2007 г.

Сравнение уязвимостей IExplorer и FireFox


Говорят что есть вещи про которые все всё знают...но приходит человек который не знает и делает открытие...
В блоге Джефа Джонса интересный пост про сравнение уязвимостей в популярных браузерах.

Полный отчет можно найти здесь: http://blogs.technet.com/security/archive/2007/11/30/download-internet-explorer-and-firefox-vulnerability-analysis.aspx

Реакция "как обычно"...

Робот-Санта от Микрософта жжот. Или "Микрософт убил Санту".

Робот-Санта от Microsoft рассказал детям об оральном сексе - неплохой заголовок?

Если бы...на самом деле все гораздо хуже. В заметке кстати многое указано неправильно. Вот диалог бота с пользователем.

El Reg says: pizza (pi)
Santa says: Yum! What do you want for Christmas, El Reg?
El Reg says: Maybe you shouldn't eat so much! You are quite large!
Santa says: My elves will get right on that. And what else are you wishing for this year, El Reg?
El Reg says: Maybe you shouldn't eat it?
Santa says: See if you can get someone else to eat it!
El Reg says: Eat it
Santa says: No thank you. I don't eat things!
El Reg says: Eat it
Santa says: See if you can get someone else to eat it!
El Reg says: Eat it
Santa says: You want me to eat what?!? It's fun to talk about oral sex, but I want to chat about something else...
El Reg says: You dirty bastard!
Santa says: I think you're dirty bastard.


По моему бот был вполне адекватен. Самое страшное - бот распознал игру слов. Для тех кто не в курсе примерный перевод:

El Reg says: Чупачупс (соска)
Santa says: Ням! Что ты хочешь на рождество, El Reg?
El Reg says: Может тебе не стоит так много есть? Ты достаточно большой!
Santa says: Видимо мои эльфы были правы на этот счет. И все же чего бы тебе хотелось в этом году, El Reg?
El Reg says: Может тебе не стоило сосать его?
Santa says: Найди кого-нибудь другого пососать его!
El Reg says: Пососи его.
Santa says: Нет, спасибо!
El Reg says: Пососи
Santa says: Найди кого-нибудь другого!
El Reg says: Пососи!
Santa says: И что ты хочешь чтобы я пососал?!? Прикольно конечно говорить об оральном сексе, но я бы хотел поговорить о чем нибудь другом...
El Reg says: Ты грязный ублюдок!
Santa says: Я думаю что это ты грязный ублюдок.


Боты начинают понимать "контекст" разговора... С таким подходом простейший способ выявления ботов (например начать разговор с "Whould you like to swing the star") не сработает...

Микрософт кстати бота прибила. С извинениями...(с интонациями Генри из "Собака Баскервилей") с извинениями...

Знаешь...нормальные люди просто заводят аквариумы...


Отличный комикс.

понедельник, 3 декабря 2007 г.

LiveJournal продан СУПу.

Avva огорчается, Брэд (А не брЕд) Фитзпатрик радуется

Microsoft vs Google

У меня в течении достаточно продолжительного времени формировалось ощущение некой негласной войны между Microsoft и Google. Большенство крупных компаний, конкурирующих в какой-то одной сфере вполне могут сотрудничать в другой. В случае "Microsoft vs Google" я долгое время наблюдал новости "Microsoft сделала A Google (в ответ) сделал B" и "Google сделал A Ьшскщыщае (в ответ) сделал B".
Еще один штрих к портрету:
Mozilla за прошлый финансовый год заработала $66.8 млн, из которых 85% - деньги Google за право быть поисковиком по умолчанию на стартовой странице и в поисковом окне броузера.

Т.е. $56.78 млн. "альтернативному броузеру" перепало от Google. За право быть поисковиком по умолчанию. А иначе "альтернативный броузер" поставил бы поиск от Microsoft,ага.