Author Archives: Йордан Радунчев

LTO barcode labels

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

Не е достатъчно да се прави бекъп редовно. Необходимо е архивираните данни да са лесно достъпни и бързо откриваеми, представяте ли си да се наложи да претърсите 50 касети по 2.5TB, докато откриете файла, който ви е необходим? Модерните системи за бекъп поддържат подробни каталози на архивираните данни - кое на коя касета се намира. За това е важно касетите да са надлежно надписани. Най-добре с баркод, който самата система за архивиране може да чете и обработва. Всеки производител на касети за бекъп предлага и етикети за тях. Цветни, нарязани, готови за лепене. Почти идеални, само с един недостатък: невъзможност за "персонализиране". Няма как да се кодира собствена схема за обозначаване на касетите. Не е гот. Естествено има и много комерсиален софтуер за генериране и печатане на баркодове. Естествено има и много безплатен и свободен такъв. Като barcode. С него и малко bash магия ще си напечатате колкото си искате етикета за бекъп касетите по каквато си искате схема. Етикета на моите касети за ежедневни архиви започва с D (daily), има петцифрен пореден номер и, съгласно възприетите практики, завършва с L6, понеже е LTO6. Този bash код ми генерира една страница А4 с 57 етикета на нея:

for ((i=1; i<=57; i++)); do printf "D%05dL6n" $i; done | 
barcode -u mm -t 3x20 -g 79x17 -o label.ps -e code39 -p 210x297 -m 3,2 -c

Изглеждат ето така:

LTO6 Labels - Daily

Github, отвори се!

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

Един alias в моя alias_git, който може да ви се стори интересен и полезен, може да се използва и като добър пример за използването на pipes на командния ред в Линукс, и като илюстрация на sed. С този alias от командния ред отварям в браузъра github страницта на репозиторито в което работя в момента.

alias gh="git config --get remote.origin.url | sed 's/git@/https:///g;s/:///g;' | xargs /usr/bin/chromium %U 1>/dev/null 2>&1 &"

Отделните стъпки са следните:

Взимам URL-а на репозиторито така както е дефинирано в config-а:

git config --get remote.origin.url

Със sed заменям ':' с '/' и 'git@' с 'https://' в URL-а:

sed 's/git@/https:///g;s/:///g;'

Резултата подавам на chromium с помощта на xargs:

xargs /usr/bin/chromium %U 1>/dev/null 2>&1 &

Разбира се, има какво да се подобрява - например какво се случва, ако го използвам в обикновена директория, а не в репозитори? Правилно - отваря ми празен браузър. А може да се сложи проверка и да не се отваря изобщо нищо. Ето нещо над което да поработите.

Васил Левски – украинец?!

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

От няколко дни сме свидетели на борбата на украинците - борят се да изтръгнат родината си от прегръдката на руската мечка, борят се да останат част от Европа, а не отдел от азиатския департамент на имперската канцелария. Всички следим новините от там, наясно сте, да не ви обяснявам и да изпадам в патетични излияния.

В Украйна, както е известно на всеки български патриот и родолюбец (а дали?), има огромно множество хора, които се определят като българи по националност и етническо самосъзнание. Толкова огромно, че правото им да се наричат българи е признато от държавата и си имат собствено политическо представителство в парламента, както и редица други права като училища на български и т.н. В събота, в предаване по БНТ (или бТВ), водещия включи директно по скайп един от българските депутати в украинския парламент. Естествено по повод събитията в Украйна след решението на парламента им да завие към Русия, вместо към Европа. Първият още въпрос беше - А какво мислят българите в Украйна, каква е тяхната позиция? И от отговора аз лично получих едновременно просветление относно исконната същност на българската душевност и сърдечен удар. Българските депутати в украинския парламент... подкрепят решението за по-тесен съюз и обвързване с Русия, за сметка на влизането на Украйна в ЕС. Толкоз. Защо? Защото по времето на СССР имали сигурност, имало грижа на държавата за тях, имало отворени читалища във всяко село, имало работа, имало ред - за всичко това се грижела СССР. И тука ми светна. Чакай! Този отговор съм го чувал! Това е стандартната мантра на всеки червен носталгик, осъзнат или латентен комунист, у нас, в България! Тези хора са наистина българи, Господи! Макар и от векове откъснати от България, че как да мислят друго? Те са българи.

