Layman Explanation of Artificial Neural Networks

For a more technical explanation on neural networks, refer to one of my older posts.

With the explosion of AI across all industries, Deep Learning has been responsible for many of the major breakthroughs.  But for people in non-tech, what exactly is Deep Learning?

Deep Learning is a series of machine learning models based on artificial neural networks.

Okay, we just described what is Deep Learning.  However, the definition doesn't define what exactly is an artificial neural network (ANN).

Read more


What I Learned from the O'Reilly AI Conference Keynotes

Earlier this week, I attended the O'Reilly AI Conference up in San Jose, CA.  Wednesday and Thursday started off with keynotes showcasing what companies were currently researching in the field of AI.  While I'm no expert in the field, I found four key takeaways from the keynotes.

Read more


Bejeweled 1 AI (Part 3): Creating a Smarter AI

In part 1, I used OpenCV and Python to load our game and get to the board data.  In part 2, I built the basic mechanics for our AI to make moves.

In this post, I'll be going over more advanced mechanisms used to allow our AI to make better moves.

Read more


Bejeweled 1 AI (Part 2): Enabling AI to Make Moves

In my previous post, I was able to get our code to get past the loading screen and get the board information.  However, a program that can only grab the board without acting on the information does no good.  In this post, we'll be adding the basic mechanisms for our AI to act on the board information.  Please note that more intelligent behavior won't be added in this post.

Read more


Bejeweled 1 AI (Part 1): Getting Board Information With OpenCV

When I was a kid, I loved to play the original Bejeweled (Diamond Mine).  While the game is much simpler than the later releases, I found the music to be the best.  Since I just installed Windows 10 on my MacBook, why not try to create an AI playing bot for Bejeweled 1.

Read more


Rundown on Machine Learning Services in AWS

With machine learning and AI being very popular and hyped, it's not surprising that cloud providers such as Azure, Google Cloud, and AWS offer services for doing machine learning.  These services often don't require the user to delve into mathematically complex topics such as convolutional neural networks and back propagation.

Currently, I'm doing training on AWS for the Associate Developer Certification as part of company training.  While the likelihood of hitting machine learning services on the exam is low, I find it to be a good idea to cover an overview in general.  I won't go over every services, but hopefully you would be able to distinguish the major ones.

Read more


An Introduction to Chatbots

With the rise of Siri, Google Home, Alexa, and Cortana, it's obvious that there's a demand for chatbots.  In the past, chatbots were more of a niche technology due to limited functionality.  With recent advancements in computer technology, chatbots have now become practical for everyday use.

Read more


A Follow-Up on AutoWeber: The Mistakes I Made In Design

In my previous post, I talked about a proof of concept on developing a self-adapting web scraper.  As I was adding onto the project, I was having difficulty adding constraints for improving structure accuracy.  After some time, I came to one conclusion: My Initial Design Was Flawed!

Read more


A Proof of Concept on a Self-Adapting Web Scraper

Last year, I created the IssueHunt-Statistics website project on tracking repository, issues, and funding for open source projects.  Shortly after, however, the website changed and my project breaks down.  I did change the scraping code to bring back functionality, only for it to break down again a little while later.

I now have a problem.  I don't want to always spend time constantly reworking the scraping code to make it functional.  I wonder if I could automate this task?

Read more


Project: IssueHunt Statistics

To keep up with advances with technology, one activity that software engineers often do is contribute to Open Source.  I'll be restricting this to only contributing to other existing projects, not your own projects.

However, there are some obstacles when contributing:

  • Since many tools used in the community are Open Source, there are very strict standards that must be followed.  Thus, the process of contributing for existing projects can be quite a headache.
  • If a project is small and the owner isn't active on a regular basis, it can be hard for your work to be merged into the project.
  • Some project communities can be toxic.  The Linux kernel community has experienced a lot of toxicity from Linus Torvalds, the Linux founder.
  • Many professional software engineers have non-competing agreements that forbid them from programming in their free times.  Those that don't have other commitments.
  • If you're not getting paid to contribute during working hours, why bother?

Some would see not contributing to Open Source as selfish.  After all, you get to use free tools and you should be grateful.  I honestly don't like this line of thinking.  Not everyone wants to spend their entire time programming.  Some projects have contributing policies that are a hassle to deal with.  Some would like to do a side hustle and earn extra money.

Fortunately, there a couple websites that focus on earning money while contributing to Open Source.  I ran across a few different sites:

  • IssueHunt - I noticed that this site mainly focuses on web projects.  If you want to contribute, I recommend having a background with Javascript and Typescript.
  • BountySource - Has a much more active user base with more variety.
  • Gitcoin - The tasks on this site focuses more on Blockchain.  You can be rewarded with Ethereum as well as cash.

For this post, I'll be mainly focusing on IssueHunt.

Read more