Category Archives: webApp

Infibeam Pi – a review

After using – playing with infibeam.com’s Pi, for almost about 4 months I thought to write about it. Many people have been asking me online and offline ‘How is it?’ And could simply respond with ‘Good’!

If you think this is smart device, can do much more like iPad, Galaxy Pad or so, its absolutely misconception. Its very very simple and dedicated eBook reader, and almost nothing beyond that. No wi-fi, no 3G, no browser, no touch-screen!
The device is meant for very specific purpose.

Battery:
The battery lasts long and the main reasons behind them is the way is designed – no backlight and E-ink  screen. This is indeed smart technique, absence of back light and flat simple screen provides very smooth, no eye itching experience. This definitely provides equally pleasant experience as if you were reading physical – paper book. Battery indeed lasts more than a week for me after a complete charging cycle.

Connectivity:
Connectivity is pretty simple way, charging and data transfer is possible with mini USB interface. It also has SD card  slot, so you every time do not need to connect reader via cable to transfer books.

Ebook reading / formatting:
Though it supports vast variety of formats including, TXT, EPUB, PDF, HTML, and more, the device converts – formats text on its own. For non technical reading, its indeed good. This may result into different placement of image, but is fine as long as you can link the reference!
However, for technical ebooks, this isn’t good. For instance, code snippet or some tips also gets converted and formatted with different font. This makes it little annoying to understand flow. Also, limited screen size may also split continuity. Reference to diagram involves multiple flips between few pages.
The best and i-like-most part is support for major Indian languages. Font support and formatting is really very nice when it comes to Indian regional text.

Audio:
It has very basic audio player which supports MP3 format. This player is indeed basic, don’t expect rocking sound experience! The ideal purpose, though not highlighted much anywhere, is audio ebook listening, and nothing beyond.

Screen / display:
It has simple 600 by 800 pixels of display which is sufficient for normal book reading. The landscape and full screen book reading experience is good for continuous reading.

  • Font families – changeable includes Georgia, Courier, MTX Bold
  • Size switches – increase / decrease actually changes font size and reformats text. For ebooks with scanned image type text, text recognition is not there, so can also use zoom in-out.
  • E-ink displays image in grayscale.
  • Refresh / response time is bit more, so requires patience after button press! 😀

Others:
No keyboard, very limited functional buttons, so no confusion for first time users.
Sudoku game, image viewer.

Minor bugs:

  • Landscape mode reading doesn’t show full title of ebook, even if it has sufficient space.
  • Header shows date, but not time – crazy!
  • For Indian scripts, specially with subscript characters and superscript characters, post formatting gives little annoying experience, for example a signle word is broken in such a way that first line terminates with consonant character and associated vowel goes to next line beginning! 🙂
  • About section – device says “GNU General Public License – this product contains software which applies to GPL. You may obtain and redistribute the GPL source code.” This is indeed crazy, GPL is license and not any type of source code. And the company – infibeam doesn’t mention which software (under GPL) is used, and from where! (consider it major, if you’re also open source promoter, like me.)

The bottom line:
This is dedicated ebook reader for India, but not as per ‘Indian Price’ – bit more expensive considering set of features. However the available options are good enough for non technical or semi technical reading.

Couple of one liners from my friends when they played with my reader.
“Please remove paper placed on screen and switch it on, I want to see!” (though actually it was on with some book opened)

“If this is offered around Rs.5000, I shall get one.”

“This is a book only, and is thinner than our technical books.” (when I handed over with leather case)
Bonus for readers of this post –

Get your favorite newspaper delivered to your e-mailbox, daily and read using this reader

  • Grab copy of Calibre Ebook Management software. It’s free and open source, supports multiple operating systems.
  • Install and open
  • Click on Fetch newsSchedule news download and you will see a window like below:Schedule news download
  • search for your favorite newspaper / magazine and click on the name. Of course, you can also add your own way – own news feed. But this requires little technical knowledge.
  • When you select – highlight the item, Schedule option on right side will be enabled, just select preferred time and frequency and save.
  • Now click on Connect / Share icon and setup your email account, make sure you enabled auto send option.
  • That’s it!

Note, this trick requires software to be open and internet to be connected, for the time you have scheduled. You can use scheduled activity to start / wake up your computer before the schedule and hibernate / shutdown post schedule.

I also recommend Calibre Ebook Management software as it has vast options to convert ebook to multiple formats.

Update:

infibeam Pi is just a wrapper and Indian branding of netronix ebook device! I was bit surprised to find this. Also, firmware upgrade is also not smooth. Post upgrade, you may expect some bugs as new gifts! 😀

Chrome and popup policy

Google Chrome has different policy to detect and block popup window.

Generally, a browser blocks popup if it’s automated, i.e. with some JavaScript call on page load or so. Moreover the way state of popup can be known by browsers using JavaScript only.

Chrome is bit smarter in this.

window.open(); is expected to return reference to opened popup window, or null / undefined if popup is blocked.

But, chrome holds reference of so called popup as non null value and still blocks popup.

Below snippet is perfect example to test:

<script language="JavaScript">
<!--
function showpopup()
{
	setTimeout ( "showpopupAfterTime();", 1000 );
}

function showpopupAfterTime()
{
 var popwin = window.open("http://harit.kotharee.com/", "popupwindow",
   "width=400,height=300,resizable,status,menubar,scrollbars");
 popwin.focus();
}
//-->
</script>

