The one with Winter Days in Chicago (well mostly weekends!) – Part 2


Note: This post contains many pictures, I have reduced their size to avoid issues with loading of the page or excessive data usage. You can see all the pictures in better quality at this link.

If you are looking for Part 1 of this blog post, here it is!

20 January 2018

After 15th January, there was slight increase in temperature, ice started melting, so I planned to visit the same lake-shore area, the one I visited on 13th.

27 January 2018

Snow is just one of the part of Winter, if there is no snow it does not mean there is no winter. After heavy snow days in earlier weeks, the windy, chilly days were back. The snow had completely melted (only to come back in the week after!).

I visited Oak Street Beach and Concrete Beach on this day, here are some pictures.

4 February 2018

Nature was playing a Zig-Zag game, one week snow the next week no snow and so on. This weekend was again back with good amount of snow.

9 February 2018

This was the Winter Weather Advisory weekend! People cancelled their travel plans, ‘working from home’ was a genuine reason on that day. Below pictures might give you some idea.

18 February 2018

After a peak weather weekend, this was no snow (but same, windy) one. Earlier weekend’s snowfall converted the Oak Street Beach into icy beach.

25 February 2018

Starting from this weekend, the winter became more windier, back to bone-chilling wind below freezing points.

4 March 2018

Visited Oak Street Beach and North Avenue Beach this fine morning, other than normal winter weather, water was behaving strangely.

17 March 2018 – St. Patrick’s Day

Chicago has a tradition to dye the river on St. Patrick’s day. People gather around riverfront to watch river dyeing even if it is freezing outside. Usually, this is the time when Winter ends.

So this marks the end of this blog post and Chicago Winter! I hope you like the pictures. Do let me know your comments below, till next time.

Advertisements

The one with Winter Days in Chicago (well mostly weekends!) – Part 1


Note: This post contains many pictures, I have reduced their size to avoid issues with loading of the page or excessive data usage. You can see all the pictures in better quality at this link.

Update, 2 June 2018: Part 2 is Live, scroll to the end to get to it!

I was born and brought up in India, mainly in the central region, hence I had never seen extreme winter season (snow, freezing rain, sleet, high winds, etc.) in my lifetime. When I moved to Chicago in 2016, many people tried to scare me by sharing their experiences of Chicago Winter. Now I feel that was a bit of overselling, but I have witnessed winter season only twice here, so who am I to judge! Anyway, I don’t know about past winters but I can surely say this, this year’s winter was more wintry than last year.

Around the start of this Winter, I moved near the city, so I had easy access to downtown Chicago, main attractions, lake-shore via the famous Chicago ‘L’. As I am a ‘9 to 6’ job person, it was not possible for me to get out everyday and ‘enjoy’ the winter in city, so I decided to explore the winter on weekends.

Okay, enough talking, it’s picture time! If you know me, you must be knowing that I have some interest in photography. You can call me Instagrammer or amateur photographer or any other name that you think of. I have put together some of the pictures I captured with my Nikon D5200 and Pixel 2 XL cameras for days when I went out with Chicago winter! They are categorized by dates captured, this is Part 1 and Part 2 is coming soon!

3 December 2017

After moving near to the city my plan was to get my first sunrise photo from the lake shore. By the time I reached lake shore, the Sun was already up, but still managed to get some pictures, this was the last weekend before the Snow started. Weather was quite nice, it was chilly, but it was not windy.

9 December 2017

This was the day (as far as I remember) when it all started, first snow of the season. It was a Saturday and I planned to visit the most-common tourist place in Chicago, Millennium Park. There was not much snow, but it certainly gave a feeling of Winter.

11 December 2017

The floor in my office building where I work is completely closed with artificial windows and yellow light bulbs behind them, no exposure to outside world. It may be raining, snowing or sunshine outside, but it’s always sunny inside! I was quite surprised to witness this after I left office in the evening.

Usual day at office that ended with warm feeling of snow!

19 December 2017

While there was no snow after first few days, it was certainly very windy and chilly, specially in lake-shore areas. Temperature was below freezing point. Sun was hidden somewhere in galaxy, even when it showed up, was not much effective. I was trying to get used it by roaming outside more often.

24, 25 December 2017

Christmas time! It was snowing good on these days. I did not take much pictures, here are couple of them.

31 December 2017

By this time, I had realized that this winter is going to be more wintry than last year. It had snowed in past few days which was measurable in few inches. Outside temperature was below 0o F (-17o C). Few social media pictures and one of my senior’s earlier evening’s trip to lake-shore inspired me to visit the same in the bone-chilling last morning of the year. It was a quite an experience, even with multiple layers of clothing, it was difficult to keep hands steady and take pictures. Somehow I managed to get the ones below.

 

13, 14, 15 January 2018

Most people were travelling to warmer cities during this long weekend (about which I came to know on 12th), I stayed in Chicago to witness something astonishing. The snow had taken a break for few days but as the temperature was quite below freezing for 15+ days the snow turned into ice in places where it was not removed on time.

The lake-shore area near Shedd Aquarium and Adler Planetarium was completely covered with slippery ice, one wrong step and there are chances that you will hurt yourself badly.

The next day, 14th January, I decided to visit Chicago Riverwalk. The lake was frozen, at-least the top layer of it.

On 15th, I visited the same place. It had snowed earlier night, so the scene was little bit different.

Okay, so looks like we have covered half winter here and I still have more pictures to show off. This post is already long, better we’ll continue in next one.

We will return in Part 2, Watch this space for more!

Part 2 Teaser

Update, 2 June 2018: Part 2 is here, check it out!

https://diversifiedworld.wordpress.com/2018/06/03/the-one-with-winter-days-in-chicago-well-mostly-weekends-part-2/

