Our Latest Discovery - A WhatIs.com blog

Our Latest Discovery:

 

A WhatIs.com blog


Discover great Web sites, videos, photos, information technology (IT) definitions, blogs, tutorials, cheat sheets and learn about Internet culture in general at this blog.

Video: Richard Stallman talks about the importance of free software, GNU, copyleft and open sourcing

In these videos, Robin Good interviews Richard Stallman about free software and the open source movement. Stallman created the GPL and the Free Software Foundation to protect the GNU operating system from becoming proprietary.

In the sequence embedded below, filmed, the founding father of open source software answers a series of questions. This interview was originally posted at MasterNewMedia.org in 2006 and features commentary and links from Robin Good.

Q: What is free software?

Q: What are the negative consequences of using proprietary software instead of free software?

Q: What free software do you recommend using?

Q: Can individuals and organizations use GNU/Linux in their daily operations?


Q: What can individuals do to support the open source movement?

Video: How to install the Cosmos User Kit

This video from GoCosmos.org demonstrates how to install the Cosmos User Kit.

Cosmos is an open source microkernel .Net-based operating system written entirely in C#. The folks over at SharpOS.org, who have also created a microkernel OS written in C#, have reasonably objected to claims that Cosmos is the first OS of this type. Both operating systems can be installed and run from a USB jump drive, which only adds to their geeky cred.

You can get updates to the Cosmos project at the official blog. A Cosmos FAQ is also available at the site.

Videos: Application Design using Real-Time Specification for Java (RTSJ)

Sun has uploaded a number of helpful tutorials and lectures to YouTube, including this three-part series that features Dr. Doug Locke explaining the Real-Time Specification for Java (JSR-001). The Sun Java Real-Time System (Java RTS) is Sun’s commercial implementation of the JSR-001. Application developers interested in using Java for real-time applications (RTA) should find this series useful.

Part I

Part II

Part III

Video: Botnets, Botmasters, Zombies and the greatest threat to online security?

Professor Merrick Furst, associate dean at the College of Computing at Georgia Tech, explains how botmasters use zombie armies for financial gain. Furst estimates that about 7% of all Internet traffic is zombie. Kraken, today’s Word of the Day, is now reported to be the largest botnet in the world, with over 400,000 machines infected.

Video: Scott Forstall demonstrates Touch Fighter at the Apple SDK launch

Two weeks and less than 10,000 lines of code result in this demonstration of a starfighter action game on an iPhone that takes advantage of the device’s accelerometer, touch screen and high contrast display. This is a great use of the interface and should inspire some creative thinking the software development community.

My immediate thought upon seeing Steve Forstall’s demo is that there could be a lot of flying iPhones, similar to the stories we’ve heard about the Wiimote. Remember those videos of plasma screens when the Wii debuted?

Now just imagine it’s a device that costs more than $500 direct from Apple in the U.S. and often much more than that in Europe.

That being said, I’m excited to see how software designers take advantage of that new Apple iPhone SDK.

That and Spore. Given more than two weeks to work on this game, I think this could be a killer gaming app for the device.

Video: New Features in the Next C++ Standard

This Google Tech Talk addresses each of the new features in the upcoming standard for C++. You can read more about them in depth at the Wikipedia entry for the new standard, C++0x.

Video: Ted Nelson, hypertext and the Web

In this Google TechTalk, Ted Nelson discusses implementing the original hypertext concept and how transclusion should be used now to fulfill its original potential.

While Nelson is credited with coining the term “hypertext, Vannevar Bush is responsible for inventing the concept, which he described as “instant cross referencing.”

As usual, we tread in the path of giants.

Andreesen on the three kinds of platforms, the cloud and the future of the Internet

One of my favorite discoveries of the past year has definitely been Marc Andreessen’s blog. From the moment he first started posting long, chewy, thoughtful discussions of his thoughts on technology, business and startups (along with wonderful digressions into great new sci-fi writers, Web 2.0, and essential online cheat sheets), Marc has been on the must-read list for most of the techie blogosphere.

Now, the famous co-founder of Netscape and co-author of the Mosaic browser has moved on to Ning, a social networking startup that’s jostling with Microsoft, Amazon, Sun, Facebook and others to provide a platform for all manner of distributed applications, all within “the cloud.” Amazon even calls their platform the Elastic Compute Cloud, or EC2.

Therein lies the rub. The word platform has become overused to the point of losing any precise meaning. WhatIs.com has long provided two definitions for platform:

1) In computers, a platform is an underlying computer system on which application programs can run. On personal computers, Windows 2000 and the Mac OS X are examples of two different platforms. On enterprise servers or mainframes, IBM’s S/390 is an example of a platform.

A platform consists of an operating system, the computer system’s coordinating program, which in turn is built on the instruction set for a processor or microprocessor, the hardware that performs logic operations and manages data movement in the computer. The operating system must be designed to work with the particular processor’s set of instructions. As an example, Microsoft’s Windows 2000 is built to work with a series of microprocessors from the Intel Corporation that share the same or similar sets of instructions. There are usually other implied parts in any computer platform such as a motherboard and a data bus, but these parts have increasingly become modularized and standardized.

Historically, most application programs have had to be written to run on a particular platform. Each platform provided a different application program interface for different system services. Thus, a PC program would have to be written to run on the Windows 2000 platform and then again to run on the Mac OS X platform. Although these platform differences continue to exist and there will probably always be proprietary differences between them, new open or standards-conforming interfaces now allow many programs to run on different platforms or to interoperate with different platforms through mediating or “broker” programs.

2) A platform is any base of technologies on which other technologies or processes are built.

