Shital's Icel logo Shital's Icel

 
My Weblog



    Home 

    Stuff 2 Do 

    Cool Books 

    Downloads 

    Geeks Only 

    Essays 

    Photo Albums 

    Share 

    Say Something 

    My Blog 

    About me 

    About Site 




Some blogs on Gizmos, music, science, math, physics, hikes, adventure outings, programming, books and such stuff...

Subscribe feeds: RSS 2.0 | Atom 1.0 | CDF

 Friday, August 10, 2012
Surviving Windows 8 First Encounter 8/10/2012 1:47:30 PM (Pacific Daylight Time, UTC-07:00)


After installing Windows 8 you might quickly find yourself at unease at doing few things the old way or “cornering” the mouse too much. The answer to your frustration is keyboard shortcuts! There are many but below are the ones that would save the day:

Windows + D Jump to Desktop mode
Windows Switch between Start screen and last app
Windows + Q Search Apps
Windows + W Search Settings
Windows + X A popup menu for power users  (Command Prompt, Control Panel, File Explorer, Computer Management etc)
Alt + F4 Close app (Metro app doesn’t have close button)
Windows + E Open explorer
Windows + R The good old Run dialog
Windows + C Open Charms bar (allows you to quickly go to Settings and Search options for the app)
Page Up/Down Move around tiles on Start screen
Ctrl+Shift+Esc Task Manager
Windows + Tab Recent Metro apps
Right Click on Tile Options for uninstall, pin, unpin, size etc
Windows + Z or Right Click inside Metro App Show App specific bar (for example, open file, play button etc)
Windows + . Snap metro app on left

More : Useful Info Permanent Link: #
 


 Monday, June 04, 2012
Viewing Venus Transit in Seattle Area 6/4/2012 4:05:54 PM (Pacific Daylight Time, UTC-07:00)


Well, bad news. Weather isn’t looking good for tomorrow’s historic event. It’s like 80% chance of showers almost entire Pacific Northwest extending even in to Eastern Washington. Even LIGO Observatory is not going to have sun shine. But if you believe that a hole in the sky might appear just to take pick then there are several events lined up for public viewing with free entry and no registration. Public events are much safer way to view Venus Transit because they would have appropriate solar filters and/or projection boards. Some might even have live webcasts. If that much anticipated hole in the sky does not appear then here are the options for online viewing:

It would be also good time to brush up on Venus peculiarities and some historical context.


More : Events To Attend | Go Somewhere, Do Something! | Heavenly Stuff Permanent Link: #
 


Groups, Places and Collectives for Makers in Seattle Area 6/4/2012 12:14:46 AM (Pacific Daylight Time, UTC-07:00)


We went to Mini Makers Faire in Seattle today and one of most surprising thing I learned was how abundant are the local resources for hackers and makers! Reminded me of geek fairy tales of Homebrew Computer Club that you often hear. Here are some of the things you want to check out if you are interested in making stuff and live in Seattle area:

  • Metrix Create: Space – I think this was the coolest thing I came to know about. They have a shop with everything from sewing machine to electronics. They run lots of interesting workshops & classes. It’s your neighborhood fab lab!
  • Make Seattle Meetup Group – Regular meet ups for Arduino/electronics makers and learners to exchange ideas and get help on your projects
  • West Seattle Tools Library – I thought this was the coolest concept. They have a collection of 1500 tools that you can checkout for your projects. Just look at their tool of the week series. There is also Fixers Collective who meet up at Tools Library and would be happy to fix your broken stuff or just tinker around.
  • Xbot Robotics Workshop Space – They provide you space to work on your projects along with access to almost everything you need such as power tools, soldering stations, oscilloscopes, electronics components, drill presses, sand blasters, table saws, sanders, grinders!

There were quite a few of cool things we saw there everything from The Brain Machine, Zigduino, Lifesuit, Drawbots, to The Most Useless Machine Ever.

I also jotted down the next classes I want to do at Pratt and All Metal Arts.


More : Events To Attend | Go Somewhere, Do Something! | Useful Info Permanent Link: #
 


 Sunday, April 24, 2011
Lost Sony NEX-5 Camera at Lincoln Park (West Seattle) 4/24/2011 3:12:09 PM (Pacific Daylight Time, UTC-07:00)


If you have found Sony NEX-5 Camera in a black carry on, please do let me know! It’s pictures inside that are important, not the camera itself. So I would be very happy to buy you a beer or take you on a nice hike (whatever is your fix) if you have seen this thing at Lincoln Park beach in West Seattle near Alki beach area.


More : Announcement Permanent Link: #
 


 Thursday, August 26, 2010
Burning Man Tips for the First Timers 8/26/2010 4:46:07 PM (Pacific Daylight Time, UTC-07:00)


There is no substitute to reading official Survival Guide but it does leaves out many things. So instead of writing my detailed trip report I thought about all the mistakes I’d made and converting them to tips. Here it goes…

  1. Sun shelter (things that look like REI Alcove) is absolutely essential if you just have a camping tent. I would however not recommend REI Alcove itself because it broke after withstanding 3 days of sandstorms. Obviously you also need nice camping chair to go with it.
  2. Regular tent stacks are not very useful to secure tents on playa. I didn’t believed that and my tent almost came out in sandstorms. The correct way to secure tent in playa is using something called “rebars”. You need 4 rebars for a regular camping tent, each 3” long and 1/2” wide. You need another 4 or 6 for sun shelter. Stores like Home Depot would cut the metal rod for you in these sizes. Of course, you will need big hammer as well to stack them (they don’t have pointy end). Finally, it’s a hazard to leave other end of these rusty metal rods open so you must stick a tennis ball or empty bottles on end of the rod that is sticking out.
  3. Sandstorms! In 2009 there were 3 full days of sandstorms. If you never seen one then here’s how it works: About 20-60 foot tall wall of sand that comes at you at anywhere between 10 miles to 40 miles an hour. The visibility typically drops to 5ft to 50ft and you see brownish sand everywhere around you. This can last for up to 8 hours straight. It actually looks cool and as a matter of fact I intentionally spent lots of time inside sandstorm taking photos (note: Many SLRs are not dust proof). Even on severe storm days almost everyone continued their activities as if it was normal weather. But they were prepared. Here’s what you need to be prepared:
    • You have to have sun glasses with minimum open space around lenses. I had Tifosi Ventoux and they worked kind of OK. A retainer is also essential not to loose them (remember there are no shops to buy extra pair).
    • Mask for the nose and mouth. I used Buff bandana so I can pull it up all the way to sunglasses. Next time I would also be using this, this or this mask so I can be absolutely worry free about staying longer out in dust storms.
    • Hat with cord and visor. This will allow you to walk heads down while visor protects your face. I used this hat and it’s absolutely the best hat I’ve ever owned. Added advantage of this hat is that it’s veil can be put in the direction of wind.
  4. As a first timer I found that 4 nights provides a very good breadth and depth for the experience. The reason it’s perfect is because you have to carry less food and water, not worry too much about getting shower and you still get to see nearly everything that’s out there. I would strongly recommend against staying less than 3 nights.
  5. Make a stop at Reno at least for a night before heading towards Black Rock City. Besides mini-Las Vegas style environment, you can also visit REI, Walmart and Walgreens to get the gear, water, grocery and so on. Pepermill Resort is where I stayed overnight because it’s cheapest awesome hotel in Reno.
  6. A compass is very useful to have to get on the right street when coming back in the night far away from playa.
  7. If you have 3-season camping tent you are probably in trouble. These tents usually have mesh in the walls for ventilation and they have rain fly to protect against rain. This arrangement however is pretty useless to protect against sandstorms. On a typical stormy day I would get about half inch layer of sand inside my 3 season tent and I had to spend an hour every night cleaning things up. Make sure you have duct tapes and things to cover up. Everything outside tent should be tied to rebars so it doesn’t fly away with storms.
  8. Weather at burning man is 110F+. It’s normally not possible to sleep inside the tent after 10 AM. It’s not unusual to stay up until 3 AM. Nights are cold and you will need a fleece jacket. I’d 30 degree rated bag which was bit warmer but worked fine. BTW, try to bring sleeping bag liner to avoid it getting sweaty.
  9. As a first timer it might be hard to understand culture of gifts. For example, someone I don’t know at all would give me something and I would be confused if I should really take it. This can spoil the experience for the giver and the taker. Here’s how it works: If someone gives you a gift, take it with a smile without hesitation and give them a gift in return. It’s that simple. The only thing to remember is to bring bunch of gifts that you can easily carry around. Here are some of the examples of gifts: Custom stickers with your favorite quotes, necklaces, bead jewelry, things that glows, Trillion Dollars Notes, candies, custom printed postcards and so on. A single major mistake first timers make is not to bring gifts to give away.
  10. Bicycles would be your savior. If you can’t bring from home then rent or steal from Reno. BRC is really huge and you would be lucky if you could walk just one street a day. Most events that I was interested usually were many miles apart and it’s impossible to make it on time without bicycle. Besides you really don’t want to get tired after walking 10 miles just to attend couple of events.
  11. As soon as you enter gate you will be handed a map and booklet of events. The map is easy to understand because of it’s semi-circle streets. Any location is specified by using hand of clock and name of the street. The 6 o’clock is the center while 2 o’clock and 10 o’clock are two ends of semi-circle. The street names are different every year depending on the theme.
  12. There is NO assigned camping sites at Burning Man (except for theme camps). Normally all except outer two streets are occupied within first couple of days. When I arrived on Wednesday evening I decided to keep as much distance from outer road as possible because that’s where all the cars keep passing by. But I did not wanted to be too inside because the view of vast playa on the outer street is awesome. I also wanted to stay in middle so distance to get on any side is minimized. Always consider if your neighbors have enough space around their tent to put picnic table or chairs or grills or another car. The best space I found on Wednesday night was at 7:15 and Kinship.
  13. If someone asks you “which camp are you in?” then that usually means “what is the name of your camp?”. You can consult with your neighbor to decide on some name for group camp and put on the sign. You can also tell the location such as 7:15 & Kinship like other first timers do.
  14. The iPhone & AT&T did worked with full 4 bars at Black Rock City in 2009. It’s really really a good choice to turn it off and resist temptation to tweet/facebook for your entire stay.
  15. Here’s one of the most disgusting part of my Burning Man experience: The place I choose to camp was up-winds in the path of potty patties. That means every time wind blew even a little it would smell really really bad. It was horrible. Fortunately I came to my tent only to sleep when smell was gone. It’s really worth to make sure you avoid such smelly spaces.
  16. Don’t wear jeans at Burning Man! Many places that do not allow jeans believe that they are too “casual” for them but at Burning Man you don’t want to wear jeans because they would be too “formal”! I wore my normal jeans on first night and felt so out of place and formal that it was embarrassing. If you must wear jeans then take your old jeans, paint them or tear them or whatever. Shorts are semi-casual options at Burning Man.
  17. The list of events at Burning Man is overwhelming. You do not have to go crazy to attend as many events as possible and it’s best to chose no more than 3 events per day to attend. It’s good idea to reserve one day just sit back at your tent and look at vast playa in mild warm wind :).
  18. Cooking at Burning Man can get tricky because of sandstorms. I’d bought my camping stove which didn’t work out in storms. Fortunately more prepared folks did cooking in their camps and gave away lots of free food. I’d also bought some non-perishable stuff like bananas, milk powder, Sahale snacks, bars, chips and so on. One last option for food is to go back to town via bus or car but that might ruin your experience. Fortunately I did not had that option because I didn’t had car and I never found the bus. One good outcome was that I lost few pounds! Next time I might just buy or rent a grill because it work better in dust storms.
  19. I estimated 1.5 gallon of water per day per person and it worked out well for me.
  20. You can meet and greet your neighbors without feeling awkward. When you cook meal, offer some to them. Always have at least two gifts to give away to your two neighbors while departing. Example of gifts are some sketch you made while at Burning Man or other art work or a poem or your favorite book or some photo you took.
  21. Yes, you do need kitchen sink! You will need it to brush teeth, wash hands etc. It’s not OK to spill water with soap on playa floor but if your sink is small and soap biodegradable then you would be ok to collect water in it and then go to outer street to flung it away
  22. Most people do not shower at Burning Man (or so I think). There are few elaborate large camps that set up showers and some even offer them to others as well. But in general, don’t expect showers. Alternative is wet towel to wipe off of your body.
  23. Many camps on inner circle serves free drinks to anyone who wants but you need to bring your own cup. It helps a lot if you have a cup with lid.
  24. There is a place everybody refers to as “The Temple”. It’s located beyond The Man and many first timers would even miss it because they usually don’t go beyond The Man (it’s a LONG walk too). The Temple is truly sacred in many aspects without being connected to even the concept of religion. It’s humbling and even moving to spend a day at the temple. The Temple burns on next day after The Man burns and more spectacularly.
  25. Burning Man usually has 35,000+ people which causes 2 to 4 hours of traffic jams while leaving. While it’s fun to see the parade of every RV ever made, the time with least traffic to leave Burning Man is on Saturday night after The Man burns. But the flip side is that you will miss even more spectacular burn of The Temple which is on Sunday night. Another flip side of leaving on Saturday night is that you run huge risk of falling sleep while driving. When I left on Saturday night I saw at least 3 accidents on the way and so I decided to just pull over and sleep anyway. For my next time, I would be leaving on Monday late afternoon.