I want to put a Google Chart inside a Visualforce page rendered as PDF, is that possible? Yes*


Yes it is possible, even with new Google Dynamic Charts, it is possible*.

Earlier, generating Google Charts was a bit easy, as we just had to pass the data parameters in the URL and that’s it. As it used to generate the charts directly as image, it was easier to put them inside PDF as well. Unfortunately Google has deprecated them and may take them down any time. Hence we can’t rely on them. Anyway they had issue of data privacy as well.

For generating the new Google Charts we need write JavaScript code. While these are really great as far as customization is conerned, visualforce pages rendered as PDF destroys them! As we are aware of annoyances of PDF generation using Visualforce pages like limited Font support, CSS Support, etc. But the most annoying, it won’t execute any JavaScript in the page when rendered as PDF. Hence, our Visualforce page with Google Chart generation script is of no use.

After a bit of head scratching and discussing it with my friend, we have solved our issue. The solution below is useful if you are generating the PDF manually like via a button click.

Before you go through code, see it in action.

We will be showing a bar chart in PDF showing Sum of Amounts for Opportunity grouped by Close Date. In this example we have 3 different Visualforce pages. First one is simple landing page. Second page actually generates the Google Chart and saves it as PNG file to Documents in salesforce. Third one is our PDF page that displays the saved PNG image using apex:image tag.

We will be using a single apex controller for this example. The code for the same as given below. “insertChartImage” is the special method that we will explain later on in this post.

public class GraphPageController
{
    public List<OppWrapper> wrList {get;set;}
    
    public String docId  {get; set;}

    public GraphPageController()
    {
        wrList = new List<OppWrapper>();
        //populating the list of wrapper 
        wrList = populateWrapper();
        
        docId = ApexPages.currentPage().getParameters().get('docId');
    }
    
    //querying on Opportunity to get Sum of Amount Grouped by Close Date
    public static List<AggregateResult> fetchOppDetails()
    {
        return [select CloseDate, SUM(Amount) amtSum 
                from Opportunity where Amount != null 
                group by CloseDate 
                order by CloseDate desc limit 10];
    }
    
    //Wrapper Class for displaying data on VF page
    public class OppWrapper
    {
        public String closeDate {get;set;}
        public Double amtSum {Get;set;}
        
        public OppWrapper()
        {
            amtSum = 0;
        }
    }
    
    //method that populates list of wrapper 
    public static List<OppWrapper> populateWrapper()
    {
        List<OppWrapper> owList = new List<OppWrapper>();
        for(aggregateResult aggr : fetchOppDetails())
        {
            OppWrapper ow = new OppWrapper();
            ow.closeDate = Date.valueOf(aggr.get('CloseDate')).format();
            ow.amtSum = Double.valueOf(aggr.get('amtSum'));
            owList.add(ow);
        }
        return owList;
    }
    
    //visualforce remoting method that is used to draw the chart
    @RemoteAction 
    public static List<OppWrapper> fetchOppData()
    {
        return populateWrapper();
    }
    
    //visualforce remoting method that inserts a document inside Salesforce
    @RemoteAction 
    public static String insertChartImage(String base64String)
    {
        String returnVal = 'ERROR';
        if(base64String != null)
        {
            //this line will remove "data:image/base64" string from the base64 String
            String imageString = base64String.substringAfter('base64,');            
            //converting the base64 string to Blob
            Blob docBody = EncodingUtil.base64Decode(imageString);
            //inserting a new document
            Document doc = new Document();
            doc.Name = 'MyImage_'+System.Now().format();
            doc.Body = docBody;
            doc.Type = 'png';
            //putting the document to Personal Folder for logged in User
            doc.FolderId = UserInfo.getUserId();
            insert doc;
            returnVal = doc.id;
        }
        return returnVal;
    }
}

Below is the code for our landing page. It is a simple page showing Opportunity data grouped by Close Date in a table.

<!-- LANDING PAGE WHICH INITIATES THE ACTION -->
<apex:page controller="GraphPageController">
<style>
.alignCenter
{
    text-align:center; 
    padding:2px;
}
</style>
<apex:sectionHeader title="Opportunity Table"/>
<apex:form >
<apex:pageblock mode="maindetail">
<apex:pageBlockTable value="{!wrList}" var="wr" style="width:30%;margin:auto;">
<apex:column headerValue="Close Date" width="125px" style="text-align:center;padding:2px;" headerClass="alignCenter">
    <apex:outputText value="{!wr.closeDate}"/>
</apex:column>
<apex:column headerValue="Sum of Amount" width="125px" style="text-align:center;padding:2px;" headerClass="alignCenter">
    <apex:outputText value="{!wr.amtSum}"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageblock>
<p style="text-align:center;">
    <apex:outputLink value="{!$Page.IntermediatePage}" style="padding: 5px;text-decoration: none;" styleclass="btn">
        <apex:outputText value="See the beautiful chart in PDF!"/>
    </apex:outputLink>
</p>
</apex:form>
</apex:page>

Below is the page which opens up when clicked on the button in our landing page. This page actually generates the chart and saves it as a PNG image to Salesforce.

