March 2009 DirectX SDK

DirectX 10 LogoOK, so only one day after I publicly whined “where is the DX SDK?” Microsoft has released the March 2009 version. Go figure. Get it here at DirectX 2009 SDK @ MS Download.

Also, there seems to be some interesting stuff bundled with this version of the SDK, here’s my take on the important stuff:

  • Technical Previews
    • Direct2D
    • DirectWrite
    • DXGI 1.1
  • PIX works on the Windows 7 beta
  • Several updated samples

Check out the details at the link posted above. Also, it doesn’t look like the online MSDN library docs have been updated yet but usually that happens pretty quickly.

Where’s the DirectX SDK

DirectX 10 LogoI wonder what kind of development is going on at Microsoft as there hasn’t been an update for the DirectX SDK since November of 2008. This is quite out-of-sync with their regular release schedule of a new SDK every 3 months.

My guess would be that with the release date of Windows 7 inching closer, the development for DirectX 11 has to be completed soon. Of course this is 100% speculation.

If anyone has a clue, let me know.

Why I Don’t Switch To Linux Just Yet

Even though I prefer my web servers to run Linux, I just can’t seem to switch my personal computer to Linux just yet. From an end-user standpoint, Linux is still very rough around the edges, here’s my personal checklist (in no particular order) that I’d like to see fulfilled.

  • The ability to install a piece of software without having to invoke a CLI.
  • A full-featured development environment (that’s not Eclipse) that rivals Visual Studio in C++ development.
  • A non-Unix-like file system.
  • Better manual when you buy a distribution (SUSE manual: case and point).
  • Better IHV driver support.
  • Better native ISV software support without having to run Wine.
  • And the coup de grâce: An OpenGL specification that can compete with Direct3D.

Don’t get me wrong, I have nothing against Linux itself, in fact much of my development time goes into LAMP related work. But for the desktop it just seems like a CLI-ridden nightmare at the moment.

Annual Minutes Requirement Scam

Here’s a little tip for US business owners. If you get a document in the mail called: “Annual Minutes Requirement Statement Directors and Shareholders”, do not pay it, this is a scam. The Florida Department of State has now posted a warning about this on its front-page as well:

While this document might look very authentic, in the small print it states:

This product has not been approved or endorsed by any government agency and this offer is not being made by an agency of the government.

Needless to say, you should never send shareholder information to any non-government organization, and your actual annual meeting information should only be addressed to a government organization or posted at SunBiz.org.

The letter that I originally received had the following return address:

COMPLIANCE SERVICES
400 Capital Cir SE, Ste 18321
Tallahassee, FL 32301

Edit 1:
Thanks to all of the people who have posted a comment, here’s a list of all the street address instances used by this scammer so far, there were more instances reported below in the comment section without addresses. Also, if you happen to have more information or an address that’s not listed, please post it below, it will most certainly help many people.

  • California (1)
    P.O. Box 1265,
    Studio City, CA 91614-0265
  • California (2) as Corporate Compliance Center
    2740 Fulton Ave,
    Sacramento CA 95821-5183
  • Florida
    400 Capital Cir SE, Ste 18321,
    (Postal Mail Box 18321 as of 2011/02/17),
    Tallahassee, FL 32301
  • Georgia (1)
    931 Monroe Drive NE, STE A-102 #333,
    Atlanta, GA 30308-1795
  • Georgia (2)
    Annual Minutes Disclosure Services/Business Processing Division,
    5805 State Bridge Road,
    Duluth GA 30094,
    Phone 866-390-1176
  • Georgia (3)
    Annual Minutes Disclosure Services,
    5805 State Bridge Road Ste. G–380,
    Duluth, GA 30097
  • Massachusetts
    Compliance Services,
    71 Commercial St. #241,
    Boston, MA 02109
  • New York
    Annual Minutes Disclosure Services / Business Processing Division
    911 Central Avenue #134,
    Albany, NY 12206
  • North Carolina (1)
    324 S. Wilmington St.,
    Postal Mail Box 407,
    Raleigh, NC 27601
  • North Carolina (2)
    2820 Selwyn Ave,
    Postal Mail Box 847,
    Charlotte, NC 28209

Edit 2:
I can’t believe that after more than a year, I’m still receiving comments on this post from people that received the letter. If you got the letter and it has a different address than listed above is on the envelope, post a comment and let us know, since you might be saving someone $125!

Edit 3:
It’s been almost two years now, and sadly, this scam is still going strong. In fact, a new address in Sacramento California has popped up that I’ve added to the list above. Keep those comments going and help your fellow business owner save an unnecessary $125, especially if you have a new address to report.

Edit 4:
The scammers now have put up a very simple web page at http://www.corpsrvc.com/. If you didn’t have doubts about Compliance Services before, take a look at their site.

