November 9, 2007

Emails @ Work

Check out my email download queue today…

email queue

Filed under: Geeky Stuff — Michi @ 1:54 pm

October 26, 2007

Mozilla Prism - Bringing Web Apps to the Desktop

Mozilla Labs just released a new feature called Prism. The most interesting aspect of this announcement is that Mozilla is attempting to formally “upgrade” the web application development process from what it was since the web was born. While their new technology introduces no new significant features to web development, it strongly encourages web 2.0 style development by completely removing the navigation links and address bar.

refracting

Prism is an application that lets users split web applications out of their browser and run them directly on their desktop.

On the surface, it seems like a browser without a location bar. The main thing is that it allows web application the hooks that regular applications have such as being direct links in the application menu. But even that is replicated with modern operating systems by using shortcut links. It is superior to just visiting a regular website using a browser in a two ways:

  • If an application or Firefox crashes, it doesn’t crash the other instances. Each application runs as its own standalone instance with its own link in the task bar.
  • Customizations or extensions per application are now possible. For example, you might see an extension specifically for Facebook or YouTube that works in the application environment without cluttering up your Firefox install.

googlecalendar

Mozilla has greater ambitions for this project, as it is indicated that this is the first in a series of ”experiments” on web-desktop integration:

…we’re also working to increase the capabilities of those apps by adding functionality to the Web itself, such as providing support for offline data storage and access to 3D graphics hardware.

They state that they have no intentions of doing these things using proprietary technologies as proposed in Adobe’s AIR or Microsoft’s Silverlight.

In short, by keeping this a separate piece from Firefox, it frees them from cluttering up their browser. By keeping it separate, they can cater to the needs of desktop applications as eventually (in the long term), whole sites might be applications you would need to open with this tool before you could use the off-line features (Firefox just gets you to the site).

At least, that’s my take on this.

Filed under: Geeky Stuff, News — Michi @ 1:41 am

October 21, 2007

My iPhone Review as a Former Crack-Berry User

I recently got an iPhone. I now understand why it is rated so highly by its owners. It lives up to its hype, and blows away all other phones. I am not going to even talk about the iPod feature of the iPhone since it’s irrelevant to me.

82% satisfaction on the iPhone, 51% on Blackberries

Interface

I was very happy with my Blackberry until I got an iPhone. The iPhone has an amazing interface. Everything is so dead simple to understand. I thought the trackball on the Blackberry was slick, but the touch interface on the iPhone is about as intuitive as it gets. I can delete emails amazingly fast (swipe right, tap on delete button), and scrolling through long lists has never been faster or more accurate.

The single most confusing aspect of a phone is its interface during a phone call — something the iPhone has fixed in a way no other phone can. The Blackberry is just as guilty as all other phones: when someone else calls in and you want to hang up and switch to the other person, how that is done is not obvious (honest, I still don’t know how). This exact scenario happened on my very first phone call on the iPhone, and I figured out what to press within the two seconds when I looked at the screen to see what to do next. The interface is really thought out.

Construction

With the Blackberry in one hand and the iPhone in the other, I can see just how “cheaply” the Blackberry was built. While it has a nice metal-looking pair of side panels, the entire thing is actually made of plastic, and in a matter of months, it wore down quite a bit. While time will tell how the iPhone holds up, it doesn’t take a rocket scientist to see that the iPhone’s glass screen and aluminum casing will hold up to scratching much better than a plastic shell.

Keyboard

And the keyboard - the point of contention for most potential buyers - is amazing. The first time I tried the keyboard in the Apple store, it was only “okay” at best. It is hard to let go of the Crack-Berry once you are used to its mini-keyboard. But after using the iPhone for one day, I can type very fast on it, and with only one finger. Its auto-correct feature is very smart, and once you learn to trust it, typing is as fast as you can spell out letters.

The Camera

I hate how the iPhone’s camera is activated by a button the screen. Why can’t it use the sound adjustment buttons on the left side? QA must have missed this obvious annoyance.

Photo manipulation is as fun and easy as Steve Jobs made it look during his famous keynote.