<!-- INTERMEDIATE PAGE WHICH ACTUALLY GENERATES THE GOOGLE CHART -->
<apex:page controller="GraphPageController" sidebar="false" showHeader="false" standardStylesheets="false"> 
<apex:includeScript id="a" value="https://www.google.com/jsapi" />
    <p style="text-align:center;margin-top:200px;background-color:white;z-index:1000;">
        <img style="margin:4px;" src="/img/loading.gif" title="Please Wait..." /><br/>
        <apex:outputText value="Generating Chart ... Please Wait ... "/>
    </p>
    
    <!-- Chart will be drawn in this Div, hiding the same as it is not required to be shown -->
    <div id="chartBlock" style="visibility:hidden;"/>
    
    
    <script type="text/javascript">
        // Load the Visualization API and the piechart package.
        google.load('visualization', '1.0', {'packages':['corechart']});
       
        // Set a callback to run when the Google Visualization API is loaded.
        google.setOnLoadCallback(initCharts);
   
        function initCharts() 
        {         
            Visualforce.remoting.Manager.invokeAction
            (
            '{!$RemoteAction.GraphPageController.fetchOppData}',      //fetching chart data       
                function(result, event)
                {  
                    // load Column chart
                    var oppChart = new google.visualization.ColumnChart(document.getElementById('chartBlock'));
                    // Prepare table model for chart with columns
                    var data = new google.visualization.DataTable();
                    data.addColumn('string', 'Close Date');
                    data.addColumn('number', 'Sum of Amount');

                    // add rows from the remoting results
                    for(var i =0; i<result.length;i++)
                    {
                        var r = result[i];
                        data.addRow([r.closeDate, r.amtSum]); 
                    }
                    
                    //adding listener when Chart drawn is completed to generate base64 image string for the chart
                    google.visualization.events.addListener(oppChart, 'ready', function () 
                    {
                        Visualforce.remoting.Manager.invokeAction
                        (
                            '{!$RemoteAction.GraphPageController.insertChartImage}',
                            oppChart.getImageURI(), 
                            function(result, event)
                            {
                                if(result != null && result != 'ERROR')
                                {
//redirecting to PDF page with Document Id as URL parameter
window.location.href = '/apex/ChartPagePDF?docId='+result;
                                }
                            }, 
                            {escape: true}
                        );
                    });


                    //lets draw the chart with some options to make it look nice.
                    oppChart.draw(data, 
                    {   
                        legend : { position: 'top' }, 
                        width : window.innerWidth,
                        vAxis : { textStyle : {fontSize: 10} },
                        hAxis : {textStyle : {fontSize: 10}, showTextEvery : 1, slantedText : false }
                    });
                }, 
                {escape:true}
            );
        }
    </script>
</apex:page>

Finally the PDF page which displays the saved chart image.

<!-- PDF PAGE -->
<apex:page controller="GraphPageController" showHeader="false" standardStylesheets="false" renderAs="pdf" applyHTMLTag="false">
<head>
<style>
body
{
    font-family: sans-serif;
}
.alignCenter
{
    text-align:center;
    padding:2px;
}
@page
{
    size: landscape;
}
</style>
</head>
<body>
<h2> Opportunity Chart </h2>
<apex:dataTable value="{!wrList}" var="wr" style="width:50%;margin:auto;border:1px solid black;">
<apex:column headerValue="Close Date" width="125px" style="text-align:center;padding:2px;" headerClass="alignCenter">
    <apex:outputText value="{!wr.closeDate}"/>
</apex:column>
<apex:column headerValue="Sum of Amount" width="125px" style="text-align:center;padding:2px;" headerClass="alignCenter">
    <apex:outputText value="{!wr.amtSum}"/>
</apex:column>
</apex:dataTable>

<div style="clear:both;height:25px;"></div>
<apex:image value="/servlet/servlet.FileDownload?file={!docId}" style="width:100%;"/>
</body>
</apex:page>

We won’t be covering explanation of line by line code here. Hence lets jump to below javascript in second visualforce page.

//adding listener when Chart drawn is completed to generate base64 image string for the chart
google.visualization.events.addListener(oppChart, 'ready', function () 
{
 Visualforce.remoting.Manager.invokeAction
 (
 '{!$RemoteAction.GraphPageController.insertChartImage}',
 oppChart.getImageURI(), 
 function(result, event)
 {
 if(result != null && result != 'ERROR')
 {
 window.location.href = '/apex/ChartPagePDF?docId='+result;
 }
 }, 
 {escape: true}
 );
});

We are adding a listener function that will be invoked whenever the Chart drawing is complete. When this function is invoked it will calling below method from our apex controller.

In javascript above we are using a standard method provided by Google Charts “getImageURI“. This method returns a string which is nothing but PNG image encoded in base64 string format. The apex controller’s “insertChartImage” method takes this string as parameter and converts it to a blob value using base64Decode function from EncodingUtils class, a Salesforce standard. Then we assign this blob as body for a document and insert the same to use it on PDF page. Once the document is inserted, the method returns its ID to JavaScript. Then the JavaScript method redirects User to PDF page passing Document Id as URL Parameter.

 //visualforce remoting method that inserts a document inside Salesforce
    @RemoteAction 
    public static String insertChartImage(String base64String)
    {
        String returnVal = 'ERROR';
        if(base64String != null)
        {
            //this line will remove "data:image/base64" string from the base64 String
            String imageString = base64String.substringAfter('base64,');            
            //converting the base64 string to Blob
            Blob docBody = EncodingUtil.base64Decode(imageString);
            //inserting a new document
            Document doc = new Document();
            doc.Name = 'MyImage_'+System.Now().format();
            doc.Body = docBody;
            doc.Type = 'png';
            //putting the document to Personal Folder for logged in User
            doc.FolderId = UserInfo.getUserId();
            insert doc;
            returnVal = doc.id;
        }
        return returnVal;
    }

The document inserted above might not be useful after the PDF is generated, hence we will need to scheduled job to delete such documents timely. You might want to give it a try to do this without inserting a document.

While the above solution works fine for manual PDF generation, it might not work for scenario where the PDF is to be generated automatically, and that is why the asterisk (*) sign in title above.

