1 Month Takeaway on Nokia Lumia 920

It has been more than a month since I bought my Lumia 920 Windows Phone. (I did had two weeks of break to have a hands on on the new Sony Xperia Z, more on that later).

Lumia 920 on charging pad

Lumia 920 on charging pad

Instead of the usual review, i tweet about my takeaway of the phone as I use it. Total of 12 key takeaways (see below of the details), 7 minuses, 4 pluses and 1 neutral view. While it might look like a very ‘negative phone’ to use, two of the pluses are big pluses for me. The office and outlook capabilities, and the camera photo quality. That’s good enough for me to keep my Lumia, even though Xperia Z flirted with me for 2 weeks. What’s your take?

 

WindowsPhoneTake #12: feeling bored with look and feel of the interface, change the theme color and “suddenly” I have a new interface. Duh! #minusone

WindowsPhoneTake #11: Windows Phone 8 soft reset is volume-down + power button. So much for being intuitive. And best of all, all SMS doesnt work after a soft reset, and suddenly I saw a steady stream of “new” messages just to realise they are actually old messages. Turned out the date/time setting was wrong, after a soft reset. #minusone

WindowsPhoneTake #10: What was Microsoft thinking when it designs the outlook mail functionalities? I can only attach photos and not documents? Please tell me my eyes is “stuck with stamps” #minusone

WindowsPhoneTake #9: Bing still can’t make it. Not only it does not do a good job searching with location context, it returns result with the news that are days olds, and in one instance 4 months old, as their top/first result. Its quite disappointing that other than a colorful search page, there isn’t much improvement since it first attempt to seriously challenge Google. #minusone

WindowsPhoneTake #8: (thisisprobablyanokiatake) Nokia Carl Zeiss lens does not just wow me with its big f2 aperture lens (which gives a very nice dof and bokeh) but also its flash capability. I always avoid flash photography especially with pns camera, but Lumia 920 seems to have good algorithm to avoid over exposure which created harsh lighting. With bulb mode in videography, you no longer take silhouettes when you are in an indoor party hall. Coupled with the impressive Windows photo sharing capability, Facebook and Instagram should invest their resources on this platform, if they are evaluation their next strategic step. You would wonder what had Microsoft been doing given the elementary abilities of these two social networking apps in Windows Phone. #plusone

WindowsPhoneTake #7: I lamented about the lack of apps, perhaps it is because the store has not completed its renovation so they are not ready to sell more apps? While I am just being sarcastic here, the fact is Microsoft seems to be doing little to make its store as friendly as its competitors. First off, there’s no way for me to tell if I have installed or purchased the app, until I click the app itself. I can’t contact the app developer, unless I install the app and hope that the app has some contact informatiln about the developer. As a matter of fact, I had some problem with an app, there was no way I could contact that developer because he used dummy email address! Windows phone support site was cumbersome process and it took me awhile before I can get the billing team to reverse the billing. In google, the moment I find the app is defective I can ask for refund immediately. Store in Microsoft is nothing just a place to download app and nothing more. #minusone

WindowsPhoneTake #6: Internet surfing on Windows Phone is so fast, that it is almost a saving grace for the lack of internet connected apps, like posb/dbs, Facebook (yes, the official one is useless), etc. I suspect Microsoft has put 90% of their r&d resources to engineer a near perfect data connectivity and page rendering capability. Of course I am just joking but kudos to the product team in this regards. But people should remember that app is still the king to make or break the experience. #plusone

WindowsPhoneTake #5: Live tiles concept is good, but at the moment it is nothing more than expandable square icons with notification counts, something you already see if Apple and Android (albeit not expandable). I would love to see tiles like scrolling marquees, that flips random or latest messages (or related notification message). #noplusorminus

WindowsPhoneTake #4: While I mentioned that Microsoft “cheats” in its claim of blazingly fast photo upload feature, it is still an amazing experience because most of the people probably care less about resolution when they upload to Facebook. I was impressed when the phone took less than a minute to upload a 1 min video to Facebook! #plusone

WindowsPhoneTake #3: (thiscouldbejustnokia) phone signal band switching (e.g 4g to 3g) seems to be lagging, and can take up as long as 5 minutes just to find the next available band. #minusone

