Category Archives: технология

WannaCry, Windows?

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

Години наред им казваш да не ползват Windows и всякакъв несвободен софтуер, а сега пищят от поредния вирус… ами как да кажа, не че съм доволен, но не ми е неприятно. Яд ме е само на хорската глупост.

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

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

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

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

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

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

2676

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

Не успявам да остана достатъчно дълго насаме с празния екран, за да пиша. А имам за какво да разказвам. Пътувания през лятото, училище, работа… и уволнение… и пак работа, но за себе си. Много неща, но трудно започвам – все няма време или ако има време, нямам сили и спя. За да не е само мрънкане това започване, ще кажа, че мобилните програми – конкретно за Android – са готино предизвикателство. Много дълго отлагано, но за всяко нещо си идва времето. Реших и стратегия за учене – пиша това, което ми липсва на момента. Или го има, но е несвободно, не е във f-droid… другояче казано, пак ми липсва.

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

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 и компания питайте Гугъл и Майкрософт.

2520

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

WordPress 3.6 е свежо обновление, признавам. Интересни стъпки, може би най-вече с визуалните промени. Не мога още да свикна с новия изглед Twenty Thirteen, макар че на много други блогъри ще им потекат лигите. Най-интересно ми е продължаващото развитие с различните формати на публикациите. Далеч e от гъвкавостта в Drupal, но пък май нарочно ги правят така. Още не свиквам – твърде ненастройваеми ми стоят.

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 да имат много здраве от мен.