Нали сте говорили с червени носталгици? Всичко, в края на всичко, се свежда до едно, всеки пример за това колко анти-човешка идеология е комунизма се парира с едно: Абе да бе, абе може да е било сякакво при Живков, ама поне е имало СИГУРНОСТ, поне НЕ НИ СЕ Е НАЛАГАЛО ДА МИСЛИМ за работа, НЕ НИ СЕ Е НАЛАГАЛО ДА МИСЛИМ за прехрана. Това е, драги. Това е истината - българина най-МРАЗИ да мисли. Той мечтае да не му се налага да МИСЛИ. Някой друг да мисли за него - за читалищата му, за културните му домове, за работата му, за всичко. Ама за всичко! Нали помните оня виц за Тодор Живков, в който открива нова детска градина? "Партията ви направи детска градина, хо хо хо!" - "Ама, другарю Живков, ние деца нямаме..." - "Е па и деца ше ви направи партията хо хо хо хо!" И всички дружно се смеем... Ама не е виц. Не съм убеден, че е виц. Това е еманация на най-дълбокото и съкровено желание на българина. ДА НЕ МИСЛИ ЗА НИЩО. Като прасе в кочина. Сипват му помия, чистят му от време на време, макар и рядко, лайната. На завет е. Е, не са идеални условията, може и по-добре да се живее, нали... ама НЕ НИ СЕ НАЛАГА ДА МИСЛИМ! Ако трябва по-добре да живеем, ще ни се наложи да мислим сами за себе си. Да, там някакви някъде по света по-добре живеят, ама пък то живот ли е тяхното бе - НАЛАГА ИМ СЕ ДА МИСЛЯТ!!

И в България, и в Украйна и на всякъде по света българинът си е българин. Можеш да го присадиш в какви ли не условия, ще вирее... издръжлив е. И при комунизъм, и при капитализъм, и при монархия, и при демокрация, и на течение... Само не го карай да мисли! Сакън. Истинският българин не мисли! Мрази да мисли. И не мисли.

Да ме прощават патриотите, но всичките им кумири - и Паисий, и Раковски, и Ботев, и Левски, и Бенковски, и Захари Стоянов - всички те очевидно не са българи. Всички вкупом не издържат теста по българщина. Те са имали отчетливо изразени вредни склонности към мислене. Толкова ярка анти-българска черта. Били са украинци... най-вероятно. Приличат на украинци - поне по любовта им към и жаждата им за Свобода. А може и папуаси да са... Но определено не са българи. И аз не съм българин.

Too many folders too little time

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

Напоследък все повече затъвам в Microsoft среда и се налага да се оправям със всякакви казуси в нея. Последно се наложи да намеря лесен начин да се даде достъп на група потребители в Exchange до дърво от папки в мейлбокс. Проблема е, когато имате добре развита структура от папки и подпапки в един мейлбокс - абсурдно е да цъкате на всяка една папка и да давате достъп до нея потребител по потребител. Майкрософт са проявили здрав разум и са имплементирали Exchange Management Shell - среда, в която можете да автоматизирате със скрипт такива задачки (и която поразително наподобява bash, дори заимства негови функции и команди - защо ли?).

И така, имате си един мейлбокс с подобна струкутра в него:

  \RootFolder
                \SubFolder1.0
                               \SubFolder1.1
                                               \SubFolder1.1.1
                               \SubFolder1.2
                \SubFolder2.0

Като дълбочината и разклонеността на дървото е без значение. Задачата е да дадем достъп на група потребители до всички папки под RootFolder (или под SubFolder1.0, или под SubFolder1.1 - принципа е същия). След кратко ровене из Нета от няколко парчета код се получи следния скрипт:

$mbox="Shared.Mailbox"
$usrs=( "User.Name1", "User.Name2", "User.NameN")

