20. apríl 2007

Tiltekt take #2

Enn og aftur stendur maður frammi fyrir því að vera að skrimta á síðustu lausu 10 MB á vélinni sinni. Sífellt að eyða út sömu skránnum til að gera eitthvað örlítið pláss... á engin heil lög lengur á iTunes, klippti þau öll niður í 1 mín og 24 sec... iss hvað þarf maður meira en bara rétt svona smá.. alveg hægt að humma afganginn af laginu... (svo er heldur ekkert orginal í gangi lengur).

Allavegana í framhaldi af síðustu tiltekt hjá mér þá ákvað ég að prófa aftur að keyra vin minn OmniDiskSweeper. Verð að viðurkenna að ég er minna hrifin af því núna en ég var áður, þannig að ég fann annað forrit sem er ef ekki betra (ef ekki bara fyrir þá staðreynd að vera ókeypis). Já notaði í þetta skiptið forritið WhatSize.

Nokkuð gott forrit verð ég að viðurkenna.

En að kjarna færslunnar, í dag hef ég nefninlega verið að safna saman og afþjappa niðurstöðuskrám úr tilraunum síðustu dagana. Í morgun þá átti ég >4GB laus á tölvunni minni og taldi mig nú bara nokkuð góðan fyrir skráarskammt dagsins. Ég nota klassísk þjöppunarforrit á linux til að pakka og þjappa skránum saman (tar og gzip) áður en ég flyt þær yfir. Makka megin þá hefur nægt mér hingað til að tvísmella á skrárnar í findernum og bíða eftir að stuffit afþjappi þær fyrir mig (sú bið getur verið löng).

En í dag þá lenti ég í því að skráarskammtarnir voru víst stærri en ég gat ráðið við, þ.e.a.s. afþjappaðar þá voru textaskrárnar mínar um 6GB sem að sjálfsögðu passaði ekki á diskinn minn. Það furðulega var samt að þegar stuffit kláraði plássið á disknum mínum og sagði mér að aðgerðin hafi ekki tekist þá hvarf samt all diskaplássið mitt. Þrátt fyrir að tæma allar temp, tmp og cache möppur þá tókst mér ekki að fá til baka þessi 4GB.

Það var ekki fyrr en ég í örvæntingu minni keyrði upp WhatSize að ég komst að því að stuffit hreinsar ekki upp eftir sig temporary skrár þegar afþjöppunin hættir vegna plássleysis. Í stað þess þá smíðar stuffit faldar möppur (nöfnin byrja á .BAH****) sem liggja í sömu möppu og þjappaða skráin sem var verið að reyna að afþjappa! Og hvað er í þessari möppu?



Ófullkomið afrit af upphaflegu þjöppuðu skránni!!! Þvílíkur munur!


... Þvílík heimska!

20. mars 2007

Mac OS X Update 10.4.9

The 10.4.9 Update is recommended for PowerPC and Intel-based Mac computers currently running Mac OS X Tiger version 10.4.8 and includes general operating system fixes, as well as specific fixes or compatibility updates for the following applications and technologies:

- RAW camera support
- Handling of large or malformed images that could cause crashes
- Image capture performance
- Mouse scrolling and keyboard shortcuts
- Font handling
- Playback quality, and bookmarks in DVD Player
- USB video conferencing cameras for use with iChat
- Bluetooth devices
- Browsing AFP servers
- Apple USB Modem
- Windows-created digital certificates
- Open and Print dialogs in applications that use Rosetta on Intel-based Macs
- Time zone and daylight saving for 2006 and 2007
- Security updates

For detailed information on this Update, please visit this website: http://www.info.apple.com/kbnum/n304821.
For detailed information on Security Updates, please visit this website: http://www.info.apple.com/kbnum/n61798.

Finally, USB camera support in iChat! (albeit how limited this will be at first, it is a step in the right direction) Hurray! Now if only iChat was able to talk to other clients than only other iChats and that stupid Yahoo! (Ad-spyware)chat client.

19. mars 2007

Fór í heimsókn til gömlu hjónanna um helgina...


Jamms, maður kíkti við í heimsókn til mömmu og pabba gamla. Get ekki alveg sagt að þetta hafi verið svona. En samt sem áður er vídjóið fyndið :D

16. mars 2007

Top 10 Reasons to Major in Computing

For the next time you're asked to give a good reason why to study computer science.
Taken from the ACM's Computing Careers site:

Top 10 Reasons to Major in Computing

1. Computing drives innovation in the sciences (human genome project, AIDS vaccine research, environmental monitoring and protection just to mention a few), so if you want to make a positive difference in the world, study computing.

