Building Laracon Online

This will be the third year we’ve been running Laracon Online and I have learned a lot about selling tickets in the process. Based on this tweet I was reminded of how we’ve reworked the order system over these three years and I wanted to share with you the progression.

The first year we used a third party service to sell tickets. For the percentage they would take we assumed it would be a decent deal for us since we wouldn’t have to build out any of the infrastructure. However, I was swamped with support that year. I had hundreds of people entering their email addresses wrong and other weird stuff. It was a nightmare.

From this point we decided we would build our own system for the next year and I tried my best to build the simplest system possible. You hit the /pay route, added all the emails you wanted to buy tickets for, entered your account info, and pay. Behind the scenes we would email all the people and tell them to reset their password to create an account. It was simple and worked great.

Now that we had all this data for this year I was brainstorming on how I could make it even easier for people to purchase and I came up with the idea of just pre-filling the checkout system with all the people you purchased tickets for last year. So if you work at a company buying tickets for 20 people all you have to do is confirm they all are the same and hit buy.

Thinking through all this took some time but the implementation was really straightforward and only took me a night of hacking.

As developers we want to focus on the code and think about how to design apps that are easy for us, but our focus should always be on the end user. Even if it adds complexity or makes our app harder to manage later. The customer is the priority and making their life easy is why we are here.

Everything is always a trade off, just make sure you are prioritizing what is important.

Devops Humor

I came across this video on Twitter today and I haven’t laughed this hard in a long time.

I don’t know Spanish but I’ve seen this video before so I know he isn’t saying what the subtitles are showing and that is what adds to the humor. Whoever created this did a great job on it.

Wisdom

A child thinks they are making wise choices when we as adults know they aren’t. That is why we guide and push them in the right direction.

A teenager thinks they are making wise choices but they only listen to their peers. That is why we guide and push them in the right direction.

A young adult thinks they are making wise choices but they haven’t fully experienced life. That is why we guide and push them in the right direction.

Wisdom is something everyone can gain but we can’t get it through confirmation bias. We must look outside our own bubbles. This means to look across the political isle, look at people who live in other parts of the world, look for insights from other races, religions, and to always remain a student.

Notch’s Work Calendar for Minecraft

I just came across this image and I’m fascinated by it. Here are some of the highlights:

  • September 23rd, 2009 – Notch runs out of money to pay for server while on vacation, servers are down until he gets back.
  • Lots of vacation to play games.
  • Nov 23rd – Notch looses key to office. No one can work.
  • Dec 23rd – Notch takes the day off to write single word reviews for games.

As someone who never got deep into Minecraft and wasn’t aware of the history I love seeing how it all started and how he tried to manage his time.

Related: I’m currently reading Masters of Doom and if you like video games it’s an interesting history lesson. I’m only a few chapters in, but it’s great so far.

Work Journal – №2

This week was a short week for me. Monday was the MLK holiday and then today I had a hand doctor appointment so I took the morning off, and then spent the rest of the afternoon trying to get caught up.

My hand is making good progress and the bones are basically healed now, but it’s still a long process ahead. The doctor told me today that if this was my right hand, she would tell me not to shake anyone’s hand for at least four more months. To me most of my hand is doing great except the little finger. It’s still not bending and I still can’t make a fist so I have a lot more painful physical therapy in my future. The good news is that it has loosened up enough to where I can start typing with two hands. This is the first week since the accident where I could do that and that is a big win.

I’ve also kept with the iPad only. I’ve not been on any other computers in a few weeks now. Out of all my daily activities the only workflow that I struggle with is building the weekly Laravel newsletter. I use Campaign Monitor and apparently their drag/drop editor does not work with touch events. It’s quite annoying.

Drawing

I finally finished the Affinity Designer online course this week and it was very much worth the money. I feel like now I have a great grasp on how to use the app and how to create my own things pretty quickly.

Now the hard part starts where I need to take ideas and turn them into drawings. For example, today I was feeling pretty salty because my doctor appointment took all morning and then just little things got on my nerves. To help me get my mind off that I made a quick drawing representing “salty”

