Archive for 'Tools'

Great tools for diagramming and presentations.

I use these tools for making my presentations and for some initial planning. These are great handy tools.

http://www.Prezi.com for making presentations. Free for 100 MB.

http://www.websequencediagrams.com for generating sequence diagrams.

http://creately.com/ for online diagrams and collaboration.

http://www.gliffy.com/ for flow charts.

Getting started with IPhone Development

I will be doing a lot of learning around IPhone and its App development in the coming days. Hopefully my blog posts will help somebody like me who is looking to get started with IPhone development. I will be covering more topics in the coming days as I get myself up-to-date with this technology. To get started, I am creating a list of resources that I can access during my learning phase. Having a finite list that won’t grow over time is important to quickly get up-to-speed on some new platform and then use your experience to write good software. So, in this spirit, as a good first step, I created the following list of resources.

Firstly the book which everyone considers a bible for IPhone development is Programming in Objective-C 2.0, by Stephen G. Kochan. It is currently in its second edition.

Programming in Objective-C 2.0, Second Edition - Graphically Rich Book

Next are some favorite sites, tips that I collected to get myself started on IPhone development.

IPhone Development: 12 Tips To Get You Started

CS193P - Cocoa Programming | Announcements(Stanford Course)

iCodeBlog

Cocoa Is My Girlfriend

AppsAmuck IPhone Development Tutorials and Examples

Cocoa with Love

http://www.iphonesdkarticles.com/

CocoaLab

Hopefully, all these tutorials will help me build my first IPhone App.

So, my next steps are as follows:

  • Setting up a development environment.
  • Become a registered IPhone developer.
  • Create a list of best practices for IPhone app development.
  • Study architectures of existing apps to gain better understanding.

My Gravatar from Expression Design

Not sure why I spent an hour or so trying to build my gravatar using Expression Design, but I did. I am very happy with the end result. Working with Expression Design gave me a good hang of things, specially the flow of the brush stroke, the dash attribute and many more.

Here is the image (size to fit my blog)

 

TreeHouse

Here is the Avatar version -

TreeHouse

 

I have started liking Expression Design, seems very simple to use.

ASP.NET MVC Round up

ASP.NET MVC enables developers to easily build web applications using a model-view-controller pattern.  It enables full control over HTML markup and URL structure, and facilitates unit testing and a test driven development workflow. It is free and fully supported by Microsoft.  Below are some links that I feel provide a great roundup for tracking ASP.NET MVC.

Rob Connery is building a storefront using ASP.NET MVC. He has over 26 webcasts and blog posts, documenting the building of an e-commerce storefront using ASP.NET MVC. He uses Domain-Driven-Design and other design patterns to build his storefront. I recommend his entire series for anyone starting out on ASP.NET MVC.

Scott Guthrie on ASP.NET MVC. I don’t think ScottGu needs any introduction.

Phil Haack is the Project Manager on the ASP.NET MVC project. He gave a great presentation at MIX’09 called Microsoft ASP.NET Model View Controller (MVC): Ninja on Fire Black Belt Tips. He followed it up with a blog article on his site where he uses JQuery Grid with ASP.NET MVC.

Scott Hanselman gave a great presentation at MIX’09 demonstrating his nerd-dinner application built on ASP.NET MVC.

Stephen Walther has a series dedicated to ASP.NET MVC. He provides some great tips, sample code and much more on his blog.

Related Links

Silverlight: 4 ways to dominate the RIA world

Almost every conference or meeting that I attend these days has people talking about Microsoft’s Silverlight and Adobe’s Flash. Both technologies are great and have their strengths and weaknesses. Having worked with both Flex/Flash platform and the Silverlight/JavaScript/C#,  I personally like the Silverlight runtime and the great development tools that come with it. There are several blogs that draw out comparisons between the two, but I would not attempt to do that in this article. Instead, I will outline some key points that can help Silverlight beat its competition in the coming years.

Performance: This will be the single most important metric and Silverlight should get this right soon. Currently there are several tests available (bubblemark, guimark), that showcase differences in performance between Silverlight and other RIA platforms. Regardless of who fares better in these tests, Silverlight should rapidly evolve and come up with the best performance stats on both Windows and MAC.

Mobility: This will be the ground zero for RIA technologies. I do not foresee myself using a computer or a laptop in the future, instead, I am hoping that we will be using extremely savvy ultra-thin mobile devices that can be used to surf the web, listen to music, etc., Silverlight should focus on building a great story around various mobile platforms.

Silverlight Promise: Microsoft should come up with a ‘Silverlight promise’ akin to the Ubuntu promise, stating that it will always remain a cross-browser, cross-platform browser plug-in. There is a general sense in the MAC community that Microsoft may pull the plug on Silverlight support for MAC OS in the future. It is already doing this by making all its tools available on MAC platform. Having this kind of promise will help them win over their hearts and minds forever.

Reach: Flash Player has a reach of more than 80% with the general population. In spite of a similar market share of Windows and IE,  Silverlight is struggling to find a large user base. Of course Flash had the advantage of the video that made all of us install it on our machines, it is time for Silverlight to come up with a strategy for achieving a greater market share. It should partner up with Mozilla, Ubuntu, and everyone else who can help it reach that level.

I can go on with several more points, but that these are the most essential for guaranteeing Silverlight’s success.

Rules Engines

Rules Engine can be defined as a framework that is used to manage and automate business rules. It is very useful to have such a framework in place specially when these business rules need to be modified frequently. Often, we as software architects need to design our applications to handle such frequent change in business rules. There are several rules engines available in the market. Some of the rules engines  available are;

.Net

  • Biztalk Server
  • ILog Rules for .Net

Java

  • Jess
  • Jboss Rules
  • ILog JRules

Ruby

  • Ruleby
  • Ruby Rools

Most of these engines, or frameworks use Dr. Charles Forgy’s Rete Algorithm. Rete is Latin for Net or network. It is a pattern matching algorithm comprising of rule compilation and rule execution. Before adopting this in your enterprise, every Architect must understand this algorithm to know the various architectural implications that it can have on the overall system like performance, scalability, etc., Also, just because you implement a rules engine, it does not mean that you can put all your business requirements and rules inside it, as some of the business rules cannot be expressed. Most often, these business rules cannot be expressed by the business users, and have to be coded by programmers.