vivek's blog

General Game Playing

From Computer scientists focus on developing programs that can learn game rules:
From mahjong to Monopoly, bridge to Bingo, Sorry to Scrabble—games are serious fun. And with their diverse rules, they're also the perfect tools for exploring concepts in artificial intelligence (AI) and new approaches to programming, say Stanford computer scientists.
From the General Game Player Project:
A General Game Playing System is one that can accept a formal description of an arbitrary game and, without further human interaction, can play the game effectively. [...] General Game Playing systems are characterized by their use of general cognitive information processing technologies (such as knowledge representation, reasoning, learning, and rational behavior). Unlike specialized game playing systems (such as Deep Blue), they do not rely exclusively on algorithms designed in advance for specific games.

Google Extensions for Firefox

[img_assist|fid=82|thumb=1|alt=Firefox]

Google Labs has released three extensions for the Firefox web browser - Google Toolbar featuring a spell-checker, form auto-filler etc; Google Send to Phone which sounds cool but, sadly, only applies to U.S. numbers; and Google Suggest extension making the Firefox search bar act like Google Suggest Beta (the web based version released earlier).

Sun SPOT

Sun SPOT (Small Programmable Object Technology) is a new research project at Sun Labs that promises to turn a vision into reality, the vision being, to make wireless sensors ready for mass commercial deployment by simplifying application development for them. Wireless sensors are inexpensive battery-powered, low-power communication devices composed of radios and exceptionally small mechanical structures that sense fields and forces in the physical world.

These [...] devices can be deployed throughout a physical space, providing dense sensing close to physical phenomena, processing and communicating this information, and coordinating actions with other nodes. Combining these capabilities with the system software technology that forms the Internet makes it possible to instrument the world with increasing fidelity.

With appurtenances as actuator mechanisms or tranducers, the possible applications of wireless sensors are endless. Touted as "exciting" and "highly-anticipated", the domain of application (and the consumer base) of this technology is vast and includes business communities, industries, military, scientific research etc. The Sun SPOT system essentially simplifies the development of wireless transducer applications, and in doing so it strives to solve the challenges facing the widespread adoption of this technology, such as, tight resource constraints, lack of productive development tools, lack of specific communication standards etc.

Apart from being a cool name for a project, under the hood, a Sun SPOT system has quite an impressive array of technologies in use, both hardware and software. The system is a based on a 32bit ARM-7 CPU and an 11-channel 2.4GHz radio. The platform enables development of wireless transducer applications in Java using a sensor board for I/O, 802.15.4 radio for wireless communication etc. The system features a standards-based end-to-end security architecture called "Sizzle", and the "Squawk VM" which has a small memory foot-print and enables the applications to run directly on-CPU without an underlying OS.

Comega

[img_assist|fid=72|thumb=1|alt=Microsoft Research]

Just stumbled upon "C Omega", a new data-oriented programming language developed by the Programming Principles and Tools group at Microsoft Research (UK). Cw extends C# by adding constructs that make it better at processing XML and relational data, with additional features for writing concurrent programs.

More -

Knuth in a Year

[img_assist|fid=60|thumb=1|alt=Reference (Resource)]

The Art of Computer Programming Reading Group is for those of us who suffer from the perpetual procrastinate-reading-knuth syndrome. Starts June 1st'05. Subscribe to the mailing list here.

Ports: Offline Upgrades & Installs

[img_assist|fid=55|thumb=1|alt=Daemon]

Sometime back there was a discussion at the BSD-INDIA mailing list on offline port upgrades and installs. Here's my take on that issue -

> It is normal to upgrade or install the ports when online. However, when
> one doesn't have an Internet connection and has to depend on offline
> downloaded files, how do we apply the upgrades or installs?

If you want to build from source without an internet connection, you must get the tar balls prior to the installation and put it in the distfiles directory (usually, /usr/ports/distfiles). Alternatively, you can set the "CD_MOUNTPTS" environment variable to a list of CDROM mount points to look for the distfiles. I haven't tried the latter method, you might want to check out (/usr/ports/Mk/bsd.port.mk). If you want to install from pre-compiled packages, all you need to do is,

$ pkg_add -v package.tbz

Check out pkg_add(1). Set PKG_PATH environment variable to the list of direcotries where the packages are located. Sometimes portupgrade(1), portinstall(1) can be more useful. They are extensively documented in the man pages.

If the idea is to save your time spent online, what you can do is go to the ports directory and do a recursive fetch, which will fetch all the distfiles for that port and its dependencies recursively, without building.

$ cd /usr/ports/cat/port && make fetch-recursive

Then, you may disconnect and build. You can also fetch packages recursively, see portinstall(1).

Majoring in Computer Science?

[img_assist|fid=59|thumb=1|alt=Blog for thought]

Paul Graham has some advice for you - Undergraduation, More advice for undergrads.

So does Joel Spolsky - Advice for Computer Science College Students

Electrical Engineering vs. Computer Science

Electrical Engineering vs. Computer Science
Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?"
Read the story.

Google: Personalized Homepage

[img_assist|fid=64|thumb=1|alt=Web]

Personalized Google Homepage is a new treat from Google Labs for its users. You can integrate your Gmail account with previews, feeds from select news sites, quote of the day, word of the day etc.

COBOL, Live and Kicking

[img_assist|fid=58|thumb=1|alt=Application]

Contrary to what many believe, COBOL is not dead *shudder*. Apparently, code written for this beast of a programming language is too valuable to be discarded, and according to Micro Focus' survey, it still tops the chart as the programming language of choice in Mainframes.

According to preliminary results of Micro Focus' survey of 750 mainframers in the U.S. and Canada, 41% name COBOL as a principal programming language by an approximate 25% margin over Java, the next most popular language. Preliminary results also find 52% of mainframe applications are still written in COBOL.

What's hot as a mainframer is not just the ability to write COBOL code but also to be able to integrate it with newer frameworks such as .NET, J2EE etc. Universities have begun to include COBOL in their syllabus.

COBOL skills needed in the future