A taste of development

March 25, 2008

Prototypes and Java Config with Spring

Filed under: Technology —Tagged , , , , — simma1990 @ 11:00 pm

Spring is a deep framework providing numerous approaches and techniques for Java developers. This post by Solomon Duskis covers the topic of Java config and prototypes in the framework.

Also see: Infrequent blogging

Also see: Note to self: Blog about using Service Broker

Also see: The 2 Technology Magazines You Should Read


http://feeds.feedburner.com/~r/techtarget/tsscom/blogs/~3/248013264/thread.tss

Turning bitboards from potential moves into legal moves, pawn moves, and conditional rules.

Filed under: Technology —Tagged , , , — simma1990 @ 9:00 pm

Also see: UI design

The BitBoards so far have been astoundingly accurate at producing moves. But even after the moves have been produced they have to be fully validated. Take for instance, a bishop in the middle of the board. The number of potential moves for the bishop is 13 or so, but the number of valid moves, unless no spots are blocked, is much less. Further performing friendly versus non-friendly extension is extremely importan since you can’t move into a friendly position, but you can move into the first occuring non-friendly position (capturing). I’ve found some interesting transformations here, but once I can more fully validate them I’ll start to post their intricacies.

Even more frustrating are the pawns. Pawns are capable of special feats when in their original file (forward by 2), they are allowed capturing moves that are different from their standard movement rules, and they are also allowed the ability to capture en-passant. Deciding where and how to implement these extra conditions is very important. Remember the original blocking square algorithm I implemented for removing invalid moves consisted of:

uint myPieces =…; uint notMine = ~myPieces; uint validMoves = moves & notMine;

This has to be expanded a bit, since notMine actually points to all empty and enemy squares. What we need now is a blocking region for all enemy squares (which we have to store anyway, since eventually the board swaps sides and enemy and friendly are reversed). The valid moves become something like:

(more…)

We Live in an “Open Book” World, the Lie of Information Overload

Filed under: Technology —Tagged , , — simma1990 @ 8:48 pm

Also see: Introducing Microsoft Tagspace

In school, there were two kinds of tests. The regular kind where you learned and memorized all you could and then did your best on the test. The 2nd kind was the Open Book Test. Where you could use your notes and text books to figure out the answer to a question.

The 2nd was always preferable to the first because it was always a lot easier to prepare reference than to memorize.

Come finals time, a schedule of traditional tests meant packaging hours and hours to study. It was the ultimate experience of Information Overload. It also was the quickest way to forget everything you just learned the minute the tests were over. In fact, if you hung out with my friends and me, the minute tests were over, every penny we had was destined to be spent on beverages that killed more than a few braincells.

Today, life is so much simpler. I can’t remember the last time I had to go to the library or bookstore to search for a book on a topic that was important to me. I can’t remember the last time I HAD to invest the time to read a book as opposed to choosing to read a book that I wanted to read.

There was a time when I would scour online forums looking for any information that would give me an edge. Those days are long gone.

Today, I still read a ton of magazines that I both enjoy and which give me a solid foundation of information that help me professionally and personally, but I don’t stress that I might miss something. I don’t stress if I don’t read an issue immediately when it com (more…)

From C# to Java: Part 3

Filed under: Technology —Tagged , , — simma1990 @ 7:48 pm

Also see: Note to self: Blog about using Service Broker

Until about 2002 I had a broad disdain for most IDEs.  I
just felt they were too pushy.  They were always trying to take control
over my build system or the layout of my source tree.  If I’m going to give
those things up, I want something in return.  For a long time, the tradeoff
never seemed fair.  THINK C on the Macintosh was one of the only IDE products I
actually liked.

Visual Studio.NET 2002 was the first Windows IDE that won
me over.  I still use vi or emacs almost every day, but I’ll admit that I now use
Visual Studio more.

Last year I switched to Visual Studio 2005, and I love it. 
This is a product that is so perfect I worry about its next release.  Now that
Visual Studio 2008 is out, I’ll probably give it a try at some point soon.  But
Visual Studio 2005 is sort of like “if it works, don’t mess with it”.  The last
thing I want is for them to screw it up, and I can’t really imagine how
it could be better.

I guess when it comes to IDEs, I’m just not very
imaginative.  :-)

I started using Eclipse a few weeks ago, and now I
understand a bit more about where Visual Studio has room to improve.  I think
Eclipse is amazing, and I’ve barely scratched the surface.

So anyway, here are a couple of my current favorite Eclipse
features:

Constant Builds

When I first installed Eclipse, the very first thing I did
was look for the menu item to start a build.  When I didn’t find one, I assumed
that the Eclipse menu system must be too cluttered and counterintuitive.  How
could they make such a frequently-used command so hard to find?

(more…)

Finally, the Killer App

Filed under: Technology —Tagged , , — simma1990 @ 4:48 pm

Also see: YouTube Tries to Get Legal

Also see: Brad Abrams’ pixel8 Interview Podcast posted

Also see: This Guy Proves Anyone with a Keyboard can be Stupid

If you’ve yet to be sold on the Internet, grab a seat and your favorite pointing device. My good man Ryan sent me a link to what is undoubtedly the Internet’s Killer App: The Beer Mapping Project

Chicago’s map is a bit limited — my neighborhood alone has over 450 bars — so get on it. It takes a village, comrades.

God Bless America!

http://weblogs.asp.net/jkey/archive/2006/01/18/435889.aspx

Win friends and influence your team

Filed under: Technology —Tagged , , — simma1990 @ 4:00 pm

