If you are wondering as to what caused my brief hibernation from bloggerdom, here is the post bringing reasons to light. There have been some wonderful things over the past 2 months including the long awaited release of the OohLalala Album by Dr. A R Rahman. Two splendid concerts at the City Centre promoting the album which lead to a much needed musical get together. I couldnt have wished for things to have turned out better. Please listen to this song, your comments are much appreciated. Edhuvum - V3 The concert videos can be found in Youtube in this link. Youtube Link Coming to the real reason behind my delayed post, Its only fair that I reveal that this would be my last post for quite sometime from my home country, India. I am leaving to the United States and more specifically to The Ohio State University, Columbus. I am leaving behind everything that I have known and everything that I care for, right here, and take this step to full-fill a great many things. Will keep you all posted about my experiences.
A quick jargon buster - AR or Augmented Reality is what you get when you mix virtual objects with real objects and envirnoments. Its a fine line between virtual reality and reality itself. Check this video out which demonstrates AR and whats the best part? You can try it out here at this site
And here are my attempts at demonstrating the same. It works!!! Its definitely worth it to show off to non-techies and watch their jaws drop... Serious Fun.
I have sought to maintain some vestige of regularity which is crucial in maintaining a blog as well as to keep the readers come back again and again for regularly updated content.
This blog is maturing and has been getting a steady number of visitors. So I would like to take this opportunity to up-the-ante and increase my once-a-month frequency and take it as a task to blog every two weeks; starting from this very post.
I have also recieved some criticism to improve the content by introducing a personal factor in all the posts and reduce the impassiveness that comes from merely informing. I know the importance of heeding constructive criticism such as these and would try my best to offer some much wanted personality to the posts.
So, like the title of the post suggests, what next? There have been lots of interesting things for me to blog about and I would like to list them all.
-- > This blog is now being monitored by google analytics and it can be spotted at the bottom of each page. What does this mean? Nothing much, except that google gives me the power to analyse the visitors, their browsers, OS, java capability, flash version; right upto the place from which they accessed my page. More on this amazing industry ready tool later. Check it out at www.google.com/analyitcs
-- > I have finished one of the best book series in 'Ramayana' by Ashok K Banker. I am unworthy of writing a review, blog or any such about it and thanks to karthrags for pointing me to such an awe-inspriring 21st retelling of the epic tale. Note : I am not a religious person, nor am I a spiritualist as of now, rather a rationalist; And the best thing about this 6 book series was the amazing story in itself almost drawing a parallel to the breakneck speed of harry potter and epic proportions and rich detail of Lord of the Rings; And yet relying completely on the barebone storyline written by Valmiki. Do not miss reading this book, if you are an Indian, for it transcends religion entirely.
-- > I decided that it is high time to contribute to the open source community and decided to join a Open Source project called Tux4Kids. More on this later.
-- > Definitely a subject for the next post, Virtua Tennis 3.
-- > Ubuntu 9.04 released. I got the package. Have installed it on my laptop. How is it? More on this later.
If I were to cite any more interesting stuff thats going to be the subject of my posts, then the whole point of the blog, which is to encourage the excitement that random thoughts beget, is lost. Hence, I sign off.
Today is May 5th and the Windows 7 RC has been made available to the public for free download. Most importantly, it works without licensing till march 2010(Actually till june 2010 but it starts nagging you from march) so feel free to try it to your hearts content.
All has been said about the performance of Windows 7 and its time for you to check it out with this link
http://www.microsoft.com/windows/windows-7/download.aspx
Guys like me who couldnt wait, got it through the torrents a week back. It released on April 24th. And this is of course due to curiousity and for educational purposes.
Do check in back and I would post the links to blogs explaining various aspects of Windows 7 from installation to unique features...
Kindly wait up for further posts on the RC from myself. Have Web Technology Semester exam tomorrow :)
Warning : Spoilers might be present....
Portal is definitely one of the most innovative games I have played on the PC. Valve has shown its class yet again by making it enjoyable and instilling so much character and likeability even when the only character that is in constant interaction with your lead character is the GlaDOS (An AI/Computer voice). The voice is not the soothingly seducting or the stiffly informative ones that we have come to expect from such games. Infact, the voice tries to suffer from the intonation errors such as those present in Microsoft Sam. Here is where Valve shows its brilliance by bringing in wit and humour as you try to find out the real motive of the tests that you are undergoing and that of the AI (which you find out is not particularly keen for your survival). The game is quite short and can be completed in 6 hours by a casual/regular gamer. The puzzles are quite FANTASTIC!!! The story unfolds quite well providing the motivation behind solving the puzzles which provide ample entertainment on its own.
The last puzzle brings in a twist and brings a very racy end to the game. The final boss battle is quite memorable in a way that it could be among the only few times that you would keep laughing till you reach the end credits. It seriously is an experience thats worth going over quite a few times to just listen to the AI try and apply reverse psychology.
And after all this, the credit song sung by the computer. Check it out yourselves with these videos....
The credit song above... Here is the teaser trailer and some gameplay footage... Paragraph. A hilarious machinima video made in Portal...
Linux has officially arrived... True, it has been around for more than a decade... But it has now transcended the geek barrier and entered mainstream...
This is the news officially doing the rounds for a couple of years now but something has really fell into place for me to claim this.
Hence for those of you who are into geek stuff (by geeky I mean experimenting with partition tables, multiple-OS booting, sometimes command line scripting and not hacking google), you can safely skip this blog entry and I ll try putting one up that ll satisfy you guys (here too, by guys I mean both guys and gals). Others do continue reading, as I try to make it as simple as possible to try and experience a new world out there. A world that has no boundries, no limitations (I know this sounds like the Matrix dialogue but kindly adjust :) )...
Warning : All those who are into computer science or Information Technology or some related study and still havent got a clue of what am talking about, LAP THIS BLOG UP... Running Linux could make you learn more of CS than your Entire Bachelors Degree could... Quote me later if this line becomes famous :) and credit ANNA UNIV for making me say it...
For one, my windows using family (my father, brother and 9 year old sister) has switched over to linux. Yeah it is indeed my doing, but they are happy with what they are using. After all, their requirements were plain and clear; They needed a machine to browse the net & orkut (brother's case), to use an office mail account (dad) and occasionally paint (sis).
All this was up and running using Ubuntu 8.10 directly out of the box which has firefox for net, evolution for the mail and gimp for some colour work.
There are quite a few things that prevents people from trying out Linux and I am specifically addressing the one where people have a morbid fear of setting up linux which involves 'crazy partitioning' stuff. And after all the nerve-wracking steps (& possibly ones that involve massive data loss if not done properly), they might be disappointed by what it has to offer.
So, Here are a few ways to get Linux up and running and yet leaving your Windows PC virtually untouched (and by this I mean, It would still be left intact if I decide to move away from Linux and never touch it with a ten foot pole).
1) Goto http://wubi-installer.org/ This is probably the simplest. Its as easy as installing a Windows App. You need not worry about data loss or partitioning and the best part is you could uninstall Linux if it fails to impress.
Just download the small installer. Run it. Choose the type of Linux, the installation size (preferably more than 8GB) and set the username and password. This would result in an ISO image of Linux being downloaded. You could cancel it and run it again (it would resume download). Once done, it would boot into linux and run a installation there. Don't worry, almost all of it is automated and you would have a new linux machine dual-booting in almost no time.
2) This solution involves setting up a virtual machine and one that could have you running Linux as a Windowed application inside Windows itself.
Even I prefer this method, as it allows me to have different distros running at the same time. I could choose the distro to run at different instances and still work with other windows applications at the same time. But make sure you have enough diskspace and enough RAM for all this !!! Dont stretch your system.....
Download Virtual Box here http://www.virtualbox.org/wiki/Downloads
-> Download a Linux ISO of your choice from the net (preferably Ubuntu or Linux Mint if you are a new Linux User) -> Install Virtual Box, Run it, Click on 'New', Press 'Next', Give a name to your virtual machine -> Set the type of Operating System as Linux and choose the appropriate distro name if available there -> Set the RAM size you would want to allocate to the virtual machine. Essentially give only at most half the RAM thats available in your system -> Then create a new virtual Harddisk and specify size. -> Access the settings, and in CDROM, try inserting the ISO. This would let you setup Linux at first Boot. -> You are ready to play with linux now without affecting your system.
Best part is, you can just delete the virtual system and be done with it if you dont need it or something irrecoverable has been done.
This kind of installation also helps you perform kernel changes and make changes to code and ensure it still works without breaking down your existing system. As a virtual system, even if it does break down, does not affect any hardware directly.
Hope this post helps instill a sense of adventure in people who want to indulge in new experiences but with some safety fallbacks.
 This is fedora running in a window inside Windows Vista
 This is not Linux and is OpenSolaris. But its running in a virtual machine inside Windows
 Again OpenSolaris...
