<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3411070614218305231</id><updated>2012-02-16T18:50:49.552-05:00</updated><category term='ruby'/><category term='web'/><category term='perl'/><category term='robot'/><category term='competition'/><category term='new'/><category term='hosting'/><category term='algorithms'/><category term='evolutionary'/><category term='neural'/><category term='site'/><category term='quantum'/><category term='scissors'/><category term='stick'/><category term='green'/><category term='intelligence'/><category term='choose'/><category term='year'/><category term='AI'/><category term='python'/><category term='our'/><category term='physics'/><category term='A2'/><category term='jgap'/><category term='balance'/><category term='paper'/><category term='vs'/><category term='genetic'/><category term='java'/><category term='rock'/><category term='robotics'/><category term='programming'/><category term='rps'/><category term='tournament'/><category term='language'/><category term='first'/><category term='website'/><category term='blog'/><category term='lift'/><category term='computers'/><category term='artificial'/><category term='c'/><category term='PHP'/><category term='spare'/><category term='bmbsquared.com'/><category term='coding'/><category term='HTM'/><category term='network'/><category term='computing'/><title type='text'>B Squared</title><subtitle type='html'>A blog about science, technology, and anything else I find to be interesting.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-8448116734728840976</id><published>2010-05-18T16:21:00.001-04:00</published><updated>2010-05-18T16:50:33.334-04:00</updated><title type='text'>Facebook and Other Social Netwokring on Communication Skills</title><content type='html'>&amp;nbsp;&amp;nbsp; &amp;nbsp; As technology has continued to improve at an exponential rate, the internet has become a tool that no one can go without. Much of this increase in time spent online can be accounted to social networking sites such as MySpace and Facebook. These sites have become so trafficked that they have had a profound impact on the communication skills of our nation's youth. Teens who use these websites extensively lose their ability to communicate at the same level as teens of past generations.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; It was only four years ago that Facebook finally decided to completely open its doors to everyone who was in, or has passed, high school, where previously there had been a more strict age requirement. With this change, the status symbol of pre-teens graduating from middle school and entering high school became their Facebook accounts. After four short years, of completely opening up their system, Facebook has become the most visited website, falling short only of Google. After "an increase of a whopping 82% over [the last year]," (Scott) Facebook users in the US now log over 1 billion hours on the site per year. Such a dramatic increase is not solely a product of kids taking time away from homework, the use of Facebook has branched out to now interfere with time that could be spent in face to face communication.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Many proponents of the online social networking websites would suggest that because of the increased time spent on these websites, and subsequently the increased amount of communication, the community has overall improved its skills and quality of communication. Referencing the line "practice makes perfect," they state that their increased communication has given them more time to develop their skills and are therefore better at communication. This is a blatantly incorrect analysis. Though the quote used is a perfect analogy to the situation at hand, the group of extensive users is in no way increasing their communication skills. The quality of conversation of these websites is so diminished that the extended amount of time spent is in fact retracting from the skills of these kids. This is parallel to a soccer play sitting on a park bench, kicking a ball between his feet. Sure he is practicing soccer, in the sense that he is moving the ball with his feet. However, no sensible person would argue that he is better off continuing his current drill, rather than playing in a game to improve his skills.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; This past argument is agreed upon by everyone. The confrontation really lies in the use of "diminished" in the past statement. Is the communication going on online really of a lesser quality and necessitating a lesser skill set then offline communication? This is what is at the heart of the debate.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; In defining communication, there are a few factors that need consideration. First, one needs to analyze body language. How a person carries themselves during conversation. Second is the use of correct grammar and proper diction. Whether or not the speaker chooses words that correctly exemplify the meaning they want to get across, and whether or not grammatical rules are followed. The third factor going into communication is the speed of the conversation. When in a discussion or talk, participants only have at most one second to respond to what was previously said with a well thought out response. The final facet of good communication, and arguably one of the most difficult parts to master, is the ability to carry a conversation, and to cultivate meaningful topics of discussion. These are the elements that go into determining the quality of communication.  As teenagers spend more of their time behind the computer screen instead of face to face with their peers, all of these skills will be negatively impacted.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; When talking in person, all participants must show proper body language. This includes looking others in the eyes, sitting up straight, not getting distracted, and maintaining positive and engaged facial expressions. These are the types of things that parents reprimand children for when they are younger, and it is during teenage years, that these skills are solidified. This is a clear cut example of how Facebook negatively affects these teenagers. Facebook's wall posts, and IM client do not require any sort of visual interaction between any of the participants. This gives all participants free reign to look and act however they please, and to never practice any of the proper body language techniques. As a result, kids now are much less adept at conversation mannerisms which to parents who were taught these mannerisms as children, see it as a sign of disrespect rather than a lack of knowledge on the part of the teens. This has caused a social gap to appear between those who have had access to these new technologies as teenagers, and those who have not.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; People who disagree with this analysis of the situation at hand argue that although it is true that teens are less adept at face to face conversational mannerisms, it no longer matters. As life is driven into the twentieth century, the new explosion of technology and 24/7 connectivity to the rest of the world has given everyone more time to communicate behind the screen of their respective technological devices than would be possible with solely in person interaction. Now that we have removed the necessity for face to face interactions, there is no reason why body language should remain an intrinsic value in our society.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Although it is true that these devices have removed most of the necessity for in person interactions, this is no reason to completely disregard them, and to subsequently ignore body language in these types of meetings. Humans need social interactions to survive, and many will go insane without it. A completely online lifestyle does not fulfill this need of human interaction for most people. Another point to the contrary of the opposing sides statement is that there is still a great deal of face to face interactions that go on daily, that currently could not be replaced with technological devices. Therefore we cannot replace or disregard the value of body language in our culture.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; A seemingly less pressing issue than the previous example, diction and grammar have always been a shortcoming of the teenage population. However, there is still an undoubted decrease in correct word choice and language usage. Most people type less than half as fast as they can talk, and now that many teens do the bulk of their communication online, one would ponder how they make up for all of the lost speed of conversation. Kids of this generation have attempted to make up for this lost time by cutting corners in the grammatical correctness of their conversations. They have utilized newer, more creative ways of shortening words, phrases, and sentences. With the ever-growing dictionary of abbreviations, the teenage population is slowly degrading communication all throughout America. Not only is has the teenage community ostracized itself by coming up with such slang, but still within the general teenage population, there are more condensed groups and cliques that use and even more specific set of lingo dedicated to their group. This is yet another case where "practice makes perfect" comes into play, but here, sadly, the result is anything but perfect. These teens who's original intent was to shorten the amount of typing necessary, as to encourage speedier online conversations, ended up using their own terminology so much that it has become engrained in their brains and now comes out repeatedly in face to face conversations. It is this usage in daily in person discussions that proves the negative effect Facebook and other such websites have on grammar and diction.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; On the opposite side of the argument is the idea that this radical change in diction and grammar should not be looked upon as a disrespect for the English language, but rather, as a step in the evolution of our language into a newer form of communication. These people make claims that it is to the likeness of looking back on dialogues from the 1600s and seeing how much communication has changed today. Language has always evolved, it is a part of the natural way of life, and those for this argument agree that this is only another small step towards yet another drastic change in modern language.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; I will concede that you can relate this change in modern day language to that of the change from Shakespearean times English to the present day language. However, there exists a large difference in these otherwise parallel comparisons. The vast changes from the 1600s took place over a span of four hundred years, while this current language revolution has come upon us in less than two decades! Evolution, whether it be of language or of living organisms, has been shown to take place over vast periods of time, greater than any humans lifespan. So the claims made about this change in language being another step in evolution are purely fallacy. These changes in teenage communication are no more the product of language evolution then they are of nuclear radiation to the brains of teens.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; In an interview with Mark Wang, during his dissection of online social networking's effects on present day communication skills in teenagers, he stated that these websites were causing a great "lack of face to face conversation" which was giving these teens and unfair disadvantage against those in previous generations. He specifically cited that this lack of real world communication led to an "unrealistic amount of time to think for a conversation." This is a very valid observation. Online, it is not expected that teenagers reply in a conversation very fast. Many will take great deals of time, crafting their responses ever so carefully, to send just the meaning they want. This buffer time, available to revise and edit all of your dialogs before they are sent, is not available in face to face conversations. Once you say a word, you cannot magically erase it from being heard.  And likewise, you don't have this open ended amount of time to think of the best way to phrase something. This intense change from online to offline communication has slowly worn away at teenagers ability to respond in a timely manner in real life conversations. Instead, taking more of their time to think of a fairly simple response that should have been recited on impulse.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Opponents to this idea will argue that this is not a valid point because conversations online are of a completely different nature than those that go on offline. Conversations online largely revolve around gossip and other such topics, while offline there are much more in depth conversations.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; This alone is a separate topic of discussion, however, this claim is still false. Habits are formed by repetitive actions, and it is undeniable that these teenagers are repeatedly taking their time to respond to their friends and families electronic messages. Whether or not the type of communication is different, the brain is associating conversations with this atypically large amount of time in which it has to think of an answer. It is this that carries over into face to face conversations. Another flaw in their counter-argument is that if offline conversations were mostly more in depth, and online conversations were just about gossip, then it theoretically would be easier to be involved in a conversation online than offline. Therefore teens should not have a problem with keeping up with offline conversations, however, this is not true.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; On the separate issue of what is being conversed about, there is the question of what the vast majority of conversations online revolve around, and whether or not that has impacted teenager's ability to come up with meaningful topics conversations. Most of online communication that goes through social networking websites such as Facebook and MySpace can be generalized to forms of gossip. Just the spreading of information about who did what in school today, and other such topics. This in the writing community as well as in conversation, is not looked upon as meaningful topics of conversation. Topics that are given merit in conversation and writing are new advancements in technology, world politics, and other more cultured areas of discussion. Now that teens are spending such a great deal of time online, there are getting less and less exposure to these meaningful topics of discussion. Which translates to an inability to continue a conversation when talking about non-gossip in real life situations. Teenagers are finding it progressively more difficult to have full out conversations with peers and adults alike, that do not touch on gossip.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; A completely separate facet to this entire debate then the act of communication itself, is the idea that multitasking is encouraged by social networking websites and has a proven negative effect on one's ability to perform seemingly simple tasks at the same level of quality as if they had not been multitasking. Facebook has one of the most highly used internet messaging systems in the world. Whenever you are signed on to Facebook, you can immediately see which of your friends are online, and which are not. Those that are online, you can chat to in real time. This chat system differs from real life by allowing you to open up as many conversations as you want to concurrently. And you can do all of this while still browsing the rest of Facebook. The ability to run all of these tasks at once from one website has led to intense multitasking in the everyday lives of teenagers. The idea that multitasking is not good for your ability to accomplish tasks is not a revolutionary concept, it has been around for decades, however, this new online revolution is pushing the envelope to never before seen limits. Kids are now trying to focus on three conversations, looking at pictures of their friends, watching TV, and all while trying to complete their homework assignments. These new levels of multitasking encouraged by these online social platforms has had detrimental effects to teenagers ability to efficiently focus on one task, and to complete any task with as high a quality job as if they had not been prone to multitasking.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Those on the opposing side of this argument do concede that multitasking is encouraged by these social platforms, and that multitasking has proven detriments to it. However, they argue that these deficits are vastly covered by the platforms ability to connect you with people whom you wouldn't have ever been able to connect with before. This added layer of connect-ability has essentially re-written the six degrees of separation rule. Now everyone, in fact, is one Google, Facebook, or Twitter search away from any other person in the world. This new and unusual ability to be connected to any person in the world is a more than worthy trade off for increased multitasking, and secondarily, lowered performance on everyday activities.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; This is a incorrect evaluation of the capabilities that online social networks have provided. Worldwide connect ability and multitasking do not necessarily depend on each other, nor are they mutually exclusive. They can both exist in their more useful state at the same time, which would be the best case scenario. Giving people the ability to connect with anyone on Earth at just the click of a button, while not distracting people and making it harder to perform quality work because of the burdens of multitasking.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; The positives of online social networking are indisputable. It provides a tool for massive social interaction between many people that you would otherwise not know of or be friendly with. It plays host to some of the most helpful collaboration and planning tools available. It also is great of its organization and data storage. However, with its positives, come many negative repercussions in the way of reduced communication abilities. People using online social networking lose some of their good body language, proper diction and grammar, ability to respond in a timely manner, and some of their ability to come up with meaningful topics of conversation. Teens who use these websites extensively lose their ability to communicate at the same level as teens of past generations.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Citations:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Scott, Greg. "Survey Says: Global Time Spent on Social Media Surges." Web log post. Drop Ship Access. 25 Mar. 2010. Web. 5 Apr. 2010. &lt;http://blog.dropshipaccess.com&gt;.&lt;/http://blog.dropshipaccess.com&gt;&lt;/li&gt;&lt;li&gt;Wang, Mark. "Social Networking Impact." E-mail interview. 7 May 2010.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-8448116734728840976?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/8448116734728840976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/05/facebook-and-other-social-netwokring-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/8448116734728840976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/8448116734728840976'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/05/facebook-and-other-social-netwokring-on.html' title='Facebook and Other Social Netwokring on Communication Skills'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-7248472661548228268</id><published>2010-05-08T02:58:00.001-04:00</published><updated>2010-05-08T03:01:29.178-04:00</updated><title type='text'>Google Code Jam</title><content type='html'>&lt;a href="http://code.google.com/codejam"&gt;Google Code Jam&lt;/a&gt; is upon us, the Qualification Round has begun, with roughly 16 hours left to complete at least one of the three questions completely. &amp;nbsp;There are at least 4000 contestants who have made it passed the qualification round so far. &amp;nbsp;I'd predict there to be between 6000-8000 people who make it through the&amp;nbsp;qualification&amp;nbsp;round by the end of the 24 hours. &lt;br /&gt;&lt;br /&gt;The three questions this year are of varying degrees of difficulty. &lt;br /&gt;&lt;br /&gt;The first, "Snapper Chain" deals with trying to figure out if a certain light will be turned ON after a certain number of snaps (working just like a clapper), the catch is that there can be an infinitely long chain of these snappers, so the 2nd one would only turn ON, if the first one is already supplying it power. &amp;nbsp;Many people can see pretty quickly that this breaks down&amp;nbsp;mathematically&amp;nbsp;to a very simple power of two equation.&lt;br /&gt;&lt;br /&gt;The second question "Fair Warning" is, in my opinion, the hardest of all three questions posed. &amp;nbsp;For this you, you are given a certain number of events that occured in the past, and the number of seconds ago that they&amp;nbsp;occurred. &amp;nbsp;The task is to find &amp;nbsp;a singularity point for all of these events at the current time or at X seconds in the future. &amp;nbsp;The singularity is the point in time where all the events time in the past is&amp;nbsp;factor able&amp;nbsp;by the constant T. &amp;nbsp; The catch is that you want to find X based on the maximum value of T. &lt;br /&gt;As this is the hardest and took me a few minutes to conceptualize, let me offer a tip on how to think about this problem and where to get started. &lt;br /&gt;Lets say I give you two numbers &amp;nbsp; 100 and 200. &amp;nbsp; If I asked you if 150 could possibly be a factor of both of those numbers you would say no. &amp;nbsp;The reason you would know that is because the &lt;u&gt;difference&lt;/u&gt;&amp;nbsp;between those two numbers is less than the factor I gave you...&lt;br /&gt;This is the only hint I will give. &amp;nbsp;I'd give too much of the answer away if I say more.&lt;br /&gt;&lt;br /&gt;The third question "Theme Park" is easy for the small set, but tricky for the larger one. &amp;nbsp;I actually messed up on the larger one because I couldn't finish altering my code in the 8 minute time segment you have to submit the large answer set. &amp;nbsp; This problem deals with roller coasters. &amp;nbsp;You are given the capacity of a roller coaster, and the number of times it will run in a day. &amp;nbsp;You are also given groups of people who are together in line (i.e. [5 6 2 3 1]). &amp;nbsp;Each person pays $1 for every ride, and people get back in line as soon as they get off the coaster. &amp;nbsp;You have to figure out the coasters revenue for the day. &amp;nbsp;The&amp;nbsp;caveat is&amp;nbsp;that groups wont split up (they stick together like good friends =) &amp;nbsp;There are a few other tricks you'll have to figure out yourself.&lt;br /&gt;Where I went wrong on the large set, is not building in checks for the data. &amp;nbsp;Google gives you completely valid data sets, but they don't just follow the general template like the small set does. &amp;nbsp;I can't tell more, otherwise I will again give away more than I should, but just think of how they could mess with you and your data.&lt;br /&gt;&lt;br /&gt;Good Luck to All Competitors,&lt;br /&gt;See You In Round One!&lt;br /&gt;&amp;nbsp;- bsquared&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-7248472661548228268?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/7248472661548228268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/05/google-code-jam.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7248472661548228268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7248472661548228268'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/05/google-code-jam.html' title='Google Code Jam'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-2847748653405346403</id><published>2010-04-24T11:34:00.000-04:00</published><updated>2010-04-24T11:34:54.882-04:00</updated><title type='text'>Javascript/PHP Library</title><content type='html'>After coding a few websites, I have learned jQuery is amazing, and that PHP rules. &amp;nbsp;But have also not been able to find any librarys that&amp;nbsp;inherently&amp;nbsp;integrate both JavaScript and PHP, or any that just provide simple functionality that is common on websites. &lt;br /&gt;&lt;br /&gt;Personally, I don't care that much about all the other fun stuff that jQuery does, such as all of the awesome selectors,&amp;nbsp;animations, and everything else. But what I am in love with is the .post(), method, which makes things so simple. &amp;nbsp;What I do care about is AJAXing everything... the login, commenting form, rating systems... anything that can be AJAX should be IMO. &lt;br /&gt;&lt;br /&gt;Another&amp;nbsp;JavaScript&amp;nbsp;plugin I love to use is Google Analytics. &amp;nbsp;They track everything for you, and yes, I do mean everything... &amp;nbsp;If it can be recorded using&amp;nbsp;JavaScript,&amp;nbsp;Google&amp;nbsp;saves it for you. &amp;nbsp; But the problem with this library, as well as jQuery and all the other libraries is that they take TIME, which is sooo important in web development. &amp;nbsp;Not only do they take time because of their huge footprints, but they also take time because of all the DNS queries, jQuery hosted somewhere (hopefully on your server), Analytics on Google's server... all of these take time to load, and it adds up. &lt;br /&gt;&lt;br /&gt;As evident in the writing above, I think that there needs to be a&amp;nbsp;JavaScript&amp;nbsp;library that focuses mainly on load time for the website, and also has great tools to help developers do simple tasks such as user authentication and event logging. &amp;nbsp;I'm not gonna just sit here and say what this library should have and pass it off to another developer, so I am&amp;nbsp;announcing&amp;nbsp;here the launch of my&amp;nbsp;JavaScript/PHP&amp;nbsp;library currently entitled "vi". &amp;nbsp;This should be in an beta release in about a month hopefully. &amp;nbsp;Keep in mind that this will be written in PHP and JavaScript to optimize load times and such. &lt;br /&gt;&lt;br /&gt;Another focus of this library will be to make it as customizable as possible, and also to make it easy to extend with plugins. I have had horrible times trying integrate forum software into an existing user authentication system, and editing its code to change the features for the specified use of that forum. &amp;nbsp; So one of the initial plugins that I will write will be a extremely easy customizable forum that will integrate with what you already have in place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-2847748653405346403?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/2847748653405346403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/javascriptphp-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/2847748653405346403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/2847748653405346403'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/javascriptphp-library.html' title='Javascript/PHP Library'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-5815642761556047258</id><published>2010-04-19T00:59:00.003-04:00</published><updated>2010-04-19T01:03:00.115-04:00</updated><title type='text'>I May Just Be Kuler Then You</title><content type='html'>I say so because I just learned about an awesome website that is an awesome tool for designers (such as myself). &amp;nbsp;Kuler is a service run by Adobe where users can upload color swatches in groups of 5 that they think work well together. &amp;nbsp;Then, people can go online to &lt;a href="http://kuler.adobe.com/"&gt;Kuler&lt;/a&gt;&amp;nbsp;take a look at the most popular, and highest rated color combinations. &amp;nbsp;Earlier today I went online to look for a color group for a website I was designing. &amp;nbsp;The site deals with the Green movement, so I was looking for earthy colors that I could use. &amp;nbsp;I looked around and one of the most popular ones was called "Park Avenue Shift" &amp;nbsp;I took a screenshot, opened up GIMP loaded the 5 colors into the saved color spots in the color picker, and went to work. &amp;nbsp;After 5 or so hours I came up with a nice looking design. &amp;nbsp;After looking at the design, I think I may need to change the colors up a bit, but that will be as easy as going back to Kuler and looking for another green-centric swatch. &amp;nbsp; &lt;br /&gt;&lt;br /&gt;Hopefully you find good use out of this website, and if you find a particularly good looking color combo, go ahead and upload it for the good of other designers!&lt;br /&gt;&lt;br /&gt;For those who want to see the rough design, here it is: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ezyiIz-ElxA/S8vjVsnPOKI/AAAAAAAAAxM/IEHrfq_wOH0/s1600/SOG.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_ezyiIz-ElxA/S8vjVsnPOKI/AAAAAAAAAxM/IEHrfq_wOH0/s400/SOG.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Click to enlarge)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;I still have to play around and find a font that I like, and have to make the logo look better. &amp;nbsp;Lemme know what you think if you have comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-5815642761556047258?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/5815642761556047258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/i-may-just-be-kuler-then-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/5815642761556047258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/5815642761556047258'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/i-may-just-be-kuler-then-you.html' title='I May Just Be Kuler Then You'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ezyiIz-ElxA/S8vjVsnPOKI/AAAAAAAAAxM/IEHrfq_wOH0/s72-c/SOG.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-1741647545879181107</id><published>2010-04-16T21:27:00.000-04:00</published><updated>2010-04-16T21:27:46.177-04:00</updated><title type='text'>A Bit About SSH</title><content type='html'>So yesterday I made a very detailed post about using SSH to get around networks and use torrents anywhere you want. &amp;nbsp; I thought about it more last night, and realized I should elaborate a bit more on WHY it works. &amp;nbsp;Basically, when you torrent stuff, you connect to a tracker, just a regular website, and say 'Hey, I wanna download THIS file, who has it?' and the tracker says 'Here is the list of everyone who does, and everyone who has some of it' (aka seed/peer counts). &amp;nbsp; Then your torrent client does some stuff to pick out the best seeds for you, and connects to them. &amp;nbsp;Then you start to download the file. &lt;br /&gt;&lt;br /&gt;When IT people look at their traffic, they will suddenly see some traffic popping up on some random port, 61324 lets say. &amp;nbsp;They can then look at the stream of data, and they can see very easily that you're downloading music or movies or games. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;What we do to fix this is run all of our traffic through SSH. &amp;nbsp;You might be wondering why they can look at the torrent traffic, but not the SSH traffic... good question. &amp;nbsp;The answer is that all SSH communication is encrypted. &amp;nbsp;Yes the IT people &lt;u&gt;could&lt;/u&gt;&amp;nbsp;unencrypt&amp;nbsp;it with a lot of work, but they wont. &amp;nbsp;I will personally&amp;nbsp;guarantee&amp;nbsp;this. SSH traffic is usually expected to be used for remote systems or any other application where you want data to be encrypted. &lt;br /&gt;&lt;br /&gt;You may have realized this by now, but SSH is just a tunnel that the IT people can't look into. &amp;nbsp;It has nothing special to do with torrents. &amp;nbsp;So you can apply the same settings explained in my last post to ANY application that supports a Socks4 or Socks5 proxy. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;If you have any more specific questions about SSH, Google first, then ask me in the comments if Google fails. haha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-1741647545879181107?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/1741647545879181107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/bit-about-ssh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/1741647545879181107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/1741647545879181107'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/bit-about-ssh.html' title='A Bit About SSH'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-7858957321312355966</id><published>2010-04-16T00:54:00.000-04:00</published><updated>2010-04-16T00:54:51.711-04:00</updated><title type='text'>Torrent Without Being Caught</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Alright, so there are a few things to discuss here. &amp;nbsp;First, you have to know &amp;nbsp;what torrents are. &amp;nbsp;If not, use Google! &amp;nbsp;Now that thats out of the way, lets get into the topic.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Motivations:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So why would we want to hide our torrent traffic?? &amp;nbsp;Well there are a few reasons.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nosey ISPs&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nosey School Networks&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nosey Bosses&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You can see where this trend is going. &amp;nbsp;So basically we are going to be able to circumvent these problems.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;For people who don't quite understand, 99% of all torrent traffic is illegal (which I do not condone), and many universities, companies, and ISPs have built in methods to detect torrent traffic on their network. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;The How-To:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Alright, so we will be using a:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Torrent client (I will write this speciffically for uTorrent)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SSH client (PuTTY)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SSH server&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This should work for any torrent client, and any SSH client, and any SSH server. &amp;nbsp;But I'll be writing this with uTorrent and PuTTy in mind. &amp;nbsp;First we have to aquire a SSH server account. &amp;nbsp;If you want to use this a lot, I would urge you to purchase an account on a server. &amp;nbsp;Mine is $5 a month (as low as $4.41 if you commit for more time), and has worked perfectly for the past few months. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://b2shells.com/"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://b2shells.com/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; Basically sign up for the Personal Shell. &amp;nbsp;When you're adding it to you're shopping cart, it will look like this&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ezyiIz-ElxA/S8ffRPW5wHI/AAAAAAAAAxA/zYQM_hKn94s/s1600/B2Shells.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img border="0" height="335" src="http://3.bp.blogspot.com/_ezyiIz-ElxA/S8ffRPW5wHI/AAAAAAAAAxA/zYQM_hKn94s/s400/B2Shells.png" width="400" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;At the bottom when you where it asks for your Username and Password, that will be your username and password to access the Shell account. Make sure that you write that information down somewhere because we'll have to use that later. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;You don't necessarily have to get a payed account, instead you can look here and get an account on one of these. &amp;nbsp; If you choose to do this, some of them have a quota, which is how much data you're allowed to transfer over their network. &amp;nbsp;Usually a very small amount. &amp;nbsp;Remember that a full CD ranges from 80-120MB usually.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Once you have your account set up, we need to download &lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"&gt;PuTTY&lt;/a&gt;. &amp;nbsp;If you're running Windows, I would suggest downloading the installer, but it really doesn't make a difference. &amp;nbsp;Once you have it on your computer, run putty. &amp;nbsp;Its just one simple...amazing... window. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In the "Host Name" type in the host name, &amp;nbsp;you will be given this if you register for an account somewhere. &amp;nbsp;Also, be sure to put in the correct "Port" number, sometimes this is different, but it is usually 22. &amp;nbsp; Then, below, in the "Saved Sessions" type in a name, this is so we can save our session to re-use later. &amp;nbsp;I usually just type "Torrent" or something like that. &amp;nbsp;Dont click the Save button yet though... if you did, its okay. &amp;nbsp;Next, on the left navigation bar, navigate to &amp;nbsp;Connection &amp;gt; SSH &amp;gt; Tunnels. &amp;nbsp; &amp;nbsp;In the "Source Port" you choose a number. &amp;nbsp;I have used 6633 Always, IDK why, but it has worked. &amp;nbsp;Now there are limitations to the number you can choose, but if you don't want to use 6633 just try to pick something in the 5000 or 6000 range for the sake of making sure it works. &amp;nbsp;Remember this number, because we'll have to use it later. &amp;nbsp; Dont type anything into "Destination" and on the radio buttons below Destination, choose "Dynamic" and "Auto" &amp;nbsp;Then click the Add button. &amp;nbsp;In the Box &amp;nbsp;"D6633" should have popped up. &amp;nbsp;Now go back to the Session tab in the left navigation bar. Now we want to click the Save button. Now you see the session you just saved in the list below. &amp;nbsp;You can double click on it to open up your session automatically. &amp;nbsp;Or, you can click on your session, click Load, and then click the Open button at the bottom. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As a note, you can actually make using this a bit easier if you want to. &amp;nbsp;In PuTTY, load your session, and in the Host Name box, in front of the web address, type in your username and then @. &amp;nbsp; &amp;nbsp;So, &amp;nbsp;if your username is "qwerty", and you are connecting to "shell.sshost.com" &amp;nbsp;then you would have this in the Host Name box &amp;nbsp;"qwerty@shell.sshost.com". &amp;nbsp; Then, instead of having to type in your username every time, you'll just have to type your password. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Okay, now our shell opens up, it looks like a command prompt window, and you will be asked to log in, so type in your username (if you didn't do the step above) and your password. &amp;nbsp;Then you will see that you have logged in correctly. To test, type in "pwd" &amp;nbsp;that should print out what folder you are currently in. &amp;nbsp; &amp;nbsp;Another not about loggin in... when typing your password, it may look like no characters are showing up. &amp;nbsp;This is supposed to happen. &amp;nbsp;Just carefully type in your password, and hit enter. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If you want to, play around here and use the storage that you get. &amp;nbsp;Make some folders "mkdir FOLDER_NAME". &amp;nbsp;Navigate through folders &amp;nbsp; "cd FOLDER_NAME". &amp;nbsp;"cd .." gets you to go up one directory. &amp;nbsp;"vim" brings up the text editor... it is confusing and i will not cover it here. &amp;nbsp;Maybe in a future post if people want to learn about its amazingness.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now we are done setting up SSH, and just have to prepare the torrent client. &amp;nbsp; Install uTorrent, and open it. &amp;nbsp;Make sure not torrents are running now, as they will be using the regular network until we change the settings, which could get you in trouble. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;In uTorrent, click Options &amp;gt; Preferences. &amp;nbsp; &amp;nbsp;In the left navigation bar, click on "Connection" &amp;nbsp;in the "Proxy Server" box, for "Type" choose "Socks5", for "Proxy" &amp;nbsp;type in "localhost" ... &amp;nbsp;"127.0.0.1" will also work. its your choice. For "Port" &amp;nbsp; we need to put the port we chose to use in PuTTY... I choose 6633 so I would type in 6633. &amp;nbsp;Pretty simple. &amp;nbsp;Uncheck "Authenticaton", &amp;nbsp;and check "Resolve hostnames through proxy" and "User proxy server for peer-to-peer connections". &amp;nbsp; Now hit "Apply" and then "OK". &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now download a torrent and open it inside uTorrent and see if it downloads. &amp;nbsp;If it does, then you have set up correctly... if not, you're out of luck.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;Finishing Remarks:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Hopefully this was an easy to follow guide, and everything is up and running correctly. &amp;nbsp; Sometimes if you let your SSH session run for a very long time it will dissconnect because of a software error or something. &amp;nbsp;In this case, just click "OK", &amp;nbsp;then on the PuTTY window, right click, and select "Restart Session" and it will try to reconnect you. &amp;nbsp;Usually you'll have to log in again. &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;If you have any questions or want more pictures, lemme know in the comments.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-7858957321312355966?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/7858957321312355966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/torrent-without-being-caught.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7858957321312355966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7858957321312355966'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/04/torrent-without-being-caught.html' title='Torrent Without Being Caught'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ezyiIz-ElxA/S8ffRPW5wHI/AAAAAAAAAxA/zYQM_hKn94s/s72-c/B2Shells.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-4128019284915807944</id><published>2010-02-03T19:13:00.000-05:00</published><updated>2010-02-03T19:13:27.653-05:00</updated><title type='text'>College Park</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;Ah, its nice to be back in College Park. &amp;nbsp;Now that I'm back into the groove of college I'll get back to more regular posting. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;...Updates&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So here are my current projects, well these aren't all concurrent, but it is my list of stuff to get to:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Secret Project 1 (SP1)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP2&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;My Blog &amp;nbsp;(&lt;a href="http://www.bmbsquared.com/"&gt;www.bmbsquared.com&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Java CLI&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Spare Our Green (SOG)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP4&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;debian Install on Android&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP5&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP6&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RC Spy Heli&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Assembly (x86)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Python&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FL Studio&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Personal Point System&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Vocab&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Physical Look&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Personality&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Relationships&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This is really the reason I'm so inefficient, its easier for me to come up with cool ideas then to actually operate on them. &amp;nbsp;So the list just keeps on growing and growing. &amp;nbsp; Sorry for all the secret projects. &amp;nbsp;They are either a possible large profit margin idea that I haven't patented or started work on... or just something I shouldn't be broadcasting over the internet. &amp;nbsp;haha. &amp;nbsp; You can expect that those secret projects will eventually be revealed once I begin work on them. &amp;nbsp; On top of all that, I also have school work. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So here is my plan of attack for the next few months. &amp;nbsp;School comes first =( &amp;nbsp;I know, it sucks, but I need to pull my GPA up a bit. &amp;nbsp;After that, I need to work on SOG and finish that by March because we're launching our Beta test in March. &amp;nbsp; Realistically I should also be able to get a rough implementation of my blog done, finish SP6, and install debian on my phone by that time. &amp;nbsp;Then we have Spring Break, I'll have to do my taxes, but I can really spend quality time developing my blog, learning Assembly as well as Python, and developing SP1.&amp;nbsp;&amp;nbsp; And at some point I will have gotten around to playing with FL Studio!&amp;nbsp;&amp;nbsp;So the new list of projects at that point will be.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP2&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Java CLI&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP4&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SP5&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RC Heli&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Personal Point System&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;When I head back to school, the RC Heli and SP5 will take&amp;nbsp;precedence. &amp;nbsp;I'll also work on SP3. &amp;nbsp;By the end of May when I'm done with school for the year, I will have to add another Secret Project to my list (I already know what it is, but its off my list for now because it isn't ready to be worked on... if that makes any sense). So my summer will be spent at my job, and in my spare time, working on the Java CLI, SP2 (maybe), and SP4. &amp;nbsp;Also I'll have to work on my new secret project &amp;nbsp;(SP7). &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Throughout all this, I'll also be working on keeping up with my Personal Point System to make myself a better person.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As I said, expect there to be posts on nearly all these SP's once I begin work on them. &amp;nbsp; &amp;nbsp;Well this was probably a boring post for all who read it, but it was great for me to organize my thoughts. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-4128019284915807944?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/4128019284915807944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/02/college-park.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/4128019284915807944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/4128019284915807944'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/02/college-park.html' title='College Park'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-4312326877918762218</id><published>2010-01-18T11:38:00.000-05:00</published><updated>2010-01-18T12:26:32.126-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='bmbsquared.com'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='A2'/><category scheme='http://www.blogger.com/atom/ns#' term='site'/><title type='text'>Website</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;After having this blog for what, 2 years now?  And writing only 8 posts in the first two years, I've decided that I needed to actually start writing stuff here, not just any stuff, but good stuff, stuffy-stuff, you know what I mean?   Well I have decided to actually put an effort into keeping this blog up-to-date with all the projects that I work on, and to share my code, so that everyone can benefit from my projects.  &lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;...The Big News&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As part of this sort of New Years Resolution, I have decided to move away from a dedicated Blogger blog, and actually run my own website where I can have more then just a this very linear styled blog.   Instead, now I will be able to post tutorials, and actually have dedicated pages for my code, implement nice syntax highlighting for the code I post, etc...  So I'm very excited about this change.  After nearly 6 months of working with Fatcow (a great web host IMO) on the &lt;a href="http://www.spareourgreen.com/"&gt;www.spareourgreen.com&lt;/a&gt; project, I have figured out exactly what I do/don't want in a webhost, so now that I am getting a new website, I have been searching for the perfect host. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;...A Perfect Fit&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;After hours of searching, reading review, visiting websites to look at every feature, and multiple talks with customer service reps, I was still unhappy with every option that I had found!  I am being kind of picky, but I just knew that someone had to have everything I wanted  (that also still has a reasonable price).  On my list of need-to-haves were:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Shell Access (SSH)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cron Jobs&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FTP&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Unlimited MySQL (but more preferably PostgreSQL)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PHP&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Python&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Perl&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Ruby (would be nice, but can live without)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Some sort of SSL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;IMAP &amp;amp; SMTP servers  (or ability to change MX records to use Google Apps)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Some kind of control-panel / file manager&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;unlimited sub-domains&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;custom error-pages  (preferably the ability to edit .htaccess)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;And SSI would be cool, but not necessary&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A pretty extensive list, nothing too arbitrary, but believe me its difficult to find all of that available in one package! Like I said, all my searching led me to nothing. Then after a weird Google search "php python perl postgre mx" or something like that, I came across yet another website that listed and compared web hosts, but this one was specific to finding good python hosts. I searched the page for "ssh" and found 6 instances, and clicked on all 6 of the links to the web host. The first 3 were dedicated python servers, then the 4th one I looked at had everything I wanted, and more! It has everything I listed above on my list, plus it has Git (and sub-version, but why use that if i have git) pre-installed, and they are already compatible with Magento!!! &amp;lt;3 This isn't all that important to me since I don't really plan on selling anything (at least not in the near future), but I just think this is really cool because about 2 or 3 years ago, I spent close to a week working on getting Magento installed on a home server with a bare-bone installation of PHP.  It was such a pain in the ass, so that is why its just cool to see that they're pre-compliant with it. Now that you're all wondering who this amazingly awesome web host is, I won't be telling you!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Just kidding, the host I've been talking about it A2 Hosting.  And all of this that I've mentioned above can be bought for as little as 4.77 a month is you are looking to commit for 36 months.  I only chose the 6 month plan cuz I first have to prove to myself I'll actually use it, but if I can make it until the summer, then when I re-purchase the plan, I'll get the 36-month one.    &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;...My New Website&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now I'm just waiting for the domain name to finish registration and be updated with the correct name-servers, and then I will start development of the site, and soon afterwards, I will be transferring this blog over to my site.   The domain name is (just like this blog)  &lt;a href="http://www.bmbsquared.com"&gt;bmbsquared.com&lt;/a&gt;.  I look forward to developing this site, as I will try to include many new technologies, and make it very Web 2.0 ish.   See you at the site.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; - B-Squared&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-4312326877918762218?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/4312326877918762218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/4312326877918762218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/4312326877918762218'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/website.html' title='Website'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-4508208646575548751</id><published>2010-01-17T23:47:00.000-05:00</published><updated>2010-01-18T11:38:01.679-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='balance'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='evolutionary'/><category scheme='http://www.blogger.com/atom/ns#' term='stick'/><category scheme='http://www.blogger.com/atom/ns#' term='jgap'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Fun With AI</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So at my robotics club, one of the other mentors and I are both extremely interested in AI, and he has been talkin with me about some different projects we're working on.  Some of the younger kids became interested, and we started to describe to them the simplistic view of AI.  He used the example of balancing a stick on a finger.  Picking up an aluminum bar, he demonstrated how an AI robot would slowly learn to balance the stick.  Then I gave the specific example of evolutionary algorithms (which i have the most experience with).   He then said that evolutionary algorithms wouldn't be able to do that... but I was adamant that it could be done.  So I've decided to prove him wrong by actually doing it.  &lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;...Starting Work&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I've started writing a 2D simple physics engine to just be used for this balancing the stick problem.  I will be utilizing the JGAP Java package to simplify the work I have to do, by providing all of the mutation and crossover algorithms.  Basically this will boil down my work to providing it the correct functions that the program will be allowed to call.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...The Constraints&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I have given some arbitrary constraints for this problem.  I will allow it to work on a fake track that is a set length, probably 1 or 2 feet.  Like i said, this demonstration will only be in two dimensions.  As you can see this problem is actually not very complicated at all.   Oh yea, this project will be in Java, and I'll post all code once I'm done. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I've been very lazy about coding over this break from school, so this challenge will hopefully kick me into gear and get me working much harder then I have been during my last week at home.   To clarify, I actually program 40 hrs a week at my job, but outside of work, I haven't gotten much done. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-4508208646575548751?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/4508208646575548751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/fun-with-ai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/4508208646575548751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/4508208646575548751'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/fun-with-ai.html' title='Fun With AI'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-5564006033913400691</id><published>2010-01-06T23:35:00.000-05:00</published><updated>2010-01-17T23:43:37.984-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='lift'/><category scheme='http://www.blogger.com/atom/ns#' term='first'/><category scheme='http://www.blogger.com/atom/ns#' term='scissors'/><category scheme='http://www.blogger.com/atom/ns#' term='robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>third, second, FIRST!!!!!</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;Once again, all of our favorite robotics competition is about to start, and all of the teams are excited to receive this years unique challenge! Its FIRST Robotics. Every year, thousands of teams worldwide compete in this high school robotics competition.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;...Atholton RAID&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Last year was my final year at Atholton, so it was my final year competing on our HS FIRST team.  But this year, I have come back as a team mentor! This evening we had our first meeting (no pun intended) and I had to catch up on a lot of information.  Our club had nearly doubled in size from only 12 dedicated membors to 30!  Everybody had already chosen their sub-teams, so we knew who would be focusing on electrical, design, programming, and hardware.  On Friday we'll meet again, then Saturday is the kickoff.  The whole club will gather and watch a live screencast of the presentation of this years game by famous inventor, Dean Kamen, and esteemed MIT professor, Woody Flowers.  &lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...The Competition&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;This year, the game has been designed to make it much more interesting for spectators, such that there will hopefully be a non-technical audience to whom this can appeal!  The game entails of teams of three robots, that face against each other.  Each team has 2 goals on their side of the field in the corners.  They can score 1 point by kicking a soccer ball into this goal.  On the field, there are 12 soccer balls at a time.  As they are scored, the human players must re-enter the balls onto the field through a ramp structure that is above the playing field.  If you with to see more about the game, visit &lt;/span&gt;&lt;a href="http://www.usfirst.org/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;www.usfirst.org&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...Our Robot&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now just over a week into the 6 week competition, we have finalized the chassis design of our robot, all of the manipulators we'll be using, and have begun working on designs for the different manipulators.  We plan on a long or short-range ball shooting mechanism, as well as a way to pull our robot up 20 inches off the ground using the tower that is built on the field.  We are looking at linear pneumatic launchers, as well as potential rotational energy to launch the ball.   We also will be using two camera's, one for ball viewing, and another for finding the target above the goals.  This will help to keep the balls under control, and also to accurately measure distance from the robot to the goal.  Our main objective with this is that we can have a "fire &amp;amp; forget" system.  We will have a light on out driver station that will light up if the camera's see a ball and the target.  If bot are seen, then the driver can just tap the trigger on our joystick, and the software will then move to get the ball into alignment with the target, compute its distance from the goal, and fire with accordingly.  As far as our robot lifting mechanism, we are evaluating the feasibility of a scissor lift system that will pull up the robot.   The final design concept that has been bouncing around is that of a system to pick up another robot, and carry it on top of us, as we lift ourself off the ground.  This system would gain us an extra 3 bonus points at the end of the game, in addition to the 2 we get for pulling ourselves off the ground.  I feel that if we can get this idea to come to fruition, it will most definitely be one of the top robots at the competition.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-5564006033913400691?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/5564006033913400691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/third-second-first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/5564006033913400691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/5564006033913400691'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/third-second-first.html' title='third, second, FIRST!!!!!'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-8168054785841800632</id><published>2010-01-05T10:11:00.001-05:00</published><updated>2010-01-05T17:00:56.930-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competition'/><category scheme='http://www.blogger.com/atom/ns#' term='rps'/><category scheme='http://www.blogger.com/atom/ns#' term='rock'/><category scheme='http://www.blogger.com/atom/ns#' term='scissors'/><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='tournament'/><title type='text'>RPS Competition!!!</title><content type='html'>Anyone else as psyched as I am??? No??? Huh, thats weird.  Well anyway, I have decided to host my own rock, paper, scissor tournament!  Still not interested?  How about if I told you that you had to program a RPS bot to play the game against another persons RPS bot?  If you're still not interested then there's no hope for you... If you are interested though, then read on!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...The Idea&lt;/span&gt;&lt;/b&gt;  &lt;/div&gt;&lt;div&gt;So after my daily reading of the Official Google Blog on Nov 25th, (maybe it was the student blog???) I saw that the University of Waterloo had hosted a rock paper scissors programming challenge.  I was extremely interested.  I looked over all of the sample code, and I read a few articles about logic that can be used in the game.  This was my sole inspiration to hold my own tournament.  As of this evening, I will begin to write the Java bot that will moderate the game.  Hopefully I can finish the bot by the 23rd of Jan, so that I can make a website for it and begin to advertise around the UMD College Park Campus.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;...The Competition&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Then a week or two into February I'll open up registration so people will be able to test their robots.  And every other day, I'll run the competition on all of the submitted code. For three weeks this will continue, and people will be able to tweak and re-upload their code to make it smarter.  Then on the final weekend, (probably Saturday)  I will host a big RPS party and everyone can submit their final programs and see who comes out to be the winner.  I'll eventually think of prizes that the top three or so will win.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope that other people are as excited as I am about programming RPS artificial intelligence.  I think it will be very difficult.  As it gets closer to February, I will try to post some basic RPS logic so that people can get an idea of how to go about programming this. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thinking about doing this competition also has me thinking about other AI competitions that I could run.   If you have any ideas lemme know in the comments.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-8168054785841800632?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/8168054785841800632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/rps-competition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/8168054785841800632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/8168054785841800632'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/rps-competition.html' title='RPS Competition!!!'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-7214157014539948681</id><published>2010-01-05T09:22:00.000-05:00</published><updated>2010-01-17T23:45:34.981-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='choose'/><category scheme='http://www.blogger.com/atom/ns#' term='vs'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>A Quest For The Holy Grail</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;...well, not really.  But I am learning Python!  After years of programming in just Java, I finally thought it would be a good idea to branch out.  I then took on my website project I described in my last post, and from that have come to gain a good understanding of PHP and its useful libraries, SQL queries, and Javascript.  But I wouldn't consider any of these a true full-functional language as they all are built on web infrastructure.  &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...Picking a Langue&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Yes I know that language is spelled with a "age" at the end... but I meant to say langue.  Langue's meaning is very close to that of language, the difference is that language is, well, a language, but langue (&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;noun&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;) means a system of conventions and rules upon which we communicate.  So I would actually say programming languages are actually more Langue-like... if that makes any sense.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Anyway, after deciding that I needed to learn a new language I started researching all of the possibilities for what I could learn, based on which ones could possibly provide a benefit to my career.  My final list was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;C or C++&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Python&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Ruby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Erlang&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Perl&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;LOLCode&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;First, I ruled out any with a lack of a true compiler/interpreter.  KTHXBYE LOLCode :'(    Now that I had 5 viable options I looked at things such as :&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Will I have to learn it in the future?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;What types of programs will it write?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;What kind of learning curve is there?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;How big is the user base?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;My first question, will i have to learn it in the future, only targeted 1 of the items on my list.  Since I am on the University of MD Robotics club, I will eventually have to learn C so that i can program PIC micro controllers for the robot.  I will actually have to do this next fall.  And this will also be needed for some EE classes later on in my junior and senior years most likely.  For this reason, I ruled out C/C++.  (Also, if needed I actually can churn out a small C program, i just never got further than any of the basics.)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now I was left with Python, Ruby, Erlang, and Perl.  I separated them into 3 categories: Perl, Python/Ruby, and Erlang because Python and Ruby are so similar.  Next, I eliminated Erlang. Although I would have loved to learn a true multi-thread language, question 2 and 4, as well it being hard for me to find a legitimate use for it in my code, turned me away from Erlang.  Although I have skipped it for now, I feel that the next time I decided to learn a new language from the ground up, it will be Erlang (hopefully in a 2 years or so).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...Python vs. Ruby vs. Perl&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now that I'm down to three, I once again grouped Python and Ruby together due to their similarity, and compared them to Perl.  After looking at some code and reading all of the introductory tutorials, I felt much more comfortable with Python/Ruby then Perl.  Then after reading other people's testimonials, such as &lt;/span&gt;&lt;a href="http://infohost.nmt.edu/tcc/help/lang/python/vsperl.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;this one&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, it wasn't a hard choice for me to eliminate Perl.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Choosing between Python and Ruby was difficult as they are sooo similar, and unlike the case of Python v Perl, no one was willing to say that one is truly better then the other.  My final decision boiled down to the fact that Python is much more widely used (in my opinion), and more importantly to me, Google uses Python extensively.  That pretty much sealed the deal, as I have an incessant infatuation with Google.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...Beggining to Learn&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now that I have chosen, it's time for me to begin to learn the language.  I just purchased my book, and will be updating the blog on my progress and any interesting tid-bits now and then.  But as this is my second project outside of my 40 hour work weeks, progress will most definitely be slow.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-7214157014539948681?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/7214157014539948681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/quest-for-holy-grail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7214157014539948681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7214157014539948681'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/quest-for-holy-grail.html' title='A Quest For The Holy Grail'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-811194836290860074</id><published>2010-01-05T08:50:00.000-05:00</published><updated>2010-01-17T23:46:44.199-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='our'/><category scheme='http://www.blogger.com/atom/ns#' term='new'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='year'/><category scheme='http://www.blogger.com/atom/ns#' term='spare'/><category scheme='http://www.blogger.com/atom/ns#' term='green'/><title type='text'>The New Year!  ...and Correct PHP Code Design</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;Its been a while since my last post, but I've made it a sort of new years resolution of mine to start posting more regularly here.  Now my focus will not be solely on AI stuff, rather I will cover any tech topic that I am learning about or using. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...Catching Up&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;So over the past few months, I have put a lot of time into developing my website, &lt;/span&gt;&lt;a href="http://www.spareourgreen.com/"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;www.spareourgreen.com&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.  If you actually want to hear about what the website does, go ahead and visit it, here I will just be covering the technology used.  Never having written any websites other then straight HTML and Javascript, I was excited to learn PHP. After reading a book about PHP basics, I dove right in and started coding the first 5 or 6 pages.  I finally got all of them working correctly, but then realized a problem I was having, every time I added a new menu item, I would have to add the new link to each page individually.  ThenI came to the realization that I should dynamically load all of my web pages from the one centralized source, and keep individual page content in its own file.  This way, updating the menu or the footer makes the change across all the pages.  &lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;...Another Challenge&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now, after nearly 4 months of working on this code, and having different pages load different content into their menu's and such, my code is once again a horrific mess!  Now when a page breaks after adding a small new feature,  I have to pick through hundreds of lines of unstructured code to try and find my problem. Usually I know where the problem lies, but even then it is still a pain to find.  After recently adding a new section to my website that has vastly increased the complexity of my code, I have decided to wipe out all my old code (not really, never delete your old code, just .7z it and save it on your HDD),  and re-write the website using well-structured, scalable, object-oriented programming in PHP.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;With object orientation, making a broad change across all of my pages is as simple as adding a new function or method to an existing class, or adding a new class to my main .class.php file. Then, I can choose which pages this needs to be implemented on, and make 1 new function call on those pages.  The way I am using the OOP actually could be implemented the same way I had done it previously by using just 1 php file and adding new methods, but like I saw, that can get pretty messy.  Working with objects is much easier to keep tidy. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;...Progress&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Right now, I have just begun to undertake this new initiative.  I have written a User class to store data about the person visiting the site, as well as a Page class which is what will be my initial call on every php page.  So here is what a sample site could look like:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;php require_once(../classfile.class.php); $file = new Page(); ?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;........HTML or PHP page specific content goes here............&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;lt;?php $file-&gt;close() ?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As I continue to work on this code, I will keep updating on my progress and try to provide information on any problems that I run into so that you may learn from my mistakes.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-811194836290860074?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/811194836290860074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/new-year-and-correct-php-code-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/811194836290860074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/811194836290860074'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2010/01/new-year-and-correct-php-code-design.html' title='The New Year!  ...and Correct PHP Code Design'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-3037564689469156189</id><published>2009-03-04T10:34:00.001-05:00</published><updated>2009-03-04T11:57:51.376-05:00</updated><title type='text'>Paper on AI Implementations and Relevancy to Human Society</title><content type='html'>So this is my poorly written AI paper for a class i'm taking.  I'll acutally get around to posting some good material later this month. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         &lt;b&gt;&lt;center&gt;Our Future is in Our Computer's Hands&lt;/center&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp The fear of robots taking over the world may seem far-fetched, but with the exponential growth in the field of artificial intelligence (AI) this fearful fantasy is beginning to look more like a reality.  In this age of computers, there are many new pioneering technologies dealing with AI.  Each of these implementations has their pros and cons, such as being more useful in language  comprehension of mathematical functions.  The different implementations to be discussed are: knowledge bases, neural networks, evolutionary algorithms, genetic programming, and hierarchical temporal memories (Carey). Of the different implementations currently in development, hierarchical temporal possess the greatest potential for and most possible applications of the knowledge it can gain.  &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp To further analyze the different types of AI, we have to qualify some definitions first.  The AI ratio is the ratio of amount of artificially gained intelligence to the human intelligence that was put into the system to begin with.  This ratio is universally used to evaluate an AI systems addition to society.  An AI system with a low ratio will not provide a great increase in knowledge, as an extensive amount was already put into the system to begin with.  A system with the highest AI ratio possible would be one where the question is laid out for the program, and a terminating function is also defined, but this is all that would be given.  This would yield the highest ratio because no extra information is given, any less and there would be no question for the program to solve (Koza, Genetic Programming II 37).   Also, when examining an implementation of AI, it is important to look at the relevancy of the data it produces.  These are the two strongest factors being looked at in identifying the strongest implementation of AI.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp One implementation of AI is the knowledge base.  Knowledge bases allow the user(s) put information and equality statements into a database.  The knowledge base then accesses this database of information, which it uses to answer a very specific set of questions.  There are many prime examples of knowledge bases, including Deep Blue and Cyc.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Deep Blue was the first computer program to ever beat a chess grandmaster in true tournament competition. Although it is an astonishing feat, this triumph is not truly the outcome of AI.  Deep Blue required thousands of lines of code explaining nearly every possible move the opponent could make, and how to move according to the opponents move. For this reason Deep Blue has a very low AI ratio, practically 1:1. It is a very inefficient system, requiring inordinate amounts of time, to return nearly nothing of gain to human society.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Cycorp Inc. is a new company who has put a spin on knowledge bases. They have been developing over that past few years the Cyc database.  Cyc’s mission is to provide an AI platform that can fundamentally comprehend language.  The programmer of Cyc entered in hundreds of dictionary words and versatile relationships between these words such as equality statements into the program.    These words and relationships are expressed mainly through predicate calculus.  The Cyc application allows users to query different terms in their database, and Cyc supposed to be able to answer questions posed by the user, and provide on-syntactical search results that will boost the productivity of the end user.  The method which Cyc uses to identify matches to queried terms is that it uses the predicate calculus and performs proofs to determine a certain type of equality or inequality between the two terms. This new kind of intelligence has provided the first AI implementation with a true comprehension of language (Lenat).   &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Cyc has been tested by many research laboratories and has provided many strong examples of the relevance of its data.  One query submitted asked for a “happy moment” (Lenat).  The results that were returned included a picture with a caption telling the reader that it was a father watching his daughter take her first steps. The result is immediately recognized as relevant to the query at hand, because a human realizes the satisfaction and happiness of seeing your daughter taking her first steps.  To a computer thought, there is no way it could have returned this result solely based on syntax. There are no synonyms or exact word matches in the caption, so this goes to show that the computer system has contextually identified this result.  Another prime example is a query for strong and risk taking.  The results list for this query revealed a picture with a title of Rock Climbing, but no caption associated with it.  A human being realizes that for one to rock climb, one must be in good physical shape and must be very strong due to the strenuous climbing.  Also, humans know that not anyone goes and climbs cliffs.  They understand that it takes some level of risk taking to venture to go rock climbing.  These examples are evidence that Cyc has a very strong AI ratio, even though there is a fair amount of human intelligence that is originally injected into the project.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Knowledge bases have a large potential for what they can do, and they are really the only type of AI which has begun to truly conquer language recognition.  They also have a potentially high AI ratio if they are able to fully understand language in the future.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp One drawback of knowledge bases is that they are not efficient or very useful for mathematical calculations; they are much more useful for language, so for this reason, it is very important that development continues for the use of its language abilities. Due to its lack of mathematical usefulness, this&lt;br /&gt;implementation would not receive a large overall potential as the most useful implementation for humans. &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Neural Networks are the next type of AI platform, which tries to emulate a brains function using neurons, and utilizing pathways between them. Currently, neural networks are relatively new in the field of AI.  The theory behind neural networks relies on mimicking brain function.  The networks take in a single, or multiple inputs to the system, then each neuron performs a calculation on that signal it receives.  This calculation has a variable, which is tuned, usually by a learning algorithm to meet a specific type of output for the problem at hand.  The process starts by feeding the array of neurons artificial data for which the answer is known, or approximately known.  The learning algorithm is then applied to this input data until all the neurons are tuned correctly.  This is then verified by a set of truth tables with other known input data.  Once quality of the tuned variables is assured, the actual data is run through the system and the output is saved or used in the manner intended (DeClaris 1).&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Current known pros of neural networks is that they run massively parallel calculations so they are very efficient and quick at calculations.  Also, they are a non-linear implementation of AI, allowing it to perform some calculations that standard types of AI could not accomplish.  A current setback of neural networks is their lack of vision processing.  There are some projects being worked on that provide vision capabilities, and there are many small examples available, but none that are on a larger scale that would be applicable to humans at this time (DeClaris 1).  &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp The negatives presented about neural networks are few and remediable. Neural networks have not begun to take on language comprehension as other implementations, such as the knowledge bases, have.  Language comprehension is one of the most difficult tasks currently presentable to AI.  Even though the current state of neural networks does not allow for language comprehension, this skill can be gained over time.  Although there have been no examples, researchers believe it can be done, since neural networks are modeled after the brain, and the brain is able to understand language (DeClaris 2).&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Neural networks have a very high AI ration because they require virtually no input information other then a truth table, and the data that the user wants calculated.  Since the neural networks are extremely efficient at math, and they have the possibility to expand towards language comprehension, they show promise in the field of AI.  This, as well as its ability to tackle any problem currently thought available to human calculation, gives this implementation a very high potential for growth.  This also will be able to produce extremely relevant results for humans, allowing us to perform nearly any calculation the brain would be able to comprehend. For these reasons, neural networks seem to have the greatest necessity for continual development.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Evolutionary algorithms are a type of AI based on the Darwinian principal of natural selection.  Technically speaking, it is a mathematical program that alters the equation it uses to perform calculations based feedback from a fitness function (Koza, Genetic Programming III 22).  The simplified explanation of the inner workings of evolutionary algorithms is that the user specifies a problem set, telling the program that it has a certain number of variables that it is trying to calculate, and what type of variables they are. Then the programmer defines a fitness function that the program uses to evaluate each solution it comes up with.  The fitness function returns back a number to the program.  Then the program uses this number to see if the particular solution is close to, or far from an acceptable answer. The program generates a population of initial random answers, with fitnesses attached to them.  Then, just like in natural selection, more fit answers are more likely to be selected to move on to the next generation through different operations such as asexual reproduction, crossover reproduction, mutation, and 2 other more complicated types of reproduction.  Then the new generation gets computed fitnesses.  Over time, the program will tend to converge on a certain answer, which is the most fit answer it can find (Koza, Genetic Programming 12).&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Evolutionary algorithms are very useful for mathematical calculations where there are numerous unknown variables.  Although this implementation is superior at finding an answer from the smallest amount of data possible, it is very resource intensive.  Some problems have been known to take a full week to evaluate an acceptable answer.  Even though they are resource intensive, it has an extremely high AI ratio.  This implementation, as stated, requires no more information then necessary.  Any less and no problem would even be defined.  &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Evolutionary algorithms, in conjunction with genetic programming, have actually shown true merit, in the form of human competitive results being derived from programs that were written. Evolutionary algorithms and genetic programming have produced 21 results that mimic the functionality of previously patented ideas, and it has created 2 new patentable inventions (Koza, Genetic Programming IV 7).&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp This implementation has definite potential in the realm of mathematical calculations, where no other implementation has currently shown any ability to tackle.  Although it has some capabilities other types of AI have yet to display, evolutionary algorithms have not shown the possibility for language comprehension, or visual recognition, which are currently the two most heated topics in AI. For these reasons, evolutionary algorithms are not the most important implementation to be concentrating on out of all the types of AI discussed.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Genetic programming is fundamentally equivalent to evolutionary algorithms.  The way in which they work is completely identical except for the fact that genetic programs, rather then just generating a specific answer to one problem, generate an actual program that can be continually run to answer the same, or varied problems over and over again (Koza, Genetic Programming IV: Video).&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Because it is so similar to evolutionary algorithms, it has an identical set of pros and cons, except that it can create a program that is reusable for different constants being substituted into the original problem, where evolutionary algorithms only generate the one answer for a specific set of constants.  Some would think that because genetic programs can do more, evolutionary algorithms should not be developed anymore, but this is not so.  Evolutionary algorithms are more efficient at calculating a specific answer, and if only a specific answer is needed, there is no reason to develop a genetic program to do the calculations (Koza, Genetic Programming IV 25). Also, genetic programming is much more difficult in general, and there is more information that needs to be supplied to the program.  For these reasons, as well as the other positives stated about the evolutionary algorithms, this implementation should also continue to be developed, but in the end will not yield all the answers to questions human seek.&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp Hierarchical temporal memories (HTMs) are easily the most complex implementation of AI. They represent a special case of neural network that also uses linear algebra to represent any data passing through the system to allow for all calculations to work (George and Hawkins 5-6).  HTMs have already been able to do complex visual recognition that traditional forms of AI have had extreme difficulty accomplishing.  HTMs have the ability to accomplish what neural networks can but are more efficient and are also able to do things such as language much easier.  Neural networks would require random tuning of neurons while data about language is being passed through the system.   But with HTMs, language only need be digitalized such as in the case of knowledge bases.  Then all calculations could be performed through the HTM.  Language recognition and comprehension has not occurred yet in HTMs because the language has to be digitalized differently then in the knowledge bases, it must be represented in matrices instead of predicate calculus. A proven benefit to HTMs is their ability to do complex visual recognition.  Programs are already available for two dimensional simple object recognition such as ladders and steps; objects with recognizable shapes.  HTMs can accomplish all that neural networks can with smaller resources, and it seems that they will be able to accomplish language comprehension quicker and simpler; HTMs seem to be the AI implementation with the most potential and usefulness to human society. &lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp As of yet, no implementation has definitively established itself as the center of AI.  All the implementations currently have problem sets that they are better suited for then any of the other types of AI.  Knowledge bases have become the testground for language recognition, neural networks are making small progress, but are spreading to all sectors of AI, evolutionary algorithms are great for mathematical computations with many variables and no initial information, and genetic programming is good for recurring problems with different coefficients, and little other initial information, HTMs are also spreading to all sectors of AI, but are able to make bigger strides then the neural networks seem to be.  HTMs have put themselves on top, lining themselves up to be able to conquer all the different types of problems humans may have, and doing so with seemingly the most computational power.  HTMs are the AI implementation with the most potentially useful functions to human society in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-3037564689469156189?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/3037564689469156189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2009/03/paper-on-ai-implementations-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3037564689469156189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3037564689469156189'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2009/03/paper-on-ai-implementations-and.html' title='Paper on AI Implementations and Relevancy to Human Society'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-3404154861991913854</id><published>2009-02-02T18:58:00.000-05:00</published><updated>2009-02-02T19:03:02.995-05:00</updated><title type='text'>Recent Updates</title><content type='html'>Sorry for a lack of recent updates, soon enough i will update my series on AI with my next article.  Expect to see a few new interesting posts within the next month or so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-3404154861991913854?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/3404154861991913854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2009/02/recent-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3404154861991913854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3404154861991913854'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2009/02/recent-updates.html' title='Recent Updates'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-3974736182801547671</id><published>2009-01-31T16:46:00.001-05:00</published><updated>2009-01-31T16:46:21.540-05:00</updated><title type='text'></title><content type='html'>Im accepted at University of Maryland College Park!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-3974736182801547671?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/3974736182801547671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2009/01/im-accepted-at-university-of-maryland.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3974736182801547671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3974736182801547671'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2009/01/im-accepted-at-university-of-maryland.html' title=''/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-3488777074660692015</id><published>2009-01-17T14:07:00.001-05:00</published><updated>2009-01-17T14:13:54.477-05:00</updated><title type='text'>Robotics</title><content type='html'>Finally, my favorite time of the year.  Robotics "season."  The Atholton High School Robotics team (Atholton RAID) annually competes in 2 competitions:  FIRST Robotics, and Botball.  This is our teams second year in FIRST, and our third year in the Botball competition.  The FIRST Robotics competition started on January 3rd, and we are going to be building until February 16th.  Then we will be going to the Washington DC and Chesapeake regionals.  Hopefully we will then progress on to nationals in Atlanta.  We will be publishing posts about our progress on the &lt;a href="http://www.atholtonrobotics.com"&gt;Atholton Robotics&lt;/a&gt; team website.  You can also expect some new articles on AI and other technologies soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-3488777074660692015?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/3488777074660692015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2009/01/robotics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3488777074660692015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/3488777074660692015'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2009/01/robotics.html' title='Robotics'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-7420039864644855139</id><published>2008-12-17T19:09:00.000-05:00</published><updated>2009-02-02T19:33:02.789-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='neural'/><category scheme='http://www.blogger.com/atom/ns#' term='algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='HTM'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='evolutionary'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic'/><category scheme='http://www.blogger.com/atom/ns#' term='intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial'/><title type='text'>Artificial Intelligence: An Overview</title><content type='html'>Artificial Intelligence(AI), many people hear the term and are optimistic, others shiver in fear of an uprising of machines, others still are completely overwhelmed by the knowledge necessary to understand such things.  &lt;br /&gt;    In this set of articles i will try to provide a background and a small amount of knowledge on AI for a beginner, like myself, to grasp a better understanding of. &lt;br /&gt;&lt;br /&gt;     As humans had lived on earth for a longer time, technology was created, and eventually we had the creation of the computer.  Then as home computing grew larger, the base for AI grew, and research on the subject of AI exploded.   &lt;br /&gt;&lt;br /&gt;    So where are we now?  Well, there are currently many implementations of AI.  By implementation, i mean there are many different methods one can use to perform artificially intelligent calculations.  The main implementations i will be discussing in this series will be  Knowledge Bases, Hierarchical Temporal Memories (HTMs), Neural Networks, Evolutionary Algorithms, and Genetic Programs.  This is subject to increase as my knowledge on this subject also increases.  &lt;br /&gt;&lt;br /&gt;    Artificial Intelligence is really having a computer solve a problem for you.  For instance, any time you use a calculator, you are using AI.  Lets say you want to find the slope of a curve  y=x2+3x-7  at point  x=4.    You type the equation into the calculator, and you tell it to find  y'(4).   It outputs 11, which is your answer.  This is a simple example of AI.  We have given the calculator knowledge of simple math, and when we provide it a problem, it calculates the value of the answer.  Now, most people wouldn't consider this true AI, but in theory this is AI.  &lt;br /&gt;&lt;br /&gt;    I just said that we gave the calculator knowledge of how to do simple math.  This demonstrates a fundamental concept of AI.  A computer must be given knowledge initially before it can start doing calculations.  How would a computer decide to randomly turn on a circuit, then another, then another, to consequently perform a calculation.  It cant, so all AI must start with some base of knowledge.   Related to the idea of how you must provide knowledge, it the "AI ratio"  which is essentially,  how much knowledge you provided vs.  how much intelligence by the computer is put out.  Deep Blue, the chess playing computer, was programmed with thousands of possible scenarios that could arise in a game of chess, and then all it really did was found which scenario to use during each game of chess, so Deep Blue would have a very low AI ratio.  Whereas, the Numenta Platform, which is the only HTM platform that currently exists, has a relatively few number of algorithms to provide a extremely large output that includes visual and audio recognition systems, which most would agree are alone very much more complicated then the game of chess.  So the Numenta platform would have a relatively high AI ratio.&lt;br /&gt;&lt;br /&gt;    Now we should discuss the types of problems that AI is used to accomplish.  Right now, most of the AI implementations are dealing with mathematical problems such as an equation for the amount of thrust to output for the most efficient landing of the Moon-Lander. This is purely mathematical.  You may be thinking about vision recognition systems, but those too fall under mathematical calculations because we can represent the picture as a matrix of values corresponding to the color of each pixel.  So since a computer is digital, the real problem is getting information digitalized.  &lt;br /&gt;&lt;br /&gt;    This is the biggest problem why we do not have good systems dealing with language recognition.  Currently we have systems that look for specific sets of symbols, namely, the little chatbots used by AIM.  They look for a specific word and they respond to it.  But do they really understand the word??   The answer is no, they dont.  They only see  symbols that are in a certain order, they dont associate the symbols   h-a-p-p-y  with a feeling inside a person telling them that they have done good and are proud of themselves or someone else.  To try and get a computer to understand language, we need to be able to teach a computer how to digitalize language, and the meaning of words.  Right now there is one AI project that is trying to attempt this.  Cyc, a knowledge base system, is trying to teach computers how to understand language.  They are digitalizing the information using predicate calculus, and performing proofs to determine the relationship between two objects in the human language.   This is one example of a knowledge base system, where they are giving the computer a data value for every word in the English language.  &lt;br /&gt;&lt;br /&gt;    We have learned that one must learn to digitalize all information, and once this is done, computers can in theory do anything with that data. &lt;br /&gt;&lt;br /&gt;    In conclusion, there are many implementations, each with their own benefits.  Different platforms will have different AI ratios.  Also, currently most AI programs are dealing with mathematical functions and equations rather then language because of a difficulty in digitalized representation of language.  This is a brief background to AI.  In further articles, expect more detailed information and examples of specific implementations, and even more specific platforms withing each implementation to be discussed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-7420039864644855139?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/7420039864644855139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/artificial-intelligence-overview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7420039864644855139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/7420039864644855139'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/artificial-intelligence-overview.html' title='Artificial Intelligence: An Overview'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-9011862730333967636</id><published>2008-12-12T00:51:00.001-05:00</published><updated>2008-12-12T00:52:50.467-05:00</updated><title type='text'>From My Cell Phone</title><content type='html'>Alright.  So this is pretty cool!  i can now blog from my cell.  Haha.  Im just emailing my blog really.  Lol&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-9011862730333967636?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/9011862730333967636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/alright.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/9011862730333967636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/9011862730333967636'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/alright.html' title='From My Cell Phone'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-1754914573081857429</id><published>2008-12-12T00:34:00.000-05:00</published><updated>2008-12-17T19:11:28.659-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='quantum'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Quantum Computers</title><content type='html'>So, Quantum Computers... what are they?  Well to start of with the basics, they are completely different from classical computers.  In a classical computers, you have "packets" of electricity representing a bit. Either a 1 or a 0. And then, using fairly simple electronic components, you can perform calculations on those packets of electricity.  Now, with a quantum computer, the first thing to point out would be that bits have 4 states:  0, 1, 0+1,  and 0-1.  I will explain how we get four later on in the article.   Another distinguishing factor is that in quantum computers, all calculations are performed, not by electricity, but by protons.  Protons, as you know, are one of the three particles that make up an atom.  Basically, you have protons inside a contained area and you perform calculations with them.  So now, you're wondering about... well, a lot of things.  Hopefully I will get around to covering all of them.  &lt;br /&gt;&lt;br /&gt;     Lets take a step backward for a second, what is a quantum computer anyway?  Well quantum interactions describe, essentially, the universe. Einstein tried to quantify all interaction within our universe under physical laws.  His theory works on a larger scale, meaning interactions between humans, and planets, and galaxies, but to truly be the theory of everything in the universe, it needs to explain interactions between single atoms, and elementary particles as well.  These small scale interactions are quantum systems.  This does not mean that quantum systems only work on small scales, because if you can define what happens on a small scaly, you are understanding each and every interaction in the universe, it would make sense that you can see what the universe on a bigger scale is doing as well...  I know I am not the best at explaining, so ask questions if necessary, and please correct if any information is wrong.  So you say okay, i know what quantum means, why does that qualify our need for quantum computers?  Well, classic computers do calculations based on standard physics, which can, but have an extremely difficult time emulating quantum systems.  While quantum systems can easily emulate quantum systems, as well as standard physical systems. This is just like a square and a rectangle.... a square is a rectangle, but a rectangle isn't a square. Now I bet you're saying, why don't we just use quantum computers?  This is because even though they can emulate everything, standard calculations are extremely difficult, because every algorithm used, needs to be written individually.  So, 1+1 would be different from 8+2. A completely different algorithm would have to be used.  Now, going back again, how are bits established, and how are bit operations performed?  Bits are dealing with the rotation of the proton, this is where i am not sure of myself, because i studied quantum computers half a year ago.  If i remember correctly though, the sensors can detect rotation of the proton along two axis, meaning a positive or negative spin, along 2 axis gives us four options.  To change the state of a bit, high intensity lasers are beamed at the proton, and the energy from this light changes its spin.   &lt;br /&gt;&lt;br /&gt;     This is where we really step into extremely conceptual stuff that makes even the greatest of physicists get a headache. If you were in a performing calculations, on paper, to determine the spin of a proton to keep it in a stable state, you would calculate that it is spinning forward..... and backward.   You would go back and check your calculations, but everything would be correct.  This is because it HAS to spin in both directions.  But what is interesting is that any sensor trying to measure the spin will only provide one answer, and it is random which answer you will get (well, not random, but we will get to that later).  You may be questioning why you are learning quantum physics, when in reality you are hear to learn about quantum computers. Well just bear with me because i promise this all ties in together.  An example: &lt;br /&gt;&lt;br /&gt;You have a block of wood, inside a vacuum, and for the sake of the example, this wood has no electrons or protons to add a small electrical charge to the air.  So the wood is centered in the box, and in the wood, you have two holes that run parallel through the wood.  The idea is that if you fire two electrons through the holes at the same time, their would be interference because they have electrical charge. And if you fired them 1 million times you would knowtice a patter, that there were certain spots they would NEVER hit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ezyiIz-ElxA/SUH4lkGcYGI/AAAAAAAAAPQ/WVzQXwK3mic/s1600-h/Young+Two-Slit+Part+1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 266px; height: 320px;" src="http://2.bp.blogspot.com/_ezyiIz-ElxA/SUH4lkGcYGI/AAAAAAAAAPQ/WVzQXwK3mic/s320/Young+Two-Slit+Part+1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5278773562484482146" /&gt;&lt;/a&gt;You can see a small pattern starting to build&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Now if you did the same thing, but only with one electron, through one hole (chosen randomly), you would expect no interference, but in reality it is still there. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ezyiIz-ElxA/SUH4FrNkfHI/AAAAAAAAAPI/Zl719_2Sagc/s1600-h/Young+Two-Slit+Part+2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 262px; height: 320px;" src="http://2.bp.blogspot.com/_ezyiIz-ElxA/SUH4FrNkfHI/AAAAAAAAAPI/Zl719_2Sagc/s320/Young+Two-Slit+Part+2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5278773014637608050" /&gt;&lt;/a&gt;Single electron shot, after time, you would start to see the same pattern.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; You would see the same interference pattern.  And that is because the electron is traveling through both holes and interfering with itself. Hard to understand, but take my word for it... now we say well, we want to know which hole it is really going through, since it can only truly be going through one.  So we put a detector next to one of the holes.  As soon as you do this, the interference pattern goes away, because you have quantified which hole it is going through, so it has to pick one. It cannot openly defy the laws of physics. &lt;br /&gt;&lt;br /&gt;    Now we get back to how this works with quantum computers.  I stated that the single electron takes both paths through the wood.  Imagine if you told it a task, like, at the end of one of the tunnels, its blocked, the other is opened up, and you ask it to tell you which is opened up, it can be fired once, travel through both at the same time and give you an answer where a classical computer would have to be fired two times.  Now begin to imaging that we have 3 billion holes, and tell me, how much faster if a quantum computer going to be.  Basically, if you haven't figured it out, a quantum computer always gets the right answer on the first try.  &lt;br /&gt;&lt;br /&gt;    That is the basis of my knowledge, and I can tell you that is just skimming what else is known about quantum computers.  I gained this knowledge through the book  Programming the Universe by Seth Lloyde.  I would highly recommend that book. Its an easy read, and once you start, you really don't want to stop reading it!  Sadly, we are no where near close to having good quantum computers, and in our lifetimes, I can almost assure you that quantum computers will not be available to the average person.  I doubt that they will even surpass our current classical computers in computing power in our lives.  Hopefully i am wrong, but that is my opinion.  Thanks for reading, and please comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-1754914573081857429?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/1754914573081857429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/quantum-computers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/1754914573081857429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/1754914573081857429'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/quantum-computers.html' title='Quantum Computers'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ezyiIz-ElxA/SUH4lkGcYGI/AAAAAAAAAPQ/WVzQXwK3mic/s72-c/Young+Two-Slit+Part+1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3411070614218305231.post-9018049870412366558</id><published>2008-12-12T00:33:00.000-05:00</published><updated>2008-12-12T00:34:34.687-05:00</updated><title type='text'>First Post</title><content type='html'>This blog will be about pretty much anything that i find interesting and want to share with the world!  Mostly about technology and such, but i may throw some other stuff in there too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3411070614218305231-9018049870412366558?l=bmbsquared.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bmbsquared.blogspot.com/feeds/9018049870412366558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/first-post.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/9018049870412366558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3411070614218305231/posts/default/9018049870412366558'/><link rel='alternate' type='text/html' href='http://bmbsquared.blogspot.com/2008/12/first-post.html' title='First Post'/><author><name>Brendan Berman</name><uri>http://www.blogger.com/profile/10436603620132358487</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='32' src='http://4.bp.blogspot.com/_ezyiIz-ElxA/S1aLM_UUEtI/AAAAAAAAAtA/bEiL-d1LPaA/s1600-R/brendan.jpg'/></author><thr:total>1</thr:total></entry></feed>
