Building a ‘todo’ app

Standard

A lot of the frontend frameworks go through building a basic todo app. However building a feature rich one is considerably much harder.

During my day to day work we use Basecamp 2 and 3, Youtrack and several other tools. All of them have their strengths and their weaknesses. I wanted a todo app that was simple but allowed things like meta data, kanban boards and what not. Therefore I have built Todo Sage that includes these features.

Along with those features we include an Idea Board for voting on features. As you are building out your roadmap it helps to figure out where your team wants to go. The idea board allows you to vote multiple times for a single idea if allowed, and have a maximum number of votes. These are both configurable and help you really get to the features your team wants.

While my use case has been developer centric, it works for all sorts of projects. If your clients need access, invite them to the project and they can start interacting with you. For companies that do a lot of similar projects like setting up clients sites, we offer ‘Project Templates’ that you can build and scaffold entire projects with the click of a few buttons.

Todo Sage fills the gap of one application having some features and another application having other features.

Switching to Netlify

Standard

Corporate or marketing sites often times don’t need full blast content management systems. It’s also nice to have the marketing site on a different server than the web application. After doing a side project that uses Jekyll and Cloud Cannon for the CMS it got me thinking on setting up an easy to use jekyll site. Since these sites don’t get updated often, and when they do, it’s often by a developer, we don’t need a CMS. Writing basic HTML will work just fine.

While browsing the Jekyll documentation they mention Netlify. To my surprise they offer a free plan that even includes SSL with Lets Encrypt.

They offer the ability to use forms, their DNS servers, and even add custom environment variables when building your site.

As for their git providers, they support Github, Bitbucket as well as Gitlab (hosted). When pushing code to the repository on the master branch, it will automatically pick it up and rebuild the site.

If you are interested in static sites without the mess of a database, or long load times on lousy oversold WordPress shared hosting, checkout Netlify.

*Note: There is no referral links nor paid advertising. I personally use them and think they are a great choice for sites that don’t change a whole lot. Often times people jump to WordPress, Joomla, etc because they are easy to setup and not necessarily the right tool.*

#LongmontStories where did you go

Standard

If you follow me on Facebook you may have come across my #LongmontStories posts. These are weird things that I witnessed while working on Main St in Longmont, CO. Unfortunately we moved offices, and although we are still on Main St. I don’t have a direct view of the door anymore. I am therefore limited to the times I am walking outside.

When is it ready?

Aside

When is the app I am building ready for the world to see? There is always more cleanup, more features, blah blah blah to keep the development process going. Meanwhile at work, I am fighting off ‘cool features’ for the sake of of being ‘cool’.

Interviewing for a Job in the Adult Entertainment Industry

Standard

Late last year I had a recruiter contact me for a web developer position working at one of the major adult entertainment industry companies. Interesting I thought. Would I take the position if I got it, I don’t know. Would you? The salary was between $90k – $95k. Very tempting!

They were looking specifically for Laravel developers in this area and I guess that list is pretty short. I have had several other recruiters contact me for other positions because I am a Laravel developer so it’s a growing trend here.

This office was located in one of those “office park” type areas. Multiple office spaces in a building with several more buildings near by. The biggest thing I noticed was a security system on the doors. As I waited in the lobby numerous employees all going in and out putting their RFID badges near the reader. At first I thought this was weird, but with the kind of content this company puts out, they might get some crazies from time to time. Postal 2 anybody?

The interview was like most others. You chat and get to know each other. They ask some technical questions, you ask your questions, yadda yadda yadda. One question they asked that I had not heard before was “Will your family be ok with it?”. Some will, sure, some won’t but at the end of the day, they don’t pay my mortgage (or rent at the time) so they don’t get a say in it.

After the q/a session we went around and they showed me the office and where the developers were. I was a bit surprised to see the setup. 4 or 5 people cramped into a tiny office. We don’t need a lot of space but if you are claustrophobic, this area isn’t good for you. I don’t recall seeing any windows in there. Then we continued walking around the entire office space. The video editing team is out in the middle. Think of setting up cubicles on a basketball floor. To the right of us are these giant windows with blue lights glowing. A massive server room. I wanted to go in, but it didn’t happen. Boo!

The biggest thing I learned is there are various degrees of “X” rated films.

At the end, I didn’t get the job. I wasn’t to bummed by it as I liked my current job anyways. Plus, it’s always good to increase your interview skills and makes for a good story.

Picking The Place To Rent

Standard

