Sunday, December 30, 2012

Making Process Planning Cool Again




Processes are falling out of fashion.
Planning is out "Planning to learn" is in. Little bets, experimentation, just start, iteration, rapid prototyping ,
lean - these are the cool kids. Process is the dork in the corner.




http://blogs.hbr.org/hbr/hbreditors/2012/12/making_process_planning_cool_a.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+harvardbusiness+%28HBR.org%29#disqus_thread

My 2013 Resolution


1.  PMP Certification
2. Six Sigma Certification
3.  Maintain proficiency in C#, Web technologies and Agile Practices
4. Keep learning  Arduino and Objective C technologies.
5. Maintain Work and Life balance.

Saturday, September 08, 2012

My ASP.NET MVC Architecture(Database Layer,AutoMapper) - 6



CustomerDatabase




CustomerDataAccess





My ASP.NET MVC Architecture (Service Layer, Orchestrator) - 5



Customer Service

























IService














CustomerOrchestrator




StructureMapHelper
 
 

My ASP.Net MVC Architecture(Controller,Model) - 4



Controller uses StructureMap to get Service  Layer to get list of customers.

This decouples the Service

CustomerController

CustomerController 





















ICustomer

ICustomer 









Customer


My ASP.NET MVC Architecture (View ) - 3

Global.asax.cs








CustomerList.cshtml


My ASP.NET MVC Architecture (Main Features) - 3



Salient Features of ASP.NET MVC Architecture

1. follows Layered Architecture
2. follows multi-tiered Architecture.
3. follows Plug-in Architecture with the help of DI/IOC Container (Using StructureMap)
4. using ORM(Entity Framework) in Data Access Layer.
5. ORM is lightly coupled to Architecture with the help of  DI/IOC Container(StructureMap) and AutoMapper Framework(Converts  EntityFramework Classes to Domain Classes)
6. Encourages Domain Driven Design, Object-Oriented Programming and  Design, Design Patterns.
7. Follows Service-Oriented Design (Ready to be deployed across multiple Nodes)
8. Geared towards TDD and BDD


My ASP.NET MVC Architecture (My Solution View) - 2


This is how my solution looks like


Sunday, August 05, 2012

Time Management Techniques

