I ran into my first issue that caused me to stop and try to dissect what was happening. I’m not bad at math, but I’ve never studied calculus or something similar. I have taken algebra and trigonometry many years ago. I knew the math involved with machine learning would slow me down considerably. Especially since I am the type of person that likes to understand things on a deep level.
The equation was for Root Mean Square Error. I have been able to dissect it down to where I understand most of it. Here is what I know.
- m is the number of instances in the dataset. Here I am working with housing data.
- x(i) is a vector of all the feature values of the ith instance of the data set. So it works in conjunction with summation to iterate through each row of features in the data set.
- y(i) is the label for x(i).
- X is the matrix for all the feature values.
- h is a hypothesis function.
So the equation says: Take each instance in a data set, run the features through the hypothesis function, subtract the labels, and square the result. Sum all the results and return. At least that’s what I think it says.
Just so know, what this equation does is determine how much error the prediction would have.
Here is what I don’t know. I don’t know what 1 over m is there for. I also don’t know if I need to understand this to proceed. I’m pretty sure scikit learn will do this for me. But it’s good to try to understand these things so I know what to use and when.Continue Reading Attempting to Read Equations in Machine Learning →
Since RockstarNinja has an AI element to it, I’ve decided to really dig into parts of AI. Primarily machine learning. I’ve dabbled a bit and I do understand the basics, but I decided to dig a little deeper.
I know that video courses are really popular, but I still feel that if you really want to learn something, you just can’t go wrong with an in depth book. I decided on Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. So far, it seems really good. Through the first chapter, I’ve learned a few things even though it’s just a general overview of machine learning.
Looking forward to sharing what I learn as I work my way through.Continue Reading Digging into Machine Learning →
One of the most frustrating things in building apps are things you can’t control, like an external API, breaking your app. A broken production app is the worst. A dependency you can’t control breaking and then causing havoc for customers is clearly worse than a developer pulling his hair out because something isn’t working the way it should. But a broken dependency in development feels like the equivalent of slow internet versus no internet.
I would rather the whole things be broken than have the feature all set except for an external dependency that isn’t working.
I guess the fix is to make sure there is always a fall back option you control for development.Continue Reading Broken Dependencies →
Nearing completion of the wireframe portion of RockstarNinja and reflecting back about how important this phase is, I thought I should the wireframe for the candidate page.
Note: The avatar and user name were randomly generated with Sketch
Continue Reading RockstarNinja in Progress Wireframe →
But more importantly, I don’t think they meet the users needs nearly as often as we think they do. I’ve been in more than one client meeting where the developers try to sell benefits that clients/users don’t care about. Things like:
Developer: Look! Notice how the page didn’t reload?
Client: Uh, yea. That’s cool.
Most likely, the client only cares about the task at hand. The truth is it’s the developers that care about the tooling or of pages reload.
Jim Newery has done a superb job describing patterns that single page apps follow that lead to being dysfunctional.
So many quotes I could pull from the article. But my favorite is this.
Mistake 4: Use naïve dev practices Under-investing in front end skills has knock-on effects.
Poor development practices reinforce each other:
- Poor or no test coverage, results in…
- Highly-coupled code, that encourages…
- Over-engineered solutions, that leads to…
- Big monolithic balls of mud, that forces us to deliver…
- Giant monolithic asset bundles
Each of those is spot on and directly leads to the next. Almost all single page apps I have worked on lack tests and lead to hard to maintain code because of how interconnected it is. I’m at fault too. I never take the time to think about the front end architecture like I do the backend.Continue Reading Dysfunctional Single Page Apps →
One of the things I enjoy the most about working on software development teams is the mentoring part. I really do enjoy sharing knowledge and teaching what I know to other developers as they grow in their craft.
With a surplus of new developers from bootcamps, online courses, traditional universities, and other paths to software development; mentoring will be important. Maybe the most important.
Of course, in order for the mentorship to work well, it has to be the right person.
Finding the right person is tricky. Do you hire based on skill? What about character? No one wants to work with a jerk. Maybe it’s a combination of both?Continue Reading Rockstar Ninja →
I started getting into fitness about three years ago. And by getting into fitness, I just mean doing something. Anything. It started with running. The first time nearly killed me. Then I migrated to cardio at a gym. Then cardio at a gym with some strength training with cable-based machines. Then cardio and weight training. Then I ended up where I am now. Weight training following a plan with some cardio.
If I could bundle what I’ve learned from trial and error, and reading, into some tips, it would be this.
Just start. Seems obvious. But even walking is better than doing nothing. Fear is big. But it goes away.
Cardio is for health. It doesn’t do a lot for weight loss. It can, but it will require way more work. If your plan, like mine was, is to lose weight, there are more efficient methods.
Follow a weight lifting plan. Strength and resistance training are proven to be the best for weight loss. As your muscles recover, they are hungry, and they use fat to regenerate. So lifting weights in the morning will burn fat and use calories all day. Where as running only burns calories while you’re running. Just randomly lifting weights seems like a good plan. It’s not. Let someone who knows what they are doing tell you what to do, and how much. There are tons of inexpensive weight lifting plans online.
That reminds me. Losing belly fat is a myth. You cannot target a body area to lose fat. Your body loses fat from wherever it can. Bad news. Belly fat (for men) is visceral fat, and it’s the hardest to lose.
No one at the gym cares about what you are doing. This was a big mental hurdle for me. But look around. They are all looking in the mirror. Everyone at the gym cares about themselves. Do your thing and know no one is watching what you are doing.
I have found that at the end of the day closing all open apps on my computer is a great to signal that I am done for the day. It’s easy enough. Alfred has a command for Quit All Apps. Launching that shuts everything down.
The problem is that it will leave any local web servers for Rails apps in a weird state where starting a new Rails server the next day will error out because one is already running on that port.
In the past I have a done a couple of things. Using Activity Monitor to find and kill all Ruby processes works. So does using
grepto find Ruby processes and kill them one by one. But recently I’ve found the best yet.
Continue Reading Using pkill to Kill All Ruby Processes →
pkill rubywill kill them all with one command. Super useful and a great time saver.
I have been spending some free time hacking on a little Markdown library in Ruby. It’s a fun project. I hadn’t built a Markdown library before, and it’s good practice to work on something that isn’t necessarily work, but for fun and learning. It’s a great way to play around and not worry about how long it takes, or how fast it is. One last point. It’s a great way to play with new things without worrying about budgets or breaking anything.
It’s in a pretty ugly state. The class is calledContinue Reading How to Parse URLs in Markdown →
Renderand the main method is also called
render. I’ll change that later. As I’m writing tests, the word render kept coming to mind, so I went with it.
I don’t work on Fridays. Well, mostly. I may do a little work in the morning. An hour or two. But typically, I take Fridays off.
I’m working a contract right now that allows me to have my agreed upon hours in by the end of the day Thursday.
This has turned into a day for my wife and I. It started as just me sitting around watching Netflix. Like your typical fat lazy slob. But the last few weeks, Linda has had some stuff for us to do.
I now look forward to these days. Family has always been super important to me, and when software developers are always on and seem to be always working, this is a great way to spend some family time and disconnect.
Super grateful. Four day work weeks are the best.Continue Reading No Work Fridays →
If you enjoyed reading this and would like to know when the next article is posted, please enter your name and email address below. Nothing spammy. Ever. And you can unsubscribe at any time. Thank you in advance!