Browsing the Web

This is hands down a victory for the iPhone. The browser is as good as they say, and it’s refreshing to be able to see full web sites on a mobile device again. On the Blackberry, the web feels like it got filtered through a coffee can and you are stuck in 1995.

I’ll go in and also mention Google Maps here: The zoom and pan functionality work amazingly well in a touch screen environment. If I hadn’t seen Google Maps before, I would think Google Maps was designed for the iPhone.

Battery Life

The battery life on the Blackberry is amazing, especially on the 8800 series. I know from experience. I haven’t had enough time with the iPhone to claim much in this department. From what I have seen, it can easily go an entire day of playing music, regular phone usage, and minor Internet browsing on one charge and still have more juice.

EDGE Network

EDGE sucks. My Blackberry was also using EDGE, so both phones blow in this regard. But at least the iPhone can leech wireless connections (the newest Blackberries do this too).

Conclusion

The key aspect that makes the iPhone great isn’t the iPod integration or the full-featured web browser: it’s the user-interface.

I can safely buy this for my dad and know he could use it. My Blackberry, in all its simple interface glory, still had many little quirks that made it hard to figure out (for example, on the 8700 hiding or moving icons took me weeks to discover, and in the 8800 putting the phone in silent mode isn’t a one button operation).

It’s a great phone for the casual user because of its media capabilities, but it can double as a productivity phone thanks to its email and browser capabilities. I’m the target demographic for an iPhone (currently have a smart phone, don’t carry an iPod due to bulk, can spare $400), and I can imagine there are a whole lot of others in my shoes who have yet to personally try an iPhone.

The iPhone is going to easily take 1% of the market. And that isn’t even considering what happens when they drop the price to $300 later next year (January capacity increase, September price drop).

Filed under: Geeky Stuff — Michi @ 6:47 pm

August 28, 2007

The Mathematics of Evolution

I found a really neat comment on Slashdot about the mathematical justification of evolution:

First two minor points, then I’ll get to the real subject, the math of evolution.

theory is a theory my friend

Every field of science is a theory, my friend. Everything from the theory of the atom to the theory of zymosis (that’s fermentation). You may as well try to attack relativity as being “just a theory”.

sort of like the un-provable assumption of evolution?????

What un-provable assumption of evolution? Evolution fundamentally says that if if you have heritable variation and mutations and selection pressures on that variation then you will get evolution over generations. This is trivially observable fact. There is no genuine scientific dispute over biological evolution exactly because there is so much evidence that cross checks and cross validates across so many fields, both current observations and study of prehistoric evidence left behind. Trying to even scratch the surface of this mountain of evidence in this post would be hopeless. If you are questioning the quantity and quality of the evidence, I suggest you either crack open a text book on the subject or at least browse the talkorigins [talkorigins.org] website. It’s all well documented if you actually question the issue. If you don’t truly question the issue and you instead simply reject the entire subject on non-rational grounds, well obviously you’re not going to be swayed by something silly like actual evidence and actual science.

Anyway, the real issue I wanted to address was this one:

the sheer numeric improbability of evolution

Correction, the sheer numeric CERTIANTY. There’s powerful mathematics to evolution, powerful effects going on that you don’t hear about in the common explanations of evolution. The common idea of evolution is as a sequence of individual beneficial mutations, like climbing a ladder. If that’s how evolution actually worked then critics would be right, it would have been mathematically impossible for evolution to produce the incredible complexity we see today.

To show the true mathematical power of evolution I will first abandon that “ladder climbing” of beneficial mutations. In fact lets assume that every single mutation that occurs is either neutral or harmful. I’ll demonstrate that we still get the real and powerful mechanism of evolution, the math of evolution.
A good place to start is with the common complaint of creationists that mutation and evolution “cannot create information”. Well in the initial mutation phase they are right. When a mutation occurs it introduces noise, it tends to degrade information. But look what happens the moment that mutation gets passed on to an offspring. That mutation is now no longer random noise, it now carries a small bit on information. It carries a little tag saying “this is a nonfatal mutation”. The presence of this mutation in the offspring is new and created information, the discovery and living record of a new nonfatal mutation. Over time the population builds up a LIBRARY of nonfatal mutations. This library is a vast accumulation of new information.