ForEach($fldr in (Get-MailboxFolderStatistics $mbox | Where { $_.FolderPath.Contains("RootFolder") -eq $true })) {  
    $fldrname = $mbox + ":" + $fldr.FolderPath.Replace("/","\");

    #Remove existing permissions
    ForEach($itm in (Get-MailboxFolderPermission $fldrname | select User,AccessRights)) {
        if (($itm.User -notlike "Default") -and ($itm.User -notlike "Anonymous")) {
        Remove-MailboxFolderPermission $fldrname -User $itm.User -confirm: $false
        }
    }

    #Add new permissions
    ForEach ($usr in $usrs){
        Add-MailboxFolderPermission $fldrname -User $usr -AccessRights NonEditingAuthor
  }
}

Некои съображения... Понеже използвам Add-MailboxFolderPermission, а той не променя вече съществуващи права за достъп на потребител, а само добавя нови такива, се налага първо да изчистя всички права за достъп до папката - защото ако се опитам да дам достъп на потребител, който вече има достъп до папката, то Add-MailboxFodlerermission ще се възмути и ще изплюе грешка... Което не е фатално, скрипта ще продължи нататък със следващия потребител от списъка usrs, но ще изглежда грозно на екрана хехехе. Пък и в конкретния случай, за който ми трябваше, този подход ме устройва, защото освен да се даде достъп до папките на някои потребители, се налага и да се премахне достъпа до тях на други потребители - та с един куршум отстрелях два заека (кажете после, че не ме мързи). Ще ви подскажа обаче, че за промяна на права за достъп се използва Set-MailboxFolderPermission - ако ви трябва друг подход, оправяйте се :) За параметрите на Add-MailboxFolderPermission и компания питайте Гугъл и Майкрософт.

Dual head setup с Linux

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

Dual head setup е работна станция (десктоп, лаптоп) с включени към нея два екрана. Идеята е да се увеличи площта на работния плот, като така стане възможно да имате отворени повече приложения И да ги следите едновременно, защото прозорците им не се припокриват.

Dual Head Setup

Когато говорим за десктоп, трябва да е ясно, че се нуждаете от видеокарта, която има два изхода, или специален сплитер. Този вариант не е предмет на тази статия.

Друго приложение на този сетъп е при изнасяне на презентации с лаптоп - мултимедийния проектор играе ролята на втори дисплей, на който може да прехвърлите слайдовете за публиката, докато на основния дисплей на лаптопа сте отворили бележките си.

Как се прави това под Линукс? Лесно. Повечето мейнстрийм графични среди за Линукс ви предлагат инструменти с които да направите необходимите настройки. Обикновено след като включите външен дисплей към извода на лаптопа си, в аплета за настройка на дисплея се появяват и двата - вградения и външния - и имате възможност да ги управлявате от там.

Обаче аз искам да ви покажа как да го направите от командния ред - защото може, а и защото може да попаднете в ситуация, когато лесния вариант не е под ръка.

Използва се xrandr - приложение разработвано и поддържано от freedesktop.org, базирано на RandR X протокола. Много накратко казано това е протокол за откриване, конфигуриране и прочие на дисплеи. xrandr е част от стандартния Xorg пакет, така че се намира на всяка машина с инсталиран X.

Нашия сценарий е прост - презентатор с линукс лаптоп и мултимедиен проектор. Първата стъпка е да включите проектора към VGA извода на лаптопа. След това да прегледате как го намира Xorg:

09:14:40 yradunchev:~ $ xrandr -q   
Screen 0: minimum 320 x 200, current 1024 x 600, maximum 4096 x 4096   
  LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 195mm x 113mm   
     1024x600       60.0*+   
     800x600        60.3     56.2     
     640x480        59.9     
  VGA1 connected (normal left inverted right x axis y axis)   
     1440x900       59.9 +   75.0     
     1280x1024      75.0     60.0      
     1280x960       60.0      
     1152x864       75.0      
     1024x768       75.1     70.1     60.0      
     832x624        74.6      
     800x600        72.2     75.0     60.3     56.2      
     640x480        72.8     75.0     66.7     60.0      
     720x400        70.1      
09:14:43 yradunchev:~ $     

Както виждате, xrandr -q ще покаже всички дисплеи, които открива, както и всички възможни режими на работа, които те предлагат. LVDS1 e основния, вградения дисплей на лаптопа, а VGA1, логично, е проектора включен към VGA изхода на лаптопа. За да го използвате, издавате следната команда към xrandr:

09:34:50 yradunchev:~ $ xrandr --output VGA1 --mode 1440x900 --right-of LVDS1

