• 201507.23

    Harry's razors review

    This is a review of Harry’s razors. I haven’t been payed by them at all or been sent any promotional materials. The words/opinions expressed here are my own.

    I hate shaving, but even more I hate having facial hair. I find it uncomfortable. I’ve used a good amount of shaving products throughout my life, and have settled on the standard cartridge razor, which gives (in my opinion) the best shave-time to shave-closeness ratio and offers a near-perfectly smooth face and neck while only taking about 5-8 minutes to complete.

    Now, I’m a bit different from other shavers (I think) in that, like my clothing, I keep my razors around far longer than most people. I will use the same razor head for up to four months (basically until it’s so dull it just won’t work anymore). I usually shave about 3-4 times a week.

    “Razor companies HATE him!!”

    Up until about 6 months ago, I’d been using mainly Gillette razors. I’d get a big pack of refills at Costco every now and then and work through them over a year or so.

    One thing that pissed me off endlessly about Gillette is that by the time I had gone through my set of razor heads, the handle would be obsolete and I’d have to buy a whole new kit (which they charge a lot extra for). So about the third time this happened I decided there had to be a better way than continuously throwing money at Gillette. By the way, their higher-end razors are great, but their practices of having different handles every week is infuriating.

    I had previously seen ads for Harry’s razors so decided to give them a shot. The company seems small enough that redesigning their handles/connectors every few weeks would bankrupt them, but initial reviews on the razors themselves were good. I picked up the Truman handle with a set of blades.

    Enough babbling, here’s a pros/cons list:

    The good

    • The handle is solid, and has a nice weight to it (as opposed to plasticy and bendy).
    • The razor heads snap in nicely, without any play.
    • The razors have an open back.

      open back I can’t say enough how great this is. All razors I have ever used hide the back of the razor with a bunch of plastic.

      With a covered back, most of the hair you shave off over the course of the blade’s life ends up staying inside the razor head. You can beat it against the sink or blast it with water all you want, there’s always going to be a bunch of old, moldy hair stuck inside your razor.

      With Harry’s, the back is open and a quick rinse under the faucet or showerhead gets rid of all hair on the blade. I cannot stress how easily it is both to unclog and to clean the blades.

    • The blades are easy to unclog. Because of the open back, you can easy rinse the blades to get rid of any hair. This makes them ideal for shaving areas with lots of hair, and while Harry’s is marketed towards men I see no reason why these razors wouldn’t be able to work for women as well (and for a lot cheaper than women’s razor heads).
    • The blades last a long time. My maximum is about four months on one blade. This is made easier by how well the blades clean up after use (once again, thanks to the open back). This means for me that a 4-pack of blades should last about a year (sorry, Harry).

      They do get noticeably duller after about 4-5 uses, but they continue funcitoning admirably for many, many uses. Once again, I shave maybe 3-4 times a week. So conservatively (3 shaves/week over 12 weeks), that’s about 35-40 shaves per razor head.

    The bad

    • The handle is slippery. I routinely drop the handle while shaving. Having ugly rubber grips would detract from the look, but make shaving a lot easier.
    • The razor heads are somewhat bulky. I find it incredibly hard to reach places of my neck/face that the Gillette razors would glide over no problem. I think if they found a way to remove the thickness of the plastic housing the blades themselves, and possibly make the blades stick out of the housing by a few more micrometers, this would make shaving a lot easier.
    • The razors have a strange pulling feeling when shaving, somewhat like pulling a rubber eraser across your face. This is not painful or irritating, just somewhat odd feeling.
    • The piece of plastic that gives the blade “spring” when pushed against your face wears down over time, making it feel spongy (and eventually requiring you to hold the razor flat against your face with a finger/thumb on the hand holding the handle). Not a huge deal, and probably not an issue for most people since razor re-use isn’t a 3-4 month affair.

    Overall

    The pros outweigh the cons easily.

    Definitely would recommend this brand. So far, they haven’t changed the handle or blade connectors at all. The blades work admirably. They are a bit bulky, but easy to clean and unclog. The whole setup also looks really nice.

    As mentioned, while Harry’s is marketed towards men, this setup could easily work great for women (or anyone) who wants to shave arms/legs as well because of the easy unclogging.

    Comments
  • 201203.22

    Vim syntax highlighting (void.vim)

    A while ago I created a vim highlighting script called void.vim. I've been using it for over a year now and just updated some things that have been bothering me recently, so feel free to check it out. This is my main color scheme I use for everything, and I created it to be be easy on the eyes but to actually look nice too. A lot of the color schemes I've used seem to have been really loud or have a bad choice of colors. Void is my favorite.

    Here's a sample (created with vim's :TOhtml command):

     1 /**
     2  * Trigger an event for this object, which in turn runs all callbacks for that
     3  * event WITH all parameters passed in to this function.
     4  *
     5  * For instance, you could do:
     6  * mymodel.bind("destroy", this.removeFromView.bind(this));
     7  * mymodel.trigger("destroy", "omg", "lol", "wtf");
     8  *
     9  * this.removeFromView will be called with the arguments "omg", "lol", "wtf".
    10  *
    11  * Note that any trigger event will also trigger the "all" event. the idea
    12  * being that you can subscribe to anything happening on an object.
    13  */
    14 trigger: function(ev)
    15 {
    16     var args   =   shallow_array_clone(Array.from(arguments));
    17     [ev, 'all'].each(function(type) {
    18         if(!this._events[type]) return;
    19         Array.clone(this._events[type]).each(function(callback) {
    20             callback.apply(this, (type == 'all') ? args : args.slice(1));
    21         }, this);
    22     }, this);
    23 
    24     return this;
    25 }
    

    This is javascript, but I also use it for HTML, CSS, php, and lisp. Note that all code highlighting on this blog is done via vim with this color scheme.

    Comments
  • 201011.17

    Vim: I can't believe I ignored you all these years

    All these years, since the day I first turned on a linux distribution, I've ignored vi/vim. Sure, there are swarms of geeks covering you with saliva as they spew fact after fact about how superior vim is to everything else, but to me it's always been "that editor that is on every system that I eventually replace with pico anyway."

    Not anymore. Starting a few years back, I've done all of my development in Eclipse. It has wonderful plugins for PHP, C++, Javascript, etc. The past week or so I've been weening myself off of it and diving into vim. What actually got me started is I bought a Droid 2 off ebay for various hacking projects (I'm planning on reviewing it soon). Well, it was really easy to get vim working in it (sorry, lost the link already). I thought, well, shit, I've got vim, what the hell can I do with it? First things first, let's get a plugin for syntax coloring/indentation for a few of my favorite languages. What?! It has all of them already.

    Ok, now I'm interested. I installed vim for Windows (gvim), which was followed by a slow-but-steady growing period of "well, how do I do this" and "HA...I bet vim can't do THI...oh, it can." There are "marks" for saving your place in code, you can open the same file in multiple views (aka "windows"), you can bind just about any key combination to run any command or set of commands, etc. I even discovered tonight there's a "windows" mode for vim that mimics how any normal editor works. I hate to admit it, but I'll be using that a lot. One feature that blew my mind is the undo tree. Not stack, tree. Make a change, undo, make a new change, and the first change you did before your undo is still accessible (:undolist)!

    The nice thing about vim is that it saves none of its settings. Every change you make to it while inside the editor is lost after a restart. This sounds aggravating, but it actually makes playing with the editor really fun and easy. If I open 30 windows and don't know how to close them, just restart the editor. There are literally hundreds of trillions of instances when I was like "oh, shit" *restart*.

    Once you have a good idea of what you want your environment to be like, you put all your startup commands in .vimrc (_vimrc on Windows) and vim runs it before it loads. Your settings file uses the same syntax as the commands you run inline in the editor, which is awesome and makes it easy to remember how to actually use vim.

    So far I'm extremely impressed. The makers of vim have literally thought of everything you could possibly want to do when coding. And if they haven't thought of it, someone else has and has written a plugin you can drop into your plugins directory and it "just works." Speaking of plugins, vim.org's plugin list seems neverending. I was half expecting to see most plugins have a final mod date of 2002 or something, but a good portion have newer version released within the past two weeks. It seems the ones that are from 2002 never get updated because they're mostly perfect. Excellent.

    I do miss a few things though. First off, the project file list most editors have on the left side. I installed NERDTree to alleviate that pain, but honestly it's not the same as having my right click menus and pretty icons. I'm slowly getting used to it though. The nice thing about a text-only file tree is that in those instances where you only have shell access and need to do some coding, there isn't a dependency on a GUI.

    Tabs are another thing I miss. Gvim has tabs, but they aren't one tab == one file (aka "buffer") like most editors. You can hack it to do this, sort of, but it works really jenky. Instead I'm using MiniBufExplorer, which takes away some of the pain. I actually hacked it a bit because I didn't like the way it displays the tabs, which gave me a chance to look at some real vim script. It's mostly readable to someone who's never touched it before.

    That about does it for my rant. Vim is fast, free, customizable, extendable, scriptable, portable, wonderful, etc...and I've barely scratched the surface.

    Comments
  • 201006.07

    Monit, how did I ever live without you?

    In my latest frenzy, which was focused on HA more than performance, I installed some new servers, new services on those servers, and the general complexity of the entire setup for beeets.com doubled. I was trying to remember a utility that I saw a while back that would restart services if they failed. I checked my delicious account, praying that I had thought of my future self when I originally saw it. Luckily, I had saved it under my "linux" tag. Thanks, Andrew from the past.

    The tool is called monit, and I'm surprised I ever lived without it. Not only does it monitor your services and keep them running, it can restart them if they fail, use too much memory/cpu, stop responding on a certain port, etc. Not only that, but it will email you every time something happens.

    While perusing monit's site, I saw M/Monit which allows you to monitor monit over web, essentially. The only thing I scratched my head about was that M/Monit uses port 8080 (which is fine) but NginX already uses port 8080, and I wasn't about to change that, so I opened conf/server.xml and looked for 8080, replaced with 8082 (monit runs on 8081 =)). Then I reconfigured monit to communicate with M/Monit and vice versa, and now I have a kickass process monitor that alerts me when things go wrong, and also sends updates to a service that allows me to monitor the monitor.

    I can't look at things like queries/sec as I can with Cacti (which is awesome but a little clunky) but I can see which important services are running on each of my servers, and even restart them if I need to straight from M/Monit. The free download license allows to use M/Monit on one server, which is all I need anyway.

    Great job monit team, you have gone above and beyond.

    Comments
  • 201002.22

    NearlyFreeSpeech.net downtime

    https://www.nearlyfreespeech.net/I've never formally written about NearlyFreeSpeech.net until now, even though I've always had good things to say. Even after some extended downtime I'm excited to say I'm still on the bandwagon. The reason is their transparency. I've worked with many hosts before, and none are as honest or transparent. Even the Rackspace Cloud gave glossed over responses to their problems. A few of my NFS sites went down just about all of yesterday because of a server failure. I logged into the control panel (proprietary, but I actually prefer it over cPanel or hsphere) and looked at the sticky support note left for all customers.

    I half-expected to see "teh service is dwn!! were trying to fix it! sry lol!" as with most hosts. Instead, there was page after page of updates with details and explanation. After this, I was able to rest easy, because I had a good idea of how long it would take to get everything back up. Whenever it didn't go as planned, they'd post another update.

    I cannot stress how awesome this was. Yes, they made my downtime awesome by treating me and the other customers as if we were techs in the server room. I didn't really care about my sites being down, because I knew they were working really hard on it and probably wouldn't go to bed until it was fixed.

    This brings up another point though: transparency makes your customers wet. I know it's been discussed time after time, but it really is true. People don't like "Our apologies, our service went down," as much as they like "Our service went down from 6:30-8:30 UTC today when lightning struck main Big-IP load-balancer, and our failover didn't switch the backup on."

    What's a Big-IP? What's "failover?" It doesn't matter...treating your customers as equals and letting them decide if information is relevant or not will make them wet.

    In my three years experience with NFS, this is the first downtime I've experienced. Their support was amazing enough to update every customer with detailed information about the problems they were experiencing and how they were fixing it. I cannot recommend them more. For larger sites that require custom services running, you're out of luck. For blogs, informational sites, paypal-driven shopping carts (no SSL, yet), etc this is the best shared host I've dealt with, ever. They're dirt cheap, and the only host I know of who won't disable your site without a court order or copyright violation.

    Comments
  • 201002.02

    Mosso (The Rackspace Cloud)

    After being a customer for the Rackspace Cloud (formerly Mosso) for quite some time, I'm happy to say that my business and anyone who listens to our advice will never be using this hosting service, ever again.

    Rackspace is an amazing company. They are know for having great servers, great support, great everything. You can't beat them. Mosso was a side project that was swallowed up by them which aims to run websites in a real, actual cloud. This is a valiant cause. To be able to upload a site to one server and have it scale infinitely over however many servers their datacenter has without ever having to touch it...that's a miracle. It's a great idea, that unfortunately just doesn't work.

    Mosso has repeatedly let us down, again and again. Their service is always going down. It's hard to find a month where one of our sites hosted on the "cloud" hasn't seen at least an hour of down time. I'd expect this from a shoddy "HOST 100 SITES FOR $2.99/mo!!" host, but not from someone charging a base rate of $100/mo. Here's what it boils down to: you're paying Mosso a lot of money for the privilege of beta testing their cloud architecture. Great business model.

    And while Rackspace is known for fanatical support, the Rackspace Cloud is known by us for support that is fanatical about ignoring or avoiding the issues plaguing them on a week-to-week basis. Questions go unanswered, support requests ignored, etc etc.

    So all in all, it's been a terrible experience. And yes, we have been using them for more than a month...a little over a year now. Yes, we stuck it out and payed outlandish hosting rates for horrible service. Why? Because I really do wish it worked. I wish I could put a site on it and have it be up 100% of the time. That's the point of a cloud, no? To have >= 99.999% uptime? I really wish I could put a site on there and let it scale with demand as it grew without ever having to touch it - and I can do this - but the price is my site goes down for long periods of time at short intervals (oh, plus the $100/mo). We tried to give them the benefit of the doubt, and tried to believe them every time they told us that this was the last downtime they'd be having (yes, we heard it a lot). I just can't lie to myself any more though. Mosso sucks.

    So please save yourself some time and realize that it's too good to be true. The Rackspace Cloud is the most real and cool cloud hosting you'll ever see, but as far as I'm concerned they are still alpha-testing it, and your site WILL go down. Want hosting that scales automatically, is zero customer maintenance, always up, and has amazing support? You won't find it anywhere.

    Mosso comes close, but they just can't get it right. Save your money and learn how to scale on a good VPS provider.

    Comments
  • 200912.05

    Tomato - router firmware

    I recently got a WRT54G v3 (an older version of a Linksys router) off of ebay. I specifically got a version 3 because it's the best router known to man that's under $300. If you can get one for less than $50, my advice is to take it. Up until a few days ago, it was running the stock Linksys firmware. It's not terrible but it's not very extravagant either. We had a power outage and after that, wireless stopped working. I tried many things, including slapping the unit with my balls to make sure this wasn't some sort of misguided power struggle. Putting it back in its place should fix that. No luck.

    I had heard many, many times about the dd-wrt firmware. One of the good things about the WRT53Gv3 is that you can install just about any custom firmware you want onto it. I'd also heard in the past about a firmware called Tomato. It's supposedly light, lean, fast, and has great QoS (although I never even bother with QoS).

    I decided to give it a shot. I'm in love. It gives you all the options you need for the things you'd want, but doesn't bloat up the interface with extra junk. It's simply amazing. I really think Linksys should just stop bothering to make their own shitty firmware and just install Tomato on their routers.

    Unfortunately, Tomato didn't fix the wireless problem, so I had to plug in an old nemesis Netgear router I had laying around. It starting, in memory of times past, dropping my connection every 5 minutes. Fine for browsing the interweb, but not for streaming music or "videos." I decided to give the Linksys one more shot...and it worked! Thank god. The best router ever with the best firmware I've seen so far, NOW with wireless. It must have been some strange hardware issue that fixed itself.

    To be fair, I've never used dd-wrt and therefor can't give a good comparison between it and Tomato. If I had a few extra routers laying around, I'd try it out...but each firmware flash is a dance with the devil and I can't afford to get / find another one.

    Comments
  • 200910.27

    The GoDaddy nightmare

    </p>

    We've all heard of howtobepunk.com, the world's best guide on the punk subculture. Weighing in at over 15-billion page views per day, it's one of those sites people just expect to see up...and every person on earth checks it on average 2.3 times per day. The domain recently expired, and oddly enough, I wasn't warned.

    I'm not too bent out of shape about that, it's happened before (and many times it has been my fault). What really chaps my caboose is the transfer process. See, I hate GoDaddy with a passion. Always have. Since NFS.net started doing domain registration, I've been pretty gung-ho about using them. I decided to transfer HTBP.com to Nearly Free Speech.

    GoDaddy, to the full extent the ICANN let's them, makes this the most difficult and tedious process you can possibly imagine. Every guide you find on their site about transfer domains assumes that you want to transfer the domain TO them. Why would anyone, after all, want to transfer a domain away from the best registrar/host/whatever else the fuck they do in the world? You'd have to be crazy.

    Call me a fruitcake. Anyway, I finally got through the whole process, activated the transfer, blah blah. GoDaddy sends me an email saying it's all successful. Great, I can sit back now.

    NO!!!!! I can't. There's some sort of domain transfer "pending" system that holds on to the domain for a week (or until you approve it AGAIN). GoDaddy decided to hide this at the bottom of the email they sent telling me everything is fine.

    Anyway, dealing with those guys is a nightmare. Only one domain left on there, and once it comes up for renewal I'll never host another domain on GoDaddy again. Their system itself works fine, but even a highly skilled web developer has trouble using their shitty interface. I can't imagine how some average douche who wants to register mydogsparkyiscool.com would make heads or tails of it.

    </rant>

    Comments
  • 200901.10

    Project timing with To Do List

    So, being in the service industry, one has to keep track of time. In my case, when I'm programming, I have to keep track of how many hours something is taking, and be able to organize all of my tasks.

    Coming from QuickBooks timer, I knew something better had to exist. I was getting ready to buckle down and build it in .NET if I had to. I searched for days to find something useful. I finally did.

    ToDoList by Abstract Spoon has had everything I've needed so far. I can keep track of everything I'm doing in a hierarchical list (tasks and sub-tasks, or projects and tasks) and TIME everything. I can also add in comments for all items.

    This keeps client invoicing accurate and simple. Plus, it's free. Can't fucking beat that.

    I tried a few items that sort of did what I want, including a few web interfaces which I was weary of (my work is MY business), but ToDoList takes the cake.

    Normally I wouldn't sponsor something like this, but I think they did a really great job. It has a lot of features (like list sharing) I'll hopefully never have to use, but it's awesome.

    Comments