Pomodoro  Technique  (http://www.pomodorotechnique.com/)
   - Plan your tasks for day.
   - Set the Timer to 25 minutes
   - Take a 5 minutes break
   - After 4 Pomodoro's take 30 minutes Break



80/20 Principle:
   Use the principle to prioritize the work

GTD (Getting Things Done)
   Use these techniques to  handle interruptions


First things first
    User these principle to prioritize the work .


Sunday, July 15, 2012

Non-Technical books that every technical person should read


Must Read
1.   The Seven Habits of Highly Effective People - By Stephen Covey
2.   8th habit: from Effective to greatness - By Stephen Covey
3.  Getting Things Done - The Art of Stress-Free Productivity - By David Allen
4.  The Now habit - A Strategic Program for Overcoming Procrastination and Enjoying Guilt-Free Play
5.  Greatest Salesman in the world - By Og Mandino
6.  Think and grow Rich
7. Crucial Conversations: Tools for Talking When Stakes Are High

Good Read
1. 4 hour work week - By Timothy Ferriss
2.  The 4-hour body - By Timothy Ferriss
3. The 80/20 Principle: The Secret to Achieving More with Less - By Richard Koch
4. Kiss that Frog
5. Never Eat Alone: And Other Secrets to Success, One Relationship at a Time

Sunday, July 08, 2012

What is new in Visual Studio 2012 Unit Tests.


What is new in Visual Studio 2012 Unit Tests
1. Can search a unit test from IDE
2. The new Fake environment let you test anything in isolation, even when it has external dependencies.
Stubs:- Concrete Implementations of interfaces or abstract classes that you can pass in to your system-under-test to isolate it from real implementations
Shims:- generated classes that enable you to intercept and replace calls to existing classes, even those from the .NET BCL.
They are evil.
Use them and then refactor your code to remove them.
Better code coverage analysis

Sunday, May 06, 2012

Books that I am reading

1. Think Stats
http://www.amazon.com/Think-Stats-Allen-Downey-B/dp/1449307116
2. Programming Collective Intelligence
http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325/ref=pd_sim_b_4
3.  Complete Idiots Guide to Statistics

http://www.amazon.com/Complete-Idiots-Guide-Statistics-Edition/dp/1592576346/ref=pd_sim_b_1

Arduino Useful Links

Arduino Home Page
http://www.arduino.cc/

Arduino  is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists,designers,hobbyists and anyone interested in creating interactive objects or environments.

Arduino can sense the environment by receiving input from variety of sensors and can affect its surroundings by controlling lights, motors and other actuators.

The micro controller on the board is programmed  using the Arduino programming language (based on Wiring) and the Arduino development environment(based on Processing).

Designed to make the process of electronics in multidisciplinary projects more accessible.

Audrino micro controller is pre-programmed with boot loader that simplifies uploading of programs to the on-chip flash memory compared with other devices that typically need an external programmer.

Making Thing See
3D Vision with Kinect, Processing , Arduino and MakerBot
http://shop.oreilly.com/product/0636920020684.do
provides the technical and conceptual information  you need to build cool application with Microsoft's Kinect, the amazing motion-sensing device that enables computers to see.
How to create gestural interfaces for software , use motion capture for easy 3D character animation, 3D scanning for custom fabrication and many other applications.

1. Create Kinect applications on Mac OS X,Windows or Linux
2. Track people with pose detection and skeletonization  and use blob tracking to detect objects
3. Analyze and manipulate point clouds
4. Make models for design and fabrication, using 3D scanning technology
5. Make MakeBot, RepRap , or Shapeways to print 3D objects
6.Delve into motion tracking for animation and games
7. Build a simple robot arm that can imitate your arm movements.
8. Discover how skilled  artists have used Kinect to build fascinating projects



Programming Interactivity, 2nd Edition
A Designer's Guide to processing , Arduino and openFrameworks.

You will explore several themes in interactive art and design - including 3D graphics , sound, physical interaction, computer vision and geolocation - and learn the basic programming and electronics concepts that you need to implement them.
1.Learn interaction design from leading artists and designers.
2. Let users provide input throgh buttons,dials and other physical controls.
3. Produce graphics and animation, including 3D images with OpenGL
4. Use sounds to interact with users by providing feedback , input or an element they can control.
5. Work with motors , servos and appliances to provide physical feedback.
6. Turn a user's gesture and movements into meaningful inputs, using open CV

http://pragprog.com/book/mrhome/programming-your-home
This books suggests some projects to automate your home
1.Water Level notifier
2. Electric Guard Dog ( System barks when detects intruder using IR rays)
3. Tweeting Bird Feeder
4. Package Delivery Detector
5. Web Enabled Light switch
6. Curtain Automation
7.Android door lock
8. Giving your home a voice


Useful Tips from the book:
1. Start small
2. Search Youtube with keywords like audrino, home and automation
3. Ask an engineer. Adafruit,Sparkfun and Element14 have experienced engineers ready to help in forums.
4. Be safe. While most home automation projects don't call upon radical amounts of electrical current  to operate ,electricity can be very dangerous if not handled with respect and understanding the risks. When  in doubt call upon the expertise of an experienced electrician before manipulating anything having to do with home electric wiring.
 5. Have fun

Arduino At RadioShack

Arduino Boards
Arduino UNO connects to the computer with a standard USB cable and contains the software capabilities you need to program and use the board. Capabilities can be extended with a variety of custom shields that highlight specific features.
MicoController: ATmega320p Memory:32KB Digital I/O: 14 Analog Inputs:6

Arduino Mega has similar functionality as the UNO but with eight times the memory. It provides greater extensibility for more complex interactive projects.
MicroController:ATmega2580 Memory:256KB Digital I/O:54 Analog Inputs:16

Arduino ADK can be used to develop projects or accessories specifically for Android mobile phones and tablets using Google ADK2 . Implements a USB host interface that can be used to communicated with large number of USB devices.
Microcontroller:ATmega2560 Memory:256KB Digital IO:54 Analog Inputs:16

Here are some Shields that RadioShack is selling
1. Make MakerShield ProtoTyping Kit
2. Seeed Relay Shield;- smart module with four mechanical relays
3. Arduino SD shield :- for a standard SD card
4. Arduino Motor Shield :-control DC motors and read encoders with Arduino’s Motor Shield
5. Seeed  Bluetooth Shield
6. Arduino Ethernet Shield w/o PoE Module

here are some Sensors that RadioShack is selling
1. Parallax Ping Sensor: measures distance using sonar.
2. Parallax 27800 2-Axis Joystick – add analog input to your next project
3. Parallax PIR Sensor detects motion up to 20 ft.
4.  Parallax 4-6VDC Standard Servo:- the general purpose servo motor holds any position between 0-180 degree and is ideal for robotics.
5. Parallax 27801 5-Position Switch
6. Parallax 29133 –RT 3-Axis Compass Module
7. Parallax 27911-RT 3 Axis Gryoscope Module
8. Parallax 32440-RT XBee Wireless Pack
9. Parallax 28500 –RT PMB – 648 GPS SiRF Internal Antenna.
10. RadioShack Mermsic 2125 Dual-Axis Accelerometer

Useful Links
http://bildr.org/

Sunday, April 22, 2012

The Third Revolution

Read very interesting article in "Economist " Apr 21st - 27th 2012
  1.  Manufacturing is going digital.
  2. Now a product can be designed on a computer and “printed” on a 3D printer which creates a solid object by building up successive layers of materials.
  3. Clever software, novel materials, more dexterous robots, new processes (three dimensional printing) and a whole range of web-based services will enable it.
  4. Future jobs will be full of designers, engineers, IT specialists, logistics experts, marketing staff and other experts.
  5. Some products are so sophisticated that it helps to have the people who design them and people who make them in the same place.
  6. Manufacturing will return to rich countries.
  7. Workers will use computers instead of hammers.
  8. 3D printing or additive manufacturing is a process of making three dimensional solid objects from a digital file.
  9. Machines can swap their own tools, cut in multiple directions and “feel” if something is going wrong, together with robots equipped with vision and other sensing systems.
  10. Training will be easy. Computers can simulate production systems in a virtual environments, and products too
Additive Manufacturing(Solid Print)
  1.  It worked by using a beam of ultraviolet light to solidify a thin layer of liquid plastic, a bit like ink, and repeating the process by adding more liquid plastic.
  2. Started by making one-off prototypes
  3. More things are being printed as products as technology matured.
Applications:
  1. Lots of consumer goods, mechanical parts, shoes and architects model
  2. Ready-to-wear shoes and dresses from plastic and nylon materials.
  3. Dental crowns and shells for hearing aids  and Gear box for a racing car.
How 3D Printers work
  • 1. Layer by Layer
  • 2. Software takes a series of digital slices through a computer-aided design and sends descriptions of those slices to the 3D printer, which adds successive thin layers until a solid object emerges.
  • 3. Object uses the inket head to spray an ultra-thin layer of liquid plastic onto a build tray. The layer is cured by exposure to ultraviolet light. The build layer is lowered fractionally and next layer is build.
  • 4. Deposition Modelling : melting plastic in an extrusion head to deposit a thin  filament of  material  to build the layers.
  • 5. Powder : Other systems use powders print medium. The powder can be spread as a thin layer onto the build tray and solidified with a squirt of liquid binder.
  • 6. Powder can melted into the required pattern with a laser in a process called laser sintering .
  • 7. Another firm fuses the powder in its printer with an electron beam operating in a vacuum
  • 8. For complicated structures that contain void and overhangs, gels and other materials are added to provide support, or the space can be left filled with powder that has not been fused.
  •             This support material can be blown away or washed away later.
  • 9. The material that can be printed now range from numerous plastics to metals, ceramics and rubber-like substances.
  • 10. Some machines can combine materials, making an object rigid at one end and soft at the other.

Applications:
  • Simple living tissues such as skin, muscle and short stretches of blood vessels.
Future Applications 
  •  larger body parts like kidneys, livers and ever hearts

Killer App
  • Printing chocolate.

References:
  1. http://en.wikipedia.org/wiki/3D_printing
  2. "Economist " Apr 21st - 27th 2012


Saturday, March 24, 2012

Informatica useful links

Programming Collective Intelligence by Toby Segaran


Data Warehousing became  a buzzword a decade ago.
I picked up some material and started to read.
I was pleasantly surprised .
 Everything that was mentioned in the book , I have practiced before.
I were not aware of that it was data warehousing.
Collective Intelligence is not new something new.
Google and Netflix were not pioneers in this area in my opinion.
My Grocery Store, Electronics Store and Barber shop have been doing it for years.
Grocery Store does it by giving a card and providing discount and thus tracking your purchases.
Electronics store and  Barber Shop does it by recording my phone number.
Still I am enjoying reading this book and highly recommended brain exercise book for programmers.

Chapter1
Machine Learning is a sub field of AI concerned with algorithms that allow computer to learn

Chapter 2
Making Recommendations.
This chapter shows how to build a system for finding people with same taste and for making automatic recommendations based on things that other people like.
Two systems for calculating similarity scores: Euclidean distance and Pearson corelation.

Euclidean Distance Score
Pearson Correlation Score



Sunday, March 18, 2012

What is new in Visual Studio 11 Beta


1. Build Windows Metro style Apps
2. Visual Studio IDE
 -Backward Compatibility
 -Better code browsing options
 Windows Management
 -Access frequently use files more easily
 -Preview files in the Code Editor
        Search/Search/Search....

 JavaScript Code Editor
 -IntelliSense
 -parameter help
 -Signature in statement completion
 -Breakpoints
 -Script Loader Delay-loaded scripts are now loaded in the development environment, which allows IntelliSense to
  •   Provide information about the script objects.
  •  Brace Matching
  •  Go to Definition
  •  Drag-and-drop reference


HTML 5 Offline Capablities



HTML 5 Offline
For Web Application to work offline, authors can provide a manifest which lists the files that are needed  for the Web application to work offline and which causes the user's browser to keep a copy of the files for use offline.
http://www.w3.org/TR/html5/offline.html

How to create offline HTML5 Web
http://www.catswhocode.com/blog/how-to-create-offline-html5-web-apps-in-5-easy-steps

Windows 8


Rocky makes very interesting point.
Why touch being the important driver to either  sell new PCS or a new operating system.
Right now PC users are struck with Second Class Web Applications.
Apps are resurgency of the smart client and distributing computing.
http://www.lhotka.net/weblog/CommentView,guid,bd6898d1-cbc2-4f02-a0f3-3a97486d3168.aspx#commentstart



http://www.lhotka.net/weblog/CareersAtMagenic.aspx
Our industry is in the  middle of an exciting and trubulent time. The rise of numerous incompatible client devices and technologies, coupled with major changes in back-end server capabilities around public/private cloud computing , no SQL and big data make for a very unpredictable future.Such trubulence provides great opportunity for future growth.

Saturday, February 18, 2012

Making Your Application Tablet (IPad) friendly


We are working to make our application Tablet friendly.
We found the following issue

1. List Boxes look very ugly on IPAD. We may have redesign certain  portions of our application.
2. Download to Excel format is not working for lot of applications.
3. Browser Print functionality is not working.


Stay tuned for more information.


Saturday, January 07, 2012

The myth of Infinite Scalability



Udi Dahan has written a nice post about Scalability.


I agree with him that Infinite Scalability is a myth.

Scalability costs and actives users count is different and dynamic as compared to Total Users Count.

My thoughts are

1. Know You System

Know the bottlenecks and have solutions ready. If you system is not scaling well with increase of active users or requests/per user, you should be able to give solutions to management. I have seen how people’s career has suffered because they could not provide answers to management.

2. Measure, Measure and Measure

Know you system's vital statistics

3. Follow Good practices

Good Practices never hurt. If x number of industry experts are saying that Y is a good practice. Follow Y practice if one don’t time to evaluate it. Hardware Scalability generally costs money where System Refactoring /Re-writing requires more cost and money.