20 September 2009

A little talk with Steve Ballmer

Apparently, Blogger doesn't approve of 900px high picture, so click to enlarge, or check his Facebook page for the nice conversation.

19 September 2009

That baby is a genious!

I'm speechless. Even I have trouble reading Perl.

[Picture source]

Geek gets book

Six years after graduating from high school, I finally decided to read a book. A real book, with a story in it - a novel.

Well, it's not like I haven't read anything since 2003. There was Terry Pratchett's "The Unadulterated Cat":

Or a Dilbert I aquired by marriage:

And of course, I had my nose in many math handbooks or technical books, but none of these were a beginning-to-end read. There were, however, some, including religious stuff or psychological - manipulations are pretty interesting, aren't they?

Once upon a time, I found out a movie called "My Sister's Kepper" was being made. I read a bit about it and found the plot interesting. Right now, the movie is in theaters in Poland and I am planning on going to see it. When it was announced, I reminded myself my best friend's advice: "it's better to read the book first, and then see the movie", and I figured I might as well start now. So, I went on-line and quickly found a cheap used copy of Jodi Picoult's "My sister's keeper".

I love it. The book itself is great, but I am also suprised how fun reading a novel can actually be (thank you school for making me forget that), how rich the narration can be, how many times it is better that surfing the web. I'm past the half already and think I should save it for the days I commute to work - it's not like I have nothing to do at home - but reading has suddently become a bigger temptation than other ways of entertainment.

Well, I guess it's time on getiing some book recomendations... Or first, a recommendation for a book recommendation website. Anyone?

[Update] Well, actually, I just remembered that I had Jane Austen's "Pride and Prejuidice", which pretty much obsoletes half of this post.

18 September 2009

Blogging my thesis

I'm currently in the process of writing my master thesis. Here gos the subject:

Displacement of smooth integers in short intervals and their applications in cryptography

Ain't it the coolest thesis ever?

To be honest, I don't quite see it that way. Anything I want to do inevitably turns into something I have to do. So this post is party a pep talk to myself. I don't think it matters, however: most Fiona Apple's songs are pep talks to herself and boy, do I love them.

Okay, back to the thesis. I will be breaking the RSA cryptosystem. Calm down, your private communication is not in danger. I will not obtain significant results, only a small speed improvement over doing it "the dumb way".

How do you break RSA anyway? The whole idea, is that multiplying two big primes is easy, but having only that result, finding out what the primes were is hard. "The dumb way" is trying all the possible primes. There are some smarter ways, but they only work in specific cases, and the keys used in the real world are wisely chosen, so the tricks don't apply. There's an excellent publication about this called "Twenty years of attacks on the RSA cryptosystem". A great read, and you can skip the formulas if you're not that into maths.

So, I will be factoring big numbers into two big prime factors. To do that, I will be using smooth numbers, which are kinda the opposite of primes: they have plenty of small factors. That part is really easy, and is well explained by Pomerance in his paper "Smooth Numbers and the Quadratic Sieve". The first two pages have it all in elementary language, the later ones are hard even for me.

To find these smooth numbers, I will be comparing three different methods: sieving, the Bernstein method and finding them using error correcting codes based on the Chinese Remainder Theorem.

More on how it goes will (most probably) come.

17 September 2009

Finals finally over.

My finals are finally over. They were tough, as I failed everything I could in June, but well, I wanted a wedding in the middle of the semester, so I got my semester during the holidays. I'm still happy with my choice.

Now to the exciting stuff. First, I had AI and passed after a few hours of revisions. I was totally prepared in June, but made the lecturer pretty angry by not writing the test at the end of the semester (honeymoon) and not taking it some other time as the result of a few misunderstandings, so, no June exam in AI for me. And the lecturer didn't seem really happy to see me in September either. But, I solved all the problems correctly, so I got a C (yeah, that's my school - they love deduction in both senses of that word).

Then came a few "free" days I used to write my networks program. The teacher was really cool for letting me write in C# istead of C, C++ or Java (none of them being my cup of tea), so I had cool tools like Visual Studio (Why can't Eclipse have a "go to definition" feature? Why? Me wants!) , Linq (goodbye, parsing XML, hello, tricky code instead of for loops) and asynchronous sockets, thanks to which I didn't have to create a single thread expilcitely, and yet my application was super-thready.

That was nice, but still, implementing a protocole and a client took me more than these four free days. It took me the entire day I had for learning compilers and one and a half of the two planned for partial differential equations. There went compilers. Fortunately, they were an extra classs I took.

Equations survived. The battle was hard: revising a whole semester in one afternoon and learning the stuff I didn't get in June. At that point, your goal is pretty much not to know less that you did last time, but I think I did know more, and I passed.

The evening after equations was equally busy: the networks exam was the next day. Dear Hubby explained some stuff to me, I was well prepared. Plans for Friday were clear: get to school by 11:30, print network notes, show the program at 12, study with strangers until 14, take exam, leave.

I arrived at 11:30. My printing limit was reached. Then I realized that I needed my advior's signature bad. Really bad. Panic. The advisor is at school only on Thursdays, so what was the probability of him being here on a Friday, out of the blue? Panic. Run. Buy extra printing credit. Run to the lab guy. He not here. Other student waits too, not knowing more than I do. Okay, let's see if by any miracle the advisor hasn't shown up. He has! Two colleagues are waiting by his door and tell me it's for about an hour of waiting. We exchange valuable advice on handling the masters stuff. Lab guy still not here. Go to the admins for the printing credit, thanking heavens for the advisors presence. Get the credit. Print the notes. Oh, here's the other student waiting for the lab guy, e-mailing him. I go upstairs, because the lab guy should be there. He is! Boot pretty pink netbook. Show program. Program is liked! Advisor again. One guy, new to me, is waiting. I sit and wait with him and praise my advisor for the thesis subject he chose me. The guy enters, I start walking in circles in heels. I finaly get there. I learn that my thesis doesn't need to be extended, just finished - great news! Run. Grab coffee. You think you'll learn anything in the last 20 minutes? Not really. Breathe. Relax. Take exam. Unexpected questions. Think hard. Finally!

I'm sleepy. My head aches. I go home and take a nap. Two hours later, my husband comes home and wakes me up. My head still aches. I take meds, planning on going for a walk. I learn that I'm hot, fever sense. Meds don't work. Let's sleep some more. Sixteen hours more. Then Husband makes me wake up, and finally, finally, finally, I get back to something I like to call "normal life".

05 September 2009

Dear diary

This week was really tough, but the best is yet to come (next week).

My AI exam on Tuesday went pretty well. I was well prepared in June and after a bit of revisons, I was able to solve all the problems. Results will be available on Monday.

Coming up: compilers on Monday, partial differentail equations on Thursday, networks on Friday, but no time to study: I'm typing the networks projects as hard as... well, it's not going very well. I can't concentrate - too many websites outhere are calling me from the recently closed tabs. The weather is wierd, my head is aaching and I'm very sleepy in spite of having slept in. It's the weekend and I'm tired. But as I sit here, listing my excuses, the clock keeps on ticking, the deadlines are approaching.

I left work for almost two weeks to focus on school. Work is by far much easier and more rewarding - I get paid and appreciated. At school, it's an honor for you if they let you study there. I can't wait for school to be over.

Yet another bro entered college, majoring of course in computer science. Yet another bro to fight for textbooks with. (We've already started and classes haven't even begun!)

All good things must come to an end - Hubby and I have finished watching (or re-watching, in his case) the first season of House M.D.

Gotta keep on coding.