Do you know where your data is? If you’ve been involved with software at any point in the past two decades, chances are it’s in a database. It would seem silly to put data, especially frequently changing data, into code.

How about those business rules? Business rule engines haven’t been around as long as databases, but times are a-changin’. Imagine a world where the folks that come up with the rules can enter them, test them and even deploy them without having the development team so much as lift a finger. Costs are signifigantly lowered, deadlines are met, everyone gets bonuses and is promoted to figurehead VP positions.

Interested? Please stop by and check out our webcast next week:

Rules for Enterprise Agility: Webcast, March 15th, 11am CT
IT architects, application developers, business analysts and process owners will learn about best practices for rules-oriented architecture and application development, and how business rule engines can provide substantial benefits in consistent decision making, increased revenue and decreased operating costs.

Also see: Uniqueness Typing Simplified

Also see: JSR-294 Superpackages

Featured speakers include industry analyst and veteran application development expert Dr. Adrian Bowles, and Larry Buettner, CIO of Wheels, Inc. and a member of ComputerWorld’s 2006 list of Premier 100 IT Leaders.More information: http://www.inrule.com/Event_Info.aspx


http://weblogs.asp.net/jkey/archive/2006/03/10/439991.aspx

VPC 2007 Dual Monitor support

Filed under: Technology —Tagged , , , , — simma1990 @ 3:00 pm

Also see: Chicago geek dinner 11/22

I have been trying to find a way to allow you to run Virtual PC 2007 with multiple monitors.  Natively VPC 2007 doesnt support more than 1 monitor, however you can “trick” it by using various techniques that expand the desktop area into a larger virtual desktop.

I tried using the awesome MaxiVista tool which can extend your screen across separate PC’s (think “push” remote desktop), but the new multi-monitor compatibility feature of VPC 2007 (which inexplicably does not add multi-monitor support) made this difficult since it ensures that your desktop recaptures your mouse when you move it outside of the VPC window thus preventing the extended screen from being accessible.

So, instead I tried the Remote Desktop approach mentioned in Steven Harman’s blog post.  

Here is a quick rundown on how it works:

Connect 2 monitors to your PC (more than 2 typically don’t work with this approach).   Make sure to extend your desktop onto the 2nd screen via Display Properties -> Settings.  Then launch Remote Desktop (mstsc.exe) with the “/span” flag:

mstsc /span

Then just use Remote Desktop as usual by specifying your VPC’s computer name in the connection dialog.

(more…)

Quick attempt at a validating roman numeral parser… Lots of gotchas.

Filed under: Technology —Tagged , , , — simma1990 @ 1:00 pm

Also see: New Assembly, Old .NET (and Vice-Versa)

Also see: Debugging an InvalidCastException

Also see: Spring Web Flow features and feedback request

Got asked about a roman numeral parser during an interview. I have to say that I don’t mind when the process of obtaining employment plays into my strengths. The process was quite similar to a previous process where I wrote a spoken numerics converter. Not only that, there were many similar qualities to my int parsing routines. With that in mind I think I did fairly well. The goal at the time was to produce a routine to validate numbers up to roman numeral 30 or XXX. Didn’t take long, but in the end, I had left out many different validation techniques. I really wanted to revisit the problem since I had the code correctly written in my mind. Check the algorithms out, they should handle just about anything you can throw at them at this point. If you find issues, please feel free to submit your problems, since I’d love to solidfy things a bit more. Apparently roman numeral parsing has great application in reading dates.

Roman Numeral Parsing: Code Only: Bidirectional roman numeral parsing. [EDIT: Added alternate parsing routines and performance fixes]
Integer to Spoken Numerics: Code-Only: int/long/double conversion to Spoken Numerics
Phone Number to Words: Trying my hand at the old Phone number to Words teaser project!
Integer Parsing: DWC.Algorithms.NumberUtilities


http://weblogs.asp.net/justin_rogers/archive/2004/10/24/247032.aspx

Great new Silverlight Control Skins

Filed under: Technology —Tagged , , — simma1990 @ 12:00 pm

Also see: The obligatory Halo 2 partial review and thumbs up.

Also see: Note to self: Blog about using Service Broker

One of the great things about Silverlight is that the controls are very skinable.. that is you can make them look just the way you want to! 

Corrina is the lead designer on the Silverlight controls… she has already gotten board with the (very cool) default skin we shipped at Mix08, so she cooked up a few others to keep things interesting.

All the source is posted so you can easily include them in your own projects to make your Silverlight apps look cooler, or tweak and make your own skins!  It is very easy to open them up on Expression Blend and tweak them to look just they way you want!  I’d love to see what you can come up with.

Also, check out Karen Corby’s Creating Rich, Dynamic User Interfaces with Silverlight 2 session from mix for more details

I gotta say, Red is my personal favorite..   how about you?

Bubbly

View Live Download

Red

View Live Download

Flat

View Live Download

 

Hand Written

View Live Download

 

Update (3-24): Added One more, Hand Written


http://blogs.msdn.com/brada/archive/2008/03/12/great-new-silverlight-control-skins.aspx

Java Concurrency, another series on its issues

Filed under: Technology —Tagged , , , , — simma1990 @ 7:00 am

Previously in the blog section at TSS we presented a series on the issues related to Java concurrency, continuing with what is definitely a topic of interest given the emerging processor architectures in the industry, we present this post covering yet another series on the issues of Java concurrency.

Also see: Infrequent blogging


http://feeds.feedburner.com/~r/techtarget/tsscom/blogs/~3/248003447/thread.tss

Powered by WordPress Hosted by Edublogs.