Agile Development, Architecture, .NET and The Art of Listening  RSS 2.0

Navigation
 Sunday, October 12, 2008
I stumble upon this post the other day.
This led me to wonderful online tool http://www.websequencediagrams.com/ .
The SD/MSC Generator is an easy alternative to using mouse-centric tools like Microsoft Visio.
It has nice Domain Specific Language and API for creating quick sequence diagrams.

I would prefer this approach for creating any UML diagram anytime over any mouse-centric diagramming tool. Any UML diagram drawn will be rarely revisited later and adjusted/updated to the reality of the live code base. Usually when some process is better can be presented visually you want to have it done as quickly as possible while the idea is still fresh in you head. With traditional tools you would probably spend 70-85% of your time resizing horizontal and vertical lines, boxes, searching for the right shape and stencils, trying to remember to save the document in the correct format and with all this “noise” you loose concentration and spend 3-4 hours on simple diagram that would take 30 minutes to one hours with the tool like SD/MSC Generator. It is so much easier to learn Domain Specific Language for this tool than count pixels on the Visio grid.

And here is the best part of tool like this: you can store text/instruction for your diagram as regular text file in your favorite version control system rather then binary file.

Disclaimer: I am in no way affiliated with this product.

I just found another tool or technique that makes more sense, to me, and makes software project more Agile and less bureaucratic.

Sunday, October 12, 2008 6:22:00 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Agile | Cool | Tools | Useful stuff
//SINGLETON - C#

using NUnit.Framework;

[TestFixture()]
public class SingletonTest
{
    [Test()]
    public void ObjectsAreTheSameTest()
    {
        DeploymentInfo firstDeployment = Singleton<DeploymentInfo>.UniqueInstance;
        DeploymentInfo secondDeployment = Singleton<DeploymentInfo>.UniqueInstance;
        Assert.AreSame(firstDeployment, secondDeployment);
    }
}

//Singleton Pattern 
//Generic Version

public class Singleton<T> where T : class, new()
{
    private Singleton()
    {
    }

    private class SingletonCreator
    {
        static SingletonCreator()
        {
        }
        // Private object instantiated with private constructor
        static internal readonly T instance = new T();
    }

    public static T UniqueInstance {
        get { return SingletonCreator.instance; }
    }
}


'SINGLETON - VB.NET

Imports NUnit.Framework

<TestFixture()> _
Public Class SingletonTest
    <Test()> _
    Public Sub ObjectsAreTheSameTest()
        Dim firstDeployment As DeploymentInfo = Singleton(Of DeploymentInfo).UniqueInstance
        Dim secondDeployment As DeploymentInfo = Singleton(Of DeploymentInfo).UniqueInstance
        Assert.AreSame(firstDeployment, secondDeployment)
    End Sub
End Class

'Singleton Pattern 
'Generic Version

Public Class Singleton(Of T As {Class, New})
    Private Sub New()
    End Sub

    Private Class SingletonCreator
        Shared Sub New()
        End Sub
        ' Private object instantiated with private constructor
        Friend Shared ReadOnly instance As New T()
    End Class

    Public Shared ReadOnly Property UniqueInstance() As T
        Get
            Return SingletonCreator.instance
        End Get
    End Property
End Class

Sunday, October 12, 2008 5:40:08 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Patterns & Practices | Useful stuff
 Sunday, September 21, 2008
CSS Round Corners
http://www.spiffybox.com/
http://www.spiffycorners.com/
http://blog.yosle.com/2007/09/20/css-round-corners/
http://www.smileycat.com/miaow/archives/000044.php

Sunday, September 21, 2008 4:58:07 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
CSS | Helped with work | Useful stuff
Sunday, September 21, 2008 4:48:45 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
ASP.NET | Useful stuff
Rick Strahl posted his session slides and samples from his ASP.NET Connections. Really good presentations.
http://west-wind.com/weblog/posts/336745.aspx

Sunday, September 21, 2008 4:45:30 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Agile | AJAX | ASP.NET | JavaScript | LINQ | Useful stuff | WCF | Web Services
 Saturday, April 26, 2008
