When:
- your customer has organized a betting system on how long will your project be up running until the system it was supposed to substitute will be restored and
- the first hours are already taken... :)
When:
Posted by Mário Romano at Wednesday, October 31, 2007 0 comments
Labels: Fun, Project Management
... a Mac!
The fastest Windows Vista notebook PCWorld as tested this year is a Mac. Try that again: The fastest Windows Vista notebook PCWorld have tested this year--or for that matter, ever--is a Mac. Not a Dell, not a Toshiba, not even an Alienware.
Posted by Mário Romano at Wednesday, October 31, 2007 0 comments
Labels: Fun, Operating Systems
When working over some architectural decisions over a project, and when trying to simplify an approach, my customer gave me this valuable lesson:
Sometimes architects have the tendency to simplify to omission.
Posted by Mário Romano at Wednesday, October 31, 2007 0 comments
Labels: architecture, Education, Fun
in: MyTechnobabble
The Acropolis team just announced that the core Acropolis concepts will be rolled into future .NET Framework releases. While we're excited about this evolution of Acropolis technologies into the core platform over time, we're selfishly excited to have been chosen to pave the road from here to there for customers building Composite client applications.
Posted by Mário Romano at Monday, October 29, 2007 0 comments
Labels: architecture, Practices, Technology
This is my 100th post in October. My good friend André Cardoso has posted yesterday the following comment in anticipation for this moment:
October has been a productive month in post generation ;)
Almost 100 posts... 2 days to go, and 3 posts left.
Keep up posting (or jabbing, as Jeff Atwood puts it - http://www.codinghorror.com/blog/archives/000983.html)
My theory is that lead generation derives from Google rank and that the best way to increase Google rank is to be like a professional fighter: neither jabs nor haymakers are enough. You must be always jabbing and you must regularly throw haymakers. Blog continuously to keep your hit-rate and link-traffic high and write longer pieces, containing the high-value words associated with your niche, occasionally.
I don't care if you suck at writing. I don't care if nobody reads your blog. I don't care if you have nothing interesting to say. If you can demonstrate a willingness to write, and a desire to keep continually improving your writing, you will eventually be successful.
As near as I can tell, between RSS stats and log stats, around 100,000 people read this blog every day
Posted by Mário Romano at Monday, October 29, 2007 0 comments
This is the best of the Dilbert stripes I've read for sometime:
Posted by Mário Romano at Monday, October 29, 2007 0 comments
Labels: Fun
Heard it from Brad Abrams.
Here is a brief summary of what the reference implementation shows (shamelessly stolen from Brad who had shamelessly stolen from Blaine)
Take a look and see for your selves.
Posted by Mário Romano at Monday, October 29, 2007 0 comments
Labels: architecture, Practices
Here's Greenfield's early opinion about Leopard:
Tiger is now a Leopard and the spots have been upgraded
Posted by Mário Romano at Monday, October 29, 2007 0 comments
Labels: Operating Systems
Mozilla's response to Silverlight?
Prism is an application that lets users split web applications out of their browser and run them directly on their desktop.
… Prism isn’t a new platform, it’s simply the web platform integrated into the desktop experience. Web developers don’t have to target it separately, because any application that can run in a modern standards-compliant web browser can run in Prism. Prism is built on Firefox, so it supports rich internet technologies like HTML, JavaScript, CSS, and
Unlike Adobe AIR and Microsoft Silverlight, we’re not building a proprietary platform to replace the web. We think the web is a powerful and open platform for this sort of innovation, so our goal is to identify and facilitate the development of enhancements that bring the advantages of desktop apps to the web platform.in: infoq
And while Prism focuses on how web apps can integrate into the desktop experience, we’re also working to increase the capabilities of those apps by adding functionality to the Web itself, such as providing support for offline data storage and access to 3D graphics hardware.
Posted by Mário Romano at Monday, October 29, 2007 0 comments
Labels: architecture, Development
According to cnet:
The Eee PC is stonking value for money, but its small size and cramped keyboard make it occasionally difficult to use.
Posted by Mário Romano at Sunday, October 28, 2007 0 comments
Labels: Gadgets
Glenn Block has just posted a summary of ALT.NET wish list regarding P&P. Though not completely agreeing, here's ALT'NET list:
Do.
- Guidance on core concepts and principles like OOP, separation of concerns, layering, etc
- Guidance on good software engineering and design practices, code quality, TDD, DDD, BDD, code smells, CI
- Patterns / Anti-patterns - GOF / Fowler, etc (Don't make up new ones)
- Tutorials / examples
- Be Neutral / Pragmatic
- Trusted advisor on different tools, techniques and methods i.e. Stored Procs vs Dynamic SQL
- Existing OS solutions (NHibernate, Log4Net, etc)
- Be Critical including of community efforts
- Advocate community endeavors
- Engage with the OSS community
Don't
- Focus on toolkits and factories
- Become an evangelism org / marketing machine for the platform. (Though it's okay to become an evangelism org for patterns and good engineering practices.)
- Be Dogmatic (our way is the only way, or even the best way)
- Dumb down developers
Posted by Mário Romano at Sunday, October 28, 2007 2 comments
Labels: architecture, Practices
Ayende as posted the problem, but still hasn't the solution. This is a problem that seems to be affecting a lot of people (including me), and it was one of the problems discussed at Alt.Net.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Database, Development
Yet another .NET blogger and open source contributor sets sails to Redmond. Now was Rod Conery's time, the SubSonic guy, and the lucky team is yet again ScottGu's dream team.
I'm afraid this trend can turn against Microsoft in the long run. These people were in fact working for Microsoft's interests, just out of Microsoft's roll pay. They were helping creating great software over Microsoft technologies, and creating communities around it. And they were credible, not just because of their recognized competence, but also because they were independent. Hope they keep up with the pace they had.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Social
Every now and then, enterprises need to redefine their development process. The next time my company will decide to redefine our process, here are some links I feel we should read:
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Development, Practices, Project Management
in: infoq
1. 40MB of RAM to the virtual machine and ran the stripped down operating system with 10 active processes taking up only about 33MB of RAM.
2. The actual kernel is claimed to be about 4MB in size. Further reductions included for a minimal install:
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Operating Systems
in: bink.nu
Despite underwhelming consumers and being snubbed by enterprises, Windows Vista's numbers keep growing, with Microsoft Corp. saying Thursday that it has now shipped 88 million copies of the operating system, almost double the number of copies of XP in the same amount of time at its launch.
...
It does exclude the tens of millions of Windows corporate volume licenses. There, many enterprises continue to hold off on deploying Vista, acknowledged CFO Chris Liddell, though he expects them to start deploying it when Vista Service Pack 1's arrival in the first quarter of next year.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Operating Systems
in: bink.nu
Not quiet a trend, but somewhat in line with this other.Experts say that migrations from Unix to Linux have slowed down because all the low-hanging fruit has now been picked. Linux growth in the U.S. x86 server market has, over the past six quarters, started to falter and reverse its positive course relative to Windows Server and the market as a whole.
The annual rate at which Linux is growing in the x86 server space has fallen from around 53 percent in 2003, when Windows Server growth was in the mid-20 percent range, to a negative 4 percent growth in calendar year 2006, IDC Quarterly Server Tracker figures show.
Over the same time period, Windows has continued to report positive annual growth, outpacing the total growth rate in the x86 market by more than 4 percent in 2006, indicating that Linux has actually lost market share to Windows Server over this time.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Operating Systems
The 3rd session was presented by José António Silva. Though his focus was on composite applications, he ended up showing OBA, re enforcing Microsoft's message that desktop applications are still needed. He ended up with references to WCSF and SCSF software factories, Acropolis, Astoria and with a great link on the new syncronization features of Orcas: www.syncguru.com.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: architecture, Education
Jota has presented the second session, on Services Architecture. Better then my notes, here Jota's.
I've retained from the 1st part the SOA vision, as:
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: architecture, Education
This last Wednesday I went to Microsoft Architect Forum 2007, held at the Lisbon. Here are some of my notes over the 1st session:
Session: Software+Services
Beat Schwegler
1. Service Transformation trends
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: architecture, Education
Here's a great little library to write PDF files on C#: iTextSharp. iTextSharp is a port of java's iText.
With iTextSharp we can:
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Development, Tools
Here's a great example of grid computing. The implementation uses Alchemi, an open source grid computing framework that allows you to painlessly aggregate the computing power of intranet and Internet-connected machines into a virtual supercomputer (computational grid) and to develop applications to run on the grid.
This frameworks creates virtual computers from a grid of ordinary desktops, and hopefully will help soon me on a long awaiting project: an operations research highly intensive data project.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Language Trends
2 weeks later, here are my earnings: $0,63. Dear IRS, you guys will have to wait for over 7 years to get your hands on my taxes...
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Social
I've finally found the right remote power controller for the right price which really doesn't wastes power.
I've found it at LIDL. It is a Mandolyn 9952, a set of:
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
I haven't eared about this one for ages, and here it was on a DotNetRocks episode dedicated to F#:
What's the correct dictionary definition for recursion? See: recursion.
Posted by Mário Romano at Saturday, October 27, 2007 0 comments
Labels: Fun
And it's about time! Hopefully Joel will now have time to return to what it used to be prior to this crazy tour. JoelOnSoftware it's an institution to geeks like me, and has for the past months serving as no more than "Travel Channel".
Welcome back :)
Posted by Mário Romano at Friday, October 26, 2007 0 comments
Labels: Fun
Here are two cool article about evidence based scheduling:
Posted by Mário Romano at Friday, October 26, 2007 0 comments
Labels: Project Management
Oops. Boy, was I lucky. On the previous releases I've downloaded the VM, but I've been working on Orcas Beta2 on a clean W2K3 install.
Posted by Mário Romano at Friday, October 26, 2007 0 comments
Labels: Development
Some days ago I was earing Schwegler at a conference here in Lisbon talking about Software+Services. Let's start with Microsoft's definition of Software+Services:
Microsoft’s “Software+Services” vision combines the best of hosted and on-premise software to deliver compelling experiences for our customers. It’s about giving customers a choice and having integration across multiple devices and delivery methods to build flexible and optimized solutions for all customers. We call this approach ‘software + services.’
More powerful devices, expanding data storage capacity on devices and in massive data centers (“the cloud”), and the growing ubiquity of broadband networks have given rise to a new generation of software that resides on the Internet, is downloaded quickly when it’s needed, and is consumed directly within a Web browser.
Today, by combining elements of these Internet services with client and/or server software, we can deliver solutions that provide new capabilities and deliver new levels of utility, convenience, and flexibility. This “software plus services” approach offers an ideal balance between… the ubiquity and connectivity the Internet provides, and the rich interactivity and high performance provided by software that runs on a device with a powerful processor.
A good example is the Exchange experience, in which users can access email, contacts, and calendar on the PC through Outlook, in the browser through Outlook Web Access, on the phone through Outlook Mobile, and in the case of Exchange 2007, via voice through Outlook Voice Access, all of which are synchronized on the back end. And from a delivery perspective, Exchange can be deployed on-premise, hosted by a partner or hosted by Microsoft as a service.
Posted by Mário Romano at Friday, October 26, 2007 0 comments
Labels: architecture, Technology
Here is Spolsky's five-step guide to ensure software failure:
Posted by Mário Romano at Thursday, October 25, 2007 0 comments
Labels: Project Management
Brad Abrams states:
The best teams I have worked in and with are those that defy the traditional roles and responsibilities. Putting up artificial walls between extremely closely related disciplines can only be detrimental to getting great team work.
Posted by Mário Romano at Wednesday, October 24, 2007 0 comments
Labels: Project Management
Here's another chapter of the social networking/advertisement war:
Microsoft has won a high-profile technology industry battle with Google and Yahoo to invest in the social networking upstart Facebook.
...
The astronomical valuation for Facebook is evidence that Microsoft executives believed they could not afford to lose out on the deal. Google appears to be building a dominant position in the race to serve advertisements online. Fearing it might lose control over the next generation of computer users, Microsoft has been trying to match and in some cases block Google’s plans, even if that effort is costly.
“We are now stepping outside what is typically a business decision,” said Rob Enderle, the founder of the strategy concern Enderle Group. “This was almost personal. I wouldn’t want to be the executive that’s on the losing side at either firm.”
This reminds me of a car I bought some years ago. I put to car dealers fighting with each other. Needless to say, that was the better deal I've made, after a personal decision was made by one of the buyers. And no, it wasn't a $240 million deal...
Posted by Mário Romano at Wednesday, October 24, 2007 0 comments
Labels: Social, Technology
In "Holding a Program in Your Head", Paul Graham, co-founder of Viaweb and writer of "Beating the Averages", argues that "your code is your understanding of the problem you're exploring. So it's only when you have your code in your head that you really understand the problem."
Here's his list:
Posted by Mário Romano at Wednesday, October 24, 2007 0 comments
Labels: Language Trends, Practices
Google would like us to think nearly all of the software will soon be used online. Microsoft would like us to think desktop applications will still rule. As in many other issues, the truth will probably lie somewhere in between. One thing is for sure, Microsoft seems really threatened, not by the competition but with some of it's historical inability to understand the cloud. On the other side they do understand the enterprise world like no many, and most of the enterprises won't embrace online operations as easy as individuals.
Bottom line is: sorry Google, they just won't. And sorry, Microsoft, they'll definitely have to change.
Posted by Mário Romano at Wednesday, October 24, 2007 0 comments
Labels: Technology
Here's a cool alternative to TOAD and SQL Developer. It's source is open, and is incredible light and fast!
... SQLTools++, which is based on the original open source tool SQLTools (http://www.sqltools.net). SQLTools is a Windows frontend for Oracle databases and offers a quite powerful text editor and result set browser, along with numerous other useful tools, like schema/object browser and DDL extraction tools. You can find more information about SQLTools on the original home page. Although it is far from being as comprehensive as other tools available like TOra or TOAD, it has its unique features, and in addition to that it is lightweight (The installer is just about 1MB in size), fast and does not need an installation, so you can run it directly from any storage medium like an USB stick, which makes it a good choice as quick access tool if you come to a new place and need to quickly check database related issues. All you need is a valid installation of an Oracle client and your copy of SQLTools.
The version available on this site offers some additional functionality and enhancements which I found to be useful. Most of the features added/modified are about better handling of the tool and better support of SQL statement performance tuning. You'll get instant support for many features Oracle provides in that area with a single click (e.g. DBMS_XPLAN.DISPLAY_CURSOR output for 10g and later, and an emulation of that functionality for 9i is currently being worked on), which makes SQL tuning much easier.
Give it a try! Thanks for the tip, Marco :)
Posted by Mário Romano at Wednesday, October 24, 2007 0 comments
Here's another WideFinder Naive F# Implementation.
Posted by Mário Romano at Monday, October 22, 2007 0 comments
Labels: Language Trends
I was fooling around with Vista Speech, and this phrase got my attention: "Train your computer to better understand you". My first reaction was to roll on the floor laughing. But then I realized this may be a problem with our actual mindset: we train people to understand computers when we should be training computers to understand us.
Posted by Mário Romano at Monday, October 22, 2007 0 comments
Labels: architecture, Fun, Practices
I've reached half of the 'Foundations of C#' so I decided to drop some lines. In the last year I had read a lot of F# samples, and they tend to be as clean as they could be. I now have the clear understanding that people who designed F# (or the languages that influenced F#) designed it for usage in the "real world". Yes, F# definitely is not a purist Functional Programming language. It cames packed with some of the imperative constructs that we know so well, right next to the cool FP goodies.
My next chapters will be 8 and 9, User Interfaces and Data Access. Yeap, looks like I'm about to enter the real world now.
Posted by Mário Romano at Monday, October 22, 2007 0 comments
Labels: Language Trends
Relational databases have matured to such a level that doesn't leave much room for improvement. Here's one of the rare exceptions: hierarchyid Data Types.
Use hierarchyid (Transact-SQL) as a data type to create tables with a hierarchical structure, or to reference the hierarchical structure of data in another location. Use Hierarchical Methods (SQL Server) to query and perform work with hierarchical data by using Transact-SQL.
Hierarchical data is defined as a set of data items that are related to each other by hierarchical relationships. Hierarchical relationships are where one item of data is the parent of another item. Hierarchical data is common in databases. Examples include the following:
SELECT * FROM Employees WHERE EmployeeId.GetAncestor(1) = @value
Posted by Mário Romano at Sunday, October 21, 2007 1 comments
Labels: Database
... it wants to be a Vista/MacOSX. At least is what they're aiming with lots of eye candy. And now for another Vista/MacOSX look the same: these eye candy refuses to run on my old hardware... arghhhh, I give up, they'll end up all the same, and wining about each other... In that respect, I really feel I'm diferent: I just wine about everyone :)
Posted by Mário Romano at Saturday, October 20, 2007 0 comments
Labels: Operating Systems
Why in the hell software like Adobe Reader tries to impose google toolbar? Why in hell's name do I have to put up with google toolbar, an add on that serves better google's interests than my own?
The other day I've experienced even a worse experience: I've installed Flash9 on a fresh installation, and with no question asked, google toolbar was silently installed. If this wasn't enough, IE7 started complaining about the newly installed toolbar. And as I refused to trust the toolbar IE7 kept whining, making browsing experience quite frustrating.
Please stop this, Adobe and google.
Posted by Mário Romano at Saturday, October 20, 2007 0 comments
Labels: Social
Here are 23 more links from microsoft.apress:
Posted by Mário Romano at Saturday, October 20, 2007 0 comments
Labels: Language Trends
Here's an unexpected post from microsoft.apress:
This article describes some of the ways in which an OODB differs in principle and in practice from the more familiar relational databases, and identifies some of the products which are suitable for use with ASP.NET. One of the simplest OODBs to get started with is the open-source db4o, which I will use to demonstrate some of the benefits of this type of database.
Posted by Mário Romano at Saturday, October 20, 2007 0 comments
Labels: Database, Development
I'm now trying this online formatter. It as strong advantage over CopySourceAsHtml: it's lighter and more maintainable.
On the downside: the syntax highlighting is server sided, not attached to the IDE, meaning new keywords won't get highlighted.
Posted by Mário Romano at Saturday, October 20, 2007 0 comments
Labels: Development, Social
As I've mentioned earlier I loved the Don Box's generator approach for reading lines from file. So I set my self to do something of a plagiarism and decided to do the same for directory traversal.
After a first disappointment (DirectoryInfo.GetDirectories and Path.DirectoryInfo were implemented on the class library years ago, so there was no reason do it with FindFirst/FindNext as I wanted), I had to realign my goal: I then decided to do some querying over directory contents.
Here's my first approach:
var query =
from files in RecursiveGetFiles(new DirectoryInfo(@"c:\projects"))
group files by files.Extension into g
orderby g.Count() descending
select new { Extension = g.Key, Count = g.Count() };
foreach (var extension in query)
{
Console.WriteLine(
"{0}: {1}",
extension.Extension,
extension.Count
);
}
.cs: | 2591 |
.resx: | 991 |
.aspx: | 809 |
.ascx: | 570 |
.dll: | 365 |
.scc: | 189 |
.txt: | 119 |
.xml: | 111 |
public static IEnumerable<FileInfo> RecursiveGetFiles(DirectoryInfo directoryInfo)
{
foreach (DirectoryInfo subDirectoryInfo in RecursiveSubDirectories(directoryInfo))
{
foreach (FileInfo fileInfo in subDirectoryInfo.GetFiles())
{
yield return fileInfo;
}
}
}
static IEnumerable<DirectoryInfo> RecursiveSubDirectories(DirectoryInfo directoryInfo)
{
yield return directoryInfo;
foreach (DirectoryInfo directory in directoryInfo.GetDirectories())
{
foreach (DirectoryInfo subDirectory in RecursiveSubDirectories(directory))
{
yield return subDirectory;
}
}
}
Posted by Mário Romano at Saturday, October 20, 2007 2 comments
Labels: Language Trends
Here's and old post I keep visiting for reference.
Posted by Mário Romano at Saturday, October 20, 2007 0 comments
Labels: Language Trends
Here a nice litle article about the hardware architecture that supports slashdot.org.
Posted by Mário Romano at Friday, October 19, 2007 0 comments
Labels: architecture
Here a nice round-up of some key patterns & practices team links J.D. Meier figured he'd like to share with the rest of us - lets do some RSS reader updates.
Posted by Mário Romano at Friday, October 19, 2007 0 comments
Labels: Practices
Recursion is a great, but some times unnecessarily expensive. Take the case of Fibonacci: we've just computed the previous results for the series, why compute them again?
Here's a nice sample:
...we can Memoize fib so that if it calls fib again with the same argument then it will not recalculate but instead use the previous result. This will move our exponential function to a linear one at the cost of linear space to store the previous results (we could possibly use a weak reference hash map instead to solve problems with space if they existed). In fact, subsequent calls to fib with previously computed values will be evaluated in constant time.
Func
fib = null;
fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n;
fib = fib.Memoize();
and here is the magic:
public static Func Memoize(this Func f)
{
var map = new Dictionary();
return a =>
{
R value;
if (map.TryGetValue(a, out value))
return value;
value = f(a);
map.Add(a, value);
return value;
};
}
Posted by Mário Romano at Friday, October 19, 2007 0 comments
Labels: Language Trends
Clarius has updated their T4 template editor, and are now in Beta. It's a very useful editor for anyone doing large amounts of T4 template editing with good factoring of template code vs script and color coding of keywords.
The thing is... I still use CodeSmith! When Microsoft DSL Tooling was announced, I thought I would port most of my CodeSmith templates into T4, but that just didn't happen, strange as it may seem.
Read it here
Posted by Mário Romano at Friday, October 19, 2007 0 comments
Labels: Development
Here's a great post about anonymous recursion in C#. He shows us how to get to a clean:
Funcfib =
Y(f => n => n > 1 ? f(n - 1) + f(n - 2) : n);
Posted by Mário Romano at Friday, October 19, 2007 0 comments
Labels: Language Trends
On his first post Nuno Miranda, a good friend of mine, has chosen to reference Steven Feuerstein:
One of the most wonderful things about starting a new project is the fantasy that we can "do it right" this time...
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Fun, Technology
Here a nice post about the current trends. The author states:
For a decade or even more and even today the object oriented paradigm has ruled the software development world. In away, and as part of the end of the "one size fits all" paradigm. [...] We also see more pluralism for languages so we get more dynamic languages vs. static typed one and we find a place for functional languages and not just object oriented ones.
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Language Trends
Yeap, seems like my decision on learning F# won't be so R&D as I expected, after all:
"We will be partnering with Don Syme and others in Microsoft Research to fully integrate the F# language into Visual Studio and continue innovating and evolving F#. In my mind, F# is another first-class programming language on the CLR."
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Language Trends
Here it is, finally.
Funny how the Linux community is finally getting the hang of it - eye candy works!
Ok, if you go to System > Preferences > Appearance > Visual Effects and set to -Extra-, you'll get a lot of laughs on the room <update> - for the window moving, the tab switching looks just great</update>. But still on the right track. Unfortunately I couldn't get the desktop cube to do it's magic.
Ubuntu rocks on the LiveCD experience. Just about everything just works! Pretty cool! And without sacrificing my Vista installation. I'll keep this CD nearby, just in case.
[Update] Sorry, guys, I couldn't help finishing this posting from within Vista. Another cool feature, though not new to Ubuntu: we can read and write over our NTFS partitions. Cool.
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Operating Systems
Ok, not really what I wrote on the subject - just wanted to capture your attention. More of a list of what posters often forget on the first days:
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Social
I'd like to welcome Tiago to my blog roll. I have high hopes for his blog, as Tiago is a promising young developer with a capability I now lack: he just gets to develop all day long! As opposed to me, that just trash my time into endless meetings :)
Stay tune with him.
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Development, Social
Here are another great laws, referenced by Atwood.
Letts' Law: All programs evolve until they can send email.Zawinski's Law: Every program attempts to expand until it can read mail.
Furrygoat's Law: Every program attempts to expand until it can read RSS feeds.
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Fun, Technology
Ok, other than the fact that Windows Updates reports SP1 installation as pending, everything is working fine. I confirm having SP1 installed - winver reports "Version 6.0 (Build 6001, Service Pack 1, v.275)".
[update] After some half an hour or so, it changed the status from Pending to Successful. It look like SP1 was finishing some updates configuration on the background.
It's too late to look around for changes. Hopefully I'll get to drive test it tomorrow.
Posted by Mário Romano at Thursday, October 18, 2007 0 comments
Labels: Operating Systems
Yeap, those of you that still read this pathetic blog know of this pathological obsession of mine: I'm convinced that in the future we'll have too much people working in this industry doing too less to differentiate their work from one of our industry strongholds: automation.
As a result, I believe massive unemployment will hit our industry.
And yes, others have predicted the some in the past and failed. I won't. Why? Because I won't tell you when, just that it will happen :) Ok, I'm the Nostradamus of our industry, so what?
Here's another guy that suffers from the same paranoia:
Since early days of software development people struggled to build good systems. More and more people where thrown at the problem, making matters worse. But with the recent explosion of social web we've witnessed a new and interesting phenomenon: a handful of developers are now able to build systems that are used by millions of people. How can this be?
The secret is that as with any good endeavor it only takes a few good men (and/or women!). With a bit of discipline and a ton of passion, high quality engineers are able to put together systems of great complexity on their own.
Equipped with a modern programming language, great libraries, and agile methods, a couple of smart guys in the garage can get things done much better and faster than an army of mediocre developers.
Posted by Mário Romano at Wednesday, October 17, 2007 4 comments
Labels: Development, Social
Here's the hack, taken from bink.nu:
Downloading Windows Vista Service Pack 1 from Windows Updates:
- Download Windows Vista Service Pack and unpack it to your system.
- Run SP1Beta_Hack.cmd with administrator privileges and Windows Updates afterwards. It should show KB935509 which you should download and restart afterwards.
- Run Windows Updates again, it should display KB937287. Download and restart your PC afterwards.
- Run Windows Updates for a third time. Download the now appearing KB938371, restart your computer.
- Finally, visit Windows Updates again and you should see the Service Pack 1 Beta for Microsoft Windows Vista available for download.
Posted by Mário Romano at Wednesday, October 17, 2007 0 comments
Labels: Operating Systems
Well, you basically choose three ways:
1. Collect them according to what you designate as their needs
What? Are you crazy? This is your costumers business, not yours! Who the hell told you that you knew better than your costumer what are their business rules? Wake up, this is the way most failed projects took!
2. Collect them according to what your costumers designates as their needs
What's wrong with you? If your costumers knew what he wanted, why would they hire you as a consultant? Weenie! Get real! This is a great way to spend your costumers budget releasing low value.
3. Collect them according to what your costumers need
There, was it that hard? Your job is to dive into your costumers business, adding value to it. Your costumers know what's best for their business, but often they don't know how to express it, so one of your greatest responsibilities is to take it from them - notice how we use the term 'capture'? And they don't really have to know how to express it - that's not their business, that's yours.
You're the project's advocate (please don't confuse with the costumer's advocate). You're also some kind of psychoanalyst, in the sense you must help them extracting information they and only they hold deep down inside - and lookout, for them, this information they didn't give you is always obvious. You're the guardian of the project conceptual consistence. You're the one that will propose and negotiate changes in order to release more of the project's value. Your the one that has to guarantee it all sticks together.
Is this simple? Hell, no! But it's your job!
Do you need some hints? Sorry, no Silver Bullet here. Try avoiding the first 2, be sure to involve the key users, know as much of your costumers business and processes as you can, be sure to be as assertive as you can, embrace the problems as soon as they arise (don't hold them back from your costumers as you did as a kid), privilege proven practices, use good judgment, don't be afraid to backtrack when you're wrong, and above all, stop loosing your valuable time reading blogs like this one looking for the Holy Grail! The answer lyes between you and your costumers. Go find it!
Posted by Mário Romano at Tuesday, October 16, 2007 0 comments
Labels: Practices
F#. I had already chosen to learn a new FP language. My choice was F# because:
Posted by Mário Romano at Tuesday, October 16, 2007 0 comments
Labels: Language Trends
Posted by Mário Romano at Monday, October 15, 2007 0 comments
Labels: architecture, Development, Practices
Here's a great little sample of data access techniques from Osherove. Maximum score for being so concise, and still covering CastleProject ActiveRecord, NHibernate and Typed Dataset implementations.
Posted by Mário Romano at Monday, October 15, 2007 0 comments
Labels: Development, Practices
What is Behaviour Driven Development, according to nosewheelie?
Behaviour Driven Development (BDD) is a development practice arising out of agile development methodologies, first developed by Dan North in response to the problems experienced using and teaching TDD [10]. At its core, BDD is a refinement to TDD that shifts the emphasis from testing to specification and is in effect the best practices of what developers practising TDD have been doing all along. While this doesn’t seem like a major change, the shift in emphasis from testing to specification brings a number of important flow on effects that positively impact the development of both test and production code.The following sections describe these effects.
Posted by Mário Romano at Monday, October 15, 2007 0 comments
Labels: Development, Practices
In some browsers, the <pre> tag doesn't wrap. Well, that's probably by design, but nevertheless a nuisance. My code samples were just being cropped.
I've finally found a solution here, who had found it here. I just add the following CSS to my template:
.csharpcode, .csharpcode pre {
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #f4f4f4;
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
Posted by Mário Romano at Sunday, October 14, 2007 0 comments
Labels: Development
Eoin Woods, from the IASA Fellows has just posted his top ten software architecture mistakes - mistakes that are too often learned the hard way. Unfortunately no great news here - we presently know what's wrong, just didn't quite got the solution to the known pitfalls:
Posted by Mário Romano at Sunday, October 14, 2007 0 comments
Labels: architecture
It seems like Google keeps kicking Microsoft's ass on search. Man, now even the Chinese kick Microsoft's ass!
No wonder. When live.com keeps having trouble to find relevant sites like devcatharsis.blogspot.com...
Posted by Mário Romano at Saturday, October 13, 2007 0 comments
Labels: Technology
Here's a great post I've missed - I've recovered it thanks to reading paddy's blog. Here's a nice sample:
The complete post reading is a must. As a statically typed kind of guy, you could expect me to trash some of these dynamic languages. But I won't. I feel some of this languages constructs are very important for us - most of us feel our limitations on the languages we use, some regarding the lack of expressiveness, other regarging abstraction limitations, even lack of brevity.Let's put both these claims to the test with a few examples. If you're unfamiliar with Ruby, see how natural the following code seems to you:
[1,3,5,7].inject(0) { |x,y| x + y }Can you tell what it does? It's an expression whose value is the sum of all the elements in the array [1,3,5,7], which is 16. Let's try this exercise the other way around. If you had not seen the above, what syntax would you think Ruby uses to sum the elements of an array? Here's a guess:
for every x in [1,3,5,7] { total += x }Why did I guess this particular construct and not any of the infinite number of alternatives? Because this is what might seem "natural" to someone with some programming background.
Posted by Mário Romano at Saturday, October 13, 2007 0 comments
Labels: Language Trends
Here's a nice idea from paddy:
Your editors for creating new posts and especially for creating comments just are not good enough! As a programmer I have to use external programs to highlight the syntax of code for a new post which is bad, but the list of usable tags in a comment field is so small that I am reduced to writing a program to parse indented code and spit out something that will look merely OK. Contrast Blogger editing with this which is available on Wikipedia. Blogger, catch up! - Paddy.
Posted by Mário Romano at Saturday, October 13, 2007 0 comments
Labels: Technology
"In the desert of Devh Qatar"
"Spawn the child of Iugle the great"
"And on the third day, a hit was produced"
"And from that hit..."
... 15 cents were produced :S
Ok, I'm sorry about the biblical framing, but how else could I present such a poor result? By this rate, it will take me 5 1/2 years just to get my first check!
Oh, well, still an achievement for DevCatharsis. For now, probably the best choice for me may be to mantain my day job :)
Posted by Mário Romano at Saturday, October 13, 2007 0 comments
Labels: Social
Isn't it strange the world we live in? A world where IIS is just about to beat Apache, and Firefox is challenging Internet Explorer. Wouldn't the other way around be what we expected some years ago?
One thing is for sure: today was the turning point for my pathetic little blog. Why? Because their are more Firefox than IE users. Curious how we geeks tend to prefer Firefox, right? And no, that's not my case: I'm using Firefox, IE and Opera :)
Posted by Mário Romano at Friday, October 12, 2007 0 comments
Labels: Social, Technology
When reading some of the Wide Finder implementations, I come across with Don Box's approach. Besides the Wide Finder problem (be sure to look for this and other languages implementations), he gave us a nice clean generator based ReadLinesFromFile implementation. Here it is:
// LINQ-compatible streaming I/O helper
public static IEnumerable<string> ReadLinesFromFile(string filename){
using (StreamReader reader = new StreamReader(filename)){
while (true){
string s = reader.ReadLine();if (s == null)
break;
yield return s;
}}
}
Posted by Mário Romano at Friday, October 12, 2007 3 comments
Labels: Language Trends
I've been using Vista since the early betas. I use Vista on my desktop at work - this is the one I use the most. But I also use XP on VMs and at home. And of course, Windows 2003 Server. And though I'm not on the list of the disappointed ones - I'm quite happy with it, it just stroke me that on my daily XP and Windows 2003 usage that I don't miss that much most of Vista's features. And that is troubling...
Posted by Mário Romano at Thursday, October 11, 2007 0 comments
Labels: Operating Systems
Here's another great article about the FAA AAS mess up. Here's something new to me on this project:
The overambitious agenda was aggravated by excessive faith in new technologies. Among other things, AAS was supposed to be a showcase for Unix-based distributed computing and for development in Ada, a programming language created by the Air Force that became the state-sponsored religion in object-oriented technology, itself a relatively young methodology for writing code in self-contained, reusable chunks. IBM tried to use Ada to enforce discipline on the project by making developers outline a design in high-level code, then fill in the blanks. But this was no match for an environment of where the FAA kept changing its requirements.
Posted by Mário Romano at Thursday, October 11, 2007 0 comments
Labels: Project Management
The next time you step into a problematic project, take a peek at this most wanted list. Boy, are these project managers in trouble:
System Function . Responsible Organization | Years of Work (outcome) | Approx. Cost M=Million, B=Billion |
Vehicle Registration, Drivers license . Calif. DMV | 1987-1994 (scrapped) | $44M |
Automated reservations, ticketing, flight scheduling, fuel delivery, kitchens and general administration . United Air Lines | Late 1960s.Earl (scrapped) | $50M |
State wide Automated Child Support System (SACSS) . California | 1991-1997 (scrapped) | $110M |
Hotel reservations and flights . Hilton, Marriott, Budget, American Airlines | 1988-1992 (scrapped) | $125M |
Advanced Logistics System . Air Force | 1968-1975 (scrapped) | $250M |
Taurus Share trading system . British Stock Exchange | 1990-1993 (scrapped) | $100 - $600M |
IRS Tax Systems Modernization Projects | 1989-1997 (scrapped) | $4B |
FAA Advanced Automation System | 1982-1994 (scrapped) | $3 - $6B |
London Ambulance Service Computer Aided Dispatch System | 1991-1992 (scrapped) | $2.5M, 20 lives! |
Posted by Mário Romano at Thursday, October 11, 2007 0 comments
Labels: Project Management