Това ще "добави" екрана на проектора към десктопа ви, в дясно от основния - това значи, че ако мръднете в с мишката надясно от дясната граница на основния екран на лаптопа, ще се озовете на екрана на проектора. Можете просто да завлачвате прозорци от основния екран надясно, за да ги видите на проектора. Когато пожелаете да изключите сигнала към проектора:

10:20:10 yradunchev:~ $ xrandr --output VGA1 --off

И шоуто приключва. Из Интернет можете да намерите шел скриптове, които можете да закачите за някоя клавишна комбинация или функционален/мултимедиен бутон на лаптопа си, и с тяхна помощ да включвате и изключвате външния екран в различни комбинации с основния. Тук няма да давам такъв, това ще ви е за домашно. :)

Колко далеч мога да стигна… в офиса?

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

Работата в офис, на бюро, не бива да бъде причина и/или оправдание да лишите тялото си от движение, като го държите закотвено в стола по 8-9 часа всеки ден. Така нанасяте сериозни щети на здравето си в дългосрочен план. Доказано е, че дори да посещавате фитнес два пъти седмично, тази епизодична активност не може да компенсира ежедневното обездвижване за времето прекарано в офиса. Несериозно е да се мисли, че два-три часа фитнес могат да неутрализират ефекта на 30-40 часа седмично почти пълно обездвижване от кръста надолу. Проблема е много по-сериозен от колкото хората осъзнават. Прекарването на дълги, непрекъснати периоди в седнало положение води до изменения в начина по който функционира организма ви, и то не само на чисто физическо ниво, но и на хормонално, химическо, психологическо. Не си помагаме и в извън работно време - обикновено социалната активност се изчерпва отново със седене - на кафе, на вечеря навън, на кино, на театър, на спортно мероприятие. Или просто пред телевизора у дома. Седим. Замислете се колко време точно прекарвате в седнало положение. Стреснахте ли се? За щастие има начини да обърнем нещата.

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

И пълен с планове за бъдещето. Един от тях е проект, свързан със здравето и физическата активност в офисна среда. Нали знаете, че апетита идва с яденето.

На много места в Интернет можете да прочетете за хора, които са инсталирали пътечки за бягане до или направо под бюрото си, за да могат да се "разхождат", докато изпълняват задълженията си. Дори има фирми за офис мебели, които предлагат специално конструирани за целта бюра. Искам да проверя на практика дали това работи така добре, както се твърди.

Поставил съм си за цел да сваля теглото си до нормите за ръста ми. Имам още около десетина килограма за отмятане и мисля да ги разкарам, докато работя. За целта искам да се сдобия с ето това чудо - Магнитна бягаща пътека Actuell. Ще го монтирам под бюрото си. Цената, както се вижда е грубо 300 лева. Мисля да финансирам този проект чрез набиране на средства през Интернет - тоест каня ви да се включите. В края на тази статия ще посоча банкова сметка, ако ви е интересно дали е възможно да се реализира такава инсталация в офис, ще има ли ефект от нея и колко голям ще е той, можете до края на месеца да преведете по нея каквато сума намерите за добре. Набирането на средства ще приключи на 28 юни 2013. Ако сумата надхвърли 300 лева, остатъка ще внеса като дарение за SOS Детски селища. Ако не се съберат поне две трети от сумата (200лв) всичко събрано ще отиде за SOS Детски Селища и проекта се отлага за неопределено време.

Ако събера достатъчно средства, за да стартирам експеримента, ще ви уведомявам ежедневно на специално вдигнат за целта сайт как се развиват нещата - тегло за деня, приблизителен енергоразход (по видове физ. активност), приблизителен енергоприход, изминати километри в офиса, средна скорост и прочие, и прочие. И заедно ще следим колко време ще отнеме смъкването на въпросните десет килограма. Може някой да се вдъхнови и да последва примера ми. Ето и сметката, по която можете да превеждате пари:

Банка ДСК
IBAN: BG86STSA93000021054623
BIC: STSABGSF
Титуляр: Йордан Радунчев

В основанието за плащането можете да отбележите разрешавате ли да публикувам името ви като спонсор на сайта на проекта :) - просто напишете ДА, ако сте съгласни. Можете да посочите и имейл адрес за връзка. Имейла, както и размера на сумата, няма да се публикуват никъде.

Logitech Wireless Presenter R400 и Linux

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

