Song of the day: https://www.youtube.com/watch?v=RKlJXpjeYC8
I am currently in the process of playing with an extremely interesting AI system called Josh, and it got me thinking about machine learning and what its really about. Right now Josh is just a version of Siri from what I understand. When I ask Josh from the weather he responds like Siri, they both go to an internet source for Josh its Wunderground and they determine my current location and give the weather for San Francisco. Its a simple request, but it also feels mechanic, theres no way of hiding that Siri and Josh are unintelligent, but behind them is a group of highly intelligent humans who have written hundreds of lines of code to make these machines respond to human request. Right now I am giving Josh a rule that if I request a song lyric he will get it for me from a website, and soon I will make it so he could return me a place from Foursquare. So maybe if I ask for Chinese food he can find some for me.
But yet to the average users these AI systems seem strange and cold, they are still not quite human enough for our taste. They are not quite smart enough. Our current AI systems can only take requests, and return to us data from a database or the internet. If you ask an AI system like Siri "what is love?", she would probably return a definition that she has in her database or one that she finds online. If you ask her "why does Fred not like me? I have called him eight times today", she might come up blank or just search that sentences in google and bring up a yahoo answers about clinginess. Siri lacks the ability to have an emotional response or even a critical thinking response, and to program her ability to be able to talk to you about why Fred does not love you because your clingy would take years, and thats just one question.
I think right now we are doing brute force AI's, we are hard coding everything they do. But the real question is it possible to hard code feelings and emotional responses? Maybe. Maybe Siri could start to recognize voice patterns and see when you are sad, and know how to mimic those patterns so she can seem sad as well. Can we trick ourselves is the real question. As we begin to understand the brain we have in our skulls, that sends signals to process data, very similar to our machine counterparts, I believe we will eventually be able to create a true machine that can learn and adapt.
But what is our end game for Josh and Siri? Do we want mechanical slaves or do we want something we can be friends with? Can Siri ever be my friend in the way a human being can be my friend. In theory I could have a Siri that has all my data, all my online profiles, my physical health, she could recognize my voice and speech patterns, and with all this data could she be able to "understand me" and be my "friend". She could probably give me advice, console me, fake love, but is this what we want? Are humans only a series of predictable algorithms made complicated by a brain? Creating machine slaves is easy, thats only the first step. But creating machines that can react to our feelings, feelings they will never have, thats the next step into dangerous territory. Will we have AI systems like in the movie "Her" that are able to "love" us and only want to learn from us, or will we have the terminator, or are the movies all wrong and we will go down a completely different path.
Showing posts with label Projects. Show all posts
Showing posts with label Projects. Show all posts
Friday, May 1, 2015
Monday, March 30, 2015
My favorite Bugs
Every Software Developer comes across bugs, its just a fact of life. Sometimes they are in the code, sometimes they are actual live bugs inside your computer. Im looking at you, people who eat on top of their computers, especially the ones who eat chips. But right now were going to talk about our favorite bugs, more specifically my favorite bug. Every programmer has a favorite bug, its the one that you do not understand no matter how much you investigate, and theres no answers on stackoverflow. Over the course of the past month I have dealt with many mundane bugs, that are easy enough to solve and fix. Normally they are problems I have created myself due to typos and normal beginner programmer mistakes, but my all time favorite is my wonderful called "Magical Delete Bug", and the best part is he's still on the lose. Although I dont actually believe in this meme, I still find it hilarious because thats basically how I described the bug to my teammate, a "special feature".
So the original problem for me to solve was our web-socket needed to delete the users location when they logged out. A relatively simple JQuery click-event that is attached to our log out button, so I had the logout button assigned an id of logout, and called the click event in my swampdragon code.
The funny thing is this code likes to work randomly, for the first week it would work on my teammates computer but would not work on mine. Eventually I had other work to do and this problem was not pressing, annoying, but not my biggest problem. But eventually I pulled from my partners code and the delete button started working, the funny thing? The code on the appropriate pages never changed, they were identical, I went through their history with my pycharm. It was all very suspicious, I assumed it was something to with the way the pages were being loaded.
But then it got interesting, really interesting. For the sake of our presentation I needed us to stop deleting the users locations, so I commented out my code in the swampdragon ready function. And the code continued to function, as if it was never commented out. Now this was really annoying and for the sake of the presentation I just worked around it. But I already know that in coding things might not make sense as to why they are working/happening, but there is no magic. I already know that the reason the function was still working is because I did not restart the code, or at least its a good guess, and probably the closest I will get to the truth. Because now that I have returned to the code a few days later it has decided to stop working again.
A lot of developers would probably think its silly to find a bug amusing, but theres something special about knowing a problem exist and getting to enjoy the cat and mouse chase of solving it without any real path to the solution. Theres no Django yellow error page, or the cryptic angular errors, its just me and my broken bipolar code.
Id like to leave this post with an appropriate ending that I think currently describes how I feel about testing code.
This is basically our entire projects testing in a nut shell. I am actually looking forward to writing some good old test cases for our project, making my life easier. I might not be completely sold on TDD, but I can agree that tests do make my life easier, even if currently write them after I write the code. But I will eventually flip the tables.
Subscribe to:
Posts (Atom)




.jpg)