Categories
Motorbike Technology

2012 Royal Enfield Classic 500: Complete Specifications & Owner Review

As a proud owner of the 2012 Royal Enfield Classic 500, I've been riding this beautiful machine for my daily commutes and can say without hesitation: it's a head-turner. The classic vintage styling is what drew me to this bike, and it never fails to attract attention wherever I park it. That timeless retro aesthetic combined with Royal Enfield's legendary thumping engine makes every ride special.

When I bought this bike, I was frustrated by the lack of comprehensive specifications available online. So I've compiled everything from my owner's manual to help fellow enthusiasts and prospective buyers.

Categories
Emacs Programming Technology Tutorial

Power Programming with Tags

Source tagging is a powerful source code navigation system that rivals modern IDEs. If you're using Emacs, Vim, or TextMate, you can use ctags for fast code navigation. Here are the steps to set it up.

Step 1: Install ctags

For Mac:

$ sudo port install ctags

Step 2: Create a Tag File

Navigate to your project and generate tags:

Categories
Technology

GTalk Bookmark button

One of my computers is an old RHEL 5.1 system on which I'm not allowed to install Pidgin or other desktop IM clients. So I was trying to figure out how to create a bookmark button for the GTalk gadget that opens in a convenient popup window. Here is the solution. 🙂

The Problem

Many work environments have restrictions on what software can be installed. If you're on a locked-down system but need to use Google Talk for communication, you're stuck. The web-based Gmail interface has GTalk integrated, but it's not ideal for quick conversations—you have to keep Gmail open, and it's buried in a tab.

Categories
Motorbike Specification Technology

2009 Pulsar 150 specifications

I am a proud owner of a 2009 Bajaj Pulsar 150cc DTSi. When I was researching this bike, I found it surprisingly difficult to find complete specifications online. Most sites had partial information or conflicting data. So after purchasing the bike, I compiled the complete specifications from the official manual and my own measurements.

Why the Pulsar 150?

I chose the Pulsar 150 for several reasons:

Categories
Review Software Technology

Curl – A gentle slope system

Note: This post is about the Curl programming language, not the curl command-line HTTP tool. They're completely different things that happen to share a name.

I recently learned about the Curl language, an MIT-DARPA project that's taking an interesting approach to web development. It's a multi-paradigm hybrid functional language that is reflective, homo-iconic, and object-oriented. It supports closures, macros, and declarative layouts.

Categories
Technology

GnuWin32 – GNU on Windows

GnuWin32 – GNU on Windows

GNU is an operating system that Richard Stallman developed in 1983 to provide a completely free and open-source software environment. It comprises various Unix-like tools, such as compilers, editors, and other utilities. GnuWin32 is a project that ports these tools to the Windows environment. This blog post will discuss GnuWin32, how it works, and its benefits.

Compatibility with Windows

Windows is a proprietary operating system, and many GNU tools are incompatible. GnuWin32 aims to provide a way to use these tools on the Windows platform. In addition, it gives ported versions of various GNU tools that can be used on Windows.

Benefits of using GnuWin32

One of the main benefits of using GnuWin32 is that it provides a free and open-source environment on Windows. This allows users to use various tools that are not available in the Windows environment. In addition, GnuWin32 tools are often more powerful than Windows equivalents. For example, GnuWin32’s version of grep can search for text in files much faster than Windows’ findstr utility. Moreover, GnuWin32 tools are often more flexible than their Windows counterparts, allowing more complex tasks to be easily performed.

Support and Documentation

GnuWin32 is an open-source project that is maintained by a community of volunteers. The project has an active community that provides support and documentation for users. The documentation is clear and concise, making it easy for users to get started with GnuWin32. Additionally, the community provides support through forums, mailing lists, and IRC channels, making it easy for users to get help when needed.

LTDR

GnuWin32 is an excellent project for anyone who wants to use GNU tools on the Windows platform. It provides a free and open-source environment on Windows, allowing users to use powerful and flexible tools unavailable in the Windows environment. In addition, the project is well-documented and has an active community of users and developers, making it easy for users to get started and get help when needed.

Categories
Technology

Python 3.0

A Bold New Direction

Python has some exciting news: Python Enhancement Proposal 3000 (PEP 3000) states that the Py3k project will lead to a new version of Python that will no longer be compatible with 2.x. This is a major milestone in Python’s evolution, and it’s coming later this year.

