Прв ден Python Users Group

петок, 12 март 2010 @ 16:15 CET

Краток извештај што поминавме првиот ден од Python дружбата во КИКА.

Најпрво направивме краток осврт на јазикот Python и неговата историја (јазикот е од 1991ва, динамичен, но строго типизиран, повеќе-платформски, интерпретиран јазик). Се користи за било која намена, GUI-а, web сервиси и апликации, backend процесирање на податоци итн. Исто така популарен во scientific заедниците, посебно кај биолозите и хемичарите, во Google итн.

Потоа ги поминавме дел од основните типови на податоци во Python:

  • цели броеви (integer)
  • комплексни броеви
  • реални броеви (floating point)
  • листи
  • хеш табели, т.е. асоцијативни низи (dictionaries)
  • tuples (наводно на македонски се викале торки?!?!)
Исто така покажавме како се дефинираат функции и можноста за специфицирање на default вредности за нивните аргументи. Сето тоа го покажувавме во интерактивниот (REPL) интерпретер.

Тоа е оприлика и содржината на официјалниот водич во Python точките 1, 2, 3 и мал дел од 4 и 5. Следниот пат ќе продолжиме со класи и методи, и со for, if, while инструкциите.

Референци и за Python заедницата

Освен веќе спомнатиот водич - од кој за 2-3 дена се добива основниот впечаток за јазикот - понатаму посебно корисен е индексот на сите вградени модули.

Сите други пакети за Python, може да се најдат во индексот на 3rd party python пакети.

Што се однесува до Python заедницата, фокусот е на мејл листата news:comp.lang.python (достапна и преку Google Groups) која е особено пријателска дури и за почетници, и Python планетата на која што може да се види кои се актуелните дилеми/достигнувања во Python светот.


ps. Тоа што не спомнав е дека името Python не доаѓа од змијата, туку е во чест на Монти Пајтон. Од таму и многу референци во документацијата за јазикот доаѓаат од скечеви на Монти Пајтон (spam, bar, eggs, parrots).

[permalink]


2009 in programming - Erlang IrcBot

петок, 01 јануари 2010 @ 19:59 CET

Минатава година ми текна да учам Erlang. Иако прилично стар јазик, Erlang станува прилично популарен во последно време поради неговите специфични можности. Програмскиот јазик (и виртуелната машина) се направени во лабораториите на Ericsson некаде во 1986.

Се работи за функционален јазик, со динамички но стриктен систем на типови, од другите general purpose јазици се разликува најмногу по инхерентната подршка за конкуретност (concurency, истовременост), т.е. голема скалабилност со помош на неговите light-weight процеси (без проблеми може да креира милиони процеси на обично PC). Ова посебно е актуелно денес кога хардверот се повеќе скалира со зголемување на бројот на процесори, а не со зголемување на нивната поединечна брзина, што е предизик за традиционалните јазици и нивното решение за скалабилност (threads).

Па, со таа цел, почнав да правам irc bot кој освен за учење, ќе помогне и во одржување на irc каналот #lugola. Историјата и развојот може да се види/следи во Git репозиторијумот. Првичната идеја беше секој commit да биде доволно јасен за да може директно да се следи и да го презентира новото знаење кое сум го добил, но со тек на време бројот на commit-и нарасна па сега ќе направам еден крупен осврт. За самиот Erlang препорачувам да се почне со online книгата „Learn You Some Erlang for Great Good!“.


Првата главна точка беше успешно воспоставување на TCP конекција. Примерот покажува отварање на TCP конекцијата, праќање податоци преку неа и на крај затварање на конекцијата (серверот може да се симулира со nc -l -p 5678).


Втора точка беше веќе успешна конекција кон IRC сервер. Овој пример покажува креирање на нов Erlang процес со spawn, отварање TCP конекција до IRC серверот, праќање на информациите за идентитетот (NICK и USER) и потоа приклучување (JOIN) на посакуваните канали. На крајот се влегува во main_loop функцијата која рекурзивно се повикува самата себе, се додека TCP конекцијата не се затвори или пак процесот не добие некоја неочекувана порака. Примерот може да се старта со:

damjan$ erl
1> c(main).
2> Pid = main:start(["irc.freenode.net", 6667, "erlbot_test", ["#lugola"]]).
3> Pid ! {self(), send_data, "PRIVMSG #lugola :the first irc message ever\r\n"}.
Од овој пример може да се види употребата на receive операцијата со која Erlang процесот чека да прими некоја порака, па потоа споредување со шаблони (pattern matching). Праќањето на пораки се прави со операторот ! како што може да се види погоре „Pid ! порака“. Всушност, ова е основната парадигма на програмирање во Erlang, комуникација меѓу разни процеси преку пораки (таканаречен Actor model).

Понатаму програмот станува покомплициран, но и посериозен. Полека почнува да добива корисни можности, како имплементација на CTCP-VERSION и CTCP-PING irc командите (commit). Програмот веќе се протега низ неколку фајлови.

За време на НСНД во Загреб, додека правам презентација на Erlang и на проектов, заедно со луѓето таму ја имплементираме првата подршка за plugin-и.

Набрзо потоа сфаќам дека сме измислиле топла вода, и дека самиот Erlang (т.е. неговиот OTP framework) веќе нуди таква имлементација. Го преработувам кодот да го користи gen_event framework-от во Erlang.

Потоа следат имплементација на разни plugin-и (rock-papper-scissors и сл.) и средувања на core делот.

Како повеќе навлегувам во Erlang, се повеќе почнувам да ги користам принципте на неговиот OTP (Open Telecom Platform). OTP се разни рутини и билиотеки кои овозможуваат креирање високо робусни и скалабилни програми. Една од работите кои ги овозможува OTP е промена на кодот на програмот додека се извршува без да има прекин во работата. Тоа е и една од карактеристиките на Erlang/OTP по која се издвојува од другите јазици.

Последната верзија веќе има подршка за конфигурациски фајл, јадрото целосно е преработено како OTP модули (gen_server, gen_event), остатокот како plugin-и. Останува уште да се имплементира supervisor дрво кое ќе се грижи bot-от постојано да остане online. И конечниот резултат, некоја верзија 1.0 би била комплетна Erlang/OTP апликација.

Во меѓувреме, ги поканувам сите кои сакат да се играат со Erlang или irc bot-ов, да пробаат да напишат некој plugin. CTCP-PLUGIN-от е прилично едноставен и може да се земе како шаблон. Plugin-ите се реактивни, за секоја порака добиена од серверот, се известуваат сите plugin-и, кои одлучуваат дали ќе ја игнорираат пораката или ќе направат нешто со неа.

Референци: Интересни проекти напишани во Erlang:
  • Facebook chat

[permalink]


Boot USB - part 2

сабота, 14 ноември 2009 @ 15:45 CET

Минатиот пат видовме како да се направи bootable USB од најновото Ubuntu - на рачен начин (the hard way). Сега ќе видиме како се додаваат нови опции на bootable USBто, како на пример RIP (Recovery Is Possible Linux).

Значи, го симињаме RIPLinuX-9.3.iso image-от од RIP linux - од него ќе ни требаат само кернелот и rootfs.cgz (претпоставката е дека usb-то од минатиот пат е веќе mount-ирано некаде во /media/usb да речеме):

  • прв чекор: mount-ирање на .iso image-от во /mnt/rip
mkdir /mnt/rip
mount -o loop /home/damjan/RIPLinuX-9.3.iso /mnt/rip
  • втор чекор: на USBто ќе направиме посебен директориум riplinux и во него ќе ги ископираме потребните фајлови од .iso-то
mkdir /media/usb/riplinux
cp /mnt/rip/boot/kernel32 /mnt/rip/boot/rootfs.cgz /media/usb/riplinux/
  • трет чекор: едноставно мени со опциите за boot-ирање на RIP Linux. (овие може и да се ископираат од CD-то на RIP, од /mnt/rip/boot/isolinux/isolinux.cfg)
LABEL Boot Linux system! (32-bit kernel)
KERNEL /boot/kernel32
APPEND vga=normal initrd=/boot/rootfs.cgz root=/dev/ram0 rw

LABEL Boot Linux system! (skip keymap prompt)
KERNEL /boot/kernel32
APPEND vga=normal nokeymap initrd=/boot/rootfs.cgz root=/dev/ram0 rw

LABEL Boot Linux system to X! (32-bit kernel)
KERNEL /boot/kernel32
APPEND vga=normal xlogin initrd=/boot/rootfs.cgz root=/dev/ram0 rw

