BMG50.COM · NODE 5 · 28600 BAUD--:--:--
Welcome to BMG50.com, caller. Sysop: Ron Star
Msg:#1292 of 1362Date:2014-12-31From:Ron StarSubj:Still Loving My WASDKeyboard

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

Msg:#1291 of 1362Date:2014-12-31From:Ron StarSubj:2015 Resolutions

It's that time again for new year resolutions. We make them. Sometimes we break them. Sometimes we keep them and we become better people.

Last year was bad. This year I resolve to have a better year. There have been a lot of changes for me in 2014. Not all of them good but I'll make the best of them going forward to the new year.

This year I resolve to put as much money as I can towards paying off my debt. I've ended up this year backwards to where I was a few years ago. And this year I resolve to spend only what I need to live. In the last few months I have my food spending below $200 a month. I have cut my electricity bill to $60/mo. I hope that my gas bill is much lower but it's harder with that. I will go out a lot less. I will cut out buying alcohol, candy, and anything else that I don't absolutely need. I really hope I have no emergency spending this year as well.

I resolve to become a 10x programmer. Or at least 10x from where I am now. If I can increase my productivity only 50% I would be happy. But I want to go all the way to where I was 10 years ago. Cranking out hundreds of lines of production code every day. Deploying code every day.

But I want to go further with this. I want at least 80% of my code to have tests. 100% of all business logic should have tests. I want to strive for bug free code. I don't want to have to stop new features to fix problems with old features. I want to keep moving forward.

One of the biggest hurdles of getting my productivity back up is lack of interest in what I'm building for people. I don't feel like they even care about what I'm doing. I get almost no feedback and the little I do get isn't very enthusiastic. I need to overcome this personal issue and generate the excitement within myself to create motivation to continue to write 10x code.

Get into really good shape both mentally and physically. I have put off keeping in shape for the past few months. I started having problems with my elbow and thought I should stop to not cause any harm. But it doesn't seem like there is any real problem in there. It's still making the noises and it still doesn't hurt. So I'm going to get back to weight training. I'm also going to add in some cardio to get my stamina back up.

Part of getting back into shape is to start standing at my desk instead of sitting. I feel really comfortable sitting while programming so this is going to be really hard. I've done this for over 30 years. And I don't much like standing all day. I remember having a job where I stood all day and I was so sore when I finally got to sit. But I guess we will see how that goes. I want to at least do a year. That should give me some results to measure and see if I want to continue.

I resolve to cut out time wasters. TV is a huge time sink. So is Facebook, Twitter, Instagram, and all that other stuff. It just sucks me in and I do nothing for hours. As a buddy use to say, "bad brain food."

I will continue to use social media but it will mostly be output only. I will cut back my consumption to once per day. This is going to be struggle. It's so ingrained within me now. But stopping cold turkey is going to be the best way.

I will also use my blog more for my output. I can send my posts to all the social systems from here. This way I can cut my usage of the services. I hope I don't miss too much but once I train my friends and family to contact me directly I think it will be fine.

So to recap my resolutions (TL;DR).


  • Pay off debt as fast as possible.

  • Be a 10x programmer.

  • Become healthy and strong.

  • Cut out time wasters.


It doesn't seem like these four items will be too hard to do within one year. Good luck to myself.

Now if I can just find someone with a sharp stick to keep me inline I'll be set.

Msg:#1290 of 1362Date:2014-12-31From:Ron StarSubj:Moving on from 2014

2014 has been a rough year for me. I wish this posting wasn't so negative but I just want to write this all down.

My dad passed away in May. He was getting pretty sick at the beginning of the year. I really wanted to go to Florida and see him but I just could not afford it. I should have done it anyway.

I loved my dad. Before he passed he was talking about coming back here for the summer. I really wished it could have happened.

Once I have my 4x4 running we are going to spread his ashes here in Silver Springs. He loved it here. Him and his dog Sophie will be spread on a windy day from our favorite mountain top.

The project at work I have worked on for years was canceled in August. It was almost ready to launch. I was so close to having it usable.