Beth Massi posted nice presentation on Ling to XML on Infoq.com.
http://www.infoq.com/presentations/massi-linq-xml

She also rights regularily on her blog "Sharring the goodness tha is VB" - http://blogs.msdn.com/bethmassi/

VB.NET 9.0 has nice syntactic sugar tha C# 3.0 don't have for working with XML and Linq.
Saturday, April 26, 2008 12:27:46 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Helped with work | LINQ | People | Useful stuff | XML
 Monday, April 21, 2008
I am getting more and more comfortable with different javascript frameworks.
The simple reason is that frameworks got much better.
I used javascript here and there before but tried to stay away from internals and poluting my memory with different behaviors of JavaScript in different browsers.

My first encounter with AJAX was via using MagicAjax.net at the begining of 2005. Later when Atlas/ASP.NET AJAX got better I start using it for my projects.
I have now enough understanding to see that ASP.NET AJAX can be somewhat havy and from now on I am trying to use more browser friendlier and much lighter options utilizing following javascript libraries and CSS resources:
  • jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. jQuery is designed to change the way that you write JavaScript.
  • Ext JS 2.0 Ext JS is a cross-browser JavaScript library for building rich internet applications.
  • Dynamic Drive's new CSS library! Here you'll find original, practical CSS codes and examples such as CSS menus to give your site a visual boast.
Combine this with the good server side scripting technology like ASP.NET, PHP, Ruby on Rails and others and you may get very close to perfect harmony and nice warm Zen like feeling about design and performance of your web application. ;-)

Monday, April 21, 2008 10:43:42 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Agile | AJAX | Cool | CSS | Helped with work | JavaScript | Performance Tuning | Useful stuff
This sounds like a simple question. I will say like many other developers/architects/consultants - "It depends..."

Bottom line AJAX is bad for SEO!
For publicly facing company websites, were SEO important, stick with the server side scripting such as ASP.NET, PHP, Ruby on Rails and others.
I am not mentioning static HTML pages here since medium and big size companies most likely will have data driven web site.

If you are building Line of Service business application AJAX will only make your application better.
Do not think twice learn it well and use it.

If you absolutely have to use AJAX follow "Unobtrusive JavaScript" pattern.
AJAX is great tool when used for proper application types.

Here is my prediction -> 3 years from now Search engines will learn to understand and properly index and rank RIA/AJAX/FLASH/Silverlight/Flex/Put your faviorite client side technology here. Until then ...

AJAX and SEO: How to have an SEO Friendly AJAX website using jquery
http://www.davidpirek.com/blog.aspx?n=AJAX-and-SEO:-How-to-have-an-SEO-Friendly-AJAX-website-using-jquery

http://www.seomoz.org/crawl-test

12 More SEO Tips for 2007 http://www.seochat.com/c/a/Search-Engine-Optimization-Help/12-More-SEO-Tips-for-2007/

SEO Myths  http://www.seochat.com/c/a/Search-Engine-Optimization-Help/SEO-Myths/3/
SEO for AJAX http://www.johnon.com/270/seo-for-ajax.html
AJAX, Web 2.0 and SEO http://www.hybrid6.com/webgeek/2007/01/ajax-web-20-and-seo.php
Web 2.0 Technologies and Search Visibility http://searchenginewatch.com/showPage.html?page=3624222
Unobtrusive JavaScript http://en.wikipedia.org/wiki/Unobtrusive_JavaScript
CSS, AJAX, Web 2.0 & Search Engines http://www.seroundtable.com/archives/006889.html
Search engine optimization http://en.wikipedia.org/wiki/Search_engine_optimization
Monday, April 21, 2008 9:55:59 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Agile | AJAX | Architecture | Performance Tuning | SEO | Useful stuff
Link to Everything: A List of LINQ Providers
http://blogs.msdn.com/charlie/archive/2008/02/28/link-to-everything-a-list-of-linq-providers.aspx

LINQPad lets you interactively query SQL databases in a modern query language: LINQ.  Kiss goodbye to SQL Management Studio!
http://www.linqpad.net/

Visual LINQ Query Builder http://code.msdn.microsoft.com/vlinq/
Monday, April 21, 2008 9:40:12 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Cool | Helped with work | LINQ | Useful stuff
Monday, April 21, 2008 9:36:01 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Helped with work | Useful stuff
Monday, April 21, 2008 9:27:46 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Agile | Cool | Helped with work | Useful stuff
http://www.danga.com/memcached/

Have not use it yet but heard a lot of good things about it.

Monday, April 21, 2008 9:21:38 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Performance Tuning | Tools | Useful stuff
http://www.dynamicdrive.com/

Most used CSS tricks -> http://stylizedweb.com/2008/03/12/most-used-css-tricks/

The 960 Grid System is an effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels.
http://960.gs/

CSS Sprites: Image Slicing’s Kiss of Death  http://www.alistapart.com/articles/sprites

Can you take a simple list and use different Cascading Style Sheets to create radically different list options? The Listamatic shows the power of CSS when applied to one simple list.  http://css.maxdesign.com.au/listamatic/index.htm
http://css.maxdesign.com.au/

CSS Control Adapter Toolkit for ASP.NET 2.0
http://weblogs.asp.net/scottgu/archive/2006/05/02/CSS-Control-Adapter-Toolkit-for-ASP.NET-2.0-.aspx
http://www.asp.net/cssadapters/

ASP.NET 2.0 CSS Friendly Control Adapters: The White Paper
http://www.asp.net/CSSAdapters/WhitePaper.aspx

Monday, April 21, 2008 9:18:47 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
ASP.NET | Cool | CSS | Helped with work | Useful stuff
Monday, April 21, 2008 9:14:32 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Helped with work | IE | Tools | Useful stuff
Monday, April 21, 2008 9:02:10 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Performance Tuning | Tools | Useful stuff
Monday, April 21, 2008 9:00:14 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Agile | IoC/DI | Useful stuff
 Saturday, March 22, 2008
Dingo is a pluggable Schema Compiler for .NET and will generate C# code. The goal is to provide a simple way to generate Domain Objects. .NET XSD currently only generates Data Objects. Dingo can delegate code generation with high granularity.
http://sourceforge.net/projects/dingo/
Saturday, March 22, 2008 11:54:37 AM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Tools | Useful stuff | Web Services | XML
 Sunday, March 02, 2008
“Silk” is a smooth, free icon set, containing over 700  16-by-16 pixel icons in strokably-soft PNG format. Containing a large variety of icons, you're sure to find something that tickles your fancy. And all for a low low price of $0.00. You can't say fairer than that.

http://www.famfamfam.com/lab/icons/silk/

Sunday, March 02, 2008 9:51:00 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Useful stuff
Sunday, March 02, 2008 9:45:46 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
People | Useful stuff
http://testdrive.barnyardbbs.com/ASP.Net-Content-Blog-Gallery-Open-Source
  • The Content Control (client-editable regions in a web page)
  • The Blog Control (a fully validating and CSS based blogging engine, implemented as a control)
  • The Photo Gallery Control (a fully validating and CSS based photo gallery, implemented as a control)
Sunday, March 02, 2008 9:41:17 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
ASP.NET | Controls | Useful stuff
 Monday, February 18, 2008
Monday, February 18, 2008 9:48:14 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | ASP.NET | Helped with work | Useful stuff
Monday, February 18, 2008 9:44:19 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Open Source | Tools | Useful stuff

Every company needs them. Every company wants them. Every company want to spend money on custom Content Management System that they can call their own. -->


Next time you try to reinvent CMS stop and first take a look at existing CMS systems that very liberally licensed. If you cannot use them at least take a look at their architecture. It will give you a good starting point.
I was just concentrating on the CMS that based on ASP.NET and had a good web presence and documentation.
----->
After some review of architectures Cuyahoga is leading this list for me. N2 is very close behind the Cuyahoga as of March 02, 2008.
When new frameworks come in to play I will review them and reassess.
Monday, February 18, 2008 8:58:45 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | ASP.NET | Cool | Open Source | Useful stuff
 Saturday, February 02, 2008

