The Johnson Blog

Ramblings of a geek with a few hobbies…

Category: Uncategorized

  • ldifde.exe

    Learned something worth remembering and passing along today at work regarding the utility ldifde that microsoft ships with both Windows Server and ADAM.

    I was attempting to import an ldif file into ADAM with ldifde but the file kept getting spit back at me with “Invalid DN Syntax”. I had imported this exact same file a couple weeks ago on another identical machine, so it wasn’t making any sense. The command I was executing included a macro of sorts (#configurationNamingContext) but it wasn’t getting expanded like it should have, causing the import to fail.

    After some investigation, it appears two different versions of the utility are shipped, and only the one in the C:WindowsADAM directory seems to work with the macros. I had been running the command from a different directory, so the version in system32 was getting used and causing problems.

    So, if you’re trying to import and ldif file into ADAM, be sure you’re running ldifde from the correct location!

  • Managed Spy

    Some of you developers out there I’m sure have heard of our used Spy++ to investigate windows messages. Microsoft has posted Managed Spy which does some of what the original app did but for managed .net code.

    Get it here

  • ADAM update

    Last I mentioned, I was learning about the benefits of Active Directory Application Mode. The code is 95%+ complete, and the solution is working exactly as I wanted. ADAM has fit in wonderfully and is providing a very good foundation for an authorization and authentication system.

    There really haven’t been many problems, other than a very small universe of documentation. The .NET 2.0 class library has some great additions for dealing with security descriptors (System.Security.AccessControl) and directory services (System.DirectoryServices) in general. Without these namespaces, it would have been a bear to deal with.

    When tasked with building this stuff, I first looked at incorporating Microsoft’s Authorization Manager (AzMan) which can also sit atop an Active Directory. It provided a lot of what our solution needed but lacked one critical piece – the ability to have a security hierarchy. It only allows you to define a flat list (technically a hierarchy of two levels) of operations to secure when we needed a tree. So, building our own on ADAM has been working out great!

  • C#

    About a week ago, a coworker and I ran across a nifty C# operator that neither of us has seen before: the “??”.

    We both know and use the ternary operator (“?”), but it took a quick look in the MSDN documentation to learn that A ?? B will return A if A is not null, B otherwise.

    So instead of X = (A == null) ? B : A; we can write X = A ?? B;

    That’s all for now class.

  • Emily Nolting

    This is a little overdue, but Emily Nolting was born Saturday morning (2/4/2006) at approximately 3:30am. She’s beautiful and doing great.  Parents are doing great and are going home sometime today. We’re all very happy to have her as part of the family!

  • Software Design

    The other day I realized I have what seems to be an ackward way of going about designing (at a high level) software. When presented with a problem (requirements, etc) that I need to solve, it doesn’t seem like I really put my brain to work on it. I find myself putzing around, shufling papers, surfing the web, reading, etc.. instead of actively “working” on the problem at hand. Every now and then I will check-in on the problem in my head and see if I see the answer. If not, it’s back to doing whatever else I was doing.

    That will continue for a few days, while I feel like I’m half-asleep and in a stupor. Inevitably, the solution will form in my head without me having actively focused on it. It’s almost as if I don’t want to brute-force an answer, but let it stew until the answer presents itself.

    The past several projects at work have been like that. The outcomes have been interesting and have worked very well, so I suppose this approach isn’t a problem. Sure feels a little strange though.

    Anyone else do this?

  • Active Directory Application Mode

    As a software developer I’ve stayed far away from anything having to do with Active Directory. That’s for the network guys! That’s what I’ve always thought at least, until last week.

    That’s when I began doing some research for an application’s Authentication and Authorization system. I kept coming back to the Microsoft recommended approach of storing application user information in a directory service, but I didn’t want to have the application require an Active Directory or, worse, require customers to apply schema changes to their AD (something I’d expect to be met with a lot of resistance).

    Then I discovered Active Directory Application Mode, ADAM for short. It provides essentially the same functionality (from an application’s viewpoint) as its big brother – you can extend the schema with custom classes and attributes, assign security rights, authenticate users, etc., all without impacting an organization’s infrastructure.

    Now an application can be installed with its own directory service. Regarding users, it can be its own user store (ADAM Users) and/or reference domain accounts. This is exactly the functionality we need, the ability to have domain and non-domain accounts co-exist in a clean manner, with the ability to store information on each without requiring the customer to change their AD schema. I’m very excited about using ADAM, it seems to fit exactly where we need and should supply a solid (and standard) foundation for our Authorization and Authentication system. Pretty cool if you ask me.

  • Mouse and Keyboard

    I now have a new mouse and keyboard, and they are awesome! The keyboard is the Microsoft Natural Ergonomic Keyboard 4000 and it’s definitely the most comfortable keyboard I’ve ever used. It’s unique for several reasons: the comfortable curve in addition to the “natural” style of keyboard; great key action; comfortable, padded wrist wrest built-in; and reverse tilt. This one is for home, but I know I’m going to end up getting on for work too.

    The mouse is the Wireless Optical Mouse 5000. There’s not a whole lot interesting with the mouse, other than it’s a lot smoother than my previous first generation optical mouse. When I picked it up today, I really wasn’t expecting a better feel, but I sure was wrong.

    If you’re in the need, these two products are definitely worth the money. Particularly the keyboard.

  • Ring Nebula

    Took the telescope out last night, it was a very clear evening. I was able to snap a few shots of M57, The Ring Nebula. I was pretty suprised they came out like they did, this was the first time I’ve used the 15 second exposure option on my digital camera – I had the mount aligned pretty good so there aren’t very long “star trails” from the long exposure.

    M57, The Ring Nebula, is a Planetary Nebula 2300 light-years (which google tells us is 1.35205496 × 10^16 miles) away from us. A Planetary Nebula is a “shell” of gas and plasma that is left when some types of stars die/explode. At the center of this is that star, a white dwarf now. Unfortunately you can’t see it in my picture.

    ring nebula
    The Ring Nebula is the small doughnut looking shape in the center.

  • Solar Filter

    My anniversary gift from Ana, a new Solar Filter for the new telescope, arrived today. I had to go to FedEx and pick it up after work but tried it out when I got home. It’s amazing what this telescope can do compared to my old one. I didn’t think it would make much difference on the sun, but it surely does.

    A neighbor came down to see what I was looking at, but just when he did the sun went behind a think blanket of clouds. Maybe it’ll be clear tomorrow and he’ll get to see it then. I also plan on taking some pictures with the new setup.