Monday, December 15, 2014

Firefox OS on Mozilla developers' phone Firefox Flame Review

This is my subjective view on the Mozilla Firefox flame device running Firefox OS 2.x nightlies. I've been using it as my main phone device for maybe 3 months already and I think that's enough time so that any critique is not caused by being used to other devices but real indication of user experience.

First I have a nice impression from the design of the phone. It's really nice to hold it and look at it.

Also I'm very impressed with the battery life. With lite usage it works for me maybe 5 days long in the city with good network coverage.

It has a very sane user interface that I immediately got used to.

But here are the pain points I see.

Foremost is the presence of only one button. Having used android before I would say that I still often wish I had the back button and the menu/settings button. Why lose the real estate of the device with putting only one button and all this empty space around?
I see full screen apps usually put a tiny arrow at the bottom of the screen but it is hard to spot and hard to tap on with the touchscreen. Back button is often missing in apps and it's hard to go back (one has to resort to the home button and then navigate back to the desired place.
If somebody from mozilla cares, then please reconsider adding the other two buttons.

The OS has a very nice feature - hold home button and you can select applications and close them (unlike android where you can't close an app). There is a lot of space on the screen but the X-button is so tiny that I always have troubles tapping on it (maybe I should file a bug report for that).

Another nifty feature is sliding from one app to another. But this feature interferes with sliding feature of app itself. For example when  I try to view previous/next image in galery app, I often change the app itself. IMO would be better to switch apps only when sliding on particular location of the screen like the top 1/3 or 1/4 part of the screen. Because in an app one would rarely need to slide that high.

Another nice feature is holding home button to see list of apps and have ability to close apps. Very nice if the "x" was a little larger so I can easily tap on it.

Time... very strange bu my phone often hangs. I reboot it but them time goes totally wrong. I need to disable/reenable automatic time for it to be resynced. Very confusing at times.

Not sure why every time I try to sync contacts with google, I need to enter password again and the two factor code. Sync is only one way also.
Renaming of contact is not detected and I end up with two contacts. Finding duplicates didn't catch that as well.
Also too bad the contact app does not show anything within braces like John (the good boy). I see only John in the list and I can't differentiate between the Johns until I open the contact.
Another thing is that app does not search through all fields in contacts. I often have Name and phonetic name of contacts. It's too bad I have to search twice - with native name and phonetic name to find a contact.
One other contact deficiency is that it only downloads contacts from "my contact". I used to have some other groups to select what I want inside the phone but had to put all contacts under "My contacts" so they are synced to the phone.

lack of categories and lack of ability to do anything with attachments whatsoever. Not with the app and not by accessing gmail with browser. Actually accessing through browser was mostly broken last time I've tried.

There's some issue with charging battery over USB from a standby laptop. It works with an android phone... I guess that might be a HW quirk.

I'd only say rather inconvenient compared to android.

It turned out into a rant but really Firefox OS needs a lot of polish until it's a pleasure to work with. So far I'm still with it for the foreseeable future.

Tuesday, June 10, 2014

Git - see what added so much space to the repo

Here's a good way to see what added space to the git repo recently.
$ git log --all --pretty='%h' --since='{2014-06-06}' | xargs -n1 sh
total: 240 0.0MB for 6df23f5
total: 88709989 84.6MB for f66712d
total: 26473 0.0MB for c397131
total: 462 0.0MB for 7c78e1c

And here is the file:

if [[ -z "$1" ]] || [[ "$1" == "-h" ]] || [[ "$1" == "--help" ]] ; then
    echo "Get change of size introduced by individual commits"
    echo "Usage : $(basename "$0") <commit> ..."
    echo "Example: git log --all --pretty='%h' --since='{2014-06-06}' | xargs bash"
    exit 1

while [[ "$1" ]]; do 
  git diff-tree -r $commit^1 $commit | {
    while read -r sperms dperms oldobj obj flag filename; do
      case $flag in
        A) bytes=`git cat-file -s $obj`
        D) bytes=-`git cat-file -s $oldobj`
        M) bytes=$(( `git cat-file -s $obj` - `git cat-file -s $oldobj` ))
          echo "ERROR: unknown flag \"$flag\" in in commit \"$commit\": $sperms $dperms $oldobj $obj $flag $filename"
      total=$(( total + bytes ))
    total_mb=`echo $total | awk '{printf "%.1f",$1/1024/1024}'`
    echo "total: $total ${total_mb}MB for $commit"

credits to for the idea: