want to know why Windows is so easily hacked?

As technologies progress and our devices are ever more networked with each other, security in operating systems has become increasingly complex. This complexity makes the systems themselves less secure because it is harder for developers to understand it. So the OS vendors add complexity to deal with the fact that applications are doing security wrong which creates a vicious cycle.

Are you a windows developer? Do you understand ACLs? Maybe you do, but most likely you only think that you do. Why? Because they are somewhat complicated. “What, I can explicitly grant permissions for my network printer to access this file?” Microsoft doesn’t make it easier. The documentation in MSDN is near useless. The web isn’t your friend here either since a lot of the websites I’ve found when looking for more info were just wrong.

I was working on a nasty file-permissions problem in a project that I was working on which necessitated a move from old-style file permissions code to ACLs. Now, I’ve been developing professionally on Windows for over 10 years, and I thought that I understood ACLs. Nope, I just thought I did. I spent days studying the web and writing test programs to figure out how to give the appropriate permissions to a single file. Luckily, I had an awesome tester who could break my stuff in ever more increasingly complicated ways, otherwise I probably would have shipped something that either didn’t always worked or was just a crazy security hole.

I realized that if it was that hard for me, what about all those less experienced or rushed developers currently shipping applications for Windows? The majority of developers inside of Microsoft probably don’t understand ACLs as well as they should. Is there any wonder why there are so many security issues in Windows?

The answer isn’t further complexity, but better documentation and education. This is critical stuff for Microsoft and 3rd party developers. It is time that Microsoft treated it that way.

I haven’t reviewed the ACL implementation in OS X 10.4 yet, but I shuddered when I heard that it was being added.

The difficulties of cross platform development in a Microsoft world

Cross platform development was never simple, but it could be simpler if Microsoft decided to support some standards occasionally

Now, I’ve been responsible for at least some of the Microsoft APIs inflicted upon developers, so I take some responsibility here. I don’t expect that Microsoft should have X Windows or Display Postscript or anything. I do expect that if I use standard C functions and the STL that they will at least work somewhat the same across platforms. That is too much to hope for when working in the wild world of internationalization it seems. Microsoft uses MBCS encoding for multi-byte encoding of char *s. This is a Microsoft-only thing that is the result of some dev way back when and is still foisted upon the world even though there is a much better standard called UTF-8. While I understand that Microsoft needs backwards compatibility for legacy applications, since they have already have a second set of APIs for Unicode, how hard would it be for them to support UTF-8? Actually, somewhat difficult, since Microsoft uses a different directory separator from the rest of the world that also doubles as an escape character for certain Japanese characters. If you have Japanese support on your XP machine, you’ll know what I mean already. However, this lack of UTF-8 support not only makes it difficult to port apps to Windows, it also makes it difficult to develop applications for multiple platforms. Microsoft already is forced to support UTF-8 for the web, XML and documents. It is about time that it works in C and the STL just like on all the competing operating systems.

Trying to switch… Part Trés

Embracing FileMakerPro

I’m adjusting easily to doing e-mail and general stuff on the mac, but now is the bonus round, the business stuff. As I’ve said previously, on the PC, my workflow was pretty lame. I had my customer, supplier and promotional postal mail addresses stored MyMailManager. My invoices were generated using a custom Word template. My finances and inventory were all stored in Excel files. This was a major pain. When I got an order I would have to enter the data several times: once in the mailing address database, twice on the receipt (billing and mailing addresses), once on the excel file for each release ordered and then finally onto my yearly sales spreadsheet so I could track sales volume and do my taxes. Additionally, I had an access database with a lot of this information doubled for my online store. None of these programs were talking to each other. Of course this led to a lot of problems. With so many steps, I would often miss one or two. Every year at Tax time, I would spend a weekend reconciling all my records and making sure that they were correct.

I knew that using Visual Basic for Applications I could tie all the applications together. The office applications anyway. I could store most of the information in Access and use it to generate invoices in Word with the data filled in and then also generate reports in Excel for my accountant. The problem was getting into it. Programming doesn’t scare me. I do it for a living. It was learning a new programming language and then trying to figure out the idiosyncrasies of each of the applications to make the whole thing work. Every time I would sit down to start working on it, it would immediately feel like more work that it was worth.

Of course, I knew that there were other applications designed to address these needs for a small business directly: Quickbooks, MS Money Small Business Edition, etc… I evaluated several of them, but none seemed to be able address my needs directly and none were flexible enough for me to extend myself. Eventually, I just gave up and resigned myself to continue the status quo.

Now that I’m on a new platform and am forced to replace MyMailManager, I decided to re-assess the issue and try FileMaker Pro. I’d heard of it, of course. It has been around for ever and I know a lot of people on both platforms use it. So far, so good. It is much easier to use than Access: making tables, relationships and views is much, much simpler. However, it isn’t as powerful and there are some quirky ways of doing things. I hit a lot of little FileMaker Pro workflow snags, but I can usually get past them quickly after a few seconds in the on-line help (I haven’t even cracked the book or tutorials yet). With a few hours put into it, I’m pretty convinced that I’ll be able to replace my inventory, CRM, order and bookkeeping workflow with Filemaker. I also like that I can export from it in several formats so that if I ever move to another DB, I can import my data. So far, I’ve got a table for my addresses, and a form for invoices. Next is getting my inventory going. Once that is done, I’m all set. If I can do all that without having to write any script, I will declare FileMaker Pro the all time champion of local databases. It will never replace SQL, mySQL or DB2 for me to use in a server application, I’m way to addicted to writing my own SQL statements and stored procedures, but to use locally and simply it rocks. So far at least…