Finally here are pictures from my trip which hopefully would give some idea about what to expect.


More : Events To Attend | Go Somewhere, Do Something! | Useful Info Permanent Link: #
 


 Monday, November 03, 2008
Making 2D photos in to 3D 11/3/2008 4:28:56 PM (Pacific Standard Time, UTC-08:00)


How do you take a 2D photograph and create a 3D scene out of it? When you take a 2D photograph the depth information is inherently loss. However when we see 2D photograph our brains can actually still perceive and estimate depth information, for example, a tree is in front and house is about 10 feet in the back and mountain is very far even though the photograph doesn't have any depth information in it at all. Using machine learning it is possible to partially recover and estimate depth information just like our brains does. For this, the team at Stanford has achieved very convincing results: first they divide the photograph in multiple segments and then applies several image processing filters for each segment to extract information such as blurriness, texture variation, shading etc. Then they create some training shots by sending out a robot toy car with laser light to get some sample scenes and actual depth information in the scene (they also use computer generated scenes to train the model). Then they feed this training data to algorithm based on Marcov Random Field to train the model. Each photograph is nothing but a connected graph of these segments as nodes and MRF fits quite well to operate on this graph using properties and connection of node as input and depth as output. Try out some photos you have taken at their website.

On unrelated note, there is an effect called Hitchcock Zoom where camera moves closer (or away) but in a way so that the subject size remains same by reducing (or increasing) zoom. As this is very counter intuitive for our visual system it provides for an interesting effect :).


More : AI Permanent Link: #
 


 Wednesday, June 18, 2008
The Four Planet Dance Of 2008 6/18/2008 12:39:43 AM (Pacific Daylight Time, UTC-07:00)


The Observing Blog at S&T have posted this wonderful movie about celestial dance of some of the brightest objects in sky in August and September 2008, just after sunset. Unfortunately, for us in mid-northern latitudes (and especially Seattle weather), things won't be as bright and high but having these objects "collide" with each other and that too with crescent moon around looks beautiful!
More : Heavenly Stuff Permanent Link: #
 


 Saturday, March 08, 2008
Phun With Physics Simulations 3/8/2008 8:27:51 PM (Pacific Standard Time, UTC-07:00)


This addictive program can easily keep you busy for rest of the weekend so be careful :). Phun is a physics simulator that even kids can use and its absolutely a delight. I watched the video and had to immediately download to give it a try. At first the interface might seem not as easy but after reading tutorial in main page and forums, you might be able to accomplish everything shown in video in less than 15 min of learning curve! Simply the easiest, powerful and most fun physics program I’ve come across.

Enjoy!


More : Software To Download | Physics Permanent Link: #
 


 Sunday, May 06, 2007
Fast Asymmetric Generalized Hebbian Algorithm 5/6/2007 8:43:37 PM (Pacific Daylight Time, UTC-07:00)


I can get sucked in to challenges very easily especially when that involves Artificial Intelligence or statistical analysis. The challenge that has occupied my interests these days is the one that was put up by Netflix. It’s easy to describe: They give you 100 million data points for a triplet (Customer, Movie, Rating) and you have to predict the rating for given (customer, movie) pairs. If the average of squared errors of your predictions is below certain value you get a million dollar prize.

The problem is nothing new in the field. The researchers have been developing techniques for this class of problems since centuries – often without anticipating rewards. Any such material reward would be embarrassingly insignificant compared to the real prize - understanding the most unique and powerful thing in existence that we are aware of: The intelligence.

What makes Netflix prize an interesting challenge, however, is that it’s very well defined and several researchers are trying out their tools of trade so it also provides quantitative measurement for comparison. There are some consensus that Netflix have set the bar just high enough that no one would ever be able to achieve the lowest required RMS. But that shouldn’t stop you to enjoy the game and push extremes to new boundaries.

So how am I doing this? I started out brushing up on all existing techniques: Neural networks with linear elements, back propagation, principle component analysis and SVD, logistic regression (still many more to go: Bayesian networks, Markov decision process, SOMs and Recurrent networks). It’s one thing to read about these algorithms from text books and other to actually put in the practice to solve real world problems efficiently. The difficulty using these techniques straight from textbook (without domain specific enhancements) is that they suck when your data set is huge (matrix with 8.6 billion elements) and that there is no real generalized algorithms to determine several parameters such as learning rate, number of units and so on effectively.

The one algorithm that swept me away among all of these is called Generalized Hebbian Algorithm (GHA) - which probably is the most practical algorithm out there for linear problems since 1985 but is not described in even latest well known textbooks! This algorithm can deal with essentially infinite data that available serially, it will use only required amount of memory to hold eigenvectors and perform SVD starting with most significant eigenvalue!

In any case, I'm making my implementation of highly optimized version of this neural network algorithm available with source code.

Again limitation of GHA (and AGHA) is that they work best on linear problems only.


More : AI | Mathematics Permanent Link: #
 


Two Small Utilities 5/6/2007 7:38:03 PM (Pacific Daylight Time, UTC-07:00)


These two small utilities I'd wrote about an year ago and since then they were sitting on my network share. Meanwhile lot of people in my team used it and found them useful. There is still a large list of features that I'd like to add but even without it, these are pretty usable at this point. So enjoy!

SQL INSERT Script Genertor

Disk Defuzzer


More : Programming | Software To Download Permanent Link: #
 


 Tuesday, May 16, 2006
Math In Office 2007 5/16/2006 4:37:52 PM (Pacific Daylight Time, UTC-07:00)


I’d been attempting to post this entry right from inside Word 2007 Beta 2, but no luck so far interfacing with dasBlog. But the good thing is that most Office 2007 apps seems to be now blog and RSS aware. You can manage your blogging accounts right inside the Word or OneNote, although few things like pinging Technorati is missing.

The coolest thing in Office 12 is, though, new math related functionality. Now you can insert math equation in Word with rendering quality that matches LaTex (well, most of the time in Beta 2). The equation can be entered very interactively or in linear format which also allows TeX like symbol naming convention such as \alpha, \to, \infty and so on.  Full TeX syntax however is not yet supported and some features such as equation numbering is missing in this release. But the interactive UI to build equations is pretty funcky. You can align equations and form equation array by using shift+Enter key and right clicking on ‘=’ symbol.

Even cooler is the fact that this functionality is available from any Office app. So you can actually start writing equation in your emails and Excel sheet! The equations are converted in to png file when sent in an email so even the lousy email reader can handle it.  For example, here’s the Prime Number Theorem typed in Outlook 2007 is rendered as png image like this:

Andrei Burago working in with authoring team demoed this awesome power of Word12 and set out to rewrite my entire paper on twin primes just using Word 2007 (which I had written originally in TeX)!

The Ribbon bar is ultra cool and has replaced both menus and toolbar. This might drive you nuts however when you are trying to find some usual stuff such as list of recent files, print preview and so on. The trick is to click on Office symbol on upper left corner (hack, who would have known that!). The Lookout doesn’t seem to work any longer in Outlook 2007 but the instant searching is pretty satisfactory once you give it sometime to index stuff.


More : Software To Download Permanent Link: #
 


 Thursday, February 16, 2006
Introducing DSS 2/16/2006 7:04:01 AM (Pacific Standard Time, UTC-08:00)


There are tons and tons of things to blog but here is a quick one.

Last Thanksgiving (a 4 days of holidays in USA) I wanted to work on something really cool that is absolutely worth doing and something I can spend my entire 4 days continuosly. I looked over my list of pending projects to find something extraordinarily cool, kept thinking about new ideas flowing around, looked over to other idea websites and realized that my mind was just keept going blank all the while.

So when people asked what were my plans for thanksgiving, I'd reply "I'll be doing Project Blank" :).

It just so happened, at the very start of the thanksgiving I was casualy reading the SSE specs that was just announced by Ray Ozzie and immediately realized things missing in there and the huge possibilities of massive human collaboration that it can make happen. Rest of it is the story. I ended up spending about 16 hours a day in designing what I call now Data Syndication Services specifications and writing a reference application for it. While my efforts were inspired by SSE and Groove, the DSS design enables data sharing on a massive scale on much realistic grounds.

And guess what, I still call the project binaries Blank :).

Want to take a look? Go ahead and collaborate: http://www.ShitalShah.com/dss!


More : New Stuff On My Site | Software To Download Permanent Link: #
 


 Monday, November 14, 2005
Groove Hacks 11/14/2005 9:48:53 PM (Pacific Standard Time, UTC-08:00)


About a year and half ago, the new version of Groove had came out and it still didn't had an ability export IMs. It drove me nuts so I started to write my own Groove tool that would do it in excuse to explore its infamous internals. Ah! What a ride that was! Groove APIs have extremely huge surface area (which means there are thousands and thousands of them sprinkled all over in hard to find places). Tons of them have confusing names, misleading functionalities and put in the wrong place. The fun part? There is almost no documentation! And yeah, did I forgot to mention that they are heavy C++ oriented, frequently late bound and mostly proprietary stuff (they even have their own proprietary definition for rich text and APIs!)?

If your brain needs some challenge that's the place to dig in to. After sacrificing my 3 weekends I finally had a working tool that exports Groove IMs and put them to Outlook without loosing formatting or attachments! I consider this an equivalent feat of removing nag dialog of WinZip by changing a x86 jump instruction in its disassembled binary using only Visual Studio debugger and absolutely nothing else ;).

This tool had been sitting on my hard drive crying to get out for months and months. In between, I did some polishing up, adding wizards, support for Word and Excel, creating a help file and even created a website for it. So now I think it’s pretty much ready and have decided to give it away for free personal use (similar tools cost $50 something I guess). Check it out if you use Groove and want to save your invaluable messages! Call it laziness or ignorance or whatever but I really do feel guilty not to putting this out early when 3.0 came out and lot of people SO need it!

