Thursday 13 December 2007
Extensibility, extensibility and once again extensibility
Friday 30 November 2007
ASPNIX thanks for bringing my web site down
Wednesday 28 November 2007
LINQ and its diverse incarnations
- SyncLinq - it returns collections that implement
INotifyCollectionChanged
which lets you track changes - PLinq - it lets you specify that a given LINQ statement should be executed concurrently and it's up to the runtime to decide how many CPUs will be used
- DryadLinq - the same as PLinq, just replace CPU with PC, basically it lets you specify that your query should be executed on many machines
Tuesday 20 November 2007
I can use Microsoft Surface but I can not nest directories as deep as I want
Resharper - click on the picture to see the details:
MsBuild - click on the picture to see the details:
Monday 12 November 2007
Irish Java Technology Conference launch from .NET engineer perspective
- Java 6 is not implemented on Leopard
- mobile phone specs on the vendors web sites don't list Java as a feature, something like Java ready sticker
- lack of tools
- diversity of frameworks and their life-span uncertainty
- growing complexity of the language itself
- dynamic languages that from their perspective are taking over Java current and future believers
- etc.
I might be wrong because I don't follow the Java world on daily basis but my overall impression was that both audience and guests were not really happy what they came up with. But there is a good chance that they weren't actually upset but simply tired :) because of the fact that the discussion finished around 10 pm. I hope that a few pints after the launch let them recharge the batteries because the conference itself looks interesting.
Two talks of Joel Spolsky in Dublin
FogBugz is a great piece of software that provides many desired by every software house functionalities like bug tracking, project tracking, Wiki, discussion groups, evidence-based scheduling and even a small help desk system. All these features are seamlessly integrated together in a way that the user is not aware when he/she moves from one part of the system to the other. Every activity that requires user attention is as simple as possible and what is very important as natural as possible. It's enough to say that whenever you need to specify an end date you can simply type word "week" and the system will calculate the date based on the current date. Adding new tasks to your to-do list is simpler then firing notepad (actually I do this every morning to keep my 5 most important task always in front of me). When you start working on a task you just hit start button and when you are finished you hit stop. The system calculates everything for you taking into account lunch break, scheduled meetings, your working hours, etc. Those are small things but they show how the whole application has been build. Basically, FogBugz tries to be as transparent as possible to let you focus on your real tasks.
The next thing that impressed me a lot was the evidence-based scheduling. If you work with FogBugz you will never get just the end date of your project. Instead, you will get a set of dates and probability assigned to every of them. Taking into account how many IT projects are completed on time and on budget then this must be a better approach than what we have now. Needles to say that it does make sense especially when you take into account Quantum Physics.
The second presentation was part of the IJTC launch and Joe was talking about a topic that is as incomprehensible to software developers as the fact that they should not spend half of their life in front of a computer :). He explained how Companies take advantage of misattribution to sell us more of their products. His example was based on comparison of iPhone and a phone X of company Y. It's X and Y because I don't remember their names which is the best evidence that misattribution works :). Basically iPhone has fewer features, it's not extensible for the time being, it doesn't have a replaceable battery, it's 4 times more expensive and the features that are present in both phones are better implemented in the phone X. Why Apple has sold millions of iPhones and the company Y can only dream of something like that? iPhone looks way better and it's much more user friendly. People then attach the UI experience to the rest of it and that's how iPhone as the whole seems to be perfect in their minds. That's what Joel calls misattribution. Although I suppose that the marketing success of iPhone is a little bit more complicated beast I still think that his point is valid and it was certainly refreshing to me.
Monday 29 October 2007
What's new in Orcas release of WCF
Wednesday 24 October 2007
O2 broadband - pros and cons
The first test was running for 24 hours in my house which is located in Dublin 14. As you can see in most cases the response time was below 1 second though there ware a few periods when the response time exceeded 10, 15 or even 20 seconds. Fortunately, as I said there ware only a few of them and they lasted for around a minute.
Click on the picture to see the details.
Next I checked how the response time is dependent on the location in Dublin. I got on the Aircoach in Sandyford and went with my laptop to the Dublin Airport. The exact route can be found here. During the trip I applied the same procedure as the one described before. The results are again decent but they could be better.
Click on the picture to see the details.
In general I would recommend O2 broadband to people who:
- need to be able to connect to the Internet in nearly any spot in Ireland. If 3G is not available it falls back to GPRS.
- don't need great responsiveness at all times
- don't download/upload huge amount of data
- don't need to share their broadband and if they do they can dedicate a PC or laptop for that purpose
- as myself on the one hand don't appreciate how Eircom acts and try to avoid it but on the other hand need to have access to the Internet that works most of the time.
Thursday 11 October 2007
Bunch of Scotts talking about the new Microsoft MVC framework
Friday 5 October 2007
Microsoft .NET framework goes open source - kind of :)
Sunday 30 September 2007
A great .NET architect - Udi Dahan - is waiting for our invitation
Friday 21 September 2007
Short explanation why VS 2008 is going to be of much better quality then VS 2005
You can't get rid of memory leaks
Sunday 16 September 2007
Voice of the Silverlight team in Dublin
Wednesday 5 September 2007
LondonTube.CompareTo(DublinBuses&Luas)
Windows XP - no memory and no CPU required :)
Friday 24 August 2007
Security B&B way :)
The women:
"(...)Please give your cc number and expiry date if you wish to secure the booking. Cash is paid on morning of departure."
Me:"Is there any website that I can use to book the room? Sending CC number in an email is not secure. Emails are not properly secured and encrypted"
The women:"People usually send 2 emails with half the number on each"
Just brilliant :)Monday 20 August 2007
From forestry to IT - channel 9 show
The next thing that absorbed my attention was his list of features that a good team should be characterized by:
- trust
- diversity
- no single man show
- shared responsibility
- passion
Saturday 28 July 2007
80 characters long line is gone
I remember that not so long ago everyone was saying that a line of code should not be longer then 80 characters. The problem with this approach is that it leads you to cryptic method/class/variable names because of the 80 characters hard limit. I could justify that rule back in the epoch of 15 inch CRT monitors because there are not too many things more annoying then constant scrolling from right to left and left to right to be able to read a piece of code. But even nowadays there are people who would stick with that rule which doesn't make sense for me because it's just a waste of space of your 17/19/20 or 24 inch LCD monitor. 24 inch is a really great one and 2 of them are just brilliant :).
Friday 27 July 2007
Joel Spolsky will come to Dublin
Great news. Joel Spolsky will (more then likely) come to Dublin to promote FogBugz. I don't use FogBugz personally but I've been following Joel's blog for more then one year and I can always learn something from him. It's not about the technology itself. It's rather about how the technology is related to our real life and how we can take advantage of it :).
Sunday 22 July 2007
Friday 20 July 2007
Dynamic nature of C# I bet you don't know :)
The bottom line is that I learn every day and .NET doesn't stop surprising me which is fun :).
EDIT: I've modified the image because it looked horrible.
using System; using System.Collections.Generic; using System.Text; using System.Collections; class Program { static void Main(string[] args) { FakeEnumerableClass enumerable = new FakeEnumerableClass(); foreach (object o in enumerable) { //works perfectly fine :) } } } class FakeEnumerableClass { public FakeEnumerator GetEnumerator() { return new FakeEnumerator(); } } public class FakeEnumerator { public bool MoveNext() { return false; } public object Current { get { return null; } } } class RealEnumberableClass : IEnumerable { public IEnumerator GetEnumerator() { throw new Exception("The method or operation is not implemented."); } }
Tuesday 17 July 2007
DTrace - an interesting tracing solution
- zero overhead when it's turned off
- C based query language that allows you to query available probes
- it allows you to analyze the whole system at very low(kernel level operations) and/or high level (number of garbage collections)
- it gathers probes only when it's safe for the system
- it's built-in into Solaris 10 and will be part of the next operating system from Apple called Leopard
Sunday 8 July 2007
Model View Controller ?? Model View Presenter
Great book: C# via CLR
- I like the way Jeffery explains problems.He is strict and precise whenever it's needed but no more.
- As far as I know he is not a Microsoft employee which lets him express criticism of everything that deserves it.
- It reveals lots of things that you will never be aware of unless you start thinking in an illogical way. Unfortunately CLR and/or C# not always behave in a predictable way.
- The books touches nearly all the .NET internals that you can come across during your everyday job as long as you don't work on compilers and runtimes :).
Thursday 5 July 2007
You always struggle with formatting strings?
Monday 2 July 2007
Rough but enough explanation of WS-* standards
Tuesday 26 June 2007
What kind of software development have you experienced?
Silverlight is getting smaller and smaller...
Wednesday 20 June 2007
Friday 1 June 2007
Irish Microsoft Technology Conference - go there to see people
Saturday 26 May 2007
How to pollute C#
Sunday 20 May 2007
Saturday 19 May 2007
Working long hours
I know people that work long hours for months and they still claim they are productive. Maybe there is something wrong with me but I do believe that everyone needs to find time to recharge its batteries. And it doesn't matter whether you like/hate/love your job.
Wednesday 16 May 2007
64 bits doesn't come for free
Sunday 13 May 2007
SQL Server and lock escalation
A few weeks ago Kevin Kline gave a talk in Dublin about SQL Server performance and how to make the most of it. The talk was very interesting because Kevin touched a few times on SQL Server internals. The most surprising one was related to how SQL Server escalates locks. Kevin mentioned that if SQL Server has acquired around 4000 locks within a table then it escalates them into a table level lock. What is even more more surprising is the fact that this value is hardcoded. I've tried a few time to prevent SQL Server from escalating locks and I've always failed. Now I know why :)
Tuesday 1 May 2007
My .NET goes to other platforms prediction was right
I was right :). I've just seen a channel 9 video with Scott Guthrie talking about how Microsoft ported nearly the whole .NET to Mac OS X and made it possible to host it inside IE, Firefox and Safari. It's just awesome. At last I will be able to write everywhere using my favourite language which of course is C#. A few snippets just in case you are to lazy to watch it:
The ported .NET framework has but is not limited to following features:
- CLR runtime which means that VB.NET guys are not out of the game ;)
- Garbage Collector
- Threading support
- Network stack support
- LINQ
- A little bit trimmed Base Class Library, for example COM interop is gone which makes perfect sense
- The same format of binaries as in full .NET framework
- The same namespaces as in full .NET framwork
- Cross platform process debugging
- Based on .NET 3.5
Scott leads a great team of engineers at Microsoft that seems (thank God) to pay no attention to their Marketing department. All I can say is keep doing this !!!!
Monday 23 April 2007
Microsoft is going to port .NET to other platforms?
Microsoft is going to announce something very interesting at Mix07. Well at least half of the .NET world has been talking about that for last 2 months. Today in the morning I listened to the Scott Hanselman's podcast and taking into account what I've heard I bet that the announcment will be related to the Silverlight (AKA WPF\E) which is Microsoft framework for building rich Internet applications. It will change the way we perceive Microsoft. What do I mean? I think they may have decided to port some pieces of .NET to other platforms to enable developers to write C# code instead of JavaScript code in XAML based web applications. Maybe that's my dream only, well we will see.
Monday 16 April 2007
You are not an ecosystem your are only a part of it
It looks like Microsoft has finally understood that they are only a part of the .NET ecosystem. They used to think that every single .NET piece must come from them which is not obtainable and doesn't bring any value. But recently I've seen a few blog posts (for example Scott Guthrie) and a few podcasts (for example Daniel Simmons) where Microsoft employees freely mentioned OpenSource projects and how they fit into what Microsoft is trying to achieve. At last.
Sunday 1 April 2007
As a performance geek you can't miss this WCF performance comparison
Saturday 24 March 2007
We won another programming competition - it's getting boring ;)
Sunday 11 March 2007
Automatic properties? No, thanks
Scott described a few new features of C# 3.0 a few new features of C# 3.0 on his blog. I'm happy that Microsoft tries
to improve C# all the time. But C# architects needs to be careful as much as possible in order not to overload the language and keep it as clear as possible. The syntax of Automatic properties is very similar to that we use nowadays to declare abstract properties. And this is confusing. I don't see any reason that justifies that move. Since VS.NET 2005 we don't have to create properties on our own. Instead we can just right click and choose Refactor->Encapsulate field. Needles to say that ReSharper supports that as well. Then what's the problem? Please don't change C# towards VB.NET and be as explicit as possible.
Monday 26 February 2007
Performance Architect Rico Mariani on channel9
The interview is great because it shows how to approach performance problems and how to talk about them to other people.
Below my favorite snippet from the interview.
"If you aren't measuring you aren't engineering"
Sunday 25 February 2007
Blog Tag - 5 Things You Don't Know About Me
- I have no iPod because if I have let’s say 2 devices/toys then I immediately loose one of them. I suppose iPhone can solve my problem.
- I used to professionally practice swimming. When I was a child I qualified to the final of Polish National Swimming Championships.
- I started programming when I was 15 because swimming took over my whole free time before. Some people say that it was late but I disagree. Not quantity but quality matters :)
- I think that the best way of travelling is to stay in a target place for at least 1 year.
- I love Guinness and I hate Whisky.