Skip navigation

Category Archives: Announcements

Okay. I know it’s already February and that it’s kinda late. But it’s in times like this that I say “better late than never!”. But as I’ll show, I’ve already started with my resolutions—I’m just writing about them now.

But since this is my coding blog, the resolution I will mention here will be my technical-life resolution (as opposed to the personal ones everybody makes). So, without further ado…

I resolve to learn a new technology every month. Or, at least, get deeper with one I’m already acquainted with.

Also, I’d go into programming competitions/contests again. Team requirements limit my choices but, hey, there are a lot I can do alone online, not to mention free! (Though if anyone wants to team-up with me, let’s talk.)

And, just so I’ll stick with it, I’ll write a blog post every month about what I’ve been up to. Consider this the one for January.

For my first resolution, I created this sandbox repository at GitHub. And since my GitHub account is, in itself, already my sandbox of sorts, I guess this is some sandbox-ception eh?

January, I did sockets in Python. I didn’t manage to dig as deep as I’d have wanted because the Facebook Hacker Cup kicked in earlier than I expected and that falls under my second resolution. So it had to give way. Besides, I’m already dealing with a few sockets too many at work.

Regarding my second resolution, I don’t really expect much from it. At least, I won’t get rusty from the lack of problem sets in the real world (read: industry). At most, I might score a free trip to some world finals. But that world-finals scenario is still very out of my league. I’ve been doing ACM-ICPC problems since I was in my sophomore year in College and even now I find most of them really tough and tricky. Also, after less than a year out of school, I’m bound to have some rust in my system (not that school is a sure fire way to keep you sharp though). I only decided to start practicing with my algorithms sometime in December so there isn’t really much to expect.

(Note: I started writing this post in the last hour before the first round of Hacker Cup started. It’s now over and everything fell within my expectations. There’s a lot to learn. Maybe, I’ll write about this soon.)


So, what do I think about sockets in Python? (This will be short since, as mentioned, I didn’t have much time to dig deep into this.)

As with all things Python, it looks super neat. I got a client and server up and running in just 41 lines of code combined. The biggest savings comes from the fact that socket I/O is direct in Python; you no longer have to create OutputStream and InputStream objects as the socket objects themselves have methods for sending and receiving. It’s also interesting to note that Python’s socketserver class has a serve_forever method which, as the name implies, handles requests as long as it can (the official phrase is: “until an explicit shutdown signal is received”).

Oddly, this design reminds me how I handled one of the things I did at work. Won’t go into the details but I thought that it’s neat to have one class responsible for managing one whole session: packet numbers, windowing, etc. One instance of a class maps to one client; when client goes away so does this instance (at least, I no longer care if the garbage collector marks it as garbage). Makes OO live more peacefully with concurrency.

Awesome that Python enforces this design by default. Really, the more I discover about Python, the lovelier programming gets.

‘Till I get my February experiments done! ~Chad

Just a test post from my Droid. I’m on a Galaxy Y and it’s a shame to report that landscape mode isn’t very nice here. Shame.

Elsewhere in my life I’ve been doing lots of JSP and Apache. Quite some XML here and there, and bits of Oracle. Oh, and PyGame too!

Hey! Did you hear? PyCon is happening in the Philippines! And it happens right at my alma mater, UP Diliman (at the UP Alumni Engineers’ Centennial Hall’s Accenture Ideas Exchange Room—a.k.a. Lecture Hall), from June 30 to July 1. That’s a weekend so I have no problems with it conflicting with my work schedule.

But…registration, with the cheapest being at PhP 295, most expensive at PhP 695, requires the use of PayPal, which requires a credit card. I don’t have a credit card and, right now, I really don’t have any plans of getting one. That sucks.

Although right now, at the PhPUG Facebook Group, there are requests of having payment done through GCash. That, I think, is a better idea since how do you honestly expect students to turn up if registration requires a credit card?

I keep my fingers crossed.

EDIT (06/10/12): Update from the PhPUG Facebook group: It seems that a GCash option will be rolling out on Monday (tomorrow). Yeah!

EDIT (06/11/12): And yes, finally, PyCon Philippines is accepting GCash (since yesterday, late update :P). They also seem to support over-the-counter payments. Don’t know how that one goes though.

Remember my portfolio website? The one I mentioned here? Well, it’s now up and accessible at kode.skytreader.net. There isn’t much there yet because I tried to make it a point not to link to school work1 but please feel free to look around the various things I craft. The CSS should look good for all browsers except IE. This is my first attempt at tableless layout and, man, IE really is a pain in the ass to work with. The main domain (www.skytreader.net) uses tables, unfortunately.

In other news, I’ll be doing my thesis/special problems course this year. I don’t know how much time will I be able to squeeze in for personal projects. I expect {kode.play();}2 to be as much in thesis mode as me. In any case, I can still consider my thesis as a personal project, don’t you think?

(By the way, by some turn of events, I’ll be doing my thesis alone. At least, so long as the list of accepted students released by the research lab I applied to doesn’t change. I guess that just makes my thesis all the more a personal project.)

And as for my n-puzzle solver? I haven’t had time to look into IDA*, as I planned in my previous post. The time I spent working on it the past two weeks or so, I spent on ways researching how to decrease the heat generated by my laptop’s CPU. I’ve cleaned the dust bunnies and all but it still overheats to the point of auto-shut down even when I’m just browsing the web, though so far that has only happened in Windows Vista. I’m pretty adamant continuing to force my laptop to its limits since I’ll be doing my thesis this year and being laptop-less is the last situation I would like to find myself in.

(It’s been raining real heavy the past few days though and I noticed that my laptop is going easy on heating up. Could all those auto-shut down heat-ups be due to the hot summer weather? That’s funny since I had this laptop since last year’s summer and it didn’t auto-shut down at all then. And last year’s summer was way hotter, I tell you.)

Aside from my thesis, I’m taking my Artificial Intelligence course this semester. Maybe, hopefully, there really is still something I missed from A*. Having someone explain it to you really makes a lot of difference from self-studying. Hopefully, by semester-end, my n-puzzle solver can solve a randomly-generated solvable instance.

That’d be all for now. See you soon.

  1. Okay, this breaks for GradeGrid but I invested so much time in it it’s good as personal as well. []
  2. Yep, that’s the new official spelling :D []