Harry's Tech Space

Read my experience with different products and technologies.

Page 2 of 6

The levers that control your website

Websites are now center pieces for every businesses and bloggers. News channels splatter ads that tell you to have website of your own business. The website is the face of your company, and plays a vital role in building trust. Since it is closely linked to your identity, its imperative you know the levers that control your website. Having access to all the levers help you in managing your website.These are the things which every website owner must have access to.

Websites, like a house – has a name (domain name), a place (hosting) and things that make it up (content). Domain name is name people type in their browser to reach you. Browser then tries to ascertain your location to establish the contact. Once contact is established then the contents are loaded in browser. But majority focus only on content and loose sight of other things resulting 1 entity having too many names littered across, or zombie domains like problems. Hence lets jump in and understand the various levers that control your website.

The Domain: The 1st Lever that control your website

Domain: The first lever that control your website

The Domain Name is name of your website. If you see this websites name www.harshankola.in – that is the domain name of this site. The “.in” is considered as TLD aka Top Level Domain. There are lots of varieties of TLD’s like .com, .org, .gov, .gov.in, .pk, .cn, .ac.in, .net, .co.in etc… The middle part is called domain and beginning www is called subdomain. If you have domain name as techblog.wordpress.com the TLD will be “.com“, the domain will be “wordpress” and subdomain will be “techblog“.

To register your domain name(ex: google.com, facebook.com) you have to approach domain registrar like Big Rock, Go Daddy etc… The domain names are unique to websites hence while registering the registrar first searches whether the domain name chosen by you is available and not taken by other. For example If you try to register wordpress.com, or google.com facebook.com it will not be available as they are already taken and hence you will not be able register them. if a domain available then only you can proceed to register and buy it. But please do note The domain registrars are  guys who are allowed to sell domains not subdomains. The subdomains are given out by owner of that domain. For example, if you want to register techblog.wordpress.com you need approach “wordpress” to licence the subdomain “techblog” not a domain registrar.

The domain registrar actually rents you domain name for a particular time period to prevent domain squatting. So you need to keep renewing your domain name regularly. Once you register your domain, you need to make sure that domain name actually points to place where your content is hosted. If you had CDN(Content Delivery Network) then you need change things like Nameserver. If you wanted forward the domain to your blogspot or wordpress blog, it requires to changes to DNS records of CNAME, A record etc.. To do all these things related to DNS Server you need access to account you had created with Domain Registrar. So this account of domain registrar is First lever that you need to control your website’s functions. its important you have access to this. Even if you hire new guy to manage your domain, he has to manage via this account only, hence have access to Domain Registrar’s Account.

Hosting: The 2nd Lever that control your website

The hosting service gives you a space to host your website. whenever a person types a name of website, the browser first contacts domain name server to find out hosting server address. Then the browser contacts hosting server, on successful connection it begins loading content from this server.

In hosting there are various types of it namely shared hosting, virtual private server hosting and dedicated server hosting to cater various requirements of the users. In case of shared hosting all the websites hosted by the service provider are stored on same disk and this is cheapest form of hosting too. In case of virtual private server you get access to a virtual machine running on hosting server and this slightly costly as the virtual machine gives you more freedom to do things. In case of dedicated server you are given a full fledged computer to host hence its very expensive.  While selecting hosting plan its also necessary to know max bandwidth and max space allowed for your site. If your website doesn’t plans to have blogs then space required will be least.If many people will visit your site then bandwidth requirement will be higher. Hosting services also provide e-mail services and other features. Creation and management of subdomains are all jobs hosting service itself. The type of operating system on hosting server also matters for the content to be hosted. Once you have made up your mind on hosting plan you purchase for the requisite time period. Like domain name the hosting space is also leased to you for a particular duration.

To give a single point of access to all the services, the hosting service provides you a control panel (cPanel is most famous one provided by many hosting services, some hosting services give their own inhouse versions). If you want to upload contents to your site the FTP server address are all available through hosting control panel only. To manage various services provided hosting service such as emails, subdomains, FTP accounts, you need to have credentials of Hosting Service’s control Panel account. So this cPanel’s account is the second lever that provides you access to tools to control your website’s hosting functions. To add new email or add new subdomain or let a new developer build your site from scratch, you need this cPanel account.

The contents: The 3rd Lever that control your website

Content: The third lever that control your website.

The contents are the things that are displayed to your users. Once a link to hosting server is established, the server software of host starts providing your content to browser. If the content is just a html file then server sends it directly to browser, otherwise it processes the file and sends appropriate file to browser.

There are lots of technologies to display the contents. On most simple side of spectrum is HTML pages. HTML page is static page and doesn’t change. But there are active dynamic pages built from technologies like ASP, JSP & PHP. One can also use content management systems like WordPress, Joomla, Drupal to build their websites too. The most important constraint with content is it must load fast. Its also necessary to know the various hooks and straws of content systems(Also Read: How I build SKDRDP site from scratch). Too big images and resource files have power to slow your site down. If some data about your business has changed then you will need to change the content. If the content is in HTML then you need a full time developer to manage and control your website. If your site has content management system then you need to learn its how to.

Now a days majority of websites have content management systems as it make easier to focus on content and forget various technicalities of running website. The CMS makes it easier to add new content and also makes it easier to expand its own functionalities by ways of plugins. Since the benefits of CMS are obvious, its important to have access to CMS’s administrator account. So this CMS’s account is the third lever that control your website. To make any changes to content you need this CMS’s administrator account.

