Home Page of Ron Star

I Love Ruby On Rails (January 2015)

For about six months now I’ve worked in a few other programming languages. Played a little in Go, and a lot in ASP.NET/C# for work.

Go is a pretty neat language. I like how simple it is. I really like that you can compile a binary, deploy it to a server, and run it. Really simple. It also compiles really, really fast. Fantastically fast.

I’ve only done a little bit in Go and I hope to do more in the future. I think it would be really great for an API behind an Angular or other type of JavaScript web app.

Now ASP.NET and C#.

First problem I have with it is that I have to run Windows. As you guys probably know I’m not a fan of the Windows operating system. I used Windows 1, 2, and 3 way back in the day. But soon as OS/2 came out I was done with Windows. After that I went to Linux in 1995. I haven’t looked back at Windows since. Although I did do a 10 year stint on Mac OS X. It was great at first, but that’s a whole other story.

Second problem is that I’m working on an old code base that has mutated over the years to its current state. C# isn’t too bad, but learning it while Shaving Yaks isn’t the ideal way to appreciate a language. I love my co-workers (if you’re reading this) and I understand how the cruft builds up when you aren’t given time to go back and tidy up.

I’m starting to understand Visual Studio a little but there is a lot of hidden switches in there. I’m not a fan. I’ve done most of my work in Sublime Text 3 just because I’m more used to how the editor works. Of course it works differently on Windows. And there is Resharper for Visual Studio that gives you a lot of goodness. It’s just too bad the IDE feels so clunky and slow.

Recently I got the chance to do some work in my old pal Ruby on Rails. I have to tell ya it’s a world of difference. It’s so easy to spin up a project. Even easy to spin up an existing project. And the language is so nice to use. It is nice to get back to interpreted vs compiled. No more waiting for the app to compile before I can see stuff in the browser. Although I do wish there was the option to compile Ruby into a binary.

I’m looking forward to doing some more work in Ruby on Rails. I do enjoy it very much.

Crock-Pot Stew (January 2015)

Page Image

During Christmas the topic of crock-pots came up. It was mentioned that I could have a crock pot and a few days later I picked it up.

I went online to find some beef stew recipes and start my adventures into crock-pot cooking.

I found a few and made a shopping list. Picked up some stew meat, potatoes, onions, celery, carrots, and a few other items.

I was going to start on the stew yesterday but I was invited out so I waited until today. I woke up this morning thinking about stew. Went into the kitchen and started getting things ready. Of course by then I had my morning meeting for work.

After the meeting I went back in to get started. Chopped everything up. Put the meat into a bowl and added some oil, seasonings, flour, mixed it up real good and put it on the griddle to brown. Then I put all my vegetables in the bowl and mixed them up with some seasonings. Once the steak was browned I put that into the bowl and mixed it all up again.

Then I put everything into the crock-pot and poured a can of beef broth in with it all. Turned it on low and put the cover on.

Right away the smell was wonderful. But I had around 8 hours to wait for it to cook. So back to work I went thinking about stew for dinner the rest of the day. 😉

Every once in a while I would come out of my office and get a whiff of that awesome crock-pot stew smell. Every hour I was getting more and more hungry for stew. While I did my workouts, while I got some water, after I came back in from the mailbox (btw it’s a holiday, no mail). I can’t wait to chow into this stew.

The best thing is that I only used half the ingredients for this batch. So after cooking this pot I’m going to cook another tomorrow. Excellent!

Once the stew was done and I had just finished my work day I went in a dished up a bowl. It was pretty good but needed just a little more salt and a little more spice. That was easy to fix though. Next batch I make I’ll add more ahead of time.

Now I just need to not eat too much! Already had two bowls and there is probably two more bowls left. Got to save it for tomorrow. So…full…

 

 

Still Loving My WASDKeyboard (December 2014)

Page Image

I’m still loving my WASDKeyboard. There was a little problem with a keycap hitting the side of the case and sticking but after a little light sanding it’s all good now.

I still love the sound and how loud it is. In a way it keeps me focused on typing because I can really hear it typing. It’s really neat.

It totally feels old school to me. Like back in the 80’s when all keyboards felt like this. I feel like I should switch back to terminal mode and only do green screen programming with it.

The only RSI I have these days is from using the mouse. Something that I really need to cut out. I wish that I didn’t even need a mouse. But maybe this year I can cut down on the mouse significantly.

I wish I moved to this type of keyboard years ago. The next one I will build myself. But that will be when I have money to burn. LOL

My Grid Based CMS – The Stack (November 2014)