За нуждите на офиса купихме Logitech Wireless Presenter R400 - прекрасна джаджа за презентации, която позволява на презентатора да се разхожда свободно пред публиката и да прелиства слайдове отдалеч. Върши страхотна работа с PowerPoint, а съм чувал, че работи и с Evince под Linux. По същество това си е "орязана" клавиатура (като такава я вижда и Линукс), само с четирите клавиша, които трябват за една презентация.

Logitech Wireless Presenter R400

Имаме бутони напред и назад, бутон за стартиране на презентацията и бутон за изключване на картината (бланк). Има и лазерна показалка. Тъй като си падам по всякакви джаджи, изобщо няма да скрия, че много ми хареса нещото. И естествено реших, че няма начин да не го използвам за презентациите си, понеже, нали, съм един безспорно световно известен и навсякъде канен лектор... И ето тук Logitech ме саботираха. Ако ме следвате някъде по социалките, може и да си спомняте, че преди време си търсех инструмент за презентации. Изискванията ми бяха да работи под Линус, естествено, и слайдовете да се изготвят на markdown. След доста проби, се спрях на Preston. Като допълнителна екстра, за която не се бях замислял първоначално, тук ще посоча и факта, че презентацията се случва в web сървър, тоест аудиторията, ако разполага с лаптопи, таблети и прочие, и ако на мястото на събитието има локална мрежа, може да се закачи с браузъра си за презентацията на адреса на моя лаптоп и да я следи както на сцената, така и директно на екрана на устройството пред себе си. Удобно, спор няма.

Обаче. На Logitech джаджата не може да управлява презентацията на Preston, защото тя е отворена в браузъра ми, и прелистването на слайдовете става със стрелките, докато R400, бидейки направен да работи с PowerPoint на Майкрософт, изпраща към лаптопа ми PageUp и PageDown, а те нищо не говорят на браузъра и съответно той изобщо не реагира на тях. Лошо, а? Не съвсем. Понеже използваме по-добрата операционна система, нищо не ни пречи да "препрограмираме" бутоните на джаджата и да я научим да си говори с Preston (или който и да е друг софтуер за презентиране всъщност). Лесно е.

Като първа стъпка ни трябват scan code-вете, които генерира устройството. Трябва да го подслушаме. Първо го намираме на коя "честота" си говори с лаптопа използвайки stat:

yradunchev:~ $ stat -t /dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd --printf "%N\n"
/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd' ->../event13'

Сега ще го подслушаме, стартираме специалното разузнавателно средство:

yradunchev:~ $ sudo /lib/udev/keymap -i input/event13

И започваме да натискаме бутоните му:

scan code: 0x7003E key code: f5
scan code: 0x70029 key code: esc
scan code: 0x70037 key code: dot
scan code: 0x7004B key code: pageup
scan code: 0x7004E key code: pagedown

За всеки натиснат бутон виждаме неговия scan code и какво изпраща. Обърнете внимание, че виждаме 5 отговора, генерирани от 4 бутона. Сещате ли се? Бутона за старт генерира два кода - един за старт (f5) и един за стоп (esc). После имаме бутона, който "гаси" екрана - dot. И после двата бутона за напред (pageup) и назад (pagedown).

За да науча R400 да си говори с Preston и браузъра ми, създадох файла /etc/udev/logitech-r400 със следното съдържание:

0x7003E f11
0x70029 f11
0x70037 space
0x7004B left
0x7004E right

Това е моя "преводач". На бутона за стартиране съм задал два пъти F11 - така всяко натискане, ще кара браузъра да влиза и излиза от режим full screen. Просто в моя случай това е достатъчно. Бутона за "гасене" на екрана генерира интервал, просто защото нещо трябва да генерира, не че ми върши някаква работа. Важните бутони за мен са наляво и надясно - с тях сменям слайдовете. Ако вие използвате друг софтуер за презентация, който си има собствени шорткъти, просто заменете в този файл на съответните места с неговите. И Logitech Wireless Presenter R400 ще заработи за вас под Линукс, въпреки че официалния съпорт на Logitech твърди, че не може и толкоз.

За да накарам системата да използва моите клавиши с R400 винаги, създадох още един файл: /etc/udev/rules.d/logitech.rules