Let me know if you tried it. I would love to hear feedback, suggestions in comments.

My first self-sponsored international trip (well, not fully self-sponsored)


Dubai, I had blurred of image of the city in my mind when I saw it in the Nat Geo documentaries, but the image came in focus when my sister and jijaji (brother-in-law) moved to Dubai last year (and that is why the trip was not fully self-sponsored).

As Dubai is already a good travel destination, at 3 hours distance from Mumbai (2.5 hours while coming back) and because of the main reason given above, I decided to have a trip to Dubai. Approximately 2 months earlier of travel date, I got my leaves approved (raising eyebrows of my Managers), booked my tickets, got my travel visa, forex and then there was long wait for the date. Thanks to new Google Calendar, the travel date was added to my Calendar with reminders!

Finally the day arrived, I boarded the plane in the evening from Mumbai. I reached there at 8:50 PM local time (10:20 PM IST). Unlike last time I had done some homework (with the help of my sister and jijaji, of course) before landing in Dubai, so I took Taxi from airport to my sister’s home. As it was night, the roads, buildings everything was looking great. I reached home, had dinner and was waiting for the next day. My sister had already suggested me few good places to visit in Dubai.

Day 1 – Desert Safari

I was not feeling well! I had gone through different temperatures on earlier day like cold (Pune), hot (Mumbai) and colder (Airport) so I had right to not feel well. I was not sure if I should go for the safari, because I do not wanted to make myself feel worse. My sister gave me one tablet and I made up mind and decided to go for the Safari.

Clicked at Al Awir, Dubai.
Clicked at Al Awir, Dubai.

Desert Safari, as the name suggests, it is a safari in Desert! The organizers pick you up from few pre-defined spots in Dubai. They take you to a desert in Al Awir (almost 40 kms from Dubai).

Once reached the desert, the actual safari starts. They take you through the desert with many ups and downs. It feels like the gear box might break and the jeep will lose the control. After those ups and downs you are taken to free area surrounded by fort like walls. Outside the area, you can do Camel riding, ride a Quad Bike, take selfies in sand (many people were doing this), enjoy the sunset or just sit calmly in sand. As the natural light goes down, the actual show starts inside the fort like area. You are first offered some refreshment, then there some action happens on a center stage like Magic Show, UAE’s cultural show, belly dance, etc. Finally you are offered dinner with both Veg. and Non Veg. options. As the night approaches, you start your journey back to Dubai.

This image is captured at outside the fort like area in Al Awir Desert, Dubai.
This image is captured at outside the fort like area in Al Awir Desert, Dubai.

This is how my first day ended.

Day 2 – Emirates Mall, Dubai Mall and At the Top (Burj Khalifa)

The Burj Khalifa
The Burj Khalifa

Mall is one the places which I prefer to pass time rather than shopping. But Dubai has these big Malls where there are many things you can do other than shopping. There is ski-dubai in Emirates Mall where you can have snowy feeling in hot place like Dubai. You have Aquarium in largest mall of the world, the Dubai Mall. There are actually many maps placed inside the Mall to find out where you are.

My next destination was the tallest building in the world, Burj Khalifa. By the time I reached Burj Khalifa booth in Dubai Mall the tickets were already sold out. But I had booked the ticket to go ‘At the Top (124th floor)’ 3 weeks earlier J. You have to stay strict to the timings given on your tickets as there are many people who come to visit the Burj Khalifa. Around 10 mins before time given on your ticket, you start your journey to the top. While you are in queue you can read or watch the history of Burj Khalifa. You reach the 124th floor via a lift in just a minute with no jerks. The view from the top is hard to describe, you should visit yourself!

The Square
The Square, View from Burj Khalifa
At the top!
At the Top, View from Burj Khalifa

You can also enjoy Musical Fountain or boating in the lake in front of Burj Khalifa once you are back on the ground from the Top.

Day 3 – Palm Jumeirah

Windowed
Unmanned Monorail

Since the day I had watched documentary for Palm Jumeirah, I wanted to visit this place once in my lifetime. For those who don’t know visit the Wikipedia link above. It is a man-made island having shape of a Palm tree. Monorail connects the two ends of this island. There are currently only 2 stations running (Palm Gateway and Atlantis Hotel) with 2 other stations planned.

This time, my sister was accompanying me. We took taxi to Palm Gateway station as other than road currently there is no other connectivity. The Palm Gateway station will be connected to a Metro station in near future.

One of the thing you can do once you reach other end of island i.e. Atlantis Hotel Station, you can roam around the seashore. If you have lots of money, then I think there are many options available there. I preferred to go with first option.

This day ended early for me to have some family time.

Day 4 – Dubai Museum

I actually had nothing planned for this day. With some information I got from my sister, I reached Old Dubai area. While just roaming around I found Dubai Museum.

_DSC5639_ForWeb
Dubai Museum

Just to pass some time I purchased ticket and went inside. For first 10 minutes it was looking like a common museum with old things put together in a place. But when I went inside Gallery area, it was something different. They have tried to create environment like old Dubai. It feels like you are actually roaming around Dubai in 1960s. There is also a small documentary that describes journey of Dubai from 1930s to 2000s.

Day 5 – Family and Friends Time

As a tourist, I did nothing on this day. I had good time with my sister, jijaji and his friends.

Day 6 – Miracle Garden and Global Village

As it was my second last day in Dubai, I wanted to cover as much as possible. I was going to visit 2 different places on same day.

Lots of Umbrellas
Miracle Garden

As there was no Metro connectivity, I took Taxi to Miracle Garden. The Miracle Garden is really a Miracle as you will see this garden is made up of mainly flowers in area which is surrounded by desert. There are many small structures in the garden which are covered with flowers. There was also a Food Court area where I found our desi ‘cutting chai’. I visited this in afternoon but I guess evening would be the best time.