2. Computing majors will provide you with a foundational knowledge of problem solving and logical thinking that will be helpful to you no matter what you choose to do in life.

3. Computing technology is part of just about everything that touches our lives; from the cars we drive, to the movies we watch, to the ways banks and governments deal with us. Understanding computer science is part of the necessary skill set for an educated person in this century. Whether you want to be a scientist, develop the latest killer application, or just know what it really means when someone says “the computer made a mistake”, studying computing will provide you with valuable knowledge.

4. Computing jobs are among the highest paid and have the highest job satisfaction.

5. Contrary to popular belief there are more, and not fewer jobs. U.S. IT employment was 17% higher in 2004 than in 1999. Computing also has the greatest potential for new jobs through 2014.

6. Contrary to what some people believe, computer scientists are real people. They have lives. They have friends. They do not sit in a cubicle pounding out code 18 hours per day.

7. You do not have to be a nerd to be a computer scientist. You do not have to to live, eat, and breathe computing to be a good computer scientist. You can have a life, relationships, a family.

8. Computing is not about being a lone wolf. It is about being part of a team that requires people with many different kinds of skills.

9. An increasing number of universities and employers see successful completion of a computer science course as a sign of academic well-roundness.

10. Computing is one of those fields where it is almost impossible to predict what will happen next. This is why we cannot even begin to imagine all the ways that you can make a contribution to it and it can make your life’s work exciting and real.

[ACM Site]

15. mars 2007

MacFUSE and NTFS on OSX

Well nothing written in a while, been busy with RL and future plans. :)

However I felt compelled to (at least) link to these great news. The wonderful peeps at Google have made an OSX port of the Linux originating FUSE (File-system in USErspace) mechanism. For those of you who just went "Huh? Wha? Whocaresdude!" FUSE makes (along with many other) it possible to have Read/Write access to NTFS volumes on a Mac.

Those who still shrug, NTFS (Windows NT File System) has become the industry standard file-system structure for Windows based systems ever since admins realized how crappy FAT really is... So what this has meant for us casual computer users is that all NTFS formatted disks (most Windows formatted disks) have largely been unavailable in OSX. Albeit a rather "flaky" read-access to NTFS, OSX has lacked a propper implementation of a NTFS bridge.

But now, thanks to a lot of hard-working people, we can enjoy unlimited access to all our drives. This has been a head-ache for myself since all my USB disks are NTFS formatted. So now I can finally use a single USB drive to store all my photos and videos, and plug it into both Macs and Windows machines at will. :D

See links below for more info on installing MacFUSE and NTFS-3G:
Article on MacOSXHints
MacFUSE project page and a tip on how to solve the "macfuse_required" error
NTFS-3g Project page and alternative download

21. febrúar 2007

Update troubles....

For some unknown (possibly stupid) reason I decided to update the fink package manager today to a newer version. After a painstakingly long update process (needed to compile the whole thing on my machine) I discovered to my horror that I couldn't run any of the terminal programs. The only thing that happened was the printout of this error:
Reason: Incompatible library version: tar requires version 6.0.0 or later,
but libiconv.2.dylib provides version 5.0.0
(Was trying to run tar)

So after some digging around I discovered that a conflict existed between this libiconv.2.dylib file I (for some reason) had in two separate locations on my machine.
One was at: /sw/lib
ls -all /sw/lib/libiconv.*
1270620 Feb 21 15:06 /sw/lib/libiconv.2.3.0.dylib
20 Feb 21 15:06 /sw/lib/libiconv.2.dylib -> libiconv.2.3.0.dylib
20 Feb 21 15:06 /sw/lib/libiconv.dylib -> libiconv.2.3.0.dylib
804 Feb 21 15:06 /sw/lib/libiconv.la
The other was at:
ls -all /usr/lib/libiconv.*
    16 Aug 19  2005 /usr/lib/libiconv.2.2.0.dylib -> libiconv.2.dylib
987544 Oct 3 11:55 /usr/lib/libiconv.2.dylib
20 Aug 19 2005 /usr/lib/libiconv.dylib -> libiconv.2.2.0.dylib
786 Sep 11 22:48 /usr/lib/libiconv.la
Asking otool (man otool) to list the names and version numbers of the shared libraries that the object file uses reveiled the following:
otool -L /sw/lib/libiconv.2.dylib
/sw/lib/libiconv.2.dylib:
/sw/lib/libiconv.2.dylib (compatibility version 6.0.0, current version 6.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.7)
otool -L /usr/lib/libiconv.2.dylib
/usr/lib/libiconv.2.dylib:
/sw/lib/libiconv.2.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.0.7)
There is indeed a discrepency between the versions of the two libiconv.2.dylib files. So what did I try? Ofcourse simply renaming the old version to a backup filename and creating a symlink to the new updated file in the /sw/lib directory. Simple right?

