We got to Golden Gate State Park outside of Golden Colorado after a hard to day push from Durango. This was an awesome state park with tons of great trails. A client I’m working with is based out of Denver so I was able to meet with them in person which was great to put faces behind the voices.

Wyoming was relatively uneventful. We had a great time in Buffalo where we stayed at our first KOA on our trip. For a small town Buffalo had an incredible inter-urban trail system. One of the paths actually went all the way into the Bighorns. Everyone in Wyoming was extraordinarily nice in a surprisingly not annoying way.

Our next stop was Billings Montana. My father and step-mother met us there for a few days. This was a special visit because it was their first time meeting Tilly. Unfortunately Tilly was going through a bit of stranger danger and the first day or so she freaked out whenever my dad picked her up.

After Billings we headed to Helena Montana which was pretty high on our pre-trip list of places we wanted to look at to potentially live. After spending 2 weeks in Helena and seriously considered staying. We even looked at a house that was 2 blocks from trails and about 6 blocks from downtown. Despite the serial killer looking basement this 1872 house was beautiful and seemed to be in great condition. In the end we weren’t quite ready to end our trip and taking on another mortgage (we still own our house in Boulder City but are renting in out) would likely have added more stress than we wanted to take on.

Campsite at Devil’s Elbow Campground

All in all after 2+ months we are all doing well. We had our longest push to date leaving Great Falls making it all the way to Glendive, MT (about 350 miles). Instead of pushing hard we found a park part way through the drive and stopped at a park to relax and let the dogs out and Tilly got a chance to get out of her carseat. While a long day this stopped helped made the day much more bearable.



Trails around Helena

Taking a break with Tilly and Carl

July 28th, 2016

Posted In: Uncategorized

Leave a Comment

After leaving Silverton we felt we were rushing the trip quite a bit. The longest we stayed in one place was 3 days. Pulling into Durango we were looking to stay 4-5 days at least for a little breather.

While it is cool having this chance to explore many different places one negative is we don’t know much about a place before we get there. We do some research but there is only so much you can do online.


We had booked 2 nights in an RV campground a few miles out of downtown Durango. The pictures looked lovely and they advertised Wi-Fi and laundry which we needed badly. Although the pictures online looked nice this RV park stunk. The sites are packed like sardines, the laundry was a rip off, and the “WiFi” was a big joke. That wouldn’t have been so bad but the campground was in a little canyon and I didn’t even have cell signal to use my hotspot.

Luckily we had only booked 2 nights and had a chance to explore the area and found a really awesome National Forest Campground at Junction Creek. We didn’t have any hookups but the fees were cheap and I was able to bike into town in the mornings to work.


View From Durango Library

We like it so much we ended up staying almost 2 weeks in Durango. This little break was nice and I was really productive since we weren’t traveling so much. I spent a lot of time at Durango Joes Coffee Shop and the Durango Public Library.


Hanging with family after swimming at rec. center pool

As we left Durango we reached a month on the road. Everything is going pretty well so far. We are finding our expenses are a bit higher than we expected. Camping, fuel, and groceries account for most of the discrepancy. This should level out this next month when we start receiving income from renting our house back in Nevada.



June 24th, 2016

Posted In: Uncategorized

Leave a Comment

If you didn’t see it here is part one Part One of the family ditching everything in Southern Nevada and deciding to hit the road. We left off as we left Crystal Geyser heading to Grand Junction…

So far in our adventure the longest we stayed in one location was two nights. We had covered a fair amount of ground considering towing a trailer, taking care of trailer utilities (dumping and filling), a seven month old baby, and two dogs is pretty slow going.

My wife Ashlee has friends in Grand Junction, CO so we planned on staying anywhere from 3-7 days there depending on how things were going. Our first stop was the North Fruita Desert Campground. On a map this didn’t look very far from Grand Junction but in practice it was about a 40 minute drive. Fruita itself isn’t far from Grand Junction but the the dirt road leading to the campground was 8 miles and the turnoff to the dirt road was 10 or so miles from the highway.

We ended up moving closer to town to a full on RV park which wasn’t our preferred type of place to stay but in the end was much more peaceful. Grand Junction ended up being a really good time. I was able to get quite a bit of work done and it was great hanging our with our friends who showed us around.

It so happened there was a low key race over the weekend called the Garfield Grumble. It is only about 4 miles but climbs and descends 2000 ft up and down the peak of Mt. Garfield near Palisade, CO. This was my first ‘race’ in over two years since my strange temporary paralysis (another story).
Mt. Garfield

We also met a bunch of people in town who were all super nice and inviting. This was particularly cool because like Las Vegas most people it seems in Grand Junction weren’t from there. Definitely recommend the brewery and distillery in Palisade about 15 minutes away from Grand Junction.

Trail in Grand Junction

All in all Grand Junction was a lot of fun. Our time there felt a bit hectic because there was a lot we wanted to do while we were there.

From here we are heading down to Ridgeway, CO for a few days.

June 3rd, 2016

Posted In: Uncategorized

Leave a Comment

Hitting The Road Pt 1

