Languages, platforms, paradigms and speed

Ever since the latest round of Ruby benchmarks came out and everyone got all excited, I got to thinking about the overall discussion about languages and the interpreted vs. compiled debate. To be fair, there will always be those who take a specific side for some small-but-important-to-them reason yet this has not stopped so many projects from bridging the gap, albeit with varying degrees of success. In many instances, it comes down to the different approaches taken by various language themselves and the payoffs they offer.

In my investigation, I came across some very enlightening sources of information on the overall discussion of language speed, code optimization and the tension between different paradigms. Please peruse the following:

Something missing from this list?

, , , ,

No Comments

A good Debian package caching system

I’ve got several servers on my network and I’m ok with that. Honestly, I am. The problem I run in to is that I end up wasting bandwidth by keeping them all up to date. In the past, I’ve tried apt-proxy (not the only one who’s had problems) and, most recently, debtorrent but they inevitably fail. Why is this? It doesn’t matter, I just need something to work. I heard about Approx and am giving it a try. It’s not a daemon, but something invoked by inetd. It’s also written in OCaml, which has a decent reputation for stability. It coped easily with 3 computers updating at the same time (something which none of the others could do) so we’ll see how it works. Hopefully this one won’t choke like the others did.

, , , , ,

1 Comment

CrunchPad on the way!

For those who were naysayers and those of little faith, Arrington and the TechCrunch crowd have taken another step toward making good on their word. The CrunchPad tablet is in the final stages of testing and development.  To be honest, it looks really good. To be even more honest, it looks almost too good to be true and still keep the $200-300 pricetag promised. If the price is right and the battery life is reasonable, this might need to make it’s way into my gadget collection. Of course, nothing could ever replace my Nokia 810 but somehow I’m ok with that.

The thing should be less than 18mm thick and the logo moves when you reorient the screen. It runs Linux and boots directly into a custom WebKit-based browser.

, , , ,

No Comments

Could Qt be coming to my Nokia tablet?

I really do like my Nokia, but I don’t particularly like how the UI is based off of Gtk+. My dislike has turned to cautious happiness after reading an Ars Technica article about a possible new version of Maemo, the custom Linux OS which runs on the Nokia N-series tablets. Maemo 5 could very well be based off of Qt!

, , , ,

No Comments

Back from the Saligman Israel Trip

Just got back today from two weeks in Israel with the 8th grade from Saligman. Such a great trip and I’m struggling to get the last of the photos online but, in the meantime, here is a little something. On the flight back, I casually asked the El Al flight attendant on our Boeing 777 to reset my seat’s video terminal. My hunch was confirmed! The whole entertainment system is built using Linux!

Linux on El Al!

, , , ,

No Comments

Server breakage and rebirth

Now that I’ve caught up on the work I missed yesterday, now seems like a good time to write about the massively bad server blowout I had yesterday. Since my laptop’s upgrade from Debian Lenny to Squeeze went so well, I got a little cavalier and was sloppy when doing a dist-upgrade on a server on which I had done some heavy-configuration. The summarized story is that I borked a kernel dependency and actually suceeded in breaking the packaging system on that machine, a first for me in at least the most recent four-five years. Notice, still, that the breakage was caused by me and not by the most-excellent Debian package management tools.

It worked out for the better as I had been sort-of-almost-definately been meaning to rebuild that particular machine anyway. Since the hardware is fine (though the disk might die, soonish), I reinstalled Debian Squeeze from a nightly-build installer and took the opportunity to change a few things in my network’s setup.

The first major change I made was to switch all the machines on my network to use debtorrent instead of apt-proxy which had been behaving unreliably. In particular, apt-proxy had been randomly hanging after a few transfers, thus causing the machines using it to be unable to upgrade their packages or install new ones. So, in an attempt to fix it and give a little back to the community, I have installed debtorrent on my main server and configured my other machines to use it. So far, it’s working quite well, the download speed is rather fast and it caches packages so that other machines may download them.