Wrong! This had to be one of those times when I make a typing-error and don't double check it. So I successfully created this symlink in the /usr/lib/ directory:
/usr/lib/libiconv.2.dylib -> /sw/lib/libconv.2.dylib
Notice the missing "i" in the target filename!

So after a hopefull restart I discovered to my horror that OS X was permanently stuck on the loading screen (apparently this library is used for some sort of character set conversions, don't ask). So, I was stuck. Couldn't log into my machine to correct the problem. Thank god I have a lot of higly skilled co-workers, one of which suggested that I'd try booting into OSX in single-user mode (omg, always learning something new!). So that gave me access to local computer through a simple the shell prompt. After some fumbling with unlocking the file-system (tip: 'fsck -y' then 'mount -uw /') I managed to undo my changes and reboot back into my normal system and by fixing the small typo and recreating the symlink, everything worked just fine.

A rather boring story I hope you agree, but a nice way of learning how to do a "safe-mode startup" on a Mac and re-mounting a read-write file-system.

Have phun kids :)

9. febrúar 2007

A worthy reminder...

Computer science is no more about computers
than astronomy is about telescopes.
--Edsger Dijkstra.

24. janúar 2007

Today's Quote

"We built a radio just like the books specify,
but it did not play music...

[Only later did we learn that] the music was in the waves,
not in the radio."

-Zor and YenDor, R.U.R. (Dr. Rosalind Picard)

22. janúar 2007

It is unscientific to believe in humans...

Found a wonderful dialog that Dr. Picard presented at MIT in 1997. If you have 10 minutes to spare, check it out :)

Machines That Can Deny Their Maker

Rosalind W. Picard

The following dialogue was presented as part of the lecture "Toward Machines That Can Deny Their Maker," given at the MIT Course "God and Computers" by Rosalind W. Picard during the fall semester 1997.
 
The dialogue was inspired, in part, by the 1921 play of Karel Capek, entitled "R.U.R.," which stands for Rossum's Universal Robots. This play is where the word robot originated, from the Czech "robotit," which means "to drudge." In R.U.R., humans have figured out the secret to making robots that are emotional and alive. However, the robots can only live for 20 years. Afterward, they expire (die.)
 
The robots in this dialogue share the following features with those in R.U.R.: They are affective computers, with an extensive set of emotional abilities. They do not know how to make themselves, nor do they know how to prolong their existence beyond 20 years. They do not have the "secret recipe" that is what gave them life. But, they have the desire to find it.

17. janúar 2007

Ch-ch-ch-ch-Changes...

Mucking about on Youtube is simply fun :)

Was searching for Bill Gates keynote at the CES this year (since they can't webcast it properly for non-windows browsers). Just wanted to witness the awful catastrophe I thought this keynote was with my own eyes.

Finally found all the parts of Mr. Gates keynote and forced myself to watch most of it ( Part 1 and onward). When comparing this keynote to the one held by Steve Jobs earlier this year at WWDC 2007 and last years WWDC 2006, it was simply dreadful. While Apple's CEO talked in moderation with lots of visual aids and actually demo'ed the technology and enhancements that he was talking about, microsoft's CEO talked in (at times) excruciating length about how their new flagship OS, Windows Vista, provided "interconnected device experience", how "intuitive and simple" their UI and navigation and how innovative the infrastructure is (honestly, what does that mean? and why do the users care?). Why not simply show it? Lengthy dictator-like sermons get tired really fast. Since it's so simple and intuitive, show it.. the users should get it right away right?!

It was simply sad to watch, how should the users trust Windows Vista enough to use if the developer, microsoft, is to afraid to show and demo its features live? Simply sad...

Also a historical stroll through bright and dark times at Apple watch these videos:
1983 Apple Keynote-The "1984" Ad Introduction
Macworld Boston 1997-The Microsoft Deal
Apple WWDC 2006-Windows Vista Copies Mac OS X
The Boston 97 event was just excruciating to watch, although Mr. Jobs rightly pointed out that "For Apple to win, Microsoft doesn't have to loose". I however had a hard time not laughing out loud when Jobs announced that "The era of setting this up as a competition between Apple and Microsoft is over as far as I'm concerned" especially after watching the third video in the list. It's good to know that Apple and Microsoft (and others) are still competing, keeps us all healthy :)



The bottom-line, I honestly don't think I'd accept a job offering at microsoft at this point. I however would love the opportunity to work with Apple.

What closed the deal and finally won me over? It's the 15 minute long commencement speech that Steve Jobs gave at Stanford University in 2005. This is a man I want my work to impress. If you only watch one video, watch that one.

4. janúar 2007

Rotating a matrix CW/CCW in Python

Just for those of you who are wondering, like I was :)

