Wednesday, September 12, 2007

I can't stop looking at these.  The tapered array, the curved cabinates, the all custom construction, the $15,000 price tag.  I must have them...

 

Wednesday, September 12, 2007 3:31:01 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, September 10, 2007
Monday, September 10, 2007 3:09:42 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, September 05, 2007

Suppose you are developing an ASP.Net application in a primarily open source/linux/MySQL environment, you might run into some odd issues with interoperability.  A top-secret project of mine (that I intend to open source once I've got a handle on which license is appropriate) needs minimally to work with MySQL and OpenLDAP.  MySQL is no problem as the builds of the MySQL connector for ADO.NET 2 have been very solid, though it does give me odd "warnings" about unnecessary conversions when using reader.GetInt32(0) and such. 

OpenLDAP, well, it seems decent enough for our purposes but there are some stumbling blocks.  The ActiveDirectory Membership and Role providers that come with .NET 2.0 will not work for you.  Oh, I know the connection string misleadingly takes LDAP://ou=blah blah;cn=blahblah;dnblahblah syntax but the implementation uses various AD specific calls so you have to home roll your own.  There are two decent solutions here: you can use the classes in System.DirectoryServices to implement the various searches.  I was concerned at first that this would not work under Mono, which is one thing I'm shooting for, but I should have done my homework as the Mono project does have a System.DirectoryServices implementation.  I also found some old Novell C# code hanging around that gives you some LDAP specific abstractions.  Either way, you can roll your own Role and Membership providers that talk to OpenLDAP.  OpenLDAP does not support the memberOf syntax, apparently, which is annoying.  You can search under the ou=Groups for objects of type posixGroup and get the memberUid attribute to sort of go at it backwards to implement the GetUsersForRole functionality for your Role provider:

public List<string> GetUsersForRoleName(string roleName)

{

List<string> userNames = new List<string>();

string searchPattern = "(&(objectclass=posixGroup)(cn={0}))";

string searchStr = string.Format(searchPattern, roleName);

LdapSearchResults sr = _ldapCon.Search("ou=Groups," + _rootDn, LdapConnection.SCOPE_SUB, searchStr, null, false);

while (sr.hasMore())

{

LdapEntry entry = sr.next();

LdapAttribute att = entry.getAttribute("memberUid");

string[] names = att.StringValueArray;

for (int i = 0; i < names.Length; ++i)

{

userNames.Add(names[i]);

}

}

return userNames;

}

 

I should surely post this project once it's mostly done, as it's potentially quite useful.

Wednesday, September 05, 2007 2:36:18 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, September 04, 2007

So, I've been waiting for Lair to come out for quite some time, and the several delays led me to believe maybe Factor 5 was having some PS3 issues or had generally bitten off more than they could chew, but the potential of this game was astounding.  I played the game for about an hour and a half the day it came out and my initial comments were "Wow the music is astounding" and "Damn, this is hard in parts".  The difficulty came mostly in the form of trying to get my dragon to do what I wanted it to with the sixaxis but on my second play it's really not that different than some of my experiences playing Decent Freespace, the last space shooter I had.  Your mind wants to instantly be able to do a 180 but your ship/dragon can't turn that fast.  There are a lot of controls and context sensitive actions that mastering makes the game more fun.  Probably THE most fun aspect is landing and burninating and eating soldiers.  I had people over last night and this part of the demonstration was met with cheers and applause.  I've read about the game chunking in 1080p, but since my projector is 720p I have not had this issue.

So, Lair is fun but probably did not live up to the hype and potential, which is too bad.  I hope some of the issues could be fixed with patches in the future.  But, it's fun and the music is freaking fantastic.  Lair is a better game than 4.9.

Tuesday, September 04, 2007 11:05:39 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Saturday, September 01, 2007

I participated in the ritual known as Podcast Recordification on Friday for the first time.  Recording in the Milwaukee Ale House I referred to this as a BeerCast, though no beer was consumed until after our discussion was done.  Rumour has it this podcast shall find its way to Channel 9, and we hope to do more discussions.  You can see some pictures of the gear poor Mr. Clarkin has to lug around here, Microsoft is taking this podcast thing seriously and outfitting the evangelists with nice equipment.

 

 

Saturday, September 01, 2007 10:56:02 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, August 30, 2007

One of our OEMs provides an FTP server that is built in C and compiled against Windows CE 4.2.  The new version of a another device that connects to this server via its own FTP client no longer works for some reason, this 2nd OEM claims that some timeout or tolerance in the device is too touchy and that it simply cannot speak to this FTP server.  Doing some searching I found a partial FTP RFC implementation originally posted on gotdotnet and authored by a gentleman by the name of joel@collude.com.au.   There doesn't appear to be any open source license present so I got the source, hacked it to run on the CF, removed a cumbersome custom logging interface to replace it with the CF version of log4net, and cleaned up deprecated code warnings for CF2.0.  The idea was I would send the OEM a log of FTP server sessions to determine which tolerences needed to be increased, but the device in question talks fine to my new custom FTP server running on CE.  I continue to be a big fan of the performance of .NET.

Up to this point I usually don't make full source available with articles but I'm thinking I should change that policy once I've chosen an appropriate open source license.  Would anyone like an FTP implementation in C#?

Thursday, August 30, 2007 10:45:39 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Wednesday, August 29, 2007

Via FriendlyAtheist:

There's a good chance that people's notion of "human solidarity" will triumph in the end, slowly but surely.

Wednesday, August 29, 2007 9:20:41 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, August 28, 2007

I was left a comment tonight from someone saying "I want my money back - from your blog."  Apparently I have not written enough this summer to suit some!  I don't apologize for not blogging, nor for mentioning articles that will come out some day.  In the words of John Carmack "It's done when it's done".  I also try to keep the signal to noise ratio high as opposed to blogging about my trip to Starbucks or how fun it is to mow the lawn.    I haven't been able to blog at work lately, and at home I must confess I've been sucked back into acoustics for a while.  My acoustic treatment project is turning out to be much more complicated than I thought, as the science of the field has advanced far beyond "Master Handbook of Acoustics".

Tuesday, August 28, 2007 9:15:39 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Monday, August 13, 2007

I haven't been able to try my lighting technique yet, so for now you'll have to put up with more bad photography.  Here is a shot of the seating I mentioned:

Monday, August 13, 2007 11:31:34 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback