Archive for category Uncategorized

Continuous Delivery

What is Continuous Delivery? For me so far it is:

From the blog post mentioned earlier:

… if your codebase uses the big ball of mud pattern

Quite popular pattern, I would say…

Leave a Comment

MIX11 day two, Windows Phone 7 announcements

I’ve bee watching Channel 9 with WP7 announcements and there are very interesting things that are coming to the platform, both developer and end-user oriented. In no particular order, with my comments:

  • Jump list (on letters using LongListSelector) and app search directly in application list. It’s a welcome change. When number of installed apps is past of 30-40, it’s very hard to find quickly the right app. I’ve tried to imagine a solution for this problem and came to idea that MS will let user’s create “folder” tiles to group apps, similarly to iOS. How will work solution from MS we’ll see when Mango will be released.
  • Marketplace improvements and better search. Another much welcomed change. Whenever I had to find something in Marketplace I would rather fire up Zune if it’s available. Same, Games Hub is nice addition.
  • Third party apps integrated in search.
  • Improved hardware interoperability. Camera, gyro, compass. I’m cool for this stuff.
  • Improved live tiles. You can “pin” part of your apps to a tile. Extremely powerful feature, if done right (by developer). Then you have animations and status updates on a tile, directly from the app and not a remote service.
  • MULTITASKING. I’ve been waiting for it. “Only back” navigation isn’t the greatest experience when you’re trying to do few things at the same time. App switching speed is very impressive. I’ve seen demos of Blackberry’s PlayBook based on QNX and running few resource heavy games at once and I’ve beed astounded by how system manages that. I’m glad to see that WP7 offers similar experience.
  • Sockets & low level network API. Skype is coming. Hope to see a decent IM app supporting ICQ & GTalk soon. And a VoIP/Softphone client too…
  • SQL CE database. Good to have, may be useful for data intensive apps & offline capabilities.
  • IE9 & HTML5.

So, Microsoft took a slow start strategy with Windows Phone 7. Got it out robust but low on features if compared with iOS & Android. Made first update (the NoDo) to make small improvements and polish the update process itself. And Mango will be coming this year to put it on par with competitors. When you add to the game the power of Microsoft’s marketing machine, strong partner relationships and Nokia deal, then forecasts about WP7 getting over iPhone by 2015 sound very realistic.

1 Comment

‘Simplicity vs. Choice’ by Joel Spolsky

Finished watching recording of his talk at “Business of Software 2009” conference.

 

Very entertaining and got me thinking…

Simplicity has it’s place. But when users are demanding more (advanced features) you have to offer it.

… Keeping complexity under control and hiding it after an elegant facade  – that is a true art of software development. And don’t forget user’s requirements…

Leave a Comment

Explaining Castle (note to myself)

Before even trying to explain to somebody what Castle Windsor container does be sure that other side understands the Dependency Injection principle – why it is important and what you’re achieving by using it.

It’s important

And after explaining DI, if you have some time, pass quickly trough SOLID

Leave a Comment

Fragment of the day

In technology, once you have bad programmers, you’re doomed. I can’t think of an instance where a company has sunk into technical mediocrity and recovered. Good programmers want to work with other good programmers. So once the quality of programmers at your company starts to drop, you enter a death spiral from which there is no recovery.

By Paul Graham, What Happened to Yahoo.

Leave a Comment

Tomorrow will be better…

I know, it’s late, but this…

FatalExecutionEngineError was detected
Message: The runtime has encountered a fatal error. The address of the error was at 0xf8b96934, on thread 0x147c. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.

Is it the way how CLR is saying “time to go home”?

Leave a Comment

Interesting pattern to decouple application parts and for integrating with other apps

Udi Dahan has written about an interesting way to evolve loosely-coupled application. It’s a very interesting trick and we’re already using it in our applications. And we’re using it for a very similar scenario: allowing to application modules and infrastructure to step in and say what they have about configuration and bootstrapping.

For example, some modules can modify configuration of NHibernate’s SessionFactory. We have next interface:

public interface IConfigurationContributor
{
    void Process(string name, Configuration config);
}

And whoever wants to intervene in configuration of any SessionFactory is implementing it. When factory is build container is pulling all implementors of IConfigurationContributor and “runs” over all of them.

As a result – clean design and loosely coupled application parts…

Leave a Comment

“Complexity is ok, complicated is bad”

Watched presentation of Dan Norman at “Business of Software 2009” conference. Really enjoyed the talk.

From my understanding, it’s about keeping in mind human experience when working on software products and never stop thinking about your customers/users as a real people: they make mistakes, have emotions and take decisions based on previous real world experience…

Leave a Comment

User experience and hardware updates

Had to install from zero a Dell notebook recently. Yes, my new development rig… Apart of Windows installation experience (very simplistic in essence & straightforward) had to install latest drivers for all notebook’s hardware. Typically, process looked like this:

  • go to Dell’s site
  • look up the latest driver for device you want
  • download it
  • run it – it’s a “.exe” file.
  • done!

And today I want to update device drivers for my older netbook: Asus 1000H. I wanted to start with updating the BIOS.

  • Got to Asus support site,
  • found the latest BIOS version
  • downloaded it
  • it’s a “.rom” file.
  • full stop!

Guess then, which portable device I’ll buy next? Definitely, not an Asus.

Got in mind the “Don’t make me think” by Steven Krug…

PS. It’s always small touches and details that makes the experience polarized: love/hate is one detail away…

Leave a Comment

Got new hardware – part 1

I have new monitor: Dell UltraSharp 2209WA.

What I like:

  • Slick design. Breathes style and functionality.
  • Panel: IPS. Crisp visual elements. Wonderful colors.
  • Functionality: adjustable height, portrait mode, USB hubs.
  • Brightness is set to 12% and it’s well enough.

Working on wide angles and big resolution will need a bit of accommodation and changing some habits.

It looks nice, image quality is top. I think I’ll be loving it…

Leave a Comment

Follow

Get every new post delivered to your Inbox.