< HomePage
   <- Дневника

Архив за Февруари, 2011

Вторник, 8 Февруари 2011

Ако имате контакти в библиотекарските и/или читалищните среди, или сред дейците на музейното дело, в малки населени места из страната - моля ви, обадете ми се :) Няколко компютъра си търсят място, на което да са полезни. Мишел осигури нужната RAM, за да може да ги приведем в работещ режим, а Димитър даде добра идея къде да ги реализираме - в някой музей или библиотека/читалище в някой малък град(че) из България - да търкалят презентации или някакъв вид каталог на книгите/експонатите... Проблемът сега е, че нямам такива контакти. Пък какъвто съм си контактен... леле-мале. Та ако имате връзки - подръпнете ги, нека ми пишат, за да видим от какво имат нужда и мога ли да им го осигуря: jordan[dot]radunchev[monkeytail]gmail[dot]com. Благодаря на всички, които ще се отзоват!!

[ Коментари: 2 / Добави коментар ]
Коментари

Живея в малко населено място село Шишманци (Пловдивско) за библиотеката ни в читалището няма почти никакви средства и би се радвала на компютър.

Написа Иваило (email) на 09-Feb-2011 00:42


ще ти пиша на мейла за подробности :)

Написа yradunchev на 09-Feb-2011 06:45


Събота, 12 Февруари 2011

Днес започнах да подготвям първия компютър за подаряване - един Optiplex GX270. Благодарение на Мишел, както знаете, му инсталирах 256MiB RAM. Реших да се пробвам да го направя Интернет станция - компютър, на който върви един браузър на цял екран, като потребителя няма достъп до локалните ресурси на компютъра, не може да инсталира/стартира приложения, дори няма достъп до десктопа, защото не може да минимизира или спре браузъра. На практика - един браузър за Интернет. И нищо повече - за момента :)

Това няма да е някакво howto по върпроса (не още), просто реших да публикувам записките в суров вид по две причини - първо: за да не забравя какво съм правил, и второ: надявам се някой с повече опит и знания в Линукс, като прочете глупостите, които съм натворил, да се включи с полезни идеи и съвети как се прави по правилния начин.

И така. Естествено няма нужда да се правя на откривател на топлата вода, други преди мен са работили в тая посока. Използвах опита, споделен от e5z8652. За ОС естествено е избран GNU/Linux Debian 6.0 Squeeze, няма да се обяснявам защо - защото е стабилен. И след инсталиране и конфигуриране можете спокойно да го забравите - той ще си работи и след 100 години така както и в първия си ден. За браузър - Iceweasel, тоест Mozilla Firefox, ребрандирана от Debian. Искаше ми се да е Google Chrome (най-вече заради прекрасната поддръжка на PDF), но за него няма все още необходимите добавки. По нататък ще огледам други браузъри - Midori, Kazehakase - има доста обещаващи проекти. Браузърът ще работи във Fluxbox Window Manager - лек и лесен за конфигуриране, точно каквото ми трябва, като се има предвид, че няма да има никакви приложения и програми, освен Iceweasel.

Започваме с инсталиране на Debian. Не ни трябва нищо освен base system - това значи, в последната фаза на инсталацията (tasksel), когато трябва да избираме от предефинираните комплекти с пакети за инсталиране, да махнем всички отметки от всички комплекти - оставете само отметката на standard system utilities и ssh server (защото когато всичко е готово, ssh ще е единствения начин за свързване и администриране на машината). Да отбележим - освен root потребителя, инсталатора ще създаде още един - кръстете го просто user, но му изберете хубава, силна парола - не се притеснявайте, паролата ще я ползвате само вие, когато се свързвате през ssh с машината, обикновените потребители никога няма да видят login екрана на системата.

След като операционната система е вече инсталирана, логнете се като root. Трябва да инсталираме няколко пакета:

