February 27th, 2008 — 08:26 pm
From the SEO article “On-page SEO for small Companies“:
- Google is the bombshell who everyone drools over. She knows this and lords it over everyone. You’ve really got to work to get Google’s trust. She also has a weird fascination with blogging.
- Yahoo is wild and erratic.
- MSN is the world’s cheapest date, who will practically faint if you show any interest in her at all.
Comment » | Amuzing
February 25th, 2008 — 12:49 pm
I have written before a short comparison between “old” and newer technologies, but at the beginning of that post I state that part of the choice of a new technology is the market trend towards that technology.
After reading Justin’s post showing that moving to ASP.NET is beneficiary because it’s becoming a prominent technology I decided to implement his research methods (using Google) on different technologies.
I began by searching for file types

However, this reflects only on files shared on the web, and since JAVA is a web technology (unlike Delphi) the results don’t say much.
But Google trends provides a clearer picture - while C# remains stable, other programming languages are on the decline:

Focusing on the .Net world, you can clearly see new technologies are dominant in Google searches:
WPF vs. Winforms

WCF vs. Remoting

The rise of .Net Framework 3.0 technologies

With Silverlight being the “Hot New Thing” (maybe because it’s a web-based technology)

So maybe choosing a new technology is a logical move even if it doesn’t offer a significant technological advantage - since keeping older technologies means you are working against the market trend.
So consider switching from Winforms to WPF, from various communication technologies to WCF and from VS 2003 or 2005 to VS 2008 - in the long run the market will force you to do it anyway, either through the job market or through customers demands.
Comment » | Technology, Visual Studio, WCF, WPF, Winforms
February 23rd, 2008 — 05:09 am
In a recent announcement Microsoft declared a “Strategic Change” in their relationship with the open source community:
-
Publishing on MSDN over 30,000 pages of documentation for Windows client and server protocols and API. Protocol documentation for additional products, such as Office 2007, will be published in the upcoming months.
-
Microsoft is providing a covenant not to sue open source developers for development or non-commercial distribution of implementations of these protocols. These developers will be able to use the documentation for free to develop products.
-
Microsoft will design new APIs for the Word, Excel and PowerPoint applications in Office 2007 to enable developers to plug in additional (OS?) document formats
However, although the company said developers will not need to take a licence or pay a royalty or other fees to access this information, those covered by patents will still be subject to a royalty from developers who want to use them for commercial applications (Microsoft said these royalty rates would be “reasonable and non-discriminatory”).
Red Hat seems to think this is a move designed to “foreclose competition from the open source community”, making Microsoft’s move “too little, too late”.
According to Steve Ballmer “There were certainly things we did to get into compliance with the European (Union) Commission’s decision”. However, the EU regulators are expressing skepticism regarding this statement.
Real change or a hoax? we’ll have to wait and see…
Comment » | Technology
February 16th, 2008 — 11:20 pm
Guy started the debate by calling Israely bloggers (and the blogs.microsoft.co.il platform) to write in Hebrew to encourage the creation of professional resources addressing the Hebrew reading crowd.
I disagreed by stating the fact I like to share my knowledge with the entire world rather than just sharing it with Hebrew readers and Omer agrees with me.
Tamir contributed to the discussion in his own unique way, demonstrating the frustration a non-English post can cause to English readers (and assuming I understood the translation he is basically saying “write in whatever language you feel comfortable with”)
I would like to address Guy’s second claim, saying the blogs.microsoft.co.il site should be used to encourage Hebrew blogging (and that English bloggers have alternatives such as Blogger and Wordpress).
Blogger and Wordpress are excellent platforms, but if I want a blogging site focused on IT blogs, they are wrong for me.
The unique thing about the blogs.microsoft.co.il site is that it’s an aggregator for IT professionals, and unlike the MSDN blogs site - most of them are not Microsoft employees.
I think this is unique and would not like to close this special community to the rest of the world.
Comment » | Blogging
February 16th, 2008 — 03:17 am
I have to disagree with Gil’s (welcome to the blogosphere) recommendation regarding the classic DP book:
I found it very hard to read, focusing on theory (as opposed to practice), and laking use of .Net framework features (since it was not written for .Net users).
If you are a .Net programmer and want to learn and use design patterns, I recommend going to dofactory.com - clear, real-world examples meant for C# developers.
Comment » | Design Patterns
February 15th, 2008 — 01:53 am
A friend sent me the following code, meant to do simple string comparison for a standard password changing dialog:
char buf[256]
test_pass = 0; for (i = 0; i < strlen(buf); ++i) { test_pass ^= (unsigned long)buf[i] << (i%4)*8; test_pass = test_pass << (i%4)*8 test_pass >> (32 - (i%4)*8); }
sscanf(g_config.m_pPassword, "%08X", &old_pass); if (test_pass == old_pass) { // Get new password GetDlgItemText(IDC_EDIT_NEW_PASS, buf, 255);
test_pass = 0; for (i = 0; i < strlen(buf); ++i) { test_pass ^= (unsigned long)buf[i] << (i%4)*8; test_pass = test_pass << (i%4)*8 test_pass >> (32 - (i%4)*8); }
// Check configmation GetDlgItemText(IDC_EDIT_NEW_PASS2, buf, 255);
test_pass2 = 0; for (i = 0; i < strlen(buf); ++i) { test_pass2 ^= (unsigned long)buf[i] << (i%4)*8; test_pass2 = test_pass2 << (i%4)*8 test_pass2 >> (32 - (i%4)*8); }
if (test_pass != test_pass2)
{ MsgBox("....."); EndDailog(1)
} sprintf(buf,"%08",test_pass); }
Comment » | Amuzing
February 13th, 2008 — 10:43 pm
We all know about the “cool new kids in town”, meaning new technologies all developers want to use. Offer a developer two positions:
- Programming with C# 1.1
- Programming with WPF and C# 3.5
What do you think most developers will choose?
However, there is the question of an existing project, written in an “uncool” technology.
In my experience developers tend to push towards using newer technologies, but how do you convince the people in charge?
Here are my thoughts on the subject:
Framework 2.0 vs. 1.1
Advantages: Performance boost if you are using ArrayLists with value types in them (when you switch to generic Lists)
Disadvantages: Incompatibility issues requiring code changes (should be very minor)
Framework 3.5 vs. 2.0
Advantages: Using Linq for new complex data access and query modules, otherwise I’m unsure
Disadvantages: Same as switching between 1.1 and 2.0
WCF vs. Various communication technologies
Advantages: Much easier to configure and deploy, can drastically change the communication method without any code changes
Disadvantages: Not applicable when you do most of the communication in a non-.Net world if you remote points are not using web services protocols (example: communication with hardware sensors)
Workflow foundation
Advantages: Easier to manage complex workflows. Enables user modification of workflows.
Disadvantages: If an existing workflow code is already written - major code rewrite.
WPF vs. Winforms (with CGI+)
Advantages: Creating easily resizable forms due to vector graphics use. Customize look & feel in ways which are almost impossible to duplicate using winforms. Easier interaction between UI/graphics designers and developers.
Disadvantages: Will require serious code rewrite. Performance issues still exist (I have yet to witness a professional map engine based on WPF)
Team system vs. various source control / task management systems
Advantages: I have used SourceSafe, PVCS and Rational ClearCase/ClearQuest, and to this date I think VSTS is better is terms of performance, ease of use and customizability, especially when you need to integrate source control and task management.
Disadvantages: Requires Windows - how do you use VSTS to manage C++ code in a Unix/Linux environment?
Comment » | Technology, VSTS, WCF, WPF