These are the various levers that control your website. Please do have access to all of these to avoid future catastrophe with your website.

how I did, selecting mutual fund for the 1st time?

I started off my journey into equities by directly plunging into direct equity. It started off with random stock picking and hoping for miracle to make money (not the recommended way). One day I got a mail from my broker where they told about various investment products one of which was mutual funds. Luckily on the same day Uma Shashikant madam shared article by Pattu sir which was also on selecting mutual fund. That roused my interest in mutual funds as it was more easy money – just pick the right one and be done with it.

How I went on Shortlisting & Selecting Mutual Fund?

There are various ways to shortlisting and selecting mutual fund. I used pattu sir’s guide to shortlist the funds(here is the link to it). While I was selecting mutual funds, I had no clue about ABC’s of these ratios, only gut feeling was the guide.

Here is screen shot of how I shortlisted the balanced funds.

Shortlisting and Selecting Mutual Fund

The shortlisting of fund to invest happened on Value Research Online. Since I was not convinced of efficacy and workings of star ratings, I didn’t bother to look at them. I started off compiling all these data points in excel. After collecting the data selecting mutual fund out of it was breeze.

The thumb rules I followed were

  • 5 year and 10 year returns must be higher.
  • Lower the standard deviations better.
  • Lower beta is better.
  • Alpha should be higher.
  • R-squared must be higher.
  • Higher Sharpe Ratio is better.
  • Higher Upside Capture ratio is good.[updated]
  • Lower the Downside Capture ratio better.[updated]

These thumb rules are sufficient to pick a fund of choice but blind follow of them is certainly not going to make you good picker. So here is small explanation of what these risk measures mean.

Measures of Risk:

  • 5 and 10 year returns as usual is the rate at which the fund increased its value in past 5 year and 10 years. Simple stuff, 5y returns of 20% mean in past 5 years the fund has increased its value by average 20% every year.
  • Standard Deviation measures how much the returns have varied from average. Higher standard deviation means the returns achieved had lots higher up surges and lower crashes in its returns.
  • Alpha measures difference between average return of benchmark and average return of the fund. If Tata Balanced has alpha of 10 means that Average Returns of Tata Balanced – Average Return of Crisil Balanced Index is 10.
    Fund's Alpha = Fund's Average Returns - Benchmark's Average Returns
  • R-Squared measures level of benchmark index hugging. R-Squared of 86% or 0.86 means fund has increased/decreased its return 86% of the times when the benchmark has increased/decreased its return.
  • Beta compares volatility of benchmark and fund. A beta of 1 means that fund increased by 1% when benchmark increased by 1% and decreased by 1% when benchmark decreased by 1%. Lower beta means fund is less volatile than benchmark index and is good thing. Give importance to beta only if R-Squared is higher than 85%.
  • Sharpe ratio states the risk adjusted return. Higher the better.
  • Upside capture ratio tells how the fund has has performed when its benchmark index was rising. For example if BSE 200 rose by 100 points in past month HDFC Top 200 rose by 110 points in same period then its upside capture ratio for past month was 110. Since its above 100, its better. Above 100 upside means fund has out performed index in a rising market.
  • Downside capture ratio tells how much the fund fell when its benchmark index was falling down. Suppose Nifty fell by 100 points but the Franklin Bluechip fell only 60 points then the downside capture of Franklin blue chip is 60.  Lower downside is more desirable feature as it doesn’t erode unrealized value when index is falling down.

Do go through this article by pattu sir which visualizes various mutual fund risk measures.[Visualizing Mutual Fund Volatility Measures]

My journey into Nifty Alpha 50

Nifty 50 logo

While browsing my Google Now feed I came across an article by pattu sir for Index funds. The indices mentioned there captured my attention and It sparked off curiosity in knowing more about those indices. I searched about those indices in various places places like a boy searches for a girl. The search throw up more interesting results about the index with its mind blowing outperformance of Nifty 50. The more I dug deeper more interesting it began to get. Read on my 2 month  journey into Nifty Alpha 50.

Khoj of Nifty Alpha 50

Though the spirit was kindred by Pattu sir, the official journey began with a google search on CNX alpha stocks (now its known as Nifty Alpha 50). The search landed on Nifty’s Strategy Indices page, I immediately downloaded the list of stocks, methodology and fact-sheet of that index. In this phase I was in data gathering mode. I collected all that info I could.

After it, I tried to understand the methodology of preparing the Nifty Alpha 50 index, The fact-sheet of that Nifty Alpha 50 index. Initially it all sounded Greek to me. I started off asking questions in AIFW if I didn’t understand. Questions were technical like how Beta gets calculated?, what is R^2? etc.

Once I had a firm grip on the subject I jumped in with smaller purchases. I kept a close eye on all the announcements of NSE, I still visit NSE’s Press Releases section even now. The keen focus on press releases helped me to know the stocks that would get booted out of index bit early(Ex: The October month press release stated Gujrat Pipav Port, Motherson Sumi and 8 other would be booted out of index by 25 Oct and I could prepare for that to be done in my tracker too).Once I got comfortable with Index I started off with smaller purchases. Even though the the index had bigger stocks like MRF, Page & Eicher, I didn’t backed off I moved on. My initial plan was purchase 1 shares of all the constituents first and then start balancing it.