Fortunately, in this mammoth post, Andreessen both modifies and adds to these definitions, putting the term in the context of the Internet and then exploring three different levels of online platform: the “Access API,” the “Plug-in API,” and the “Runtime environment.”

As a rather famous online pundit often writes,  read the whole thing (RTWT). If you’re at all interested in programming, online business strategy and the concept of the cloud, you’ll be glad you did.

Code to Joy’s 7 Wonders of Programming Languages

It’s been quite a week for wonders of the world. First, the online world got together and voted for seven modern wonders of the world, provoked by the lonely status of the Pyramids as the last remaining example of the ancient wonders. (For those that love these kinds of lists, Wonderclub.com has put together their own indices of global wonders, including ancient, modern and natural versions.)

My eye was drawn, however, to this list of programming languages from Code to Joy, where computer scientist, philosopher and cyberscriber M. Easter has “compiled” his own, “admittedly biased,” list of languages. In chronological order, here are the languages that the digital composer thought were the seven wonders of the coding world:

  1. Fortan
  2. Lisp
  3. Smalltalk
  4. C
  5. Python
  6. Java
  7. Javascript

Now, no doubt many of you are already grumbling. What about C++, Visual Basic, COBOL, Perl or APL? What about the sexy new kid on the block, Ruby? What about PHP, ubiquitous on the Linux servers that underpin today’s database-driven Internet?

Several comments on Easter’s post have already listed those examples, protesting Easter’s choices, along with .NET, Forth, SKILL, Objective-C, Haskell and others. As usual, everyone has an opinion — especially on a rather subjective subject like this.

Whew! Editing a list like this isn’t easy, of course, and it’s much easier to criticize than create. What do you think? When you look at the history of code, as illustrated in this exceptional diagram of the evolution of programming languages (hat tip to M) which do you think are “wonders of the programming world?”

What would your list look like?

My own line in the sand, in case you were wondering, would (in no particular order) reads follows:

  1. Javascript
  2. Java
  3. C
  4. Ruby
  5. COBOL
  6. Perl
  7. Python

Agree? Disagree? Think the whole thing is preposterous? Comment away.

uMouse: Control your computer using gestures and a webcam, not a mouse

This past weekend’s iPhone launch has introduced hundreds of thousands of users to a new paradigm for mobile computing interfaces, multi-touch. While only time will show if an small, touchscreen keyboard will be a pleasant and productive experience, there are any number of other companies and researchers experimenting with different ways of controlling our digital devices. I’ve been using a Kensington Orbit for years, for instance, a USB trackball that has proven tough, easy to use and helpful for scrolling and editing long lines of code. Earlier this year, I invested in a Logitech MX Revolution, easily the best wireless mouse I’ve ever experienced. I can’t emphasize how much I love the hyperscroll wheel, forward/backward buttons right where my thumb rests or programmable buttons.

This afternoon, however, I found a new and downright fun new way of moving the cursor around the screen. Sadly, the brain-computer interface (BCI) that DARPA is developing isn’t quite ready for prime time, so don’t get too excited — yet. Instead, programmer Larry Lart has created uMouse, a free Windows application that, in concert a USB webcam, allows the user to control the cursor and left- or right-click using head movements or hand gestures. While the real-time visual tracking the program uses to translate movement into directives is a bit processor intensive, anyone who presents often or needs to have more flexibility in where and how they interact with a laptop or workstation now has another option with undeniable geek appeal.

Nice work, Larry! Now, to decide what I want my PC to do when I smile. :)

Dapper: Build Web applications and mashups without programming

Dapper makes it easy to extract and use information from Web sites. If you’re familiar with Web services, you might recognize Dapper as an API maker. We discovered Dapper through GridLab, where a clever Italian blogger applied Dapper to WhatIs.com. Put even more simply, Dapper creates an RSS feed for any Web site, which then can be manipulated in a number of ways. Dapper will only work on HTML-based sites, so if you’re trying to create a feed from a Flash or AJAX-heavy site, you’re likely out of luck. It’s possible to make your widget private, too, if that’s of interest.

Even if you aren’t ready to dig into serious coding, this widget is worth a look. Dapper is still in beta, free to all.

Lighthouse: A free on-demand software development management system

Artifact Software has released a new tool that they’re calling “Lighthouse.” Lighthouse is a free, on-demand software development management (SDM) system built specifically for the software development industry.

Lighthouse features a personalized real-time dashboard that displays reports from project management tools, allowing developers and project managers alike to properly manage internal and external expectations of timelines for deliverables, measure productivity and provide greater transparency into the development process, identifying potential roadblocks in the process.

ToDo.txt: Gina Trapani lifehacks her way into productivity scripting

Are you always struggling with multiple todo lists and trying to be more productive? Are you comfortable with the command line? If so, try out ToDo.txt. It’s a simple, elegant way to combine scripting and text files. Gina Trapani, Lifehacker and blogger extraordinaire, is the lead developer of the the code for this particular discovery.

While this method isn’t for the faint of heart or the inexperienced, Unix gurus and productivity mavens alike will enjoy the library of scripts and management tools found at ToDoTxt.com.

Google Code Search: Helping software developers find code since 2006

Google Code Search is up and running! Google Labs has released a new search engine specifically designed to help software developers search for code. Google’s stated goal with Code Search is to “provide a useful resource for developers and help increase collaboration within the developer community.” Google maintains a blog with news and developments regarding the tool and a FAQ for developers would want to keep their code from being crawled.

Krugle: A source code, documentation and knowledge base search engine for developers

Krugle is a search engine that allows developers to find and interactively browse source code files, code documentation, discussion forums, knowledge base information and relevant open source projects.