More : Software To Download Permanent Link: #
 


 Thursday, October 06, 2005
On The Run 10/6/2005 10:37:08 PM (Pacific Daylight Time, UTC-07:00)


It's easier to run.


More : Random Thoughts Permanent Link: #
 


Big Move 10/6/2005 8:46:54 PM (Pacific Daylight Time, UTC-07:00)


Okay... the (big) news time: We have moved out to all the way to the opposite coast and I've started my new work at Microsoft! More details will follow as I get some time from double pressure of moving and brand new job but suffice to say that Microsoft is possibly the ultimate geek destination on the planet and it shows up in all kind of little things. Lot of organizations out there fail to see the tremendous advantages of integration and try to mix and match in the hope they would get the best of both worlds. In reality they end up using only the lowest common denominator that exist between both worlds. Microsoft technologies are driven to its maximum at the MS campuses and its perhaps the best showcase for the power of these technologies. In other news, the fall colors in Seattle area is much vivid and really bright from what I used to see on east coast and something we thought we would be missing at this Evergreen State ;). This place rocks!


More : Personal News Permanent Link: #
 


 Tuesday, August 23, 2005
My New CodeProject Article On Equation Rendering 8/23/2005 7:31:01 PM (Pacific Daylight Time, UTC-07:00)


I just finished my new article on CodeProject. The mission on MimeTeX was started about couple of months ago when in a weekend I just got attracted to MimeTeX's C code like a magnet ;). Now I've built ASP.Net handler, caching, admin etc on the top of it and its looking great! Enabling scientific content on web seems to be my new obsession. So if you take pride in delighting your users with every new release, here's your brand new feature! Go ahead, download it, use it! If you run in to any problem, I'll be glad to offer you my help.

More : Permanent Link: #
 


 Monday, August 08, 2005
World's Most Beautiful Equation 8/8/2005 10:22:07 AM (Pacific Daylight Time, UTC-07:00)


UPDATE: Check out my article on detailed HowTo for this topic.

A weekend worth of effort has paid off so I can finally write about this equation. For those who wants to write about mathematics in their blogs knows what I'm talking about. Quite ironically, there is no built-in support for writing math equations in HTML. Of all types of knowledges, mathematics is something that remains invariant over time, cultures, languages. But the fact that the Internet, the largest knowledge resource of our times, does not yet have the capability to easily represent theses crown jewels is ironic.

That got to be changed. Thanks to John Forkosh who authored MimeTeX, the C code that parses equations in TeX format and renders them in to images. The code could be compiled as CGI executable to run under Windows. But my goal is different. I want to enable all forums, blogs, wikis and even desktop apps like Yahoo/MSN messenger so users can quickly write math equations. Considering some of forums and wikis have thousands of simultaneous users, the CGI executable just won't cut it. Neither it's usable for integration with desktop apps. So my decision was to convert original MimeTex code in to Win32 DLL and that's were the trouble begins (and weekend plans ends). I realized the MimeTeX code had several memory leaks which don't matter that much when you run it as a CGI EXE but could bring down the server if I'd to run it in-proc. Fortunately I was able to fix those leaks in just a weekend worth of effort and finally have my C# test app talking to MimeTeX Win32 DLL and displaying equations as I type! However the coolest part of the whole process was the long long emails with John Forkosh over next few days discussing every change I made in his code, carefully scrutinizing it, sending back and forth our changes to each other. While John would be updating his distro soon, you can download the code with fixes along with VB.Net and C# samples, DLL for desktop apps and my HttpHandler HttpModule code. This will enable you to integrate this functionality in any website or desktop app and let your users write equations as simply as:

Fermat's Last Theorem is <img src="$x^n + y^n = z^n$">

And Now without further ado, here's the answer to life, the universe and everything (and no, it's not 42):

Known as Euler's Identity, this equation reflects the relationship between four most fundamental numbers in the universe. There are not many important mathematical and physical equations where , or hasn't invaded yet and that in essence implies that these fundamental constants very tightly controls the ways the universe works (did you noticed ). So in nutshell, this equation just might be the concise definition of the universe ;).


More : Mathematics Permanent Link: #
 


 Friday, June 24, 2005
Some Cool .Net Nuggets 6/24/2005 3:00:46 PM (Pacific Daylight Time, UTC-07:00)


  • If type's constructor (i.e. static constructor) throws an exception, entire type becomes unusable. Any attempt to call any member of that type would result in TypeInitializationException.
  • Operator overloading should never be the only way to use the functionality if your code targets 1.x versions of frameworks because VB.Net can't access it without resorting to ugly calls such asop_Addition.
  • There is universal symbol for money (a generic version of $, £, ¥ etc) and it's ¤ (U+00A4). If you format the number as currency in culture invariant way then .net attaches this symbol to your number. I just think it's cool to have some universal symbol for money :).
  • Simplest way to convert hex number to int:Int32.Parse("1AFF", NumberStyles.HexNumber, null)
  • Simplest way to display array of bytes as hex values:BitConverter.ToString(byteArray)
  • If you updated something in your computer and suddenly your .Net app behaves bad, it is possible to do automatic rollback.. The .Net Framework keeps track of assemblies that was loaded by any managed app up. This info is stored in an INI file inLocalSettings\Application Data\ApplicationHistoryand is used by .Net Application Restore tool. I think this great debugging aid too.
  • In .Net world, zombies are not purely an imagination:
    class Person
    {
    	static object HoldOnToMe;
    
    	~Person()
    	{
    		HoldOnToMe = this;
    		GC.ReRegisterForFinalize(this);
    	}
    }
    
  • Values types are allocated on stack but not when you have an array of value types. For example,new Int32[100]allocates 100 unboxed integers on heap, not on stack.
  • The Finally block is not really always guaranteed to get executed. If any of these 3 special exceptions do happen, code in Finally won't be executed:OutOfMemoryException,StackOverFlowExceptionandExecutionEngineException(I'd be fortunate enough to experience all of these). That means you had created some global kernel objects, they will indeed hang around and may interfere when user restarts your app. BTW, if you see a code likecatch(Exception ex) {...}orcatch{...}, tell the developer that he has committed a sin.
  • Apparently GC.Collect() is not always a line of code you should disgust at. You might want to do it especially when you own the process and had created loads of objects which won't be used any further (for example moving on to a new tab in WinForms app). I used this in one of my projects to improve on the memory pressure and was really feeling guilty about it, until recently.
    	GC.Collect();
    	//block my thread till objects needing finalization are done
    	GC.WaitForPendingFinalizers();
    	GC.Collect();
    
  • You should always strong name your assemblies, especially if it is going to be used by assemblies in multiple AppDomains in the same process because only they are shared between domains; otherwise each AppDomain will have it's own copy. Why anyone would have multiple AppDomains, you ask. Well, if you are enabling your app to have 3rd party plugins, I strongly recommend loading all these plugins in to a separate domain. This way not only you can control the security policy on these plugins but also unload the bad plugins without shutting down your app. This is often overlooked in various plugin architectures for .Net but if you don't do this, you app might go on the same route as IE6.
  • If you have enabled your app or website for localization, don't forget to test it with Turkish language. If your thread is having CurrentCulture Turkish (tr-TR) and if you try to uppercase a letter i, you get İ instead of normal english I (i.e. Unicode character U+0130 instead of U+0049). Scott Hanselman has a first hand experience.
  • Many of you know Application.ThreadException event which lets you capture the unhandled exceptions in WinForms app and do something like Windows Error Reporting. But the better way is probablyAppDomain.UnhandledExceptionevent because that also lets you get notified for non-CLS compliant exceptions and without needing a reference toApplicationobject.
  • The values of public constants that you reference from other assemblies are embedded in your own assembly metadata. That means, if other assembly changes the value of the constant afterwards, you must recompile your own assembly or otherwise you still will be using that old value of the constant. I think this is as critical "bug" as lapsed event handlers.
  • Jagged arrays are not CLS compliant. If you are building a library that can be used by VB or C# guys, you can't have jagged arrays as public member type.
  • Visual Basic can do this:
    Try
    	...
    Catch e as Exception When x = 0
    	...
    End try
    

More : Programming Permanent Link: #
 


 Tuesday, June 21, 2005
Digits Of Pi 6/21/2005 1:20:14 PM (Pacific Daylight Time, UTC-07:00)


A famous quote from John Von Neumann goes like this,
Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.

This is something I've intuitively believed since I was 15 and even hadn't heard of Neumann. Pure random numbers is (or probably more) as fascinating concept as or i. It is impossible to generate sequence of purely random numbers without tapping in to nature. That means I could never write a computer code that generates a sequence of random numbers without showing up absolutely any patterns in a long run. There are only better random generators, never a perfect one, except thy nature itself.

So when I saw an article that digits of Pi are so far empirically proven to be randomly distributed, I was shocked. Infect huge progress has been made to prove that digits of Pi are indeed randomly distributed. Now the fact is, π can indeed be calculated algebraically (i.e. without tapping in to any natural phenomenon) and the idea that this can produce a pure random distribution just gives me a feeling as if sky is falling. I'd been hypothesizing since long time that the ability to generate infinite sequence of pure random numbers is the most significant (and probably the only) property to identify the existence of real universe, if it at all exist, that is ;). Consider this question: How do you know, at this precise moment, that you aren't part of some simulation running on some huge alien computer, or that you aren't some character in StarTrek holosuit or that you aren't dreaming with all these things around you (however "real" they may feel) aren't really "real"? Ok, it's hard to explain what I'm asking you but in nutshell, I'm trying to find out from pure mathematical perspective if there is anything in the nature that I can't masquerade, a property of the physical world around us that is impossible to simulate by any artificial means however sophisticated.

My hypothesis is that this property of the real world is an ability to generate infinite sequence of pure random numbers. That means, if you really want to find out whether you are some simulation running in a giant alien computer, all you have to do is to observe some natural phenomenon over a time with precision P and verify that your readings demonstrate pure randomness over the period of time T, where the P and T depends on sophistication of that alien simulation. The P and T can be very large but can never be infinity, except unless you are in the real world, of course. This is the mathematician's version of "I exist because I think".

So now you know why randomness of digits of pi made my stomach cringe. When I think about it, I'm starting to feel that any transcendental number obtained through convergence of infinite series (lets call them algebric transcendentals or ATs) must indeed have its digits distributed randomly. If you remember Cantor, there are more transcendental numbers than any other kind. But what this really means is I'm able to generate sequence of pure random numbers only using algebric means. It's as simple as finding new AT and emitting its digits. If you were someone who had given lot of thoughts to the nature of random numbers for years, this would sound both frightening and exciting to you. But hold on, could this really be true? After giving this some thought I believe it couldn't possibly be. I've finally constructed the following conjecture:

From a finite sequence of minimum length L of digits of any AT, there exist a Turing machine program G(L) to calculate the next digit in that sequence in finite steps. In other words, for any AT there always exist a number L which is finite and for which G(L) is a computable function.
In simple language, if you just give me sequence of AT's digits I should be able to predict the next digits provided you gave me enough of them to start with. This simply means if the alien computer was trieng to fool you by feeding you digits of some AT as a stream of random numbers, you can just sit back, collect these digits for a while and when you get handful of those, you can run through your algorithm to predict the next digits and find out you are not really in a real world (and also the fact that aliens didn't knew about Shital's AT Conjecture)! So random distribution is not the one and only property to identify a sequence of pure random numbers. The sequence of pure random numbers would not satiesfy this conjecture (i.e. L would be ∞). Infect this should be outright obvious: For sequence of natural numbers 0, 1, 2, ... we have all digits equally distributed but this sequence isn't by any means random.