Тук трябва да ви напомня, че последните две от списъка се намират в non-free репозиторитата на Debian, така че не забравяйте да добавите non-free в sources на apt (за да не се изненадате като мен, като ви каже apt, че такива пакети не-същ-ест-вув-ат! и да се чудите пет минути що така.) Това изчерпва цялата работа по инсталацията. Следва конфигурацията.

  1. Започваме с редакция на /etc/rc.local - файлът, който се изпълнява последен при зареждането на системата. Преди последния му ред, а именно exit 0, добавяме: su - user -c xinit 2> /dev/null &
  2. С nano отваряме файл /home/user/.xinitrc и записваме в него реда: exec startfluxbox
  3. Следващия файл, който ще пипнем е /etc/X11/Xwrapper.config - в него променяме реда allowed_users=console на allowed_users=anybody и рестартираме машината - трябва да се стартира fluxbox с потребител user.
  4. Отворете си tty1 (1-ва конзола (ctrl+alt+f1)) и се логнете там като root. След което се su на user :) и като user отворете с nano файл /home/user/.fluxbox/autostart.sh и запишете в него следния ред: iceweasel &
  5. Сега отворете с nano /home/user/.fluxbox/init и добавете като последен ред: sesion.screen0.rootCommand: sh /home/user/.fluxbox/autostart.sh
  6. Отворете /home/user/.fluxbox/keys и сложете # пред всеки ред. Така забранявате някои клавишни комбинации, които биха позволили на потребителите да минимизират или затворят браузъра, както и да спрат или рестартират X сървъра и fluxbox - все неща, които не искаме да се случват. Рестартирайте отново - ще се стартира fluxbox и веднага Iceweasel. Ще инсталираме няколко добавки за него. Първата е Reset Kiosk - прочетете за какво служи и конфигурирайте :).
  7. Отново влезте на tty1 като root и отидете в директорията /home/user/.mozilla/firefox/XXX/chrome/ където трябва да заместите XXX с името на папката в коята е профила ви. Там ще намерите файл с име userChrome-example.css, отворете го с nano и в края му добавете:
    #main-window #window-controls {display: none !important;}
    #autohide-context {display: none !important;}
    
    Първия ред премахва бутоните minimize, restore, close от Iceweasel. Втория премахва контекстното меню, което се появява в режим full screen на Iceweasel при клик с десен бутон върху title bar-a и което съдържа вредната опция 'Exit Full Screen mode' - не искаме потребителя да излиза от full screen. Запишете файла на същото място с име userChrome.css
  8. Връщаме се в графичната среда. Минете през настройките на Icewasel и ги нагласете както трябва. Сложете страница за начално зареждане. И инсталирайте втората добавка - R-Kiosk - тази добавка на практика ще заключи браузъра - ще забрани достъпа до настройките му, контекстните менюта, свалянето на файлове и прочие и прочие. Така че момента е сега, преди да го инсталирате, да прегледате отново настройките на Iceweasel.
  9. Върнете се в tty1. Минете една директория нагоре от /home/user/.mozilla/firefox/XXX/chrome/ и добавете следния ред: user_pref("rkiosk.navbar",true); във файла prefs.js - това ще каже на R-Kiosk да не скрива полето за адреси на браузъра, за да могат потребителите все пак да щъкат из Интернет :)
  10. Трябва да се погрижим потребителите да не могат като нас да скачат във конзолите с клавишите ctrl+alt+Fn - иначе може да преодолеят ограниченията които сме им наложили. За целта създаваме файл /etc/X11/xorg.conf и добавяме:
    Section "ServerFlags"
    	Option "DontVTSwitch"
    EndSection
    

И сме готови. За сега. Рестартирайте. И изпробвайте. Липсват много неща - като например начин за отваряне и разглеждане на PDF. Така че сме в процес на доработване и това не е окончателния вариант. To be continued...

[ Добави коментар ]
Вторник, 15 Февруари 2011

