Jag såg på emanuels blogg att han hade nått fancy sätt att visa source code. Kollade upp det och installerade pluginet!

Så nu kan jag visa lite railskod:

[sourcecode language='rails']
def episode_leader(episode_object)
return link_to(episode_object.progresses.first.user.name, :action => :show_user,
:id => episode_object.progresses.first.user.id) unless episode_object.progresses.empty?
end
[/sourcecode]

Eller med så kan jag visa hur jag löste sista tentauppgiften på programmeringstentan:

[sourcecode language='java']
import java.util.*;

class ProggTenta {
public static void main(String[] args) {
new ProggTenta().run();
}
public void run() {

LinkedList list = new LinkedList();
list.add(new NewInteger(120));
list.add(new NewInteger(865));
list.add(new NewInteger(9));
list.add(new NewInteger(743));
list.add(new NewInteger(12));
list.add(new NewInteger(325));
RadixSorter r = new RadixSorter();
for(NewInteger v : list) {
System.out.println(v);

}
r.sort(list);
System.out.println(” “);

for(NewInteger v : list) {
System.out.println(v);

}
}
}

class RadixSorter {
public void sort(LinkedList values) {
int longestInt = findLongestInt(values);
Queue[] queues = (LinkedList[]) new LinkedList[10];
for(int l = 0;l<10;l++){
queues[l] = new LinkedList();
}
for(int i = 0; i < longestInt;i++) {
LinkedList tmpValues = new LinkedList();
for(NewInteger v : values) {
if(v.length()-1 < i) {
queues[0].offer(v);
} else {
queues[v.intAt(v.length()-1-i)].offer(v);
}
}
for(int k = 0;k<10;k++) {
for(int j = 0;j tmpValues.add(queues[k].remove());
}
}
values.clear();
for(NewInteger tmp : tmpValues) {
values.add(tmp);
}
}
}
public int findLongestInt(LinkedList values) {
int longest = 0;
for(NewInteger v : values) {
if(v.length() > longest) {
longest = v.length();
}
}
return longest;
}
}

class NewInteger {
int value;
NewInteger (int value) {
this.value = value;
}
public int length() {
return toString().length();
}
public int intAt(int index) {
return ((int)(value/ (int) Math.pow(10,length()-1-index))-((int)(value/(int) Math.pow(10,length()-index))*10));
}

}
[/sourcecode]

Det störiga är att den förstör alla identeringar när man ska editera posten i efterhand.
Men annars är det fancy va?!


tetris



Hade tenta idag. En programmeringstenta.

Just nu känns det jävligt dåligt med den faktiskt. I efterhand har jag upptäckt ett par ganska stora missar i min kod som jag skrev för att få betyg 5. Jag gjorde en utsvävning i programmeringen och gjorde det på ett okonventionellt sätt, som var roligare och lättare för mig (för tillfället) att skriva. Men det var onödigt och jag hade kunnat sätta säkra poäng om jag bara hade varit mindre lat och skrivit om allting istället.

Men ärligt talat bryr jag mig inte det minsta om betyget. Det finnns fortfarande en medelstor chans att jag får en 5a och om jag inte skulle få det kan jag göra om tentan i augusti och få det.
Det som verkligen stör mig är att jag respekterar vår föreläsare enormt mycket, jag har gjort mig personligt känd för honom (det är sällan föreläsare vet vem man är) och han vet att jag har kodat tidigare. Jag känner en önskan att imponera på honom och ge honom samma respekt för mig som jag har för honom.

Det jag gjorde på tentan var onödigt och i slutänden blev det ändå bara fulkod av det. Framförallt är den fel. Att göra en utsvävning från standarden och lyckas är skitkul och imponerande, men att göra en utsvävning och misslyckas är tydligt tecken på hybris, ett tydligt tecken på att man tror för mycket om sig själv och att man borde hållt sig till standarden.

Jag antar att det inte gör så stor skillnad i slutänden, det är kanske inte ens han som rättar proven, han kanske aldrig ens tittar på min kod. Men för första gången i en tenta känner jag att jag hade kunnat göra bättre, och jag hatar den känslan.


tetris



Finns en riktigt bra sida som heter TED. Kollar videos där lite då och då, varje år håller de en konferens där vetenskapsmän, affärsmän och journalister, i princip alla smarta människor, får komma och hålla presentationer.
Hittade en video där nu idag (via reddit) som jag vill dela med mig av, den är riktigt härlig och en viktig läxa för fortsatta mänskligheten.



tetris



Jag valde ut en god dryck, i detta fallet en god skogsbärs-cider. Fyllde iPoden med Alan Watts, en fantastisk professor (tror jag han är) och filosof.

Ett exempel på hans fantastiska filosoferande:

Fyllde badkaret med varmvatten. Släckte ljuset och lade mig i vattnet och lyssnade på diskussioner om identitet och buddhism.