WindowsPhoneTake #2: The geomapping feature is clearly at infancy stage otherwise we would have a Bing map app to compete with Google map app. It didn’t help that the market store has no established navigation app like Garmin, Tomtom or Sygic. Oh wait, it has Navigon (but not for this part of the world) and it costs an arm! Nokia drive+, is slick but very elementary in its features and map coverage. Its recommended route always attempt to bypass highway for some weird reason, and you have no choice between fastest or shortest route. The most ironical part is I had to use Google map to locate my destination, and enter the street address in Nokia drive+. #MinusOne

WindowsPhoneTake #1: the ability to manage your work documents and productivity (appointment scheduling, etc) is definitely the most robust and rounded feature I have come across so far. #plusone

 

 

Windows Reunion with Nokia Lumia 920

The last time I touched a Windows mobile phone was May 2010. Back then I love WM phones, because it opened up so many development opportunities, from application to rom. I developed a couple of apps, and if app store was the only way to install app, I probably earned a tidy sum for some of my work, specifically StayUnlock. I subsequently went on with ROM development for my TouchHD then, and Merlion Leon ROM was my first attempt at OS level development (My subsequent attempt was modifying Android kernel for my Galaxy S) . I probably explore everything a developer could do, and then Microsoft decided that they need to overhaul their mobile product, and I told myself I should explore elsewhere while Microsoft goes figure their next journey.

Nokia Lumia 920

Nokia Lumia 920

It was the start of my 3 years Android journey and I had the full dessert course. I saw how Android evolved from the likes of Cupcake and Eclair, trying to find its footing in Gingerbread and Icecream Sandwich, to finally maturing as a yummy and addictive Jellybean. I would be lying if I said the desserts were all sweet and nothing else. They were bitter or sour moments, but its a choice between growing to be smart, or pretending to be already one. I chose the former and I am glad I had seem Android growing by leaps and bounds.

In recent months, I had watched Microsoft development with keen interest. It was almost like being home sick and you want to find the right timing to head home. WP 7 development started with a refreshing concept and innovation in its metro UI and live tiles. I thought it needed a couple of hardening through Mango and Tango. When WP8 was first announced last year. It really caught my full attention. And when Nokia announced its flagship Lumia 920, superceding its 900, I thought the opportunity had come knocking my door.

But it was not without some hesitation. It is like when a salesman comes knocking your door with a great deal, you will skeptically wonder if it is a scam. It didn’t help that Nokia Lumia 920 was launched and introduced with some controversial marketing advertisement.

First, the look is not really inspiring, it looks just like its predecessor (or so I perceived). In fact, many would agree it might even be mistaken as its sibling, Lumia 820. The weight is also mind boggling. Perhaps Nokia is trying to enhance its paper weight value proposition like manu other smart phones. Having own a couple of  light and slim phones like Galaxy S3 and S2, I was worried that I would need to strengthen up my biceps just to handle the extra 50-60 grams of weight. The lack of apps in the appstore is the other concern. Having seen the pathetically half filled Windows 8 store, I was worried if I will have cold turkey the moment I step into the store.

Will Windows be a key player in mobile space?

Will Windows be a key player in mobile space?

The lure of slick metro UI interface AND superior Carl Zeiss lens eventually won me over, despite being adequately satisfied with my Jelly-beaned Galaxy S3. The weight problem did falter away after some getting use to, probably because my biceps were already tuned to such weight when I owned Xperia S previously (just compared the two bricks, and Nokia Lumia is still the winner).

Having used the Lumia for 3 days, I am pretty certain that whatever I experienced will be the same in the next few months.  And it will only get better, although I do not expect miracle change overnight. The beauty of Windows Phone lies on its simplicity. Metro UI  with simple (but slick) navigation are all that makes up the entire user experience of the phone. There are no cluttered menus, and every content chunks are layered nicely that the navigation is intuitive (but only if you realised that you can swipe left/right to “layer” through) In that regards, Windows Phone hit an almost perfect score.

Networking capability seems to be superior than its competitors too. Before we get too carried away, Microsoft’s “Smoked by Microsoft Challenge” is a combination of marketing gimmicks and its capable networking feature, at least from my personal experience. When I share a photo to Facebook, indeed it was almost instantaneous, blazingly faster than any phones I have used (except when I share via photoUp in Android phones). It turned out that the photos are not only compressed, they are resized into a lower resolution, by as much as a third. It is therefore not a rocket science to explain why the photo sharing can be lightening fast in Windows Phone. That does not mean that Windows Phone is just all show and nothing real. I do observed that it handles small data transfer far more efficient than its WM predecessor, and probably Android and Apple as well. With our phones so tightly intertwined with internet, such efficiency helps to ensure the navigation experience continues to be butter-ly smooth when the connectivity crawls. The camera is one of the best camera phone I had owned so far, when compare to the likes of HTC One X and Sony Xperia series. What I like of  Nokia’s implementation of camera functionalities  is I could activate the camera function even when my phone is pin-locked. Not all Android phones manufacturers implemented this feature consistently, and not surprisingly only Sony understands why this is seemingly trivial but important feature for photography enthusiasts like myself