Blurred
Blurred, @ Miracle Garden
Half Cars
Half Cars, @Miracle Garden

I reached my next destination, Global Village by another Taxi. Global Village is a fun-fair where you can find big stalls put up by people around the world, many rides, food court (again with food from different corners of the world) and many cultural shows. The stalls have things that mainly include clothes, food, kitchen-ware, etc.

Global Village, India Stall Entrance can be seen
Global Village, India Stall Entrance can be seen

2-3 hours before the day end, I took bus from Global Village to a Metro Station which connected me further to home.

Day 7 – Bye Bye Dubai

As I had flight back at 11:30 AM Local Time (1 PM IST), I left home in the morning as it took me 1 hour to reach airport.

In Dubai, travelling by Taxi is easier to reach places but not pocket friendly, especially if you are taking INR to AED converted currency with you. The best option to reach places for me was Metro. Metro network in Dubai does not cover many places yet but one prominent thing is the Metros are unmanned. You can actually get driver’s view from Metro. Travelling in Metro had fascinated me earlier and this time as well.

In Motion
View from Dubai Metro

Overall it was a great experience. While I enjoyed roaming in Dubai, I had great family time as well. Dubai seemed a neatly planned city to me. People were mostly following traffic rules, speaking politely to other people and I guess this is one of the reason why Dubai is great Tourist Destination. If you are planning to visit Dubai, I guess November to February is best time as weather is good in this time period.

You can view images I clicked at Dubai at this location.

My first Time Lapse Video


If Google has brought you here, then you must be knowing what is Time Lapse photography (<– Yes this link takes you to Wikipedia). I won’t explain it here as the Wikipedia link provides great explanation. I had read about it many times on the internet, but was not able to get an idea for my first time-lapse video. 3 weeks back I was watching this video. In this video the presenter talks about frame rate, time, etc. and that is how I got the idea to create my first time-lapse video.

Preparation of Basic Thing for Time Lapse Video

I started looking for things in my house which will together look as a living room table. The most important thing I needed was a Table Clock.  I arranged all things in my living room, set up my tripod and camera (of course!). I removed the batteries from the clock because the randomly moving second-hand was not a good idea.

After the arrangement was done, I took a sample picture to get idea of camera settings that I will need. I set my Camera to Manual Mode and started taking pictures one by one. I manually changed the position of Minute and Hour hand because I didn’t have 12 hours to shoot it!

As I was having Clock as my main focus in the video, I was looking for that “Tick Tock” sound. After searching on internet for 15-20 minutes,  I decided to record it myself. I used this Android app called Smart Voice Recorder. It is very easy to use and customizable as well. You can set the sensitivity of mic to record the sound.

The Actual Work

After taking series of pictures (23 to be precise) I was ready with the basic ingredients required for my Time Lapse video. In most of the videos, articles people were using Photoshop and many other softwares for making the video. I made it using Picasa. Yes, pocket friendly, easy to use software Picasa. I agree that it has only basic features, but for this video it was enough for me. This is how I did the software work.

1] I did a small color, exposure, cropping etc. adjustment to the pictures.

2]  Then I copied all the selected pictures to one folder and renamed them in the order of A, B, C,…. where A being the first image and so on.

3] In Picasa, I selected all the image in the folder. Open Create -> Movie -> From Selection… and there you have it.

Picasa Screenshot
Picasa Screenshot

4] Here you can load sound for video, set frame rate, transition (if required), etc.

5] I added the last image multiple times with some text on it.

6] Finally I clicked on “Create Movie” to export it as WMV format. (Yes, Picasa exports the videos in this format only).

Few things I learnt about making Time Lapse video

1] You should keep your camera, tripod position same throughout the shooting. Even a small change in position might wash out your earlier work.

2] The same thing applies for your subject if only few things are moving in you video while other should stay steady, something like what I did.

3] You should set camera settings in a way to get proper output for each image. This again depends on your subject. For me, I had to shot each image with same exposure and frame. If you are making video where you have to capture images at daytime and at night, your camera settings of course will differ.

4] Patience is key to good Time Lapse video!

And finally here is the video that I created. Do let me know your opinion. Also, post links to videos you might have created in the comments.

Time is Running!
Time is Running!

 

 

7 “Lightweight” Android applications for Daily Use


Android is one of the most popular operating system for mobiles and tablets. Although it is very popular, we often have a complaint about Android about its performance. When we have many applications installed on our Android handset, it takes up our RAM as well as internal memory. Many of these applications are big in size and we use very less features of these applications in our daily usage. While searching on Play Store I found few applications which are “lightweight” in size and RAM usage.

These are the “lightweight” applications which I found on Play Store. Click on the app names to open them in Play Store.

1. BatteryBot
2. OI File Manager
3. Internet Speed Meter Lite
4. ES Task Manager
5. Opera Mini
6. QuickPic
7. BitDefender Antivirus Free

BatteryBot (3)
Battery Bot Home Screen

BatteryBot

Battery is one of the most important thing of our cell phones. It is every smartphone owner’s dream to get unlimited battery. While this might not be possible as of now, you can have some extra information about battery displayed in the notification area. One of the good feature I like about this app is that, it provides battery temperature in the notification itself which is useful for deciding battery status. Usually I avoid charging the battery or using the cell phone when temperature exceeds 41-42OC. Anyways if you want longer battery life, try uninstalling IM (instant messaging) applications!

Good Features

1] Battery percentage, temperature available in notification area.

2] Option to show times related values such as remaining time, charging time, time for which phone is unplugged, etc. in notification area.

Not so good features