After another total rewrite of the system I was finally happy with how it was working. I split it all up into small chunks with an API to link them all together. It had a Ruby on Rails API backend and all the front end parts were Angular.js. It was working pretty good and I just needed to put back the last of the features. Mostly small things. A few tweaks here and there. It was probably my best programming ever.

But work thought it would be better to go with another system from a 3rd party due to having more support staff. I really do hope it turns out well.

I was put on some other things to do. Mainly working on an ASP.NET project written in C#. That means I have to use MS Windows and Visual Studio.

I have been against using Windows for most of my life. I have spent many years evangelizing Linux. Not to mention that I've never used .NET or worked in C#.

But here I am. Working on technology that I don't like because I really need the job. It's been really hard getting over my prejudice of Microsoft and working on this stuff. I'm forcing myself not to rewrite the thing because I really want to not have to use Windows.

My wife left me in September. Her allergies were getting worse and she had moved out of the house in June. On top of that she was really drinking a lot. It was getting pretty bad but I had no idea what was to come.

She told me in September that she no longer loved me and was going to move to the bay area. She had a friend that was setting her up with a house, an art career, everything she needed to succeed in life as a painter.

We agreed to get divorced in October and that didn't happen. We agreed that I would take all the debt and I would get the house in Silver Springs. She would take her stuff and the car. It would have been a great deal for her. She would have walked away from this totally burden free and able to start her life over.

I guess she got greedy, reneged on her word, and would not sign for the divorce. We could not agree and she then started maxing out all the credit cards putting us $75k in debt.  At one point spending $4,800 at one store.

She was getting put in hospitals by the police for being drunk. She lost her house and career due to getting drunk. She is trying to burn bridges with her friends and family.

It has been awful and I was forced to sue her for divorce. It's probably going to put me a $100k in debt when it's all over. It's going to take months to complete. So much pain, heartbreak, and disappointment.

You could think that it's been a bad year. It has been, but there were a few good points.

I finally made it to the Born Free Motorcycle show in LA. Road down with friends on our bikes and had a pretty good time. Celebrated my birthday there.

I was able to do a few more motorcycle rides this last summer. I was able to put almost 6,000 miles on my Yamaha chopper this year. Had a lot of fun riding.

Spent quality time with friends. Planned more time for next year.

Collected a few more parts for my new rock crawler that I'm building. Just need a few more things to finish it off. I also have my 1970 Sportster almost finished up. Just need to fix the clutch and make sure all the bolts are lock-tighted.

I hope that going into 2015 will be a good year. I have many plans and resolutions for next year that I will write in my next post.

Best wishes for a new year to everyone reading.

Msg:#1289 of 1362Date:2014-11-21From:Ron StarSubj:My Grid Based CMS – The Stack

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.

Msg:#1288 of 1362Date:2014-11-20From:Ron StarSubj:WASDkeyboards v2 – Yep, I got one

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

Msg:#1287 of 1362Date:2014-11-20From:Ron StarSubj:Time To Build A Replacement For WordPress

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.

Msg:#1286 of 1362Date:2014-07-24From:Ron StarSubj:My New Linux Workstation – Pure Awesome

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.

Msg:#1285 of 1362Date:2014-04-23From:Ron StarSubj:Auto Video Card Fan Control For AMD Radeon 7770

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.

Msg:#1284 of 1362Date:2014-04-21From:Ron StarSubj:CouchDB Map Reduce Examples

Here are some example CouchDB Map/Reduce functions to some common things that I do. I felt that it would be nice to write these down for reference later and to help out others using CouchDB.

I want to find how many dealers are in each city:

// Map
(doc) ->
  if doc.type == "Dealer" and doc.state
  emit(doc.state, 1)
// Reduce
(keys, values, rereduce) ->
  return sum(values) if rereduce
  keys.length

I want to find all dealers in CA

// Map
(doc) ->
  if doc.type == "Dealer" and doc.state == "CA"
    emit(null, doc)

I want to show all inventory for an event sorted by sort_order.

// Map
(doc) ->
  if doc.type == "Inventory" and doc.sort_order
    emit([doc.sort_order, doc._id], doc)

Next

Msg:#1283 of 1362Date:2014-04-12From:Ron StarSubj:Mechanical Keyboards

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.

-- Press ENTER to continue --