ENV{ID_VENDOR}=="Logitech*", ATTRS{idProduct}=="c52d", RUN+="keymap $name /etc/udev/logitech-r400"

И сега вече мога да изнасям презентациите си професионално, докато се разхождам важно напред-назад из аудиторията, като истински гуру :) А Logitech да имат много здраве от мен.

Животът е прекрасен ли?

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

В другите новини днес - за пръв път ми се случва да си тръгна от театрално представление в антракта. "Животът е прекрасен" в Народния. Отидох да го гледам, за да разбера защо Камен Донев беше награден за ролята на Подсекалников. Мислех да напиша нещо кратко за представлението... Но се оказа, че всичко се изчерпва с едно изречение: Едно си Камен знае, едно си играе.... Повече няма какво да се добави. И да, стана ми ясно защо са го наградили за тази роля. Защото ще бъде много срамно да го наградят за "Народното творчество", а той пък явно нещо по-различно не може да предложи. Тоест - от немай къде... В интерес на истината ВСИЧКИ останали в това представление играят по-добре от Камен Донев. Много по-добре. Много. Ако отидете да го гледате, насладете се на тяхната игра.

Това което ще видите е нов театрален жанр. Моноспектакъл с елементи на епични масовки. Имаме един Камен Донев, който играе типичната си игра в типичния си монохалтурен стил с приклякване и подмигване, имаме и маса талантливи актьори, които трябва да са фон на моноспектакъла му. Уви, не се е получило. Фона изпъква пред и над главната роля. Значително. Иначе талантливите актьори не се справят поддържащите си роли - не успяват да ги задържат на ниво поддържащи и изместват, направо изблъскват, главната роля от ролята ѝ на главна. Ама не мисля, че вината за това е тяхна. Те просто са добри и по-малко не могат... Както и Донев, той също повече не може. Или може? Ще се радвам да ме опровергае с някоя роля, в която да демонстрира нещо различно от образа на народния учител, който безспорно му се получава, но това не оправдава неговото пренасяне от пиеса в пиеса.

С това си лаишко писание тук съвсем не искам да кажа, че не си заслужава да отидете да го видите! Не. Отидете. Непременно. Заради Александър Морфов, който както винаги е изпипал всичко до съвършенство. Заради перфектната сценография на Тороманов. Рени Врангова е страхотна, Светлана Янчева е невероятна. Самата пиеса като текст, сюжет и образи е нещо, което не трябва да изпускате. Отидете непременно! Всички те заслужават аплодисменти. Но си остава загадка защо от всички тях, награден е именно и само Камен Донев...

Защо бягам?

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

Доста хора се чудом чудят как така изведнъж толкова се запалих по бягането. Истината е, че изобщо не е изведнъж. Истината е, че всичко започна през 2010 - когато Зори започна да бяга, а аз се замислих за собственото си трагично физическо състояние. Ето какви мисли са се мотали из главата ми голяма някъде към края на 2010:

Времето си минава и с всяка изминала година физическото ми състояние, което никога не е било на кой знае какво ниво (да не кажа - винаги е било зле, винаги съм бил с наднормено тегло), не става по-добро, а напротив. Остаряването е естествен и неизбежен, необратим процес, но от мен зависи как ще протече. Дали на 60 ще съм жизнено и енергично старче, или мрънкащо и оплакващо се ревматично деденце -зависи от мен и от това как поддържам енергията си. Енергията трябва да се трупа днес, ако искаш да я имаш утре.

Естествено първите ми опити бяха издържани в най-добрите традиции на жанра епична древногръцка трагедия с хор и елементи на хорър. Почти си съсипах коленете. То така става - на единия ден си кюфте, на другия вече си бягащо кюфте. Ама не. Тъй че седнах си на трътката и преосмислих цялостната концепция за спортна кариера. Като за начало - налагаше се да се отърва от онзи другия, излишния човек, който носех по онова време на гърба си по двадесет и четири часа в денонощие. Точно така - цял човек, от по-дребните. Примерно 45-50 килограмов средностатистически виетнамец. Обикновено хората започват да тичат в парка, за да отслабнат. Е аз пък започнах да отслабвам, за да мога да тичам в парка. Което май ме прави малко обратен, не? Все едно, това е отговора на Често Задавания Въпрос дали бягам, за да отслабвам - не. Отслабвам, за да бягам. Две години по-късно все още не съм се отървал напълно от сиамския си близнак, но съм го "редуцирал" до степен, която ми позволява да бягам всеки ден по половин час. Остават ми още около десетина килограма за отписване.

