Siste nytt fra min linux-verden

Posta av helgeb - 17. august 2010 kl. 22:41

Eg husker ikkje helt nøyaktig, men eg tror det no er rundt 5 år siden eg blei introdusert for linux for første gang. Eg hadde hørt om det, brodern hadde lekt seg litt med det, men eg visste egentlig ikkje helt ka det gikk i. Eg blei tilbudt å låne en cd med Ubuntu 5.04 (utgitt april 2005, altså ca 5 år siden) for å teste ut linux, siden nokken kamerater dreiv og sysla litt med det. Nerd som eg er takka eg ja til tilbudet, og gikk igang med freidig mot og skulle installere Ubuntu.

Lettere sagt enn gjort, men det gikk jo på et vis. Med mye surfing på forum og guider på nettet kom eg endelig til et punkt kor eg faktisk hadde et system som fungerte. Eg husker godt eg sleit lenge med ting som å få nettverkskortet til å funke, og å få riktig oppløsning på skjermen og denslags.

Første gang en ny versjon av Ubuntu fungerte fullstendig ut av boksen, var når Ubuntu 6.06 kom. Dette skulle være en såkalt LTS, long term support, som skulle være ekstra stabilt til bruk på typisk kontor-pcer og denslags. Det tok 2 måneder lenger enn det skulle, men det var veldig verdt det når det først kom! Siden syns eg Ubuntu bare overgikk seg sjøl for kver nye versjon som kom, som var en gang i halvåret.

Men alt godt må vel ende en gang.. Ubuntu 9.10 stod for døren, og forventningene var som vanlig høye! Men akk, denne gangen hadde Ubuntu og Canonial virkelig drete seg ut, for første gang i sin 5 år lange karriære. Skuffelsen var enorm, og med store håp om forbedringer i neste versjon, som skulle være en LTS, beholdt eg forrige versjon for å ha et stabilt system.

Siden den gang har eg stort sett ikkje brukt Ubuntu. Det skyldes to ting, for det første nettopp det at den nyeste versjonen ikkje var som den burde være. Den andre var at Windows 7 ble lansert, og Universitetet i Bergen’s generøse meddelelse av medlemskap i MSDN, som gav meg gratis lisens på det.

Ved tidspunktet anskaffelse av en netbook, var eg veldig gira på å installere linux på denne, og valget falt naturlig å velge Ubuntu, etter mange års trofast tilhengerskap. Det som etterhvert viste seg, var at gitte netbook eg skaffa meg har et skjermkort som per i dag ikkje er levert med ordentlig støtte for linux. Burn. Nyeste versjon av Ubuntu var så godt som ubrukelig på den maskinen. Siden dette er en ganske populær netbook, og mange ønsker linux på den, blei store mengder open kildekode-folk satt i sving for å skaffe på veie en driver av noenlunde kvalitet. Dette tok ca en måned, og per i dag får man full oppløsning på skjermen, men man kan ikkje stille lysstyrken på skjermen, og man kan ikkje bruke suspend/ventemodus. Noe som er ganske slitsomt i lengden.

Tanken på andre linux-distribusjoner var i bakhodet, men eg visste ikkje helt kor eg skulle ta fatt. For ca ei veke siden fikk eg høre om et system som heter Jolicloud, som nylig var sluppe i versjon 1.0 og som tidligere kun hadde vert tilgjengelig i lukket alpha-versjon. Dette var et system som påståelig skulle støtte min netbook og mange andre med samme skjermkort. Dette måtte prøves, og til min store overraskelse hadde det både riktig oppløsning og muligheten til å stille skjermstyrke rett ut av boksen! Eg var oppriktig imponert. Det førte til at det no har erstatta Ubuntu som linux-distroen på netbooken, som koser seg ved siden av Windows 7.