All my drawings are optimized for speed and I try to bang these out super quick. This one with the margarita took about 10 mins from start to finish and it shows. One day I’ll hopefully put forth the time to make a drawing much better.

I’ve also started going through a book on drawing cartoon faces which is more inline with what I want to create.

Day Job

At my day job I had to adjust our tax calculator and system because we had an employee move to a new state, which means a change in Nexus. It’s a whole crazy system but luckily the change was pretty easy. Always be testing when building an e-commerce system.

After checking out the new Laravel Mailbox package I spent some time looking at a package called mail-mime-parser that it relies on to see if I could integrate it into our app. On the surface it looks promising but I’m worried about the 10 years of edge cases we’ve had to work around and this package not catching them. But I’ll know more once I get a chance to implement it and run our weird eml’s through it.

Conclusion

This weekend I have to write the newsletter and I’m planning on deploying a top secret project I’ve had in the works since the first of the year. I’m hoping to get it all done and let you know more about it next week.

Finally, I leave you with a picture of my iPad. If your company has some extra stickers send them my way, my address is on the about page.

iPad Pro
iPad Pro 11″ stickered up

Support Local?

I’m in the market for a new pair of boots and wanted something that would last me the rest of my life. After finding a brand that came highly recommended I went out to buy them.

At first I decided I’d just get them online like I always do. I got the size I normally wear and placed my order. Two days later they arrived but I didn’t like the color, so I sent them back.

Next, I decided instead of reordering I should try to find a local store that sells them. Then I could get the proper size and the color I wanted. I went to the manufacturer website and found that a store just down the road carries them.

I arrived at the store and wondered around for a few minutes before flagging down someone that worked there. They said they don’t actually carry the style I wanted. I left annoyed.

The manufacturer website also said there was an “official” store in a neighboring town, about 35 minutes away. I didn’t really want to drive that far but figured it would save me some time versus ordering online and waiting. I went to the store and told the salesman, this is the style I want and showed him a picture. He said, we don’t carry those styles. Annoyed I left and went home.

Finally, I reordered a new color online and it arrived today. Now I like the color but the size feels too big. I’m at the point where I just want to throw my hands up and give up.

The moral of my story is always call the business first. Apparently, just because the store is “official” doesn’t mean they carry what you actually want.

I forgot how much I loathed shopping until this experience. Give me a browser and a buy button.

Pull Requests as a Content Management System?

After launching new sites I like to let them sit and then after a few months rethink how I created it to see if maybe I could have done it differently.

  • Could I have simplified things?
  • Could I have improved it?
  • What part of the design failed?

These are all questions I like to think about so the next time I’m tasked with something similar I’ll know which direction I should go in.

A site I launched the middle of last year is Laravel Events and I wrote about my thinking on how I designed here. I purposefully wanted to make the site as a simple as possible. After building it in a very complicated fashion I cam to this decision:

I had authentication, I had different categories of events, I had very specific time selection, and I realized all of those are overkill for this. Why can’t I strip everything down to a single list of upcoming events on the home page, then one form to submit your event. The only auth it needs is for the admin to approve and deny submissions and delete spam. Nothing more.

Now I’m thinking I still overcomplicated it. All the end of users of the site are developers and they are all comfortable with Git so I should have just used a static file system and allowed those that wanted to add their events to just create pull requests. This would have had the bonus of including a full audit log, and much more.

With this in mind I’d like to start today and redo the whole site, but I have a billion other things to work on. So it’ll not happen any time soon, but I think its fun to look back and see what you would have done differently.

Gone with the Wind

I have a hard time reviewing classic literature. I feel like most of the world has already read them and if not they can find much better written reviews than what I could come up with.

With that being said I just finished listening to the audio book of Gone with the Wind by Margaret Mitchell and wanted to share some quick thoughts about the classic book.

First off I wanted to stop this book a few times, the selfishness of the lead character was insufferable. The book was released in 1936 and to me Mitchell was a brave writer to create a character so self centered. I was surprised how well it turned out and big props to her.