That information actually undergoes even more processing and synthesis. Over generations beneficial mutations would obviously multiply, but we’re assuming there are none of those here. However entirely neutral mutations will also tend to accumulate and multiply. Nearly harmless mutations would also accumulate and multiply to a lesser extent. Somewhat harmful mutations will even accumulate, and extremely harmful-but-nonfatal mutations will pop up and disappear at the rarest frequencies. So not only do we build up a library of nonfatal mutations, the mutations get tagged with a tagged with a frequency, the percentage of the population carrying that mutation. Each mutation is tagged with a measurement. Every mutation now carries a cost/benefit information tag at the population level. The best ones have a high percentage representation and the most harmful ones have a near zero representation percentage. Our library now contains far more valuable and sophisticated newly created information.

The individuals in the population are on average going to carry a roughly stable load of harmful mutations, a roughly constant “cost” in harmful mutations. Individuals loaded with more than the average cost are generally going to die and remove a more-than-average load of harm out of the population pushing the average up, and individuals with a less than average load will multiply and pull the population average upwards. The cleansing effect of selection removing “damage” from the gene pool will automatically scale to offset the exact rate that mutation is causing “damage”. Harm/cost/damage will be weeded out by selection at the same rate it is added by mutation. Neutral mutations will steadily accumulate in the library, and negative mutations will remain at a roughly fixed level constantly measured and scaled by the cost of each. Some mutations will disappear while new ones appear.

The real power in evolution is the recombination. Every offspring contains a random mixture of mutations from that library. every offspring is a test case searching for a jackpot beneficial combination of mutations. Lets assume an individual has a million random mutations across its entire code. There are 500,000,000,000 mutation-pairs being simultaneously tested within that individual in parallel. Perhaps one is a mutation creating a toxin and another mutation for mutant skin pores. Either mutation alone may be harmful, but the pairing could be breakthrough protecting against predators.

There are 160,000,000,000,000,000 mutation-triples. Each individual is also testing all of these triples in parallel. One mutation might be for a toxin, a second might might crank up production of that toxin to fatal levels (which would ordinarily a fatal evolutionary dead end), and the third might be a costly and ordinarily useless anti-toxin. The triplet is now a breakthrough, either a powerful defense against predators or a weapon for a predator to use, or even both at once.

Each individual is also testing 40,000,000,000,000,000,000,000,000 mutation quadruples in parallel for free. Maybe those four mutations individually yield useless proteins and enzymes, but the chain of four together may yield a new breakthrough digestive pathway.

Each individual also tests a near infinite number of mutation pentuplets and mutation sextuplets and more. Each individual actually acts as a test of a near infinity number of possibilities and it does this testing in parallel and it does so for free. This is called implicit parallelism. It astronomically multiplies the power of evolution to search for jackpot breakthroughs.

Another point that I raised and haven’t actually applied yet is the fact that each mutation is present with a frequency percentage in the population. The measurement of the cost/benefit of that mutation. When you want the most efficient search pattern you want to minimize wasted effort and minimize your costs and maximize your return-on-investment for your available resources. Well each offspring is an investment of resources, a test effort. When you are investing your effort looking for a payoff you want to expend most of your effort on the mutations that have paid off the best in the past and the least effort on the almost-fatal mutations. You mostly want to test combinations of good stuff with good stuff, and you almost never want to bother testing two nearly fatal mutations that will most likely combine to cause a dead offspring and a wasted investment. However you do still want to make a very rare test of two nearly fatal mutations because it *might* just be a jackpot payoff. In mathematics this exact investment-of-effort and search pattern had already been studied and a mathematical optimization pattern found. And guess what? By an almost staggering coincidence the evolutionary population frequency on each mutation in the population and in the offspring exactly matches and produces the mathematically optimal and most efficient search pattern for the next generation of offspring. You invest lots of effort and lots of offspring on testing the best mutations and groups of the best mutations and you invest exactly the right level of very rare testing of really bad combinations that will probably be fatal but which *might* just find a jackpot payoff. Mutations at all levels are tested proportionally to the measured cost it impose on the host.