I had to type few paragraphs in Cyrillic the other day and I realized that it is not easy for me anymore.

10 years ago I used to type about 60 words per minute in Russian with my eyes closed. I definitely lost the speed even though I remember were the Cyrillic fonts located on a keyboard. Well, on a plus side I did not loose ability to think in Russian, and in addition now I can think in English. I was thinking to order Cyrillic keyboard for one of my computers at home and realized that it probably will not make situation better. What did saved me is wonderful "AUTOMATIC CYRILLIC CONVERTER" http://newyork.mashke.org/Conv/ that I found. It is easy for me to use since I was typing letters to my family using "transliteration" anyway. I know how much pain it can be for someone who primarily read and converse in Russian to read transliteration.

Transliteration:

Avtomaticheskij perevodchik kirilicy

Ya ponyal, paru dnej nazad kogda mne ponadobilos' napisat' paru slov na russkom, chto eto ne tak legko kak bylo ran'she. 10 let nazad ya svobodno mog pechatat' okolo 60 slov v minutu. Ya opredelenno ne smogu vostnovit' etu sposobnost' bez ochen' dlitelnoj trenirovki na kotoruju u menya vremya konechno net. S polozhitelnoj storony, konechno zhe, ya teper' spokojno mogu myslit' kak na russkom tak i na anglijskom. Po nachalu ya podumyval prosto kupit' russkuyu klaviaturu, no bystro soobrazil chto eto skoree vsego ne izmenit situaciju. Pobrodiv nemnogo po internetu ya dostatochno bystro nashel programmu kotoraya smozhet reshit' problemu o kotoroj ya ran'she dazhe i ne zadumyvalsja. Ya prosto byl uveren chto eto kak vozhdenie velosipeda – odnazhdy nauchivshis' uzhe ne kogda ne zabudesh' kak. Kak vremja pokazalo ya byl ne prav. Mozg vybrasyvaet informaciju kotoroja dolga ne byla vospol'zovana. Prosto kashmar kakoj-to!
"AUTOMATIC CYRILLIC CONVERTER" http://newyork.mashke.org/Conv/
S pomoschju etoj programmy ya mogu pechatat' vse s takoj zhe skorost'ju na translite i potom odnim mahom perevernut' eto v normalnye russkie bukvy. Ya znaju po sebe kak eto mozhet byt' bol'no chitat' transliteration kogda v obydennoj zhizni govorish' na russkom i chitaesh tol'ko kirilicu.

And now converted using mentioned software:

Автоматический переводчик кирилицы

Я понял, пару дней назад когда мне понадобилось написать пару слов на русском, что это не так легко как было раньше. 10 лет назад я свободно мог печатать около 60 слов в минуту. Я определенно не смогу востновить ету способность без очень длителной тренировки на которую у меня время конечно нет. С положителной стороны, конечно же, я теперь спокойно могу мыслить как на русском так и на английском. По началу я подумывал просто купить русскую клавиатуру, но быстро сообразил что это скорее всего не изменит ситуацию. Побродив немного по интернету я достаточно быстро нашел программу которая сможет решить проблему о которой я раньше даже и не задумывался. Я просто был уверен что это как вождение велосипеда - однажды научившись уже не когда не забудешь как. Как время показало я был не прав. Мозг выбрасывает информацию котороя долга не была воспользована. Просто кашмар какой-то!
"AUTOMATIC CYRILLIC CONVERTER" http://newyork.mashke.org/Conv/
С помощю этой программы я могу печатать все с такой же скоростью на транслите и потом одним махом перевернуть это в нормалные русские буквы. Я знаю по себе как это может быть больно читать транслитератион когда в обыденной жизни говоришь на русском и читаеш только кирилицу.
Saturday, February 02, 2008 4:59:30 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Useful stuff
 Monday, January 28, 2008
free, original DHTML & Javascripts to enhance your web site...
http://dynamicdrive.com/