For RentFinding a place to rent can be stressful. Growing up I heard in movies and from others about “slumlords”. These are basically landlords that let their properties go to waste while tenants are still renting them. When I first moved out of my parents house I was concerned about this. Are all landlords slumlords? How do I know what place I should rent. I wasn’t sure. I ended up renting a one bedroom apartment in a nice quiet area and it turned out to be great. In the three years I lived there, I only had one issue and it was fixed that day.

Before I moved out to Colorado we got a list of places to look at during our scouting trip. The first one we were going to look at was promising and I figured that would be the place. The week before we flew out to Colorado there was a shooting in the parking lot. We skipped past that one. It could happen anywhere, but since we didn’t know the area we weren’t going to risk it. It turns out we didn’t look at any of the properties we planned on viewing. Instead we found 4 other ones on the south side of Aurora. The place we settled on was a big complex with 20 something buildings, a pool, gym, etc. Like the previous place we only had one issue. After a trip back to Michigan we noticed our kitchen faucet was leaking just a little bit. I submitted a work order online even stating it was a minor drip and not an emergency. Within 2 hours it was being fixed.

Now we are up in Loveland. So far we have had two issues. The first one was last September when the Big Thompson (and other rivers) flooded. Our basement ended up with several feet of water in it. He hopped on it pretty quick draining the water and getting a crew in to do the cleanup, replace the drywall, hot water heater, furnace, etc. Overall we spent 2 – 2 1/2 weeks away. Fast-forward to this week and we had a second issue. Our washer decided to dump water everywhere earlier in the day. I called him in the evening and about 7:45 the next morning here was over working on it. Before he left I apologized for getting him over here so early and he had been up and waiting for a few hours already. That made me feel kind of bad because I had been up that long. There is also some concern that the runoff from the mountains will cause the river to flood again. We will be watching that for the next few weeks. Driving by one of the smaller rivers you can see that it looking a bit full as is.

Having rented 3 place now I am at ease of finding a “slumlord”. The issue in Loveland is that places go fast as the rental industry seems to be booming. We are hoping the next time we move it will be into a house we own.

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

PHP Mcrypt on OSX with XAMPP

Standard

HTML CodeWas composer not able to find the mcrypt PHP extension? When I developing on my local machine I use XAMPP because it is easy to setup. I also tend to use Laravel for a lot of projects as well. If you are using the same, when doing a composer update you have no doubt encountered this error. Mcrypt PHP extension required.

Writing lock file
Generating autoload files
Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returned with an error

It turns out there is an extremely easy way to fix this. Simply update your .bash_profile with the following text:

export PATH=/Applications/XAMPP/bin:$PATH

This will find the XAMPP version of PHP that has mcrypt installed first instead of the one that comes with OSX.

The .bash_profile file allows you to have user defined settings when using Terminal. If you want to user a different version of PHP, you can change it here. Do you want to setup shortcuts? A lot of people will create a shortcut so that ls -l can be run by typing ll.

To do that enter the following in your .bash_profile file.

alias ll="ls -l"

If for some reason you don’t have a .bash_profile, create it in your root user directory. If your username is jeff, the file will be /Users/jeff/.bash_profile.

After you have made your change you may need to source your profile. Execute the following command inside terminal to do it.

source ~/.bash_profile

Once this is done, you should be able to do a composer update without any errors occurring.

Image courtesy of Baitong333 / FreeDigitalPhotos.net

Deploying Laravel with Capistrano

Standard

I am always looking for better ways of deploying me code. In the past I have used Fabric to create a deployment process. Although I use git, I have never used it for deployments. With Fabric I copied my code to another folder, did any processing such as removing files, or setting a environment variable and then uploaded the package. I was able to create versioning. Each deployment went to it’s own folder and symlinks to the document root were created. In the event the deployment gets botched I can easily login and re-link to the previous deployment.

On a new project I recently launched I have started using Capistrano. If you are a Laravel user check out this tutorial from TutsPlus.

Using Capistrano, I can run a command and it will rollback for me. With the default setup I have also switched to git based deployments. Both GitHub and Bitbucket allow you to enter deployment keys for your server. These are SSH keys but have read-only access to pull down the changes.

What I like with this approach is that the client side deployment script only relies on having access to the server. No longer am I defining paths where to copy files to if I have to deploy from my laptop versus my desktop.

What I don’t like is the “config” folder in my root project. It’s quite vague but I haven’t looked to see if I can change the name. One thing I am looking to do is write the release name to a php file so I can use it for things like cache busting.