Blog on Charlie's Server 2011-09-09T05:31:51Z http://blog.charlies-server.com/feed/atomWordPress Hasan http://hasan.charlies-server.com <![CDATA[Is It Possible To Grow a Linux Software RAID 5 Array While Degraded?]]> http://blog.charlies-server.com/?p=415 2011-09-09T05:31:51Z 2011-09-09T05:31:51Z $ sudo mdadm --grow /dev/md3 --raid-devices=5 mdadm: /dev/md3 is performing resync/recovery and cannot be reshaped

Nope.

]]>
0
Hasan http://hasan.charlies-server.com <![CDATA[Ninth Annual Boston University Terrier Dancesport Competition Results & Video]]> http://blog.charlies-server.com/?p=384 2010-02-18T22:30:52Z 2010-02-18T22:28:35Z This past Sunday, Tracey and I competed at the Boston University Terrier Dancesport Competition. Hot on the heels of our performance the weekend prior at the Northeast Collegiate Dancesport Challenge, it was our third time competing in Open Smooth together and we thoroughly enjoyed this out-of-the-box way to spend Valentine’s Day. Read on for full results and video!

Open Smooth

Overall Placement: 2nd Place

www.youtube.com/watch?v=PcKDgXHxGBY

Even though we had competed just a week prior at Brandeis University, Tracey and I had set aside some practice time during the week in between to add in some more choreography to the mix. We really felt that our performance at Boston University was definitely a step up from where we were just a week prior at Brandeis.

Another major point of difference between the two competitions was the fact that we were much better matched on the floor not only in the number of competitors — there was only one other couple competing against us in Open Smooth at Brandeis — but also in the level of competition — said couple easily outclassed us. We definitely felt like there was some mystery as to how the results would go! It was nice to be competing against people more in our league, and solidifying our placement at just below Jason and Kailee and just above the rest, we are more than content with our results.

[[Visit blog to check out this spoiler]]

Gold Rhythm

As is usual practice, Tracey and I competed in Gold Rhythm alongside Open Smooth even though we never practice or train for it. At this particular competition, it really showed. Perhaps it had something to do with being totally worn out from our Open Smooth dancing earlier on in the day, but we didn’t do very well at all. We took fourth place in Swing and sixth in Mambo (for a combined total of 6th place) after making the final from a semi-final first round, and didn’t make it past the first round semi-final in Cha-Cha and Rumba.

Novice Rhythm

Since Bolero was offered only as a Novice event, Tracey and I decided to jump in and compete it at the last minute. Since there were eight couples competing in the event, it was run as an eight couple final and we took second place. Tracey and I were sufficiently pleased with the placement, especially given that we only ever dance Bolero at competitions and almost never in between.

Gold Latin

It turned out that Latin went even poorer for us even than Gold Rhythm did. We didn’t make it to any final events, or even semi-finals for that matter. This was certainly no surprise as we were competing in Gold — as opposed to our usual Silver level for Latin — due to restrictions on spanning multiple levels between styles at this particular competition. Even if it weren’t for that, we were so readily exhausted by that point that we’d have just as well not competed at all.

]]>
0
Hasan http://hasan.charlies-server.com <![CDATA[2010 Northeast Collegiate DanceSport Challenge Results and Video]]> http://blog.charlies-server.com/?p=376 2010-02-18T16:25:53Z 2010-02-18T16:25:23Z Tracey and I competed at Brandeis University two weekends ago where they hosted the inaugural Northeast Collegiate DanceSport Challenge. We were both looking forward to competing our new Open Smooth routines as well as jumping back into Latin and Rhythm. To round off the competition, I was able to find a Standard partner off of the TBA list (well, actually, she found me) and so was able to compete in all four styles. All-in-all, the competition was a blast. Read on for videos and full results breakdown.

Open Smooth

As before, this was the event that Tracey and I anticipated most. Due to the small size of this particular competition, we only had one other couple on the floor for Open Smooth. This turned out to be a perfect opportunity for us to give our new choreography a shot on the competition floor without having to worry as much about floorcraft with regard to other couples. As is plain to see from the video, we were easily outclassed by the other couple on the floor; Mike and Jess are surely veterans in Open Smooth. Nonetheless, it was a wonderful experience and we all enjoyed it.

Overall Placement: 2nd Place

www.youtube.com/watch?v=5z7xtWGALXg