Growing Me alongside Nifty Alpha 50

The nifty alpha 50 is the fastest growing index among the NSE Indices. Being the fastest growing index I had to challenge myself to increase my knowledge along side this index. I set myself on the knowledge growth by going through each concept about the index and trying to understand what it was, how it was done and to some extent why it was done the way it was done(You can also check out what? how? why? framework I use).

Returns of Nifty Alpha 50 and other NSE indices.

I started off to learn the various concepts like free float market cap, R^2, Beta on the old trusted guard investopedia. I did asked questions on statistical analysis in AIFW too. The other source where I learned things was NSE’s Index Concepts section. I did learn some things practically too  specially the concept of Bid Ask Spread when trying to trade.

The practical learning of Bid Ask Spread was revealing as it shed light on costs I would incur for bigger purchases of stocks like MRF, Page and Eicher.  Trading costs estimates of this index was higher and I decided to hop onto  discount broker. This decision cooled of my costs significantly. If I had pay 0.5% of 40,000 as brokerage, it would come to a whopping brokerage of 200 rupees. So the cost cooling did gave a huge benefit for me. Apart from costs the price of acquisition also played vital role.

To further optimize my entry into stock I started off with technical analysis.I learned the technical analysis on investopedia. The core reason why I resorted to technical analysis was to get the entry into a stock correct. I learned out various charting and oscillators like RSI. This focus on technicals helped me immensely in not paying too high price for a stock.

These various connections of technical analysis, managing costs, understanding of markets increased my mental connections. This interlinking of concepts is like drawing a rangoli in my mind. By learning new things the rangoli expands from 3 x 3 into 4 x 4 and higher. Also my focus on this index is not shutting off my investments in  Mutual Funds at all.The SIP will run their due course. To me this tracking Nifty Alpha 50 is like journey, when I reach the same point as I started, I will be much wiser from the experience. Even though the sum total of this exercise is zero.

The shenanigans of Context in the stats

WARNING: Your brain may melt trying to understand the shenanigans of Context in already difficult field of stats. So here is my article to understand context & statistical analysis.

Most of my shenanigans with analytics happened after I joined SKDRDP. Since I learned analytics by following blogs like KISSMetrics, Lunametrics, Avinash Kaushik etc.. I was filled with preconceived notions like Bounce rate is a metric of badness, Try to keep visitors on site to stick longer etc.. Despite reading them for most part of my MBA, I couldn’t answer what and why’s of these metrics. These preconceived notions ultimately led to my undoing as I knew only the numbers, not the environment in which they operate. Hence whenever you want to interpret numbers understand Environment. To understand the dynamics of  Environment I had to resort to books of Devdutt Pattanaik (Business Sutra : A Very Indian Approach to Management). It had metaphor of Lakhsmi which shed light on “Why What How” framework.

What How Why manifests in nature various ways like Lakshmi, Durga, Saraswati or as Problem Statement, Research Methodology, Research Findings. Also other manifestations of it are Knowledge, Skill, Experience. Without getting confused lets dive into the framework.

Knowing the Context: “What?”

The question of “what?” pertains to our vision. Here the question to be asked is “What’s Happening?”. To understand what’s happening you have to see it. So the primary skill required here is being unbiased while “Seeing” the ground realities. In short understand “What’s happening?” but don’t use your thinking and analysis skills here.

There are various manifestations of the question “what?”. Below are some:

  • “What I am trying to achieve?” here its called as Problem Statement.
  • “What is happening around me?” here its called as Observation.
  • “What’s the fund supposed to achieve?” here its called Fund’s Goal.
  • “What does this number mean?” here its called as Knowledge.

The question of “what?” normally pertains to events that happened in particular point in time. It only reveals your understanding of the events.

Dynamics of the Context: “How?”

The question of “How?” pertains to our inquisition skill. Here the question to be asked is “How did it happen?”. To understand how the thing happened you have to see the entire narrative or scene. Here the “How?” pertains to  the process being undertaken. In short understand “How the things are shaping up or how it happened?” but don’t try to infer or jump to conclusion.

Here are some of the How’s:

  • “How will I reach my goal?” this is called as Plan.
  • “How did it happen?” this is called as Process Explanation.
  • “How will the experiment be conducted?” this is called as Research Methodology

The question of “How?” tells about events that happened. This is about things happening over the course of time. The biases of methodology creeps in during this stage, hence be aware of the limits and biases.

Playing the Context: “Why?”

The question of “Why?” pertains to our understanding. Here the question to be asked is “Why did it happen?”. Here its necessary to apply thinking power of us. One can use this only after you have answered the “What?” and “How?”.  Hence its important to get the event and process correct before diving into understanding of event.

When the what?, how? and why? are combined together we call it as research. The research is considered important because it sheds light wast ocean of context and tries to explain it definitively. As the researches pile up on one another it creates a body of knowledge.

Man with Gold, makes Golden Rules of life.

– PV Subramanyam (www.subramoney.com)

Other than investing more and staying invested for a long time, man will do anything to get a better return.

-PV Subramanyam (subramoney.com)

Getting Started with Mutual Funds

Over the course of time,I am having lots of people asking me lots of basic questions about Mutual Funds. Since I have less time go through each of their questions repeatedly, here is some info to help you in getting started with mutual funds. PS: I learned all this by actually going through the process of account opening with AMC, hence don’t consider me as an expert, I am just sharing my learning.

