fredag, september 29, 2006

Utbildningsbevakare

Har fått förslag om att jag ska bli utbildningsbevakare nu. Förra året har jag varit ledamot hos kårfullmäktige men det har tagit slut nu då SySek slagits ihop med SNS.

Det är väl ett avancemang? Från ledamot till utbildningsbevakare. Det känns som ett avancemang iaf. Och det borde väl se ännu bättre ut på mitt CV. Nå, det är ju inte riktigt därför jag tänkt gå med på att bli det. Men visst ser det bra ut på CV't också.

Stackars SySek har så ont om engagerade människor just nu, så man får väl dra sitt strå till stacken. Får se hur det blir med detdär, bevakandet. Man kan ju inbilla sig att eleverna faktiskt har inflytande, och så kan man låtsas att man åstadkommit en förbättring i utbildningen. Fast tyvärr är jag cynisk av mig, och vet hur lite inflytande man egentligen har när det kommer till kritan. Åsikter lyssnas på men det är nog allt.

Från det ena till det andra; ibland förbannar jag allt som har med elektronik och datorer att göra. Varför har allting blivit så dålig kvalité? Varför går allting konstant sönder? Idag fick jag mig en nygammal router, som jag köpte lätt begagnad på nätet. Gissa hur länge den höll? En timme! Och sånthär verkar hända mig jämt. Engång köpte jag en sån handkontroller för spel, den höll i 2 dagar. Allting ska göras så himla billigt idag att det är totalt struntsamma hur länge produkten i slutändan faktiskt håller. Man lovar en fin garanti men gör det så trassligt som möjligt så att konsumenten ska strunta i det och köpa en till likadan. Och det känns som om det håller på att bli likadant med PC-datorer. Fläktar överallt i burken som börjar låta som arga getingar efter några månader. Hårddiskar som krashar efter en månads bruk. Döda pixlar på nya skärmar.

Det är konstigt, men mina äldsta datorer är de som hållt längst. Har en SparcStation 4 som snurrat 24/7 hos mig i 5 år ungefär, och den är från mitten av nittiotalet ursprungligen, aldrig varit minsta lilla problem. De gamla 1-4gb hårddiskarna börjar krasha först nu, och de är också från mitten av nittiotalet. Har en P2-400 i garderoben som stått igång i 5 år nu, inga problem. Min gamla P3-450 har systern nu, samma där.

Eller är det så att det är åldern som spökar, och man inbillar sig verkligen att allt var bättre förr?

tisdag, september 26, 2006

Minimalistisk Java

Så jag tror att jag och en klasskamrat kommit på någonting lämpligt att ha som hobbyprojekt under åren fram tills vår examen. Alltså något projekt att utveckla och programmera. Tänker inte skriva på bloggen riktigt ännu vad det är för idé, vill ju inte att nån snor den. ;-)

Hursomhelst, poängen är att ta fram ett litet program. Det ska vara rätt minimalistiskt och resurssnålt (till skillnad från det mesta idag). Men samtidigt tänkte vi göra det i Java. Hur går detta ihop?

Jag har försökt googla runt lite efter hur man använder så lite resurser som möjligt med Java, men kan inte direkt påstå att jag hittat något särskilt läsvärt om det. Om man kompilerar programmet till native code så ska det tydligen bli snålare, slippa JVM'et. Och så finns det tydligen flera JVMs. Är verkligen ingen expert inom dethär området. Är det någon som är det?

Kan man skapa resurssnåla applikationer med Java? Ett tydligt exempel på vad jag menar är de två Bittorrent-klienterna Azureus och uTorrent. Azureus äter i runda slängar 150mb ram. uTorrent äter 6mb, och binären är på 170kb. Azureus är Java och uTorrent är C (om jag minns rätt).

Nå, tips mottas gärna. Nu ska jag pyssla med något annat ett slag.

onsdag, september 20, 2006

Minnas programmeringsspråk

Jag är lite orolig. Om c:a 2 år bör jag vara klar med min utbildning. Och efter det, är det rimligt att anta att jag kommer söka jobb som utvecklare. Dvs programmerare.

Och visst, jag har haft en kurs i grundläggande C och en kurs i lite mindre grundläggande Java. Men frågan är, hur mycket av detta kommer jag komma ihåg? Och desto viktigare, hur mycket förväntar sig arbetsgivaren?