The second observation was how the book didn’t seem that foreign to me. As far as I know my family has lived in the south for at the least the last four generations, but it could go back much longer. My great grandfather/grandmother would have been around the age of Margaret Mitchell and their parents would have been in the period of the book.

You might think the book is ancient history depicting slavery in the United States but in reality it’s only about four generations back. Even less since segregation was abolished. In the grand scheme that isn’t much time and even though our country has a long way to go I feel like we have came a long ways since the 50’s and 60’s.

If you haven’t read this book yet I’d recommend it. It is one of the most read books for a reason. Once you’ve read it check out To Kill a Mockingbird which is one I enjoyed even more.

Strength to Love

Today we celebrate the life and achievements of the late Rev. Martin Luther King Jr. He is best known for leading the civil rights movement in 1950’s and 1960’s and was assassinated in 1968.

He is responsible for many great works and one I’d like to share today is from his book Strength to Love about loving your enemies:

We must recognize that the evil deed of the enemy neighbor, the thing that hurts, never quite expresses all that he is. An element of goodness may be found even in our worst enemy. Each of us is something of a schizophrenic personality, tragically divided against ourselves. A persistent civil war rages within all of our lives.

There is some good in the worst of us and some evil in the best of us. When we discover this, we are less prone to hate our enemies. When we look beneath the surface, beneath the impulsive evil deed, we within our enemy neighbor a measure of goodness and know that the viciousness and evilness of his acts are not quite representative of all that he is. We see him in a new light. We recognize that his hate grows out of fear, pride, ignorance, prejudice, and misunderstanding, but in spite of this, we know God’s image is ineffably etched in his being. Then we love our enemies by realizing that they are not totally bad and that they are not beyond the reach of God’s redemptive love.

The section reminds me so much of our current political divisions and neither side is innocent. We would all do well to remember that everyone has conflicting views, and everyone has thoughts that the culture hates. It’s what makes us each unique and looking at the world through someone else’s point of view can make us all stronger.

Work Journal – №1

My friend Adam Wathan relaunched his website a few weeks ago and a new section he added was a work journal. His goal is to share once a week some of the things he is working on, problems he ran into, and just a general overview of his week.

I love the idea and I wanted to “borrow” it for this site and every Friday I’m going to try to post what I’ve been working on and thinking about each week. Since I work a full time job I’ll only be talking about it in generic terms since we deal with a lot of well-known companies that might throw a fit if they get name dropped.

Without further ado, let’s jump into the first update.

Breaking the Laravel News server

Today I had some reports that the Laravel News site wasn’t loading and sure enough the server wasn’t responding. I couldn’t SSH in and from the server control panel I could see the CPU spiked to 100%. I did a reboot and when it came back up, it was throwing a 500. Checking the log files I had a weird message:

laravel.EMERGENCY: Unable to create configured logger. Using emergency logger

Apparently, during an upgrade I missed that I needed to add a config/logging.php file. After adding that I’ve not had any more issues.

Botman

At work we often will do custom integrations for customers and I’m currently tasked with building a Facebook bot that will automatically generate a new request in HelpSpot. I started on this integration and plan to use Botman with it’s FB driver. So far I have the bot basically working and Botman is really making this easy.

Drawing

I’ve continued practicing drawing and I’ve been trying to turn anything and everything into art. Here are some quick things I made with Infinity Designer on the iPad.

It feels a lot like learning to program. I’m terrible but I enjoy it so much I just want to continue making things. 

Until next week

It feels a lot like learning to program. I’m terrible but I enjoy it so much I just want to continue making things.

I hope you have a great weekend and I’ll be back again Monday with a normal post. If you ever want me to cover something or have any questions you can always comment below or shoot me an email.

Modern Business Books Are Just Filler

I have always loved reading business books and finding new ideas that I can put to use. Over the years I’ve read many different business books by many different authors and although a lot of the knowledge overlaps, most are packaged up and written in different ways to share new angles.

It seems like all modern business books, those released in the last two years, are nothing but a vomit of name drops of famous people and companies and how they do things. I’m sick of hearing about them. I know their stories, and I’m buying the book for your story.