My main gripe with Windows phone, as expected is the lack of apps. Perhaps the apps will come in times to come, but something must be done to entice the creative developers to develop in this platform. Some missing apps are as simple as 3G data usage tracker. Perhaps Microsoft has assumed that with their more efficient networking capability, such tracker is a redundant. But with the telcos clamping down on 3G/4G usage with removal of unlimited or reducing quota, this miss is a glaring one for me. But of course, I cannot be whining with just this trivial app miss. I can no longer do streaming of my favourite mp3 from my home media server over internet, use Runkeeper to track my running exercise (thankfully, I rely more on my Garmin watch now), or use my phone to remote control my TV (edit: it looks like there’s an app for it now, but I need to see its compatibility). More critically, as we see more gadget startups like Pebble sprouting with great ideas to transform mobile phones beyond just a personal communication device, most of them are still focusing on developing their ideas on Apple and Android platform. Microsoft needs to take a different approach in the mobile and consumer world. It needs to reach out to these start-ups more pro-actively. I think its attempt to entice developers through significant payout was a good start, but I have the inkling feeling that it just sit on incentive framework it had created for the developers which  I thought was just too passive. Microsoft should realise that their success is greatly dependent on the startup just as the latter depends on it.

It’s now or never.

Jammed up Office Mailbox – No more!

If you were like me, who always receive emails from colleagues with huge attachments (and I meant HUGE, the largest I ever received was a 10MB PowerPoint slide), you probably can understand my frustration. Every other week my mailbox will be cloaked up, and I have to clear my inbox before I can send out emails. It didn’t help that our IT admin only allocated each of us with only a pathetic 200MB mailbox quota (in this world where free mailboxes in gigabytes are not uncommon).

I don’t like to move those huge files to a local mail folder for a couple of reasons. So I came up with a method of manually save and delete the attachments, before inserting the links of the attachments into the original email. It worked well, but it is very manual. Outlook 2010 does help to simplify some of these steps, but the ‘solution’ was still very manual. I had always wanted to do a quick macro programming to simplify these steps, but too lazy to move my butt.

A message with the option to archive the attachments

Earlier, I was again spending my Saturday afternoon clearing up my mailbox. I thought enough is enough so I went to google some samples, and existing solutions so that I can get this problem nailed once and for all. (Power of internet!)

There isn’t one solution that fits my need entirely, but suffice to say, I have enough information from the net to build a version 1.0 of what I need within minutes. Here’s a quick re-collection of what I have done;

  1. First of all, I need to enable macro in my Microsoft Outlook. Customize Quick Access Toolbar > Customize Ribbon > Enable “Developer” tab under “Main Tabs”
  2. At the Developer Tab (in the main application screen), Create a new macro by navigating to Macros > Enter a new name > Create
  3. In the macro program, I create a subroutine that will loop through the the attachments in the email, archive each of them by exporting and deleting, and finally insert the exported attachment links into the message body of the original email. The code, which is leveraged from the net with some modification, can be found at the end of this blog post.
  4. Then I add the macro shortcut to the message window’s “Ribbon Bar”, so that I can “run” it immediately any time while reading an email.
    1. Open the message window by clicking on any of the emails.
    2. Go to Customize Quick Access Toolbar > Customize Ribbon
    3. Under “Choose commands from”, select Macros. The newly created macro should be in the list
    4. Under “Customize Ribbon”, Select Main Tabs.
    5. Create a new tab, and under the new tab that I have just created, create a new group. The new macro command has to be added under this new group. Rename the tab and the group where appropriate. I name them as “My Tab” and “Quick Stuff” respectively.
    6. Select the newly created macro and add it to the new group. I named the macro “Save & Link Attachment”
  5. Once I have done all the above, I can now open any email with an attachment, Click on “My Tab” and then “Save & Link Attachment” (or whatever you named it earlier in 4(vi)), the attachment will be saved, deleted and subsequently linked in the email automatically!


How a message looks like after the macro processing