Jag har, om jag får lov att vara lite skrytsam, en talang för att lära mig saker. Det är inte så att jag är särskilt duktig på nånting specifikt, utan bara det att jag lär mig snabbare än de flesta, så länge som jag är intresserad. Men jag har inte talang för att hålla det kvar i minnet. När jag inte har gjort nånting i Java på ett halvår så minns jag inte särskilt mycket. Visst, det kommer förvisso tillbaka snabbare än om jag inte hade gjort nånting alls tidigare, men det tar minst en vecka eller två innan man är på samma nivå som innan.

Så jag undrar, när man väl kommer ut i arbetslivet, förväntas det att man kan sin grej på momangen? För det är ju inte så att vi hållt på med någon slags avancerad programmering hittils heller. Kursen i C var helt textbaserad och grundläggande (if, for, while, printf ungefär) så om jag nu skulle få jobb som C utvecklare så måste jag medge att jag skulle behöva ett par-tre intensiva veckor för att kunna vara produktiv. Och det är nog rätt snabbt dessutom, folk som halkat sig igenom kurserna och saknar personligt intresse kommer ju verkligen ha problem.

Borde inte arbetsgivarna kanske ha en bättre kommunikation mot lärosätena angående detta? Och borde inte utbildningarna berätta lite mer om vad som komma skall? Tänk om man tror att man är kapapel till att arbeta som C-programmerare efter en såndär grundläggande kurs? Ger inte det utbildningen ett dåligt rykte sen i längden? "Vill du ha nån som kan programmera så ta en datatekniker, dom knackar C i flera år. Systemvetarna bara läser böcker."

Vad jag hört, så är det så idag att det är mycket svårt att få nåt annat jobb än längst ner på stegen. Och där blir man nog illa tvungen till att knacka kod. Nåja, jag tänkte som så, att jag måste skaffa mig något långvarit hobbyprojekt i valfritt språk. Tror det blir Java. Kanske något spel.. någon som har något förslag? Det ska helst inte bli klart efter några veckor, och det ska finnas plats för utveckling.

fredag, september 15, 2006

Ang. socketprogrammeringen

Liten rättelse bara, eller ja, knappt rättelse. I mitt kodexempel gällande socketprogrammering i Java hade jag en sånhär rad:

Socket clientSocket = new Socket(InetAddress.getByName(aHost), aPort);


Felet är att det kan missförstås som att man måste köra getByName där. Men Socket klarar av hostnames också, och kollar upp ip-numret själv då. Så det behövs inte någon lookup där, egentligen.

Mer än så har jag inte att berätta just nu, helgen har börjat till slut och hjärnan känns öm. ;-)

onsdag, september 13, 2006

Patcha operativsystem

Häromdagen skulle vi patcha maskinerna vi använde i labbuppgiften, för att se till hur det går eller nåt. Hämta alla senaste patcharna och installera.

Upptäckte då att Solaris har iom releasen av Solaris 10 bytt system för patchning. Nu fanns det inte längre en ftp man kunde hämta enstaka patchar ifrån, och somliga patchar krävde tom ett serviceavtal. För att få hem någon patch öht så krävdes det att man registrerade sig på deras hemsida, och sen skulle man autentisera sig ännu på datorn. Vilket INTE var det lättaste när man inte hade X installerat.

Herregud tänkte jag för mig själv, vill man verkligen göra det svårare för användarna att hålla sig uppdaterade med senaste säkerhetspatcharna? Dendär ruljansen är inte lätt för en nybörjare, och kan kännas verkligen avskräckande.

Inte för att linuxvarianterna är SÅ mycket bättre, apt-get (dvs Debian) är ju visserligen himla smidigt men det är tragiskt att du får välja mellan att ha skitgamla versioner på allting eller riskera att allting går sönder när du ska uppdatera versionerna. Jag syftar då på stable och unstable/testing, vad de nu hette.

Samma problem finns hos Windows nuförtiden. Innan du får hem någon patch måste du först installera programvara som ska kontrollera att den cdkey du använder är legitim. Tanken är väl god ur ekonomisk synpunkt, ge folk någonting värt att betala för. Men nja, det fungerar inte i verkligheten. Dels ger det en bitter smak i munnen när du måste installera ännu mer programvara för att bara kunna patcha datorn. Dels så är det enormt många i världen som aldrig tänker ge Microsoft pengar, för det är sån överpris på allt.