I tillegg til å ha bytta ut Ubuntu på netbooken, har eg òg bytta ut Ubuntu på den stasjonære. Det var flere måneder siden eg hadde vert inne på den, så den var egentlig bare der til pynt. Så på søndag fikk eg besøk av Andreas, og det var tid for forandring. Eg hadde fått for øret at nokken har fått til å kjøre Adobe Photoshop CS3 i linux-distroen Arch Linux gjennom Wine. Så planen var klar, Arch Linux skulle installeres på min stasjonære. Lettere sagt enn gjort, siden det i første runde leveres uten skrivebordsmiljø. Etter 3-4 timers fikling i terminalen for å få nettverket til å funke (VPN er nokke drit…) fik vi endelig internett opp og gå. Derfra var ikkje veien lang fra å få oppdatert systemet og laste ned et skrivebordsmiljø, valget var enkelt, GNOME. Ting fungerer ikkje optimalt, og eg har ikkje fått til å installere Photoshop. Systemet har helt klart forbedringspotensiale, så eg har hatt masse å gjøre på de siste dagene. Eg syns det er artig å leke med linux igjen, det er så lenge siden sist.

For eventuelle lesere som no er sur på meg fordi eg konsekvent har skreve Linux istedenfor GNU/Linux, så har eg gjort det fordi eg er lat og gidder ikkje skrive GNU/Linux bare fordi det «egentlig» heter det.

http://en.wikipedia.org/wiki/GNOME

Mer python

Posta av helgeb - 25. april 2010 kl. 15:27

Etter å ha hatt endel programmering (Først inf100, og no inf109) syns eg det var på tide at eg brukte det til nokke fornuftig. Det vil si, nokke annet enn oppgavene spør om. Så, for ikkje så lenge siden begynte eg å lese en webcomic (kom ikkje på et godt norsk ord på det) som heter Megatokyo. Et problem er at den er på nettet. Og med det hersens dårlige nettet eg har heime, så er det ganske tungvindt. Ka gjør man då? Jo, man programmerer.

Det er då må ha, er et skript som laster ned alle bildefilene som utgjør selve serien. Heldigvis er de sortert etter nummer, det gjør jobben mye lettere. Deretter er det jo egentlig litt upraktisk å lese på .gif-filer hele tiden. Ka gjør man då? Mer programmering!

Det hadde jo vert veldig greit å lage en pdf med alle bildene i, sortert i riktig rekkefølge. Dette prøvde eg først å gjennomføre vha \LaTeX, som viste seg å være litt vanskelige enn antatt. Eg endte med å lage alle bildene til pdf-er, og satt de sammen med det som heter pdftk. Med det hele satt sammen, kan man få et skript som ser omtrent ut som dette. Snippen av koden som laster ned selve stripene kan forkortes til følgende:

#!/usr/bin/env python

import subprocess
def main():
    for i in range(1, 1265+1):
        cmd = "wget http://megatokyo.com/strips/%(#)04d.gif" %\
        {"#": i}
        subprocess.call(cmd, shell=True)

main()

Dette tok meg sabla lang tid, for nettet eg bruker er ganske ubrukelig. Men eg fikk det ned tilslutt, så no sitter eg med en pdf på ca 1265 sider som eg kan lese Megatokyo fra istedenfor å måtte surfe det på nettet hele tiden. I tillegg kjører skriptet 3 ganger, en for gif, en for jpg og en for png. Skulle eg laga program som sjekka hvilken filtype det nummeret hadde, måtte eg begynt med ganske mye heftigere programmering enn dette (som innebærer å laste ned kildekoden for å finne filnavnet og diverse).


Python

Posta av helgeb - 21. april 2010 kl. 23:30

Ordet python er forbundet til mange forskjellige ting, alt etter hvilke referanser man har. Nokken tenker kanskje pytonslange. Andre forbinder det gjerne med Monty Python. Andre igjen, som meg, forbinder python med programmeringsspråket Python.

Python har en veldig artig sak. Han som en gang i tiden laga dette programmeringsspråket, måtte jo, som med det aller meste, sette opp en oversikt og lage en utredning om ka som er grunnlaget for og hovedtrekkene i det man prater om. For python sin del er dette et heller langt dokument. Men så var det en luring som heter Tim Peters som formet dette dokumentet til 20 aforismer, dessverre ble bare 19 av de skrevet ned. Vil man lese disse aforismene, som blir kalt The Zen of Python, kan men enten søke på nettet etter det. Men om man har python kan man lese det ved å finne et easter egg:

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!