The original PEP 3000 was written in April 2006 by Guido van Rossum, and since then, the Python core developers have been actively working on this ambitious rewrite. The fundamental principle behind Python 3.0 is simple but radical: break backward compatibility to fix longstanding design issues and clean up the language.

Why Break Compatibility?

After more than 15 years of development, Python has accumulated technical debt. Some design decisions made sense in the 1990s but have proven problematic as the language matured. Rather than continue patching over these issues, the Python team decided a clean break was necessary.

As PEP 3000 explicitly states:

There is no requirement that Python 2.6 code will run unmodified on Python 3.0. Not even a subset. (Of course, there will be a tiny subset, but it will be missing major functionality.)

This is unprecedented for Python, which has historically maintained excellent backward compatibility. But the benefits of cleaning up the language are deemed worth the migration pain.

Major Changes Coming in Python 3.0

While the full list is extensive, here are some of the most significant breaking changes:

Print Becomes a Function

The print statement is being replaced with a print() function:

# Python 2.x
print "Hello, World!"

# Python 3.0
print("Hello, World!")

This change provides more consistency and flexibility, allowing print to be used like any other function.

Integer Division Changes

Division behavior is changing to be more intuitive:

# Python 2.x
>>> 3 / 2
1

# Python 3.0
>>> 3 / 2
1.5
>>> 3 // 2  # Use // for integer division
1

The current behavior where / performs integer division on integers has confused many newcomers. Python 3.0 makes / always perform true division.

Strings and Unicode

All strings will be Unicode by default. The current unicode type will become the default str type, and the old 8-bit str type will be replaced by bytes:

# Python 3.0
s = "Hello"  # This is Unicode
b = b"Hello"  # This is bytes

This fundamental change addresses one of Python 2’s most painful areas: text vs. binary data handling.

Views and Iterators Replace Lists

Many methods that currently return lists will return views or iterators instead:

  • dict.keys(), dict.values(), dict.items() return views
  • range() returns an iterator, not a list
  • map(), filter() return iterators

This improves memory efficiency and performance for large datasets.

The Migration Path: Python 2.6

Python isn’t leaving developers stranded. Python 2.6, scheduled for release later this year, is designed as a bridge version. It will support forward compatibility in two important ways:

1. Py3k Warnings Mode

Python 2.6 will include a special warnings mode that alerts you to code that won’t work in Python 3.0:

python -3 myscript.py

This will warn about deprecated features at runtime, helping you identify problematic code before migration.

2. Backported Features

Many Python 3.0 features will be backported to 2.6, available through __future__ imports or by allowing new syntax alongside old:

from __future__ import print_function
from __future__ import division

# Now you can use Python 3.0 style in Python 2.6
print("Hello")

This allows you to write code that works in both versions, easing the transition.

How to Prepare

If you’re actively developing Python applications, here’s what you should do:

  1. Stay informed: Follow the python-dev mailing list and PEP announcements
  2. Plan for testing: When Python 2.6 arrives, test your code with the -3 warnings flag
  3. Start using __future__: Begin importing forward-compatible features in new code
  4. Audit your dependencies: Check if your third-party libraries have Python 3.0 migration plans
  5. Don’t panic: Python 2.x will be supported for years to come

The Timeline

Based on current development:

  • Python 2.6: Expected October 2008
  • Python 3.0: Expected late 2008
  • Python 2.x support: Will continue for several years

The Python community isn’t rushing this transition. Python 2.x will receive bug fixes and security updates for the foreseeable future, giving developers ample time to migrate.

Why It’s Worth It

Breaking compatibility is painful, but Python 3.0 promises significant benefits:

  • Cleaner language design: Removing warts and inconsistencies
  • Better Unicode support: Proper text vs. binary data handling
  • Improved performance: More efficient iterators and views
  • Modern features: New syntax and capabilities built on a solid foundation

Python 3.0 represents a once-in-a-lifetime opportunity to fix fundamental issues without being constrained by backward compatibility. While the migration will take time and effort, the result will be a more elegant, consistent, and powerful language.

Looking Forward

Python 3.0 is coming, and it’s going to change how we write Python code. The break with backward compatibility is bold, but it’s also necessary for Python to continue evolving. By planning ahead and using the tools Python 2.6 will provide, developers can make the transition smoothly.

The Python community has always been pragmatic and thoughtful. This transition will be no different. It’s an exciting time to be a Python developer!