Organizational View

Lets get started with organizational view of Mutual Fund Industry. These are players in mutual fund industry.

  • The Mutual Fund Company is called as Asset Management Company or AMC for short. Ex: HDFC MF, ICICI Prudential AMC, Franklin Templeton, DSP BlackRock etc…
  • You can become customer of AMC by approaching them directly at their branch or can approach them via Advisers/Distributors (similar to insurance agents. Some examples are Finqa, Funds India, Funds Supermart, Scrip Box).
  • The connecting link between you and AMC is called as RTA (Registrar and Transfer Agents). The RTA’s job is to communicate ‘how much money you have put in?’/ ‘how much money you have redeemed?’ to the AMC. The monthly account statements of purchase and redemption are also sent by these RTA’s only. (Some of the RTA’s are CAMS, Karvy etc..)
  • To become customer of Mutual Fund, a person is supposed to complete “Know Your Customer”(KYC) formalities. To avert duplication of efforts of doing KYC with each AMC, Indian govt set up a special agency called KYC Registration Agency (KRA). Once you are registered with any one of KRA’s, you can show the registration letter to bypass KYC formalities being done at other AMCs. If you approach AMC directly then AMC itself will register you with a KRA (if you are not registered).
  • The AMC’s have one union of them called as Association of Mutual Funds of India (AMFI). This organization has a platform called MF Utility that allows you to create a centralized account for all your MF Investments.
  • There is regulator for these AMC’s. its SEBI – Securities and Exchange Board of India.
  • A newer platforms have emerged which allow one to invest in direct plans of the funds. These Direct Plan Portals instead of getting commissions from AMCs, they bill you directly. This direct billing helps in suggesting you best plans for your needs, where as advisers suggest only plans with higher commission to them.

So these are list of players in MF Arena. As an investor you are probable to run into only AMC, RTA, Direct plan portals and Advisers.

Getting Started with Mutual Funds: Approaching the AMC

Once you have selected which fund to invest, you can either approach an Adviser or AMC to invest.

  • After due KYC and registering Formalities are done, your Folio is created by AMC. This folio is like customer account. All the investments you do with the AMC has to be put into these folios only.The folio can be opened by either approaching Advisor or RTA or AMC. (Ex: If I am customer of ICICI Prudential and HDFC AMC’s, then I will have open 2 folios. One will be with ICICI and 2nd with HDFC. Also to open these folios I can either approach the AMC or their RTA or any of their advisors.)
  • Within this folio, a separate account is created for each of your mutual fund investments. (Ex: If I invest in Franklin Bluechip and Franklin Taxshield, then I will have 2 accounts to hold units of Franklin Bluechip and units of Franklin Taxshield.)
  • Whenever we invest in a fund, we purchase units of that fund in a predetermined price. The purchase price is called NAV (Net Asset Value) of that fund. The NAV is determined at the end of the day and that is the reason why account statements of investments come 1 day after the investment. Also NAV is determined after the various fund expenses are deducted.

Various Flavors of Mutual Funds

Each mutual fund has various sub-types of it to cater to various classes of investors. The various plans are

  • Growth Plan: Under this plan the NAV keeps on increasing as the dividends are not declared by AMC. Due to non-declaration of dividends this plan has the fastest growth.
  • Dividend Payout Plan (aka Dividend Plan): Under this plan AMC  declares dividends regularly and pays it to registered bank account of unit holders. On the date of declaration of dividend the NAV is reduced by dividend amount. Ex: If HDFC Prudence declares dividend of rs 4 per unit on 1st March then its NAV on 1st will be 4 rs less than 28th Feb’s NAV.
  • Dividend Reinvestment Plan: This plan is similar to dividend plan, but instead of paying dividends, more units of the same fund are purchased. Ex: If fund I had invested declares dividend of 4 rs per unit(me holding 100 units will get me 400 rs dividend). Lets assume the NAV of fund was 40 after declaration of dividend. instead of paying me dividends worth 400 rs, the fund would  add 10 more units to my account. So technically Dividend reinvestment is like growth plan itself.

The above plans namely Growth, Dividend, and Dividend Reinvestment are actually sub-plans of Direct and Regular Plans.

  • Direct Plan: To opt for this plan you have approach AMC or its RTA or atleast their Web portal. Its not possible to invest in this plan from any other places. This plan will have comparatively higher NAV than regular plan as the agent commission is not there.
  • Regular Plan: When you invest via an adviser or even your stock broker, then you get only this plan. This plan has slightly lesser NAV than direct plan as your agent is entitled to get commission from your investments. (SEBI has restricted the commission to be <1%)

In totality there are 6 types of sub-plans under each MF.

  • Direct Growth plan
  • Direct Dividend plan
  • Direct Div Reinvest plan
  • Regular Growth plan
  • Regular Dividend plan
  • Regular Div Reinvest plan

The various ways of investing in a Mutual Fund