None according to me as you can’t expect many feature in such small size application.

BatteryBot (2)
Home Screen Widget
BatteryBot (1)
Battery Information Displayed in Notification Area
BatteryBot (4)
BatteryBot Options

OI File Manager

It happens many times that you are looking for a file in your SD Card. You open a file browser having so many feature such as FTP, Wi-Fi Browser, Bluetooth and then it takes ages to load the application completely. I am not saying that these file browsers are not good, rather it is really good that they have so many features. But usually we are in need of accessing files on SD card or internal memory. In such situation OI file manager comes to rescue.

Good Features

1] Small in Size and takes up less RAM

2] Few handy features such as searching, sorting, hidden files display available

Not so good features

1] Root explorer not available

OI File Manager (1)
OI File Manager Browser
OI File Manager (3)
Search Functionality
OI File Manager (2)
OI File Manager Settings

Internet Speed Meter Lite

As the name suggests it provides the information about your current data connection in the notification area itself. You can view the download and upload speed, data downloaded and uploaded for current day just by swiping down the notification area. When you open the app it provides you data information for the month.

Good Features

1] Free version provides many basic options like Data Usage Limit, Plan start date, etc.

2] It provides data usage information about 2G/3G and WiFi connection separately.

Internet Speed Meter Lite (1)
Internet Speed Meter Data Date Wise
Internet Speed Meter Lite (2)
Internet Speed Meter Lite Options

ES Task Manager

It is not recommended to use third party Task Killers and Task Managers on the Android OS, but surprisingly for the phones with low RAM these applications are really useful. ES Task Manager is one of such light weight application I found in Play Store.

Good Features

1] Task Killers, Cache Cleaner, Power Optimizer, Start-Up Manager are available right in the application

2] You can add a widget to the home-screen to Kill the apps and free up the RAM. You can also decide which apps can be killed.

Not so good features

1] For few options such as File Explorer, App Manager, etc it opens another app “ES File Explorer” which developed by same publisher and it is not “lightweight”!

ES Task Manager (1)
Various tools available in ES Task Manager
ES Task Manager (5)
ES Task Manager Tools and Settings
ES Task Manager (4)
Power Optimizer in ES Task Manager

Opera Mini

I guess 90% of the people reading this post must be using Opera Mini for internet browsing and everybody knows the features of the application.

Good Features

1] Opera compresses the data at their servers and then sends it to us, this reduces data usage.

2] Very useful for normal browsing and works good at 2G speed also.

Not so good features

1] Many websites which use latest HTML5, CSS3 features (basically new features in web technology) might not render correctly, as this app compresses the data.

Opera Mini (1)
Opera Mini Home Screen
Opera Mini (3)
Data Savings in Opera Mini
Opera Mini (2)
Website loaded in Desktop mode in Opera Mini

QuickPic

QuickPic (3)
In built video Player in QuickPic

Are you looking for a “lightweight” gallery app with in-build video player? QuickPic is where your search ends. You can view your photos in three different view styles like stack, grid and list. You can also browse the photos in folder style (explorer).

Good Features

1] All you images and videos are accessible at the same place.

2] Many useful options available in the settings including theme, zooming, cache, etc.

3] Has in build video player, so it won’t take you to another app for playing videos. The player also has swiping gestures for volume control and seeking.

QuickPic (2)
QuickPic Image Browser – Image Viewing options
QuickPic (1)
QuickPic Image Browser

BitDefender Antivirus Free

As we all know there is a huge number of applications available for Android, many of which are malwares, ad wares and even viruses. To keep our phone, SD Card files protected we need antivirus software. Surprisingly this free antivirus application comes in small size and does the basic task; applications and SD Card scanning.

Good Features

1] Small in size, takes up less RAM.

2] “Auto Pilot” feature which scans newly installed apps.

Not so good features

1] It uses data connection while scanning for latest virus definitions.

BitDefender (2)
BitDefender Antivirus Options
BitDefender (1)
Scanning in Progress
BitDefender (3)
Upgrade options with more security options

I hope this post was useful for you. 🙂

Empty tube on Weekends

The Tube and 21 Days


Collage of London Pictures captured by me!
Collage of London Pictures captured by me!

“Kshitij, most probably next week you will be flying to London”, my Manager told me.

I was shocked and excited. Though it was only 2-3 weeks’ assignment, it was my first journey abroad.

It was 13th November 2012, Diwali night, and I was busy in my packing. As my travel was fixed only a week before my actual travel date, I could not get much time to go through details about London. Rather I would say I was totally blank about London when I reached there.

On 14th November 2013, early in the  morning (2.30 am), my flight to London was scheduled. I had my luggage ready, my tickets ready and my mind completely blank. We had booked a cab to Mumbai International Airport. I reached the Airport with my parents. My parents bid me adieu. I went inside the airport and this is how my first International journey started.

You can read more about my experiences in London, follow below links

I have used images and information about the Tubes using below sources:

Do read it and let me know your feedback!

Few Android Tips & Tricks (No 3rd party apps required)


We Android users have our own reasons to love and hate Android phones. We all know, Android has a very large number 3rd party application support via Google Play and few other app markets. However, in this post we are going to ignore it. We will cover few tips and tricks for Android without using any 3rd party apps.

1] Add Settings Shortcuts to Home Screen

We always need access to few settings frequently and it is sometimes irritating to navigate to Settings app and then choose specific setting option. Sometimes when needed urgently you would not want keep scrolling up and down in Settings app to find the option that you need.

You can add these 1×1 widgets to home screen by long pressing in empty space. Long pressing will open different options. These might be different based on launcher you are using. But mostly it will sound like ‘Widgets’ or ‘Apps’ or ‘Shortcuts’. Below is the screenshot for Google Now Launcher and Xperia Launcher.