LABEL Boot Linux system to X! (skip keymap prompt)
KERNEL /boot/kernel32
APPEND vga=normal xlogin nokeymap initrd=/boot/rootfs.cgz root=/dev/ram0 rw
  • и конечно, последниот чекор: да додадеме опција, т.е. под-мени за boot-ирање во главниот config фајл за syslinux на USBто (/media/usb/syslinux/menu.cfg). Подменито за RIP најдобро да го додадеме после Advanced подменито
menu begin advanced
...
menu end
# ова надоле го додаваме
menu begin riplinux
	menu title RIPLinuX 9.3
	label mainmenu
		menu label ^Back..
		menu exit
	include /riplinux/riplinux.cfg
menu end
# до тука
label help
...


И толку.. тадаа

[permalink]


Направи сам: boot-абилно Ubuntu USB

вторник, 03 ноември 2009 @ 00:57 CET

Знам дека постојат алатки кои го прават истото, но оваа е за тие што сакаат да знаат (плус со овој метод не мора да го бришеш usb-то).

Идејата е од .iso image на Ubuntu да се добие boot-абилно USB стикче. Па да почнеме (во примерите ќе користам /dev/sdc како USB device]:

прво ги mount-ираме .iso-то и USB-то

modprobe loop
mount -o loop $HOME/Downloads/ubuntu-9.10-desktop-i386.iso /mnt

mount /dev/sdc1 /media/usb
потоа ја копираме целата содржина од .iso-то на USB-то, јас ќе употребам rsync, но и обичен cp е доволен ако пазите да го ископирате скриениот .disk директориум.

cd /mnt
rsync -av . /media/usb/
потоа го инсталираме boot loader-от. Бидејќи USB-то користи FAT32 фајлсистем ќе го употребиме syslinux boot loader-от. Тоа е пандан на isolinux кој се користи на boot-абилните CD-а (името доаѓа од iso9660, тоа е фајлсистемот кој се користи за CD-а и сл).

cd /media/usb/
mv isolinux/ syslinux/
mv syslinux/isolinux.cfg syslinux/syslinux.cfg
syslinux -d syslinux /dev/sdc1
со тоа, syslinux boot loader-от е инсталиран на 1вата партиција на USB-то. Останува само последниот чекор, а тоа е инсталирање на Master Boot Record на самото USB (а не во партицијата). За тоа ќе го искористиме стандардното MBR кое доаѓа со syslinux:

cat /usr/lib/syslinux/mbr.bin > /dev/sdc
Напомена: важно е да се примети разликата, во горните команди syslinux се инсталира во партицијата (на sdc1), но mbr-то се инсталира директно на дискот (на sdc).

И толку.. овој метод е пробан на ubuntu-9.04, 9.10, а и на netbook-remix верзијата. Треба да работи со сите понови ubuntu-а (но можеби не на 8.10).


За напредните корисници: доколку сакаме USB стикчето да го форматираме како EXT2 фајлсистем (а не FAT32 кој има многу ограничувања), процедурата е иста како горната, само каде што сум напишал syslinux се пишува extlinux. Тоа важи и за преименувањето на директориумот и config фајлот, и за командата за инсталирање на boot loader-от.

Нормално претходно треба да го фомратирате USB-то со командата mke2fs /dev/sdc1.

[permalink]


Firefox 3.5 излезе, но...

среда, 01 јули 2009 @ 11:39 CEST

Firefox 3.5 излезе и тоа на 70-тина светски јазици, но не и на македонски.

Во последен момент се случила некоја збрка со македонскиот build што го оневозможува системот за автоматска надоградба, и мораше да биде повлечен. Јас проблемот го приметив веќе во RC1 и ја поправив грешката, но во последните моменти по грешка таа поправка била одфрлена за конечниот build.

Останува да видиме дали ќе се појави 3.5 покасно, или пак ќе се чека на 3.5.1.

Се си мислам дека сите оние силни патриоти кои потпишуваат разно-разни молби по интернет, да одделеа малку време да тестираат и пријавуваат грешки, порано ќе го увидевме проблемот и ќе ја намалевме можноста за грешка... но тоа е реалноста, show must go on.

Од друга страна, тимот за локализација на Firefox се намали за 50% (по бројност, а 90% по преведувачки труд), нешто заинтересирани да ја продолжат работата не сретнав, па можеби show may not go on anyway.

ps. неофицијална информација е дека Firefox на македонски го користат околу 35000 луѓе, од кои 30000-тина 3.0.11.

[permalink]