Мога обаче да ви споделя, че преди две години съм бил абсолютно прав относно бягането и енергията, с която то ви зарежда. Може вече да съм старче на четиридесет години, обаче съм енергично старче. Доста от връстниците ми вече са истински старчета. Че дори и някои по-млади от мен.

Друг Често Задаван Въпрос е - а защо бягам всеки ден? Защото ми харесва. Защото зад гърба си имам хиляди дни, през всеки един от които съм си "спестил" 20-30 минути от бягане, и сега имам огромни спестявания за "харчене". Надявам се да съм здрав и да ми стигне времето, за да се справя, но кой от нас знае колко още му остава, или какво ще му се случи утре? За това бягам всеки ден.

Всъщност ако трябва да обобщя с няколко думи, за да не ви отегчавам, ето моя отговор на вашия въпрос "Защо бягаш (всеки ден)?":

  1. Защото мога.
  2. Защото не знам дали утре ще мога.

Минава ли ви през ума колко хора по Света всъщност не могат да бягат? А биха искали да могат. Биха искали да не са си спестявали ежедневно по двадесет минути точно от бягане. Ако само някой ги беше предупредил навреме...

Ами ето, предупреждавам ви.

П.П.: Ако не съм ви убедил, че бягането прави хората по-енергични и жизнени, елате на 19 май край езерото в Панчарево и се убедете сами. Ще се срещнете с най-жизнените хора, които сте виждали през живота си. И лично с мен, естествено, световно неизвестният отслабващ на дълги разстояния ;)

Clone drive old fashion way

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

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

dd if=/dev/sdb of=./sdb.img bs=64k

Тази команда ще прехвърли бит по бит, на блокове от по 64к, съдържанието на устройството /dev/sdb във файла sdb.img в текущата директория. Съответно преди да започнете тази операция, трябва да сте сигурни, че имате достатъчно свободно място в текущата директория, защото ако твърдия диск, който копирате е 100Gb, съответно и файла sdb.img ще бъде с големина 100Gb, тъй като представлява точно до последния бит копие на оригинала - включително празното и неизползвано пространство върху него.

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

Ако обаче искате просто да си направите архивно копие на твърдия диск, картата с памет от фотоапарата или флашката - тогава най-добре да се оттървете от неизползваното място върху тях, за да можете да компресирате копието с gzip, като по този начин то ще стане значително по-малко от оригинала и няма да ви заема толкова много място. За да е ефективно компресирането, трябва да подготвите празното място на оригинала - най-добре като запишете нули навсякъде върху него - така ще улесните gzip при компресирането и ще го направите много по-ефективен.

dd if=/dev/zero of=/media/usb/dummyfile

С помощта на dd започвате да копирате нули от специалното устройство /dev/zero на Линукс, което има безкраен запас от нули, във файла dummyfile на оригиналния диск/карта/флашка монитран в /media/usb - dd ще "налива" нули в dummyfile, докато там не остане повече празно място и тогава ще "умре". Сега просто изтрийте dummyfile с rm. Това упражнение ни гарантира, че цялото неизползвано пространство съдържа 0 - и образно казано gzip всичките тези нули, ще ги компресира до една единствена 0, спестявайки ни много място. Следващата стъпка е:

dd if=/dev/sdb | gzip -c  > ./sdb.img.gz

Подаваме прочетеното от dd към gzip, който го компресира и излива във файл sdb.img.gz - компресирано точно копие на оригиналния диск.

След като имаме копие от диска, идва момента в който искаме да го възстановим. Просто използваме dd наобратно :)

dd if=./sdb.img of=/dev/sdb

...ако копието ни не е компресирано. Ако е компресирано:

gunzip -c ./sdb.img.gz | dd of=/dev/sdb

...и сме възстановили оригиналното съдържание на sdb...

Ако сте забелязали навсякъде използваме sdb, а не sdb1 - това е важно, защото искаме копие на целия диск, а не само на един дял от него. Ако използвате sdb1 ще направите копие на първия дял от диска, без информацията от boot сектора на устройството и без таблицата на дяловете му. Имайте го на ум.