Relay #70, Panel F

don't just know technology, understand it

Tuesday, December 08, 2009

Linked List Exclusion

I wrote this paper for you. Enjoy: Linked List Exclusion.

Sunday, October 25, 2009

The Difference

Turing test at its best. Enjoy:


Sunday, August 02, 2009

Achieving AI: Part 1 - The thinking machine

This is an introduction to a series of entries on the topic of Artificial Intelligence. The approach, for better or worse, is more philosophical than academic and is simply a series of vague snapshots of my thoughts on the subject that I hope to express in a coherent manner. Part One begins here...

Ask any John or Jane with a passing interest about how they envisage human-computer interaction in the distant future and many will paint a picture of something akin to the droids in Star Wars or the ship computer in Star Trek: Machines possessing a reasonable understanding of human dynamics even if they themselves struggle to express them (Though I've always viewed that agreed upon hypothetical as impractical. Machines have proven themselves to be very good at expressing what they understand).

By and large we are conditioned into this view by science fiction writers and the like. However one would think that even without such direct influence, we would still hold an expectation of machines being able to understand and relate to us in a similar fashion to humans. After all, sci-fi writers had to get their inspiration from somewhere.

The Holy Grail of AI, if it is to ever be achieved, will be a melding of the mechanical logic of an electronic device coupled with the emotional intelligence of a human being. The question then becomes; what is it that makes us human? What aspect of sentience sets us apart from algorithmically controlled machines and can they be mutually inclusive?

A little self analysis

People often say that what separates them from machines is the ability to make a decision regardless of their current state. Selecting Left instead of Right without consideration to any preconditions and being, in essence, in full control of the decision. However, is any decision we make truly uninhibited? Isn't there, at some level, a point of reference that we must use, even if only as an antithesis, to go Left instead of Right? Aren't our actions just as algorithmically controlled as machines?

The benefit we have in analyzing the 'thought process' of machines is that we are the ones that created it. We have a full picture of all inputs and processes that produce any observed output and can mathematically prove what any variation in the provided input would subsequently produce. We can, as a result, proclaim that machines cannot arrive at any conclusion without following the prescribed steps or some algorithmically controlled mutation of those steps.

Contrast this with our attempts to analyze our own decision making prowess. For the most part we waddle in ignorance. This ignorance has led us to believe that our decisions are, if we so choose, capable of being undefined right up to the point that they are made. But is this really so?

Granted, there may never come a day when when a human or machine will be able to mathematically deduce what your next thought or action will be, however this does not negate the possibility that these thoughts and actions are rule based. Our experiences (memory), immediate environment and culture play a very strong role in enforcing the rules which govern us. The problem is that in many instances these guiding hands are invisible; leading us to think that we and those around us are autonomous. This is a fallacy that we must acknowledge if we are to begin understanding our decision making ability in our efforts to recreate them. What you know, consciously or subconsciously, define your decisions. Any attempt to break form simply creates an inverse of those rules which then continue to define you. Any decision we make, no matter how obscure and random, can be traced back to some base idiosyncrasy. The only thing we lack is the time and insight to fully analyze it.

The discussion could go off into many areas, however I'm simply trying to draw a parallel between how we as sentient beings and machines with simplified logic processing utilize predefined rules to come to decisions.

Once we begin to appreciate this, the problem then becomes the further development and refinement of a machine's decision making process. What are the factors that make our processing so much more human?

If we can do it, why can't they?

It's one of the pillars of Artificial Intelligence and a major step into having human like machines. A sufficiently advanced artificial intelligence, to transparently interact with humans, must know our nuances. But how do we achieve this? What is required to truly understand human emotion. How does a machine discern that a statement that begins with "a paster in a church" is an axiom but "a paster in a bar" is the beginning of a punchline? This may not be as difficult as one may initially believe once you realize that it comes down to the very same things that will help it make any other decision; experience, environment and culture.

As far as experience goes, it's easy enough. The one thing a machine has no problem with is memory, and as resources such as the Internet continue to grow and the semantic web continues to develop, soon machines will not only have to rely on its own prior experiences, but on anyone that has chosen to contribute to this vast pool of knowledge. The line of separation when it comes to memory is that humans utilize our memory in a very inefficient manner. With the exception of a few savants we are incapable of perfect memory and many times unable to recall needed information in a given time. In fact, out ability to recall information is severely impacted by our ability to understand it. Think of a sentence spoken to you in your mother tongue, followed by one of equal length in an unknown foreign language. The known sentence can be recalled much easier because you're able to ascertain the meaning behind the statement, while the other can only be recalled via phonetics; a noticeably more difficult task. This may be one of our humanizing factors. Should we try and create a machine which duplicates this imperfection? Do we even want to?

The environment aspect is simply an issue of context. Different things take on different meanings depending on where you are and what you're doing. As experiences grow, so does the ability to decipher what is the appropriate interpretation of received input. The ability to identify and process a myriad or environmental factors is key. Sensors need to be broad enough to gather big picture information while acute enough to pick up contextual discrepancies.

Culture is a lot more complex than the previous two requirements. So complex in fact it may not be possible for humans to implement it. The idea of culture touches on a very interesting topic as far as machine intelligence goes. For a machine culture to exist, there must be a machine society. This need not be a physical manifestation as it is for human communities, but simply a medium for multiple artificial entities to be aware of and interact with each other. This culture will need to evolve over time as more entities become aware and begin to share experiences and knowledge of their environment.

The sharing of information, depending on the particular manifestation of the exchange medium, may lead to a very interesting and needed evolutionary step for true AI: assimilation. If machines, with the exception of their physical housing, are to be seen as information patterns which include their rules for input processing, then the sharing of information between entities quickly becomes the merger of entities. In essence, a new entity is created that represents a coming together of two or more different information patterns. Redundant processing instructions would be excluded based on which serves best in the current environment; this knowledge drawn from its assimilated memory. It doesn't take much imagination to see where such a development could potentially and, if science fiction writers are to be believed, eventually lead.

From understanding our own humanity, we can then begin the process of recreating it. From recreating it we may stumble on ways to improve it; creating something that not only understands and mimics us, but surpasses us. Moving past human evolution and instead creating a Human Revolution. The thinking machine may indeed be our next step.

Labels: , ,

Wednesday, July 08, 2009

LIME 3G vs. Claro 3G: And the winner is... Digicel?

Here in Jamaica a war in looming on the mobile Internet landscape. Claro had fired the first salvo when they launched their 3G network after purchasing MiPhone. Now LIME has entered the arena with their own offering.

I think, or rather hope, Digicel is quietly thanking LIME for their recent roll. Why? Because the enemy of my enemy is my friend.

Since Claro has come on the scene, in my humble opinion, they haven't really given any compelling reason to move to their network save one, their 3G data services. Sure, Claro has great features and call plans, but unless you make a wholesale move with all your friends and business associates, you wont be realising any real benefits any time soon. However 3G is a personal benefit that you can reap rewards from the day you sign up.

Whether or not that was the intent, 3G serves as a bottom-up approach to grabbing market share. If you can get enough people unto your network solely for 3G, it's not far fetched to assume that a sizable chunk of those users may want to make a call or two, or simply not want to have multiple devices (whether mobile phone or dongle), when a single device can perform all their needed functions. Therefore 3G users are all potential converts to Claro's voice services.

Now along comes LIME who, while still the second largest mobile carrier in the island, really hasn't had any fanfare to speak of over the last few months (years?), but have now changed that with the launch of their own 3G data service. Claro is gunning for the incumbent, and 3G is how they could, or rather would, have done it. Now that LIME has rolled out 3G however, the landscape has changed, and it now gives Digicel the high ground.

As of this writing, LIME has, hands down, the better 3G offering; both in terms of price and speed. This coupled with the proliferation of 3G capable devices already on LIME's network (read Blackberry), not to mention the free 3G dongle that users receive if they sign up for a 2 year contract, LIME is well suited to become the 3G provider of choice if that's what you're looking for from a carrier. And this is the death knell for Claro. Their hail mary, should their call plans not win users over, would have been their 3G data services. If users that just want data now have more compelling reasons to sign up with LIME, this takes away Claro's only competitive edge.

LIME is doing Digicel the favor of ensuring Claro remains uncompetitive. LIME is the evil Digicel already knows and, for the most part, tamed. Claro is still the loose canon and an unknown variable, and this attack by LIME only serves Digicel's purposes.

You can and should expect a response from Digicel sometime in the near future, but rest assured that there's silent appreciation of the work LIME is doing in lieu of their own battle plan. Digicel wont be losing customers to Claro any time soon.

Labels: , , , , ,

Sunday, June 07, 2009

Lies, Damn Lies and Statistics

While following the underlined blue text I kept finding while doing some reading on netbooks, I eventually came across this blog post written by Brandon LeBlanc a few days ago. The whole thing is the usual Microsoft self stroking about how great they are, but there were a couple gems which stood out to me, and one in particular which actually brought me to the post:

"Windows now account for a whopping 98% of all small notebook PCs sales at retail in the US." [Emphasis his]

Lets assume for the sake of argument that the number stated above is properly researched and correct. This might lead you to think that the netbook industry, which is still in wrapping plastic, has been a slam dunk for Microsoft. The truth however, is always hidden in the detail.

I'm a proud owner of an ASUS 1000HE. It's everything they advertised and then some. I got it on Amazon a few weeks ago and while doing my research I realised than Amazon and other e-tailers, gave me a myriad of options to customize my machine: I could get it in black, or in blue.
I didn't have a choice about the system specs or, and here's the kicker, the Operating System. If I wanted this machine I had to fork over the Windows Tax whether I was planning on using Windows or not.

Now I've read stories about how persons have taken the conservative approach to the Windows Tax, and have gone to great lengths to actually get their money back (Something about the EULA entitling you to return the product if you don't agree. I'm not sure, I haven't read it myself). It seems that whenever someone has been able to actually redeem their funds, it was a big enough deal for them to write about it and in some cases break out the camera and post a few snaps. Now being in Jamaica that was not really an option for me. Maybe it was, but the required time and effort certainly wouldn't have made it viable and I wasn't trying to take a principled stand. I simply downloaded my oh so sexy copy of Kubuntu 9.04, loaded it up, and went on my way.

