A taste of development

March 26, 2008

Brad Abrams’ pixel8 Interview Podcast posted

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

Also see: The influence of style upon methodology…

I just noticed that the good folks at Pixel8 posted a podcast I did with them a while back.  It was a fun conversation about a bit of.NET history as well as where we are going. 




Landing Page   Download show


I’d love the hear what you think!


http://blogs.msdn.com/brada/archive/2008/03/15/brad-abrams-pixel8-interview-podcast-posted.aspx

AppDomains (”application domains”)

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

Also see: Applied Metamodelling: A Foundation for Language Driven Development

An
AppDomain is a light-weight process. 
Well, if you actually measure the costs associated with an AppDomain –
especially the first one you create, which has some additional costs that are
amortized over all subsequent ones – then “light-weight” deserves some
explanation:

 

A Win32
process is heavy-weight compared to a Unix process.  A Win32 thread is heavy-weight compared
to a Unix thread, particularly if you are using a non-kernel user threads
package on Unix.  A good design for
Windows will create and destroy processes at a low rate, will have a small
number of processes, and will have a small number of threads in each
process.

 

Towards
the end of V1, we did some capacity testing using ASP.NET.  At that time, we were able to squeeze
1000 very simple applications /
AppDomains into a single worker process. 
Presumably that process would have had 50-100 threads active in it, even
under heavy load.  If we had used OS
processes for each application, we would have 1000 CLRs with 1000 GC heaps.  More disturbing, we would have at least
10,000 threads.  This would reserve
10 GB of VM just for their default 1 MB stacks (though it would only commit a
fraction of that memory).  All those
threads would completely swamp the OS scheduler.

(more…)

Life Calculus

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

Also see: Java Frameworks State of the (dis)Union.

Yesterday my coworkers redecorated my office.  Pictures
in this blog entry are photos of their work.  Strangely enough, I found myself
quite appreciative of their act of vandalism.  :-)

Today is my 40th birthday.  Like most other days,
I started by walking the dog and making a To-Do list.  However, today’s list
has a special item:

  • Decide whether to have a mid-life crisis or not.

:-)

I’ll confess I am not entirely thrilled about being 40.  It
doesn’t seem that long ago that 40 seemed far away.  Now that it’s here, I
realize that it’s not what I expected.  I thought my life at 40 would be
different.

Many who know me would assert that I have nothing to
complain about.  And they would be correct.  My life has been filled with
blessings of all kinds, for which I am truly thankful.  I am a published
author.  Most would consider me financially successful.  I am in a career where
I enjoy my work.

But still…

As the old saying goes, nobody lies on their deathbed
wishing they had spent more time at the office.

Like most everybody else, when I was 30 I looked ahead ten
years and formed a picture in my mind.  My life today doesn’t match that
picture very well.  Examples:

  • I thought by now I would be more solid in the quality of
    my relationships with my loved ones and in the practice of my faith.

  • I thought by now I would be a better guitar player.
  • There’s a messy pile in my study that has been there for
    ten years.  (Yes, we moved six years ago.  The heap moved too.)  I thought
    it would be cleaned up by now.

  • I always assumed that by 40 I would have learned to
    exercise regularly and stop eating junk food.

(more…)

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…)

Powered by WordPress Hosted by Edublogs.