Што е lawful intercept и како сите нас ќе не боли

петок, 24 април 2009 @ 02:30 CEST

Lawful intercept (во Македонија отприлика преведено како легално прислушување) е законска обврска за секој телекомуникациски оператор. Тука спаѓаат интернет провајдерите (кабловски, безжични, жичани, сите) и телефонските (и мобилните) оператори.

Законот ги обврзува операторите да му обезбедат на МВР да може во било кој момент да ја прислушува целата комуникација која ја прави некој корисник. Тоа значи дека во еден момент МВР одлучува да следи некој човек, и од тогаш копија на сите податоци, сите четувања, отварања на web страни, разговори, пристапи до facebook, google, youtube, porntube и сл. во реално време додека се случуваат, ќе бидат пратени (и најверојатно складирани) некаде во полиција. Притоа прислушувањето ќе се одвива без знаење на корисникот (нормално), но нити знаење и контрола на операторот. За таа цел МВР инсталира специјална опрема кај операторот која му дава целосна слобода да прави што сака.

Законот утврдува дека оваа мерка смее да се користи само за најтешките облици на криминал како тероризам, педофилија, организиран криминал и сл. Но...

Тоа што мене ме интересира е врз кого во Македонија овој закон ќе има најголем ефект:

  • Прво е прашањето дали прислушувањето ќе помогне во борбата против тешкиот криминал - а логиката ми кажува дека оваа мерка воопшто нема да помогне против организираниот криминал или тероризмот.

    Сите посериозни криминалци или терористи веќе одамна користат технологии за прикривање на нивните податоци и комуникации. Не дека овие технологии се нешто специјални. Неколку тривијални примери се Cloud/OpenVPN, SSL/TLS, PGP/GPG и Tor, кои доаѓаат инсталирани во било која Linux дистрибуција - а кои овозможуваат скоро 100%-на тајност на податоците и огромна анонимност на комуникациите. Овие технологии се толку лесни за користење што било кој аматер за компјутерска безбедност ќе успее точно да ги имплементира за кратко време и ќе го поништи обидот на МВР за следење на комуникациите.

    Секако, пософистицираните (и поопасни) криминални организации имаат вистински професионалци кои најверојатно подобро знаат што се случува во МВР него самите МВР.
  • Од друга страна, во Македонија веќе е докажана пракса прислушувањето да се злоупотребува токму од овластените лица. Воопшто не сум убеден дека оваа нова можност за прислушување ќе остане имуна на злоупотреба, што значи во наредниот период скоро сигурно е дека ќе има прислушување на новинари, политички противници, невладини организации, своите од партијата - кои воопшто не се поврзани со тежок криминал.

    Не знам дали е потребно да ја потенцирам моќта на податоците за застрашување, уценување или контролирање на луѓето... Посебно личните податоци... личните податоци кои луѓето често нај-наивно ги праќаат преку интернет до своите најблиски.

    Но дури и кога МВР и државата би биле со најдобри намери, со најригидни процедури, со вистинска цивилна контрола врз работата на полицијата (yeah right)... еднаш кога технологијата ќе биде инсталирана постојат големи шанси таа да биде злоупотребена и од трети лица, криминалци, терористи и сл. Како што реков, технологијата операторот не ја контролира, ниту има увид што таа прави. А никогаш не се знае кои сигурносни пропусти ги има таа технологија.
  • Конечно, што сево ова значи за операторите. Имплементацијата на lawful intercept значи прилично голема инвестиција во опрема која операторотот мора да ја набави за да бидат исполнети условите на законот. Тоа е инвестиција која не нуди никаква предност за корисниците, ниту генерира профит - туку е чиста загуба. Уште повеќе, поради техничките барања на lawful intercept се ограничува флексибилноста во ширење на мрежата (брз интернет за тие што досега немале никаков). Просто економски кажано, цената на секој корисник сега порасна дури и до 10 пати повеќе.

    Уште полошо, додека големите оператори ќе успеат да го реализираат сево ова, за помалите - кои се на маргините на профитабилноста - или пак за некои потенцијални нови играчи на пазарот - ова ќе значи крај на играта.

    Сумирано, поскапи услуги, помалку конкуренција на пазарот и се што следува од тоа.
Ова беа само три ефекти кои ќе ги има законов, чисто прагматично анализирани без воопшто да навлегувам во дискусија за етичката/морална оправданост на ваквиот закон. Заклучокот: не може да биде успешно користен за тоа што е наменет, огромен потенцијал за злоупотреба, огромна цена.