This also gets us on to something else: the L now becomes a valuable property of an AT. A random number with infinite digits can be considered as a special class of AT with L = ∞. Let's call set of all such number Ρ (greek capital letter Rho) then the cardinality of Ρ should be Aleph-1.

If all of this went over your head, here is fun part: Here you can look it up if your phone number has showed up in digits of pi calculated so far or even your name expressed as hex codes! For example, I can be found in pi at 67357954th digit ;).


More : Mathematics Permanent Link: #
 


 Tuesday, May 24, 2005
15 Questions On Leadership 5/24/2005 2:26:55 PM (Pacific Daylight Time, UTC-07:00)


These are interesting questions if you were pursuing an acadamy degree on management/leadership. I do have the answers but don't have enough room here to write it down (Fermat R.I.P.).
  1. What a good leader should do when a majority vote is different then his/her strongly held belief?
  2. If you must make a choice between hurting your team's goal or ethics, what a good leader should choose?
  3. Say your boss wants you and your team to do something that isn't good for your team's goals. After lots of arguments, your boss does not change his/her mind. How would you handle this situation?
  4. How a good leader should treat his/her equals in the team? What can you do to harness his/her abilities without producing conflicts in leadership or ego-clash?
  5. How a good leader would pass the unpleasant news to the team without hurting the morals and motivation?
  6. In certain phase of a project you need your team to heavily overwork for a some period. What are the good things to do to keep the team alive and motivated in such times?
  7. Some members of a large team may end up doing boring, repetative and otherwise uninteresting work. How a good leader would recruite them? How to keep them motivated?
  8. Statistically 90% of the projects goes over-budget and over-deadlines. Say if you did fell in to these 90%, how would you keep your boss and your team keep going?
  9. Communication is of atmost important to the team. But is it good or bad to have lots of discussions?
  10. What are the good rules of thumb for good signal-to-noise ratio for team brainstorming sessions?
  11. A very capable and essential team member of yours asks you for a raise but you do not have funds. How would you keep him/her?
  12. Say you lead a large team and you can't recruite every single team member personally any longer. What are the general good recruiting policies a leader can set up avoid the weak nodes in your team?
  13. If you had to choose between following two candidates, what job attributes you would consider for the best match? enthusiatic but unexperienced college grads and less passionate but highly experienced professionals.
  14. How a good leader should respond when he/she finds certain team members does not respect or have a belief in him/her?
  15. Lets say you came to knew that you might soon become the target for certain mishapes, which weren't really your fault. What would be your exit strategy?


More : Junk Permanent Link: #
 


 Monday, May 23, 2005
RSS And Calender Integration 5/23/2005 7:10:36 PM (Pacific Daylight Time, UTC-07:00)


The idea of wrapping calendar information in to the RSS feed may sound very appealing. Almost every website owned by some kind of group or organization has their event calendar. The thought that you can aggregate them in to your "Calendar Aggregator" is just so geekily cool. What if people started putting up their weekend plans through some kind of RSS-Calendar and you can subscribe to them in your calendar program! I dig through dozens of W3C and other specs and half a dozen of implementation to find out what has been done so far and why it hasn't happened yet. The result of my findings and possible solution are summarized in my essay in some reader friendly writing.


More : Events To Attend | Programming Permanent Link: #
 


 Tuesday, May 10, 2005
Trading Geek Dinner For Self-Theories Of Intelligence 5/10/2005 3:18:16 PM (Pacific Daylight Time, UTC-07:00)


I'd to ditch the grand New York geek dinner to attend a talk on how the Brain makes memories at New York Academy of Sciences. This is my current absolute favorite subject to spend all my free time so I HAD to be there. The talk also turned out to be very energetic, fun and fast paced by Jennifer Mangels of Columbia University. The first part of the talk was about the role of the hippocampus in forming long term memories and her research. What they tried to do was to record EEG signals from different areas of the neocortex when a person tries to memorize something and recall it back later. Her research attempts to imperially prove that different areas of the brain must strongly participate together to have hippocampus realize the importance of the incoming information and form the contextual long term memories. While I really disgust at how everyone in neuroscience these days just do some EEGs and fMRIs and run around to write conclusions, above theory fits well with Jeff Hawkin's On Intelligence.

However more interesting was the second part of the talk: The Self Theory of Intelligence. This is very interesting. In 1970s, Carol Dweck did some research on human motivation in school children and noted that some students intrinsically tend to persist in the face of failure while others quit as soon as the going gets rough. After more investigations, she discovered that student's beliefs about the nature of intelligence had a strong connection with the way they approach challenging intellectual tasks: Students who view their intelligence as an unchangeable internal characteristic tend to shy away from academic challenges, whereas students who believe that their intelligence can be increased through effort and persistence seek them out.
Students who hold an "entity" theory of intelligence agree with statements such as "Your intelligence is something about you that you can't change very much."   Since they believe their intelligence is fixed, these students place high value on success.   They worry that failure-or even having to work very hard at something-will be perceived as evidence of their low intelligence. Therefore, they make academic choices that maximize the possibility that they will perform well. For example, a student may opt to take a lower-level course because it will be easier to earn an A.   In contrast, students who have an "incremental" theory of intelligence are not threatened by failure.   Because they believe that their intelligence can be increased through effort and persistence, these students set mastery goals and seek academic challenges that they believe will help them to grow intellectually (Dweck, 1999b).

Dr. Dweck's research on the impact of praise suggests that many teachers and parents may be unwittingly leading students to accept an entity view of intelligence.   By praising students for their intelligence, rather than effort, many adults are sending the message that success and failure depend on something beyond the students' control.   Comments such as "You got a great score on your math test, Jimmy! You are such a smart boy!" are interpreted by students as "If success means that I am smart, then failure must mean that I am dumb."   When these students perform well they have high self-esteem, but this crashes as soon as they hit an academic stumbling block. Students who are praised for their effort are much more likely to view intelligence as being malleable, and their self-esteem remains stable regardless of how hard they may have to work to succeed at a task. (More at her page)
Dr.Mangels then showed some videos demonstrating how EEG patterns differ in these two types of people. This is very significant. It essentially implies that you can device a helmet for a person to wear and after few EEG recordings I would be able to tell if person is in one group or another! Think, interviews would be so different ;).


More : AI Permanent Link: #
 


Go Left Handed For Mouse 5/10/2005 2:10:13 PM (Pacific Daylight Time, UTC-07:00)


Recently I observed how unequally I use my right and left hands. It’s not because I don’t type with my both hands but it’s because I use only the right hand in maneuvering and clicking the mouse. Considering the number of clicks I make per day, this huge lack of load-balancing is terrible! So I switched the mouse on left hand and it’s been great (reminds me the first time I hold the mouse) except that my mouse is curved so it’s comfortable only on right hand. I guess I’m gonna get a new mouse which is left+right handed, wireless (easy to switch hands), optical and at least 5 buttons. Don’t forget to reverse the mouse buttons in control panel! This is really fun.

However, besides those sitting posture tips, I think the one factor that strongly affects your creativity at work is how far you can look from your desk.


More : Useful Info Permanent Link: #
 


 Saturday, April 30, 2005
The Review Of The Car That Rules 4/30/2005 2:19:52 PM (Pacific Daylight Time, UTC-07:00)


I guess it's the time to write down bits about Mazda RX-8 for the benefit of future buyers. This is the car we bought in year 2004. I've heard that the 2005 model is exactly the same but I haven't checked it. Anyway lets start the engines!

  • This car is a real head turner. I mean REAL. People see BMWs and Mercedes SLK350 and go ahh. This car is beyond that. Here, people not just go ahh but they literally stop you, tell you that they just went ahh and ask details about the car. And by "people" I mean complete strangers of all age and all types (even those truck and SUVs fans). It's not unusual for us to get one such stranger encounter every other week.
  • RX-8 has got automatic plus semi manual shifting called "sport" mode.  In sport mode, you can shift gears right on the steering wheel! Also this mode is safe even if you tend to screw up when driving manual.
  • This is a rear wheel drive and that means it really sucks on the snow. Actually it sucks more than average rear wheel drives. The semi-manual shifting doesn't help in snow because it looks like the automatic vehicle stability controls is turned off when you switch to manual so it's even more dangerous to manual on snow. When it was snowing heavily for couple of days, I preferred to park my car in parking lot and take the train.
  • It's little more above then ground (with those big tires, of course) then most sports car. This helps a lot when you on dirty-rocky road. However you may not cross lanes by going over divider lines like those SUVs do. On the plus side, it doesn't flip over like those SUVs do.
  • This car has rotary engines, not cylinders. So terms like V4, V6 doesn't apply to it. It simply doesn't have any pistons. It's fun to explain this to people when their first question for sports cars is "oh, is that V8?".
  • The coolest feature that might get peoples jaw dropped for this car is suicide doors. They are extremely cool. We have seen car passing us by and then backing up to us asking "what is that?".
  • It's even more fun when you try to get insurance for this car. "How many doors it has?" the agent might ask. It's technically neither 2 door or 4 door! This car defies the common mold.
  •  Many reviews I'd read said the trunk space is small. So far we didn't had problems putting our stuff including telescope, guest luggage, caving gear and what not.
  • If you frequently go outdoor places, GPS is not optional. In early 2004 model, the factory installed GPS had really bad software so we didn't took it and bought after market Garmin. However Mazda has upgraded this software in December, 2004 and it's as good as any after market GPS. I believe GPS is probably the most important thing in the car after steering wheel, gas and breaks.
  • RX-8 has cool design for in-between seat space. You get two cup holders in front and back, 3 big storage compartments, and two cigarette lighters. Totally worth it.
  • You want the red one.
  • The seat design and covers has star trekee looks. The covers are made from washable and really wear resistant special material. This means you can put heavy stuff like big luggage bags with pointy corners on the seats without worry.
  • This car is a huge gas guzzler. I guess it consumes at least 30% more gas then typical 4 door cars of similar size. We need to refill typically after every 5 hours of drive. And just so you know, this car only likes to have 93 octane premium gas.
  • On another luxury preferences of this car, you can only tow it on a flat bed. Other towing may damage the car.
  • RX-8 has powerful big breaks. Infect its breaks have same specs as Porsche Carrera GT. You might also notice that tires do not have wheel covers allowing faster cooling of those big breaks. The bad part is that lots of rust gets in to those parts and sometime it looks awful. However Mazda engineers have let us know that this is perfectly normal and nothing to worry about.
  • R8-8 dimensions are very similar to Porsche Carrera GT.
  • There are no rear wipers.
  • So far I've took it to 110 mph (higher speed isn't easy in tri-state area). High speed is pretty natural to this car.
  • RX-8 has rotary engines and it makes unique pleasant sound then engine with cylinders. The main advantage seems to be their super compact size and disadvantage being they are gas guzzlers.
  • Apparently only Mazda makes cars with rotary engines. They had released RX-7 about 8 years ago and the RX-8 is new incarnation with more compact and efficient engines. Check out RX-8 club which has tons of rotary engine fans.
  • It has almost enough head rooms for 6 ft people.
  • It has dumb headlights - totally manual, no photo sensors.
  • It doesn't have dumb doors (the ones you need to slam hard couple of times to get them shut).
  • This car requires mirrors to be perfectly set to avoid blind spots. It's more important than other cars. That means, if you are a couple, you both should be of nearly equal height people so if you switch seats, you don't have to reset the whole thing again.
  • Unlike typical 2-door sports cars, this car is excellent for new couples planning to start family in near future because you get the extra seats behind with own their little doors :). This car perfectly fits the title of "family sports car".
  • Other goodies included are digital speedometer and outside temperature. There is no compass.
  • One of the biggest thing I dislike in this car is non-standard stereo. The factory installed one is pretty low end and you can't replace it with after market ones because it's non standard! That's huge deal. It's a shame for Mazda because cars with half the price now comes with MP3 CD player and FM with text. The 9-speaker BOSS system is less them impressive when it comes to sound quality and to me it looks like waste of money. Actually 9 speakers are pretty much useless anyway because Mazda system can't play audio disks with DVD-A encoding which are specifically designed for surround sound experience. Mazda does sell proprietary MP3 replacement player, however, for $350 only.
  • Like most other cars, you would be required to heavily negotiate with dealers for pricing. In 2004, I kept hearing price tag of $29,000 (without tax) when I started looking and finally bought the car for $24,500 inclusive everything. The Wayne Mazda is an excellent dealer and service shop if you are in NJ.
  • Because RX-8 is pretty new, it's hard to tell anything about engine life and resell values. But I believe both are pretty good if you look at RX-7.
  • One of the problem with this car is that after you start the engine and then if you need to shut it down without driving, you have to step on gas while still in park mode and "rave up" the engines and then shut it down. Not doing this step causes something called flooding reported by many people.
  • RX-8 doesn't have 5 star safety ratings.
  • You get pretty powerful xenon headlights, sun-glass holder, automatic tire pressure indicator and no-traction indicator.


More : Useful Info Permanent Link: #
 


 Thursday, April 21, 2005
Lots Of Updates! 4/21/2005 11:44:07 AM (Pacific Daylight Time, UTC-07:00)


I would be writing all New York City related stuff at Metblogs rather then my own blog. This makes sense because lot of people who aren't in this region doesn't need to get those NYC stories. On the other hand, my NYC related writing will now reach to much larger audience. Check out some of my entries there about cool New York events, restaurants and such stuff.

On the other site news, you might have noticed new skin and more FireFox friendly design. I also decided to give away the engine that my website runs on (C# code I wrote almost 4 years ago) along with entire source code for this website (thats in VB.Net just for fun). Nothing special but main highlights of the engine is that it accepts raw HTML file as the base template and embeds your dynamic ASP.Net WebForm content inside that HTML. It also provides navigation control which runs off of XHTML templates and XML.

If you like my free utilities, don't forget to check out the massive updates in Geeks Only section. It has now many more of my programs and utilities that I kept it to myself. Specifically, the one called Browser History Analyzer analyses your IE history (support for FireFox coming soon), builds MS Access database and gives you tons of amusing info about your browsing habits such has the queries you fired on search engine, how do you refine your keywords progressively, how much time you usually spend on a page, how much time you spend on browsing and so on. Whilte still in development, it also features extensible architecture to let you make your own plugins. I've also put the link for article I wrote for CodeProject about how to show Explorer's progress dialog in your apps.

Finally some Alaska trip photos also have been added. Yenjoy :).


More : Go Somewhere, Do Something! | New Stuff On My Site | Programming Permanent Link: #
 


 Monday, March 28, 2005
On Truly Managed Operating Systems 3/28/2005 12:03:23 PM (Pacific Daylight Time, UTC-07:00)


Anyone who have worked with .Net or Java would have certainly thought about this: Is there a way to extend these runtimes/VMs to build truly managed operating system? As it turns out Longhorn would be "mostly" managed OS but this is not the kind of "managed" OS stuff we are talking about. We are talking about truly managed OS, in theory and in imagination, that is.

If you look at .Net runtime, it indeed provides several services that should be coming from OS otherwise: threading, security, PE loading and so on. When I was watching the documentary Revolution, Richard Stallman was describing similar situation in his days: they wanted to build an OS, they had compilers, all kind of command line utilities, code for various services and so on but they were missing a kernel. So even if they had got lot of functionality working, they still needed some base OS to run off their stuff. I think the .Net runtime/JVM are in the same situation.
 
So what a managed OS would look like?  Who handles all the system calls down the line and how? Say I want to turn on a pixel on the screen, what my lowest level code running on a truly managed OS would look like? Let’s think about it: the lowest level managed code you can write in .Net is IL, which is essentially an assembly language for a virtualized CPU and memory system. The IL essentially has no idea about the world outside its virtualized CPU and memory system. For instance, I can’t write any direct IL instructions to read sector 510 from my hard drive or turn on a pixel on my screen. In its current form, I would have no choice but to extend IL somehow so I can make low level system BIOS calls or embed native instruction for my graphic card inside my IL. That’s not good. If I’m allowed to embed such low level calls in IL, the whole thing isn’t "managed" anymore and also not independent of the hardware I’m using.

As I thought about this more, I converged to the answer that we need a "runtime" for each of the subsystem in the computer. If you think about it, a hard-drive controller is a CPU in its own right with its own instruction set and so is your graphics card. Your main CPU and memory are just "over hyped" subsystems of your computer. Our traditional runtime and IL only virtualizes main CPU and memory, not these other subsystems. Once we have this "runtime" for video subsystem, hard drive controller and so on, it should be possible to write pure IL instructions to say, draw a bitmap on the screen. Notice that the IL code should work on any graphics card which has been similarly virtualized. Now you see, these "runtimes" for subsystems are essentially equivalent to drivers in current world but with a twist that they follow exactly the same structure and standards as the main runtime.

So now imagination can go wild: You have several "runtimes" running and managing each subsystem in your computer. Obviously each of these runtimes needs to discover and talk with other. The traditional runtime only manages main processor and memory but now it needs to send out IL instructions to say, VM controlling hard drive. So we now have a need for a standard protocol to discover virtual machines in the system and talk to them (much like Plug And Play). Also we need a system boot-strapper, which initializes all the runtimes in your system and provides common "channel" for them to discover and talk with each other. I also speculate a base runtime from which all other runtimes must "inherit" so as to enforce common infrastructure such as secured access to instructions and inter-VM communication. If you let your imagination wilder, you can think of a runtime/VM as something that consumes bytecode, changes its own memory state and outputs bytecode to another VM or a hardware. So essentially you can have cascading VMs too. You can even pass objects around VMs and even create your own VM (for example, to emulate non-existent hardware or to create a OS level service).

So what is the managed OS again? It’s collection of VMs for each subsystem and a bootstrapper. Good, we got somewhere. Anything you code against it would be (really) 100% pure managed code with potential to be executed on variety of hardware. Infect you could even have a VM which simply delegates call to parent OS instead of real hardware subsystem. That could make it possible to build versions of this managed OS that could run off the host OS that you already have, without forcing you to partition your hard drive or reboot your machine. This would still let all your "managed" code run as is it but may be without extra-strength security and such stuff.

This all sounds really cool. Now only if I can figure out how performance won't suck... ;)



More : Programming Permanent Link: #
 


 Monday, March 14, 2005
Algorithm Puzzle - Sync'ing Big Lists And Nodes 3/14/2005 6:05:02 PM (Pacific Daylight Time, UTC-07:00)


Here's a mathematical algorithmic puzzle for all you bright challange-seeking minds:

I've my own big business contact list and so does my friends. One day we decide to call up with each other on phone (only 2 people on one line), talk to each other and have our lists sync'ed up with each other. That is to say, we add any contacts we didn't had already, update any outdated ones and delete anyone who has gone out of business. However, you will be pleased to know that content of any two contact lists are pretty much same with only few differences. Infect many of my friends have identical contact lists and so they don't need sync'ing at all (though they don't know if they do have identical lists). We'll let you arrange pairs of people calling each other any way and at any time you'd like. Eventually, we hope to end up with exactly identical one mega list. But we want you to be fair, i.e., schemes like appointing one "central person" and having everyone talk to him in turns and let him do all the sync work is not cool. That's not fair for him and that would take lot of time too because talking in turns uses only one phone line at a time. For us "fair" means each person only needs to talk with same number of people as every other person needs to. And yes, before I forget to mention, our contact lists are really big and so does the count of my friends - both currently running over a million - and of course, us busy tired souls want you to finish this exercise in as little time and effort as possible.

So how would you do that?

