Monthly Archives: October 2012

DreamHost FAIL (another one)

от Ясен Праматаров
лиценз CC BY

DreamHost са пълни смешници! Казвал съм го и преди, но това вече прелива чашата. Единствената причина да не се махам от тях толкова време е, че все нямам време – имам доста неща за местене, не е просто едно блогче на уърдпрес. А, и другата причина е, че не са български хостинг. Не ми се задълбава в тая насока, но накратко аз доверие нямам по принцип на споделените хостинги, та камо ли ако са български. Всички oversell-ват, при това яко, масово нямат даже ssh, по-специализираната поддръжка е под всякаква критика, а и данните са ми в държава, управлявана от луди алчни нарцистични властолюбиви… хора.

Но за Дриймхост – вижте сега, казвате, че правите “Proactive Security Maintenance” чрез “(New Login Keys)”. Похвално, но:

1) нито е “proactive”, защото го пишете постфактум,

2) нито е “security”, защото НЕ Е и си е покана “елате ни направете MITM” и

3) що не вземете да се гръмнете с вашите циркулярни писма, в които пишете оригиналности и тъпотии, а когато има нещо сериозно – правите проактивно действие, което нито е действие, нито е проактивно.

Толкова съм потресен, че чак не ми се обяснява. Нямам думи направо. Който знае за какво става дума или има време да порови, ще разбере… Вижте, дори уеб-страницата, на която е “обявлението”, не е през SSL, а си е по чист HTTP. Даже когато го видях снощи, съобщението си беше с цитиран ключа на съответната система, която за пример са достъпили… После са го заменили с “removed for security reasons”… Всъщност защо не пуснахте ssh id-то? Щото трябва да пуснете тези на всичките ви хостове, не само на този, който сте пробвали в примера, и това ви се е видяло много като текст? В коментарите някой се беше опитвал да трие ред с номер 10278, който също е от примерната система на админа в Дриймхост… (Сега поне знаем, че някой от техните админи има поне 10278 хоста в known_hosts, макар че какво ни интересува.)

Имат ми пощенския адрес. Даже ми имат два. Имат списък за циркулярни писма, с които спамят потребителите си за глупости. Имат административен панел, в който се влиза с парола и който е по https, където можеха да направят някаква автоматика за това… или изобщо ако бяха пуснали съобщението в админ-панела, щеше да е сто пъти по-добре. Защото вече си влязъл, вече си се доверил на панела. А така, в някакво си сайтче?

Чак ми става кофти, че такива смешници се опитват да се набъркат в OpenStack. Къш бе!

Аматьори.

Извън Надежда

от Ясен Праматаров
лиценз CC BY

За нас си е значимо и определящо – вече не сме в “Надежда”. Не че няма надежда за нас, напротив – това е част от движението напред, все натам, към мечтите. Част от по-добрата грижа за децата ни, част от решението след достатъчно дълго търпене на неправилни неща, вече просто да не ги позволяваме. Преместихме се от Надежда в центъра. Или почти в центъра – преди сто години си е било поле далеч извън града, после дълго е било с малко къщи, а сега не знам къде да си паркираме колата. Живея на улица с име на български цар с моето име. Ха сега да ви видя! :)

Невъзможността да паркирам близо до жилището си е огромно неудобство. Мъкненето на торби през две-три пресечки е ужасно – няма проблем, ако са торби с покупки за деня, но когато се налага да се допренася покъщнина, книги, дрехи или просто да се пазарува за седмица напред е остро неприятно. Най-малко коли има в неделя привечер – когато са най-малко колите на работещите в центъра и цялата армада служебни коли. Понеже сега вече ходя на работа пеша (два километра в самия център, в посока към “зоните” – няма как иначе), колата си стои по цяла седмица където съм я оставил в неделя вечерта. Интересното идва, когато през седмицата ни се наложи да идем някъде – я на пазар, я нещо друго – тогава паркирам на още по-далечно място, където успея да намеря свободно. Лош момент е и това, че вече сме под наем, но се надявам да го преодоляваме леко.