По сево ова, ми се наметнува прашањето дали и колку навистина ни требаше сево ова? Каде беше јавната расправа за ваквите закони? И до кога ќе ја плаќаме сопствената глупост?

ps. во моментов ги немам референците до законот - можеби ќе ги ставам покасно, а ќе ми помогне ако ми ги прати некој предходно

[permalink]


Bullshit

четврток, 16 април 2009 @ 02:20 CEST

Уставниот суд утврдил дека законот со кој беше вклучено верското образование во државниот, задолжителен образовен процес е против уставен. Нормално реакции од сите страни, но морам да обрнам внимание на оваа: Изучувањето на веронауката ќе придонесе во оттргнување на младите од зависностите. Во последната декада хероинот има убиено 214 млади луѓе во Македонија. Вистинскиот проблем е што во земјава има 25 до 30 илјади зависници од дрога - рече Ѓорчев. Дали Ѓорчев е спремен да презентира цврсти податоци од некое научно истражување кое ќе потврди дека вероучението во основно школо ја спречува злоупотребата на хероин (или други дроги)? Или едноставно си дозволува да искаже било какво тврдење без никаква основа?

I call bullshit on this one (за Ѓорчев, не за одлуката на судот).

[permalink]


За Град, За Република

сабота, 11 април 2009 @ 23:59 CEST

Денес, успешен протест на плоштад под мотото „Плоштад Слобода“. Бевме собрани голем број луѓе, млади но и постари, да го афирмираме нашето право како граѓани да го искажеме нашиот став, ако треба и преку протест.

Најважно, немаше инциденти - што можеби покажува дека луѓето и не баш туку така се собираат „спонтано“ да тепаат други.

Мојот личен мотив да отидам на протест беше чувството дека во последниве 18-тина години на независност, не успеавме да изградиме капацитет за граѓанско размислување и делување. Од година во година, постојано се прави по некоја отстапка од граѓанскиот концепт на општество, од републиканското уредување на државата. Тоа доведе и до моментот, пред 2 недели да биде насилно прекинат мирниот протест против црквата на плоштадот... и уште пострашната ноншалантност кон таа случка од страна на дел од институциите во државата.

По таа случка се почуствував и лично одговорен. Во последниве 10 години, мислев дека треба да се занимавам само со тоа што најдобро го знам (активности поврзани со слободниот софтвер), а за останатото ќе се погрижат тие кои им е тоа работа. Но не било така.

„The price of freedom is eternal vigilance“ рекол Томас Џеферсон (цената на слободата е постојана будност/бдеење). Сега останува на сите нас, малку по малку, повторно да ја освојуваме слободата.

Се гледаме на следниот протест :)


ps.
Новица веќе спомна, но да повторам... Фрчковски, Милчин, Костовски и уште кој не беше, немаат што да бараат на протестот. Јасно дека како граѓани имаат право, но тие за разлика од нас другите имале и сеуште имаат многу поголем простор да си ги искажат своите ставови и мислења, и имале и уште имаат и ингеренции и влијание да ги поправат работите. Која иронија е градоначалникот кој го затвори паркот да се појави на протест за слобода.

УА ефтини профитери!!! Се надевам не се гледаме на следниот протест.

[permalink]


Виртуелни околини за Python 2.6

петок, 10 април 2009 @ 18:34 CEST

Новите Python апликации и framework-ци користат голем број екстерни Python пакети. Само како пример, инсталацијата на Pylons или TurboGears2 повлекува повеќе од 40-тина други пакети (templating јазици, WSGI компоненти за сесии, кеширање итн итн).

Постојат неколку начини на инсталација на сите овие потребни пакети. Едниот е преку пакет менаџерот на Linux дистрибуцијата - на пр. apt-get install python-genshi и сл. Но ова бара root привилегии и ја комплицира инсталацијата на апликацијата на други системи. Уште полошо, некои Python апликации бараат специфични верзии на додатните пакети, а не секогаш дистрибуцијата ја има баш таа верзија.

За среќа, постојат повеќе решенија на овие проблеми, а овде ќе ја документирам таа мене ми е најлесна, користејќи ја алатката pip, со забелешка дела ова решение функционира само за Python 2.6 и понови.

Накратко:

wget http://bitbucket.org/ianb/pip/raw/tip/pip.py
chmod +x pip.py