I’ve been doing a lot of research on what I’m going to use for my Grid CMS system tonight. Here is what I’ve come up with so far.

  • Apache CouchDB
    • I can run CouchApps in CouchDB unlike CouchBase and other DB’s.
    • Deployment is as simple as replicating the DB.
    • BigCouch for redundancy.
  • Kanso
    • Easy deployment
    • Packages
  • CoffeeScript
  • HAML/SASS
  • Material Design (Google)
  • Angular.js (maybe)

I think that’s all I need for this project (I hope). I want to keep it as simple as I can. Less is more right?

Now it’s time to start working on the feature set.

WASDkeyboards v2 – Yep, I got one (November 2014)

Page Image

I’ve talked about getting a mechanical keyboard for a while now. The keyboard is a pretty important part of my job and life. It’s important to have a good one.

My $15 keyboard finally started to wear out. The enter key was sticking and that was the most annoying part of it. It was a good keyboard really, but could not stand up to the thousands of lines of code I put on it.

So I finally broke down and got a real keyboard. Something that will last for years. Something that will fit with what I do.

I purchased the WASDkeyboard v2 with a custom key cap set.

This keyboard feels like I went back in time to the 80’s except it’s a lot smaller than keyboards from back then. It feels pretty good. I went with the blue key switches so it’s pretty loud when typing on it. I like the sound a lot. It feels like I’m really typing on this thing.

The keyboard makes me want to use 80 column console with a green screen. LOL

Time To Build A Replacement For WordPress (November 2014)

For years I’ve been talking about building my own CMS system to replace my WordPress hosting service. It’s time for me to quit procrastinating and get to it.

WordPress is a great system for simple website/blog. But almost every one of my customers has problems using it for their commercial web sites. It’s just too hard for them to understand. Once they figure out the basics of WordPress they run into the visual editor problems. You just can’t make good-looking web pages using the WordPress visual editor. So you have to switch to text mode and learn HTML. My customers really don’t want to learn that. They just want to update their web sites and for the updates to look good.

Another problem with WordPress is that it’s horribly slow. Sure you can add caching plugins and build custom themes, but it’s still not as fast as serving static pages and assets. It’s doing too much rewriting and processing. 99% of my customers don’t even need dynamic pages. Static sites would be just fine if I didn’t want the customer to edit their own content. I’m looking to do less work, not more.

I have looked into a great deal of other CMS systems and have not found anything that fits. They all are the same UI that doesn’t really match what the end-user wants to do. Then others are way too complicated for the job they are doing.

I came up with an idea while working at DealerTrend many years ago when we started using grid layouts. If there was just a grid that my customers could add text, graphics, and widgets to that’s all they need. Excel for web sites really.

Not only will it make it easier for my customers it will also make it easier for me to build out web sites. I won’t have to mess with customization to themes just to put a menu above the header or below it. I don’t have to use complicated CSS overrides to tile info blocks. In fact overriding CSS won’t even need to happen.

A few years back I wanted to build this new CMS as a CouchDB app. Just HTML, JavaScript, and CSS in a CouchDB. To install it you just replicate it from the main server. Then you can host it across 100 CouchDB nodes if you wanted. CouchDB serves assets and everything. It works well. But it seems that CouchDB apps never really took off. Especially now that CouchBase is around. I should at least give it a try.

So each page will be a document in WordPress. It will just be served as a static web page with a bit of rendering. This way every page can be different if you want. You can clone a page or create a whole new page. The UI will just be a menu bar at the time and a grid that you can add stuff to below that. It’s just so simple.

Widgets will be just that. Plugins that you install and add to your pages. A widget could be a calendar, text cloud, menu bar, side-show, or whatever. I’m not sure how I’m going to implement widgets yet. I’m guessing they will be HTML/JavaScript/CSS that is embedded in a document page. I guess it could really be just that simple.

I will really need to brush up on my JavaScript skills now. Time to start learning.

My New Linux Workstation – Pure Awesome (July 2014)

XignuxFinally after a months of hacking I have my workstation running great. There were a few problems that I had to addressed, but I got through them and came out triumphant.

I received the Xigmatek case on a Monday night and I started to tear into it as soon as I got it in the house. I like the case. It’s pretty nice. It has a huge fan in the front and some nice styling lines. The ports on the side are in the wrong place because they will be up against the wall where I’m putting it but that’s OK. I don’t need to use them often.

no-room-power-supplyAfter admiring the case for a while I take the power supply and shove it into the bay only to find out that it’s too big. It fits in but the modular cables don’t have room to plug-in. Oops. This isn’t going to work.

I figure that I’m probably never going to use the drive bays in front of the power supply so I took out my cut off wheel and went to work. I sliced it open so I could feed the wires through and plug them in. Not too bad. This will be fine.

asus-rage-ivThe motherboard is beautiful. I haven’t been in the game for about 10 years. I haven’t looked at any custom systems recently and all the computer’s I’ve bought up to now have been Mac. I was expecting the same ol of this motherboard as I saw 10 years ago. I put my 32GB of ram in and my i7 4930 CPU on. Then time for a test fit.