Now imagine my chagrin when I come across the statistic quoted above and the realisation dawned on me that I, and many, MANY others that chose to use Linux instead of Windows on our netbooks, have been included in that number.

Linux has very steady footing in the netbook world. Microsoft would rather people not know that. They have, as they have always done, gone to great lengths to court OEMs and retailers into giving Windows as the only option on their netbooks, or at the very least, make it a 4 minute mile if you want to actually find a model that does not bare the Windows branding. They've even been successful in wooing ASUS; the company that broke ground in the netbook revolution. In fact at a recent news conference shared with a Microsoft exec., the chairman of ASUS apologised, though no one is sure why or to whom, because a company was displaying an ASUS netbook running Android at this year's Computex. An apology? How toady can one person be?

This whole thing bothers me a great deal, not only because I was unwittingly and now unwillingly included in Pro-Microsoft statistics, but because of the general misrepresentation achieved by using these numbers. I'm inclined to think LeBlanc is aware of this, chooses to be play ignorant, and write accordingly. It falls in line with how Microsoft has operated for many years. However if he truly isn't aware, I think that's an even bigger problem. Either way, the whole thing is inexcusable.

Labels: , ,

Honor Among Thieves

For those that eat up tech gossip the way Hollywood sycophants eat up Perez Hilton, yesterday (June 6) you may have borne witness to, or gotten some after the fact transcription about, the very unexpected meltdown of one Leo Laporte on his program TWiT Live while hosting Michael Arrignton and The Gillmor Gang. The whole thing stems from a question Michael asked, followed by a couple of statements that many, including Leo, would interpret as an insinuation that Leo's integrity was for sale.