export PYTHONUSERBASE=$HOME/my-python
./pip.py install --install-option=--user Pylons
со овие команди го инсталираме Pylons со се сите негови додатни пакети во виртуелната Python околина „$HOME/my-python“ без потреба од root привилегии. Дополнително, pip.py ќе ги инсталира точните верзии на пакетите кои Pylons ги бара.

Со едноставна промена на PYTHONUSERBASE можеме да имаме и повеќе вакви околини, што е згодно доколку сакаме на пример да имаме паралелно инсталирани и TurboGears 1.0 и 2.0, или некои други апликации кои имаат конфликтни верзии.

Забелешка: во $PYTHONUSERBASE/bin pip.py ќе инсталира некои контролни скрипти од пакетите, како на пр. скриптата paster од Paste или couchdb-dump од пакетот CouchDB. Доколку сакате, можете овој директориум да го додадете во PATH (export PATH=$PYTHONUSERBASE/bin:$PATH) за да не мора постојано да ја пишувате целата патека (~/my-python/bin/paster ...).


Други решенија на истиов проблем се: virtualpython, workingenv, virtualenv (надградба на претходните две), buildout, setuptools (можеби). Но оваа варијанта со pip.py и PYTHONUSERBASE мене ми изгледа најелегантна.

ps.
повеќе за позадината на ова решение во Python документацијата и PEP-370.

[permalink]


Нова реалност

понеделник, 23 март 2009 @ 18:51 CET

Со оглед дека блогирањето веќе не е толку шизички како порано, а и испадна дека женски не се фаќаат така, го реорганизирав малку блогот за тие што го отвараат директно.

Новата реалност е дека се повеќе користам Twitter и Google Reader за online комуникација, па така, десниот sidebar на блогов сега највеќе е посветен на овие два сервиса. Левиот, „главен“ дел, е намален, повторно во сооднос со „новата реалност“.

BTW. го искористив моментот да ја проверам валидноста на CSS-то и HTML-от... ок е, требаше да поправам некои грешкички направени од невнимание, али сега сѐ е во ред.

ps. ми фали уште еден widget да ги следи сите bug-ови кои ги имам пријавено за разни проекти ... хммм

[permalink]


Google mail и mailx (nail)

вторник, 03 февруари 2009 @ 17:53 CET

Mailx (или nail, зависи кога каде) е едноставна command line алатка за читање и праќање на мејл. Мала е, нема зависности и скоро секогаш е инсталирана, алатката често се користи на сервери кои немаат mail сервер за праќање на пораки преку некој smtp сервер. Подржува smtp, imap и pop3, tls и sasl.

Од друга страна, праќање на пораки од адреса која е @gmail.com, а не е пратена преку smtp серверите на google, знае често да заврши во SPAM фолдерите.

Затоа ова упатство кажува како да се намести mailx да праќа пораки преку google, а како бонус и да чита пораки од gmail со imap. Коннфигурацијата стои во $HOME/.mailrc и еве ја како е конфигурирана за мене:

set sendcharsets=ascii,utf-8
set from="Damjan <gdamjan@gmail.com>"
set smtp-use-starttls
set smtp-auth=login
set smtp=smtp.gmail.com:587
set smtp-auth-user=gdamjan@gmail.com
#set smtp-auth-password=secret

set imap-use-starttls
set folder=imaps://gdamjan%40gmail.com@imap.gmail.com:993
За читање на пораки, само се старта mailx и се внесува gmail password-от. Се прикажува листа на пораки во прилично рудиментиран интерфејс, но тоа и го баравме :). Опционално, password-от исто може да се стави во config фајлот, но тоа не е баш сигурно.

Пораки се праќаат со:
mailx -s SUBJECT [-a attach_file] [-b bcc@..] [-c cc@...] recipient@example.org < текстот-на-пораката.txt
Повторно прашува за password (кој исто може да се стави во config фајлот), и толку.

[permalink]


VPN за во странство

среда, 24 декември 2008 @ 19:22 CET

Еве за тие што ги мрзи да го прочитаат брзиот водич за подесување на OpenVPN. За да избегне разни firewall-и VPN серверот е подесен да слуша на TCP порта 443 (истата за https).. други опции би биле TCP 80, или UDP 53.

Серверот, треба да биде достапен на интернет (OpenWRT/ddwrt исто може да заврши работа):

