Monday, December 15, 2008

Moving Day

After taking a long time to procrastinate, I can finally declare my new blog location:

The location of my Hebrew (mostly less-technical) blog is now:

Readers of my RSS feeds are already subscribed to the new domain.

And if you wish to subscribe to both my English and Hebrew feeds combined, you can use a joined feed (courtesy of Yahoo Pipes)

Thursday, September 4, 2008

Chrome repents, Google turns to the dark side

After all the bombardment of the new Google Chrome's EULA, Google has changed it:

You retain copyright and any other rights you already hold in Content which you submit, post or display on or through, the Services.
According to Rebecca Ward, the Senior Product Counsel (?) for Chrome, the error was basically a cut-n'-paste from a standard EULA for Google products, as many people had guessed.
Matt Cutts, Google Webspam team leader also commented there had been previous incidents with Google Docs, and even AOL and Adobe had similar problems.

But I think both of them are ignoring a bigger issue here:
If this clause was copied from a standard EULA, how many products still contain it?

My problem is not with the symptom, but with a deeper concern:
To protect themselves from legal pitfalls web sites today are drafting unreasonable EULAs.

To test my theory I read Blogger's EULA (I am well aware of the irony considering where this post is being published):
Google claims no ownership or control over any Content submitted, posted or displayed by you on or through Google services
you grant Google a worldwide, non-exclusive, royalty-free license to reproduce, publish and distribute such Content on Google services for the purpose of displaying and distributing Google services
I'm not a lawyer, but it seems to me that by publishing content in Blogger you basically lose control over it.
I know the web is open to anyone and everything is available forever, but this is one step too many.

Or as an anonymous commenter wrote:

Google is the new Microsoft

Sunday, August 31, 2008

Blog Day Time

So it's time for another Blog Day, and with it the dilema - which blogs should I recommend?
Last year I tried focusing on new or unknown blogs (unknown to me, that is) - I'm not sure I'll use the same criteria this time.

  1. Ken Egozi's Blog - C# development blog (over 300 posts as of yesterday)
  2. My 25% - A comic strip about working in the Israeli HiTech industry.
  3. 10x Software Development - Did you liked the book "Code Complete"? Think of this site as a more up-to-date summary of the book.
  4. Maor David - A recommended blog dealing (mostly) with Visual Studio Team System.
  5. Nicholas Allen's Indigo Blog - Probably the #1 source of information regarding WCF.

Thursday, August 14, 2008

A new WPF DataGrid in a CTP release

When I reviewed some 3rd party WPF components out there I noticed the fact most of them showcased a datagrid claimed to perform better than the default grid.

After reading Tamir's post about the new WPF DataGrid CTP I have to wonder if this is about the change, as there seem to be serious performance improvements in the new grid:

WPF’s goals for controls in 3.5 SP1 focused on supporting building DataGrid in our next release and improving the performance of our controls overall. One of our top priorities is to develop a high performance, full-featured DataGrid to support demanding LOB and ISV scenarios, and many of our improvements in controls focused in this area. We also wanted to make changes to our infrastructure to improve performance of all of our controls and achieve faster application start-up times

One specific feature that looks promising is deferred scrolling:

Deferred scrolling is a perceived performance improvement for ItemsControls such as ListBox. The default behavior of ScrollViewer in WPF is "live" scrolling, where the user is able to see the contents of the scroll viewer move while dragging the thumb of a scroll bar. This can be problematic for controls such as ListView and DataGrid, which often have complex item templates and use virtualization. In these cases, the amount of processing required to refresh the view with new items consumes too large an amount of time for the UI to appear snappy. To the end-user, the UI could feel sluggish and non-responsive. Deferred ("non-live") scrolling is an alternative scrolling behavior where the contents of the scroll viewer remain static until the user releases the mouse button (similar to the behavior of the Outlook 2007 Inbox). In the absence of other performance improvements, having non-live (deferred) scrolling could be beneficial for improving the end-user’s perception of scrolling performance.
You can find additional information on using the datagrid in Vincent Sibal's blog.

Thursday, July 31, 2008

There are some things a good developer is NOT required to know

Jeff Atwood and Peter Norvig seem to think you must have a deep understanding of how computer hardware works to be a good software developer:

Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk

I did learn these things, but after reading Jeff's post I have been trying to remember a project I worked on during the past 10 years which required this type of knowledge - and I got nothing.

Let's put aside for a moment specialized area in software development in which this knowledge is important:

  • Real time applications
  • Embedded applications

Assuming you are developing using a modern, high level programming language like Java or C#. During development of applications in areas not mentioned above, did you ever encounter an actual need to know these things? why?

Sunday, July 20, 2008

Design Patterns - why read books?

Most developers come across a reference to the GOF design pattern book at some point during their career.

Others refer to the Head first patterns book, or other similar books on the subject.

My advise: Instead of buying another paper weight and spending a lot of time extracting little information from a lot of pages (never could find the search option), go to the Dofactory design patterns web site. You can find information there easily and besides the theoretical data there are "real world" code samples in C#.

And if you are willing to spend some money, you can get further access to C# optimized code, as some patterns incredibly simple in C#:

So before spending your weekend with a technical book, take a look at the online alternative.

Thursday, July 17, 2008

Good team developers are cameleons

Jeff Atwood thinks regions are evil:

No, I will not use #regions. And no, I DO NOT NEGOTIATE WITH TERRORISTS. Shut up.
I tend to disagree. I like being able to navigate through code blocks by scanning them and not using incremental search.
Besides, you can always expand all regions in code using a keyboard shortcut, and if it really bugs you, simply do a replace of "#" with "//#" and your problem is solved (until the next guy does the opposite).

However, I do agree with Jeff about working with a team, and that's why I think feeling that strongly about any coding habit is wrong.
Whenever I go into a new project I try to adapt my coding style to the existing style, even if initially I don't really like it.

That's why I don't think you should feel that strongly about anything and fighting about coding habits is useless - a good developer can adapt to any working environment.