Once you have decided which fund to invest and which sub-plan to invest, you will have various methods available under your disposal to invest in that fund.

  • Lump Sum Purchase: In this method you directly approach the AMC or RTA or Adviser write a cheque for large amount, (or login to their web portal and click on Buy button) and make a purchase. The AMC will consider it as “Initial Purchase” if you are investing in that fund for the first time and create account for it under the folio. The subsequent purchases are called as “Additional Purchase” and units are deposited into that account. This transaction is considered as one off transaction and AMC will not repeat it automatically. (Ex: If I write a cheque for HDFC Prudence Fund immediately after creating my folio, then its considered as Initial Purchase.)
  • Switch: In this method you switch units of one fund into another fund. In this transaction the AMC will calculate total value of your first fund, deducts any charges on it, based on remaining value it purchases the units of 2nd fund. This transaction is considered as one off transaction and AMC will not repeat it automatically. If you switch all the units of the fund, its considered as complete switch and 1st account get closed after switch transaction is completed. The other type of switch is called as partial switch where only some of the units are switched.
  • SIP (Systematic Investment Plan): In this method you create a mandate with AMC to debit your bank account regularly for purchasing units of fund of your choice. Once SIP is registered the AMC will regularly deduct money on predetermined SIP dates. SIP deductions are like LIC policy deduction, or Bank RD deductions, your account automatically gets debited monthly or quarterly based on SIP mandate.SIP’s are recurring transaction AMC will keep deducting money till the SIP duration expires. (Ex: If I set up a  500 rs SIP with Franklin Bluechip for duration 12months and set SIP date as 7th Monthly, on 7th of every month my bank account automatically get deducted 500rs for the purchase of Franklin Bluechip units.)
  • STP (Systematic Transfer Plan): This method is similar to SIP but instead of debiting the bank it debits another fund. This transaction is like automated partial switch transaction. Like SIP this is also a recurring transaction. (Ex: If I set set up 500 rs STP of Franklin Bluechip to Franklin Smaller Companies Fund, every month Franklin Bluechip Units worth 500rs get switched into units of Franklin Smaller Companies Fund.)

Like investments one off lump sum withdrawal is called as Redemption, regular withdrawal is called as SWP (Systematic Withdrawal Plan). Hope this helps you in understanding MF landscape. Do Post your questions in comments section.

Investing in mutual funds is like selecting life partners.

One of approach is fill it with One Night Stands ‬( i.e. putting into top rated funds ) here it’s important to have state of the art monitoring strategies. Here understanding the events is important.

Other one is to select Soulmate ( i.e. fund which can perform consistently ) here it’s important to get the fund to invest right. Here understanding the working of the fund is important.

Writing my “First Android App”

android studio IDE in which I wrote my First Android App

Few days ago I gave my source code of First Android App to tech section of SKDRDP as my computer broke up. The app I was building was for Cash Collection Tracking which will be used by Field Staff of SKDRDP. It was one heck of journey to build the first android app. This app building forced me to use many  of the core android features namely Activities, Services, and Content Providers. On top of that I was not a “professional coder” but a MBA who codes. Do read on how an app taught me coding.

The events leading to picking me up:

On one fine day in month of May I was approached by  staff of tech section asking whether I knew android application development. I replied them as yes but I am not a proficient developer as I did course long ago. Later they asked me to help them in building their app for cash collection. Technically they wanted me to port the app but I had to resort to building form scratch as that was much easier. Then we had tons of discussion how they had built the app for Nokia Platform, what all features they were expecting etc… I categorize this discussion as  “Requirements” Capture phase.

Understand the app’s requirements(what it is supposed to do?) correctly, that will avert costly reworks down the line.

After all the discussions were over, I asked them how they came to know about my skills in Android and they told me, that they found out using Google. I was bit astonished as My Name in Search Term wouldn’t have revealed Android aspects of me. I later came to my desk and checked various combinations of Keywords which would throw out my name in top search results. After trying for hours, I decided to key in the same term which I would search If I were looking out for developers, That is  – “android developer Dharmasthala”. Which would lead to me ruling the search results. Also my article on setting android IDE adds relevancy in the eyes of search engine. They went from search result to my blog to read this article How to set up Development Environment for Android? and later decided to contact me.android developer Dharmasthala - Google Search the thing that lead my First Android App

 

After I was on-boarded, they got permission of SKDRDP’s CEO to help them in building app as I report directly to him. Once the permission was obtained I got going. But the events that culminated in me doing the app rested on “bad events” shaping my past.

Dots of Past:

I did my Android App Development course soon after I finished my MBA somewhere in 2012. At that time majority of the budget phones were running Gingerbread 2.3.3 version of android. later I had to quit one of the job, But immediately after quitting I ordered some books that would change my path forever.

The above said books changed my path in programming forever. Design Patterns affirmed why I need to handle every thing via Interfaces only. Refactoring helped me in changing patterns to make code readable. Code complete is one which gave a big bird’s eye view of Software Construction landscape. Luckily Steve Jobs speech did help in affirming my gut feeling about ordering these books.

Apart from books there were much of learning from Unrelated courses done on sites likes Coursera, EdX, Udacity. One of the key features of these courses were on having our own coding style. If you see the code I have written  on github you can see glimpses of my coding style. The Code Complete also focuses on this.

Every Programmer is an Artist. Like every artist they have their Style etched into their works.

Role of Design Patterns and Code Complete 2 in My First Android App:

Some time after I did my course on android, I was introduced to “Design Patterns” book. I was so much immersed in this book, I even flunked in Google interview. Its because of this book I can appreciate why Java doesn’t support multiple inheritance for classes but allows the same for interfaces. Why there is clone() method attached to every java class. Also using the techniques like always pointing to the interface and serving requests to it.