Here is the subroutine that checks for attachments existence before doing the necessary file and messaging operations. If you want your attachment(s) to be saved in specific folder (and its sub folder), you can always modify the value of the variable strFolderpath
Sub SaveAttachment()

Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem 'Object
Dim objAttachments As Outlook.Attachments
Dim objSelection As Outlook.Selection
Dim i As Long
Dim lngCount As Long
Dim strFile As String
Dim strFolderpath As Variant
Dim strDeletedFiles As String

    ' Get the path to your My Documents folder
    'strFolderpath = CreateObject("WScript.Shell").SpecialFolders(16)
    'On Error Resume Next
    ' Instantiate an Outlook Application object.
    Set objOL = CreateObject("Outlook.Application")
    ' Get the collection of selected objects.
    Set objSelection = objOL.ActiveExplorer.Selection
    ' Set the Attachment folder.
    'strFolderpath = strFolderpath & "\OLAttachments\"
    'Use the MsgBox command to troubleshoot. Remove it from the final code.

    strFolderpath = "C:\"  

    Dim MyPath As Variant
    MyPath = BrowseForFolder(strFolderpath)
    If VarType(MyPath) = 11 Then
      If Not MyPath Then
        GoTo ExitSub
      End If
    End If
    strFolderpath = MyPath

    ' Check each selected item for attachments. If attachments exist,
    ' save them to the Temp folder and strip them from the item.
    For Each objMsg In objSelection
    ' This code only strips attachments from mail items.
    ' If objMsg.class=olMail Then
    ' Get the Attachments collection of the item.
     Set objAttachments = objMsg.Attachments
     lngCount = objAttachments.Count
    'Use the MsgBox command to troubleshoot. Remove it from the final code.
    'MsgBox objAttachments.Count
     If lngCount > 0 Then
    ' We need to use a count down loop for removing items
    ' from a collection. Otherwise, the loop counter gets
    ' confused and only every other item is removed.
        For i = lngCount To 1 Step -1
        ' Save attachment before deleting from item.
        ' Get the file name.
        strFile = objAttachments.Item(i).FileName
        ' Combine with the path to the Temp folder.
        strFile = strFolderpath & "\" & strFile

        'MsgBox strFile

        ' Save the attachment as a file.
        objAttachments.Item(i).SaveAsFile strFile
        ' Delete the attachment.
        objAttachments.Item(i).Delete
        'write the save as path to a string to add to the message
        'check for html and use html tags in link
        If objMsg.BodyFormat <> olFormatHTML Then
            strDeletedFiles = strDeletedFiles & vbCrLf & "<file:>"
            Else
            strDeletedFiles = strDeletedFiles & "<br>" & "<a href='file://" & _
            strFile & "'>" & strFile & "</a>"
        End If
        'Use the MsgBox command to troubleshoot. Remove it from the final code.
        'MsgBox strDeletedFiles
        Next i
    End If
    ' Adds the filename string to the message body and save it
    ' Check for HTML body
    If objMsg.BodyFormat <> olFormatHTML Then
        objMsg.Body = "The file(s) were saved to " & strDeletedFiles & vbCrLf & vbCrLf & objMsg.Body
    Else
        objMsg.HTMLBody = "<p><p>The file(s) were saved to " & strDeletedFiles & "</p></p>" & objMsg.HTMLBody
    End If
       objMsg.Save
    'End If
    Next
ExitSub:
Set objAttachments = Nothing
Set objMsg = Nothing
Set objSelection = Nothing
Set objOL = Nothing

End Sub

I also added a function to select the folder where I want the attachment(s) to be saved in and referenced from (the message)

Function BrowseForFolder(Optional OpenAt As Variant) As Variant
     'Function purpose:  To Browser for a user selected folder.
     'If the "OpenAt" path is provided, open the browser at that directory
     'NOTE:  If invalid, it will open at the Desktop level

    Dim ShellApp As Object

    'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _
    BrowseForFolder(0, "Please choose a folder to save the attachment(s)", 0, OpenAt)

     'Set the folder to that selected.  (On error in case cancelled)
    On Error Resume Next
    BrowseForFolder = ShellApp.self.Path
    On Error GoTo 0

     'Destroy the Shell Application
    Set ShellApp = Nothing

     'Check for invalid or non-entries and send to the Invalid error
     'handler if found
     'Valid selections can begin L: (where L is a letter) or
     '\\ (as in \\servername\sharename.  All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1)
    Case Is = ":"
        If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
    Case Is = "\"
        If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
    Case Else
        GoTo Invalid
    End Select

    Exit Function

Invalid:
     'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False

End Function