import sys, os

def rotate( indata, height, width, rotate_ccw ):
outdata = []
for col in range( width ):
newrow = []
for row in range( height ):
if( rotate_ccw ):
newrow.append( indata[row][(width-1)-col])
else:
newrow.append( indata[(height-1)-row][col])
outdata.append( newrow )
return outdata

#Test the rotation
test = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]

print test
print "Rotate CW"
rotated = rotate(test, 3, 3, False )
print rotated
print "Rotate CCW"
print rotate(rotated, 3, 3, True )

In under 15 minutes, hurray for Python!

2. janúar 2007

I am the ROBOT!

For those of you who might be interested, I've finally posted the first (bare bones) version of my new pet-project project web page.


Visit: Rob the Robot Project Page


I still have to update the already completed phase pages (phase0 and phase1) with images, blueprints and code but all in good time :)

Meanwhile, happy new year!
I've got a good feeling about 2007... It's gonna be great :D

24. desember 2006

"Tilvalin jólagjöf 1.999 kr." (stendur merkt)

Hagkaup er með svarið, alveg tilvalið!


Gleðileg jól öll sömul
Merry Christmas everybody
:D

4. desember 2006

jesús...

Googlism for: sverrir

sverrir is one of a group of international and world
sverrir is the most acute actor i've ever met
sverrir is "epitaph" a collection of icelandic folk songs with a medieval ambience
sverrir is a third year student in business administration and he´s the chairman of mágus
sverrir is de lammeren maar gaan scheren want die zet'ie nu toch niet meer buiten
sverrir is found in the name of sverrir sigurdarson


Og Signý hélt að hún hefði verið með ömurlegt google-thingy... holy crap! This sucks monkey balls...

Hvað á þetta eiginlega að þýða:
"sverrir is found in the name of sverrir sigurðarson"...
barmafullir bakpokar batman.. þetta sökkar feit!

Finndu þitt googlesim (og vertu fyrir soul-crushing vonbrigðum)


Edit:
hihi.. þetta er fyndið:

30. nóvember 2006

An eye for an eye....

Even now in heaven, there were angels carrying savage weapons...





An eye for an eye
makes the whole world
blind...

24. nóvember 2006

Priorities, indifference and irresponsibility

This story was posted recently on slashdot.org following the shooting by the troubled German youngster from Emsdetten.

Bret540 writes:
"A Reuters news story reports that German lawmakers are considering a crackdown on 'violent computer and simulated war games' because a youth decided to attack other students at his school. The young man was apparently already under police consideration for weapons-related violations, and was described as 'someone with no friends.'"

From the article:
"Wolfgang Bosbach, the deputy head of Chancellor Angela Merkel's Christian Democrats (CDU) in parliament, said it was time to consider banning games that simulate wanton killing. 'We need effective guidelines to protect children from exposure to different types of media, but we don't need (simulated) killer games that can lead to brutalisation,' Bosbach was quoted on the Netzeitung news Web site as saying." InfoWorld has more details on the event as well.[more]


Besides the same blame-the-worlds-problems-on-video-games platitude I think this story describes a more subtle but much graver attitude problem people have today. Namely the blind urgency everybody feels regarding detailed diagnosis and observation rather than actually providing people with the help they need.

That the young man was described by the police as 'someone with no friends' is more terrible than I can imagine. Why, since the police obviously had knowledge of the fragile state of this youngster, didn't they try to give him the help he needed?

In my opinion, it's both criminally negligent and fundamentaly in-human! And WE are to blame.

23. nóvember 2006

Proper motivation