So evolution has a nearly infinite multiplier on its search power and it just happens to invest its search effort in the mathematically optimal most efficient search allocation. Two fairly deep and powerful mathematical results that are hardly apparent in the usual way evolution is explained.

A further point is that once some beneficial mutation or combination of mutations is found, evolution then searches that vast library of stored nonfatal mutations. Most new breakthroughs will be extremely crude at whatever it is they do, and they will probably come with harmful side effects. A set of limbs might be mutated into some useful form for getting some new food source, yet be horribly mutated and otherwise dysfunctional. Evolution then searches the library for mutations that combine to further improve that new breakthrough, and it also searches the library for mutations that will repair or offset any harmful side effects of the breakthrough. A search for ways to further improve the mutated limbs for the new purpose, and a search for modifications to repair problems caused by these malformed limbs.

Evolution is very rarely a simple ladder-climb series of beneficial mutations. Evolution is an information processing system building vast database of information and synthesizing complex measurements of that information and doing an incredibly powerful search and mining of that information database to discover and refine improvements.

And this fits in perfectly with punctuated equilibrium. During the quiet phase the library is accumulating new mutation contributions and measuring those mutations into a percentage of the population, and then when there is a breakthrough discovered or there is an environment shift then evolution goes into overdrive. It mines the database for contributions to the new development or to adapt to the new environment. The frequencies of all of the mutations also get re-measured to re-weigh their cost/benefit ratio in light of the new development or in the new environment. Not only can this radically shift the frequency of vast portion of the genes and mutations in the population, it can quite easily trigger the discovery of other independent breakthroughs. If the population underwent heavy selection pressure, if most of the population was exterminated or displaced by this change, then the gene pool gets decimated. Much of that accumulated library gets wiped out along with the losing majority of the population. With a depleted library in the new population you are naturally going to see little change and progress. You see a stable population, equilibrium, until that library can be very slowly rebuilt through accumulation of new mutations.

Filed under: Geeky Stuff — Michi @ 2:03 pm

August 22, 2007

Cool! Content Aware Image Resizing

I just saw a really interesting video showing off “content aware” image resizing.

The idea is that an image can’t be readily resized without distorting it or making it too small to make out. The author of the research suggests instead to use algorithms that detect and remove less “important” parts of the image. For example, background space between two people might get removed, pixel by pixel, as you shrink an image.

The idea has an amazing amount of potential for use in commercial applications, especially mobile devices.

See the video for more.

Filed under: Geeky Stuff — Michi @ 10:29 am

July 31, 2007

YSlow - Firefox Add-on for Developers

logo_32x32I just came across a really neat tool released by Yahoo called YSlow.

The basic idea is simple: it is a Firefox add-on that can be used to analyze pages you view. This analysis gives you important insight into why a particular page loads slow.

If you are a web developer in charge of the front end components, I urge you to check this tool out.

perfview

Filed under: Geeky Stuff, Programming — Michi @ 9:39 am

July 23, 2007

GoDaddy Sells Your Searches to Squatters? Part 1

Recently, I had a neat idea for a website. I thought about what domain I could use. Being naive, I decided to do some searches on GoDaddy for some potential candidates. On June 6th, I am warming up to inmybelly.com, which was available. Two weeks pass, and I am ready to make the buy when I find out that it has been registered! Similar events have been reported by others before.

Coincidence? Perhaps. So I am going to do an experiment. I am going to search for domain names that could have some value to a squatter and see if they are taken. The domains I ran searches on GoDaddy for are for the time being, confidential to ensure readers don’t mess with my results. :) I will run them through the search a second time in a week. Then, I will update this blog one additional week later with my results.

For the time being, I want to suggest to readers to always use the “whois” command from your Linux command line. :)

Filed under: Geeky Stuff — Michi @ 11:51 am

June 29, 2007

Facebook’s Take on the iPhone: Way More than 1%