I place the motherboard in to find they shorted me one stand-off. No big deal I can work around that. I dig through my boxes for another stand-off that fits. Nothing. Well, I’m not playing football with it. Motherboard mounted.

You should see this CPU cooler! It’s HUGE! The Noctua NH-D14 is highly recommended by many vloggers in the tubes. And no kidding. This thing has great specs. This will keep everything nice and cool for a long time. If I can keep it from filling up with dirt/dust.

lots-of-coolingSo I put my gigantic CPU cooler on the board and slip the board into the case. It hits the CD-ROM tray! No problem. Who still uses CD-ROM’s? I’m not using that bay so out it comes. No more space issue. Mounted cooler and fans no problem.

I then get everything plugged in and ready to go live. I can finally press that shiny silver button on this really cool case…

Nothing.

No status, no beeps, nothing. I think I spent two days trying to debug why the MB would not boot or even light up. Finally after reading the entire Internet I found out that the board is not compatible with my CPU with the current BIOS installed.

This is no problem because you can flash the BIOS on this board even without a CPU in it. Awesome. So I dig out a USB key, put the software on it. Plug it into the port on the back. Do the magic and….nothing.

I try, and I try all night. As a last-ditch effort I find another, old, USB key and put the software on. Boom! It works perfectly. Now I have the new firmware loaded. I’m keeping this key around for when I need it later. Tape it to the inside of the chassis.

At this point I have the motherboard stripped all down to nothing. So I build it all back up. This time I just build up enough to do a test. It boots! Then I put it all back together and jam it all back into the case.

Crucial-Ballistic-RamNext problem. It only shows 24GB of my 32GB of RAM. Not sure why. After messing around with BIOS and software for a while I ended up finding the problem. I removed all the RAM and tested each one. They all worked. I put them all back in and there was all my 32GB of RAM. So I guess I didn’t have one seated all the way.

I booted the system and started installing the software. Right away I noticed that the Video Card fan was super loud. After a few days of really loud fan I found a way to silence it. I wrote a short Ruby program to check the temp and set the fan speed. At 20% speed it was pretty quiet. It would never need to get above 30% and that wasn’t too loud either. Not sure why this isn’t something built into the card.

bad-video-cardAfter a while the card would bite me again. I had constant issues with bad video performance. When I scrolled web pages it was awful screen tearing. Turning on the feature to help with that only gave me other problems with the card. Flickering screens when anything was moving. Running out of on-board RAM. Not a good experience with it.

nvidia-nvs-510Finally I broke down and got another Video card. This time a Nvidia card. 100 times better. The default open source drivers almost work perfect. But I opted for the tested proprietary drivers to get a little better performance. The fan is silent and auto-adjusting. No more problems.

dell-ips-22So far I’m not super happy with my screens. I purchased three of the Dell IPS 22″ monitors. I really like them but I wish the resolution was just a bit bigger. I’m super happy with the actual size of them. 22″ was a good call. I’m running them in portrait mode so I have really tall screens. I wanted this because I deal with web pages and code. So tall is better than wide. But at only 1080 wide I’m running into not enough pixels to show a lot of sites well. I might have to reconsider this in a year or so.

Screenshot from 2014-04-11 16:58:35I also need to get a better keyboard. This keyboard was super cheap. Like $10. It’s a good keyboard for the price. But I can feel that I’m starting to wear it out. I do really love the full size keyboard though. After being on a notebook/ultra-portable keyboard for so many years its super nice to stretch out my fingers. Having all the keys without having to monkey with Fn key combos is super nice. The next keyboard I get will either be a kit or the WASD Keyboards 87 key bare bones with a custom key caps package. Since I spend about 8 hours a day typing, I should spend the money on a good keyboard.

Overall the system is really, really fast. I can load everything up and only get to 75% RAM usage. The CPU is over-clocked to 3.9GHz and I could take it up to 4.5GHz if I wanted. During the summer I think I’ll keep it low and maybe run it a bit faster in the winter.

I’ve been working on this post for about 3 months. It’s finally time to just press Publish on it.

Auto Video Card Fan Control For AMD Radeon 7770 (April 2014)

xfx_r7770_core_editionWhen I got my new PC I wasn’t very happy with how loud the fan was on the video card. I picked up the XFX R7770. It was about $100 on Amazon. It’s an all right video card save a few small issues. One of the biggest issues is that the fan is so loud by default.

After searching and trying to figure it out I came across a tool that could set the fan speed (and over-clock the board). After figuring out the controls I was able to set the board to 20% fan. Perfect!