For every hour I spend debuging poorly documented code Fluffy gets it!
()_()
(>.<)
((")(")
Fluffy has died 3,421 times so far.


Be apart of the solution, help save Fluffy!
Document your code properly!

22. nóvember 2006

My new awesome toy

Bought the new Mindstorms NXT set when I went to London last week. Awwwwwesome stuff! I've been fidgeting like a 5 year old the whole day while waiting to get home to piece it together and build my first robot.

Just as a hint to those of you who might also own this system, when sending a direct command to the NXT module you have to omit the first byte (Byte0) in the output and response buffers. The framework does that for you (thanks Lego for not documenting that in the SDK, could have saved me two hours of frustrated debugging).

As an example, to start/stop the continuous rotation of motor A, you'd have to send the following data:

nFANTOM100::tStatus status;
nFANTOM100::iNXTIterator* nxtIteratorPtr = NULL;
nFANTOM100::iNXT* nxtPtr = NULL;

nxtIteratorPtr = nFANTOM100::iNXT::createNXTIterator( false, 0, status );

if( status.isNotFatal())
{
nxtPtr = nxtIteratorPtr->getNXT( status );
nFANTOM100::iNXT::destroyNXTIterator( nxtIteratorPtr );

ViUInt8 tachoticks = 360;
ViUInt8 speed = 100;

ViUInt8 directCommandBuffer[] = { // Removed the initial byte!
0x04, // Set outputstate
0x00, // The output port 0-2
speed, //power set point -100 to 100
0x01 | 0x04, // mode byte,
0x01, // Regulation mode (no regulation)
0x10, //turn ratio
0x20, // Run state (idle)
tachoticks
};

// Same thing here, decrease the size of the return buffer by 1 (documented size is 3)
unsigned char responseBuffer[2];

// Send the direct command to the NXT.
nxtPtr->sendDirectCommand( true /* we want a response */,
reinterpret_cast< ViByte* >( directCommandBuffer ), sizeof( directCommandBuffer ),
reinterpret_cast< ViByte* >( responseBuffer), sizeof( responseBuffer ),
status );
}


I'll post some further details as I get through the basic robots and finally get to program something on my own. I fear however that the NXT's measly 106k memory could become a major hurdle in my robot world domination plans.

9. nóvember 2006

Horfði ekki á sjónvarpið í gær

Já, hana nú .. horfði ekki á sjónvarpið með Rannveigu í gær, var þessi í stað að dunda mér í að prófa DHTML upp á nýjan leik. Hef ekki gert neitt lengi skemmtilegt DHTML í nokkur ár og langaði aðeins að prófa hvort eitthvað nýtt væri á seyði.

Í einhverjum óheyrilegum leiðindum þegar ég var úti í Kanada þá hafði ég skrifað einfaldan kóða sem birti NxN matrixu af pixelum á vefsíðu. Hægt var svo að smella á hvern pixelinn og breyta litinum á honum. Langaði að prófa mig áfram í því að búa til naívt teikniforrit í vafrara. En hef svo sennilega verið kallaður út í bjór eða eitthvað þvíumlíkt því ekki náði það langt.

En jú ég tók þetta project og ákvað að nota það sem grunn. Gekk út frá því í byrjun að ég gæti, í stað þess að teikna hvern pixel (ísl: kassa), frekar látið kassana teikna sig sjálfa eftir einhverjum reglum. Þannig væri jafnvel mögulegt að búa til einhver falleg form og hreyfimyndir. Gaman :)

Frekar einfalt að gera það á svona quick and dirty hátt, myndirnar teikna sig og hægt er að stækka svæðið og kassana sem birtast ásamt því að stoppa hreyfinguna.


Helsta vandamálið er að vegna þess að ég uppfæri myndina nú ekki á neinn sérstaklega hagkvæman máta, þá keyrir þetta svolítið hægt.


Hinsvegar fannst mér mun áhugaverðara að gera þetta almennilega gagnvirkt og hvernig hægt væri að skrifa inn og keyra sínar eigin reglur beint inn í vefsíðuna sjálfa. Loksins komst að leið sem gerði það kleyft að smíða og virkja JavaScript kóða á keyrslutíma. Því bætti ég við seinni hlutanum:


Þetta textabox gerir hverjum sem er kleyft að eiga við kjarnann í teiknirútínunni og ákvarða hvaða kubbar eru uppfærðir og hvenær. Fallið steptile(i,j) sér um að uppfæra litinn í kubbi í röð i, dálki j. Ég prófaði nú bara að fikta með sínus og kósínus kúrfur ásamt einhverri fallegri symetríu. Að fikta er gaman! :D


Prófiði: pixemotions
(er í hálfgerðu tilrauna formi ennþá þannig að ég ábyrgist ekki stöðugleikann) :)

Ef þið fáið út einhvert skemmtilegt mynstur, endilega postiði kóðanum fyrir það í komment, alltaf gaman að prófa og sjá hvað aðrir gera.