The next thing I changed was to take a few more security measures than I normally do. I have been using various known strategies for some time now but a fresh start seemed like a good opportunity to tighten things up with a fresh install. First, the Securing Debian manual is required reading for any sysadmin and I re-read over it while waiting for lengthy processes to finish. Since my machines are already behind a firewall that only lets SSH traffic in and then only through to the server in question, my revised security checklist goes something like this:

  1. Remove all RPC services: sudo aptitude --purge remove portmap nfs-common
  2. Remove root login option (especially since I disable the root account) from /etc/ssh/sshd_config by making sure that the relevant line reads PermitRootLogin no and then restarting ssh
  3. Installing some harden packages: sudo aptitude install harden-servers harden-clients harden-tools
  4. Installing some helpful security packages: sudo aptitude install debsums logcheck denyhosts chkrootkit and then doing a dpkg-reconfigure on debsums to make sure it does a daily integrity check and altering the denyhosts config file to make it sync with the global denyhosts database (this helped cut down on automated ssh attacks tremendously)
  5. One of the most important things to do is also to make sure that you get your local mail delivered so that you can see status reports. I do a sudo dpkg-reconfigure exim4-config to make certain everything is as I like it and that no holes are left open but I still get my system mail.
  6. The last thing that I’ll do is to install nmap and scan myself to see what’s showing. For this particular box, I saw nothing but SSH and SMTP from the box itself and nothing but SSH from the outside. Good.

There might be a few other things which I do but I can’t recall them now. I would install SELinux but my understanding (according to the Debian Wiki) is that it’s still in the experimental stage so I won’t move on that just yet. Is there something huge and obvious that I’m forgetting security wise? Is a file-integrity checker going to be useful if I have constantly-changing and files and I am continually-updating packages?

The other major change is that I moved from the XFS filesystem back to ext3 with the intention of soon trying the upgrade-in-place features found in ext4 now that it’s got so many things which I liked about XFS. Since the Debian installer didn’t present me with an option to use ext4, this seemed like the best idea. Was I very wrong?

As a side note, I tried out weechat on the console for about an hour before immediately going back to ERC on Emacs because it integrates so well with my alltime favorite editor.

, , , ,

No Comments

New startup page

After having Slashdot as my browser’s startup page for over 8 years now, I am switching to having Google Reader now displayed by default. I do this primarily because I am very annoyed by the changes Slashdot has made recently as it seems to be attempting to make itself more “Web 2.0″. When I hit my desk in the morning, all I want is my news. So, I’ve subscribed to the Slashdot RSS and will read it along with the other stuff. End of an era, I say.

, , , , ,

No Comments

Oh look, the hosting market likes open source

Saw an article by the ever-delightful Sam Dean over at OStatic blogs and it would seem that the list of top-10 most reliable servers run either FreeBSD or Linux. Being a penguin fan myself, I’d like to see a little more of the latter but I’m quite satisfied with the 1/10 offering put forward by Windows Server.

, , ,

No Comments

Compile JavaScript to Java classes with Rhino

Can you compile JavaScript to Java classes? Why, yes! Yes, you can! Rhino lets you do exactly that. Example here.

, , , , ,

No Comments

I have discovered Sinatra and gained enlightenment

I don’t mean Frank Sinatra, I attained enlightenment from him when I was in fifth grade and my father sat me down to teach me the way of the rat pack. That day, I learned many things and as I stayed up late, sneakily listening to one of his latest anthologies (remastered of course), the elegant strength of Sinatra was non-too-apparent.

Today, when I sat down to work on a small software project for work that was taking way too long, I realized that I should most likely just use a framework. It being a web-app, I immediately figured I should use Rails. After about 20 minutes, I realized that the task at hand was too simple for Rails and that something else might do me better. After seeking advice from Trek, I installed the Sinatra web framework and my journey began. It was fifth grade all over again.

With Sinatra on the back  (fully supported by Dreamhost, apropros) and jQuery on the front, I was able to advance beyond what I had accomplished in one day in just 3 hours. I had never used Sinatra before but I certainly will in the future.

Also, because Sinatra gives you very little policy with respect to how must do things, I had no problem writing my business logic in Sinatra, leaving me free to write my data-handling code and page generation without worry.  Just so you know, when you keep your components seperate in the way I just described, you can get all excited and call it MVC.  For views, Sinatra supports HAML, ERB (my fav) and Builder while for models you may do pretty-much whatever you want (Datamapper, ActiveRecord, Sequel).

Sinatra is really worth a look and I know that I’ll be relying on it heavily in the next few months.

, , , ,

1 Comment