Knowing that we’d get second place going in to the competition, the immediate placement results weren’t surprising in the least: we squarely took second place in every dance. However, one of the seven judges, Armin Kappacher, saw fit to place us first in Waltz! This is all that we could possibly have asked for — to take just one mark from just one judge in just one dance. Tracey and I are ecstatic.

Gold Rhythm

Overall Placement: 3rd Place

www.youtube.com/watch?v=Qtld4s8Trmw

Gold Rhythm also went fairly well and we were able to place better than expected considering, as usual, that it’s a style that Tracey and I don’t practice at all. The day of the competition, I surprised Tracey with just a measure or two of apart-work steps that I was able to kludge together based on videos of other couples (thank you George Cometa). She was happy that I had put in the effort, even if I did mess it up while performing.

[[Visit blog to check out this spoiler]]

Silver Latin

Overall Placement: 3rd Place

www.youtube.com/watch?v=eJ4oqO5MjnI

Again, Tracey and I competed in Silver Latin just because we could. Since there were enough couples for a semi-final, we were racked up a few more Silver Latin points.

Gold Standard

Overall Placement: 4th Place

www.youtube.com/watch?v=PTAJPD8KBcg

Competing with a partner that I’d never danced with before, Margot and I were just happy to be able to dance Gold Standard together. On the plus side we didn’t take last place! It was certainly a pleasure.

]]>
1
Hasan http://hasan.charlies-server.com <![CDATA[WideMail for Snow Leopard, Finally]]> http://blog.charlies-server.com/?p=374 2009-12-26T16:16:06Z 2009-12-26T16:16:06Z Yes, Apple’s Mail finally looks like it should again now that Dane Harnett et al. have released a WideMail beta for Snow Leopard. So far, pretty stable for me. Go grab it.

]]>
0
Hasan http://hasan.charlies-server.com <![CDATA[2009 Big Apple Dancsport Challenge Results and Video]]> http://blog.charlies-server.com/?p=316 2009-12-11T04:48:51Z 2009-12-10T23:52:00Z Last weekend Tracey and I competed at the Big Apple Dancesport Challenge hosted by Columbia University in their beautiful New York City campus. We competed in Gold Smooth, Silver Latin, Gold Rhythm and Open Smooth. It was our first time doing open smooth together — my first time doing open at all — and overall it went great! Results and video follow.

Open Smooth

This was the event that we were most looking forward to. Especially after under-performing in gold smooth, this was a chance to redeem ourselves. And so we did; taking second place directly behind Jason Seabury and Kailee Donovan, Tracey and I are both ecstatic with our results.

Overall Placement: 2nd Place

www.youtube.com/watch?v=upkzX8l7kNk

There were seven couples in the open smooth event and we were shocked as to how well we placed. Walking in expecting to take dead last and walking out with scholarships, gift certificates and cash prizes, I feel that our open smooth debut went fantastically well. Full results breakdown follows.

[[Visit blog to check out this spoiler]]

Gold Rhythm

Tracey and I also competed gold rhythm and placed pretty well considering that we don’t ever practice it. At this point, though, we both agree that it’s about time that we actually learn some rhythm dancing properly. It’d be a lot of fun to pick up some choreography that we can play with. Specifically, we don’t have any apart work, and in gold rhythm that’s a shame to miss.

Overall Placement: 3rd Place

www.youtube.com/watch?v=E2s1OqO1Gcg

There were seven couples in the gold rhythm final and the results breakdown for said final follows.

[[Visit blog to check out this spoiler]]

Silver Latin

Since we were going to be there anyway, Tracey and I decided to dance silver latin together. As usual, we didn’t get all that far; a callback or two was the most latin love we’d see from the judges this time. While it’d have been nice to do well in latin, too, we’ve really just been concentrating on smooth dancing lately, so latin has definitely taken the back seat — for now.

Gold Smooth

First thing in the morning, Tracey and I competed in gold smooth. We did much poorer in our dancing than we had hoped for, but were able to make up for it in the open rounds. Personally, I chalk it up to it being first thing in the morning; I never move quite as well in the morning as I do at night.

Overall Placement: 3rd Place

www.youtube.com/watch?v=IBqSh8Hy9M0

The results breakdown below shows that actually we didn’t do all that poorly except in waltz, further corroborating the theory that morning events don’t go as well for us.