Now, while it seems that they have kissed and made up, for a few hours afterwards even Arrington was worried that his professional relationship with Leo was down the crap shoot.

My take on this whole thing is that Leo had every reason to react the way he did. I'm not here touting his years of experience and whether or not that puts him above scrutiny, because frankly no one should ever be raised to that level. However, it's one thing when Jon Newbie walks up and asks such a question or makes that insinuation. It's a completely different thing when Michael, a respected personality, does it.

There needs to be mutual respect in the industry, or at the very least amongst the (self crowned) industry and thought leaders. Michael should have known better than to, in essence, call Leo out in such a manner. It's not that Leo is above quesiton, it's that he should be above Arrington's question, and that's needed to avoid these kinds of uncomfortable situations where both parties are now feeling a little slighted and being forced to mend fences in public.

So I'm glad the whole thing is coming to an amicable end, but notwithstanding, the whole thing should never have come up, and Arrington should have known better.

Labels: , , , , ,

Tuesday, July 29, 2008

Separation of roles

Many (pronounced "most") don't have a clear understanding, nor the willingness to learn what areas comprise the field of computing and what roles they play. So as a public service, I will try to break down and explain how each field contributes to the many end products in the area of tech.

First lets identify these roles. In my estimation they fall in one of the following four categories:
  • Computer Science
  • Computer Engineering
  • Information Technology (Specialist)
  • Information Systems Management (MIS)
