Friday, December 14, 2012
One of my best courses @USC Geospatial Information Management
Last Spring when I took the CSCI 402 class I thought this would be the best class that I would have come to experience during my M.S. CS course at University of Southern California (USC). Come to Fall 2012 and I guess I was proved wrong. Not to undermine the CSCI 402 class under Prof. Crowley. He is a legend and his class was an epitome among all the classes I had taken so far at USC. It taught me teamwork, core programming skills and I guess one more big thing that is estimation. An estimation of how much time I would take in building some projects. I guess it is very important for a software developer to know that.
But Fall 2012 brought an another course CSCI 587, Geospatial Information Management. This course would be by far one of the best courses I took at USC. The course is taught by Prof. Cyrus Shahabi who is a veteran in the Geospatial domain and it is completely reflected in his selection of research papers, his chronological order of reviewing and teaching them to the students. The coursework for this course is by far the best ones that I have seen so far in terms of design. It is not surprising that this is one of the few courses in the US which is taught via the Distance Education Network to two schools in Vietnam. The professor teaches the course with ease and his humour is always present even while reviewing the most difficult research papers ever. That is one of the reason that he manages to deliver with such ease. With a lot of papers he gives such great research insights and technical challenges that helps you understand the world of research and academia. The professor also gave a few entrepreneurial lessons in one of his classes. For someone who is a start-up enthusiast like me those lessons were really cool.
Personally, I can now wrap my head around everything that may be non-technical with research.
The crux of the course is Geo-spatial data storage and management. Everyone today in the start-up industry says that an app in today’s world cannot be successful if it lacks one of these three things, Social, Mobile and Geo-location. I learned the Geo-location techniques and all the research behind it in this course. Looking at the evolution of research in this area also teaches you a lot of things. The professor also highlights those areas throughout the course.
Apart from this the course taught me the importance of design. Project design, brainstorm meetings, UI/UX design for my project all got me into the real development scenario at a Start-up. I learned scheduling with team members, handling deadlines and iterative development. There is so much iterative development that I did with this project that now it seemed like that is the only software development model that existed.The project in this course taught me teamwork again, but at a whole new level. Our three people team was actually time a product team where each one was responsible for one aspect of the project.
At the end of the course when my team presented our project the professor even suggested us to apply at some incubators in LA with this idea. I am going to do that soon. Well, and not to forget that we owe our TA a 5% if this takes off. It is pretty clear that going forward I am going to miss this course but I will never forget all the lessons it taught me.
P.S I was the one to donate the maximum chocolates in the class on the day of Halloween.
Friday, November 2, 2012
Updates in Java7 (Dolphin)
Java7
update came out on July 28, 2011 but still a lot of programmers do not want to
shift from the Java6 to the Java7 version. Well, extensively using Java from
the last couple of months, I decided to write about the update.
Java7
also named Dolphin, is the outcome of the OpenJDK 7 project. Java7 has many new
feature improvements. Many of its milestones and builds have different names
like Project Coin.
Feature
updates:
1.
Virtual
Machine: Da Vinci Machine Project
Multiple
Language support: The JVM will now have architectural support for languages
other than Java. This move is done to extend the JVM and portability to
different languages. This is definitely a move to expand the future JAVA
ecosystem.
Strict
Class file Checking: This was introduced in SE6. There are major improvements
in this version like type checking verifier. Also, improvements in backward
compatibility with old inferencing
verifier.
2.
Lang:
Project coin
Lang
is one of the most extensively used Java libraries. There are a couple of small
language enhancements which are significant for programmers.
-
Strings
in Switch statement
-
Automatic
Resource management in try statement
-
Type
Interface Improvements for generic interface creation (diamond)
-
Binary integral literals and underscores in numeric literals
-
Simplified varargs method
invocation
-
Precise Exception throwing for
multi-catch
3.
Core:
API
modifications to class loader for Deadlock fix: Custom class loaders that do
not adhere to a acyclic class loader delegation model can be deadlocked by this
modification.
Method
to close URLClassLoader: A new method to close the files which are kept open by
the URLClassLoader.
Concurrency
and collection framework: A improved framework lightweight
fork/join framework, flexible and reusable synchronization barriers, transfer
queues, concurrent linked double-ended queues, and thread-local pseudo-random
number generators. These include changes in the java.util.concurrent
package with classes like ForkJoinPool, Phaser, TransferQueue, ConcurrentLinkedDeque,
ThreadLocalRandom.
4.
Internationalization:
Unicode 6.0: This is upgraded support for Unicode character set to
6.0
Locale Enhancements: Locale enhancements for Chinese, Hebrew,
Uzbek and Latin characters.
5.
I/O and networking
New I/O APIs: New I/O APIs for filesystem access, socket binding,
configurations and multicast datagrams for NIO.2
NIO.2 filesystem provider for jar and zip extensions.
Upgrade to the networking configurations using the Windows Vista
IPv6 stack.
Support for transport layer security version 1,2
6.
Security and Cryptography:
Elliptic curve cryptography: A portable Elliptic curve Cryptographic
implementation for all java applications to use them directly.
7.
Database Connectivity:
One of the most important use cases of Java that is DB
connectivity gets a JDBC 4.1 upgrade.
8.
Client
XRender pipeline for Java 2D: 2D graphics made easy with a new
Java2D graphics pipeline based on X11 XRender extension which harnesses the
power of modern GPUs
New Graphic platform APIs: New features for platform include
translucent and shaped windows and heavyweight/lightweight component mixing.
New Look and feel for Swing: Nimbus like new look and fell for the
Swing package.
Swing JLayer component: Addition of new SwingLabs JXLayer to
decorator platform.
Grevill sound synthesizer: New and improved sound synthesizer created
as a proposal for the Audio Synthesis Engine Project.
9.
Web
Crucial Update XML stack: The extensively used XML stack for the
web framework gets an update here to the most stable version.
10.
Management
Enhanced MBeans; Handle your CPU loads and notifications better by
enhanced MBeans. MBeans report recent CPU load of the whole system, the CPU
load of the JVM process, and to send JMX notifications when GC events occur.
Apart from these there is something that you can expect from JDK8
like more enhancements to JVM for modular programming, Annotations, Language
support, project Lambda, Modularization which focusses on JDK, Swing
application framework and JDatePicker components.
Detailed description on : http://openjdk.java.net/projects/jdk7/features/#fa535991
Saturday, September 22, 2012
My Dream of Dreamforce
“Make no little plans, they have no magic to stir a man’s blood”.
When a few decades ago Google CEO Eric Schmidt and Salesforce CEO Mark Benioff talked
about the networked supercomputer the world was on the brink of the next transformation
in technology. Today that is known as cloud.
As Enterprises and businesses expand, technology infrastructure needs to change which
leads to a lot of upgrades and extensions to current technology, more workforce
requirements, scalability issues and consistency problems. The solution to all this in today’s
scenario is called cloud. Cloud also enables small enterprises to think big as cloud leverages
the required technology infrastructure in a hassle free manner.
Cloud has already transformed my career. I consider myself to be one of the fortunate
people to start my career using cloud technology via Salesforce, Force.com PaaS API. My
application will soon go for production for the largest medical device giant in the world
Medtronic, Inc. as my intern project for summer for the diabetes division. I may be one of
the youngest in the Salesforce ecosystem here at Medtronic, Inc. developing on the
Force.com platform. The application enables more than 100% ROI. It is simply productivity
as a service. I am obliged to work on such a technology which makes me work out of the box
and deliver the best for my team. Please visit my blog blogger.com/vimarshk for more on
the internship journey and flavors.me/vimarshk for my online profile to know more.
Dreamforce showcases the best in cloud today. I am currently working on integrations of
other platforms with Salesforce. I have a lot of other ideas that the platform can enable for
enterprises. If I get a chance to attend Dreamforce I can deliver all this with the latest
Salesforce technology more efficiently. I wish to be one of the best developers on the
Force.com platform and Dreamforce may be my first step towards that. It would be an honor for me if I get a chance to attend Dreamforce this year.
Monday, August 6, 2012
International Business Culture
Today the world
is a small place due to advanced technology and social media. As the world
progresses in its time we see the birth of more and more multinational businesses.
Being a global person is becoming increasingly more important because now not
only clients and customers but even teams are located remotely. In such
scenarios international business culture is as important as international
business acumen.
I have been
fortunate that I have had people of geographic diversity around me giving me an
insight into different business cultures around the world. My dad has been to
different countries of Europe, I am currently studying here in the US in one of
the most diverse cultured Universities, University of Southern California; I
have friends located in the UK and Canada too.
It is very
interesting to know about the different business cultures. I will be talking
about the countries one by one. I have not posted anything lately because compiling
this one was taxing enough! I hope it is good enough. I will be adding further
to this post though.
Australia
Australia is an island and kind off quite different in
terms of business habits since it is an isolated island.
1.
Australians are simple and updated businessmen.
They prefer business oriented presentations with tangible facts and diagrams.
During meetings they prefer eye contact.
2.
They are punctual. It is important to be on
time.
3.
They are formal and straight in their business
deals. Hence, they do not like hype and partaking. It is not very common to
handshake before/after a meeting. Women may greet with a kiss on the cheek.
4.
Emails usually have first names and they are
direct and to the point. Their formal communication also reflects the same
thing.
5.
Home visits are common in business. Gifts too
are a part of their business culture. Australians value nature.
Austria
Austria is small but one of the financially powerful
countries in the world today. It’s neat and clean customs are also reflected in
their business culture.
1.
Austrians hate gaudy people. They like apt
business attire which is not too flashy.
2.
Like Australians they too are formal
businessmen. They are direct and to the point in their business deals. Humor is
not encouraged in business meetings. Respect is mutual. Email communication is
direct too.
3.
They concentrate on long term relationships
rather than short deals. So, it is very important not to make haste during
deals.
4.
They are punctual too. Long delay or last minute
cancellation my harm business relations.
5.
They like attention to detail. University
degrees, time you have been in business are important. Translating your
business card on one side into German would be appreciated.
6.
Home visits may happen. It is good to have a
handshake with everyone present including the kids. Gifts can include
chocolates or flowers odd in number. Lilies, red carnations, chrysanthemums
should be avoided since they are funeral flowers.
Belgium
Belgium is a European country which has three major
speaking languages, Dutch, French and German. Belgian businessmen are polite,
subtle and well mannered.
1.
Hence, direct and confrontational approach is
insolent for them.
2.
Handshake is a common gesture before/after
meetings.
3.
Belgians are attached to festivals. Hence,
meetings and deals should be avoided during festivals. July and August, week
before Easter and between Christmas and New Year, meetings should be avoided.
4.
Presentations should be logical and reasonable
as opposed to just direct up to the point.
5.
Since we have Dutch and French as the two main
languages, it would be great if the business card could be translated to either
one of them and handed to them with that language side up. 1.
Home visits may happen in Belgium. It is
customary to have a gift in the form of flowers or chocolates. Avoid
Chrysanthemum as they signify death. Give odd number of flowers except 13.
Canada
Canada is a country
located north of the United States of America with a pretty cold weather.
Canada has many French residents and hence, French is used in certain parts of
Canada.
1.
Canadians are more reserved and calm in nature.
It is important to keep your body language minimum.
2.
They expect firm handshakes and eye contact.
3.
They like to address people formally. Hence,
talk with the title like Mr., Mrs. Miss until they call you by your first name.
4.
Words are important during conversations so be
careful of what to say. Hence, verbal communication is very important.
5.
There is no business discussion during meals.
6.
Home visits are not often. If they do happen,
due to cold weather, wine or liquor could be an apt gift.
China
China is a super
power of Asia. Manufacturing business is huge in China and is a business hub
growing very rapidly in the world.
1.
Chinese culture is very rooted and is strictly
followed by most of the people.
2.
Chinese businessmen find gestures distracting.
Pointing a finger is rude. Personal contact too is considered inappropriate.
3.
They are formal in their deals. They like if
meetings are scheduled 2-3 months in advance and in writing. They prefer face
to face meetings.
4.
They believe in knowing more about the company.
Hence, it is great if you can send them company details before the meeting.
5.
Gift is a sensitive issue. Pens are considered
to be good gifts. Clocks, flowers and handkerchiefs are associated with
funerals. Sharp objects should be avoided as they signify you wish to severe
the relationships.
6.
They believe in luck. Four is unlucky and eight
is the luckiest.
7.
Seating during meals is a big deal. Reserved
siting is planned for the guest of honor or seniority level. Chopsticks
positioned in a bowl signify death. Dropping them is bad luck. Rubbing them
indicate poor construction or quality. If you finish all your food it means you
are still hungry. Drinking is not allowed during meals.
Denmark
Denmark is one of
the most beautiful countries in the European Union.
1.
Danish people are direct and courteous. They
expect firm handshakes and direct eye contact. If there is a woman then shake
hands of the woman first as a sign of courtesy.
2.
They are punctual and up to date. Hence, prior
appointments and punctuality are important. In case if you get later than a few
minutes into the meeting it is important to telephone and let them know
immediately.
3.
Danish people do not work in summer from June to
August due to Danes vacation.
4.
They address by professional titles. You can use
Herr (Mister), Fru (Misses) or Froken (Miss).
5.
Send an agenda before the meeting and do not
deviate from it. Be factual and organized and use charts and diagrams.
6.
Be accommodating and consult everyone before you
pass a decision.
France
France is one of
the super powers of the European Union. It is known for its art and
architecture
all over the world.
1.
French people are all lovers of art and
architecture. They love French cuisine too. Your participation would be
important in case of a conversation.
2.
They have a casual culture. They have lighter
and briefer handshakes than in other cultures along with brief eye contact.
3.
Coming up unannounced or uninvited is not a good
thing as they value their personal space and privacy.
4.
The French are open in their business. The same
trust and openness is expected from you too. This should reflect in your
actions, gestures and words. Courtesy and respect is shown by eye contact. An
attempt to speak French even if you do not know it is considered as a sign of
respect.
5.
French conversations are animated and heated.
6.
For business cards convert your card into French
and give it with the French side up.
Germany
Germany is the most powerful economic super power of
Europe. Its economy is the largest in
the EU.
1.
Germans are conservative in business. They usually
take a long time in deciding the project aspects and are detailed about work.
Hence, project may take longer than expected.
2.
Germans are very punctual. Never be late. Being
late is considered offensive and insulting. Also, humor is not encouraged during
business. They are serious in business.
3.
Sudden changes to plans are unwelcomed. Even if
sudden plan change results in profits, they do not like them.
4.
Germans have a different way of greeting.
Shaking hands before and after the meeting is mandatory. It is accompanied by a
bow or a slight nod. Failure to do so may send wrong signals. Have good eye
contact when you do that. Shake hands
with woman if they extend their hand. They greet others with “Herr” before the
title as a mark of respect. Title is very important for the Germans. Make sure
that you address them by their title.
5.
They do
not believe in admiration, compliments etc. Everything is considered normal and
smooth unless otherwise reported.
6.
Germans drink a lot. But in a business setting
drinking conservatively is suggested. You are expected to be fast and eat
plenty of food.
7.
Germans are very private about their personal
life. An unexpected phone call may be really a bad option.
8.
For a visiting card have one side translated in
German and give it to the German counterpart with German side up.
More coming up!
Monday, July 2, 2012
Single Sign On (SSO) with SAML
The pace at which our number of usernames and passwords increase
every year is enormous. With each new account we have a new dimension of
security associated with it. On the organizations perspective, multiple
accounts cause security problems and huge storage and management issues too. With
cloud infrastructures increasingly becoming popular, these problems are
escalated. Single Sign on (SSO) is therefore a popular infrastructure for organizations
today. If you see Google, with one login, you can access Gmail, Google
Drive, Youtube, Google Calendar, Blogger and other services that it offers. The
latest one is the browser Google Chrome’s cool support which enables you to sync your
bookmarks, extensions and even live pages all using just the same account.
Benefits of using SSO:
1. SSO reduces password fatigue which is caused due to entering different username and password combinations.
2.It provides a centralized infrastructure for managing and storing of account details. This in turn reduces IT related costs.
3.It also reduces the cost for setting up IT help desks for password losses. It provides easier access to resources.
4.It makes security management much easier by having a single layer of security which is more generalized for each service or application.
5.Tracking users and tracking their access to resources becomes easier.
1. SSO reduces password fatigue which is caused due to entering different username and password combinations.
2.It provides a centralized infrastructure for managing and storing of account details. This in turn reduces IT related costs.
3.It also reduces the cost for setting up IT help desks for password losses. It provides easier access to resources.
4.It makes security management much easier by having a single layer of security which is more generalized for each service or application.
5.Tracking users and tracking their access to resources becomes easier.
There are different single sign on configurations that
exists.
- One time
Password (OTP): OTP is one of the most secure ways to do a Single Sign On.
There is a two factor authentication using special OTP tokens which is one of
the best practices in the industry today.
- Kerberos based SSO: Kerberos has ticket granting servers. The initial sign on grants you access to the Kerberos system. Other different services are all accessed by requesting for tickets for that particular service.
- Security Assertion Markup Language (SAML): SAML is a XML-based solution for exchanging user security information between your organization and a service provider. It supports W3C XML encryption and service provider initiated web single sign-on exchanges. The user is called the subject in the SAML based Single Sign On. The identity provider is the one which provides the user credentials. The service provider trusts the identity provider on the user information to provide access to its services or resources.
More on SAML:
A transaction from an identity
provider to service provider is called SAML assertion. SAML assertion structure
is defined using an XML schema which is specified under the OASIS SAML
standard. It contains header information, the subject and attributes for the subjects
which are the statements for the subject and conditions. The identity provider
sends a certificate to the service provider on Login. This certificate is a
proof that the data entered by the user is valid and based on this certificate
the service provider grants the user access to the service. The certificate
usually contains the signature of the identity provider and other attributes
which were setup during setting up of the Single Sign On feature which were decided
by the Service provider. Force.com uses SAML for Single Sign On. It is a very modular way to implement SSO.
OAuth - Best Security and Best Privacy
Security is one of the key concerns in the online world
today. The tech world knows about the recent compromise of security where
various LinkedIn passwords were hacked. Usually a large website like google.com
or Salesforce.com has various other websites linked to them which belong to the
same or different organization like gmail.com, blogger.com or Force.com,
radian6.com. To login, we enter our credentials into the main website and then,
we are redirected to the respective websites that we want to go to. In today’s
world this is enabled by security tokens which are shared between websites.
The above scenario is made possible using an open protocol
called OAuth. OAuth allows a website to access another website without exposing
a user's credentials. OAuth allows users to give out tokens for other websites
to access limited resources for a limited time. This is done using tokens and
consumer secret keys which are exchanged between the websites and users. This
is useful because even if a website security is compromised it gets only the
tokens and consumer keys which could be revoked. So the credentials are safe.
OAuth has two types of tokens, request token and access token.
We have a user and an application or a service (consumer) which wants limited
access from a website where the user has his login credentials. The service
will first ask for a request token from the website (say Salesforce). This
token has a consumer key and a consumer secret key. The request token redirects
the user to the website, where he enters his credentials. The user logs in and
the consumer now gets access to the website without the user having to provide
his credentials to the consumer. Consumer gets access after the user formally
approves giving access to the consumer. After the user approves the request,
the website marks the request token as approved by the user. The authorized
request token is then exchanged by the consumer for an access token. There may
be multiple requests using the access token, to finally get what the consumer
wants. This continuous exchange of tokens is sometimes termed as OAuth dance. All the tokens are time stamped and hence, the
consumer gets limited access. Also, the consumer never gets the actual user credentials.
This improves privacy as well as
security.
To learn more about OAuth:
Friday, June 22, 2012
The power of Force.com
When we see the cloud scene today, we have big companies like
EMC, Joyent, Saavis, Verizon/Terremark, Microsoft, Salesforce, VMWare, BlueLock, Citrix,
IBM, Amazon and now Oracle too. Many of these are enterprise cloud providers
and Software as a service (SaaS) providers. Each of them has a unique domain of
specialized services that they offer. But I think bringing the cloud right in
the hands of each developer is the best done by Salesforce. Force.com’s unique Platform as a Service
(PaaS) model is one of a kind and gives the power to the developer to bring
ideas into reality very quickly.
It is unique in a way also that it has integrations with
different technologies too. Salesforce can be integrated with SAP via IBM castIron. It supports Heroku which can be configured with Amazon cloud. It just
means that Salesforce cloud is flexible. Salesforce is also a pioneer putting
the entire CRM on the cloud. Mobile and social are one of the most important
parts of any enterprise today. Force.com supports both mobile and Social. It
can have your applications ported to handheld devices very easily. It enables
Social via Chatter.
In terms of languages too, it is very flexible. Just a few
days ago I saw how Salesforce uses Hadoop Webinar. They used a combination of Hadoop with Java mapReduce, Pig, Force.com and machine learning algorithms to
measure product metrics and community based recommendations in chatter. It merges with Heroku which is their own cloud
based polyglot platform which supports another set of different languages that
I mentioned in my earlier blog. Force.com discussion boards have special
sections for Perl, PHP, Python and Ruby Development.
All this means one thing; there are no limits to what you
can do with Force.com.
Wednesday, June 20, 2012
Fail first, fail fast
Whenever you develop it is very important to fail first and
fail fast. Fail first gives you and ability to learn more about what your
project and risks involved. Fail fast ensures that you have ample of time in
developing the application via other alternatives.
I started with an e-book on force.com fundamentals. I
thought that the book will give me an insight on how to use the Platform for
development. I was surprised that it taught me how to use the platform along
with developing my first app on the cloud. It was amazing.
After all the things that Force.com provides, the best part
about it is drastically reduces the development time of your applications. Time
is the most important factor for business today. There are so many ideas that
never really see the light of the day because of development time. Imagine that
you have the power to implement your ideas real time! I can see that for many
applications which have critical time frames for market release for the ones
which depend on the current market scenarios, Force.com can be a boon.
Force.com has defined every object and connections between
objects in a very modular way which can fit any business need. Different
relationships between objects can be designed if you have the right knowledge
about your application architecture. There are various workflow and approval
options that can be used to design a custom workflow for your application. Data
security settings are amazing. Access rights and specifications have the
granularity till the field or record level. This enables modular privacy
settings for any hierarchy of users. Adding users and roles is also very
simple. Creation and generation of reports are very simple and easy to
configure. User Interface provided by default is very simple to use. However,
you can add custom user interfaces via Visual Force. To sum it all up, it is as
modular as possible accommodating anything you can think of.
In addition to all this, Force.com development adheres to
FDA CFR 11 compliance. This compliance includes secure SSL encryption, daily
backups, audit trails just to name a few. This makes Force.com the best and
most secure in the business of cloud computing.
Step one - Understand the technology
Force.com has multitenant architecture. The old architectures would be allocation of a set of resources for each tenant/organization. Here, they just have one huge set of resources which are used by all the organizations who subscribe that service. These resources can be maintained by set of experienced people; hence, you do not have to worry about the maintenance at all. This significantly reduces the cost for each organization too. Secondly, service improvements can enhance all the users at the same time.
Multitenancy provides like a base architecture for all
applications. Since each organization has a different customized use of the architecture,
Force.com uses metadata driven architecture to allow separation between them.
Meta data driven approach allows event driven custom object generation
customizing the space for each organization.
Apart from these, there is redundancy introduced at each
level of the database back-end which enables faster query response. There is a separate
table for mapping a set of the primary key values too, which can be used for
faster query processing if the original mechanism fails.For more go to multitenant architecture.
Platform as a service has enormous advantages to the
developer. It abstracts the concept of the server and it enables you to work
without limits. Developer need not worry about scalability, system backups,
operating system, patches and security, high availability and load balancing.
Before we work on any technology, a little background work
is never harmful. It helps you to think more of like the system in the backend
and how it functions to enable your application. These insights prove helpful
to us when we create our own application.
I developed a sample recruiting application
which can be used by the HR department of any firm for recruiting purposes.
This application was going to decide whether I will be able to use this
technology for my application.
Subscribe to:
Posts (Atom)