[[Visit blog to check out this spoiler]]

]]>
1
Hasan http://hasan.charlies-server.com <![CDATA[Quick Tip: Install a Custom SSL Root Certificate/Key on iPhone]]> http://blog.charlies-server.com/?p=308 2009-10-30T18:15:46Z 2009-10-30T18:08:44Z As it turns out, it’s pretty easy to install new root certificates on the iPhone. All you have to do is grab the certificate file in PEM format (via e-mail or web, either will work) and then open it up. Simple as that. In my case, since I wanted to grab the CACert root certificate so that I could use the WordPress iPhone application with this blog, all I had to do was navigate to their Class 1 PKI Key in Safari on my iPhone and I was presented with an installation dialogue. After clicking ‘Install’ I was ready to go.

]]>
2
Hasan http://hasan.charlies-server.com <![CDATA[Steel Wheels for the STi]]> http://blog.charlies-server.com/?p=283 2010-11-15T18:25:53Z 2009-10-20T19:11:09Z First Winter Wheels

Yes, it’s possible. Yes, I run winter beater steelies on my 2007 STi Limted. Yes, they’re ugly. And yes, this post has all of the details, with pictures.

Why?

Some will say that all Subaru vehicles handle great in the snow with just all-season tires. And I would, in general, agree with them. But if you want superior traction and control in the snow, it’s no secret that Subaru’s incredible symmetric all-wheel-drive is enough. When it comes down to it, you need great tread if you want great performance.

When I bought my car it was equipped with 225/45/17 Pirelli P-Zero Nero Mud and Snow tires mounted on 7.5″ wide heavy-as-anything rims. I don’t know if it was something about that set of tires in particular, but I was sliding around all over the place in just a few inches of snow. Needless to say, I expected better traction than that. A friend of mine with a rear-wheel-drive Volvo on two snow tires said his traction was better than what I was getting with my STi. I believe him.

But why, then, should I get a separate set of wheels? Of course, there’s the usual argument that it’s much easier and more convenient to be able to quickly switch tires without having to dismount/remount at each season change, but there was another reason that struck my fancy: performance. I wanted to get as narrow a wheel as possible, and found the answer in steel wheels. I have yet to find an alloy wheel as narrow as the steelies I use now while still fitting over the Brembo brakes1. Now, I have wonderfully narrow wheels for the winter and sweet wide wheels for the summer. It’s the best of both worlds.

Wheels: 2007-2009 Honda CR-V Steel Wheels

I found a forum post on iwsti.com about 6.5″ wide steel wheels that fit over the Brembo brakes on the STi. Let’s review the benefits, here: cheap, great fitment, really narrow, and again, cheap. I was totally sold on it. For $180 I had four brand new take-offs shipped to my door2. Test fitment was absolutely perfect, with a whole lot more room between the wheel and the brakes as compared to any other wheel I’ve seen on the STi.

The 2007-2009 Honda CR-V steel wheels are 6.5″ wide, 17″ in diameter and have an offset large enough to fit over the stock Brembo brakes on any year STi. The bolt pattern on these wheels is 5×114.3, so they should fit on any STi, model year 2005 and up at time of writing. I did not use hub-centric rings and haven’t had any balance issues so far. As noted elsewhere, you should always use ball-seat lug nuts with Honda wheels. Stock subaru lug nuts are of the conical seat variety and matching lug nuts and wheels correctly is pretty important if you want to avoid having your lug nuts loosen and your wheels fall off.

The only major issue with these wheels, apart from the fact that they’re ridiculously heavy compared to a decent set of alloy wheels and that they’re ugly as sin, is that the stock center caps are embossed with a Honda logo. Since I’m not the kind of guy who likes to run wheels without center caps, I decided to remedy the situation a-la-DIY. What I came up with was a solution involving sanding3, Bondo, more sanding, priming, even more sanding and then painting4. Pictures below illustrate some of the process.

Winter Wheel Missing Center Cap
Before
Sanded Center Cap
Applying Bondo to Center Cap
Applying Bondo to Center Cap
Winter Wheel, Center Cap Installed

Tires: Dunlop WinterSport 3D