Edit 5
Good news for those of you in North Carolina. Earlier this month, a court settlement was reached between North Carolina State and Corporate Services Inc. This means that if you live in NC, you will no longer be receiving the scam in your mailbox. Sadly, Corporate Services, Inc. is still able to operate in any other state, so while this victory is minor, it’s still a victory.

An email arrived in my inbox today from a reader who want me to make you aware of Mr. Selwyn J. Monarch, a disbarred attorney from California who is also the owner of Corporate Services, Inc. If you do a quick Google search, you’ll see that this is one untrustworthy person with quite a bit of legal baggage!

Edit 6
Contrary to the previous update, readers are still reporting receiving the scam letter in North Carolina.

A bit off-topic but you’ll enjoy these:

Pluto is a planet in Illinois.

Now really, this is a serious piece that’s being pushed through. While the linked post implies it’s “goofy”, could this have serious implications for the Illinois educational system?
Illinois: 1 – World: 0

Richard Dawkins to be Banned in Oklahoma

SNAFU.

Simple Scene Graph in C++

There are several articles gathering dust bunnies on the internet on creating a scene graph class in C++ for your 3D engine but most are pretty vague and quite old. Hopefully, this post will give you a foot in the door in creating your own scene graph for your engine.

To start off, let’s go over some basics. A scene graph is a tree-like data structure which holds information about the scene you want to display. Every node has a parent and every node may have children. In this post we’ll use the std::vector to store the scene nodes but you can substitute this with whatever you want. A scene graph can be visualized like so:

             [root node]
                  |
        o=========o=========o
        |         |         |
    [child 1] [child 2] [child 3]
        |
    o===o====o
    |        |
[child 4][child 5]
             |
         [child 6]

Any node may have any number of children who’s children may have any number of children, etc. Each node in the scene graph may have a name for lookup functionality so a very lookup system will be implemented. We will also need functionality to add a child node, remove a child node, set/get a node’s parent and an update function for updating the graph hierarchically.

Read the rest of this entry »

I’ve recently had the need to read an entire file into a byte array but still had the need to extract integers from it. Turns out, it’s very possible to do this but platform dependently since the byte-ordering (or endianness) on different machines can differ.

For example, Little-Endian machine A has an integer that it needs to write to disk: 12345. Big-Endian machine B has the same integer that it needs to write to disk as well.

The hexadecimal representation of the file on machine A would look like: 00 00 30 39 while machine B‘s output would look like: 39 30 00 00.

If we were to read machine A‘s file on machine B, the output would not be 12345 as expected but 245618442240 instead. Now that’s quite a problem. Any file written on machine A would be useless in any other environment.

In the meantime, be aware that there’s no way to determine if a file is Big or Little Endian so you would need to set a standard for your file. I use Little-Endian byte ordering since that’s my machine’s native format and 99% of the time, yours as the x86 family of processors is Little-Endian.

So in order to read any of the files we have on disk, regardless of endianness, we first need to detect the endianness of our current machine and somehow detect the endianness of the file we’re trying to read. This is not a big pain in the ass as you might suspect since machines, in addition to files, also order their memory in Big- or Little-Endian byte ordering.

Read the rest of this entry »

Neil McAllister of InfoWorld recently made his case against web-based applications. He gives five reasons for companies not to use web based technologies.

Having developed for both platforms (desktop and web) professionally, I can say with all certainty that Neil McAllister is wrong in his assertions.

Web applications try to mimic the realtime behavior of desktop applications, there’s no doubt about it. But the one thing that’s to think about is: Would a desktop application scale in the 21th century?

What I mean by this is: Would I be able to use my desktop application on Mac, Linux and Windows at the same time? With the exception of Java apps, the answer is a resounding “no”.

Desktop applications don’t do so well when they have to be ported to multiple platforms since they have to be recompiled on the targeted platform. In addition, if you have offices overseas or people working from their homes, thick clients don’t make sense.

I think when Neil was halfway through his post, he must have doubted his writing since the article mentions using “consistent UI Toolkits” like the Win32 API, Cocoa etc. Now, anyone who’s worked with desktop applications knows that UI design for the desktop is moving heavily towards an XML/style based approach, influenced by the web (WPF, etc.).

All of the APIs mentioned are not cross platform compatible so a cross platform abstraction layer has to be put in place with all its limitations for the application to be able to run. If you’ve read the last two paragraphs, you’ve probably already figured out that creating an application that would scale on the same amount of platforms as a web application would be extremely costly and time consuming.

As for cross browser compatibility, it’s not that big of a deal as it was in the early years. All of the quirks that cross browser development brings are known to (proficient) web designers and developers and are taken into consideration when designing a User Interface.

As for online access by employees, invest in an internet filter with the money you save going from desktop development to web development and you’re all set. But really, if your employees access porn websites at work, there’s something really wrong with your hiring process and the motivation levels at your company.

Good luck trying to get these damn interweb kids off your lawn.

« Previous Entries Next Entries »