Archive for the ‘Computing’ Category

Now’s just three days before Google Wave’s beta launch, or that’s what they say. There has been quite a bit of development going on, with Google polishing the interface and third-party developers pushing out exciting gadgets using the Wave API. I myself have been playing around with a small image editing gadget known as Imagine (link to gadget), though development has slowed substantially due to classes and such. Anyhow, I have a wave embedded into this post after the break, so be sure to interact with it if you have a sandbox account. If you don’t, well, here’s a screenshot.

Read on »

As we speed into the 21st century, online social networking is becoming an increasingly popular mode of communication. Since the rise of Twitter three years ago, it has been easier than ever, especially for professionals, to take advantage of this Internet phenomenon. Celebrities and athletes are not the only ones who embrace such technology: healthcare professionals such as doctors and nurses are also beginning to open accounts on services such as Twitter and Facebook. Early this week, for example, a hysterectomy and uterine prolapse surgery was broadcast on Twitter at the Cedar Rapids St. Luke’s Hospital in a series of 126 short updates (from bottom to top):

Read on »

I used to rely almost exclusively on SSH for remote administration, but I recently added an OpenVPN server to my toolkit. I was interested in the performance of OpenVPN compared to OpenSSH, so I ran several tests using iperf:

Read on »

Recently, I rewrote from scratch a two-year-old project of mine. Imagine, a browser-based image editor, had been sitting around collecting dust, so I figured I’d delete all the legacy code (almost all of it) and create something better. I’ve also been evaluating the possibility of integrating Imagine into Google Wave.

Read on »

I used the Kde4 + Firefox3 theme before I upgraded to Firefox 3.5. When I upgraded, I noticed how incredibly ugly Firefox looked because the theme was not compatible with this new version. After a few days, I set out to search for a slightly more compatible theme.

As it turns out, the author of the original theme also has a Firefox 3.5 compatible one called KFirefox. I think it looks a little better than the original, even. Here it is.

I encountered a most awesome function today; it’s called OK.

OK accepts no arguments and returns either true or false. When a program needs to make a decision, it could ask if it’s OK or not. Interesting? You bet. But this is only half of the story. How does OK work?

When OK is called, it saves a snapshot of the current program execution state and returns true; it also installs a hook so that it is called at the end of the program. If the program ends successfully, OK does nothing. If the program fails, on the other hand, OK recalls the saved state and returns false.

Hmm…

Now, this blog is full of technology-related stuff. I’m also interested in medicine, so today I’m going to share some of what I’ve been thinking about.

People are complex creatures, and so medicine is a complex subject encompassing multiple fields of discipline. Many technologies have been developed to advance medicine to its current form, but one particular aspect of medical technology remains elusive: how to supplement physician’s medical knowledge using computers. Now, I know what you’re very likely thinking: when I catch a cold I want to see a doctor, not a machine! I too would much prefer to see a doctor. However, it must be noted that machines are already playing a significant role in medicine and they could propel medicine so much farther if we just knew how to use them properly.

Read on »

I just got my domain renewed. In celebration of this anniversary, I decided to learn more about OpenID and set up my own identity server. With my new identity server is my new self-managed identity. Cool, eh?

What is OpenID?

OpenID eliminates the need for multiple usernames across different websites, simplifying your online experience.

What is OpenID?

In other words, an OpenID is a universal identifier that can be used at numerous websites. The universality of OpenID is derived from the manifestation of OpenID’s as URL’s. Each user owns a URL, so to speak, and trusts an OpenID provider to assert the ownership and provide details about the user. An OpenID consumer, or an application seeking user identification, relies on providers to identify their users. OpenID is decentralized: there are many providers so users are not locked into any particular vendor. If all this is confusing to you, just head over to the official OpenID website and have a look.

Read on »

I’m working on a text classification API that needs to be called from any domain by Javascript. I immediately thought of JSONP, since it’s very easy to inject a foreign script tag and thus make cross-site calls. The problem with JSONP, of course, is that it supports GET only. While in most cases GET is sufficient, sometimes one needs to send more information or do other things that require POST. For my project, the ability to send long strings is very important.

So I’m thinking of a way to perform XSS in the style of JSONP, but with POST support:

  1. the client POSTs to the server, sending along a UUID and ignoring the response
  2. the server performs the action and stores the result with the UUID
  3. the client GETs the response via JSONP using the UUID
  4. the cached response expires on the server

The need to perform two requests and cache responses is obviously non-optimal, but I could live with it if it’s the only way of safely performing XSS. I might even push out a JSONPOST library…

Update: I’ve given this a try and it actually works reasonably well. With antimatter15‘s help, here’s some code and a demo.

Support for the EXT4 filesystem started appearing in the Ubuntu 9.04 daily development images just a few days ago, and early adopters have been experiencing the speed and efficiency of this new format. Compared to EXT3, EXT4 shows marked performance improvements and pulled far ahead of the competition in many respects. Phoronix’s article on Ubuntu’s EXT4 support contains some technical benchmarks.

But what does this mean for us regular users? For one, we’ll now be able to store gargantuan files on the scale 16TB. While that feature would not be useful to most users, the faster read/write speeds would allow most applications to start and work faster. In particular, Softpedia reports a noticeable boot time improvement of 9 seconds, yielding a 21.4-second boot. While this may not seem very much, let’s remember that Ubuntu and the EXT4 module are still full of debugging code. Once that’s gone and everything else is stabilized, the system would work even better.