5.30.2013

Image displays in Firefox but not in IE

You have created a jpg image which looks really pretty in Firefox but the Internet Explorer shows a big fat "x". This boggled my mind for some time until I decided to look into it in detail. Lest you from keep guessing, the issue was CMYK format instead of RGB.

See the highlighted area in the image on the right indicating the CMYK mode. The CMYK mode (Cyan-Magenta-Yellow-Black) is good for media printing but is nothing something for the web display. Even though the RGB is intended for web graphics, the CMYK is still supported by majority of the browsers.

The reason some versions of IE may not display the image is because of the CMYK format. All you have to do is change the encoding mode (see image below) and all will be fine.


5.19.2013

Career as a .NET Consultant for Non-Degree Hopefuls

Neil deGrasse once famously said that science is not about simply memorizing facts only to spit them back during exams or to turn into a science parrot. I share the same view on IT and couldn't agree more with Neil.

We would be making a huge mistake if we evaluated candidates solely on their performance with their degrees. Memorizing a bunch of programming or technological facts and theories will turn one into an IT theory memorizer, while hands-on experience will create a true IT literate.

I bet when food connoisseurs judge a chicken entrée, for example, they go after the presentation, taste and visuals rather than the chicken's ability to dance or sing opera. Similarly the goal of any job is to get it done within deadlines and using the most efficient algorithms possible.

When I look for IT consultants, I specifically look for IT literates who carry a passion for what they do and can get the job done. I have hired high school grads with at-home experience who did a better job for me than most associate or bachelor degree holders. It could also be that non-degree holders felt like they had to work harder to prove themselves.

I am in no way trying to undermine the importance of a proper education, degree and credentials (I, myself, am planning to go for my PhD). The primary purpose of this post is to encourage all those without a computer degree to learn, experiment and see if IT is their cup of tea. I tried programming when I was 9 and I have been hooked since.

Programming Packages

IT consulting as an application developer always requires a mix of technical knowledge and not just one single language. Hence, if you are thinking about consultancy, you'll have to learn your primary language and then everything else that comes as part of that programming language package.

For example, during my high school year I started my career as a simple web developer with the knowledge of HTML, Java script, CSS and CGI. I then moved towards consulting as a PHP developer on a part-time basis. Being a PHP developer, my expertise was in LAMP (Linux, Apache, MySQL and PHP). You can think of LAMP as a programming package for PHP programming. My job as a PHP developer did not require me to work on the Apache server or configure Linux on a regular basis, but I needed the knowledge to be able to look in all the right places should a problem arise.

The point is to learn multiple things in order to be successful at a particular job. In this post I will discuss the ASP.NET programming package path.


ASP.NET (Web forms) Consultancy

As the name suggests, an ASP.NET consultant is one who specializes in developing programs, projects or websites using ASP.NET. The .NET language has two main types - Web and Win forms respectively. Win forms is all about "windows based" development (e.g. like developing a calculator), while Web forms is all about developing websites.

Here are some of the most important skills for any ASP.NET programmer:

Skill
Notes
HTML & CSSHTML is the markup language used for developing webpages. The CSS is the code used to style and format the webpage.
Software development lifecycleA typical application project goes through phases like planning, outlining the specifications, design & analysis, development and testing. This whole process is known as SDLC or software development lifecycle.
Web site hostingThis is the understanding of how the websites and domain names work and what kind of tools one need to launch a site.
IISInternet Information Services (IIS) – formerly called Internet Information Server – is a web server software application by Microsoft that helps manage and serve the websites from a local computer to the outside public.
Knowledge of OOP (Object Oriented Programming)OOP or Object Oriented Programming is a type of programming language which makes use of "objects" in its algorithms. Famous OOP languages are C++, C#.NET, Java, PHP, Visual Basic.NET
ASP.NET (C# or VB.NET)ASP.NET is a Web application framework designed for Web development. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. Within ASP.NET there are two frequent paths taken: C# or VB.
Knowledge of a relational database - MS SQLA database is a structure where you store information. Famous relational databases are Microsoft SQL Server (MS SQL), MySQL (Usually used with PHP) and Oracle.

Regular universities teach these skills by taking students through a variety of courses like Java, C, C++ and concepts like Object Oriented Programming.

Below is a list of sources that non-university students can consult and learn on their own for free.

Skill
Notes
Source
HTML & CSSW3School provides excellent tutorial on HTML and CSS. Follow the link to W3School to check their chapters on HTML. You can write HTML code in notepad and save it as an HTML file and open it in a browser.w3schools
Software development lifecycleYou will learn more about SDLC as you advance in your programming skills. However, for sake of learning and having an idea, the link is provided to a tutorial blog. What is SDLC
Web site hostingThe best way I learned about hosting was through purchasing my own hosting account through hosting providers like Godaddy, M6 and 1&1.
ASP.NETYou will need to download Visual Studio to learn and practice ASP.NET. The best websites to learn ASP are YouTube, W3School and ASPNet.
Knowledge of a relational database - MS SQLUnderstanding databases is very important because you will need them to save your data. I like the ASPnet site for MS SQL tutorials.ASP NET

Here are some suggestions on honing your skills:

  • Don't wait for landing a job to gain experience. Instead, start your own website or some kind of a complex project which can be showcased on your resume.
  • Offer volunteer work to local businesses, churches or any company you know so that you can use it as experience on your resume.
  • Continue practicing and learning new concepts. If your financial situation allows, take small certificates.
  • Keep an eye on eventually completing an associate degree if not bachelor.  Build connections during any project you do so that you can use them as a reference.
  • Keep a documented list of projects you have completed. I have seen many experienced applicants fumble the question "tell me about some of the projects you have worked on."
  • Get in the habit of finding a solution on your own. Employers love the go-getters and solution finders. You can be asked "Tell me about a situation when you had to complete a project using tools or skills you never worked on before."

Reality Check

You should build a portfolio of your work to prove your expertise during interviews. You will also have to work harder than those who bring degrees to the tables. Nevertheless, if you are really good at what you do, you will definitely be able to land consulting jobs. You can also benefit from consulting companies like Tek Systems, Robert Half, Comsys (Experis) etc.

While temporary consulting is not an issue, getting hired permanently will still be a problem. In today's world, an associate, bachelor's or master's is a requirement for the majority of the IT positions.

My advice is that you get started in the field at an appropriate rate and save some money. Once you have a little bit of a wiggle room financially, go for some kind of a degree. You also have the option of attending online universities.

Bottom Line

Designing, programming and developing is like math. You can learn all the concepts and formulas you want but what would make you valuable is your ability to apply those formulas to fix problems that you may have never seen before.

IT is also similar to math in sense that you either use it or lose it. So go ahead and play with the tools, find out if you like it and never stop practicing. The biggest downer in the interviews I conduct is if I see a particular skill listed on the resume under the expertise but come to find out that the last time the applicant used it was 3-4 years ago.

Don't worry about the money. The money and wealth is only the after effect of you loving what you are doing and being good at it.

Good luck and happy programming!

 

5.10.2013

Implement Direct Enrollment or Lead Generation at the Health Exchange?


Henry Chao, the deputy CIO at CMS was probably not kidding when he said "Let's just make sure the Federal Health Exchange don't turn into a third world experience". We saw a slight glimpse of Chao's fears during the QHP submission period when the issuers kept experiencing the timeout issues.

During the planning phase the Govt. underestimated the website traffic by a major margin which is why when they went live, they suffered from a phenomenon similar to that of a traditional hacking attack known as DOS attack (Denial of Service). DOS attack happens when too many people visit one's website at the same time clogging its resources and rendering it unusable for everybody.

HHS recently announced that they will be adding some more servers to their HIOS fleet to facilitate seamless experience. Eventually their changes will allow issuers to get their QHP applications in, but this mess begs attention to a bigger event being the open enrollment!

The Federal Facilitated Marketplace

Starting October 1st the population interested in tax subsidies and Qualified Health Plans will visit Federal Facilitated Marketplace. This number of visitors will be way bigger than what HHS saw during its QHP submission time. I can only hope that the Feds have kept this larger traffic in mind when designing their hardware needs.

Direct Enrollment or Lead Generation

Direct Enrollment and the Lead Generation are one of the options through which the issuers can sell their products on the exchange. They are very important because they allow issuers to let consumers shop their plans without competing with anyone else.

The only single and the most important difference between these two options is that under Direct Enrollment, it is the issuer who carries most of the Burdon while under the Lead Generation, the exchange does all the processing. This brings us to the crux of this post which is the question that if one of these two algorithms is better than the other?

While I understand that due to IT staff size or budget shortages, having HHS do all the work would be the way to go for many plans; I lean towards the Direct Enrollment method. It is the safer bet of the two because it does not fully rely on the Federal servers.

Delivering on time is not enough

There was an article published this AM in USAToday that mentioned Whitehouse touting the success of ACA on the fact that it was hitting milestones on time. The problem is not delivering the milestones on time but delivering the products that will work. The USAToday failed to mention anything about the mess that happened at the Government severs which resulted in deadline extension. Only time will tell how the whole thing turns out but let's just hope it is not a nightmarish whack job scenario.