"Ext is a client-side, JavaScript framework for building web applications. In early 2006, Jack Slocum began working on a set of extension utilities for the Yahoo! User Interface (YUI) library. These extensions were quickly organized into an independent library of code and distributed under the name "yui-ext." In the fall of 2006, Jack released version .33 of yui-ext, which turned out to be the final version of the code under that name (and under the open source BSD license). By the end of the year, the library had gained so much in popularity that the name was changed simply to Ext, a reflection of its maturity and independence as a layout:'fit',framework. A company was formed in early 2007, and Ext is now dual-licensed under the LGPL and a commercial license. The library officially hit version 1.0 on April 1, 2007"
http://extjs.com/

The Json.NET library makes working with JSON formatted data in .NET simple.
Quickly read and write JSON using the JsonReader and JsonWriter or serialize your .NET objects with a single method call using the JsonSerializer
http://www.codeplex.com/Json

Monday, January 28, 2008 10:56:25 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Useful stuff | AJAX
The Institute for Information Technology (IIT) is one of the National Research Council's (NRC) 20 research institutes and national programs.
NRC-IIT conducts scientific research, develops technology, creates knowledge and supports innovation.
http://iit-iti.nrc-cnrc.gc.ca/iit-publications-iti

Monday, January 28, 2008 10:53:39 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Book | Useful stuff
 Saturday, January 26, 2008
What an excellent interview. If you have chance listen to Kent speak rather then just reading the transcript of interview. The passion when he speaks about "programming" is amazing and impossible to show in transcript.

"...people are now asking the question: "How am I going to do agile development?" and agile development isn't a thing you do, it's an attitude, it's a set of personal values about responding to the real world, being open to the information that is there and being willing to do something about it.

That is agility. Yes, there is a lot of practices that come out of that but to me that is where it starts, it's this attitude. If somebody understood a bunch of practices and tried to do them, you could do agile development without being agile and it's a disaster because you're acting out of harmony with what you really believe when you do that..." - Kent Beck

http://www.infoq.com/interviews/beck-implementation-patterns#
Saturday, January 26, 2008 1:24:39 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Agile | Cool | Patterns & Practices | Useful stuff
Saturday, January 26, 2008 10:14:55 AM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | SQL Server | Tools | Useful stuff
 Wednesday, January 23, 2008
Amazon EC2 Gains Favor with JEE and Groovy Developers
http://www.infoq.com/news/2008/01/ec2-jee-groovy

Wednesday, January 23, 2008 9:20:52 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Cool | Useful stuff
Wednesday, January 23, 2008 9:18:45 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | SOA | Useful stuff | Web Services | XML | WCF
Sandcastle January 2008 Release on CodePlex - Generate MSDN Style Documentation for .NET and ASP.NET Applications
http://davidhayden.com/blog/dave/archive/2008/01/19/SandcastleJanuary2008ReleaseCodePlex.aspx
http://www.codeplex.com/Sandcastle

Wednesday, January 23, 2008 9:15:33 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Tools | Useful stuff
Up and Running with SQLite on .NET in 3 Minutes
http://www.infoq.com/news/2008/01/sqlite-in-three-minutes

Wednesday, January 23, 2008 9:12:56 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Database design | Useful stuff
Wednesday, January 23, 2008 9:11:44 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
Agile | Architecture | Book | Patterns & Practices | Useful stuff
 Sunday, January 20, 2008
"MindTouch Dream is a .NET REST framework for developing lightweight, highly decoupled web-services.  It runs on Microsoft .NET 2.0 and Novell Mono 1.2.2."
http://wiki.opengarden.org/Dream
Sunday, January 20, 2008 2:53:35 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Architecture | Open Source | Tools | Useful stuff | Web Services
"Spring.NET is an open source application framework that makes building enterprise .NET applications easier. Providing components based on proven design patterns that can be integrated into all tiers of your application architecture,Spring helps increase development productivity and improve application quality and performance..."
http://www.springframework.net
Sunday, January 20, 2008 2:35:31 PM (Central America Standard Time, UTC-06:00)  #    Comments [0] -
.NET | Agile |