Long press options - Android 6.0
Long press options – Android 6.0
Settings Widgets selection - Android 6.0
Settings Widgets selection – Android 6.0
Settings List - Android 6.0
Settings List – Android 6.0
Settings Shortcuts - Android 6.0
Settings Shortcuts – Android 6.0
Long Press Options - Android 4.3
Long Press Options – Android 4.3
Settings Shortcuts - Android 4.3
Settings Shortcuts – Android 4.3

2] Dial or send SMS your frequent contacts directly from Home Screen

Direct Contact Dial option on Home Screen - Android 6.0
Direct Contact Dial option on Home Screen – Android 6.0

There are many widgets available which allow you to add contacts and their details to your home screen with various options. But there is an in-built option available to allow direct call or SMS or just add contact shortcut to home screen.

I use this trick to check my Talk-time and Data Balance.

The procedure is similar for adding shortcuts to home screen as given in first trick above.

3] Add shortcuts to your favorite websites to Home Screen

While this trick is something specific for Google Chrome, I am sure that it will be available for few other mobile browsers.

To add the shortcut open up the website in Google Chrome and then open the options menu.

Option to add website shortcut to Home Screen - Android 4.3
Option to add website shortcut to Home Screen – Android 4.3
Modify Icon Label - Android 4.3
Modify Icon Label – Android 4.3
Sample Shortcuts (including Facebook) - Android 6.0
Sample Shortcuts (including Facebook) – Android 6.0
Bookmarks to Home Screen shortcut - Android 6.0
Bookmarks to Home Screen shortcut – Android 6.0

Besides this you can add all your bookmarks to home screen with the same widgets screen.

4] Disable apps that you don’t use (depends on Android version)

You might have seen this tip on many other blogs and indeed it is helpful.

There are many applications in our phone that we never use. These are called as bloatware. For me even apps like Google Play Games, Play Movies are bloatware because I never use them. Disabling such apps is good option. It won’t free up any space but it will remove the app from application list in launcher (app drawer) and Google Play installed app list. I have read somewhere that it also puts the app in kind of coma, so good for the people with less RAM phones. Also, the good thing is you can enable them anytime if you need it.

A warning, do not disable a app if you think it is a System app or not sure what it does.

You will need to navigate to Apps options in Settings. Maybe first step will help you out to get access to it quickly.

All Apps screen, tap one to disable - Android 6.0
All Apps screen, tap one to disable – Android 6.0
Disable button - Android 6.0
Disable button – Android 6.0
Warning Message, be cautious while disabling system app
Warning Message, be cautious while disabling system app

5] Disable background data for certain apps

If you are a mobile data user with limited usage access, this tip is for you. There are many applications which use your 2G, 3G or 4G mobile data to download data even if they are not open on-screen. If you are on Mobile Data like me, you would not want these apps to use your data in the background. There is a way you can disable it.

Go to Settings and then Data Usage or you know what to do! Tap on the application name for which you want to disable background data.

Once you restrict the background data the application may not work correctly if it really needs data connection. In below case, WhatsApp will not notify about new messages unless you actually open it up.

Data Usage details for WhatsApp – Android 4.3
Warning Message – Android 4.3

6] Disable Location Services and Location History (optional)

When the location setting is enabled, it allows phone to track your location via GPS, WiFi, Bluetooth and Mobile Data . This of-course uses your battery and if you are travelling frequently it will keep on tracking for change in location. If you want to use Maps for navigation help, you can always enable it anytime.

Open up the Location (or something similar named) option from Settings or home screen. Then select ON or OFF per your need.

Location Services Settings - Android 4.3
Location Services Settings – Android 4.3
Location Mode Settings - Android 6.0
Location Mode Settings – Android 6.0
Location Disabled - Android 6.0
Location Disabled – Android 6.0

I have tested these features on Android 4.3 and 6.0. The screenshots are taken from these 2 phones.

Let me know if you like the post or have any queries.

This is normal 30 seconds exposure with Nikon D5200. It is captured from a bridge above the Banglore Highway.

The Trail of Lights!


Ever since my interest in Photography has grown, I have found Night Photography one of the interesting aspect. It is really great that how slow shutter speeds give you amazing output. For those who do not have idea about shutter speed; in simple words, it is the time for which your camera continues to capture an image through the lens.

This one is captured using Canon Powershot SX130IS camera. The shutter speed is 8 seconds. The camera was kept on a small wall besides the footpath.
This one is captured using Canon Powershot SX130IS camera. The shutter speed is 8 seconds. The camera was kept on a small wall besides the footpath.

I have tried capturing Nights shots many times. Sometimes I got good results, sometimes the worst ones! But the study continues. In this post, I would like share few of the Lights Trails I have captured.

This is captured with Canon PowerShot SX130IS camera with 3.2 seconds of shutter speed. I had kept my camera on divider between footpath and actual road.
This is captured with Canon PowerShot SX130IS camera with 3.2 seconds of shutter speed. I had kept my camera on divider between footpath and actual road.
This one shows Old Mumbai Pune Highway, captured using Nikon D5200 with 20 seconds shutter speed. I had no tripod with me, so kept the camera on the sky bridge itself.
This one shows Old Mumbai Pune Highway, captured using Nikon D5200 with 20 seconds shutter speed. I had no tripod with me, so kept the camera on the sky bridge itself.
This is captured from a sky walk bridge present on Old Mumbai Pune Highway. This one is with 30 seconds of shutter speed.
This is captured from a sky walk bridge present on Old Mumbai Pune Highway. This one is with 30 seconds of shutter speed.
This one shows Pune-Banglore Highway from Baner Tekdi, Pune. I captured this one with Nikon D5200 camera and a separate shutter release remote. The shutter speed here is 47 seconds.
This one shows Pune-Banglore Highway from Baner Tekdi, Pune. I captured this one with Nikon D5200 camera and a separate shutter release remote. The shutter speed here is 47 seconds.
This one again captured with a separate shutter release remote with 42 seconds shutter speed.
This one again captured with a separate shutter release remote with 42 seconds shutter speed.