Всичко ни е близо, има много магазини, макар и скъпички, има много транспорт, макар и неуреден, тротоарите са изпотрошени, улиците са с дупки или с разкривени павета. Кина почти няма, но утехата е, че “ей-къде ни е операта, ей-къде са ни театрите”. Мда. Но пък има неща за децата наблизо – Светко вече ходи на английски и шашва госпожата със знанията си. И училището, където е на предучилищна, е близо и е ОК, поне засега.

Имаме парк на по-удобно и близо място от Северния в Надежда. Надежда и Северният парк са си страхотни, но просто ни беше далече, в другия край на квартала бяхме. Имаме и повече спокойствие сега – няма диви селяни под нас, а и стените не са панелни, та и да вдигаме тупурдия с децата, пак не е толкова критично, надявам се.

И те така. Бавно, славно. Скоро пък и фирмата се мести в нов офис и ще работя на две-три минути от нас. Ако някой ден стане възможно да работя отдалечено, още по-добре.

Извън Надежда

от Ясен Праматаров
лиценз CC BY

За нас си е значимо и определящо – вече не сме в “Надежда”. Не че няма надежда за нас, напротив – това е част от движението напред, все натам, към мечтите. Част от по-добрата грижа за децата ни, част от решението след достатъчно дълго търпене на неправилни неща, вече просто да не ги позволяваме. Преместихме се от Надежда в центъра. Или почти в центъра – преди сто години си е било поле далеч извън града, после дълго е било с малко къщи, а сега не знам къде да си паркираме колата. Живея на улица с име на български цар с моето име. Ха сега да ви видя! :)

Невъзможността да паркирам близо до жилището си е огромно неудобство. Мъкненето на торби през две-три пресечки е ужасно – няма проблем, ако са торби с покупки за деня, но когато се налага да се допренася покъщнина, книги, дрехи или просто да се пазарува за седмица напред е остро неприятно. Най-малко коли има в неделя привечер – когато са най-малко колите на работещите в центъра и цялата армада служебни коли. Понеже сега вече ходя на работа пеша (два километра в самия център, в посока към “зоните” – няма как иначе), колата си стои по цяла седмица където съм я оставил в неделя вечерта. Интересното идва, когато през седмицата ни се наложи да идем някъде – я на пазар, я нещо друго – тогава паркирам на още по-далечно място, където успея да намеря свободно. Лош момент е и това, че вече сме под наем, но се надявам да го преодоляваме леко.

Всичко ни е близо, има много магазини, макар и скъпички, има много транспорт, макар и неуреден, тротоарите са изпотрошени, улиците са с дупки или с разкривени павета. Кина почти няма, но утехата е, че “ей-къде ни е операта, ей-къде са ни театрите”. Мда. Но пък има неща за децата наблизо – Светко вече ходи на английски и шашва госпожата със знанията си. И училището, където е на предучилищна, е близо и е ОК, поне засега.

Имаме парк на по-удобно и близо място от Северния в Надежда. Надежда и Северният парк са си страхотни, но просто ни беше далече, в другия край на квартала бяхме. Имаме и повече спокойствие сега – няма диви селяни под нас, а и стените не са панелни, та и да вдигаме тупурдия с децата, пак не е толкова критично, надявам се.

И те така. Бавно, славно. Скоро пък и фирмата се мести в нов офис и ще работя на две-три минути от нас. Ако някой ден стане възможно да работя отдалечено, още по-добре.

Среща с Рама

от Палатков лагер зa пингвини
лиценз CC BY-ND
Среща с Рама
Артър Кларк







Вече забравих преди колко месеца я прочетох. Помня колко смислена и лаконична е книгата. И колко въобрaжение може да се изсипе, дори когато трябва да спазваш всички физични закони на Вселената.

Огромен непознат обект се появява в Слънчевата система и приближава слънцето. Произходът му не е естествен, видно от перфектната цилиндрична форма с размери 50км. дължина и 20км. в диаметър. Хората не са сигурни дали цялата ситуация е закачливо намигване или тик, но решават да изпратят кораб, който да провери дали това е събитието на столетието или на събитието на хилядолетието. Кръщават кораба Рама.
Представете си, че влизате в мрака на такъв цилиндър. Сега си представете, че нещо започва да свети. И че няма никакво време, защото Слънцето е все по-близо, а заледеното море се връща към живот.