cd /etc/openvpn
secret ./secret.key
lport 443
proto tcp-server

log-append /var/log/openvpn.log
dev tun

cipher BF-CBC

ifconfig 10.255.255.1 10.255.255.2
keepalive 10 60


Клиентот:
cd /etc/openvpn/
secret ./secret.key

remote x.y.z.w 443 ; x.y.z.w е серверот од горе, ако нема статичка адреса и noip, dyndns или сличните сервиси ќе завршат работа
proto tcp-client

dev tun

cipher BF-CBC

ifconfig 10.255.255.2 10.255.255.1
persist-tun
redirect-gateway def1

keepalive 10 60
verb 3


/etc/openvpn/secret.key се генерира со openvpn --genkey --secret secret.key и треба да биде истиот на двата компјутери, и таен.

На серверот, openvpn може да се старта како daemon (со --daemon) или уште подобро од inittab.

[permalink]


фото блог

четврток, 20 ноември 2008 @ 03:11 CET

.. или блого-снепшот



21-ви век, eeeej.




In other news, Што ќе се случи ако...



(looking at the face of DOOOM)




Shape of things to come? (реклама низ Скопје)



.. барем ако го мењаме името, да ја смениме и патекаа. оваа ич не чини.

[permalink]


СТОП за софтверските патенти во Европа

четврток, 30 октомври 2008 @ 12:39 CET

stopsoftwarepatents.eu petition banner

[permalink]


The Residents во Скопје на 17 ноември

среда, 22 октомври 2008 @ 17:56 CEST

WOW

{извор}

[permalink]



Тињата наречена Flash сајтови
петок, 26 септември 2008 @ 13:42 CEST
Нов точак
среда, 10 септември 2008 @ 00:46 CEST
Firefox 3.0.x екстензии за 2008ма
вторник, 02 септември 2008 @ 14:44 CEST
Патот дома
петок, 01 август 2008 @ 16:26 CEST
Mozilla Summit 2008 - ден трет
петок, 01 август 2008 @ 02:41 CEST
Mozilla Summit 2008 - ден втор
четврток, 31 јули 2008 @ 03:23 CEST
Mozilla Summit 2008 - ден прв
среда, 30 јули 2008 @ 22:56 CEST
Mozilla Summit 2008
вторник, 29 јули 2008 @ 02:42 CEST
The Golden Shield
среда, 21 мај 2008 @ 10:42 CEST
Linux System Programming
петок, 09 ноември 2007 @ 19:38 CET
Порака од далеку
вторник, 10 јули 2007 @ 09:36 CEST
World domination
четврток, 28 јуни 2007 @ 21:13 CEST
Life in the World vs Real War
четврток, 21 јуни 2007 @ 16:54 CEST
БаскерФест 2007
четврток, 31 мај 2007 @ 15:15 CEST
Knowledge based economy
вторник, 08 мај 2007 @ 17:40 CEST
Aaron Swartz за life, universe and everything
вторник, 08 мај 2007 @ 13:57 CEST
I submitted a bug-report to Apple, and all I got was this lousy SPAM
четврток, 03 мај 2007 @ 02:46 CEST
Sony морони
среда, 25 април 2007 @ 04:09 CEST
10 чекори за фашизам - HOWTO
вторник, 24 април 2007 @ 12:07 CEST
Конверзија на .flv во нешто корисно
сабота, 21 април 2007 @ 00:38 CEST
Испизден сум
вторник, 03 април 2007 @ 00:46 CEST
Респект Коља
среда, 28 март 2007 @ 05:35 CEST
Новите биометриски пасоши се тука
среда, 28 март 2007 @ 00:17 CEST
Bill Gates за патентите
понеделник, 26 март 2007 @ 03:34 CEST
Обсервација - средни школи
недела, 18 март 2007 @ 15:48 CET
Sharing knowledge
петок, 16 март 2007 @ 23:29 CET
Само уште ова за DRM... овојпат Vista
вторник, 13 февруари 2007 @ 02:40 CET
An open letter to Steve Jobs - вис-а-ви DRM
понеделник, 12 февруари 2007 @ 18:26 CET
Во други вести...
четврток, 08 февруари 2007 @ 18:35 CET
IRC digest (OpenDNS, GTalk, OpenGL, backups)
четврток, 08 февруари 2007 @ 14:04 CET

-сите постари текстови-

[atom feed]  
[æ]