Thursday, January 26, 2017

What is NODE.JS doing in my UI stack?

Well, I have been doing client side development for a while. Knockout, jQuery, Bootstrap and alike.

Meanwhile I was learning Angular (the first version) too.

Then life happened, and I got busy in my day-to-day work.

I had heard about NODE.JS becoming popular among the JavaScript enthusiasts, as they could now write their favorite language for server side purposes. That sounded cool, but as I had .NET and C#, I never bothered.

Until now.

I picked up Angular 2 for including in my language cache, and I saw these plethora of client side libraries - Gulp, Bower, TypeScript, Node.js.

Wait a second! Node.js? Why? Isn't that for server side?

What is NODE.JS doing in my UI stack?

I started googling and binging around, and I got no answer that could quench my thirst. Finally, I turned to Jason Meckley. Jason is an Angular guru, who monthly presentations in our User Group got me excited to Angular in the first place.

And here is his reply to my email:

Node is a JavaScript engine. Its original intent was to execute JS on the server. However more client side developer are using node as a means to manage their UI projects. I haven't seen it being used directly for UI work. but it does play into frameworks like angular/emberJS etc. The most common usage of nodeJS for UI development is node package manager (npm). we are using npm on all our angular work. to get the local environment setup and running looks something like this

c:/projects/my-project
npm install
bower install
gulp --env=local run

within my-project is there are 3 files package.json, bower.json & gulpfile.js
package.json is the list of npm modules. 
bower.json is a list of bower modules bower is like npm but the packages are specific to web development.
usually npm will install bower and gulp and the bower will install client libraries.
These files are similar to nuget's package.config in .net projects.

gulpfile.js contains the build tasks. similar to ant, nant, rake, cake, psake, etc... we have tasks like
1. create distribution directory
2. jslint
3. minify js
4. transpile .less to css
5. copy output to distribution directory
6. run tests (karma, protractor, qunit, etc.)
7. run local web server

To sum it up, node common purpose for client side development is package management and executing compile time scripts like gulp.


Monday, March 24, 2014

DVLUP Day at NYC


When Nick Landry, our regional DVLUP ambassador told me about the DVLUP day event at New York City, I recognized it as another excuse to experience the energy of the vibrant city apart from meeting and learning from other app developers. The event was to be on March 22nd and we had plans to visit NJ anyways to attend my nephew's birthday.

On Saturday morning, myself and my brother-in-law Shibu, set out to New York City.  Shibu is an Android fan, and I was like, well this is the chance for me to baptize him (to convert to Windows Phone). LOL.



 
We hopped on the NJ Transit from Metuchen station. The good thing about spending time with Shibu is that he is as geeky as me. We share common interests and always a pleasure to chat with him. Time flew by and after a 45 minute ride, we reached Penn Station. It was almost 7:45 AM. So we had to rush as the event was supposed to start at 8. And we knew the event was over-booked. And thanks to my dear friend Giphi, who was texting images of the long line outside the event, which made us literally run :) (BTW, this event took place at the Microsoft office at Times Square).

The 10 minutes of jogging reminded me how out of shape I was. Man!

We joined the line, some 200 dudes (and some girls) back :) :(. 


 
They were giving away a Swiss Gear backpack as an early bird incentive, which Shibu managed to get.

Once we were in, I could recognize some faces who were there at the WPDevSaturday at Iselin, NJ, a month back. After chatting and having a hot coffee, we went inside the main conference room.

Nick Landry did a amazing Keynote, which gave an introduction to Windows Phone and how it is growing fast and gaining popularity.  He introduced all the speakers of the day.


 
Once the keynote was over, we spread out Into different tracks. I had taken the "Maps, Image SDK and Cloud" track.  Nick gave a very good insight into GIS abilities of WP and also how< to implement map-ing capabilities in WP apps.

As I am working on a map-based app, it was indeed an informative session for me. Lot learned. The main thing was the answers from Nick invoked from wonderful questions from the attendees. That is the main reason for attending such in-person events. This session answered lot of questions/doubts I had.
The time flew and it was time for lunch. Sandwiches, a bottle of water, and some time to code on my app. By this time Jesus Aguilar was ready to give us some great info on Azure. 

He gave insights into Azure basics and explained everything I needed to start on Azure Mobile Services.

Then came the Lightning Talks about Design, Submitting apps to Marketplace (for beginners) and  how to market our apps. The Marketing talk from Susan Wisowaty was quire informative. Jeff Harmon's talk on advertising gave a new insight to app ads. Depending on PubCenter is a dumb idea. :) Jeff also helped me solve a problem I was facing on getting map images from HERE REST APIs.

We spend some time coding afterwards and meeting other app developers. It is always a good feeling when you could share knowledge with like minded people. 

Two of the many friends I made from attending the events: Rob Irving (of Car Dash fame)  and Nick Landry. Missed snaps with Jason and Govind. Next time :)