I decided to spring for the Dunlop WinterSport 3D wheels in 205/50/17. For winter performance I wanted the extra sidewall height and of course went as narrow as possible. It’s my understanding that Dunlop (or anyone, for that matter) doesn’t make a 17″ tire narrower than 205. Just the same, I’m not sure how going narrower than 205 would affect handling at highway speeds — I certainly did notice a subtle difference going from 225 to 205, especially in tracking at higher speed.

Results

The difference in traction and control between my new winter setup and my old all-season setup is enormous. Having never run winter tires before, I had no idea that the difference in handling and confidence was so night-and-day; had I known, I’d probably have made the switch many years prior.

My ‘custom’ center caps have held up pretty well, considering it was a makeshift rattle-can job. The paint hasn’t peeled or chipped, nor has the Bondo. All-in-all I’m very satisfied with the results, even if they’re ugly. As usual, I go for performance over looks!

  1. Even if there were such a wheel, I doubt it’d be as cost effective.
  2. Thanks to eBay.
  3. Always roughen smooth surfaces before applying Bondo.
  4. Actually, there were several rounds to the priming/sanding/painting routine.
]]>
2
Hasan http://hasan.charlies-server.com <![CDATA[Quick Tip: Link to Templated Classes in Doxygen]]> http://blog.charlies-server.com/?p=278 2009-10-30T18:12:29Z 2009-08-13T20:37:25Z In order to link to templated C++ classes within Doxygen-generated documentation, simply refer to the class as though it were not templated at all. Doxygen will kindly pick up on the reference and link appropriately. Though this may seem obvious to some, it’s definitely not to others. Read on for an example including code.

Example

Suppose you have a class defined as follows:

template <class T> class Foo {};

You might use the class as follows:

/** A Foo pointer with @c int as the template parameter. */
Foo<int> *myFoo;

The comment above is correctly interpreted by Doxygen and, if enabled, will automatically link the text Foo to the documentation for the Foo<T> class.

]]>
0
Hasan http://hasan.charlies-server.com <![CDATA[Apps That Push You]]> http://blog.charlies-server.com/?p=272 2009-06-25T20:38:03Z 2009-06-25T20:35:11Z The self-proclaimed definitive list of push-capable apps over at AppAdvice is very neatly organized and provides direct links to the iTunes store for each of the apps listed. Overall a well put together site with several other app lists.

]]>
0
Hasan http://hasan.charlies-server.com <![CDATA[Beejive and the Shortcomings of iPhone Push Notifications for Instant Messengers]]> http://blog.charlies-server.com/?p=247 2009-06-25T19:32:30Z 2009-06-24T16:05:31Z I recently took a look at Beejive IM for the iPhone. While the latest version supports push notifications, it’s really not going to fill the niche that I had hoped it might. Not at all to say that it’s a poorly written piece of software — it definitely isn’t — but it’s lacking just one feature that I’d need in order for it to completely satisfy me: an always-enabled push notification relay that never disconnects from IM services, no matter how often (or seldom) I use the program. Though this may seem relatively simple, the technical details bring about some interesting difficulties.

A History Lesson

In the beginning, there was Internet Relay Chat (IRC). Early on, IRC was enhanced with private messages (PMs). Following this, Instant Messaging (IM) services were born. People were talking to one another instantly and for free online via their computer. Everything was grand. But the underlying basis of each of these technologies was that the recipient of a message was actually online at the moment that the message was sent. Many IM services still do not support offline messaging (or, storing received messages for a user on a central server until they sign on). Now that we expect our technology to follow us everywhere all of the time, sending messages to our pals while they’re not particularly “online” has become a higher priority.

Wait a Second… Why not just use Text Messaging (SMS)?

There are a plethora of arguments for and against text messaging, but right now what it comes down to is preference1. When it comes down to it, text messages and IMs are fundamentally the same: short messages sent from one person to another. In my mind, text messages ought to be made redundant by things like mobile IM applications since the underlying technology there is inherently more powerful, scalable and flexible.2

The Holy Grail

Alice and Bob both have IM accounts with the fictitious IM service Shoot. Alice pops on her computer to send a message to Bob, but Bob isn’t at his computer. Not to worry; Bob has installed an IM client on his phone and can receive Shoot messages anywhere. Alice sends a message to Bob via Shoot, who receives said message on his phone. Bob’s phone beeps, vibrates and generally interrupts his concentration until he has replied to Alice’s message. Alice can rest assured that Bob got the message, and Bob now knows that he has to pick up Charlie from soccer practice. Lovely.