This style must be selling well with the publishers, but I’m tired of the same content and all the filler.

Sending Email? Remind us who you are

I subscribe to a lot of newsletters and company marketing lists. I enjoy staying up to date through various mailing lists but a pattern I keep seeing is getting emails from companies that I don’t recognize.

Just today I received this one:

Happy New Year! We’re excited about 2019 here at {randomWordCompany}: there’s lots to do, and we have an incredible roadmap for the year ahead.

If they would have just reworded it to include their slogan or what they do I would have instantly remembered. For example:

Happy New Year! We’re excited about 2019 here at {randomWordCompany}, the best note taking app for your phone: there’s lots to do, and we have an incredible roadmap for the year ahead.

If you don’t email your subscribers often then use little things like this to help reinforce who you are. Think about reading a book series, every new book gives you little hints and reminders of what happened in the past to carry you forward. Your emails should do the same.

Signal v Noise moves to WordPress

Today Signal v Noise announced they have moved from Medium to WordPress and there main reasoning seems to be because of the change in how Medium is ran.

I personally tried out Medium back when they originally switched and had high hopes, Medium said they were going to work for the writers but more and more you could see the tide shifting between what they said and what they did. I left and haven’t looked back. Granted I might not be getting the visits running my own thing but it’s mine and I can do what I want and make it suit my needs.

I love this quote from their move:

Traditional blogs might have swung out of favor, as we all discovered the benefits of social media and aggregating platforms, but we think they’re about to swing back in style, as we all discover the real costs and problems brought by such centralization.

I’m hoping for a blogging resurgence and have been loving being a part of it. Now if I could just figure out how to get people commenting on the posts instead of replying on the social share. haha

Anyone Can Draw

Although I love drawing I am not very good at it, but I don’t let that stop me. The act of creating something, even something terrible, brings me joy so I keep doing it.

If you are like me, remembering that you can draw almost anything with a circle, a rectangle, and a triangle then it allows you to break down an object into it’s most basic form and recreate it. Thinking of it like this also allows you to draw objects super quick which is great for taking notes.

Shortcuts

Some people believe the only way to learn a skill is by the hard knocks of trial and error and spending hours stuck on frustrating problems that an expert just knows.

Granted this way of learning works and I know this from experience. That is the path I took into being a developer. Now that I’m older my time is much more valuable to me and I can’t spend countless hours learning a new skill.

Instead I try to find the shortcuts to get the results I want. As an example, I’ve been wanting to get better at creating drawings on the iPad. I found an app that will do everything under the sun, but just learning the app is daunting. My first step was to find a YouTube video helping get the basics and I found an engaging teacher who also had a course for sale. I picked it up for $10 and it goes through everything from the basics to the advanced. Everything I needed.

From spending the money and watching a dedicated course I’m already farther ahead than I would have been going alone. The next time you want to learn a new skill look for the shortcuts and figure out how to take advantage of them.

An Easy Way To Save

It’s always hard to bring down your standard of living but you need to do that in order to save more money. If that doesn’t sound appealing the next time you get a raise take the extra money and put it all in your retirement account or an emergency fund that you can’t easily access.

Your standard of living will remain the same and you’ll automatically save more.

Set your Terminal to Red for Production

Making mistakes in production is one thing that always scares me. This problem multiplies if you use a lot of terminal tabs but a quick and easy solution is to make production red so it’s immediately noticeable where you are logged into.

For the image above I’m using Termius on iOS which supports this and allows you to set it on a folder level and then any ssh connections under the group inherits the color.

It’s a really simple way to help distinguish which connection you are logged into and can be a life saver. This can done in other terminals too, just do a web search to find instructions for your app of choice.

Triggered

A few times a month I’ll get emails that trigger me. The writer isn’t being totally rude, but just the way its worded screams of selfishness or little slights.

Every time my instant reaction is anger and I want to fire back to let them know how bad of a person they are. We all know how well that would end.

Instead I’ve been swallowing my reaction and responding in complete kindness. This works amazingly well and usually their tone changes instantly.