So last week my wife and I sold all of our crap, rented our house, and set out on the road with our two dogs and seven-month old baby.

This wasn’t a spur of the moment decision. We have been thinking about living on the road for a couple of years now. Slowly we have sold/donated things we had accumulated individually and together.

We ended up renting our house in Boulder City, NV and packed our toy hauler and left town last Saturday (May 21st 2016). Our first stop was Sand Hallow State Park in Hurricane, UT.



The park is next to a reservoir and the area is a popular boating and OHV destination. After getting to the campsite and setting up we visited my friend Ron’s house in Springdale.

Before heading out the next day we relaxed a bit and each ran around the reservoir then sat by the beach with the baby.

Our next destination was Green Valley, UT but we learned our lesson about pushing it and driving too long on a recent trip to Carlsbad, CA. What is normally a 5 hour drive in decent conditions became a 7.5 hour drive between letting the dogs out and feeding/tending to the baby. We were all pretty fried after that and vowed to not make the mistake again.

So we stopped for the night at Freemont Indian State Park which is West of Richfield, UT on I-70. This is a beautiful location and it was a bit of a bummer we couldn’t stay but the location had no service so I couldn’t do any work.

We left early the next morning and decided to Boondock (free camping typically with no services) outside of Green Valley at a place called Crystal Geyser. Our original intention was to stay one night but this place was so relaxing we stayed two days.

The geyser would ‘erupt’ every 4-8 hours or so. Most were pretty unremarkable but one time the eruptions were around 15 feet high and this lasted for over 30 minutes. One interesting note about Crystal Geyser is that it is a cold water geyser fueled by CO2 underground.

Crystal Geyser UT

IMG_1061 IMG_1062


We left Crystal Geyser early on Wednesday May 25th for Grand Junction where we planned to spend several days to meet up with friends and check out the area as a possible place to live.

…. to be continued …

May 31st, 2016

Posted In: Uncategorized

One Comment

This is just a quick and easy tip for adding payment options to your SugarCRM or SuiteCRM Invoices to make it easier to get paid and get paid faster.

