Knowledge Threshold

This is a philosophical question as well as a CS question but as I read through more and more code, syntax, semantics, etc, I gain new knowledge that is stored and reused. Does anyone believe that there is ever a limit for human learning and understanding?

Let’s consider a though experiment: If a baby is raised, trained and taught only Java for the rest of his life, will he be an irrevocable master of language? ie. would he ever have any troubles with anything pertaining to Java? If so, then such a human being could probably be the solution to any and all bugs and software related to Java.

If I were to continue learning at a pace of maybe 1 programming book a month, how long would it take me to master all the programming languages? It is intriguing to believe that anyone could master anything, given time. If the boundaries of time are not set, then everyone would be experts on anything.

Well thats my idea of a knowledge threshold, I’m sure that there’s no general limit to human knowledge, but I want to know whether there is a limit for human knowledge in specific areas such as a programming language or a mathematical theory. Feel free to discuss.

Schedule for the next little while

Being a good computer scientist is like being a well-oiled machine. You gotta work on things and deal with them one after the other. A good work ethic is key to being successful at any career. You have to have the passion to accomplish something, mere talent and wanting to do something isn’t enough, you have to be able to commit and commit heavily to your goals. That’s what I am working on right now. Changing your habits is hard, as anyone will tell you.

So far I have these next few weeks planned out:

Today: RIMM Info session, start on CSC318, Planned organizations to submit proposals for: WikiMedia, WordPress. I wanted to submit a proposal for NUIgroup as well, but looking through the forums, there are so many other people who have a better understanding of MT than me, and I haven’t even had time to play around with the projects. WikiMedia, my plan is find a way to integrate OpenStreetMaps with the wiki maybe using Openlayers as a good starting library. There are many good ideas for wordpress as well, particularly the idea for Buddypress. I will think more about that later.

Mar 28-30: CSC318 Project. Working on different bugs and ideas for WordPress, Audacity and possibly Mediawiki. I plan to have two proposals done by Mar.31 (the GSoC Panel discussion).
Mar 31 – Apr 3: Submit and finish up GSoC proposals, Enrol for ECO minor, Work on CSC301 Project, Submit resumes and cover letters for PEY.
Apr 4 – Apr 8: Finish up CSC301 and CSC318 projects and preparing for demonstrations of them.

Even with only three courses, it still feels like five…=/

The Digital Revolution

Firstly, this post is designed as a way to show off my Piclens slideshow capabilities so the amount of images present may be more than my previous posts.

Today, I’d like to talk to you (dear readers and stalkers of my blog) about an important issue in society today. We are experiencing, or perhaps in the midst of, a digital revolution, started in the 1980s and continuing through the present. Like the industrial revolution before it, this revolution has social, political, economic, military and industrial impact. Therefore as soldiers of the digital revolution, our first step would be to familiarize ourselves with the technology.

Cloud Computing

How it works
How it works
Web 2.0 tree
Web 2.0 tree
Software as a service
Software as a service

The first trend I want to talk about is the notion of cloud computing.
Cloud computing is the concept of computing in a cloud – that is, the need for desktop applications is reduced to the concept of computing inside web applications. It combines the trends of software as a service and Web 2.0 in order to provide the needs of “anytime,anywhere” computing to everyone who has access to the internet. This development is another example of tying together other technological trends which I will explain further.

Knowledge anytime anywhere
Knowledge anytime anywhere

Social networking and media sharing

We live in an age where unprecedented access to information has become commonplace, where a person with no access to any books or institutions but can still obtain knowledge via the internet. This is vastly different then what we had 20 years ago and it is one of the most striking amenities of the digital revolution.

Blogs gives us unprecedented information on other people's lives
Blogs gives us unprecedented information on other people's lives
WoW, the largest MMORPG
WoW, the largest MMORPG

The propagation of social networking allows us to be connected to people all around the world, giving us a constant source of contact and with it, its good and ills. In a way, this proliferation of constant networking gives us citizens a deprivation of privacy but also a good platform for our social agendas. Even games allow us to network with others and to escape to a different life online, separate and distinct from our real lives, perhaps out of a need for social interaction or a need to have fun. Regardless, the social web is everywhere and it is hard to not be caught in it.

Youtube allows sharing of videos
Youtube allows sharing of videos
Flickr allows sharing of photos
Flickr allows sharing of photos

In addition, the advent of these web trends and techniques allows us to view photos, art,audio and video like never before. New sources of inspiration exist for users worldwide. The importance of ideas such as web, media and technological convergence is thus an important goal for the future. I will take a look at more of these devices later in this post, but take note that devices aside, all we need is a browser in order to enjoy the fruit of web convergence’s labors.

Twitter allows us to constantly notify others of our status
Twitter allows us to constantly notify others of our status
Facebook is the largest social networking site in the world
Facebook is the largest social networking site in the world

We as people, also have the right to refuse the invasion of our privacy for social purposes. But in this ever more interdependent world, are we losing contact with the outside world? Are games and social networking and MSN distracting us from the pressures of real life? Are we pressured to adopt the new trends of the time in order to stay ahead?
I think as this revolution sweeps over everyone, we have the urge to always stay ahead with new technology concepts.

Integration with real life

Ebay, The largest online auction site in the world
Ebay, The largest online auction site in the world
Amazon, the largest online retailer
Amazon, the largest online retailer

The extent of how online services affects us extends to our daily needs. Shopping online is now considered as a normal alternative to shopping at a brick and mortar retailer. Online matching making and sites such as craigslist blurs the online and offline way of interacting in a way that we have never seen before. Imagine that not so long ago, computers were limited to those with a high income and now it permeates our lifestyle where ever we go.

Open source development and hardware

Drupal is an open source CMS
Drupal is an open source CMS
Joomla!, another open  source CMS
Joomla!, another open source CMS

So as we struggle to stay ahead of all these new innovations, developers such as myself will also have to learn new web programming techniques. This is also facilitated by new Open source software development, new web programming tools such as AJAX and Ruby on Rails, and new CMSs such as the one on this website. Even development methodologies such as Agile has been used to take advantage of fast-paced development. These new trends allow developers, alongside consumers to develop new tools to establish this notion of cloud computing and web convergence.

Wordpress powers this blog
Wordpress powers this blog
PHP and MySQL work well together as web 2.0 tools
PHP and MySQL work well together as web 2.0 tools

But as we move forward, we take notes from the tools of past so we can better serve the people of the future. These new tools for web programming, that allow developers to serve the consumers, must evolve as the trends evolve. But as I will explain further, this evolutionary process is not only for the web, but extends to the whole of this digital revolution.

Ruby on rails is a popular web 2.0 application framework
Ruby on rails is a popular web 2.0 application framework
The iphone which started the multitouch trend
The iphone which started the multitouch trend

New trends in hardware often follow the software. The advent of Multi-touch computing is evolving, with many mobile phones and now tablet pc’s taking advantage of this trend. Hand-in-hand we must also consider the development of multi-touch applications to go along with it. Existing Frameworks for it have already been developed. One area of development must fuel the other.

Netbooks are also a prominent computing trend
Netbooks are also a prominent computing trend

We can also see the power of PCs grow exponentially over time, as predicted by Moore’s law. The evolution of all this should lead us to believe that in a few years time, the supercomputers of today will be the laptops and PCs of tomorrow. Such is the rate of technology that a brand new device would be rendered obsolete in a matter of weeks. Such is the convergence of technology that the smartphones of today were the PCs of yesterday, and even simple devices such as mp3 players can double as clocks and calculators. Such is the importance of internet to our daily lives that pocket-sized computers, tablets, and miniature laptops called netbooks (all with GPS functionality) were designed primarily to access the internet anywhere where there’s a wireless or cellular (3G) reception.

The web as we know it, dominated by applications
The web as we know it, dominated by applications

So looking from that standpoint, one must wonder when the digital revolution will end? Perhaps it never will, since over the past century, developments such as the automobile, airplanes, telephones, TVs, electric appliances and the PC which came about in only the last 20 years have come at a staggering pace in comparison to the previous centuries. Therefore, to wrap up this discussion, I think the question of “What’s the next big trend?” is not as important as “What trends will be the most influential and the most lasting?”, because just because a trend is big doesn’t guarantee it a status in this ever changing world. It’s the trends that have the most lasting consequences, the ones which act as ‘milestones’ in this digital revolution, that will shape the trends after it. So I encourage everyone to take part in computer science and software design and be a part of it, because although this field is constantly evolving, the rewards for experiencing the future are much greater. Thank you.