[UPDATE: I'd posted the answer in the off topic group. Excerpt is in comments. Enjoy!]

More : Mathematics | Programming Permanent Link: #
 


 Wednesday, March 09, 2005
Applications And Platforms, An Another Face Of Internet And Why I Hate Groove 3/9/2005 6:11:44 PM (Pacific Standard Time, UTC-08:00)


Groove is perhaps one of the finest example of technology in recent times which has tons of potential and no vision. If you ask Groove what their product is, they will probably reply with something like this: "it's a program that allows people to work together on files, projects, meetings and so on.". And that underlines their severe lack of vision and plain immaturity which otherwise could have changed the face of the Internet. What it could have been is this: A platform that allows developers to build applications that could work online or offline with automatic real-time database and file replication. There is a huge difference between creating an application and a platform. To put it in perspective, imagine Microsoft developers betting most of their time and energy to create vast variety of end user applications and paying little or no attention in producing well documented APIs, solid development tools and nurturing, supporting and enticing developer community to enable them to create applications. Would Microsoft have gone that way it would have become another Apple. And computers would still be privately manufactured expensive white boxes fancied by richies.

Why I like FireFox so much? If I was using it out of the box and without downloading any extensions, I would have dumped it in trash can right away. Without extentions support, it's not that powerful and cool out of the box as those guys would have like you to believe. But enter the hundreds of cool extensions made by other people, and FireFox is suddenly the most appealing and powerful browser to me. FireFox extension API has essentially became a platform.

If you want to create a fast spreading powerful software, the bottom line is simple: Through people the plateform and thou shalt built apps upon it. Invest more in platform, not applications. Groove hasn't learned this lesson.

Actually, they are learning. They have VS.Net integration with GTK now, managed wrappers for lot of things, Developer Tools division, more then zero documentation and (are you ready?) even a book! But when you look at all these, you immediately realize that this effort to make Groove as a platform is more like an afterthought, a low priority, a low budget corporate "hobby" project and definitely an unfocused one. Before GTK came out some hardcore people were still trying to figure out how to use capabilities of Groove even if they had to use JavaScript APIs without documentation! And lot of them even then built cool apps. Imagine what if a real developer friendly platform was available wide open? How many applications would be built upon it? How many people would have downloaded Groove just to use those apps?

So exactly how does Groove fails to deliver to developers? To start with, they are extremely reluctant to change, re-designing, re-factoring, modernizing and rewriting their aged stuff. Their original core engine C++ code and API design is beyond the edge of being outdated and that's an understatement to fully describe the troubles with it. Groove APIs are exposed through COM and has a massive surface area combined with no documentation for much of the part. It's bloated, broken and even not fully implemented in many cases. In latest version 3.0 they have changed their UI makeup (and file share performance) but they are still dragging along ancient under the hood code. Compare that to Microsoft rewriting and renewing their massive operating systems every 5 years or so.

Current development aids for Groove aren't just enough. Even if you are using VS.Net integration, lots of things needed for real world apps would require you to modify proprietary files in obscure places under the direction of support people. To publish a Groove tool there is 20+ step procedurewith warnings signs: don't screw up here. For anything more then "hello world" app, you would have no choice but to sign up with Groove as their partner and hire their super expensive consulting and support services (which on many instances just comes back with replies "we never thought you might want to do that with Groove. Sorry, that's not possible."). Groove doesn't realise that the worst way to make money for them would be by squeezing the developer and proding them away for ever. And I'm not talking about launching rockets with Groove, but things as trivial as programmatically hiding left pan is simply not possible. And yes, they have the largest surface area API I've seen anywhere, including Windows. They haven't reused almost anything: everything from files, data, installation - you name it - they have their own proprietary APIs that you need to learn from the scratch (I'd spent tons of time and energy to have them support standard ADO.Net instead of their properitory data API and we used it in our project but unfortunetely they have pulled it out from Groove 3.0). I wouldn't say those guys at Groove are uncompetitive (I'd been to their office for couple of days worth of meetings and those guys were smart and cool), it's just bloated outdated design that they have to live with and work with. What a waste of an outstanding concept...

There is lot more to it. Groove isn't good and inviting to developers. Besides terrible "partner only access" schemes, you will also get recommendations to use their expensive personal training classes (I'd  been to the one which was a week long). Can you imagine if FireFox didn't fully document their APIs and asked you to sign up for their really expensive training if you'd wanted to make extentions for their browser? On most instances you would also end up hiring their "per hour" support and consulting staff to actually solve your problems that comes dozen a dime in real-world Groove development. I think several companies like IBM, Apple and Oracle workes just in this way and Microsoft is the only one to actually get developers on their side, give them nice tools and make things easily and freely accessible to them.

Several bad unrealistic decisions made during Groove's inceptions are still stuck with it even after almost a decade. For instance, Groove's replicated store is maintained in the encrypted XML files rather then real relational database powerhouse. Those designers wanted plateform independence and they screwed up (such types of failures are becoming so common they deserve a name: "Cross-Plateform Wanna Be Failure Pattern"). Results? Groove sucks at scalability. In my experience, put more then 15 people in a space or more then 10,000 rows in "database" and you will be soon thinking about uninstalling Groove. Yet another example of carrying over ancient design misshapes is that the entire Groove engine works only from inside their proprietary "Transreceiver". You can't build your own EXE and consume those API from outside (actually you can at very limited extent but it's so ugly even some internal gurus don't want you to try that).

So what Groove could have been if they weren't what they have become? Well, they could have given a birth to thousands of applications that could work either online and offline and anywhere. These vast variety of apps would have almost magical capability to synchronize their data with other people and computers. If you look beyond, it's a whole new form of Internet and here is a highlight of what I mean: You won't need a webserver to host your website. You could have just created a "space", listed it somewhere and allowed open anonymous invitations to let anybody find it and browse it. So Internet would mostly become the collection of spaces hosted on individual computers instead of collection of web servers. It's far more advanced then client-server model of current Internet and far beyond then traditional file-sharing P2P apps. In that form of Internet, there truely can not be any censorship. You can have your private television station and serve your content to millions of users through distributed P2P network without a need for expensive webservers and requiring huge bandwidth. Same would happen to audio communication that is currently being done by Skype: you get standard P2P plateform to build VoIP and PodCast servers. Traditional websites would have major facelift: HTML would have been replaced by interactive GUI tools that runs in space running under a secured account. Webistes are no more just HTTPs but are fully functional interactive GUI applications. So you see, lots of software you see around - everything from Kazaa to SETI distributed computing screensavers to Freenet to BitTorrent to Skype - are just specific instances of this technology. All of these applications are screaming for common P2P plateform and because there is none, each have their own quick and dirty homegrown one. If Groove concept was done right, it could have been this universal peer-to-peer computing plateform to do all of these in clear homogeneous way and there would have been an avalanche of next generation P2P applications. And that's why I hate Groove for making it not happen.



More : Personal Views | Programming Permanent Link: #
 


 Monday, March 07, 2005
Electrons Are Out, Photons Are In 3/7/2005 6:42:08 PM (Pacific Standard Time, UTC-08:00)


Our custom made PC based "media center" just got its new replacement screen: Dell 2300MP Projector! Short review: It rocks and totally worth it (especially playing PS2 games wired with 5.1 sound system and WinAmp Visualizers on a big screen). And here are more tidbits for you geeks:
  • Dell 2300MP is new line of DLP projector which (I guess) came out in Oct 2004. It has whooping 2300 lumens and 2100 contrast ratio and cost me $1165 including shipping. It's native resolution is 1024X768 which exceeds many plasmas. Projector of this class used to cost almost twice a year ago.
  • PS2 even with S-Video connector gives pretty cool quality. Through 5.1 surround sound system with games like Grand Theft Auto and you can hear cars passing by around you as if you are on real road.
  • This projector doesn't have DVI connector (for digital video from PCs) and component video/RGB connection (for high resolution DVD movies or 1080i HDTV format). That means you can only go as good as S-Vide. Also it has only one S-Video port. I don't think this is a huge disadvantage because more resolution offered by these connectors can't be displayed by projector anyway.
  • It comes with lots of wires (though short in length) and a slick case. Remember projector wiring and screen is a significant portion of total projector cost. A 25ft VGA cable alone can cost easily over $50.
  • One big limitation of most projection system is that you can project only a specific size picture from specific distance. So say if you have have 85" diagonal area available project on be able place projector at around 10-12 ft from the wall. No more no less. And yes, you must buy enough long wires to hook up all your PS2s, cable TVs and PCs.
  • This projector is super bright and it looks terrific even on our direct white wall projection without using any screen at all. It’s so bright that we don’t even feel needed to turn off our lights. On the daytime, if you have really bright room (no curtains on big glass wall), picture would appear washed out – not good enough for DVD quality but still pretty good for talk shows like quality.
  • Because of high lumens and contrast, the most suitable screens for this projector are matt white screens with the gain 1.0 or even lower. This eliminated need for high gain screens means you get wide viewing angle just like usual TV set and uncompromised colors.
  • Many people complained about circular "rainbows" that appears when watching B&W movies. It doesn't seem to appear so far with us but I guess it might popup if you are watching high contrast black and white movie for a long time.
  • Because of high contrast, darker scenes in the movie would feel darker. You will need to mess around with settings for this for a while (Dogma=3 works for us pretty well). BTW, we run at only 40% of its maximum brightness.
  • When projector is not placed right at the center of screen but on lower or upper side. You get a distortion called keystone. This projector has built-in key-stone elimination feature which works great but it doesn't have any way to shrink picture horizontally or vertically or compensate for horizontal center-off alignment. If you are planning to project on for more than 100", you should consider exact center ceiling mount.
  • If you still don’t think projector is a best bet for a screen, do a math on movie tickets. And even then if you don’t get convinced, go watch Step into liquid on 85" screen projected by this little toy! It's brillient!

More : Geeky Gizmos Permanent Link: #
 


 Tuesday, February 01, 2005
AI - The Stage Is Set 2/1/2005 3:29:42 PM (Pacific Standard Time, UTC-08:00)


If all research papers were published the way Jeff Hawkins published his On Intelligence, the world would be a different place to live. I strongly feel that this is the most important work in the field which is otherwise so bloated with wasted directionless efforts. This book is nothing like any research paper you might have read so far. It's written in very personal way. Instead of just spitting out end product, thoughts and algorithms, author also tells you what other directions he was thinking about and what made him to go for this one. The book however is really low on technical "mojo". Infect I just barely found it technical enough to keep me interested. The biggest missing gap is that author haven't really formalized his ideas on strong mathematical foundation. Also at times you would feel as if content is just too overly sweetened and you can't just let it push it through your throat (talk about pages and pages of "for example" for one simple concept!), but hang on. A guy from Stanford, Dileep Geaorge, has done some work in formalizing authors ideas and even made a working software prototype showing that it successfully produces solid vision recognition. There are still few missing links but I've hardly any doubts that this is the right direction.

Jeff Hawkins will be giving a lecture at NY Science Acadamy tomorrow (2/2/2005).

The stage is set.


More : AI | Events To Attend | Programming Permanent Link: #
 


 Tuesday, November 30, 2004
Our Alaska Trip Photos 11/30/2004 9:57:38 AM (Pacific Standard Time, UTC-08:00)


Here are our March 2004 Alaska trip photos.

UPDATE: Some content was removed from this blog entry.


More : Go Somewhere, Do Something! | Personal News Permanent Link: #
 


 Monday, November 15, 2004
Virtual By Default 11/15/2004 12:33:19 PM (Pacific Standard Time, UTC-08:00)


Omar blogs about an age-old debate on whether class members should be virtual-by-default or final-by-default. Here's my take:

After my years of messing around with .Net class libraries, I would prefer virtual-by-default any day. Basically, when people designs their classes they really don't want to spend much time on analyzing how someone else would be overriding a particular method - unless they are really sure that lot of people really wants to do that. And so it makes a logical sense to be pessimistic for a language designer and assume that something bad indeed will happen and disable overriding by default. The bad part of this pessimistic assumption is that it doesn't go well with the real world statistics while its still logically pure and solid. In real world, you will find yourself in need so often to override a particular method, even if its "at your own risk", and hack your way through to satiesfy the requirements that original authors didn't spend time thinking about. Usually most people will test their such "hacks" and know that they might be shooting a bullet in their foot. But an ideal language should allow them to do so with warnings - just like unsafe keyword - rather then making it impossible. You had done that rather then relying on original authors (such Microsoft) to come out with new functionality after half a decade or wrapping entire interface in your custom classes. The problem is that people does wish that their methods be extensible but they don't have time to analyse all the side effects and make promises. My solution is that the compiler should just flag the warning that the method you are trying to override was not marked as virtual by default and may cause side effects (instead of current behavior of shadowing them). It should make all methods virtual unless specified otherwise and store additional metadata info that the method is virtual but wasn't marked explicitly so. Forcing virtual or final keywords explicitly does not solve the problem because most people will choose final anyway to be idealistic as they still haven't got time to analyze the side effects but those could have been statistically be mitigated by the authors who are willing to spend time in testing after they override.

As far as the performance goes, I believe, authors of base class would much rather willing to spend time in finding hot-spot public methods and mark them as final rather then running complete analysis to decide if each of their methods could be virtual. So vote again goes for virtual-by-default.


More : Programming Permanent Link: #
 


 Monday, November 08, 2004
Neural Networks And Learning Bayesian Networks 11/8/2004 9:13:41 PM (Pacific Standard Time, UTC-08:00)


These are the two most interesting subjects for me right now. This book on Neural Networks is probably the best to take a dive in the field. This is truly the magnificent book that you can read like some thriller story (assuming you are not afraid of some mathematical depth) and look at the real working through cool numerical examples. Short but concise explanations might make this book deceptively tiny but it's sure the best introduction in this field.

On the other hand Learning Bayesian Networks is little dry but has solid examples and it promises answers to some of the puzzling questions that had been playing around in my mind while thinking about my own correlation algorithm. So it’s still an interesting read. This book you can probably read more comfortably if you are already familiar with Bayesian probabilities.


More : AI | Mathematics | Reading Permanent Link: #
 


VB.Net Resource Kit Saves The Day 11/8/2004 8:54:51 PM (Pacific Standard Time, UTC-08:00)


Did you knew that Vsiual Basic.Net Resource Kit has an utility to convert C# code to VB.Net? Ofcourse there are several online language converters but this one works great. And that's besides having cool Dudas Chart control and tons of other components from Component One absolutely free (though their charting component is pretty miserable and requires free registration for licensing). Charting is seriously missing component in 2.0's toolbox.and I'm just wondering why doesn't MS thinks of bundling these components with VS.Net 2005 installer rather than keeping it in an lesser known corner of web.


More : Programming Permanent Link: #
 


Is Jeff Richter Screwing Up The .Net Versioning? 11/8/2004 1:51:06 PM (Pacific Standard Time, UTC-08:00)


I don't know how no one is bothered by this. May be because it affects Longhorn. But anyway, everybody would agree that while .Net solved the DLL Hell issue, it created its own which I affectionally call Assembly Hell and had my rants loud from the start. I'd high hopes when I heard Jeff Richter is on the team. But be hold, they come up with the statement that the problem is "mathematically" unsolvable and some fuzzy argument to back up that statement and then they reveal possibly the worst versioning scheme I've heard in a decade for anything: divide the assemblies in "platform" and "library" groups! I can't even start to imagine someone could think of this kind of stupid idea for things that will hit the entire planet on massive scale. Must be an outcome of long meetings for days :).

I'd been burned a lot by missing gaps in .Net versioning and problem is pretty simple if you had been in this mess. The solution is even amazingly simple for what it appears like a monster.

The fundamental flow in the .Net versioning is that it doesn't allow to put a version number on assembly without breaking the compatibility. Once you understand this, lot many problems would be simplified. The 'assembly version' is what we usually use for checking whether the file is really the one what we want and for deployment modules to make an update. While 'compatible-to version' is for the run time to check if it should throw an error. So 'assembly version' is different then 'compatible-to version' and are not tied with each other. So all we need is one AssemblyXXX attribute that can let us specify what is the build number for this assembly and another AssemblyYYY to specify the version to which this assembly is still compatible from interface as well as behaviour point of view. You always auto-increment your assembly number on each build, but you do not change "compatible-to" number unless you really change the interface and behavior. And the problem is solved.

Infect, here is a final surprise: you can do this right now in 1.x and 2.x. Use AssemblyVersion attribute to specify "Last Compatible-To" version and AssemblyFileVersion attribute to specify the build version. Things have been worked out perfectly for me with this scheme. Now when I hear about dumbest idea since COM versioning and 'plateform' and 'library', I just think we are in for huge additional mess waiting that will take another release (another 10 years?) to clean up. Whether you agree or not, people, speak up!!


More : Programming Permanent Link: #
 


 Friday, November 05, 2004
Dev OS Choice: Windows 2003 Server Or XP 11/5/2004 5:25:42 PM (Pacific Daylight Time, UTC-07:00)


Peter Provost is switching to Server 2003. I want to say: don't do it! I'd been using server version of operating system on my dev machines, even on laptops, since I can remember. But now I'm about to change my mind for the first time. Windows Server 2003 is not a cutting edge OS any longer. Infect it sucks!

1. You really have to spend lot of time to set it up right to reclaim memory and performance. For example, disabling several services, disabling option for higher performance for services, enabling DirectX manually and so on - it's always been on going job. Even than, I still find my dev box spinning way too much disk then equivalent XP box.

2. Even both OS shares lot many drivers, its sometime amazingly difficult to install some devices for Sever 2003. Infect just couple of years old hardware from Creative and ATI, the XP version of drivers just won't work.

3. Many new software from Microsoft itself just don't work on 2003. For example, Windows Media Player 10, Microsoft TimeZone etc.

4. Enhancements from XP SP2 like IE security and Wireless config etc aren't still available for 2003. It looks like users of 2003 are always one step behind in the line to get the new beef and its taking just too long.

5. Windows Peer-To-Peer SDK and Advanced Networking Pack does not work on 2003.

6. DVD playback and built-in CD burning is hard to get working (requires registry tricks and more).

7. There is no System Restore!! It might surprise you, but this is true. For this is so-called solid server OS, if file system corrupts, you lost the whole thing. This actually happened with my laptop which I just switched off while hard drives were still spinning and on next boot I was greeted with blue screen with a message that registry was corrupted. This could have been a legitimate power loss also. It was after-midnight and I really needed few things to get done. After an hour of reading docs all around Internet truth revealed: there was no way to bring 2003 back to life because there is no System Restore feature in this OS!

Overall, it just appears that Microsoft simply doesn't care if the new software/drivers they released on XP doesn't work on 2003. They just don't care. I really hate this line between server and home OS versions. Everybody knows that this lines have been drawn just to milk more money from fat corporates for so-called server versions. Few might know, XP and 2003 shares almost identical kernels (even OS version numbers are 5.01 and 5.02 respectively). Right now, you choose any flavor of OS, you not gonna get satisfied because something is missing. Its not because of technicality but pure politics of pricing. And thats a shame to Microsoft.


More : Personal Views | Software To Download Permanent Link: #
 


Coolest New York Shows In Run 11/5/2004 3:10:11 PM (Pacific Daylight Time, UTC-07:00)


These are the some of the select broadway/off-broadway shows currently running in New York. Many of them ends soon. If you live in area, do check them out!

GoogleWhack - This small production comedy had been consistently sold out in UK and Australia. Even if it hadn't been, its pretty geeky enough for not to check it out :). We will be going to this show tonight! Ends December.

Forever Tango - Looks extremely cool. Seven couple who tango in their own styles from Argentine. Ends Nov 28.

Cookin' - A terrific show. Korean crew creates awesom beats and music from mere kitchen appliances besides other jaw dropping stuff in the show. Absolutely recommended.

Blue Man Show - If you want to see just one off-broadway show in New York, this would be it. We went to this one last December and its an awesomely creative show which you might enjoy every moment of it (and it doesn't have intermission). Its difficult to describe what this show is about but one can escape describing it by calling higher form of modern art, just like its music. The show that's being currently running has new "material" though.

Slava's Snow Show - While except for closing sequence it wasn't ultra cool, it sure was different. One might think its kids show but when we went to see it, we hardly observed more than couple of kids in audience (and show was sold out).

Trans-Sieberian Orchestra - This is the most impressive, most awesome and the coolest live concert I've ever been too. To miss them in live concert would be practically a sin. With hundreds of colorful spotlights, and another few hundreds of freaking lasers, and some cool fireworks right on the stage and a band of more than 20 musicians and singers and with very diversified styles, they simply doesn't have a match.

Steven Wright Comedy Show - For a long time I considered Steve Wright as the most gifted comedian I'd known. His ability to make up original random unrelated witty one-liners which he can keep throwing at you one after another for the entire length of show is amazing. He hasn't doing many shows since last few years but finally New York Comedy Festival provides a chance to hear him live!

Also as a side tip, many (but not all) broadway show tickets you can buy at heavily discounted prices by entering secret codes. Sources to check out for this are TheaterMania.com, BroadwayBox.com, entertainment-link.com and NY Times TicketWatch.


More : Events To Attend Permanent Link: #
 


A New NewsGator Online Convert 11/5/2004 2:12:15 PM (Pacific Daylight Time, UTC-07:00)


Any software that isn't open source AND also isn't evolving fast enough to keep up with their customers should be seen with the sign "Stay Away". These things gets in to your computer in the name of easing up your tasks and it indeed appears so for a while until you just run of out its capacity and start spending most of the time in just managing it or dealing with information overload. Sharpreader is the one. Windows is another. While my desktop will soon have Linux Mandrake distribution, I don't think it will still solve the problem because Linux is open source but it ain't fast enough to evolve, in my view. But finally I was able to take care of SharpReader. Check out the free and cool NewsGator Online Edition. I'm a convert since last two weeks and I like its not-large-but-effective featureset which includes:

  1. It allows to rate posts.
  2. It allows to clip posts.
  3. It allows to share your clips using RSS (which you can eventually save on your hard drive for archival purpose).
  4. It allows to share your OPML in real time.
  5. No need of syncing news readers on different boxes.
  6. Pretty cool non-interuptive Web UI

Features #1 and #2 are essential in dealing with information overload. I've also categorized my feeds in to just 3 categories: Peoples blogs, High interest services, Low interest services. Things have gotten pretty smooth after establishing these categories.


More : Software To Download Permanent Link: #
 


Google Cheatsheet And Clusty 11/5/2004 1:32:36 PM (Pacific Daylight Time, UTC-07:00)


I thought I know everything there is to know about Google searching, until... I found there is an operator to search for synonyms and two words separated by a word and so on. Check out the Google Cheetsheet!

It appears that I'm often switching to Clusty for "hard to find" things - usually when Googles first page of results is just irrelevant.  I think clustering is inevitable technology for search engines and really hope Google speeds up their effort for implementation. It isn't that hard, after all.


More : Personal Views | Useful Info Permanent Link: #
 


 Monday, November 01, 2004
Music Genres To Explore 11/1/2004 3:41:27 PM (Pacific Daylight Time, UTC-07:00)


If you are like me and constantly run out of fresh new music to listen, here's something that might help. The best way to discover new music is to find new/fresh/weird genres. I'll try to put here a list of very interesting select genres that I came across recently. I would highly recommend services like Rhapsody if you want to explore these. What’s more important is the way they provide navigation and ability to discover more. For example, once you find an interesting album, you can immediately click on the music genre that album belongs to and then find out the top chart for that genre and discover even more artists and so on.

So here are some cool and weired music genres to explore :)

  • Laptronica - This is basically music created by single person entirely by high-end software on his or her laptop. Some of popular laprtronica artists even have their concerts where they just sit on the stage with their laptop and stream out some beats for the audience! Example artist M83.
  • Experimental - This is the awesome genre to explore and can keep you busy for hours. Try Blue Man Group's Audio album or a super-weird track by Tom Waits and you'll know what I'm talking about!
  • Solo Instrumentalist - Example artist Itzhak Perlman.
  • New Age/Solo Instrumental - Example artist David Lanz. These for some "non-intruding softer displays of creativity" times :).
  • New Age Acoustics - Example artist George Winston. These are for some happy relaxing "find your soul" times.
  • Space Age Bachelor Pad - Yes, that’s really a name of a music genre! Example artist Pizzicato Five.
  • Cut & Paste - Too abstract to be classed as hip-hop, kind of beat-based experiments. Example artist Cold cut.
  • Electroclash - Energetic synth, electro-techno-pop-punk hybrid. Example artist Fischerspooner.
  • Bleep - Moody robotic sounds, too irregular for the dancefloor yet often too disruptive for passive listening. Pretty cool worktime music. Example artist Autechre.
  • Dream Pop - So how about an album named "Transient Random-Noise Bursts With Announcements" by Streolab?