Браузърите отварят и ви показват PDF чрез външни приложения като Adobe Acrobat Reader. Поддръжка на PDF файлове за киоск (интернет станция) webточка означава файловете да се отварят в браузъра от външно приложение, като приложението, което ще използва браузъра, не трябва да дава възможност на потребителя да достигне през него до локалните ресурси на станцията webточката. Тоест - да няма опции за отваряне на файл (Open File), запис на файл (Save, Save As...). Под Уиндоус би било малко трудно да намерите версия на Acrobat Reader, която да ви позволи да отрежете тези функции на програмата. За щастие ние използваме Линукс, а при него сорс кода на повечето приложения е достъпен и вие можете да внасяте в него промени, които да ви дадат точно тази функционалност, която ви трябва. За още по-голямо щастие добрите хора от Университета в Хелзинки вече са свършили тази работа вместо нас. Взели са един от многото PDF четци, достъпни под Линукс, а именно xpdf, и са премахнали от него двете проблемни функции, плюс това са модифицирали функцията за принтиране (която няма да ни трябва, ако няма принтер към станцията webточката, но ако има - можем да не я отрязваме, а само да я обезопасим). Сорс кода на тази патчната версия можете да вземете от сайта им, като кликнете тук: xpdf-3.02pl1-kiosk.tar.gz, а ако вече го няма там - пишете ми, ще ви го изпратя. Между другото - разгледайте сайта им, има полезни четива за киоск върху LTSP - LTSP-Based WWW Kiosk.

След като вече имате сорса на модифицирания xpdf трябва да си го компилираме в изпълним файл. Преди това трябва да инсталираме билиотеките, които xpdf ползва, за да са там, когато му потрябват. Някои от тях най-вероятно са вече налични, но от предпазливост глава не боли... Изпълнете:

apt-get install lesstif1 lesstif-dev libfreetype6 libfreetype6-dev t1lib1 ti1lib-dev

...и сме почти готови за компилиране. Компилирането обаче на xpdf с поддръжка на freetype2 е малко tricky и по-особено от "нормалното" - трябва да укажете предварително къде да търси компилатора include файловете за freetype2 - което е веселба, тъй като местата са две :) Освен това трябва да посочите кои функции искате да бъдат отрязани от готовия продукт. Всичко това постигаме с един куршум, като настроим една променлива от обкръжението преди да стартираме конфигуратора на xpdf. Ето така:

export CXXFLAGS="-I/usr/include/freetype2 -I/usr/include -DKIOSK_SAVE_NO -DKIOSK_OPEN_NO -DKIOSK_PRINT_NO"

...последния флаг -DKIOSK_PRINT_NO ще компилира xpdf без опция за принтиране. Ако искате да може потребителя да си изпринти файла, който разглежда - пропуснете я. Освен -DKIOSK_PRINT_NO, можете да използвате -DKIOSK_PRINT_SAFE - тя ще остави опцията за принтиране, но ще лиши потребителя от възможността да избира принтер - нещо като компромисен вариант... Сега вече можем да действаме:

./configure
make
make install

Готово, xpdf е на разположение на потребителите, в случай, че пожелаят да отворят PDF файл от Интернет. Остава да накарате Iceweasel да го вика, когато потребителя click-не върху PDF. Най-лесния, бърз и безболезнен начин да постигнете целта - инсталирайте mozplugger, проект чиято цел е: to provide a minimalist, clean and stable general purpose Mozilla plugin module that allows the user to embed and launch their favourite application to handle the various different types of media found on the Internet. Кратко и ясно. И ще ни е от полза, ако решим да осигурим възможност на потребителите да отварят mp3 файлове, видео файлове и прочие от Интернет. Няма нужда да чоплите по конфигурационния файл на mozplugger (/etc/mozpluggerrc), защото той вече е настроен да използва xpdf за PDF. Така че просто:

apt-get install mozplugger

и that's all, folks... Вече отваряме pdf. Напред към средващото предизвикателство...

19:49