Стегнато, умно, смислено, логично. В мрака на Рама вселенските правила също трябва да се спазват. Променливата гравитация ще се отрази на физическата ви издръжливост, а метеорологичният модел на завихрящите се въздушни маси в сърцето на космически кораб не е майтап.
Препоръчва се на мислещи хора в научно-популярно настроение. Да се избягва от търсачи на високи литературни скокове.

ОЦЕНКА ПО ОРАНЖЕВАТА СКаЛА: 5/6 - А, пасатите!

Still standing…

от Йордан Радунчев
лиценз CC BY

Помните ли, как през лятото си трансформирах работното място? Сигурно се чудите какво става и дали все още работя прав. Да, все още работя прав. Не, нямам никакво намерение да сядам отново. Защо? Разгледайте отново снимките, които съм направил на 2012-06-25... А сега разгледайте тази снимка:

Тадаааа! Пълна промяна!

Дали намирате някаква разлика, а :)

Естествено тази промяна не се дължи само и единствено на прехода от седнало към изправено положение. Дължи се най-вече на строг режим на хранене и повишена физическа активност. Но част от тази повишена физическа активност е именно прекарването на 8-9 часа дневно изправен на крака, вместо седнал на задник. Смятам за момента да спра до тук с привеждането на факти за ползата от правостоящото работно място в сравнение с офисния стол. Смятам, че този "факт" на днешната снимката, въпреки че е с двадесет килограма по-лек от онзи на снимките, правени преди три месеца, тежи достатъчно.

Отворените данни в страната на Линукс

от Йордан Радунчев
лиценз CC BY

Тези дни от Държавния архив направиха данните за всички загинали в Балканската война достъпни на специален Интернет сайт: http://archives.bg/balkanwars/. Наистина не по най-удобния за използване и обработка начин, но не им се сърдя - те също се учат в движение, достатъчно е, че са тръгнали в правилната посока. Боян Юруков, който вероятно влага най-много усилия в каузата "Отворени данни" у нас, е изтеглил всичката информация от сайта и след допълнителна обработка, я е публикувал на този адрес: http://opendata.yurukov.net/balkanwars/, като CSV файл с табулация за разделител на полетата. Целта на този текст е да ви покаже как може да използвате основни Линукс инструменти за обработка на подобни данни.

И така, имаме CSV файл. Тоест - обикновен текстов файл съдържащ данни, структурирани по определен начин. Всеки ред от този файл представлява запис за един човек. Всеки запис се състои от няколко полета, разделени с табулация едно от друго. Първият ред-запис във файла представлява всъщност списък с етикетите на отделните полета в реда по който са подредени във всеки ред-запис. Ако сте изтеглили файла с данните от сайта на Боян, можете да го отворите и да погледнете - петото поле на всеки ред-запис съдържа фамилията на човека, за когото е записа. Дванадесетото - датата на смъртта му. И така нататък. Така са организирани данните.

В Линукс, когато стане дума за текстов файл, записи по редове, данни по полета - веднага се сещаме за awk. С негова и на приятелите му помощ, можем да извлечем информация от данните. Приятелите на awk са sort и uniq. И така - може би ви интересува в битките при кои населени места, българската армия е дала най-много жертви? Във файла информацията за мястото на смъртта се съдържа в поле 13 от всеки запис. С awk можем да извадим само него от всички данни. Със sort ще сортираме резултата от работата на awk. Инструмента uniq, извикан по подходящ начин, ще преброи колко пъти се среща всяко име в подредения от sort списък. Резултата от uniq ще дадем отново на sort, като този път го помолим да го сортира в обратен ред - от най-голямата стойност към най-малката. И тъй като ни интересуват само най-големите стойности, ще извикаме head и ще поискаме от него само първите десет стойности от списъка, изготвен от sort. Следите ли мисълта ми? Ето я цялата операция в един команден ред:

awk 'BEGIN{FS="\t"}{print $13}' zaginali.csv | sort | uniq -c | sort -nr | head -n 10 
Красиво :) Резултата от изпълнението изглежда така:
    2659 
    1684 Чаталджа
   1502 Одрин
   1168 Чорлу
   1156 София
   1044 Бунар Хисар
    817 с. Тарфа
    801 Лозенград
    739 с. Калфа кьой
    718 Хисар