Majority of problems in programming are at times repeating in nature. So chances are there for another programmer to encounter the same in past as well future. For that reason, the design patterns was written. The patterns were distilled by looking at various practical problems and how they were solved in past. The jUnit testing framework also depends on these patterns itself. By giving names to these patterns it becomes part of programmer’s lexicon.

Access a class through its interface only. Don’t break encapsulation.

If work can be accomplished by Object composition do it, don’t inherit.

The major role design patterns played was in preparing the interfaces. With stricter interfaces, it was easy to communicate with other parts of program. Database was abstracted into Content Providers. UI were segregated into their own package with DB operations abstracted. If activity had to communicate with adapter, it was enforced on usage of that adapter’s interface instead of direct access. The main advantage of this was in Code Readability.
Class structure of my First Android App

Code like boolean isMemberPresent = memberAdapter. isPresent( memberAtPosition ); is readable, isn’t it?

The other book that played a pivotal role in bringing the app to fruition was the Code Complete 2nd Edition. Its this book that cemented my style. In above code example if member at position was replaced with i, the code wouldn’t be that readable. The code complete has many more tips like that. Its based on the tips and techniques given in book my first android app could be completed instead of throwing my hands at first sign of trouble.

Refactoring and My First Android App:

The books of code complete and design patterns did provide me with a solid foundation in programming. It was refactoring that smoothed the rough edges of my skill and made things really manageable. Refactoring mean making small meaningful changes to program. Its the various refactorings that made code more readable.

refactoring grab

 

Earlier my logic in fragment swapping was embedded deeply in method in Fragment Class. Later I ran Extract Method refactoring to separate the fragment swapping into its own method. Once this was done I moved the method to activity as the job of managing fragments was supposed to be in Activity. Rename was used excessively as I preferred names which are easy to tell and contextual. The reason why I kept every thing simple was because I wrote the code which would be read by tech section. Also the ultimate responsibility of extending the app was resting on them, simple code was paramount.I also did some “Replace Inheritance with delegation” on my text watchers and on click listener classes. As I was moving them to my newly formed Adapter class. All these refactorings were done with purpose of keeping the encapsulation intact. Its because of these refactorings the code of my first android app is “Readable”.

How GitHub helped in versioning my First Android App:

Initially I disregarded importance of keeping the version control in place. I later did one code change and it broke the app completely. Luckily I was able to figure out that code change itself was buggy. Then I rolled back all the changes and immediate setup GitHub on my PC.

github

Once the version control was set up. I integrated my IDE with it. Its because of this I was able to write what all things I added to code in English. The naming convention for version numbers was 1.x was for major UI change. 1.x.x was for adding a small new feature. the 4th digit was for smaller fixes done to code. Also in code complete 2 there was mention of creating daily builds hence I committed all the changes I made at the end of the day..With each commit a build was created and tested. Due to faster commit and build cycle the debugging was considerably easier. The commits with D in names were builds which I had set up for debugging purposes. That code was littered with Log. d( "xxxx", "yyyyy" ) messages which kept pulse on everything happening in my program.

The main advantage of Version control was I could only concentrate at what all was changed and fix if the build was broken. This concentrated scope aided a lot in debugging. With each commits synced to GitHub at the end of they I was guarded against my PC breaking up, which it did when I finished the app.

This was my journey of writing first android app. Do share your views and first android app experience in comments.

Authentication techniques for “mortals”

Facebook authentication

Authentication screen of facebook

The most common thing every designer has to deal with is ‘authentication‘. In simple words, person logging into Narendra Modi’s account is Narendra Modi himself, not Roudy Ranganna. In case of real world you see his face and authenticate (not thinking about thing called ‘humshakals’ and impostors. 😉 ). But in world of computers, which is simply too powerful than our real world, it gives you a set of choices. There are 4 authentication techniques for users. They are

  1. What you know? (E.g.: Passwords and PIN)
  2. What you have? (E.g.: Key-cards, RFID cards, OTP’s, Passes)
  3. Who you are? (E.g.: Fingerprint scan, Face Recognition, and other Bio-metrics)
  4. Where you are? (E.g.: Location tracking, I.P. tracking)

1. Authentication based on ‘What you Know?’

In ‘what you know’ based authentication, the 2 parties decide on a secret phrase to identify each other at the beginning. While logging in or doing transaction, this secret phrase is asked, which is then matched to authenticate. (PS: In all the websites its the encrypted code of password is matched, actual password is immediately encrypted.)

If you share this secret phrase with your friend, then your friend can use the service appearing as you. If your friend becomes greedy and misuses the service, it will be you, who will be first to get caught. Based on recent events, Don’t worry about getting prosecuted, because you are ‘donkey’ in eyes of law, not the perpetrator of crime.

2. Authentication based on ‘What you Have?’

In ‘what you have’ based authentication, the 2 parties decide on a thing to identify each other. All the banks in India send a thing called OTP to your mobile for authentication. Theaters give you a thing called movie pass to authenticate you. Companies give you a thing called RFID cards to authenticate you. Software vendors give you a thing called licence file to authenticate you.

‘What you have’ authentication is comparatively bit expensive but more stronger than ‘What you know?’ authentication. Also this authentication technique is vulnerable to sharing of the thing. Also this technique requires some physical infrastructure to give you the thing while signing up.