Well, after the event, Nick did not forget to hand over the Swiss Gear bag that I won on the February app contest. Also collected the NFC card that Giphi won on the same contest.

As the NJ transit trains are sporadic on weekends, we had to run back (it was already 6:45 PM) to the station to catch the train. I did not miss the chance to take some good snaps of Times Sq.
 

Overall, it was a wonderful, happy, geeky, informative day of knowledge sharing and having fun! And at Times Sq, NYC, one of the few  places I like to spend the time at.

A BIG THANK YOU to Microsoft and Nokia for putting up an event like this.

Oh I did not mention the cost of the event. $FREE.00.

Thursday, February 27, 2014

FlashSort –a Windows Phone game

 

Every time I make an app, my daughter asks, “Why don’t you make a game”. My answer for her was “I am not a game kind of guy, you know.”

After my Autograph app, I thought of making a game. A simple one. After brooding much, this sort of “flashed” into my head… A sorting game, with flash cards.

I was planning to take a little break from app building after the autograph app, but then the WPDevSaturday happened at New Jersey, on Feb 22nd. Nick Landry, our Nokia Ambassador invited me over to attend the event as a Sensei (Mentor, that is).

WPDevDaySensei

I got hold of my good friend, Giphi Sebastian, and went to NJ. Iselin, NJ. At the Microsoft Office. And to cut the long story short, I started developing the game there.

The app is available at the Windows Phone store. Please download and have fun. And, do not forget to leave some feedback and ratings.

FlashSortBlog1FlashSortBlog2

 

258x67_WPS_Download_cyan

 

Thursday, February 20, 2014

autograph–a Windows Phone app

 

I am proud to present my 11th Windows Phone app – autograph. You guessed it right. This is an autograph collection app. As one of my reviewers aptly put it, it is paperless memories.

SignatureEntry

Now, you don’t have to worry carrying those books around, and you don’t have to go searching for that piece of paper when you bump into Harrison Ford, or the One Direction boys. Your favorite celebrities, your friends, your family, all in one place – in the autograph app.

154x40_WPS_Download_cyan

Tuesday, February 11, 2014

In-app purchases in TheHinduLife app


The new update for TheHinduLife Windows Phone app has 2 new features:


1. The ability to get rid of all the ads displayed at the bottom
2. The ability to pin any deity (or deities) to the home screen, as a live tile. The pinned tile is a Flip Tile, which can be set to 3 sizes. I am sure you will love this one.



Download TheHinduLife from Windows Phone Store



Sunday, January 26, 2014

WhatsNew - a nuget package

Inspired from Igor Ralic's ReviewBugger open source nuget package for windows phone, I set out to create a NuGet package called WhatsNew. I had posted before about the good habits of a good app in the store. Any app. Any store. One of them is notifying the user of what you did as a developer for the new update. A synopsis in few lines. I always appreciate when an app which I use tells me what to look for. Letting the users know that you had fixed the bug A which was bothering them (and you) for a while, and the feature C that you had been planning for while has been added, would be really welcoming.

So, here it is. WhatsNew, for Windows Phone. My first cut on creating a NuGet Package.  It is available HERE. You may either install using the Package Manager Console or the Manage Package Manager option in Visual Studio.

Installing WhatsNew from the Nuget package console.

Installing WhatsNew from the Package Manager

Once you install WhatsNew, two things happen.
1. A WhatsNew.cs class gets installed into your project folder.
2. Coding4Fun Toolkit assembly gets installed, and referenced. This is because WhatsNew uses Coding4Fun Toolkit's, About prompt.

WhatsNew Usage

Once you get everything set, place the below code in either your MainPage.xaml.cs constructor, or the Loaded event handler. I prefer the later.

That is all!

But, What's the catch?

Well, it's not a catch. Just that you need to see that you update the VersionNumber for every update. It is that property WhatsNew verifies to see whether to display the WhatsNew dialog or not. So VersionNumber is import. Do not forget to update it.

So, what happens next?

Nothing much. :) Once the user starts the app, for every first time use of every update, a dialog similar to the one below would appear (note the Title, Message and VersionNumber (down below) that we added in our code above.).
WhatsNew Prompt
Can I modify the WhatsNew class?

Sure you can! It is completely open source.

Thank you, Thank you!

I wouldn't have completed this without the help of these references. (And my wife and my daughter, who let me spend time this full Sunday on this endeavor.)
Igor's wonderful inspiring post.
Nuget Documentation
Scott Hanselman's post on creating Nuget Packages


Now, what are you waiting for, go download it and give your app users a better experience with this feature.
  

 

Saturday, January 25, 2014

The Hindu Life - Revived

The Windows Phone app, TheHinduLife, is being revived.

  • More prayers added to the prayer section
  • A new Prayer Index page added for easy selection of prayers
  • A tiny re-design. Its a better feel.
With this app, I have also started a habit of notifying the user(s) of the new features being added to every update.

This is a continuation... more contents to follow...





Download TheHinduLife from Windows Phone Store