За 2659 от загиналите липсва информация къде са загинали. 1156 са починали в София - вероятно става дума за ранени и болни, евакуирани и починали в болници.

Малко по-подробен поглед върху awk частта... Това което е оградено с '' представлява "програмата", която искаме awk да изпълни върху всеки ред от файла, който му даваме. Ето съставните й части и коя какво прави:

  • BEGIN{FS="\t"} - указва на awk, че за разделител между полетата в записа използваме табулация. Налага се, защото по подразбирне awk използва интервал за разделител. BEGIN казва на awk да изпълни инструкциите в следващия блок {} преди да започне да обработва файла.

  • {print $13} - инструктираме awk да отпечата 13 поле от всеки ред-запис във файла zaginali.csv.

Това е почти най-простия начин да се използва awk. Толкова прост, че чак е обиден за него и вероятно тук бихме могли да използваме cut вместо awk.

Със същия команден ред, като го насочим към друго поле от данните, можем да извадим различна информация. Например за това кой войнишки набор е дал най-много жертви в Балканската война - набора на загиналите е посочен в седмото поле..

awk 'BEGIN{FS="\t"}{print $7}' zaginali.csv | sort | uniq -c | sort -nr | head -n 10

    14337 
    2985 1906
    2326 1908
    2300 1907
    2297 1905
    1886 1904
    1807 1909
    1640 1911
    1615 1910
    1512 1912

За 14337 души липсва информация от кой набор са. От останалите, за които има такава - най-голям брой жертви е дал набор 1906 - 2985 човека. До тук видяхме, че с прости и достъпни във всяка Линукс дистрибуция инструменти, можем да извличаме информация от данните, задавайки прости въпроси. А ако искаме да зададем по-сложен въпрос, който да ни даде по-специфична информация? Например - кой войнишки набор е дал най-много жертви в боевете при Одрин? На практика комбинираме двата прости въпроса, които използвахме в примерите до сега. Истината е, че в примерите до сега не сме използвали и 5% от мощта на awk. За него подобни задачи са тривиални.

awk 'BEGIN{FS="\t"}$13~/Одрин/{print $7}' zaginali.csv | sort | uniq -c | sort -nr | head -n 10

    476 
     77 1906
     66 1905
     62 1894
     59 1912
     59 1895
     57 1908
     56 1904
     50 1910
     45 1893

Въобще не го затруднихме - поискахме полетата с набора, но само на записите в които полето за място на смъртта съдържа Одрин. И после sort, uniq и head свършиха своята част от задачата. Най-много жертви при Одрин е дал набор 1906... А къде е дал най-много жертви въпросният героичен набор 1906? Да попитаме:

awk 'BEGIN{FS="\t"}$7~/1906/{print $13}' zaginali.csv | sort | uniq -c | sort -nr | head -n 10

    118 
    101 Чаталджа
     91 Чорлу
     78 с. Тарфа
     75 Бунар Хисар
     71 Одрин
     61 Щип
     52 Хисар
     48 с. Криволак
     46 Лозенград

В боевете при Чаталджа...

Тъй като в последните два примера усложнихме въпроса, инструкциите към awk също леко се усложниха.

  • BEGIN{FS="\t"} - това вече го знаем. Уведомяваме awk, че разделителя в нашия файл е табулация.

  • $7~/1906/{print $13} - тук отново искаме от awk да отпечата поле №13, но под условие! Условието е поле №7 да съдържа 1906 - ако там има друга, различна година, не го искаме. За това пред инструкцията за отпечатване на поле №13 сме сложили условието $7~/1906/... Сега awk ще погледне какво има в поле 7 и ако там стои 1906, ще продължи с изпълнението на инструкциите в блока {}, ако няма 1906 - ще мине направо на следващия ред-запис, без да отпечата нищо.

Виждате, че Linux има всичко необходимо, за да отговори на въпросите ви, стига вие да можете да ги формулирате правилно и да му дадете база от данни, от която да извлече отговора. А ако впрегнете и gnuplot - ще се сдобиете и с красиви графики, които да визуализират информацията ви. Но за това друг път.