Det var så mörkt att jag nätt och jämnt kunde se skuggan av handen framför ansiktet. Med vidöppna ögon såg jag ingenting överhuvudtaget oavsett vart jag vände huvudet. Det var enormt avslappnande!
Först var det lite läskigt faktiskt, det är en känsla man inte är van vid. Det var en skrämmande inblick i hur det skulle kännas att helt plötsligt bli blind. Men efter 5 minuter så bara släppte allting och jag låg bara med ögonen öppna och stirrade ut i ingenting. Fantastiskt skönt.

PS. Titeln på inlägget är från “The Raven” av Edgar Allan Poe


tetris



Varför har saker färg? Vad är genomskinligt? Hur kan någonting blekas i solen? Hur kan någonting ha olika färger trots att vi bara belyser det med en specifik färg?

Allt detta och lite till får du svar på i en 9 sidig (12 inkl bilagor) rapport med en teknisk jargong som den vanliga människan förmodligen ändå inte kommer förstå!

Ett urdrag (eller rättare sagt hela) inledningen till rapporten:

Optiska effekter som ljusutsändning och ljusabsorption framstår i alla material. Bandgapet mellan valensbandet och ledningsbandet i materialet gör så att det synliga ljuset absorberas i olika grad. Är gapet väldigt stort blir ämnet genomskinligt, om ämnet bara har ett distinkt bandgap kan vi se att ämnet absorberar ett visst ganska kort intervall av våglängder, den absorptionen är vad som ger materialet sin färg. I den här laborationen ska vi titta på hur vi kan framkalla absorption, hur vissa material inte absorberar synligt ljus alls och hur vi kan framställa material för att absorbera en våglängd och sedan sända ut flera olika våglängder.

Är du intresserad av att läsa vidare (eller bara beskåda dess råa skönhet av vektorfigurer och ekvationer) så kan du hitta rapporten här. Och om du är intresserad av koden som skapade rapporten så återfinns den återigen här.


tetris



So i’ve just set up my slice on slicehost.com. It’s a 256mb slice so i’ve started to keep an eye on how much memory i’m using. Seems i had like 10 fcgi processes running with PHP, one that pulled 15% of memory, one that pulled like 7% and the rest pulling about 2% each. So this was a huge leak i thought. I only have 2 sites running on PHP so it seemed useless to have that many processes available for the sites. To limit this and reduce memory usage i changed this in my lighttpd config.


"max-procs" => 1,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "3",
)

This helped alot! It seems that lighttpd starts one process for each max-proc and 3 childrenprocesses for each max-proc. So this code results in 4 fcgi processes wich is more reasonable. I checked my sites to see if they slowed down but honestly, it just felt like they were faster. At the very least there was no difference. Once I surfed around the sites a bit the processes started pulling memory and came up to about 15% usage on one and 7% usage on the other again, but now i didn’t have 6 others pulling 2% each. This freed up around 10MB.

I now have a total of around 100-110MB free, that is, free incl. the cached memory. Which should be well and good and stand against most kinds of traffic i believe. My other 2 memory gobblers are mongrel_cluster which is pulling around 20% and MySQL which is pulling 14%. Postfix and Lighttpd are pulling just above 1% together so they are clearly not much more optimizable. I am a bit worried that mongrel is pulling 20% though. Of course most of the memory these processes use is cached, but it’s still pretty much. Anyone that can give me tips on how to further lower memory usage?


tetris



Då var man klar med ännu en labbrapport. Den här tog rätt lång tid att skriva också. Men det kändes inte så länge faktiskt, det blev 7 sidor text och 3 sidor Matlab grafer (6st).

Det handlar om tunneltransport. Alltså man skickar in en elektron mot en potentialbarriär, som helt enkelt är ett ämne som elektronen “inte gillar att vara i”, så det krävs lite extra energi för den att ta sig igenom materialet. Men den vill inte sakta ner och förbruka någon energi så den lånar lite energi från sina föräldrar för att hoppa igenom ämnet och komma ut på andra sidan i samma hastighet som den sprang i tidigare.

Om du är intresserad av en mer teknisk beskrivning så finns den här, och om du gillar LaTeX så kan du titta på koden för rapporten här.


tetris



Nu bör min blogg ligga tryggt och säker på min nya 256MB slice på slicehost.com!

Förhoppningsvis märker ni att sidan är snabbare men framförallt kommer ni märka att den numera aldrig kommer att gå ner. Skithärligt!


tetris



Arrangerad av FestU på Chalmers.
Det var helt klart en av de roligaste festerna på enormt länge. Det var extremt stort, 8 dansgolv, 11 barer och 6000 studenter. Det fanns 2 hoppborgar (fast den ena gick sönder efter några timmar) och en klättervägg. Poolen var öppen fastän de hade tömt den nästan helt på vatten :P

Dessutom var det väldigt varierad musik så det fanns något för alla, det fanns ett rum med lounge musik (!) som man nästan aldrig ser någonstans, där fanns det massa soffor och man kunde vila huvet och benen lite.

Dessutom fanns det ett trance golv som faktiskt spelade bitvis riktigt hård och skön musik. Man kunde knappt se 1 meter framför sig och stroben gick konstant så det var helt perfekt känsla där inne!

Allt som allt en väldigt bra kväll. Detta var vad jag lyckades fånga upp från kvällen i bildformat.


tetris




tetris