Disclaimer : This is not my solution... I found this at a Blogsite myself and I give credit to the Author there... Remember to post doubts as comments to this blog... I shall answer them...
http://windowshelponline.blogspot.com/2008/04/mcafee-sdat-extract-anti-virus-scan.html
But since I cant expect my regular blog readers to go in search of a remedy when in dire need of a way to remove some dastardly viruses from their computers when all other means have failed, I have decided to post the link as well as the means by which some serious VIRUS KILLING can be done.
Remember, this can serve as a last resort to save your computer from some horrible infection if it can still boot into 'SAFE MODE'. If that fails, then I am afraid this particular solution does not help.
Here is the Solution:
You can use McAfee Sdat to scan your computer for virus. Here are step to perform sdat scan:
1. Download the latest sdat from McAfee site.
It is present with a filename starting with sdat.
For Ex: sdat5541.exe
Note: The number can vary according to the version...
Now boot into 'SAFE MODE with Command Prompt'.... This can be done by pressing 'F8' repeatedly just before the OS boots (the loading bar starts running). If you miss it once, keep trying it unless you get a screen that presents various options such as 'SAFE MODE', 'SAFE MODE with Networking', etc and selecting the choice mentioned at the start of this para...
When successful with this attempt, the OS will boot with 'safe mode' displayed at the four corners of the screen (Atleast with Windows xp, this is the case)
Now when command prompt is present, (some command line experience is needed... if not,) just follow the given steps...
> cd \ > C: (assuming C: is where the sdatxxxx.exe file is stored) >cd scan (assuming sdat has been put into a folder called scan)
2. Extract sdat to forder say C:\Scan using this command sdatXXX.exe /E Where XXX is number of Sdat file. This is extract file like Scan.exe, McTool.exe, clean.dat etc
3. Run this command : Scan.exe /ADL /CLEAN /DEL /HTML C:\Scan\Report.html
Above command will scan all local drives (ADL), try to clean infected files (CLEAN), delete file if clean fail (DEL) and make html report (HTML).
Note: The options given below are for advanced users... Do not Despair if you cant understand them
For more Scan.exe option try /? help. Below is the output of C:\sdat>Scan.exe /?
McAfee VirusScan for Win32 v5.20.0 Copyright (c) 1992-2007 McAfee, Inc. All rights reserved. (408) 988-3832 LICENSED COPY - Jun 5 2007
Scan engine v5.2.00 for Win32. Virus data file v5267 created Apr 04 2008 Scanning for 386611 viruses, trojans and variants.
Usage: Scan [object1] [object2...] [option1] [option2...] /? Display this help screen. /AD Scan all drives (not removable media). /ADL Scan all local drives (not removable media). /ADN Scan all network drives. /AFC= Set the Size of the Internal Cache Used When Decompressi ng Archive Files. /ALL Scan all files regardless of filename extension. /ALLOLE Treat all files as compound/OLE regardless of extension.
/ANALYZE Turn on heuristic analysis for programs and macros. /APPEND Append to report file rather than overwriting. /BOOT Scan boot sector and master boot record only. /CHECKLIST Scan list of files contained in . /CLEAN Clean viruses from infected files and system areas. /CONTACTFILE Display contents of when a virus is found. /DAM Remove all macros from infected MS Office files. /DEL Delete infected files. /DOHSM Scan migrated files (hierarchical storage management). /EXCLUDE Do not scan files listed in . /EXTLIST List file extensions scanned by default. /EXTRA Scan using an extra DAT file. /FAM Find all macros - not just infected macros. Used with /DAM will remove all macros. /FREQUENCY Do not scan after the previous scan. /HELP Display this help screen. /HTML Create an HTML report file. /LOAD Load options from . /MAILBOX Scan inside plain text mailboxes. /MANALYZE Turn on macro heuristics. /MANY Scan many floppy diskettes. /MIME Scan inside MIME, UUE, XXE and BinHex files. /MOVE Move infected files into directory, preserving path. /NOBACKUP Do not prompt for a backup diskette during a sector repair. /NOBOOT Do not scan boot sectors. /NOBREAK Disable Ctrl-C / Ctrl-Break during scanning. /NOCOMP Do not scan self extracting executables by default. /NOD Don't switch into /ALL mode when repairing. /NODDA No direct disk access. /NODOC Do not scan MS Office files. /NOEXPIRE Disable data files expiration date notice. /NOMEM Do not scan memory for viruses. /NODECRYPT Don't scan password-protected MS Office documents. /NOJOKES Do not alert on joke files. /NORENAME Do not rename infected files that cannot be cleaned. /PANALYZE Turn on program heuristics. /PAUSE Pause at end of each screen page. /PLAD Preserve Last Access Dates on Novell NetWare drives. /PROGRAM Scan for potentially unwanted applications. /REPORT Report names of viruses found into . /RPTALL Include all scanned files in the /REPORT file. /RPTCOR Include corrupted files in /REPORT file. /RPTERR Include errors in /REPORT file. /SILENT Disable all screen output. /STREAMS Scan inside NTFS streams (NT only). /SUB Scan subdirectories. /TIMEOUT Set the maximum time to spend scanning any one file. /UNZIP Scan inside archive files. /VIRLIST Display virus list. /WINMEM Scan all Running Windows Processes. /WINMEM= Scan the Running Windows Process With Process ID.
This is what I call "RED HOT"... This guy comes into a world class team like AC Milan from a football backwaters like America and keeps performing at the highest level; To give you an indicator as to its level, his current form is granting him place in the squad ahead of Ronaldinho.
Just check out his latest performance with two signature assists. David Beckham is like Dr Who. Different strip. New location. He just keeps coming back as good, if not better, than before.
Whether at odds with Sir Alex Ferguson or out of favour at Real Madrid or marooned in America, Beckham has never let off-field setbacks interfere with his football.
Now at Italy, his latest goal giving AC Milan a draw against Genoa, he is reincarnated once more as the free-kick king of the San Siro. And in front of England manager Fabio Capello to boot. The guy demands respect.
The video below has a freekick goal. An inimitable piece of genius in more than one dimension.
Windows 7... This is the official name of the next incarnation of Windows. This is the first time they have moved away from the time-based(95/98/2000) or exotic (xp/vista) naming. The explanation, rather crude but does serve the purpose, is that that this is the 7th major release of MS-Windows.
There was a lot of speculation surrounding this operating system right from the time when news had leaked that microsoft is moving quickly toward releasing the next version of its OS to replace the negative aura and clear sense of failure surrounding the name "VISTA". Yeah, It is an agreed fact that people competely neglected this OS, cursing it for its bloatedness and sluggishness. Well, as an user of Vista right from its RTM release to the current SP1, I can state from experience that SP1 has addressed a lot of issues.
I attribute the first half of the name of this blog to Paul Murphy blog.zdnet. He has made liberal usage of the article on "Law of Leaky Abstractions" by Joel Spolsky but his thoughts on them are half-baked.
http://blogs.zdnet.com/Murphy/?p=1307
I have posted the original article by Joel and decided not to post the link, for some pre-reading, as it is an invitation to those lazy blogreaders to switch tabs and silently close mine. I invite you to post your comments on my views, which appears after the article, and tear me apart if you want.
Here comes Joel's exquisitely well written article.
“There’s a key piece of magic in the engineering of the Internet which you rely on every single day. It happens in the TCP protocol, one of the fundamental building blocks of the Internet.TCP is a way to transmit data that is reliable. By this I mean: if you send a message over a network using TCP, it will arrive, and it won't be garbled or corrupted. We use TCP for many things like fetching web pages and sending email. The reliability of TCP is why every exciting email from embezzling East Africans arrives in letter-perfect condition. O joy. By comparison, there is another method of transmitting data called IP which is unreliable. Nobody promises that your data will arrive, and it might get messed up before it arrives. If you send a bunch of messages with IP, don't be surprised if only half of them arrive, and some of those are in a different order than the order in which they were sent, and some of them have been replaced by alternate messages, perhaps containing pictures of adorable baby orangutans, or more likely just a lot of unreadable garbage that looks like the subject line of Taiwanese spam. Here's the magic part: TCP is built on top of IP. In other words, TCP is obliged to somehow send data reliably using only an unreliable tool. To illustrate why this is magic, consider the following morally equivalent, though somewhat ludicrous, scenario from the real world. Imagine that we had a way of sending actors from Broadway to Hollywood that involved putting them in cars and driving them across the country. Some of these cars crashed, killing the poor actors. Sometimes the actors got drunk on the way and shaved their heads or got nasal tattoos, thus becoming too ugly to work in Hollywood, and frequently the actors arrived in a different order than they had set out, because they all took different routes. Now imagine a new service called Hollywood Express, which delivered actors to Hollywood, guaranteeing that they would (a) arrive (b) in order (c) in perfect condition. The magic part is that Hollywood Express doesn't have any method of delivering the actors, other than the unreliable method of putting them in cars and driving them across the country. Hollywood Express works by checking that each actor arrives in perfect condition, and, if he doesn't, calling up the home office and requesting that the actor's identical twin be sent instead. If the actors arrive in the wrong order Hollywood Express rearranges them. If a large UFO on its way to Area 51 crashes on the highway in Nevada, rendering it impassable, all the actors that went that way are rerouted via Arizona and Hollywood Express doesn't even tell the movie directors in California what happened. To them, it just looks like the actors are arriving a little bit more slowly than usual, and they never even hear about the UFO crash. That is, approximately, the magic of TCP. It is what computer scientists like to call an abstraction: a simplification of something much more complicated that is going on under the covers. As it turns out, a lot of computer programming consists of building abstractions. What is a string library? It's a way to pretend that computers can manipulate strings just as easily as they can manipulate numbers. What is a file system? It's a way to pretend that a hard drive isn't really a bunch of spinning magnetic platters that can store bits at certain locations, but rather a hierarchical system of folders-within-folders containing individual files that in turn consist of one or more strings of bytes. Back to TCP. Earlier for the sake of simplicity I told a little fib, and some of you have steam coming out of your ears by now because this fib is driving you crazy. I said that TCP guarantees that your message will arrive. It doesn't, actually. If your pet snake has chewed through the network cable leading to your computer, and noIP packets can get through, then TCP can't do anything about it and your message doesn't arrive. If you were curt with the system administrators in your company and they punished you by plugging you into an overloaded hub, only some of your IP packets will get through, and TCP will work, but everything will be really slow. This is what I call a leaky abstraction. TCP attempts to provide a complete abstraction of an underlying unreliable network, but sometimes, the network leaks through the abstraction and you feel the things that the abstraction can't quite protect you from. This is but one example of what I've dubbed the Law of Leaky Abstractions: All non-trivial abstractions, to some degree, are leaky. Abstractions fail. Sometimes a little, sometimes a lot. There's leakage. Things go wrong. It happens all over the place when you have abstractions. Here are some examples. Something as simple as iterating over a large two-dimensional array can have radically different performance if you do it horizontally rather than vertically, depending on the "grain of the wood" -- one direction may result in vastly more page faults than the other direction, and page faults are slow. Even assembly programmers are supposed to be allowed to pretend that they have a big flat address space, but virtual memory means it's really just an abstraction, which leaks when there's a page fault and certain memory fetches take way more nanoseconds than other memory fetches. The SQL language is meant to abstract away the procedural steps that are needed to query a database, instead allowing you to define merely what you want and let the database figure out the procedural steps to query it. But in some cases, certain SQL queries are thousands of times slower than other logically equivalent queries. A famous example of this is that some SQL servers are dramatically faster if you specify "where a=b and b=c and a=c" than if you only specify "where a=b and b=c" even though the result set is the same. You're not supposed to have to care about the procedure, only the specification. But sometimes the abstraction leaks and causes horrible performance and you have to break out the query plan analyzer and study what it did wrong, and figure out how to make your query run faster. Even though network libraries like NFS and SMB let you treat files on remote machines "as if" they were local, sometimes the connection becomes very slow or goes down, and the file stops acting like it was local, and as a programmer you have to write code to deal with this. The abstraction of "remote file is the same as local file" leaks. Here's a concrete example for UNIX sysadmins. If you put users' home directories on NFS-mounted drives (one abstraction), and your users create .forward files to forward all their email somewhere else (another abstraction), and the NFS server goes down while new email is arriving, the messages will not be forwarded because the .forward file will not be found. The leak in the abstraction actually caused a few messages to be dropped on the floor. C++ string classes are supposed to let you pretend that strings are first-class data. They try to abstract away the fact that strings are hard and let you act as if they were as easy as integers. Almost all C++ string classes overload the + operator so you can write s + "bar" to concatenate. But you know what? No matter how hard they try, there is no C++ string class on Earth that will let you type "foo" + "bar", because string literals in C++ are always char*'s, never strings. The abstraction has sprung a leak that the language doesn't let you plug. (Amusingly, the history of the evolution of C++ over time can be described as a history of trying to plug the leaks in the string abstraction. Why they couldn't just add a native string class to the language itself eludes me at the moment.) And you can't drive as fast when it's raining, even though your car has windshield wipers and headlights and a roof and a heater, all of which protect you from caring about the fact that it's raining (they abstract away the weather), but lo, you have to worry about hydroplaning (or aquaplaning in England) and sometimes the rain is so strong you can't see very far ahead so you go slower in the rain, because the weather can never be completely abstracted away, because of the law of leaky abstractions. One reason the law of leaky abstractions is problematic is that it means that abstractions do not really simplify our lives as much as they were meant to. When I'm training someone to be a C++ programmer, it would be nice if I never had to teach them about char*'s and pointer arithmetic. It would be nice if I could go straight to STL strings. But one day they'll write the code "foo" + "bar", and truly bizarre things will happen, and then I'll have to stop and teach them all about char*'s anyway. Or one day they'll be trying to call a Windows API function that is documented as having an OUT LPTSTR argument and they won't be able to understand how to call it until they learn about char*'s, and pointers, and Unicode, and wchar_t's, and the TCHAR header files, and all that stuff that leaks up. In teaching someone about COM programming, it would be nice if I could just teach them how to use the Visual Studio wizards and all the code generation features, but if anything goes wrong, they will not have the vaguest idea what happened or how to debug it and recover from it. I'm going to have to teach them all about IUnknown and CLSIDs and ProgIDS and ... oh, the humanity! In teaching someone about ASP.NET programming, it would be nice if I could just teach them that they can double-click on things and then write code that runs on the server when the user clicks on those things. Indeed ASP.NET abstracts away the difference between writing the HTML code to handle clicking on a hyperlink (<a>) and the code to handle clicking on a button. Problem: the ASP.NET designers needed to hide the fact that in HTML, there's no way to submit a form from a hyperlink. They do this by generating a few lines of JavaScript and attaching an onclick handler to the hyperlink. The abstraction leaks, though. If the end-user has JavaScript disabled, the ASP.NET application doesn't work correctly, and if the programmer doesn't understand what ASP.NET was abstracting away, they simply won't have any clue what is wrong. The law of leaky abstractions means that whenever somebody comes up with a wizzy new code-generation tool that is supposed to make us all ever-so-efficient, you hear a lot of people saying "learn how to do it manually first, then use the wizzy tool to save time." Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don't save us time learning. And all this means that paradoxically, even as we have higher and higher level programming tools with better and better abstractions, becoming a proficient programmer is getting harder and harder. During my first Microsoft internship, I wrote string libraries to run on the Macintosh. A typical assignment: write a version of strcat that returns a pointer to the end of the new string. A few lines of C code. Everything I did was right from K&R -- one thin book about the C programming language. Today, to work on CityDesk, I need to know Visual Basic, COM, ATL, C++, InnoSetup, Internet Explorer internals, regular expressions, DOM, HTML, CSS, and XML. All high level tools compared to the old K&R stuff, but I still have to know the K&R stuff or I'm toast. Ten years ago, we might have imagined that new programming paradigms would have made programming easier by now. Indeed, the abstractions we've created over the years do allow us to deal with new orders of complexity in software development that we didn't have to deal with ten or fifteen years ago, like GUI programming and network programming. And while these great tools, like modern OO forms-based languages, let us get a lot of work done incredibly quickly, suddenly one day we need to figure out a problem where the abstraction leaked, and it takes 2 weeks. And when you need to hire a programmer to do mostly VB programming, it's not good enough to hire a VB programmer, because they will get completely stuck in tar every time the VB abstraction leaks. The Law of Leaky Abstractions is dragging us down. " Here ends Joel's Article.
Brilliant. This is probably why Kamakoti sir curses C++ and Java. They are languages that bring about great abstraction but do not offer the power or flexibility that C offers. And he doesnt even recognize languages such as C# that offer even more abstracted features. If you have read this post patiently till this point and have come to the conclusion that abstraction offers no great advantages then it is my duty to remind you that IT companies now literally exist by having programmers churn out abstracted code. How do you think software developement has suddenly become so accessible that every second person you meet in India is a software engineer. None of these guys are required to understand what goes on beneath their layer. They just code on top of complex layers that are hidden and produce some software that now places more emphasis on manageability and maintainability than efficiency. To an extent it is acceptable and to find that sweet line that defines the level requires real skill.This is essentially what we are currently attempting (with limited skill and intellect offered by our limited brains) but with hardware description languages. Basically all existing HDLs such as verilog and VHDL deal directly with hardware at the Register level (RTL). X (name changed, as it cannot be revealed), an abstract hardware description language invented by a certain group of brilliant Non-Resident Indians from MIT, tries to provide rich abstraction that enables you to design hardware entirely using behavioral code. But do these constructs actually restrict your creativity and flexibility or do they provide enough type checking to aid your final design stages is what our efforts are currently trying to determine. How much of abstraction is good? Further on this topic in subsequent posts...
|