Facebook has a polling feature they introduced a few weeks back. They allow people to vote on polls that show up on their home page if they match a certain demographic, as set by the poll creator. I just saw a poll titled:

Are you going to get an iPhone?

facebook-poll

The results of the poll was 7% said Yes. This is significantly higher than the 1% Apple is supposedly hoping for. This is especially amazing since the vast majority of college students are probably way too broke to be affirming any intentions on buying an iPhone.

At 18% answering Yes in the 35-49 age group, they account for half the people affirming intentions to buy an iPhone. The 18-24 and 25-34 age group each had about 7% yes responses among their age group. Males dominated Yes votes 3:1.

Yes votes jump up another 8% across the board if AT&T loses exclusivity on the iPhone (people really hate AT&T). Interestingly, 63% voted No, regardless.

The poll sampled 1000 users whom were self-selected, and is by no means scientific. Still, an interesting bullet point for future considerations on Apple’s success.

Filed under: Geeky Stuff, Predictions — Michi @ 3:44 pm

On DRM, Battery Life, and the iPhone

Did you know that DRM music files take more power to play than non-DRM music files? Approximately 8%! With the new iPhone coming out, I thought I would remind you that the move by EMI couldn’t have been at a better time. Hopefully, in the coming year, more DRM free labels will arise, making all of our iPods work an extra 8% longer. :)

For those of you holding out for a Zune phone, think about this: encrypted WMV files eat up 25% more battery life. Seeing as the Zune is already a brick compared to the iPod, it will sure be annoying trying to match Apple ounce for ounce while still living up to battery expectations.

The iPhone has been officially released now, and I can’t help but be amazed at the fact that people actually stood in line to get a phone. No other phone - be it the RAZR, Blackberry Pearl, or Chocolate - has ever had people lining up to get them. If I planned on getting an iPhone (which I would, if I didn’t have this company phone that uses T-Mobile), I would be in line out there too — and I own no Apple products. Yep, I gave away my iPod because I stopped using it when I decided having a phone, wallet, and iPod in my pocket sucked. 

And it’s not like Motorola, RIM, or LG have never released popular phones before: they each have a long history of phones that nobody has ever stood in line overnight to buy. They’ve had just as much time as Apple to build a fan base. Explain that.

If the RAZR can sell like hot cakes, why can’t the iPhone sell twice as well since it will have the combined marketing push of Apple and AT&T? 1% of the global handset market: that’s what Jobs wanted. I think that’s a low goal he announced so that in a year he can announce he blew through it. We’ll see, I guess.

Meanwhile, I need to find me a friend that bought one of those things… Or I could stop by an Apple store; they have them on display.

image

Filed under: Geeky Stuff — Michi @ 2:10 pm

June 22, 2007

How Digg’s New Comment System Should Have Been (Super Easy Fix)

Digg just rolled out a new comment interface, and it blows. The stupidest part is that the whole thing breaks without JavaScript on, making threads impossible to read on some mobile devices. Comment threads must now be shown by clicking “view replies,” which then uses AJAX to grab the replies.

view link

The solution is obvious:

  • The “view replies” link is a static link to another page with just that thread expanded (nothing else).
  • The AJAX could still work on left click so no functionality is lost.
  • This means middle clicking works.
  • This means I can send comment threads to my friends.
  • It would actually work WITHOUT JavaScript.

Bonus suggestions:

  • When a comment has only one or two replies, show the whole thread (like before).
  • Highly voted child threads should pop out of their parents to a top level thread.
  • Crappy buried top level threads are moved to the very bottom of the page to further discourage spamming.

The new system encourages spamming. There is less incentive for people to use the reply button since their comment will be hidden behind a “view replies” link. Additionally, the AJAX is slow. The link itself is a useless link back to the page you are on. 

And it’s extremely annoying when you hit “view” only to be greeted by a single grayed out comment that you must now click on “show comment” to see (I thought I just clicked that?):

buried

Digg messed up. The solution is simple: stop thinking AJAX is the answer to everything. In this case, it was used poorly.

Filed under: Geeky Stuff — Michi @ 9:27 am
Next Page »