Så de sitter där hellre, med opatchade datorer. Och så frodas maskarna och alla små lyckliga virusar, som åker omkring på nätverken och förpestar tillvaron för användarna. Och ger Windows ett enormt dåligt rykte, såklart. Så dendär eventuella vinsten de gör på dedär hundra stycken som först nu köper sin licens, förlorar de nog på det förakt som skapas på längre sikt.

måndag, september 11, 2006

Socketprogrammering i Java

I ena kursen jag läser nu så skulle man programmera klart en liten halvfärdig chattklient. Poängen var att lära sig nätverksprogrammering i Java.

Jag blev förvånad över hur lätt det egentligen var. Det var inte mycket man behövde bekymra sig om. För att skapa en ny socket var det bara att skapa ett nytt Socket objekt och skicka ip och port till constructorn. Förvånande simpelt, måste jag medge.

Och input/output fixades lätt med Input/OutputStreamReader via BufferedReader/Writer.

Hade förväntat mig något krångligare, blev klar med uppgiften på en kväll. Hade räknat med det dubbla. Skönt att ligga något före för engångs skull.

Kodexempel
:

Socket clientSocket = new Socket(InetAddress.getByName(aHost), aPort);
reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream(), "UTF-8"));
writer = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream(), "UTF-8"));
..
String radIn = reader.readLine();
..
writer.write(aMessage + "\n");
writer.flush();

tisdag, september 05, 2006

Förkortningar

Här är en massa förkortningar som är relaterade till systemutveckling på något sätt:
  • SDCC - System Development Life Cycle
  • RAD - Rapid Application Design
  • JAD - Joint Application Design
  • CASE - Computer-Aided Software Engineering
  • XP - eXtreme Programming
  • RUP - Rational Unified Process
  • ASP - Application Service Provider
  • TPS - Transaction Processing System
  • MIS - Management Information System
  • DSS - Decision Support System
  • EIS - Executive Information System
  • OOAD - Object-Oriented Analysis and Design
  • CBD - Component Based Development
  • DSDM - Dynamic Systems Development Method
  • USDP - Unified Software Development Process (RUP/UP)
  • UML - Unified Modelling Language
  • CORBA - Common Object Request Broker Architecture
Det finns såklart en halv miljon till, men detdär är de som man kan stöta på lite oftare. Iaf jag, för jag har dessa i min anteckningsbok.

Högt tempo

Efter en vecka med de nya kurserna kan jag konstatera att tempot är snäppet högre än hos de kurser jag läst på systemvetenskapliga programmet. Det kan ha något att göra med att det är en annan instution.

Man märker dessutom att det är mycket "matte-tänk" när det är civilingenjörskurser. Nu ska man räkna ut fördröjningar i nätverk och maximala antal meddelanden som skickas om man har X antal grannar och det skickas vidare Y gånger.

Jag har inte använt mattedelen av min hjärna på säkert 5 år och känner mig matematiskt handikappad. Ska man inte bilda ord av bokstäver istället för att räkna med dem? Galna grejjer.

Men jag är nöjd med kurserna och känner mig inspirerad. Skönt med något mer konkret. Vårens kurs i Objektorienterad analys och design samt kursen om SSM (som hette Systemutveckling II då) tröttade ut en med allt det hypotetiska, allt spekulerande. Det var riktigt flummigt där ibland, man förstod knappt vad man höll på med. Och vissa delar i SSM kändes som rena akademiska påhitt som troligtvis endast tillämpas av andra akademiker. Det är inte riktigt min tekopp, om vi säger så.

Hemskt förresten hur snabbt man glömmer saker och ting. Nu ska en sak lämnas in i nätverkskursen som ska göras i Java, och jag läste ju en kurs om det bara några månader sen, men nu blir det som att lära sig om på nytt. Känns som om jag inte minns nånting längre. Fast jag vet ju att det kommer snabbare åter än man tror, bara man sätter sig ner och börjar fila på nånting. Nätverksprogrammering, jahaja, det ska bli intressant att se hur det går. Fast gott om tid var det inte, 1½ vecka så ska det vara klart. Tempo tempo!