Apart from these, there is a lot to explore in Foreign, Comedy and Theater genres too. But that some other time.


More : Music To Listen Permanent Link: #
 


DVD-Audio Format 11/1/2004 2:32:23 PM (Pacific Daylight Time, UTC-07:00)


In my recent quest to find new music, I bumped in to brand new DVD-A format on which many new demanding music albums are being delivered. It appears that this is definitely the next generation of music quality but there is very little or no information on many of its aspects. Here I'll try to summarize what I found so far:

This format is capable of delivering very high quality multi-channel surround sound on your home theater system. The DVD-A format is entirely different than usual Dolby Digital or DTS which is used for DVD movies. The quality that could be delivered using DVD-A is superior than Dolby Digital or DTS. If you look in to your DVD disk in Windows Explorer, you will find that there are two folders: Audio_TS and Video_TS. So far, only Video_TS folder was used to put all the movie files on DVDs because industry wasn't settled on standards for DVD-A format. Recently standards have been finalized and loads of new music albums are now being released in this format. They have content inside Audio_TS folder which contains DVD-A audio tracks in files with extension .aob. Because its brand new format, you need newer DVD players or sound cards to play it. However because most people aren't going to upgrade their DVD players soon, these audio DVDs supply same sound tracks in Video_TS folder encoded in usual Dolby Digital or DTS which all players knows how to play.

