• Mac Keyboard Shortcuts

    Command – arrow keys = change to different terminal windows

  • Site Update

    I had a little time yesterday so I updated the user interface for the colandheartless site. It didn’t take too long and I’m very happy with how it turned out. The site is basically just serving up static webpages, so it’s just some basic css/html. I did make all the pages php, but that’s just so that I could put a function at the top of the page to display the header and navigation bar. It’s really the only php that I know, but it’s so handy that I use it all the time. Anyway, I wanted to update things so that I have slightly better organization for when I add new stuff. Specifically, I’d like to continually make pages that document the process of making the map game I’ve been thinking about and all the stuff that I’ve had to learn to be able to make the game. I could do this in the blog, but I’d also like to have a freer format for things than the blog provides. With the new site, I can pretty much do whatever I want.

  • It Takes Time

    I have, for the past few days, been immersing myself in adding parts to my arduino to extend functionality. There’s a game involving a map that has been floating around in my head for a very long time. It’s finally time for me to do something about it, so I’m starting to learn the things necessary to make it happen. I successfully hooked up a shift register to add a lot more leds, which will be necessary and now am hooking up a different type of shift register to add more buttons. This has proved a bit more difficult, but now, in my advanced age, I know that it takes time for things to sink in. Today was one of those great days where after struggling for a while, the light bulb went off over my head and I think I understand how things work.

  • Regex in Ruby

    This is something simple that I should know off the top of my head, but seemed to have forgotten today. So I’m writing it here, to hopefully, help me to remember.

    On one of the webapps I’ve written, someone signed up but had an apostrophe in their name. I had already accounted for spaces in names, but not apostrophes. So, I decided that I should fix things for any non-word character.

    The method that cleans up the name is this:

    def fullname_no_spaces
      [firstname.gsub(" ","_"), lastname.gsub(" ","_")].join("_")
    end
    

    This just substitutes any spaces it finds with an underscore. To have it replace any non-word character with an underscore, I just changed it to this:

    def fullname_no_spaces
      [firstname.gsub(/\W/,"_"), lastname.gsub(/\W/,"_")].join("_")
    end
    

    That fixed my problems. For further reference, here are the regex values I could use:

    ^  beginning of a line or string 
    $  end of a line or string 
    .  any character except newline 
    \w  word character[0-9A-Za-z_] 
    \W  non-word character 
    \s  whitespace character[ \t\n\r\f] 
    \S  non-whitespace character 
    \d  digit, same as[0-9] 
    \D  non-digit 
    \A  beginning of a string 
    \Z  end of a string, or before newline at the end 
    \z  end of a string 
    \b  word boundary(outside[]only) 
    \B  non-word boundary 
    \b  backspace(0x08)(inside[]only) 
    [ ] any single character of set 
    *   0 or more previous regular expression 
    *?  0 or more previous regular expression(non greedy) 
    +  1 or more previous regular expression 
    +?  1 or more previous regular expression(non greedy) 
    {m,n}   at least m but most n previous regular expression 
    {m,n}?  at least m but most n previous regular expression(non greedy) 
    ?  0 or 1 previous regular expression 
    |  alternation 
    ( )  grouping regular expressions 
    (?# )  comment 
    (?: )  grouping without backreferences 
    (?= )  zero-width positive look-ahead assertion 
    (?! )  zero-width negative look-ahead assertion 
    (?ix-ix)  turns on (or off) `i' and `x' options within regular expression.
    

    I use a few of these a lot, but I need to remember all of them because they’re really handy. Perhaps, I’ll make a printout and hang it in my office.

  • Fun

    I can’t believe that my nieces and nephews don’t like coming to my house because I have no games. I let them play with real tools like drills, hammers, saws, etc. That’s way more fun. Here’s Abby using a drill.

  • Windows 8

    I had read a bunch of bad things about Windows 8, so I thought I’d use my Technet subscription to install it and see for myself. When it first starts, it does truly suck. I don’t know what that first window that comes up is, but it looks ridiculous on a laptop. However, my clicking on my account name, I got to the familiar desktop. I’ll have to see if there’s a way to just make that be the default. The next weird thing was the lack of a start button. This meant that I couldn’t figure out how to get to the Control Panel. So I ended up installing a free program called Classic Shell. This gave me the start button and let me get to the Control Panel, which looks remarkably like Windows 7. That’s good. Anyway, I created a link on my desktop to Control Panel. I tried duplicating this link to see if I could have created it without installing Classic Shell, but that didn’t work.

  • Cloudflare

    I just put coldandheartless.com on Cloudflare. It sounds like something that would be really helpful and I figured I’d give the free version a try before I move another domain to the paid version. It was incredibly easy to set up, which was great. Took basically a single click in my Badger account to enable Cloudflare and then put in the new dns values. I’ll admit that I don’t exactly know how it all works, but so far it seems pretty cool. I did see that there’s a wordpress plugin for Cloudflare and I’ll probably install that next.

  • Floor Pictures

    I’m basically done with the floor, but forgot to post the pictures I took of the process. So, for future reference, here they are:

  • Blinds!

    The floor is basically done. I just put some brown paper on it for protection as I washed all the walls and repainted in a few areas. I also put up blinds! They look great and work wonderfully as well. To help me with the blinds, I brought down my table and put that in the dining room so I could work easily.

  • Days Off

    I took the rest of this week off. Today, I decided to drive to Glacial Park Nature Preserve in Ringwood IL, which took me about two hours to get to. I read they had a nice hiking trail and while I hadn’t ever hiked before, I thought it was something that I might enjoy. My goal on the hike was to take one picture that I could print out and hang on the wall of my newly finished house. All of my pictures are here. Most aren’t very good, but there are two that I think I’d be happy with on my wall. So, when I move back home, one of the first things I’m going to do is have a print made of one or two of them.

  • Updates

    It’s been a while since I’ve posted work done at the house, but work has progressed quite a bit.

  • How I Spent My Labor Day Weekend

    Aside from the time I spent working on my laptop, I did get quite a bit done at the house. I was going to do the final sanding of the wood floor, but then decided that doing the tiling would probably scuff it up a lot. So, instead I decided to start working on the area around the stairs, which will be tiled.

  • Switching to Mac OS X 10.8

    Today, I downloaded and installed Mac OS X 10.8. I won’t call it an upgrade because it’s not. About two hours ago, I attempted to install 10.6 on my one-month-old laptop. Sadly, it did not work. Every time I tried to boot to the old OS, the system crashed. So, I’m stuck with this piece of shit operating system. Here’s the thing. I thought 10.7 was pretty bad. It made no real changes, except things that appeared to be eye-candy, and which, for me, made the product worse. So, what do I hate about 10.8?

  • Test Pattern with Processing

    We have a couple of students who needed a test pattern printed out. The pattern was basically a circle cut into a given number of pieces of pie. They initially requested 100 “pieces”, but weren’t exactly sure if that was going to be what they wanted. There was no chance I’d be able to draw this by hand, so I wanted to write something that would generate the pattern and be easy to edit so they could generate patterns with a different number of pieces. I thought that Processing would be a good way to do this and it turned out to be very easy, once I remembered two things. One, all angles in Processing should be in radians, so 360 degrees is 2 * PI radians. And two, that [0,0] is the upper left corner of the drawing. Once I had those settled, I wrote the following:

  • Last Patch

    There was a small area between the dining room and the bedroom that had some weird wood in the floor. I found out why when I removed it and tried to piece in some pieces I had pulled up elsewhere. The opening was a little bit bigger than the thickness of two pieces. So, I decided to fill it using the maple floor that I had left. Here’s how it looked when I was about halfway through. I think it looks pretty good.

  • Ready for Sanding

    I think I’ve now finished all the repairs on the floor. The wooden floor is now ready for more sanding before finishing. I even broke out the good camera to take some pictures. Here’s how things look, including some of the mistakes that I made.

  • Finished Something

    It took a while, but I finally finished the big flooring replacement at my house. Putting the very last piece in took a bit of work and it’s by no means perfect, but I’m happy with it. Hopefully, I didn’t make any big mistakes that will cause the floor to buckle in winter. I still have two smaller places to patch, but I’m happy with the bit I finished today.

  • New Laptop

    My new MacBook Pro (WITHOUT retina display) came yesterday. It’s SO nice having a matte screen again. I cannot say how much I hate seeing reflections of lights or myself in my screen. So this has been great. I still have my old laptop and I have a time machine backup for it. However, I decided not to use time machine to restore the computer. One, because there’s tons of stuff installed that I don’t really want any more. So, this will force me to clean up. Two, I did restore with time machine a while back, when the hard drive failed. It didn’t work perfectly. And I had to reinstall some software packages and clean up other stuff anyway. So, I decided to just avoid it altogether. This also got me to look at some programs that I was using to see that they won’t run under 10.7. The program I use to encrypt stuff is one such program, so I need to find an alternative for that. There were a couple others, but I think it’s good to set things up again. It helps me to remember why I did it.

  • Change in Long Listings

    I was just doing some work on one of the computers that I’ve installed RHEL6 on and noticed something weird. Here is a listing on an RHEL5 node:

  • Little Bit at a Time

    I’ve tried to stop by my house every day after work this week and just install one row of flooring. (It’s been in the 90s, so I really can’t work that long anyway.) I figure I’ll slowly make progress this week. Here’s how things are looking after today.

  • I Am So Tired

    I worked a lot on the house today. Put in a pretty full day. First up was repairing the bad subfloor, which wasn’t bad at all.

  • Working with rvm

    ok:~ maryh$ rvm update
    ok:~ maryh$ rvm reload
    RVM reloaded!
    ok:~ maryh$ rvm list known
    # MRI Rubies
    [ruby-]1.8.6[-p420]
    [ruby-]1.8.7[-p358]
    [ruby-]1.8.7-head
    [ruby-]1.9.1[-p431]
    [ruby-]1.9.2-p180
    [ruby-]1.9.2-p290
    [ruby-]1.9.2-p318
    [ruby-]1.9.2[-p320]
    [ruby-]1.9.2-head
    [ruby-]1.9.3-preview1
    [ruby-]1.9.3-rc1
    [ruby-]1.9.3-p0
    [ruby-]1.9.3-p125
    [ruby-]1.9.3[-p194]
    [ruby-]1.9.3-head
    ruby-head
    
  • New Laptop Coming

    I ordered a new MacBook Pro today. I specifically, did not order the one with the retina display. On those, you cannot fix anything. The ram is soldered to the board, the storage is some special thing and the battery cannot be replaced. Additionally, it no longer has an on-board ethernet port. You have to get a dongle to convert a thunderbolt port for that. I’d also have to get another dongle to hook up my external monitor. Lastly, somewhere I read that the fancy retina display still shows reflections. The blog post I read about it, said something to the effect of, still make sure you turn that overhead light behind you off. Since that’s the kind of thing that drives me nuts, I was pretty sure that no matter how nice it looked, it probably wasn’t for me. I had intended to go to and Apple Store and see it for myself, but after looking at all the other drawbacks listed above, I just decided I didn’t care. I’ve had this current MacBook Pro for 5 1/2 years. In that time, through AppleCare, I’ve had the logic board replaced and the dvd replaced. Once AppleCare expired, I’ve replaced the hard drive a few times, the lcd screen after I cracked it, the battery about 3 or 4 times, the power supply twice and the dvd is broken again, but I don’t care. I just don’t like that I’m not able to repair something that I supposedly own. And carrying a bunch of dongles also doesn’t appeal to me. I will have to get one for the monitor (my current one was the last to actually have a dvi connector on it, which was great), but I guess I’ll live with that.

  • Start of New Flooring Installation

    Today, I started putting down the maple flooring that I bought to fix the bad areas. Here’s my first row.

  • I Love Fixing Things

    My van wouldn’t start the other day. I had recently had some hose in the steering system replaced because it had holes and since then, the car was really hard to start. I don’t think these things were related. I think it had something to do with the fact that since I have Julie’s car, I’m not driving the van very much. It can sit in my garage for weeks at a time. So, when I did go to drive it, mainly just to make sure it was still working, I found that it would not start. I turned the key and it just made some clicking noises. I’m no mechanic, but I thought that this was a battery issue, even though the radio and lights were still working. A quick check on Google confirmed this.