Tommy Lee Software development for everyone else

Programming Learning Slumps

How do we find relevance in learning new programming stacks? How do we remain relevant in our understanding of web architecture? New frameworks rise and fall faster than a prime-time lineup. Wheels are reinvented faster than we can put them on cars!

My apprehension

When I’m doing things by myself or at my job, I want to get it done. I’ve developed habits to avoid using new / exciting / untested stuff for production. I also avoid rolling my own…anything. For the client, and for anyone else down the line, maintenance can be more expensive and mentally tasking. They want a working awesome product.

Coming up with new projects, I don’t imagine the minor (but important) details of my stack. I’m more interested in the end product. Architecting out a solution, drawing out my tables and relations, these are the parts I enjoy. My standard set of tools: Laravel / Rails, MySQL, Bootstrap, Nginx. Anything that gets it rolling out the door.

Why should I learn Bash when I have Python? Who the hell needs to learn another new Javascript framework when they’re just going to change in the next few months. Why should I get out of my comfortable, safe zone, and learn something new.

For me, it was the fear of failing to understand. After programming for a while, there was a certain comfort in knowing that things worked the way you expected them to work. Switching may take me a lot longer to learn, and cause me problems in getting what I want.

Life is hectic, and stressful. Programming is safe. It’s my sandbox.

Improving creative morale

I had a strange week filled with visits to the cinema. I thought of a game regarding movie earnings and Adam Sandler. Given a Movie title and the budget, provided by BoxOfficeMojo, the player had to guess the gross earnings.

Jackbox.tv’s online game model of an online sign-in and streaming looked amazing. I love the idea of a client-server game sessions, and the ease of sign-in. The interface is pretty slick. I want something like that.

This is a place where my usual programming tools were insufficient to my ideas. While I could use Rails’ ActionCable, there was a lot of interface heavy things I wanted. I’ve been doing a lot of reading about some Real Time Javascript frameworks like Meteor.

Some of my other friends would take this idea, and form a medium-sized team where a lot of people do very little. Maybe make a Kickstarter from it. This is a silly prototype, and something that I want. So I started building.

It’s still not done yet. But the passion of creation is back.

When building is not enough

Meeting other people who appear passionate about the craft reminds me of why I started in the first place. I came to this industry since the challenge exists. While programming can be a solitary activity, we have a community full of supportive, brash, intelligent developers that can help.

Help a newbie

Working in coffee shops for the past few months, I met a few ‘up-and-coming’ developers. I’m not too sure what that means, but these kinds of people are extremely hungry and passionate about new stuff.

Encouraging their growth and development brings all the warm fuzzies into me. They show me their projects. I love seeing them. While I don’t have any pretty things to show yet, I have my favorite tools. I love showing off Github Pages and setting up their machines for Jekyll. Demonstrating the power of Virtual Machines and how easy it is for them to get a development environment setup so they can try out a new language or node.js tool. Or even helping them debug a current problem.

Contributing to Open Source

There are a few tools that I like to use, but documentation can be kind of scarce until I learned how to use it. Reading through open source code for fun may not be the first thing I went to, but helping to fix a bug that I ran into time and again helped.

Join a meetup

In college, I remember meeting with people of like minds, going through a similar trials and tribulations of finishing school work. I’m not used to meeting with other people with the same job title I have. Meeting up and Talking with others of like minds helps.

Preparing for Kickstarter

With Past to Future Games’ initial Kickstarter on launch, we have the following issues to address.

  • Reduce landing page loading time
  • Increase traffic to site or kickstarter page.
  • Get more social media followers
  • Get an engaging video together.

Reducing load times

For our tests, we’ll use Pingdom’s speedtest tool. In Mid August, we ran some speed tests on the home page. Prior to August 10, some of the loading times was averaging in 5 seconds.

We looked at where the Time spent per each action, and a lot of time was devoted to server processing! This may be due to all the plugins.

In the waterfall, you can see that we have an image that takes ~3 seconds to load! Thanks Apache! This may be a strange server error. There are a lot of things we tried to resolve this issue. We applied W3 Total Cache to the site to store some processing, some caching from CloudFlare, and we got slightly better numbers.

Unfortunately, a lot of those Caches only reduced part of the processing.

Switching to NGINX

From the Page Analysis Tab on Pingdom, we see that the majority of requests are static resources. Images, CSS and other things. This would be a good use case for Nginx.

We setup the site with Nginx and a Memcache, and on a separate instance. Even though we have 100s of requests on the front page, we got some pretty tasty results.

Hopefully we’ll get enough visitors to the site to actually need this.

Geoportal.us: Possible Naming Confusion

