Wednesday, May 11, 2011
E-Fame and Internet Celebrities
Sunday, May 8, 2011
Peer to Peer Networking

Peer-to-peer networking is a distributed application architecture that partitions tasks between users, who are granted equal privilege within the network (thus the title ‘peers’), and who require no stable host or central server. Whereas in the client-server model there is a distinction between the one who supplies and the one who consumes, in a peer-to-peer network both peers in any given interaction are seen as both a supplier and a consumer. One of the great sources of publicity for peer-to-peer networking is due to the proliferation of peer-to-peer file sharing networks.
Peer-to-peer systems utilize abstract overlay networks on top of the native topology, rendering the network independent of the system’s physical topology. In structured P2P networks, peers are organized according to specific criteria, usually using distributed hash table-based (DHT) indexing. Unstructured P2P networks, however, do not provide an algorithm to organize network connections.
The peer-to-peer overlay network consists of each participating peer as a network node. Any two nodes that ‘know each other’ are linked, which is to say that a directed edge is formed between one node and another if the first peer knows the location of the other within the overlay network. The classification of a P2P system as structured or structured has to do with the way in which the nodes in the network are linked to one another.
There are several pros and cons to the use of such a network. On the plus side, within a given P2P network, each peer provides resources, including but not limited to bandwidth, computing power, storage space, etc. In a traditional client-server model each client presents only demands, which do nothing to improve the capacity of the network, whereas in P2P networks the system will grow with more interactions between peers. However, there is always the risk that non-secure codes could allow remote access to data on a user’s computer or even compromise the security of the entire P2P network. Measures can, of course, be taken (and today often are) in order to enforce file verification for security purposes on many networks; among these security measures are more advanced encryption methods, chunk verification and newer hashing methods. Internet service providers also tend to come down heavily on P2P networks, given their relatively heavy bandwidth use as compared to the most common browser activities (e-mail, etc.)
As much controversy as the illegal dissemination of protected content on P2P nations has aroused, this genre of network has also inspired some to view other topics on a peer-to-peer rather than server-client basis. Examples include the projected ideas of peer distribution, peer governance and peer property.
Tuesday, May 3, 2011
3D on the internet
3D is huge today. With the overwhelming influx of 3D movies in the past few years, and now the growing numbers of 3D enabled televisions and home video cameras, everybody wants 3D. It seems, the last frontier for this is the internet, and the ball is already rolling and we may soon have websites in 3D.
3D on the internet is not a new initiative. In the mid 90s a markup language called VRML (virtual reality markup language) was created to try and bring 3d to the web. Only surface colors could be defined, and it was relatively low fidelity in regard to the realism of rendered objects and environments. For it’s time it was a powerful tool, but ultimately did not succeed. It was used very sparingly, mostly due to long load times due to the bandwidth it required. It was succeeded by another language, X3D
X3D replaced VRML, it is XML based and an ISO standard formatting language. X3D supports more refined rendering quality than VRML, as well as shading and texturing of the 3D files. It also supports open source standards like XML, DOM and XPath, which allow for the inclusion of tools like an exporter and an editor. X3D has many applications, many of which are based in open source software. One such application is the program Blender which is a free open source 3D graphics application.
Google is also on point with the development of a functional 3D internet, as they are with most cutting edge web technology and applications,. They released a web based 3D api, called O3D which allows web developers to add 3D content to web pages. Developers can embed a regular obj file in a web site, and users can articulate and explore the 3D element right on the page. The beta was released in 2009, and while not many developers have taken advantage of it as yet, Google has been updating and expanding it since then, and it is now out of beta. Currently it is a plug-in which users must download in order to view the 3D content, but eventually the software will be built into browsers.
We are just in the infancy of the practical implementation of 3D on the internet. With the gradual release of HTML5, which will support more advanced 3D capabilities we will be seeing much more of this in the future. Some of the most obvious applications for 3D on the internet are games and advertisements, already two of the biggest online areas. Being able to manipulate and game in 3D environments, as simulated in the O3D video above, would completely revolutionize the online gaming industry.
This past summer I worked at a company called Direct Dimensions, who deal in the scanning and 3D digitizing of all kinds of objects and environments, from buildings and airplanes, to crime scenes and jewelry. I worked on a project called ShapeShot, which, using software from a company called Dimensional Imaging, digitizes faces in full color using a regular digital camera.
The video above shows the same system, but using video camera to capture 3d facial movies instead of images. The possible applications for having a 3D avatar of yourself for use on the web could prove interesting. It allows you to have a personalized avatar for that 3D game you will play on the internet in the future, or buy a bobblehead of yourself from an online retailer, or try on glasses or a hat from an online store, before you put in on at home to see how it looks.
We are just on the edge of the possible practical applications for a 3D enabled internet, and it will be very interesting to watch this new technology take hold in the coming decade.
sources:
http://news.cnet.com/google-tries-jump-starting-3d-web-with-o3d/
http://en.wikipedia.org/wiki/X3D
http://en.wikipedia.org/wiki/VRML
http://en.wikipedia.org/wiki/O3D
http://code.google.com/apis/o3d/
Saturday, April 30, 2011
The Evolution of Startups
The article in turn, intends to establish a definite pattern in such startups, in hopes that it might just be easier to recognize one in the “next big thing”.
Pitting it off against other search engines at the time, AltaVista, Yahoo! etc, which were otherwise crawling with news and advertisements, Google in turn kept it simple. Their clean webpage gave out the obvious message that their focus was indeed to provide the best of Search capabilities, and early adopters quite naturally took it in a stride - possibly owing to its reputation within Stanford as well. Its popularity soared, and so did widespread adoption. People shifted rapidly, not only because it was the best, but because everyone else was now using it.
‘The’ Facebook
Twitterbits
Twitter, perhaps Mashable’s favorite Social platform, had a rather interesting start as well. While not concocted in the likes of a garage, or as an accidental startup, it was rather the product of a brainstorming session at Odeo. Initially a simple SMS service offering the ability to post public messages, it was devoid of the sheer laziness accompanied with writing long blog posts (Such as this one). Everyone could give nippy little updates on their life – in 140 characters or less. It was simple, easy to use, and quite, quite unique.
Putting it all together
There are more that may be talked about – YouTube, Blogs, Wikipedia etc. - the list isn’t exhaustive. For the purpose of this article however, let’s stick to highlighting certain common characteristics in these particular cases.
So what’s next?
As for future startups? Will they be as simple, unique, and viral? Time will tell.
Friday, April 29, 2011
Video Games: Learning in Disguise?
Ever since its birth, technology has grown exponentially. Today, it is all around us. It has seeped into almost every aspect of human behavior, be it education, entertainment, work, personal or social life. It is an unstoppable tide and will continue to have its growing impact on us. Video games came into the scene around 35 years back. Though it was invented with the intension of imparting entertainment value, over the years, the objective of video gaming has changed. In the recent years, the video game industry has enhanced surprisingly. It has captivated the market with new inventions in regular intervals of time. Its targeted audience, the teenagers have been increasingly attracted to it. As a consequence, there is a worry hovering around the minds of teachers and parents. A very important topic of concern for the adults today is the video games. We often hear mothers complain about the number of hours their children spend on video games. ‘Is video gaming an addiction?’, ‘Does it have detrimental effects on the thinking skills of a regular gamer?’, ‘Are the concentration skills of a teenager being drained due to this?’ Various studies and surveys are being conducted to answer questions like these. Though one might consider video games to have only entertainment value, in my opinion there is more to video gaming.Video gaming demands from the players a high level of visual and audio attention, rigorous interactive involvement, accelerated responsive skills and multitasking abilities. Players are required to divide their concentration among more than one thing. We might not be able to see any instant or visible learning as it is not in the form of grades, but players enrich many elements of their learning curve while engaged in a video game. Players will usually struggle until they complete a level and then move on to the next one to face greater difficulty. Thus, video gaming is a gradual process of learning.I must not overlook the fact that just as every coin has two sides to it, video gaming too comes with certain counterproductive traits. Just like any other beneficial object, excess of video gaming can prove to be damaging. Though I support the play of video games, I do not encourage gamers who ignore other aspects of learning. Playing does add certain important values to ones’ learning curve, but it cannot act as a perfect source.Games like World of Warcraft give players the means to save worlds, and incentive to learn the habits of heroes. What if we could harness this gamer power to solve real-world problems? Jane McGonigal in her TED Talk says we can, and explains how.Another TED Talk by Ali Carr-Chellman on how video games can particularly re-engage boys in learning.I would like to restate in assurance that video game is a learning in disguise. Teens' develop certain vital abilities which are needed to form a dynamic learning curve. These skills cannot be learnt in school. I would also like to state that excessive video gaming can cause addiction which will prove to be deleterious. Thus, taking into consideration the fickleness of a teenagers'mind, I would like to belabor that the teenagers' video gaming habits should be monitored by adults. If played under supervision, video games can definitely be an entertaining way of gaining education, a point where learning would meet fun.Resources: TED Talks: ideas worth spreading
Sunday, April 24, 2011
Collaborative Software
Definition
Software that tries to compensate for face-to-face or collocated tasks by providing a system that allows users to store and modify data, interact with each other and achieve mutual goals. Popular examples of software are
I would like to expand this definition to include technology that we use regularly to communicate with people that are not physically collocated, sharing information and knowledge that pertain to common objectives. Applications such as Skype allow file sharing, instant messaging and video conferencing. Another application, Basecamp, provides project management tools for teams to create milestones, to-do lists and track hours, while working in disconnected settings.
Collaborative software to my understanding is any software application that attempts to bridge the gap of communication between people that are not geographically collocated by providing a set of tools that constitute an interactive virtual environment.
Interesting Concepts related to Collaboration
During the late 20th century and early 21st century, with the rapid advances in computer technology, companies envisioned reaching certain milestones in the next few decades that are yet to be accomplished.
A popular concept video is the Apple Knowledge Navigator. These concept videos seem absurd but to think that we do not have anything equivalent to the Knowledge Navigator, more than 30 years since this video was made, exposes the flipside of technological progress.
Apple Knowledge Navigator:
However, a few innovative and rather expensive collaboration tools have been implemented. ATT’s Video Conferencing and Cisco’s Telepresence are elaborate systems that require companies to make large monetary commitments to install these collaborative tools for their employees.
ATT Telepresence:
Cisco Telepresence:
Two other interesting ideas are MIT’s ClearBoard and Mircrosoft’s Future Vision 2019.
ClearBoard: http://web.media.mit.edu/~ishii/CB.html
Future Vision:
History
Colossal Cave Adventure created by Will Crowther in 1975 can be called the beginning of online collaborative software, a beginning that came about through the gaming community. With an increase in online gamers and faster Internet connection, the need for collaboration to boost the gaming experience led to new innovations such as MUD, Multi-User Dungeon in 1978. Most of these applications remained in research communities and were not accessible to general public till the advance of dial-up modems in homes.
Outside of gaming, VOIP(voice over IP) and video sharing contributed to the growth of collaborative software. The government began using collaborative applications in the early 1990s and the Navy's Common Operational Modeling, Planning and Simulation Strategy (COMPASS) was the first robust collaborative application. It allowed up to 6 users created point-to-point connections with one another; the collaborative session only remained while at least one user stayed active, and would have to be recreated if all six logged out.
Groupware is another interesting concept closely associated with collaborative software. It focuses on increasing efficiency of groups in a distributed setting. Groupware has been talked about since the 1980s and there a two quotes that express what the idea is and what people expect to see-
"Like an electronic sinew that binds teams together, the new groupware aims to place the computer squarely in the middle of communications among managers, technicians, and anyone else who interacts in groups, revolutionizing the way they work." -Richman and Slovak
"If GROUPWARE really makes a difference in productivity long term, the very definition of an office may change. You will be able to work efficiently as a member of a group wherever you have your computer. As computers become smaller and more powerful, that will mean anywhere." -Kirkpatrick and Losee
What you are most likely to hear about today(I have personally enjoyed using)
Dropbox is a file hosting service operated by Dropbox, Inc. which uses cloud computing to enable users to store and share files and folders with others across the Internet using file synchronization. Sharing can be done between dropbox users, right click a folder in your dropbox and choose share and you can then invite another user to share it. Each one of you can put files in the folder for eachother, and you each have full access to the files. So you can each edit, delete, add files etc. The only thing to be aware of is that files in the shared folder count against the quota of all people sharing it
Dropbox has free and paid services, each with varying options. There are a total of 10 clients, including versions for Microsoft Windows, Mac OS X, and Linux as well as versions for mobile devices, such as Android, iPhone, iPad and BlackBerry, and a web-based client for when no local client is installed. Dropbox uses the Freemium financial model and its free service provides 2 GB of free online storage and users who refer Dropbox to others can gain up to 8 GB of free storage.
Further Information:
http://lifehacker.com/#!397778/dropbox-syncs-and-backs-up-files-between-computers-instantaneously
Google Docs & Spreadsheets can handle the nuts and bolts of daily office work, such as composing and editing text documents. Crunching numbers in a spreadsheet, and making basic slide shows. While the features are far fewer than those of desktop software such as Microsoft Office, this online service conveniently lets you do your work anywhere and collaborate with other users.
It is free service from Google that allows you to upload and save documents from your desktop, edit them online from any computer, and invite others to read or edit your documents. Files are stored in Google's secure servers.
Google Docs & Spreadsheets is easy to set up and offers a clean interface. The service tags documents by subject and imports various file formats. It can export to PDF or download as original file format. The spreadsheets includes formula shortcut, auto saves files, works with ODF and Microsoft Office files
What to watch out for
Amazon’s cloud service provides a virtual computing environment, allowing you to use web service interfaces to launch instances with a variety of operating systems, load them with your custom application environment, manage your network’s access permissions, and run your image using as many.
Here are some interesting articles that involve these three services and what has been happening recently:
http://venturebeat.com/2011/04/21/amazons-cloud-crash-takes-down-foursquare-reddit-and-others/
Implementation and Consideration Issues
Chat and voice communications are routinely non-persistent and evaporate at the end of the session. Virtual room and online file cabinets can persist for years. The designer of the collaborative space needs to consider the information duration needs and implement accordingly. And until recently, bandwidth issues at fixed location limited full use of the tools. These are exacerbated with mobile devices.
Authentication is a major problem for Groupware. When connections are made point-to-point, of when log-in registration is enforced, it's clear who is engaged in the session. However, audio and unmediated sessions carry the risk of unannounced 'lurkers' who observe but do not announce themselves or contribute.
Collaborative software is an umbrella tern for desktop applications, web services and management tools that allow users to communicate through the service. There is a plethora of tools that enable sharing such as video conferencing, wikis, revision control etc. and each has a different set of challenges associated with it.
This blog post does not seek to cover all the existing collaborative software tools but is a way for me to talk about some of my favorite tools, what I think will be big next and how ideas from the last 50 years have evolved into the most useful applications for me as a college student.
References
http://en.wikipedia.org/wiki/Collaborative_software
http://reviews.cnet.com/online-software-services
http://web.media.mit.edu/~ishii/CB.html
http://venturebeat.com/2011/04/21/amazons-cloud-crash-takes-down-foursquare-reddit-and-others/
http://lifehacker.com/#!397778/dropbox-syncs-and-backs-up-files-between-computers-instantaneously
Saturday, April 23, 2011
YouTube
iPhone Applications
Mobile applications have been available for many years, but it wasn’t until the introduction of Apple’s App store that the App industry began to gain any serious traction. In the few short years since the App Store launched, mobile applications have gone from being almost a gimmick, which served little purpose beyond novelty and entertainment, to being powerful tools that enhance people’s lives in powerful and dynamic ways.
While the mobile application market is primarily dominated by games, there are many innovative apps which show the potential mobile devices could have to change our lives; one such app called “Word Lens” allows you to point your camera at a sign in Spanish and it will instantly translate the sign and display its contents in English, and vice-versa. An App called “TuneIn Radio” lets you listen to over 50,000 radio stations from all over the world sorted by genre, location, or popularity. Other Apps, such as those for Facebook and Twitter let you stay connected and on top of your social life literally 24 hours a day. The era of being allowed to take half a day to respond to emails or Facebook messages is rapidly coming to an end as rapidly changing social norms now create the expectation of immediate and total connectivity at all hours of the day and night.
The Apps becoming available, and the technology powering mobile devices are changing so quickly it has become very difficult to predict what kinds of trends and technology will be in favor a few years, or even months, from now. However given current trends I think it seems very likely that mobile devices will eclipse personal computers in terms of usefulness and usage-hours sometime in the very near future.
Over Winter break a few months ago I decided it would be a fun experiment to try to develop my own iPhone App. I downloaded the iPhone Software Development Kit (which is completely free, but you have to pay $100 before you can submit your app to the App store, and you need to have a Mac), and found it to be an extremely powerful and well thought out platform. There is a bit of a learning curve associated with understanding how to use the software, and with learning Apple’s special programming language “Objective-C”, but there are a lot of extremely well made tutorials on YouTube and elsewhere that can help you get started quickly, and whenever you encounter errors or do not know how to do something, you can Google your issue and you will almost always be able find the solution very quickly on sites like stackoverflow.com or iphonedevsdt.com. Whatever your problem is, chances are thousands of other people have encountered it already, and the solution is only a quick Google Search away. Programmers tend to be extremely nice about answering questions, and helping people along in online forums. I have Goggled many hundreds of Objective-C errors and how-to type questions, and I think I have yet to encounter a situation in which a solution is not available online somewhere.
iPhone development isn’t exactly for the technologically faint of heart, but if you are willing to invest the time necessary to learn a new language and development platform, and you are looking for a way to change the world in a way that doesn’t require much start up capitol, I think iPhone (or Android) development is a very exciting path.
If you are looking for ways to get started, DO NOT start with Apple’s official tutorials and documentation – they are terrible and will probably discourage you unless you are already a pro Mac developer. Instead, go to YouTube and type “Xcode Tutorial”, then follow along and do exactly what the 10-year-old super genius coders are doing. You can learn how to make a very simple iPhone App almost immediately this way.
This is probably the approach I would recommend for learning any new programming languages actually, if you are trying to do so on your own. Do not start with official documentation unless you are a pro, always start with YouTube tutorials or tutorials from elsewhere. The internet is full of wonderfully helpful tutorials, and they can usually get you up and running much faster, and with much less pain than books or official documentation.
The App I was working on is mostly finished, and it has a relatively functional prototype right now, but I haven’t had much time to work on it in the last few months. I hope to finish it and hopefully get it released over the summer.
To anyone else who wants to give iPhone dev a try, best of luck! Especially for people who are into programming, I think it can be quite fun.
References:
http://en.wikipedia.org/wiki/App_Store
http://tunein.com/
http://developer.apple.com/devcenter/ios/index.action