3. Authentication based on ‘Who you are?’

In ‘Who you are?’ based authentication, the authentication is based on your physical features. Some examples of this is Fingerprint scanning, Retina Scanning, Face Recognition. In case of criminal investigation DNA’s are used.  Since the physical features are unique to an individual, during the signing up phase, a copy taken by one of the party, and a pattern matching is done to authenticate.

‘Who you are’ authentication is by far the most expensive one and strongest one too. This authentication technique cannot be used on internet just because of shear volume required to do it. Being based on unique features of body, sharing problem doesn’t arise at all.

4. Authentication based on ‘Where you are?’

This by far is newest entrant in the world of authentication. In  ‘where you are?’ based authentication, the location of person is used to authenticate. Due to difficulty in ascertaining real-time location data of a person, this technique is often used as add on layer of security. One such example of this technique is the notification by facebook while logging in from different location. It asks you to save browser if you logged in from different location. It even sends the mail to your mail ID notifying login. Normally IP address or GPS data is used to ascertain the location.

Tips to follow:

  • Never share your secret (password or PIN) with anybody. Its difficult to track down perpetrators if crime happens.
  • Sharing of Identity is crime. Don’t complain if you get hacked, you are one who let the thief in.
  • If you can afford to purchase system based on who you are authentication then do it.
  • Save your passwords in your Brain(if there are lesser numbers of it to remember) or in Powerful password managers like Lastpass, or Keepass.

Do share your ideas in comments section.

Here are some articles I have written on security,

How I built SKDRDP site from scratch

Though I had been selected with much fanfare on 10 march to deal with SKDRDP site, I couldn’t taste success for long as the site which I was inheriting was filled controls which I cound’t resurrect or uplift. The site was nightmare in adapting to newer tech like HTML 5. I had big gripe with the SKDRDP site of not being mobile and tablet friendly. The site was loading with a viewport of 968 pixels even on mobile devices. This fixed width reuqirement was causing lot of discomfort to mobile visitors leading up to higher bounce rate. Also there were none to brainstorm with and get ideas. I was all alone, and was just tinkering with old site for long. It was during a Codecademy course the things tipped. In that course I learned about making sites ‘responsive‘.

Since I couldn’t ask for help by others, I had to bring this innovative plan of Responsive Mobile Friendly site to fruition by myself. But there were lot of obstacles I had to face. My lack of knowledge was also limiting  me in this case.

Entry of Bootstrap: The tipping point of SKDRDP site

While I was doing a course on Codecademy about building a Airbnb Homepage, I came across a framework called Bootstrap. It was from this point the things tipped. Till I did the course, I was tinkering little bit about HTML to get whatever I wanted from SKDRDP site. After I become more comfortable with the Framework, I decided to dump the tinkering of oldsite and started to building it from scratch.

Since I was groomed up by using of IDE’s for writing softwares, I decided to use  Net Beans for building the site. I started working on the site in Beginning of October. Since my HTML skills was less and my motivation to sit for longer times building things was also less, I decided to build the site in 1 small steps at a time. The build goals were small and incremental. I didn’t even do the holistic thinking of of the site design, I just kept on reading about bootstrap framework, thinking about the features it had and building the site with the feature I read. Some of the features that are prominently there in the site are

  1. Navbar
  2. Responsive thumbnails
  3. Carousel
  4. Panels
  5. Nav Tabs
  6. Nav Pills
  7. List Groups
  8. Alerts
  9. Tables
  10. Buttons
  11. Glyphicons

While using above mentioned features, I was constantly contemplating what does the above thing do?, what role does it play?, how it will render on different devices?. This constant contemplation was the key thing that helped me get things done early. The most challenging part of building the site was, building the Home Page.

Designing the home page

home page

One of the most toughest thing in building SKDRDP site was the designing of Home page. Looking at the various options provided by bootstrap my head was reeling with blow up of options. As I was novice in the world of web development, I constantly referred to documentation while building the site. When I started working on the site, I first picked up header image, Did some little bit of editing in GIMP. I did the same with carousel images. So most of my initial development time was spend in picking up the images and retouching them. Once I had cache of images for the site, I dived into HTML world for building the site.

The first step of building the site was, creating a bare-bone HTML documents satisfying prerequisites of website.

<!DOCTYPE html>
<html lang="en">
<head>
<title>Home | SKDRDP&reg;</title>
<link rel="icon" href="/images/fav.ico">

<!-- Meta tags for setting view port and SEO -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Comprehensive plan for the Sustainable Development.">
<meta name="keywords" content="SKDRDP,Rural Development,Sustainable Farming, Community Development, Micro Finance">

<!-- Loading linked CSS files -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css" href="css/docs.min.css">
<link rel="stylesheet" type="text/css" href="css/theme.css">
<link rel="stylesheet" type="text/css" href="css/carousel.css">
<style id="holderjs-style" type="text/css"></style>

<!-- Adjustments for buggy IE -->
<script src="js/ie-emulation-modes-warning.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="js/ie10-viewport-bug-workaround.js"></script>

<!-- Bootstrap core JavaScript -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/docs.min.js"></script>
</body>
</html>