These areas will overlap at the edges in some cases, but the roles can be clearly defined. There are also some niche roles interspersed within the ones identified, but they serve very specific purposes and can in almost all cases be viewed as an extension of one of the top four.

The relationship of the roles are also worth mentioning. Computer Science is perhaps the purest role in the discipline in that it doesn't depend on any lower level concept within its own discipline. Depending on what you're trying to accomplish, Computer Science may lean heavily on another subject area (Language Sciences in the case of Natural Language Processing for example) however at its core it's really just math and logic. Once you start going up the totem pole, each new area depends on the one before it. One way to look at it is this: Computer Engineering is applied Computer Science, Information Technology is applied Engineering and Information Systems Management is applied IT. Each takes from the previous and incorporates it for its own purposes.

These areas are all separate but equal. Each playing a part in the development and delivery of the information based landscape we enjoy today.

Lets get a deeper understanding of what each of these areas in the discipline require and the purpose they serve.

Computer Science
The job of a computer scientist is to formulate, test and publish high level theories on computation. The areas of computation are wide and varied and persons will, as is the case with all other scientific fields, tend to focus on a particular area for most if not all of their professional life. The goal is to become an authority on the chosen topic and to contribute to the body of work that exists in hopes of furthering the discipline. This is the top (or bottom if you prefer) of the pile. The work done by computer scientists form the basis of all the technological advancements you see today. Be it the Internet, a PC, or your new iPhone 3G, it all started with a bunch of mathematical formulas scribbled on a black board. The group is manned by scientists and mathematicians.

Computer Engineering
The next stop along the computing assembly line is Computer Engineering. The job of an engineer is to take the convoluted math spewed by scientists and to create real world applications and technologies. In many cases the end products are still too high level for direct consumer usage (think computer processors or application frameworks), but they are tangible and usable items ripe for integration into larger systems. This is where you actually start to see, hear and touch the products that where once abstractly spelled out in a dimly lit room overrun with grad students looking for a recommendation. Computer programmers and electronic engineers will be found here.

Information Technology
An IT specialist has the responsibility of taking the disparate products being produced by engineers and building practical and useful solutions for real world problems. When someone refers to a "computer guy", this is who they really mean as they have by far the most visibility and wear varying hats. They provide the most practical application of technologies and deliver end user solutions. Network and system administrators sit in this group.

Information Systems Management
This is the category that brings oversight and management to the world of computing. It is perhaps the least technical of all requiring only a cursory understanding of deep technological concepts. What it lacks in technical requirements it makes up for by demanding an understanding of business processes and requirements. This group bridges the gap between between the IT specialists and engineers and the conventional corporate roles in a business. They are the indispensable go between that has a foot placed in each camp and can interpret and communicate needs in both directions.

The lay description above should give a basic understanding to those who were never really clear on who does what. If you need more insight, check the repository of all human knowledge, Wikipedia [I've picked an apt starting point].

Labels: , , , ,

Thursday, May 22, 2008

The system isn't down, it's just broken

This post had a notable technology spin to it, but I'm not a fan of cross posting, so...

http://www.misguidedzen.com/?p=14

Labels: , ,