Archive for March 2007


Microsoft document explorer crash

March 22nd, 2007 — 03:38 am

I tried installing new version of the Visual studio, and everything went fine, up to the point of trying to load the help, which resulted in “Microsoft document explorer” (dexplore.exe) exception.
I tried re-installing the entire studio - didn’t work.
I tried removing the document explorer, deleting all traces of it in the file system and registry, and installing it again - failed again.
After a lot of searching I came up with a post claiming this may be the result of a rootkit (although the error described was not the one I got).
I ran several tools, including ad-aware, spybot, and RootKitRevealer with no results.
Eventually I tried running Avast anti-virus, and it found two suspected files, and deleting them fixed the problem.
In case someone else encounters the problem, here is the log:
Sign of “Win32:Zhelatin-BZ [Wrm]” has been found in “C:\System Volume Information\_restore{FF2C8423-2E23-48A7-93CC-591C2B4A4764}\RP465\A0084610.exe” file.
Sign of “Win32:Rootkit-C [Trj]” has been found in “C:\WINDOWS\system32\tobhunfb.rlo” file.

Comment » | Visual Studio

Real Developers have Big Egos

March 21st, 2007 — 12:25 pm

Every now and than I read a snobbish rant, usually beginning with “real programmers/developers use [insert buzzword here]“.
Bob Grommes wrote a great post on the subject:
“To my way of thinking, a “real developer” is someone who consistently produces quality software systems that delight customers. “Real developers” do this in spite of whatever handicaps happen to exist in their world. They know that no technology, platform, API or software ecosystem is perfect, but they know how to leverage the strengths of what they are given to work with to produce excellent results. And if they don’t know, they can admit it to themselves, and learn quickly.”

Comment » | Programming

Using the IDENTITY type

March 21st, 2007 — 12:07 pm

I read a great article on key field for SQL Server, primary a comparison between Identity and GUID.

While working with SQL Server, I always include an identity field in each table.
This is not necessarily used as an index, but to ensure that even if I mistakenly enter bad data into the table, each row will still be unique:
Suppose you don’t have identity field, and you replicate a row’s data. Now try deleting only one of the duplicates - you can’t, since the server has no way of telling them apart, meaning you’ll need to delete all of them (and probably re-enter the data). The identity field prevents that problem.

In addition, I have always been fond of using surrogate fields as my key over natural keys, since as stated in the article, even a supposedly unique natural key may be a duplicate, and that’s without counting simple typing errors.

I agree with the writer GUID is not a good choice since it’s not easy to work with.
However, I may use another surrogate key, which I generate myself, in addition to the identity column.

Comment » | SQL Server

"Me too" startups

March 20th, 2007 — 02:36 pm

I went over some of the sites in go2web2 and Techcrunch, and it’s amazing how many copycats are out there. Just to name a few (in my view):

  • Justin.TV - “Is a website entirely devoted to chronicling the life of one of the company’s founders, Justin Kan, around day and night via web cam” (JenniCam version 4.0?)
  • Twitter and Dodgeball - Users establish a friends list to whom messages are broadcast - IM software with cell phones and SMS support. (but still same concept of the original ICQ)
  • Flixster - “The Flixster movie community includes movie ratings and showtimes, movie reviews, movie layouts, movie pics & posters, movie news, video clips, movie fan clubs, actor profiles and fan clubs, celebrity news, celebrity photos, celebrity layouts, and the never ending movie quiz.” - As far as I know IMDB has all of that, but Flixster is still a huge success - why?
  • Joost - “A new way of watching TV on the Internet, which uses new and established technologies to provide the best of both the Internet and TV worlds.” From the makers of Skype. This is actually somewhat new, but is based on the success of YouTube (and personally after watching shows from the net, when I want them and with no ads, I don’t like the idea of taking the pre-net ideas of channels and ads into the web 2.0 world).

And there are many more Digg/Myspace/Blogger clones out there.

Don’t get me wrong - if someone thinks he can take YouTube’s concept and do it better, I’m all for it, but it seems strange to see VCs invest in those startups.

Is this the evidence we are in the height of a new dot com bubble?
Does that mean it’s about to explode?

2 comments » | Startup

Podcasts I listen to

March 20th, 2007 — 10:53 am

I like to listen to technical podcasts while I’m driving or otherwise have time while not being near a computer.

I tend to like focused shows over “talk shows”, meaning I like to hear someone deliver a “lecture” on a subject with the maximal amount of data in the minimal amount of time. I don’t like to listen to two people chatting with no specific direction.

Here are shows I like to listen to:

  • Hanselminutes - My favourite. Each show delivering a concise, in-depth discussion of one subject.
  • Arcast - Good shows hosted by Ron Jacobs, dealing mostly with architecture. Now with TV shows!
  • PolymorphicPodcast - Another good show, partly hosting interviews and partly explaining interesting subjects.
  • Software Engineering Radio - Interview based, focused on the interviewee rather than a specific subject.

Shows I listen to less frequently:

  • DotNetRocks - Basically a radio talk show, meaning 20% of the show is spent on the hosts chatting on non-technical stuff (usually the actual show starts after 8-10 minutes), spending few minutes on ads at the middle of the show, and the rest is spent talking with a guest on various subjects.
  • Web Dev Radio - Another interview based show. Not very focused on technology (during the show on the power-tools-book about half of the show revolved around the process of writing a book)
  • CodeSermon - A short show, but seems to me it mostly deals with the basics (”how to debug without a debugger”).
  • Ask Udi - Udi Dahan’s answers to questions on SOA.

Comment » | Podcasts

Reporting tools for .Net

March 18th, 2007 — 03:28 pm

Although the Crystal reports components we get for free with the Visual studio are OK for some uses, some time ago I reviewed a number of reporting components for .Net framework with more advanced capabilities.
I came up with these requirements:

  1. Support for framework 2.0
  2. Written in native .Net language
  3. Source code included (may be with “professional” version)
  4. Ability to work with databases, especially SQL server
  5. Ability to work with data objects (IList)
  6. Run time customization (change the look/content of the report during run time)
  7. Execute non-report code during execution of the code (for example: display a message box)
  8. Report wizard for the end-user (should be royalty-free)

I was left with DevExpress’s XtraReports and Uniswift’s SwiftReports, both answering to all requirements, and both with an affordable price tag.

While the report wizard is a powerful tool, but not always required, I was amazed to discover some component makers still think that including the source code with their product is optional.

Comment » | Uncategorized

Another method of protecting your code

March 17th, 2007 — 01:57 pm

I ran across Debasish Bose’s post on code protection tools.
He covered some of the protection methods I discussed in my previous post on the subject, and was very excited by .NET Reactor. However, as I wrote in my post, this tool is easily circumvented by patching into the framework and dumping the assembly once it’s decrypted in memory.

The most interesting part for me deals with Secureteam’s tool, used to encrypt the .Net code, and only decrypt specific sections in memory at any specific point in time, blocking the ability to dump the entire assembly:
“CliSecure protects the IL code stored in your assemblies. During execution the code is handed to the jitter in its decrypted form just before compilation occurs. The CliSecure execution engine assures that your assembly is never fully decrypted in-memory. This makes it impossible to reconstruct your original assembly by using memory dump tools.”

Comment » | Uncategorized

« Previous Entries     Next Entries »