пятница, 25 июня 2010 г.

Mysql графика - ASCII :)

 Все мы любим диаграмм и графики. Многие слышали о символьных графиках (техника walking-string) и даже успешно применяли её на практике.
Например так:
SELECT id,CONCAT(REPEAT('-',(val*10+1)-1),'#',REPEAT('-',22-(val*10+1))) AS bar
FROM sample_values
LIMIT 20
+----+------------------------+
| id | bar          |
+----+------------------------+
|  0 | ----------#----------- |
|  1 | -----------#---------- |
|  2 | ------------#--------- |
|  3 | -------------#-------- |
|  4 | --------------#------- |
|  5 | ---------------#------ |
|  6 | ----------------#----- |
|  7 | ----------------#----- |
|  8 | -----------------#---- |
|  9 | ------------------#--- |
| 10 | ------------------#--- |
| 11 | -------------------#-- |
| 12 | -------------------#-- |
| 13 | --------------------#- |
| 14 | --------------------#- |
| 15 | --------------------#- |
| 16 | --------------------#- |
| 17 | --------------------#- |
| 18 | --------------------#- |
| 19 | -------------------#-- |
| 20 | -------------------#-- |
+----+------------------------+
20 rows in set (0.00 sec)
 Как видно из примера, для продолжительных графиков( ограничение число отображаемых строк в терминале) хотелось бы иметь более привычный горизонтальный график ( горизонтальная ось - х) - это возможно и строится такой график с помощью техники string unwalking. (пример ниже)
mysql> SELECT * from characters;
+---+
| c |
+---+
| h |
| e |
| l |
| l |
| o |
+---+
5 rows in set (0.00 sec)

mysql> SELECT GROUP_CONCAT(c separator '') AS s FROM characters;
+-------+
| s     |
+-------+
| hello |
+-------+
1 row in set (0.00 sec)

  Идея:
  1. задать удобные  граничные условия удобные для отображение (фикс. длинна, кол-во строк и т.д.) 
  2. построить строку по методу показанному выше (техника walking-string)
  3. после построение, осуществить её поворот - транспонирование (техника string unwalking)
 SELECT
GROUP_CONCAT(SUBSTRING(bar,tinyint_asc.value,1) ORDER BY id SEPARATOR '') AS `Sinus graph`
FROM
tinyint_asc
INNER JOIN (
SELECT
id,
CONCAT(REPEAT('-',(val*10+1)-1),'#',REPEAT('-',22-(val*10+1))) AS bar
FROM
sample_values
LIMIT 50) sel_graph
WHERE
tinyint_asc.value BETWEEN 1 AND CHAR_LENGTH(bar)
GROUP BY
tinyint_asc.value
ORDER BY
tinyint_asc.value DESC;

+-----------------------------------------------------------------+
| Sinus graph                                                     |
+-----------------------------------------------------------------+
| ----------------------------------------------------------------|
| -------------######---------------------------------------------|
| -----------##------###------------------------------------------|
| ---------##-----------#-----------------------------------------|
| --------#--------------##---------------------------------------|
| ------##-----------------#--------------------------------------|
| -----#--------------------#-------------------------------------|
| ----#----------------------#------------------------------------|
| ---#------------------------#-----------------------------------|
| --#--------------------------#----------------------------------|
| -#----------------------------#---------------------------------|
| #------------------------------#-------------------------------#|
| --------------------------------#-----------------------------#-|
| ---------------------------------#---------------------------#--|
| ----------------------------------#-------------------------#---|
| -----------------------------------##----------------------#----|
| -------------------------------------#--------------------#-----|
| --------------------------------------#-----------------##------|
| ---------------------------------------#---------------#--------|
| ----------------------------------------##-----------##---------|
| ------------------------------------------##-------##-----------|
| --------------------------------------------#######-------------|
+-----------------------------------------------------------------+

Можно почитать: http://code.openark.org/blog/mysql/rotating-sql-graphs-horizontally

DD-WRT + 3g modem

http://www.dd-wrt.com/phpBB2/viewtopic.php?t=61099

multiple uplink

Интересная статейка.
http://www.tipsternet.com/articles/advance%20routing.htm

странный но забавный проект на google codes

http://code.google.com/p/muggles/

Простой проект по рулению uplink`ами - очень простой :) но есть заготовка под интерфейс.

tc qos htb/hfsc tools ....

Очень давно занимался тематикой qos, совсем недавно пришлось разбираться что к чему - помогли утилиты:
http://pawilcz.eu/index.html

По мере продвижения в теме - буду править пост.

четверг, 24 июня 2010 г.

Онлайн мессенджер всего IMO.IM

  Если человеку нужно общаться в Skype, MSN, ICQ, Google Talk, Myspace, Facebook  и во всем одновременно - штука как раз для него :)

Kerrighed - кластер

Захотелось объединить горку старого железа в большую железку SSI :) Забавно!

http://goo.gl/q7WN

вторник, 22 июня 2010 г.

HFS - передача файлов между windows машин.

HFS ~ Http File Server
Очень простенький и одновременно очень нужный софт для вЫндЫ - обмен файлами через HTTP  - ну вообщем вот и ОНО
на всякий случай процитирую офиц. сайт :" ЭТО сверху работает под WINE" бл... так и до резиновых женщин не далеко.

PS: Напомню под linux`ом это делается чудовищно тяжело например так:  
python -m SimpleHTTPServer

воскресенье, 13 июня 2010 г.

работа с SNMP

Возникла необходимость поработать с SNMP.

отличная старенькая статья - по курсу молодого бойца SNMP-tools + работа  с MIB
+
поиск самих недостающих MIB http://www.mibsearch.com/

суббота, 5 июня 2010 г.

jQuerytools - вспомнил, как только забыл...

http://flowplayer.org/tools/index.html
 Если уважаемый читатель, читал мой блог ранее он знает, что:
Из за увеличения пользователей web-приложениями, изначально написанными для единичного/личного использования пришла мысль о оптимизации
 Пришла и сразу как-то вспомнилось что писалось всё(backend+frontend) на perl, интерфейс в итоге получился хуе...,не современным и работает все на самописных а`ля web services - мягко сказать не быстро и задор угас ...
 Погрустив интерфейс  ~30 минут вспомнил про jQueryTOOLS - что получилось напишу чуть позже. Интерфейс стал намного современнее и наконец-то появился input check

Системы автоматизации администрирования большого числа серверов.

Когда число серверов переваливает за 50, невольно задумываешься о управлении инфраструктурой, задумался.
Буду краток:

cfengine - http://www.cfengine.org/
chef  - http://www.opscode.com/chef/
puppet - http://projects.puppetlabs.com/

WEB - Оптимизация - NoSQL

Из за  увеличения пользователей web-приложениями, изначально написанными для единичного/личного использования пришла мысль о оптимизации, первые  шаги:

Присматриваюсь:
http://highload.org/

Так же пробую memchaced, по ссылке ниже подарок от Tweeter - "peep" получаем доступ к внутренним структурам сервера с последующим анализом полученного:
http://goo.gl/Vr7f

Гост 34 и Гост 19 - Техническая документация

 Данные госты в нашей стране применяются для создания программ и автоматизированных систем, хотя и добровольно. Почитав стало "немного" проще работать с заказчиками .

Для начала можно/нужно прочесть например вот это http://goo.gl/uVe2, там же можно почитать и про техническую документацию.