Trying to switch… Part Deux

Embracing Entourage

Part One

This morning, I checked to see if anyone had answered my question on the Thunderbird support forum and no dice. Frustrated, I started searching the web to see if there was a way that I could export from Entourage 2004 to a plain text mbox format. And lo and behold, I found this entry from Jim Roepcke’s blog. It turns out that Jim had the same concerns that I did and one of his readers revealed “Note that the archive format that Entourage may look proprietary, but if you delve into it (via “Show Package Contents” in the Finder), then e-mail is actually archived to mbox files inside the package.” This made up my mind for me and I gleefully decided that the Mac Business Unit at Microsoft were truly the rebels they are portrayed to be and that I would support them by using Entourage 2004. It got even easier when I found this page (see step 3) which told me how I could get the mail I imported into Thunderbird into Entourage.

Finally this is starting to feel more like a real possibility. Also, even though some of my word documents are really old the Mac version of Word seems to open them OK (it complains a lot and the formatting is a bit messed up, but I can still read them). And the Excel documents work just fine.

Now onto figuring out how to replace My Mail Manager and Access…

Trying to switch…

Trying to make the PC -> Mac switch and hitting some snags

I’m fairly platform agnostic. My first computer was a TI-99/4A, which was followed by a Mac SE, then a Powerbook 100, then a half dozen different PCs. I develop software for a living and have done so for IRIX, linux, Windows 95, 98, NT, XP, CE and now OS X too, so I know what I’m doing around computers.

I also do a lot of music and video stuff and even run a little indie label. A few years ago, I inherited a Titanium Powerbook 450 from a company I was working for that went under. It sat around my house for a while until one day when I was getting really frustrated with my main PC. I was trying to do some music editing on it and it was just not working. The audio was stuttering, it was crashing. This was an XP machine that I’d tuned for audio. I didn’t connect it to the internet, it wasn’t on a network and I almost never installed software on it. Yet one day it just stopped working right. I spent days trying to update drivers, check for IRQ conflicts, I even went out and bought a new firewire card. Nothing worked.

I spied my long ignored powerbook sitting on a table. On a whim, I hooked up my audio interface to it and installed the drivers (this was OS 9 days) and BOOM, everything worked! Most of the software I used was cross platform already, so I decided that my next computer would be a new powerbook. I decided to wait until everything I used was OS X compatible (I’d had my share of issues with OS 9). Finally, that day came and I bought the 12″ PB that I’m writing this on now. It works. Always. No problems. I run a ton of video and audio software on it, I connect it to lots of peripherals, and it never complains. I’m convinced that this is the superior platform for multimedia authoring, hands down.

I still was running a business though, and I was running that on my old Vaio P3 450 MHz laptop, but I was using that machine as little as possible. A major reason was that I used it to download my e-mail and occasionally surf the web which required me to have virus software that slows it to a crawl and makes it really painful to use.

This week, all three PCs in our house that are still plugged in stopped working. All for different reasons. I decided that I’d had it. I was tired of spending hours figuring out what was going wrong with the PCs in our house. I was going to switch off that old Vaio laptop for my old trusty Ti Powerbook. If I could do that, then I’d switch my wife too.

Now theoretically, it shouldn’t be that hard. The only software I use on my home PC is Outlook, Word, Excel, Access and My Mailing List Manager (an old postal mail list manger I use for my version of CRM). I already had a copy of Office 2004 that I’d purchased but not installed. I figured that it would take care of the e-mail, Word and Excel, which would be the majority of what I do.

Here is where it gets interesting…

This is currently no way to import Outlook PST files into Entourage. Microsoft is promising a tool, but it doesn’t exist yet. By searching the web, I found the way to do this:
1) Install Thunderbird on your PC
2) import your Outlook mail into Thunderbird
3) copy that folders that Thunderbird creates to your mac

Step 4 would be to import that mail into Netscape Mail or Apple Mail and then import that into Entourage, except right here I realized something very important: Maybe it is a bad idea to use a mail program that makes it hard to get your mail out of it. I’d learned a similar lesson months ago when I got an iPod and had to re-encode all my WMA files into MP3. So right here is when I decided that maybe I’d just use Thunderbird on the mac instead of Entourage. So step 4 for me is to use Thunderbird.

Using thunderbird would be awesome if it worked, but, for me, it just doesn’t. See my post on the thunderbird support forums if you care. So after trying to make Thunderbird download all my mail unsuccessfully for a while, I just gave up. I’d already set up entourage to pull mail from one of my accounts. I decided that if I could export the messages that I’d already downloaded into thunderbird, then I would just use Entourage (which is a pretty good mail program). Yeah, so I couldn’t. Entourage will only allow you to export mail in their own proprietary archive format. That is fucking stupid and extremely lame. That alone means that I won’t use Entourage 2004. I’d never tried the Mail program that comes with OS X. I started it up, set it up, immediately hated it and vowed to never start it again.

So now I’m stuck. There are other mail clients for OS X, of course, but they aren’t free and I don’t feel like installing each of them so that I can test them out. I’m hoping that someone will help me out with Thunderbird because I think that is the app I want use. I’m just bummed that it doesn’t work for me.

More later as I progress on my own personal switch campaign.