Now say you buy an audio album on DVD disc. Obviously you can't play it on car stereo or your portable MP3 players because it’s a DVD disc rather than normal audio CD. Or you might want to take backup of your DVD-A disc as WMA Pro files on your PC whcih allows 7.1 surround sound and playback. So what you do? You need to convert DVD disc in to normal Audio disc or rip tracks to MP3s. Unfortunately this isn't easy. The DVD-A format employs higher level of encryption than usual DVDs. The DVD videos (stored in .vob files) employs copy protection scheme called CSS which can be broken in to very easily using DeCSS or even more friendly DVD Decryptor. But DVD-A format which was developed later has learned lesson from this hack and currently there is no known way to decrypt .aob files which contains DVD-A audio tacks. That means you can't rip MP3s out of AOB files. Your only way out is to rip off from slightly lower quality Dolby/DTS formatted tracks. The most reliable and easy to use software to do this is DVD Audio Extractor. Fortunately many DVD-A albums also provides LPCM version of tracks along with AC3 (i.e. Dolby Digital)/DTS format. So to burn normal audio CDs or MP3s you might want to choose LPCM version. If DVD-A disc doesn't contain LPCM tracks, than you are out of luck. The down-mix/demux process employed by most software to convert surround sound from AC3/DTS to plain stereo format doesn't produce same quality as commercially available stereo tracks. Though you can try some equations to combine 5.1 channels in to stereo using SoftEncode etc and usually DTS works better than AC3.


More : Music To Listen | Software To Download Permanent Link: #
 


Two New Music Finds 11/1/2004 12:54:11 PM (Pacific Daylight Time, UTC-07:00)


[Artists - Album]

1. Blue Man Group - Audio
My short review of this album would be "Insanely creative". This amazing Niagara of energy is probably very different than anything you have heard so far. Some of the tracks were composed with 15 different instruments including PVC pipes and homebrewed hybrid instruments! If you have seen their off-Broadway show, you will probably appreciate this music even more. This show is definitely one of the most creative, energetic, artistic and amusing I've ever been too. On other note, they have second album called Complex. In sharp contrast, this album, apparently containing many vocals, comes nowhere close to their first. This album is available in full-blown multi-track surround DVD-A format however it doesn't contain LPCM stereo tracks, which might force you to by normal CD for MP3 extraction.

2. The Polyphonic Spree - The Beginning Stages Of Polyphonic Spree
To give you a highlight, this group is composed of 20 members including 9 dedicated just for choir, humming and making noises. They are also the only one I know of using French horn. The combined effect of this huge mix and diverse instruments is just majestic while recording quality of vocal is not as good but you probably won't care for the kind of upbeat energy it pours in. While anyone would agree they sound amazing in live concert than on recorded media, I still believe Trans-Siberian Orchestra has still maintained its "absolute best" position with me as far as large bands are concerned. Unfortunately Beginning Stages isn't available in surround DVD-Audio format. However their second album Together We Are Heavy is indeed available in incredible crystal clear DVD-A surround format but it is probably half as good :(.

These albums are available on Rapsody, although not in surround sound.


More : Music To Listen Permanent Link: #
 


 Monday, October 11, 2004
An Idea To Curb Email Phising 10/11/2004 3:37:19 PM (Pacific Daylight Time, UTC-07:00)


Chris Sells blogs about his experience and this exponentially growing problem of email phising and asks if there is any way out.

My solutions:

1. Enable Explicit Links Only

In email clients, put an option, which is turned on by default for this: While rendering HTML hyperlinks, disable them unless the link text is exactly the same as hyperlink URL it is pointing to. Images in email also can't have hyperlink any longer.

There are many advantages: This option does not completely block legitimate commercial senders. Also it does not hurt users themselves sending links to each other because when they copy and paste links in their emails, this is how it appears by default.

2. Use TITLE tag for warning

The email client can add/override TITLE tag for all clickable hyperlinks with a text: "Unsafe website". So these words will appear when user hovers mouse over a link and is about to click on the link.

3. Ugly Message Box

If the idea of disabling links could be an overkill. May be email client can just put a message box when you are opening a browser by clicking a link in email: "Following website may not be safe: blah.blah.gov. This could be with checkbox "Don't warn again" or may be as an secret advanced option somewhere.

4. Auto-refresh email to browser page

When you click on a link in an email client, the browser first shows a default warning page that URL may not be safe with text of actual URL and then after a while it refreshes itself to that actual URL, puts the focus on address bar and may be change the address bar forground color as red. Playing the wave file for hazard siren while user browse that page is optional.


More : Programming | Useful Info Permanent Link: #
 


 Friday, October 08, 2004
Chase The Fall Foliage 10/8/2004 9:32:09 PM (Pacific Daylight Time, UTC-07:00)


If you are reading this and haven't been out there, well, you already missed the biggest blast of colors in Adirondacks (NY). On US east coast, Maine and an odd little dot in the heart of Adirondacks are two places where the amazing fall colors appears first. Last year, just by pure fortune, I was in Adirondacks and in one of the first mornings I saw a sudden blast of color everywhere in the region. So we took the flight over 46 tall mountains (and the countless small ones) that makes up this amazingly beautiful area. The aerial views we saw from the small plane flying low were definitely the best fall foliage view I’ve ever seen (and for the record, I’d been out quite a lot).
Anyway, last weekend was the day when colors had peaked again at Adirondacks and after a week of blazing show that nature had put there, the area is now past peak (along with Vermont and much of the New Hampshire – which is often compared with China for the best in fall foliage in entire world because of the diversity of trees). But if you plan well, you can still chase the fall foliage on the East coast for this entire month and enjoy the blazing colors in truly awesome settings! After some researching in to my collection of links and reviewing fall foliage reports from various states, I've prepared this Excel sheet for the approximate times for fall foliage peak colors. So go out and have fun!


More : Go Somewhere, Do Something! Permanent Link: #
 


 Friday, October 01, 2004
Coolest MP3 Player (No, Its Not iPod) 10/1/2004 11:47:39 AM (Pacific Daylight Time, UTC-07:00)


The MP3 player that I was looking for to buy needed to be 1/2 of the size of iPod, built-in FM transmitter (yes, you read it right), built-in FM radio, capability to directly record FM radio in to MP3 files, voice recording, equalizer presets, digital bass and treble controls, HDSS or virtual 3D mode, line-in input and should instantly act as USB drive without requiring drivers. Of course, it should have 512 MB or more memory.

Does this thing really exist?

It turns out it does. There are manufacturers in UK, Korea and Japan who sell these in their countries - but for strange reason no one is making anything like this in USA. However, there are some obscure sellers who sell these foreign products on eBay. One that had everything above and more for $179 is Enox TMS-620 available at Sun-Tec.

Especially FM transmitter is pretty handy. It’s like carrying your own FM radio station in that 1/2 of iPod size thing. Of course, the best use is that you can play your MP3s in any car. If you wish you can hijack FM radio being played at restaurants too! My current usage is though listening to Dot Net Rocks, while looking at weird ads on New York subways :).


More : Geeky Gizmos Permanent Link: #
 


 Monday, September 27, 2004
Would You Like Some Monopoly With That? 9/27/2004 4:09:33 PM (Pacific Daylight Time, UTC-07:00)


Some people had really rejoiced when DOJ started the antitrust lawsuit on Microsoft. I thought it was lame - for people who can't beat Microsoft in any other way. To me it was like suing Mc Donald’s because they are selling their burgers with their own buns instead of giving their customers an option to choose buns from different vendors. Monopolies are the inevitable children of capitalism but they have been declared illegal. In non-software world, people are less sensitive to this legality issues however. Take this: Loews theaters have put a new rule: If customers wants to see movies in their cinema halls, they must throw away the water bottles they are bringing and buy exactly the same bottle from their own stores inside. The employees are specifically instructed to keep an eye to observe this rule and literally force them to throw it away. As you might have guessed, the bottles available at their store are twice in price as everything else they sell. And as you might also know, entire movie theater business works on monopolies, i.e., if Loews is showing some movie, any other theater in the same region cannot show the same movie. None has yet cared about giving customers a choice for cinema halls. I saw people in line wanting to see movie willingly threw away their bottles without giving a thought. This is not the only example. Cable companies work the same way and so many others. I still think this a natural evoluation of free markets.

PS: Want DOJ and BBB to go after Loews? Do it here and here.


More : Personal Views Permanent Link: #
 


 Wednesday, September 22, 2004
Tablet Or Laptop? 9/22/2004 1:18:45 PM (Pacific Daylight Time, UTC-07:00)


It should be a crime to buy a simple laptop instead of a tablet PC. But not just any tablet PC, mind you! Most tablet models are pretty miserable on specs tagged with high prices and geared more towards business people. But there is a gem out there for power users: check out Acer TravelMate C303 - it just looks like a usual laptop until you fold the LCD and make it a tablet! This is also by far the only one with built in DVD writer and 1GB RAM and 80GB HDD and Bluetooth and full 14.1" LCD (most other tablets have just 10").

For $2300, it makes a pretty good developer machine.


More : Geeky Gizmos Permanent Link: #
 


Difference Between Local Trains And Express Trains 9/22/2004 12:49:47 PM (Pacific Daylight Time, UTC-07:00)


Local trains stops at every station, express train stops between the two.

 


More : Junk | Personal Views Permanent Link: #
 


 Friday, September 17, 2004
Continual Survival Of SharpReader 9/17/2004 1:27:18 PM (Pacific Daylight Time, UTC-07:00)


I use SharpReader to read my news. This is a small free app that has amazingly survived like an unevolving little insect in an environment where new species with more beef keeps coming. But this thing is still not extinct. I run around to look for an option with more features and end up at using SharpReader again and again. I'm though more interested that it dies away for one reason - the author isn't publishing source code and at the same time he doesn't have time to improve it by himself. It has pretty limited feature set but its designed so that its just barely enough to keep you alive. I tried to switch to RSS BandIt just to find that its fat feature list had missed some hearty points. Yesterday I looked at Omega Reader and was very excited that finally this will call for an end of SharpReader - just to find that its super-fat features comes with same numbers of bugs. So I'm still continue to live with SharpReader virus. Its an example how to design your programs so that your users wouldn't like it and at the same time can't give it up.


More : Software To Download Permanent Link: #
 


 Monday, September 13, 2004
Make Your Windows More Geekier 9/13/2004 10:45:06 AM (Pacific Daylight Time, UTC-07:00)


X-Setup is perhaps the most comprehensive Windows tweaking utility. I always end up spending half a day enabling all the hidden advanced settings using this thing. Fortunately it provides Recording mode and creation of a REG file. This is really cool because now with just a click I can make any XP/2003 machine more geekier and end lots of "default" annoyances. If you are interested you too can use my final REG file. It would enable a whole range of features – everything from showing additional control panel applets, using double pans in explorer, removing Outlook attachment restrictions, showing file attributes in tooltip, adding new items in Explorer context menu, removing Shutdown Reason UI, kill everything quickly when shutting down and so on...
More : Programming | Software To Download Permanent Link: #
 



Back To Latest Entries

Past entries at...

Archive 1

Archive 2

   

~ Archives ~

Past entries:
(Since Oct 2002)

Archive 1

Archive 2



~ Search ~


~ Categories ~




Subscribe feeds: RSS 2.0 | Atom 1.0 | CDF


Get these blogs in your email:

I'm jotting down these blogs in real time and that means that content (the "soul") has more priority than grammatical accuracy and spellings (the "body").
I use newtelligence dasBlog 1.8.5223.2 as my blog engine. Its not perfact but hey its with source!
Sign In

  © Shital Shah, 1998-2007. You may freely copy and distribute material available on this site created by myself. All rights reserved. Please read the Copyright, Terms Of Use and Desclaimer