Lauren had a great idea for a project. We are making a simple, curated search / browse filled with GIS information. We’ll categorize the information by location, region, type of information, source, and all that juicy metadata.

The idea of this new site was a simple search, managing and curating all the different sources available. Like a directory site. Some sort of Geographic pages. We ended up with Geoportal. Sounds like a great name!

Unfortunately, I completely forgot to google other claims to the GeoPortal title.

Geoportal: Software

Geoportal is an open source Metadata Management Server. Created by Esri, ArcGIS sofware creators, Geoportal can be used to setup your own Geographic Information Server. Not exactly the same as our intended product. Ours is a basic service that Name is a bit of a concern. How about other services that are similar?

OpenGeoPortal: Website Search Service

Now OpenGeoPortal provides a similar service, but their Java program is in beta. It provides live feedback for users to explore, touch and check out the results of the data live. Since they’re basically serving up a repository of information right at the fingertips of the customer, with even a checkout (Shopping cart downloads!).

Geoportal.org: More search prowess

Geoportal.org has a preview for finding geospatial data through a search box and a graphical preview. It runs a bit slow, but has a lot of awesome visual features.

Geoportal.us: Obscure data and reviews

Our site, which shares the similar names, would be a minimalistic but smart search and browse. We are aiming to solve a problem that these monolithic search applications fails to address: finding quality obscure data.

Life as a Geography student is tough. Sometimes you need to research some random topics and areas, but the data listed is mislabeled, irrelevant, inaccurate. We’re here to help. We’d like to help with the data labeling process to get those Geography students from wasting many hours just looking for data.

But maybe we need to find another name for the service.

New Boys In Town

One day an old friend came to me and mentioned if I wanted to start a business. So we did that. We started a new company. After a month of waiting, we got it! Costs us about 1000 dollars, but well worth it. We decided on TLA Global Solutions. LLC. We focus on making some flashy sites, data analysis, GIS and Social Media,etc. Still not too sure

Social Media?

Yeah social media, analyzing fan pages, getting demographic information, and optimizing their efforts. From my current job, we noticed that many businesses have a vague understanding of what is their online audience. Our goals are to bring businesses and individuals these tools, graphs and understanding in order to enhance their business.

At work, gotta create a battle plan on analyzing demographic information and social media information. Granted the APIs involved are the same, and the techniques are well documented, just got to be careful on what kind of methods to use.

GIS?

Yeah, we have a good resource of GIS trained people. While I’m not too familliar with the software, I’m used to doing things a little bit of a manual way, relying on sql databases, massive logs, and some pretty Javascript virtualization. If we can get a contract or two in GIS, maybe it’ll be a good place to look for extra work.

Projects

We got a few new projects rolling out this year. So Past to Future Games is rolling out very quickly, with renewed interest in development. Tim and Dimitra are hard at work, seeing major progress every week. I got a new animated logo up, maybe make it into an animated menu, with all the class of homestarrunner dot com.

After a few months of working at PlumPlex, Will has decided to convert bBadgeMedia to a wordpress site. So we’ll be working on securing the content and all that important information.

Farida approached me with need of a new site for her fashion lines. In a short amount of time, we rolled out with iRidaNista which holds all her clothes, pictures from fashion shows, and an online shop. Hopefully that is enough.

Paula has decided to move ahead with the Senhorita’s Macarons, a baking site, and we’re planning on making it nice and animated and pretty. Hopefully the results are acceptable in the appropriate amount of time.

With the new business up and running, we gotta create a site for that too! sheesh. With all this site buildilng, where is the relaxation and the learning and the training time?

A New Start

With the second year of the Horse approaching, I have decided to do a blog for a New Years resolution. We have a lot of plans in store for this year.

New Blog

I haven’t blogged in a long time, maybe since the days of xanga or myspace, but I found that it was appropriate to spread the same information around over and over again. Maybe they could be tutorials, math or physicsy related information, or cool projects i’m working on. Whatever works. While I’m used to a CMS platform like Wordpress or Drupal, some nice folks at /r/webdev recommended a static blog generator for a change of pace. currently checking out Jekyll, which keeps me focused on the content first.

Projects

I graduated a month ago (yay), waiting for a fancy piece of paper to arrive. This year I hope to have the following projects wrapped up:

Skills

We’re going to focus on a few fundamentals this year. To round out my experiences and hone it in, we’re going to learn a few new things. Mostly some UX and Javascript. Big topics include:

  • SASS, LESS and CSS related things.
  • Javascript, checking out React.js
  • Focus on some mobile related development.

While apache servers are standard, I’ve been looking into new server technologies. Specifically interested in the nginx and varnish cache servers. May write up some posts about setting those up.

Self Gratification

Thank you for stopping by and reading my first post. I hope future posts will be more beneficial.