I am no Professional photographer but would like to share few things I have learned by practicing (you might be already knowing these)

  • NOT to move the camera even for a fraction of second, once shutter release button is pressed. Better use Tripod, as most of night shots will have slower shutter speeds.
  • Though I started with Aperture Priority mode; I learned that, either Manual Mode or Shutter Speed Priority mode gives you better control over shutter speed. Also, I always try to get smaller aperture opening than f/8 (i.e. higher the N value, where N as in f/N)
  • Shoot in RAW if camera supports, as most people know; useful for Post Processing
  • Focusing could be problem in the night. Usually I use auto-focus and lock my focus on the main subject (in this case it might be a Road). Then I switch to Manual Focus mode and take the shot.
  • Our camera gives at max 30 seconds of shutter speed using normal shutter release button on camera. Hence I have used a separate shutter release cable (or remote) for taking control of shutter speed manually.

This brings us to end of this post, but not the learning!

To be continued…!

Pashan Lake : A Good place for Bird Watchers (and Photographers) or for a Walk


Sunrise @ Pashan Lake
Sunrise @ Pashan Lake

Pashan is a very well-known locality in Pune. There are many state and central government centres in Pashan area. To name a few DRDO, NIV, C-DAC Innovation Park, etc. Pashan means “Stone” in Marathi.

This man-made lake in pashan was built in order to fulfil the water needs of people living in nearby area. I am not sure how much is it used now for its actual purpose, but as far as photographers, walkers are concern this is a good place for them.

The best time to visit this place would be either in morning (may be around 6.30) or evening (before sunset). If you are living in Aundh, Baner or nearby area, it should be less than 10-12 kms for you to reach this place.

You can see the location of this place in the map below. You have to travel to Pashan Chowk and then continue on to Pashan-Sus road. Once you reach Sai Chowk in Pashan, take a left turn. As per information I gathered from the internet and my relatives, there was another route to reach this place which is now closed for Public.

Sun peeking out of a tree!
Sun peeking out of a tree!
Path Besides the Pashan Lake
Path Besides the Pashan Lake

I visited this place in the morning. There is no perfect parking (by perfect I mean Pay & Park) space available as of now. There is construction going on in the area which connects the main road and the lake. It might be for an entrance to lake as well as parking space. Once you reach near the lake, there is a small path that continues for some distance besides coastal area. You cannot cover the whole area surrounding the lake using this path.

Photographers
Photographers busy in taking photos at Pashan Lake

I do not know much about birds, but there were different types in and the surrounding area of lake. There were many photographers as well roaming around, taking shots of birds and surroundings. I had the kit lens of my camera with me which had very less zoom capacity, hence I could not take much shots of the birds. So, I concentrated on other things!

Shining Branch
Shining Branch
The Thorn
The Thorn

Check out few other image I captured at my flickr page.

Just Landed!
Just Landed!
The Shining Path
The Shining Path

All in all, I would say this is a great place to visit, with your friends or your camera. If you are living nearby, it can be your one of the places to evening or morning walk.

Birla Ganapati in HDR

A visit to Birla Ganapati a.k.a. Mangal Murti Morya Ganapati


I do not visit temple much but whenever I do, it reminds me of Amitabh Bachchan and his famous dialogue, “Aaj khush to bahot hoge tum”! Recently I visited an open air temple which reminded me the same!

Ganapati with Moon!
Ganapati with Moon!

If you on the way to Mumbai via Old Mumbai-Pune Highway (NH4), you must have seen a huge Ganapati statue on the left hand once you pass Somatane Phata Toll Point. You have to take left turn after the toll point. You have to enter a small village to reach the destination.

I had noticed this statue long back and then forgot about it. But recently, while browsing internet I came across this really good website and this post, which reminded me of this temple.

I started my journey early morning at 5 am, as my goal was to reach there before sunrise. I gave my best performance (!) and reached there around 5.50 am. It was completely dark and there were no street lights. Even the huge statue was not visible, so I had to wait for some natural light to guide me on the road to temple.

It does not exactly look like a usual temple. There is no bell or donation box (दान पेटी) there. Also I could find any wastage of flowers (which is good). It is a huge statue installed in open air. There is pay and park facility available for both 4 wheeler and 2 wheeler. As per the information available on one of the boards there, there are total 179 steps. The statue is 72 ft. in height and 1000 tons in weight. Also the base is 18 ft. in height and 54 ft. in width. As 9 number is considered Lucky in Hindu Religion, addition of digits in each of above numbers is 9.

A Needy Dog
A Needy Dog

As it was early in the morning, the area was completely empty, except few animal friends around. I am not sure how much crowd is there in the evening, but if you are planning to visit it, do it in the early morning. Religious people will be happy to visit Ganapati temple, while others can enjoy the pleasant atmosphere around the statue.

Do check out few more images I captured there.

Just another foggy landscape!
Just another foggy landscape!
Birla Ganapati
Birla Ganapati
The Sliding Dog !
The Sliding Dog !
The Shining Tree, I was finding a somewhat different angle to capture the sunrise. I found this!
The Shining Tree, I was finding a somewhat different angle to capture the sunrise. I found this!
Foggy weather in the Morning.
Foggy weather in the Morning.