But there is a problem. It’s a hard number and not dynamic. I needed the fan to change depending on the temp of the card. The same tool that sets the fan can also report the temp. So I created a daemon for it.

#!/usr/bin/env ruby
# encoding: utf-8

#
# Required Gems
#
# gem install fallen clap
#

require 'fallen'
require 'fallen/cli'

def get_temp
  temp_str = `aticonfig --adapter=0 --od-gettemperature`
  temp_str.scan(/Sensor 0: Temperature - (\d+\.\d+) C/)[0][0].to_i
end

def get_speed
  speed_str = `aticonfig --pplib-cmd "get fanspeed 0"`
  speed_str.scan(/Fan Speed: (\d+)/)[0][0].to_i
end

def set_speed(speed)
  `aticonfig --pplib-cmd "set fanspeed 0 #{speed}"`
end

module Azazel
  extend Fallen
  extend Fallen::CLI

  def self.run
    @thresholds = [ 40, 60, 65, 70, 80, 85 ]
    @speeds     = [ 10, 20, 25, 30, 45, 50 ]
    @speed  = 100 # default speed

    pid_file "/var/run/quiet-fan.pid"
    stdout "/var/log/quiet-fan.log"

    puts "#{Time.now} Started."

    while running?
      temp = get_temp

      @thresholds.each_with_index do |threshold, index|
        @speed = @speeds[index] and break if temp < threshold
      end

      set_speed(@speed) if @speed != get_speed

      puts "#{Time.now} Temperature: #{temp}°C / Fan speed: #{@speed}%"
      sleep 10
    end

    puts "#{Time.now} Ended."
  end

  def self.usage
    puts "Quiet-Fan Usage:\n"
    puts "  quiet-fan.rb [ start | stop ]\n\n"
    puts "start: starts quiet-fan in the background"
    puts " stop: stops the background running quiet-fan"
  end
end

case Clap.run(ARGV, Azazel.cli).first
when "start"
  Azazel.daemonize!
  Azazel.start!
when "stop"
  Azazel.stop!
else
  Azazel.usage
end

I run this daemon from init.d and all is good. It can possible work for other cards and you can tweak it to fit even more.

It’s also possible that the card has something built-in but I haven’t found it yet. This works for me.

Mechanical Keyboards (April 2014)

Screenshot from 2014-04-11 16:58:35I find myself longing for a Mechanical Keyboard.

I know, I know. I just got a new keyboard with my new system. It’s a fine keyboard. I was $15 on Amazon. I do actually like it for the most part. But I keep looking at a fancy pants Mechanical Cherry MX Red switch expensive keyboard.

After all, I do spend 8 hours a day typing in the codes to make the interwebs work. I should probably have the best keyboard I can find, right?

WASD Keyboards has a nice one. I’m looking at the 87 key bare bones with Cherry MX Blues and a key caps package. $150!!!

It’s a great keyboard.

I should have a great keyboard.

So I’m saving up.

Ubuntu Gnome 14.04 Beta 2 (April 2014)

trustyI’m sitting here waiting for my backup to finish so I can install Ubuntu Gnome 14.04 Beta 2. I’m actually booted into it and testing it out while I’m doing my backup. So far I really want it on my system. I want to really put it through the test with all my daily software.

The main reason I want to use it is the improvements for high DPI screens. My laptop is somewhere around 350 DPI. 13.10 was awful at this resolution and I kept trying to figure out how to get everything to look right. I use my system mostly for work and I don’t do much if any gaming or graphics. I spend most of my time in a text editor and web browser.

The web browser is where it all goes wrong. I have to zoom up to 150% so I can read most web sites. If you are one of those web developers that force 10 point font on everyone then get stuffed. The problem with zooming is that borders and columns stop lining up right. Pixels from one element to another are out of whack. Padding is different. So before I push the web sites out I have to set my zoom to 100% so I can see if the pixels are lining up right. Then I tweak for an hour before I can ship it.

So far with the improved resolution of 14.04 I haven’t had that issue. I am zooming sites to see if I can find any issues with the alignments and so far it’s been fine. By the way, Google Chrome is the worst offender of the problem.

Squirrel… Why is Google Chrome getting worse at rendering sites? Chrome was the best for a long time. I’ve been using Firefox to test things, because people have reported rendering bugs in Firefox, and I’m finding a lot of sites just work better in Firefox. eBay is one of them. Try to post an item on eBay in Chrome. I don’t know if it’s just my setup but it’s impossible. Half the posting screen doesn’t render. Works great in Firefox. Same problems with the BofA home banking site. There are things that just don’t work in Chrome anymore, and I’m using the latest “stable” version. Digress…

I really like the new version with the high res screen improvements. It was one of the few things that bugged me about Gnome Shell. I can’t think of anything else that I would change at the moment.

Thumbs up to the Gnome dev team!