Not So Fast…

The underlying assumption in the scenario above is that Bob can receive a message over the internet via Shoot anytime because he’s always “online” through his phone’s data connection. Sure, it would be simple to assume that Bob’s phone has a persistent connection to the Shoot servers, but that would be horrible (and unfeasible) from several technical standpoints. Definitely one of the more pressing technical concerns involved is battery life. Unfortunately, keeping an internet connection alive between a phone and an arbitrary server is a bit of a power drain for mobile devices, not to mention the networks they use. But even if we had magical everlasting Willy Wonka batteries, the reality of the matter is that the omnipresence of cellular service just can’t be counted on.

But how, then, do we receive phone calls, you might ask. Doesn’t that require a persistent connection of some sort? Well, yes, it does. But that type of connection is fundamentally different than an internet connection. It’s a direct3 connection to our cellular carrier using a connectivity mechanism crafted especially for making and receiving phone calls and very short data items. They aren’t based on the same type of connections that internet traffic is.

This is where iPhone push notifications come in to the picture. Instead of keeping a connection open to each of our services (Shoot presumably being just one of many), we instead use the existing persistent connection that we keep with our carrier (or one just like it) to bother notify us when something of interest has happened. That way, when Shoot processes a message from Alice for Bob, it forwards the message on to Bob’s carrier, who lets Bob know that there’s a new message. Of course, it’s all a bit more complicated than that, but the basic gist is there.

Now that we have push notifications, what’s the issue? Basically, Shoot doesn’t know how to talk to Bob’s carrier. In fact, all Shoot knows how to do is talk to programs that speak its proprietary (or at least specialized) Shoot protocol or language. Likewise, Bob’s carrier speaks its own specialized language. This means that there needs to be some bilingual middleman somewhere to act both (a) as a Shoot client speaking the appropriate language to the Shoot servers and (b) as a client of Bob’s carrier, sending the appropriate message in its respective language. Oh, and operating such a middleman service costs money. In some cases, big money: more connections, or longer connections, equals higher cost.

So How Does Beejive Do It?

Beejive, like any third-party IM client for the iPhone, relies on a middleman service to relay messages from the various IM services it supports to the phones that are connected to it. This service sits on an internet-connected server somewhere and maintains at least one persistent connection to each IM service for each user that’s “online”. As far as the IM service provider (in our case, Shoot) knows, this middleman is actually an extension of Bob: it looks, feels, tastes and smells just like Bob’s desktop IM client. Beejive has to cover the cost of said service and is presumably doing so by charging a purchase fee for their IM application.

Discussions about one-time-fees versus subscription-model for services aside, Beejive has decided to lower their costs a bit by limiting the amount of time during which its relay service is active for a particular user. At time of writing, this limit is currently user configurable up to a maximum of 24 hours after you last use the Beejive IM application. In short, this means that Beejive IM will log you out after 24 hours disuse. For losers like me who don’t necessarily receive an IM while away from their computer once a day at least, this is a pain. More than just a pain, though, the prospect of being automatically disconnected from a communications service seems stupendously silly to me. Imagine having your phone disconnected unless you make a call every day!

Is There An End To This Madness?

The key issue here — the real reason that we require a middleman at all — is that IM service protocols and standards really haven’t changed a whole lot in the last decade. Sure, we’ve had developments here and there but even still the most popular IM service providers rely on proprietary technology to get their job done. Today’s IM services don’t readily support the type of extensibility that would be required in order to implement middleman-free (or at least middleman-minimizing) mobile instant messaging.4 As usual, it boils down to a standards and agreements issue. Until IM service providers pony up with updates to their protocols and services that everyone — ranging from service providers to carriers and clients — can agree upon, we’ll have to continue to use these middleman services, transparent as they may be.

  1. Preference for or against text messaging may or may not have anything to do with cost.
  2. A bold claim, but this is definitely feasible and even likely. As IM services coupled with social networks become more popular, text messaging usage will inevitably decline. The flexibility afforded by placing more technology in the hands of the community rather than in the hands of cellular carriers will easily trump the straightforwardness of managed technologies like text messaging.
  3. Except while roaming, of course, in which case the connection isn’t quite direct.
  4. Not necessarily true, but this type of mobile instant messaging hasn’t become standardized or widely implemented yet.
]]>
4