<a href="javascript:showpopup()">Click for a pop-up window!</a>

Chrome allows popup only if opened directly, i.e. without any kind of delay through JavaScript or any other means of delay.

So, in the above example, it will work only if showpopupAfterTime(); is called on hyperlink!

Flash Player Cache and loading issues

By programming its not possible to clear out flash player and browser cache at a point of time, that too without user’s knowledge.
This, at times creates problem when a third party component, say SWF is loaded. Generally the URL from where SWF is to be loaded remains constant. So Flash Player often caches for browser’s easy experience.

However, if the third party – remote component if again in turn does some activity over network, it gives randomly wrong results  Generally this happens because the loaded component actually resides in cache, at times.

To overcome this, there is a way, not to clear cache, but to make browser and flash player feel as if you are always loading some new component (say SWF) from new location.
This simple trick is achieved by doing something like….
http://haritkothari.wordpress.com/myNewComp.swf?[firstparam=123&secondparam=456]&randomcount=Math.random()*Math.random()

The randomcount query param has no more significance other than make FP feel its another URL request, which is not cached! The stronger you implement dummy param, the less is probable for FP to cache.

This can be easily be used with loader to load remote component, however only care need to take is the dummy parameter should not be such that is interpreted by remote component, otherwise result may go to any extent!!!

This is also not Flash Player or actionscript specific trick, even banking and few other sites implement this in stronger ways to avoid caching, apart from session id!

Flash Player and Text

It’s been very difficult to achieve WUSIWUG in Flex 3 (Flash Player 9) and InDesign Server, at least for Text viz, font family, font size etc. In other words, a character with Arial font and size 12 in flash player will look differently from other non flash applications like text editors, design tools etc, having the same character specification. Therefore it is difficult to achieve the same output what you see in flash player, with InDesign Server and so in output PDF! Albeit, both are Adobe products!!!

Speaking to Serge Jespers about this he accepted that Flash player is built differently. Also, Anand added that the new Text Layout Framework, available with Flex 4, runs with Flash Player 10 has addressed many such issues. It has many changes as compared to traditional TextArea component available with Flex 3.

However, Text Layout Framework is not 100% compatible with Flex 3.2. It is not possible to embed and use font in Flex 3.2 (or 3.3) with TLF. The release notes from adobe clearly mentions this, considering root level change in embedded font structure. My experiment also failed to show an embedded font with TLF under Flex 3.3.

However, a point communicated by Jespers, that the TLF is made with the help of InDesign team is a ray of hope to go forward WUSIWUG. But is long way to migrate from Flex 3 to Flex 4, waiting for Flex 4 to be mature from its beta release.

Flex (Flash Player) – DPI and input/output

DPI is often confused with screen resolution. Actually when screen resolution changes (in pixel height x width) the DPI rate is not necessarily changed.

In most cases DPI remains same, unless changed intentionally. In simple language, increasing screen resolution will allow more dots to be displayed on screen, by decreasing distance between each dot. Increasing DPI rate of screen but keeping resolution will increase number of dots per inch; by decreasing dot thickness, and that will eventually result into more dots in whole screen, with unchanged resolution.

When image resolution comes into picture, DPI plays role to consider depth of an Image. More the DPIs, better is the image – depth.
Two similar looking image (at its original size) may have different DPIs. The image with higher DPI rate, if zoomed in, will not get blurred or distorted very easily.

DPI is the somewhat similar concept of mega pixel – the camera term.

This term and its effect came into picture when I started input and output to real wprld from Flex application!
Flex application (or flash player) accepts width, height, x, y or such dimension properties in pixels only. The real world deals with inch, foot, centimeter or any such unit.

So where the game is?

Above simple question puzzles many.
widthInch = widthPixels/DPI is the key!

Say you have image with 500 pixels, width in inch will be 500/DPI. So if DPI is 96, then width is 500/96inches.

In case of flash player, DPI rate is 96.
So if I want to display an image in 2 inches width, I need to set image width to 2*96 pixels. This ignores Image (physical image file) and its DPI rate as I am going to display in flash player, not any image editor.

Also, this bug post is strange upto my knowledge. Flash Player’s DPI seems constant, ignoring screen DPI.

WebApp wrapper – Mozilla Prism

Recently, I come to know a new project by Mozilla Labs – Named as Mozilla Prism

I am really impressed with the idea that started the project. These days, of course, slowly, desktop applications are being replaced by web applications. Still, internet connectivity is nightmare at some places. If this limitation is overcome, I guess future is web applications!

I have also experimented with Mozilla Firefox – about the plug-ins. There is a rich set of useful add-ons for your specific requirement. Platform (hardware & OS) may not be in consideration once we are used to with webApps.

Yes, Prism is on the way too. It basically frames particular URL, that provide webapp and make you feel like a desktop application, although it is using resources from URL you specified. (more on http://labs.mozilla.com/2007/10/prism/)

I have created simple shortcut for GMail, now although I use the webmail it gives feeling as if it were a desktop client. Of course, AJAX also plays important role for ‘my feelings’!

Here we go… http://labs.mozilla.com/projects/prism/

Security Tip : Prism is not sharing Mozilla Firefox or any other browser’s resources. So it hides history, passwords, cookies & session too. So I feel it quite secure. GMail opened with Prism won’t keep its session available for Firefox too.

%d bloggers like this: