• Ruby Reference

    This is a really cool reference for Ruby. I really like how they made the Language Structure more accessible. That type of stuff is sort of hard to find on the Ruby Language site.

  • Free Github Repos

    Today Github announced free private repositories for all accounts. This seems like good news on the surface. And I generally agree that free private repositories for up to three collaborators is a good plan. Good for students, small projects, prototypes, etc…

    What I fear is that we just became the product, and that Microsoft did this in attempt to grow as large as it possibly can. Imagine what a company that makes software and services could do with the largest collection of developers on the planet. I hope that’s pessimistic and only good things come from this.

    Update: Some good reasoning/comments on the HN thread

  • Rewatching Game of Thrones

    Now that it’s 2019 and the final episodes of Game of Thrones are coming, I decided to go back and catch up. Two years is a long time to remember everything that happened.

    Not the entire series. Just the most recent episodes of season 7.

    The main question still remains. Is that dragon breathing ice or blue fire? I say ice.

  • A More Balanced Internet

    The problem with the news that IE is going to a Chromium browser is that the things that Google is doing, or trying to do (require SSL on all sites, favor AMP) gets worse. When they own market share, or even worse almost total dominance, nothing stops them from attempting even more of these types of things.

    This is the main reason why choice is a good thing. I like Firefox and I think I’m going back to that to help support a more balanced internet.

  • Building a Color Palette

    Steve Schoger has a book coming out called Refactoring UI and it looks like it’s going to be awesome. He just released a teaser for building a color palette. I’ve read quite a bit about color palettes, and while I’m not a designer, I have taken some design courses and I did win 2nd place in design competition for a Led Zeppelin collage (humble brag).

    Also, if you are interested in UI design and have not seem the Refactoring UI videos , stop everything and go watch them.

  • Attempting to Read Equations in Machine Learning

    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.

    All of that is from Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

    RMSE Equation

    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.

  • Digging into 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.

  • Broken Dependencies

    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.

  • RockstarNinja in Progress Wireframe

    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

    "RockstarNinja Wireframe

  • Dysfunctional Single Page Apps

    I have been a vocal critic of modern single page apps. I feel like they are often (not always) over engineered, and because JavaScript frameworks change so fast, they are really hard to maintain.

    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.

    The relative ease with which we can create working software with JavaScript frameworks is alluring. But naïve development practices can threaten the long-term maintainability and quality of products.

    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.

    Source: Create your own dysfunctional single-page app in five easy steps