От два-три дни си блъскам главата как да нарека това, което правя с този стар Dell Optiplex GX270... Цялото това упражнение се нуждае от подобаващо име :) На английски обикновено се използва термина "kiosk", който идва от турското "кьошк", което значи градински павилион/беседка. Но на български кьошк има друг товар, а киоск съвсем нищо не говори. В началото мислех да го нарека интернет станция... или уеб станция - с оглед на факта, че освен достъп до итернет/уеб друго не предлага. Но това станция... не звучи добре. Като Метро станция... или както Зори отбеляза - космическа станция... или, пази Боже, станция Нова... брррр... И тогава ми хрумна - едно време имаше радиоточки - една кутия, с говорител, включена с кабел към кабелна радио мрежа, кабелно радио, по която от едно централно място ти пускат каквато радиостанция си искат или ти четат речи. Радиоточката има само едно въртящо се копче, което служи за намаляване и усилване на звука. Не можеш да я "загасиш" (защото едно от предназначенията на радиоточката е да служи за осведомяване на населението в случай на извънтредни бедствия)- освен ако не дръпнеш щепсела от контакта. Не можеш да смениш станцията. Радиоапарат, ама не съвсем... Та хрумна ми, че това което правя в крайна сметка има общи черти с радиоточката - не можеш да правиш нищо друго с него, освен да се ровиш в Мрежата. Хем е компютър, хем не се държи като типичен такъв, не прави и не предлага почти нищо от това, което можеш да правиш с обичайния компютър. И така се пръкна името "уебточка"... И от този момент това е официалното име на проекта - webточка :)

[ Добави коментар ]
Сряда, 16 Февруари 2011

Понеже webточката ще се използва от българи, ще ни трябва клавиатурна подредба на кирилица. Даже две - фонетична и БДС. Под GNU/Linux Debian добавянето на нови клавиатурни подредби става с редактиране на файла /etc/default/keyboard. Трябва да го накарате да изглежда така:

XKBMODEL="pc105"
XKBLAYOUT="us,bg(phonetic),bg(bds)"
XKBOPTIONS="grp:ctrl_alt_shift_toggle"

Реда XKBVARIANT="" просто изтрийте. Превключването между отделните подредби става с комбинацията ctrl+alt. А като видите ctrl+alt нямате ли усещането, че нещо липсва? Правилно - del :) Естествено, че ще спазим традицията и няма да лишим потребителите от троицата. Всъщност имаме нужда от нея, имаме нужда от възможност да рестартираме webточката - несъмнено ще дойде момент, когато ще ни се прииска и това. Това ни връща към файла /home/user/.fluxbox/keys - едно от първите неща, които направихме, след инсталацията на машината, беше да сложим # в началото на всеки ред от този файл, като по този начин отрязахме всички клавишни командни комбинации, дефинирани чрез него. Ако сте го разгледали, докато сте вършили това пъклено дело, сигурно вниманието ви е било привлечено поне за секунди от реда:

Control Mod1 Delete: Exit

Ето я любимата на всеки компютърен потребител троица - control alt del! След като искаме да я използваме за рестартиране, трябва да заменим Exit c Restart и, естествено, да махнем # от началото на реда. Рестарта на нашата webточка ще се изрази в рестартиране на fluxbox, не на цялата машина. До тук добре, но това няма да рестартира Iceweasel - след като fluxbox се зареди отново, ще извика Iceweasel, а той от своя страна ще показва същия сайт, който е показвал и преди рестартирането на window manager-а, защото порцесът му е останал да работи, докато мениджъра се е рестартирал. Не това искаме. Има един начин да загасим браузъра и да стартираме нов, когато fluxbox се рестартира - спомняте си, че създадохме файл autostart.sh в директорията /home/user/.fluxbox, нали? Всъщност именно този файл стартира браузъра, когато fluxbox се зареди - с командата 'iceweasel &', записана в него. Сега нека преди да стартираме браузъра, да проверим дали няма вече работещ браузър, и ако има - да го убием, като по този начин гарантираме, че fluxbox ще отвори нов, а няма да използва стария. Над реда 'iceweasel &' добавете:

pgrep firefox 1>/dev/null && pkill firefox

Сега вече control+alt+del ще рестартира и браузъра, освен window manager-а.

[ Коментари: 4 / Добави коментар ]
Коментари

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

Написа Димитър Цонев (email) (www) на 16-Feb-2011 23:09


aм, ако имаш предвид тъч скрийн - вероятно ще има версия и за тъч. но клавиатурата ще е по-удобна, ако реши някой да пише имейл или подобно от точката... :)

Написа yradunchev на 16-Feb-2011 23:16


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

Освен това, какви мейли, това да не е компютърът на секретарката!?

Написа Димитър Цонев (email) (www) на 16-Feb-2011 23:33


webточката по-скоро е терминал, като тези в метрото. примерно в болнично отделение. прозорец към света :)

ако е за standalone терминал за справки в един портал - тогава може и без клавиатура, разбира се, зависи от предназначението.

всъщност цялата галимация е инспирирана от един бразилец, който инсталира подобни терминали по крайните квартали на големите градове, като се опитва така да помогне на местните да вдигнат нивото... и успява. как му забравих името... споменаха го на TEDxBG в началото на презентацията на Хлебната Къща...

Написа yradunchev на 16-Feb-2011 23:42


Петък, 25 Февруари 2011

Често ми се случва да работя с Ексел файлове от НАП, НОИ или НСИ. Хората там се стараят да улеснят работата на счетоводителите, обаче понякога творят феноменални дивотии. Например приемат за дадено, че всички, които използват файловете им, имат достъп до локалния диск на компютъра си, което е глупаво, защото далеч не е задължително да е така. При нас например не е. Всички файлове, с които работим, са на сървър, а локалния диск е напълно недостъпен за счетоводителя - за да е сигурно, че цялата информация с която борави е само на сървъра и се бекъпва регулярно. Обаче НАП са решили, че техния файл ще изхвърля декларации и други данни на C:\ - ходи си ги търси там. И се налага да ровя VBA кода на файла, за да пренасоча изходните файлове към достъпно място - например директорията, в която е самия екселски файл - нещо толкова просто и логично да се използва. Обаче гурутата от НАП са толкова велики, че крият кода си с пароли - да не би някой да види гениалните им VBA хватки. Което е вече смешно, защото въпросните пароли падат от един поглед и не представляват никаква защита, а гениалния код е такава шега, че Уилям Хенри Гейтс III би си прегризал вените, ако го види (понякога сериозно си мисля да му го изпратя).

Понеже съм сигурен, че не съм аз единствения, който се бори с файловете на наповските ексел светила, реших да споделя как свалям защитата на VBA кода им. Трябва ви шестнадесетичен редактор. Не се стряскайте, ако не знаете какво е това и ви звучи като китайски, не се отказвайте. Просто свалете тази програма xvi32.zip и отворете с нея екселския файл, чийто код искате да разгледате. Използвайки Find от менюто на програмата, намерете тези три букви DPB и ги променете на DPx - запишете файла и затворете редактора. Отворете екселския файл, накликайте разните предупреждения, че има проблеми с VBA кода в работната книга. Натиснете ALT+F11 и във VBA редактора, който ви се отвори току що, от менюто Tools изберете VBAProject Properties, отидете на таба Protection и СМЕНЕТЕ паролата - напишете 123 за парола, но не я махайте! Запишете работната книга, затворете я, отворете я пак, ALT+F11, Tools -> VBAProject Properties, идете в password таба и махнете паролата. Запишете работната книга. Вече можете да разгледате кода на спокойствие и да промените едно-друго, така че да пасне перфектно на вашите конкретни нужди.

Всичко това работи гарантирано за файлове създадени с Ексел до версия 2003 включително. Не съм го пробвал с файлове от по-високите версии, но НАП и НСИ все още използват 2003, така че... Поздрави на Excel гурутата в НАП и НСИ :)

[ Добави коментар ]