PayPal has a nice feature called PayPal Me (https://paypal.me) which provides a link you can share to take PayPal payments. After finishing the signup process you will get a unique url that is tied to your PayPal account:


One nice feature is you can append your url with an extra slash and enter the value of the payment so https://www.paypal.me/SMickelberry/100 adds $100 to the form:

PayPal Me with Value


You can use this to easily add a link to your SugarCRM or SuiteCRM invoices.

  • SugarCRM 7
    • Go to Admin->PDF Manager->Invoice
    • Add the line
      • Pay with PayPal : https://paypal.me/<user_identifier>/{$fields.total|replace:’$’:”}
      • https://paypal.me/SMickelberry/{$fields.total|replace:’$’:”} (example)
      • Notice the replace function for the PDF template. You need to remove the currency sign from the total value.
    • Use the editor to make the link a different color and clickable.
  • SuiteCRM
    • Modules->PDF Templates->Invoice
    • Add the line
      • Pay with Paypal https://paypal.me/<user_identifier>/$total_amount
      • https://paypal.me/SMickelberry/$total_amount  (example)
    • Use the editor to make the link editable.

After that you will have a link your customer can use to pay you quickly. Remember as the person receiving money you pay the fees to PayPal. At the time of this writing those fees are 2.9% + $0.30 per transaction (https://www.paypal.me/pages/faqs).


Sign up for my mailing list for updates

May 6th, 2016

Posted In: Uncategorized

Leave a Comment

If you are using PHP hopefully you are running on Linux which means you probably won’t have the unfortunate task of having to connect to MS SQL Server. Although rare, there may come a time where you need to integrate with an outside system that uses a SQL Server database and no other options for getting data are viable (ie APIs).

This post will outline how to set this up. In this case I was using Ubuntu 14.04 LTS 64 bit but the instructions should be pretty close to earlier versions or 32 bit. These are what worked for me on a clean Virtual Box installation then replicated on a remote server. It is possible some of the commands are redundant or not needed. Please comment if you find some. These instructions assume you already have the LAMP stack installed.

  1. Apt-Get Commands
    • sudo apt-get update
    • sudo apt-get install unixodbc tdsodbc php5-odbc freetds-dev unixodbc-dev freetds-bin
    • sudo apt-get update
    • sudo service apache2 restart
  2. /freetds/freetds.conf – Here you can declare multiple server parameters if you need to have multiple connections. In this case we are using the connection defined with ‘sqlsrv’
  3. /etc/odbcinst.ini
  4.  /etc/odbc.ini
  5. connect.php – PHP file to connect to database. This is just an example. You’d probably want to declare a database class and connect to the database as needed.

December 30th, 2015

Posted In: Uncategorized


This post is about how to create a new dashlet for activity modules (Calls, Tasks, and Meetings) that will show a preview of the parent record for the activity in record view.

There are four files required for this customization. Three are related to the dashlet and one is a language file.

One important note for Sugar 7 dashlets is the directory and the .php, .js, and .hbs files must have the same name. So if you had a dashlet called hello-world you would need:

  • Directory hello-world
  • hello-world/hello-world.php
  • hello-world/hello-world.js
  • hello-world/hello-world.js

Since this dashlet will be used for multiple modules the dashlet files are located in ‘custom/clients/base/views/’.

The php file defines the dashlet filters. We want the dashlet to be available in the Calls, Tasks, and Meetings modules Record View so we add definition in the dashlet filter.


Next the javascript file checks if the activity record has a parent record associated with it. If it does we do an api call to get the object of that parent record.  It would probably be wise to add a check to see if the parent module type is one you are looking to show a preview of but I didn’t in this case because most users don’t have access to them (Cases for example). 


The handlebars template is where the dashlet view is set. In this instance Accounts and Opportunities as those are the primary modules used. This template shows some custom fields for this instance so you should remove those if you use this. I also already have a logic hook that displays the parent phone number on the call record. If that isn’t the case it would be very beneficial to add that to the template. Remember you’ll have to change depending on the parent module type.

Lastly we need to add the language file that will update the dashlet name in when going to add it along with the description.



Something I didn’t do but that would add some nice functionality would be to do another api call to try to get the notes associated with the parent module. I decided not to do this because the dashlet was intended to give a quick preview. I added the button to open the record at the bottom of the dashlet if the user needs more information. It would be interesting to see that similar to the preview from list view shows the related records in the intelligence pane.

Hope this slightly more advanced dashlet (compared to the proof of concept ones) helps someone if they want to create a dashlet like this or their own dashlet.

October 29th, 2015

Posted In: Uncategorized

One Comment

Early on when my company started with SugarCRM CE there was no option to hide completed activities in the Calendar so I followed this tutorial to change Calls/Meetings with status = Held and Tasks with status = Complete to background color = white. A later upgrade, I beleive 6.5.13, made this unnecessary with an added checkbox for hiding these items.

This worked well on our instance because we controlled the upgrades and I knew to update the files because the tutorial is not upgrade safe. We recently upgraded from SugarCRM CE 6.5.xx to Enterprise 7.6.  During our launch week I realized that the hide completed activities setting no longer existed. Additionally, we are on an On-Demand environment so the upgrades are controlled by SugarCRM so I wanted a different way.

Doing an inspect element in Chrome I noticed the div of an item, a Task in this case,  on the Calendar had this format:

 <div id="c51fbfab-5017-a40e-c307-55ef7dccc23b" class="act_item task_item" record="c51fbfab-5017-a40e-c307-55ef7dccc23b" module_name="Tasks" status="Not Started" detail="1" edit="1" duration_coef="1" style="border-color: rgb(1, 89, 0); height: 14px; top: -1px; left: -2px; width: 46%; background-color: rgb(177, 245, 174);"><div class="head"><div class="adicon" id="div_c51fbfab-5017-a40e-c307-55ef7dccc23b"></div><div>Expenses Update</div></div><div class="content" style="display: none;">Not Started</div><div class="content" style="display: none;"></div></div> 

Attempt 1 – Failed:

Noticing the ‘status’ attribute in the div this seemed like a pretty straight forward issue perhaps with some jQuery like:

 $('div[status="Held"]').css('display', 'none');

would do the trick but the activities weren’t affected. Just modifying a general <div> worked but not with referencing the status attribute.

Attempt 2 – Failed:

Next I tried adding some css by creating a file /custom/themes/custom.less with:

 div[status="Held"], div[status="Completed"] {
 display: none;

I saw the file in the browser editor with the syntax I wanted but still nothing was happening. I changed the file to:

 div {
 background-color: red;

This only changed the navigation bar and the footer to have background color of red. I don’t know why this was the case. Perhaps the order of page load?

Attempt 3 – Success: 

I knew the css worked as I had tested it in the editor. So I used a after_ui_footer global logic hook to include the css file when on the Calender page.


if (!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class CalendarLogic
 function displayCalendarCss ($event, $arguments)
 {if (!isset($_REQUEST["to_pdf"]) && $_REQUEST['module'] == 'Calendar') {echo 'link rel="stylesheet" href="custom/modules/Calendar/Cal.css"/';}}

Please note the opending < and closing > for the link tags were removed in this post.



div[status="Held"], div[status="Completed"] {
 display: none;

This worked in testing but it took me a bit to get this packaged properly for testing but I finally got it.

Download the package below.

Hide Completed Activities Calendar Package

Perhaps a better way would be to override the calendar get activities to prevent the completed tasks from being included in the first place but I wasn’t having any luck overriding the base calendar functions.


September 12th, 2015

Posted In: SugarCRM, SugarCRM 7, Website Design

“Couple pleads guilty for oral sex on Las Vegas-bound plane | Las Vegas Review-Journal” http://feedly.com/k/16ROvPY

October 17th, 2013

Posted In: Uncategorized

Leave a Comment

“Bulgarians trade free will for free beer | The Verge” http://feedly.com/k/1c42K7p

October 2nd, 2013

Posted In: Uncategorized

Leave a Comment

Next Page »