As shown in above code sample, I typed all the things and saved it as ‘index.html‘. Once the well formed code was saved I started working of visualizing features to be added to the code. The ‘viewport meta‘ tag was the most important one, it is that tag which adds responsiveness to webpage. In old SKDRDP site the width part was ‘width=968‘, which meant it would render the same way on mobile, tablet and desktop. Once this bare-bone HTML was created, I added content which would be common for all the page. That common content was Header Image and Navbar. Once this template was set, I saved a copy of it as a template for all other pages. This work of templating is a common practice for building the sites.

After templating I started to add features for the home page. The first was carousel. In the old site the upper carousal was broken and lower carousal didn’t provided much of traffic to pages. So in current SKDRDP site, I decided to build the carousel with embedded button so that traffic would convert with much ease. Unfortunately the Number wise most widely performed function on carousel is ‘clicks on next/previous buttons ‘ :p. As told before the carousel was put at the top of page to showcase various categories of activities done by SKDRDP.

The next section to be put up after carousal was 2 column of About Us and Basic Stats. The about us section was embedded with buttons for Pragathi Bandhu Groups, Community Development Division and About Us page. These 2 things were given buttons specifically because, these 2 things had great impact on our organization. Pragathi Bandhu SHG’s is the root of all the SKDRDP activities. CDP is main Vision of SKDRDP. Besides the about us section is Basic Stats section giving out all the basic and vital stats of our organization.

Below this is last part of home page, the Facebook activity feed, some downloads and contact details. All these were built with panel feature of bootstrap. It almost took a day to build each of all these features of home page.

Building other subsequent pages

The building of other pages of SKDRDP site was breeze as they were all content pages without any hi-fi layouting styles. For developing our management page the technique of thumbnails and thumbnail content was used. The alert for SKDRDP page was deliberately inserted to push some traffic to facebook. Apart from that alert bars were prominently placed to give some preference to SKDRDP Blogs. This above the fold alerts being blue color catch attention and divert some traffic to blogs. The downloads have been given a separate page with list groups to download the content. Since this page is not a high priority one it was kept hidden in About Us page. I call this technique of keeping lesser priority content as “out of sight and out of mind technique”. Earlier my classmate told me about duplication of contact section on old site, hence on new SKDRDP site I provided quick contact as a ‘panel’ on home page as well as contact details page for head office and all our project offices as separate menu items.

Though I consider my self as novice in web development, this activity of building the SKDRDP site helped me to learn considerably. Since there were none to help me with the basics, The foundation of learning things on internet got strengthened considerably. Its this e-learning thing that really made all the difference. So keep learning and keep growing.

Uncertainty & Risk

Uncertainty & Risk are 2 towers of Statistical World. Uncertainty is like dark lord sauron who could take the land underneath your feat, risk is just a evil wizard.
the statistical definitions of both are.
Risk is when we don’t know the outcome, but we know the probabilistic distribution of outcomes.
Uncertainty is when we don’t know the outcome, nor we know the distribution of outcomes.
PS:When you don’t know the outcomes, its not uncertain but its called as unknown outcomes.

Risk

Risk is always about dealing with many outcomes. A person can claim his ‘risk’ is low when the outcomes is one from the set of many. If you apply for only 1 college for graduation the your risk is high because chances of that college rejecting you is high. But if you apply for 10 colleges for graduation, risk of getting rejected from all of them is very low. In case of roll of dice you know the outcome will be one of six faces, hence its ‘risk‘ with unknown future not uncertainty.

In personal finances Risk is big player affecting the returns one gets. You carry a risk of inadequate profits if you are investor. You carry a risk of over concentration of portfolio on 1 particular industry. You carry risk of insolvency from a particular company in portfolio.

You can reduce risk by spreading your investments over a wide horizons, market caps and industries. You can reduce risk of not getting graduated by applying to lots of colleges. You can reduce risk of being single by talking to many girls about marrying. Spreading investments reduce the risk of all of them failing. Increasing options to choose reduces the risk.

Uncertainty

Often times statisticians tell uncertainty is bigger than risk. Its because uncertainty cannot be quantified reliably. Uncertainty is when you have no idea of what the future outcome will be. In case of roll of dice there is risk but not uncertainty, whereas in case applying many colleges for graduation, there is uncertainty (as no college may accept you) and risk. There will always be some uncertainty over things we don’t understand. Uncertainty exists over those conditions  where we don’t have clue about future events and where it would leave you.

The major problem one faces with uncertainty is trying to measure it (PS: Uncertainty cannot be measured). Uncertainty always exists in nature. Living beings always add some degree of uncertainty to everything they do. The question of death has uncertainty added to it, as no one knows when he is going to die.

The uncertainty is different devil and it vital lever pulling the Insurance Industry. The uncertainty of bad events makes one to have insurance. Insurance companies pool money from various people which reduces cost of insurance. But for an Insurance company you are a risk not uncertainty because, of all the customers only few of them are going to die unnaturally. The solvency ratio of an insurance company helps keep the insurance company solvent of damages caused Uncertainty.

The prudent way to deal with uncertainty is to be peaceful to it. If there exists any chances of converting uncertainty into risk for others, do it quickly. In cause of death uncertainty it can be converted into risk for insurance company by taking a term life insurance policy. The uncertainty is indication of what we don’t know, and have no goddamn clue about its working.

« Older posts Newer posts »

© 2017 Harry's Tech Space

Theme by Anders NorenUp ↑