Vikas's Technical Blog
Covers Service Oriented Architecture(SOA),.NET, J2EE,TDD,XP,RUP,WATERFALL Methodology,Arduino,3D Printer,Cloud Computing,AJAX
Saturday, May 12, 2012
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
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
Labels:
Books Review
| Reactions: |
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/
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/
| Reactions: |
Sunday, April 22, 2012
The Third Revolution
Read very interesting article in "Economist " Apr 21st - 27th 2012
- Manufacturing is going digital.
- 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.
- Clever software, novel materials, more dexterous robots, new processes (three dimensional printing) and a whole range of web-based services will enable it.
- Future jobs will be full of designers, engineers, IT specialists, logistics experts, marketing staff and other experts.
- Some products are so sophisticated that it helps to have the people who design them and people who make them in the same place.
- Manufacturing will return to rich countries.
- Workers will use computers instead of hammers.
- 3D printing or additive manufacturing is a process of making three dimensional solid objects from a digital file.
- 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.
- Training will be easy. Computers can simulate production systems in a virtual environments, and products too
Additive Manufacturing(Solid Print)
- 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.
- Started by making one-off prototypes
- More things are being printed as products as technology matured.
Applications:
- Lots of consumer goods, mechanical parts, shoes and architects model
- Ready-to-wear shoes and dresses from plastic and nylon materials.
- 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:
- http://en.wikipedia.org/wiki/3D_printing
- "Economist " Apr 21st - 27th 2012
Labels:
General
| Reactions: |
Saturday, March 24, 2012
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
Labels:
Books Review
| Reactions: |
Sunday, March 18, 2012
What is new in Visual Studio 11 Beta
1. Build Windows Metro style Apps
2. Visual Studio IDE
-Backward Compatiblity
-Better code browsing options
Windows Management
-Access frequently use files more easily
-Preview files in the Code Editor
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 refernece
| Reactions: |
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
| Reactions: |
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.
| Reactions: |
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.
| Reactions: |
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.
Labels:
Architecture
| Reactions: |
Sunday, December 18, 2011
How do Manager and Programmer run ?
Programmer
runs for x minutes/hours
Manager
Sets a goal(Calories or Distance)
Calculates how to achieve goal in shortest time.
| Reactions: |
Thursday, November 24, 2011
How does BMW produce Ultimate Driving Machine?
According to Csaba Csere, a former editor of Car and Driver magazine
BMW’s goal is to make the Ultimate Driving Machine. If you work at BMW in any capacity and you’ve got a decision to make, you can sit there and say “ We’re the ultimate driving machine. Which one of these decisions is going to advance that objective”
Referenece:
http://www.msnbc.msn.com/id/43730198/ns/business-cnbc_tv/t/bmw-drives-engineering-perfection/
BMW’s goal is to make the Ultimate Driving Machine. If you work at BMW in any capacity and you’ve got a decision to make, you can sit there and say “ We’re the ultimate driving machine. Which one of these decisions is going to advance that objective”
Referenece:
http://www.msnbc.msn.com/id/43730198/ns/business-cnbc_tv/t/bmw-drives-engineering-perfection/
| Reactions: |
Monday, November 21, 2011
How to sell TOGAF to management?
How to sell TOGAF to management
1. Asset Management
2. Common Building Blocks
3. Easy Access to Information/Single Repository
4. Architecure Principles :-
get defined , evangelized and implemented.
5. Better Security Across Enterprise
6. We have a structure within which we can manage change
7. TOGAF solves the following problems
1. Asset Management
2. Common Building Blocks
3. Easy Access to Information/Single Repository
4. Architecure Principles :-
get defined , evangelized and implemented.
5. Better Security Across Enterprise
6. We have a structure within which we can manage change
7. TOGAF solves the following problems
- Wild growth from short term planning
- Perversions of standard
- Isolation of information in silos
- Disappointment of management& Cost
- Poor Management understanding of IT capabilities and exploitation
- Constant innovaton via new technologies.
| Reactions: |
Friday, November 18, 2011
Difference between Factory Pattern and Abstract Factory Pattern
Factory Pattern : Produces IProduct Implementation
Abstract Factory Pattern: A factory-factory produces IFactories, which in turn produces IProducts.
http://stackoverflow.com/questions/1001767/design-patterns-factory-vs-abstract-factory
| Reactions: |
Sunday, November 06, 2011
TOGAF: Archtiecture Principles
My Architecture Principles
1. Domain Layer should be independent and lightly coupled to UI and Data Layer
2. Application should be automated tests friendly.
3. Requirement based change
4. Easy Maintenance
5. Configurable
6. Control Diversity
http://pubs.opengroup.org/architecture/togaf8-doc/arch/chap29.html
Architecture principles are a subset of IT principles that relate to architecture work. They relflect a consensus across the enterprise, and embody the spirit and thinking of the enterprise architecture.
Architecture principles can be further divided into :
1. Principles that govern the architecture processes, affecting the development, maintenance and use of enterprise architecture.
2. Principles that govern the implementation of the architecture , establishing the first tenets and related guidance for designing and developing information systems.
Architecture principles are used to capture the fundamental truths about how the enterprise will use and deploy IT resources and assets.
Too many principles can reduce the flexibility of the architecture. Many organizations prefer define only high-level principles , and to limit the number to between 10 and 20.
Business Principles
- Primacy of Principles
- Maximize benefit to the Enterprise
- Information Management is Everybody's Business
- Business Continuity
- Common Use Applications
- Compliance with law
- IT Responsibility
- Protection of Intellectual Property
Data Principles
- Data is an Asset
- Data is shared
- Data is Accessible
- Data Trustee
- Common Vocabulary and Data Definitions
- Data Security
Application Principles
1. Technology Independence
2. Ease of Use
3. Requirement based change
4. Responsive Change Management
5. Control Technical Diversity
6. Interoperability
| Reactions: |
TOGAF
TOGAF is an architecture framework.
TOGAF 9 can be used for developing a broad range of different enterprise architectures.
The key to TOGAF is the method the TOGAF Architecture Development Method(ADM) - for developing an enterprise archtiecture that addresses business needs.
Architecture in the context of TOGAF
"The fundamental organization of a sytem, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution."
TOGAF embraces and extends this definition .In TOGAF , "architecture" has two meanings depending upon the context
1. A formal description of a system, or a detailed plan of the system at a component level to guide its implementation.
2. The structure of components , their inter-relationships , and the principles and guidelines governing their design and evolution over time.
TOGAF 9 can be used for developing a broad range of different enterprise architectures.
The key to TOGAF is the method the TOGAF Architecture Development Method(ADM) - for developing an enterprise archtiecture that addresses business needs.
Architecture in the context of TOGAF
"The fundamental organization of a sytem, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution."
TOGAF embraces and extends this definition .In TOGAF , "architecture" has two meanings depending upon the context
1. A formal description of a system, or a detailed plan of the system at a component level to guide its implementation.
2. The structure of components , their inter-relationships , and the principles and guidelines governing their design and evolution over time.
| Reactions: |
Saturday, October 01, 2011
Looking back at Agile Methodology
Went to an Agile Seminar and here are my thoughts
• This is little doubt that Agile Methodology has been accepted as a Software Methodology for Team of 1-10 programmers working together at a site.
• Software thinkers are still thinking who to make it work for distributed teams and very large teams(1000 + developers)
• Agile Methodology solved the waterfall’s lack of user feedback problem and RUP’s heavy documentation.
In the Agile Seminar, there was a very interesting exercise. Speaker wanted to demonstrate flaws of rigid process vs. flexible/lean process.
It didn’t go the speaker’s way. Deliverables of both processes were same. Result was a tie. What spoiled the exercise was the fact that customer gave very complex requirements.
| Reactions: |
Saturday, September 10, 2011
IOC and DI Containers Comparison
The following link gives very good comparison of different IOC and DI Containers overview
http://elegantcode.com/2009/01/07/ioc-libraries-compared/
http://elegantcode.com/2009/01/07/ioc-libraries-compared/
| Reactions: |
Saturday, August 27, 2011
Distributing the best people
I was reading an interesting article about an air war between two countries. There was analysis about the performance of whole air force of one country . Performance was lacking. Why did some squadrons with same aircraft do very well and some poorly?
That's because a fighting squardon is just about 16 pilots.In any group of 16 people, he said, you would find a few that would be totally fearless and competent, a few who would become fearless again in the company of these, and the rest who would then be simply positively overwhelmed by this peer pressure.
The Air force realized that its fighter squadrons were not properly balanced.Some had too many of his first category, and did brilliantly, and some had too few and did poorly.
The key to success lies in distributing the best people evenly amongst all your teams.
That's because a fighting squardon is just about 16 pilots.In any group of 16 people, he said, you would find a few that would be totally fearless and competent, a few who would become fearless again in the company of these, and the rest who would then be simply positively overwhelmed by this peer pressure.
The Air force realized that its fighter squadrons were not properly balanced.Some had too many of his first category, and did brilliantly, and some had too few and did poorly.
The key to success lies in distributing the best people evenly amongst all your teams.
| Reactions: |
Monday, August 08, 2011
Border Closing
http://www.usatoday.com/money/industries/retail/2011-07-20-Borders-Effect_n.html
As a person who preferred books as compared to pdfs or online tutorials, I really saddened by the Border Closing Event.
At the height of dot com craze, people used to speculate that there will no brick and mortar malls but only online malls.
That didn’t come true but Internet did kill technical magazines and now borders store.
May be it was for good.
May be it is for good for earth. Earth may be greener without border. No need to cut more trees for books.
IPads make PDF more fun to read. I am not buying books because I don’t have any shelf space left for new paper books. PDFs are cheaper than books. They will be cheaper for customers to buy and bring more royalty for authors.
What is next, public libraries with eReaders and no books.
As a person who preferred books as compared to pdfs or online tutorials, I really saddened by the Border Closing Event.
At the height of dot com craze, people used to speculate that there will no brick and mortar malls but only online malls.
That didn’t come true but Internet did kill technical magazines and now borders store.
May be it was for good.
May be it is for good for earth. Earth may be greener without border. No need to cut more trees for books.
IPads make PDF more fun to read. I am not buying books because I don’t have any shelf space left for new paper books. PDFs are cheaper than books. They will be cheaper for customers to buy and bring more royalty for authors.
What is next, public libraries with eReaders and no books.
| Reactions: |
Saturday, July 30, 2011
What a Software Professional should know?
I have been reading Robert C. Martin’s book “The Clean Coder”.
A must read book for every software professional.
In chapter 1, Bob mention the minimal list of things that every software professional should be conversant with:
1. Design patterns.
One should be able to describe all 24 patterns in the GOF book .
One should also have a working knowledge of the component principles.
2. Design
One should know the SOLID principles
3. Methods
One should understand XP, Scrum, Lean, Kanban, Waterfall ,Structured Analysis and Structured Design
4. Disciplines:
You should practice TDD, Object-Oriented design, Structured Programming, Continous Integration and Pair Programming
5. Artifacts:
You should know UML,DFDs ,Structured Charts, Pertri Nets, State Transition Diagrams and Tables, flow charts and decision tables.
A must read book for every software professional.
In chapter 1, Bob mention the minimal list of things that every software professional should be conversant with:
1. Design patterns.
One should be able to describe all 24 patterns in the GOF book .
One should also have a working knowledge of the component principles.
2. Design
One should know the SOLID principles
3. Methods
One should understand XP, Scrum, Lean, Kanban, Waterfall ,Structured Analysis and Structured Design
4. Disciplines:
You should practice TDD, Object-Oriented design, Structured Programming, Continous Integration and Pair Programming
5. Artifacts:
You should know UML,DFDs ,Structured Charts, Pertri Nets, State Transition Diagrams and Tables, flow charts and decision tables.
| Reactions: |
Sunday, July 10, 2011
One Solution vs Multiple Solutions
Is it a good idea to have one solution or multiple solutions?
"One Solution" Advantage
1. Easy to build
2. No need to switch between multiple solutions
3. No psychological barrier
4. Cool New Stuff get added to project
Exisitng Project may be web form based .New modules can be written in MVC.
"One Solution" Advantage
1. Easy to build
2. No need to switch between multiple solutions
3. No psychological barrier
4. Cool New Stuff get added to project
Exisitng Project may be web form based .New modules can be written in MVC.
Opportunity to upgrade the project to latest technology and framework.
"One Solution" Disadvantage
1. Too many people working on same solution.
This pain has been minimized by TFS branching and Merging. We can have multiple people working on branches. Application Architecture and Framework should dictate that there are boundaries and no cross over happens. Code Reviews can also help.
2. Security
Every module should has its own master page.
Entry Global routines know what is user's landing page and User authorization boundaries.
User should not be able to cross the boundaries.
More Work for QA.
3. Other group changes can jeopardize some other release.
Module should be written in a way if we need to pull it out of application and create a solution,
We should be able to achieve it with minimum pain and effort.
Conclusion:
We should follow middle path. We don't have to have one solution but at the same times we should not have too many solutions. Whenever a request comes for a new module, we should investigate that it belongs to which solution. Module should be loosely coupled to each other.
| Reactions: |
Monday, July 04, 2011
ASP.Net MVC Best Practices
ASP.Net MVC Best Practices
1. Create Extension Methods of UrlHelper to generate your url from Route.
2. Create Extension Method of UrlHelper to map your Javascript,Stylesheet and Image Folder
3. Abstract DI Container
4.Keep your controller free from HttpContext and its tail
5.Use UpdateModel Carefully
6. Avoid ViewData,user ViewData.Model(Say No to "Magic strings"
7. User PRG Pattern for Data Modification
8. Action Filters
Use ActionFitlers for "shared " data. Use Action filters to retrieve data that is shared among different views. Use Partial view to display them.
9. Write your own HTML . If there ia n if , write an HtmlHelper.
10 . Do not put javascript in you code
11. User JQuery and JQuery UI
12. Create new ActionResult if you need one.
13.
References:
1. http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx
2. http://stackoverflow.com/questions/709429/asp-net-mvc-best-practices-tips-and-tricks
1. Create Extension Methods of UrlHelper to generate your url from Route.
2. Create Extension Method of UrlHelper to map your Javascript,Stylesheet and Image Folder
3. Abstract DI Container
4.Keep your controller free from HttpContext and its tail
5.Use UpdateModel Carefully
6. Avoid ViewData,user ViewData.Model(Say No to "Magic strings"
7. User PRG Pattern for Data Modification
8. Action Filters
Use ActionFitlers for "shared " data. Use Action filters to retrieve data that is shared among different views. Use Partial view to display them.
9. Write your own HTML . If there ia n if , write an HtmlHelper.
10 . Do not put javascript in you code
11. User JQuery and JQuery UI
12. Create new ActionResult if you need one.
13.
References:
1. http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx
2. http://stackoverflow.com/questions/709429/asp-net-mvc-best-practices-tips-and-tricks
| Reactions: |
Sunday, June 26, 2011
How to become iphone developer in eight easy steps
http://www.guardian.co.uk/technology/gamesblog/2009/feb/10/gameculture-apple
Step 1: Buy Mac
Step 2: Download the SDK
Step3: Learn Objective C
Step 4: Start Writing Something
Step 5: Sign-up as official developer
Step 6: Prepare for last weeks of work
Step 7: Submit you app to Apple
Step 8: Adapt, market and survive
Step 1: Buy Mac
Step 2: Download the SDK
Step3: Learn Objective C
Step 4: Start Writing Something
Step 5: Sign-up as official developer
Step 6: Prepare for last weeks of work
Step 7: Submit you app to Apple
Step 8: Adapt, market and survive
| Reactions: |
Subscribe to:
Posts (Atom)
