Technical


Alpha 1 version is up for brave souls to try.

You can scroll down that page and read my alpha introduction to the game.  It uses Silverlight 2 Beta 2, so just follow the directions to install it (it’s fairly fast), and email me if there are problems.  Have fun!

It seems to be back up now.

Hopefully it will stay that way, though I need to do some things to make sure that no more trouble happens.

The blog was down from Friday sometime through yesterday, and what I think happened was that hackers used some kind of program to exploit a security vulnerability in Wordpress, the blog software I use, since I had not upgraded to the very latest version (2.6 currently).

As a result, my server company shutdown the devinrose subdomain of my site, which is where the blog lives, and I had to spend several hours upgrading Wordpress using only FTP and not the nice clean web interface, talking with their technical support, emailing their admins, et cetera, before finally they said things were back online, but even then they didn’t work because the subdomain had quit propagating through the internet’s DNS servers blah blah blah now things seem to be working, but I need to install some plugins and ban people who are probably spammers blah blah.

Your patience is appreciated.  :)

Here’s the latest screenshot of my Silverlight Tower Defense game:

There are currently five distinct tower types and images to go along with them; the cloud-looking things are the first enemy type that has been created, with the life meter directly over it.  The clouds animate as they move, getting bigger and smaller (because the enemy is supposed to be a ferocious “blob” creature).

New screenshot:

I have created two new tower types

Poison towers: the green ones, poison enemies which drains their life for some period of time
Stun towers: Brownish-red ones, damage enemies and have a chance to cause them to not move for some time

in addition to the old ones:

Der Basic towers: white ones, can be upgraded to become obliterators (more on this in future posts)
Ground Pounder towers: Orange ones, powerful towers that upgrade to fire rapidly

The blue and red rectangles are the enemies.

Here are some websites I have been using that I wanted to pass along:

  1. CatholicExchange.com: web portal, new articles each day, news headlines, etc.
  2. Pandora.com: free music supported by ads; you tell it which bands you like and it plays those bands and others like them (tip: some of the ads they show are immodest (not pornographic, but women in bikinis, etc., so I keep a separate web browser open to pandora and resize the window so the ads aren’t shown)
  3. Google Analytics: Web site traffic monitoring; I think J.R. Andrews turned me onto this one, and I have it monitoring blog traffic.
  4. iGoogle: This is my main homepage now, and I use the Google Reader widget on it that is an RSS reader for all the blogs I am interested in. I also have stock info, news items, my Google calendar, etc.

If you have any useful or fun sites, feel free to share them. If you are especially motivated, the way that you make hyperlinks using the (somewhat primitive) comment boxes on this wordpress blog is by typing this in: <a href=”http://www.mycoolsite.com/coolstuff”>My Cool Site</a>.

“If you can see the lights/
shine in front of me/
If you can see the lights/
shout out where you’ll be…”
– Simple Minds, “See the Lights”

That song has nothing to do with this blog post.

I blogged sometime back about Microsoft’s new technology, called Silverlight, that allows desktop-programming clods like me the ability to program web apps (like Gmail or Google Maps).

Adam Gretencord rightly let some air out of my sails with the current reality of web app programming, which Adobe does own, and the situation is the same today.

However, I am trying my hand at my first web game, a tower defense clone.  I have little imagination when it comes to inventing new game genres, so I am first trying to just copy an existing, relatively well-contained, game in the tower defense vein.

It is in “alpha” right now, which is a bombastic way of indicating I’m not even half-way done, but it is also much smaller than my (overly) ambitious real-time strategy game Crescendo, which I have put on indefinite hold while trying out this new technology.

Here is a screenshot of the game in its current state.:

Every time I go to any web page for FirstThings.com, I get what looks like a link site put up by cyber squatters who take over domains from people if they forget to renew them (or hack their websites maliciously).

Does anyone know what’s going on?

I just updated the blog’s WordPress software to the new version; everything looks like it upgraded properly, but if you see something weird or something doesn’t work anymore, let me know, so I can try to fix it.

The bad news: Housing prices on average are down across much of the nation due to the sub-prime mortgage mess and resultant fallout.

The good news: Austin, Texas housing prices remain strong!

The chart below shows the median house price and the increase or decrease from the year before:

2007 $168,806 (8.49%)
2006 $155,594 (14.17%)
2005 $136,277 (1.88%)
2004 $133,760 (1.98%)
2003 $131,164 (-3.00%)
2002 $135,215 (12.68%)
2001 $120,000 (18.77%)

Last year (2007) for many metro areas saw a drop in prices, but Austin on average increased almost 10%!  This year will probably be even worse for most cities, so I am interested to see how well Austin weathers the storm; I predict that in 2008 the median price will still increase, and will give a total guesstimate value of 4%.

It’s a little good news amid the housing gloom if you live in Austin.

I just added an easy way to browse our blog’s archives, which you can find on the right sidebar.

The archives display the blog posts without images or fanfare until you click on the title of a post that you want to see in full glory, then it will show the images.

It’s hard to believe, but I started the blog back in May of 2005!

My thanks to the internet Wordpress gurus who made this blog plugin work.

Jonathan started an online association of Catholic computer programmers, and I just joined it as the 2nd member!

If you are a nerd cool dude like me, you should join it, too.

Hello friends,

Two readers have emailed us saying they have had problems commenting (likely due to password/registration issues).  If you are having a problem, please email me: devinsrose@gmail.com (there is also an email link on my name, Devin, near the upper right area of the blog).  I will try to reset your password and email you the new one.  I don’t know what the problem could be.

Thanks y’all!

So asked the Joker with grudging respect after Batman ruined his (nefarious) fun in the Tim Burton Batman movie (around 1989).

I’m asking myself the same question about Microsoft.  It seems all we hear about nowadays is Google–they’re the hot topic and the cool company.  Isn’t Microsoft old and stodgy by now?  Hasn’t Apple gained majority market share over them?

The answers to those questions are no and no.

Microsoft is still crushing Apple in market share; it’s still not even close nor will be in the forseeable future.  Apple’s ads are better, and I love to watch them, but Macs are a small fraction of the computer market.

As far as stodgy, software developers know better.  Microsoft makes the best software development tools in the world.  Period.  The only people who will challenge that obvious truth are fanatical Linux or Mac developers, and even then they will usually admit that debugging with Microsoft Visual Studio is better than with gdb.

Microsoft has taken another massive leap forward recently in the software development world by unveiling WPF, Visual Studio 2008, C# 3.0, and Silverlight.

I don’t have time to explain all those buzzwords, and readers of this blog for the most part would not care what they mean as far as details go, so I will summarize:

WPF is their new way of designing user interfaces and making it easy for developers and graphics/usability designers to collaborate, as well as connecting the user interface to the meat of the program in powerful ways.

Visual Studio 2008 is the latest edition of the premier software development tool in the world.  It runs circles around the competition, which for the most part was humiliated by this tool in version 6.0 which they released 11 years ago.

C# is Microsoft’s Java + C++ programming language that offers more powerful features than either of those two languages.  In version 3.0 they made it even more powerful.  And this is coming from yours truly, a novice C# programmer and a professional C++ programmer of 7 years.

Silverlight is the Microsoft’s answer for the web and cross-platform (Linux, Mac).  It allows developers to write code in C# and run it on the web!  Think awesome games that can run in your browser and on all platforms.  It’s not here yet, but it will be soon.  Think rich internet apps that make Gmail look primitive.  Those will come too.

He who controls the spice, controls the universe.  Microsoft controls the software development spice, and they cannot be defeated by Google or anyone else until this dominance is broken.  Right now, no one is even close, and in the ways that Microsoft has fallen behind Google and other companies in the past few years, they are catching up quickly.

Don’t get me wrong: Google is a great company.  I own their stock.  I switched my email to them.  I look at my iGoogle homepage more frequently than any other with news, blog feeds, my stock portfolio, and Google calendar.  It’s going to be an awesome battle, but I don’t see how they can top Microsoft with Microsoft’s courting of the people like me who write the software.

My friend and former coworker, whom I will call “The H”, went indie sometime back to work on his own RTS game, dubbed Orcs vs. Martians.

Well, I am impressed to tell you that he has reached the Beta milestone on his game.  I don’t think you can download it yet, or at least I didn’t see the download link, but perhaps he will have an open beta at some point.

For those not well-versed in software development, a software release usually goes through several phases:

  1. Development (most of the code is written during this phase)
  2. Alpha (all main features are complete, first testing begins, refinement and bug fixes)
  3. Beta (could be one or more Beta phases, more testing to flush out all bad bugs)
  4. Release candidate (could be many of them, each one could potentially go out the door)
  5. Ship it!

I got to  play the alpha and look forward to seeing the progress that he has made.  An RTS game is an ambitious genre for an independent (indie) game developer to take on as his first project, but the H has done so.  8)

Well, okay, it’s not really mayhem but rather a required feature of any Real-time Strategy (RTS) Game: The mini-map.

I just put in the rudiments of my mini-map for Crescendo:

What you are looking at, in the upper part of this screen shot, is the main game play area, where trees are planted, chickens are flocking around, etc.  But at the bottom left, that area is a view that shows the entire game field in miniature form, hence, “mini-map”.

The  only thing the mini-map currently shows is the terrain.  The yellow at the bottom left is the Utopia terrain, and the green squares surrounding it are the Earth terrains that the chickens (who as you know are really squirrels) have fertilized from Ground (which is all the brownish color on the map).

At the top-right of the mini-map the (evil) machine race has gray squares to represent their Metal and Concrete terrains.

The other shaded gray rectangles to the right of the mini-map are areas of the heads-up display where I will show the stats on the selected unit, the menu bar, etc.

The next step is to beef up the mini-map by showing the creatures on it (as small little dots), then to make the selected unit stats and the buttons to control the unit (tell it to attack, move, etc.).

Well, it turns out that people named Devin Rose in this world are, at least with two data points collected, pretty clever and cool.

Why? Well, I changed my email address from an old one to my current gmail one with the Texas Alliance for Life (TAL), but TAL entered the address slightly incorrectly into their system, omitting the crucial ’s’, my middle initial, from the address, resulting in another Devin Rose getting the email.

Now, some other person who is not as cool as apparently all Devin Rose’s are, would have thought, “weird email”, deleted it, and moved on with their life. But not Devin Rose–I mean, not me, but the other one–who tracked me down through this blog, guessed that I was the Devin Rose that TAL intended to email, and notified me very cleverly of the error.

How’s that for a good Samaritan?

So, I hope that whoever shares your name out there in the world is as sharp and thoughtful as Devin Rose seems to be. And Devin, if you’re reading this, rock on!

I reached a milestone today in Crescendo development:  Pathfinding is working!

For those of you who pathfind naturally, this may not seem like much, but let me assure you that it is a great accomplishment for any silly computer creature, whose intelligence is only as great as what we program it to do.

Pathfinding is simply finding a path around obstacles from a starting point to and ending point.  When you walk around a table to go into your living room, you are pathfinding.  You probably also avoided walls, chairs, couches, slippery toys left on the ground, etc., on your way to where you wanted to go.

What we humans and almost all other creatures do naturally takes a great deal of effort to program such that a computer creature can do it, even in its very limited computer game world.

Fortunately, pathfinding is a problem in computer science that is important, and so algorithms have been developed to solve it and do so quickly.  I used an excellent and free pathfinding library called MicroPather.

Now my creatures in Crescendo don’t run into each other and trees when they move, but instead intelligently find paths around obstacles.  In the screenshot below, the pink squares are the paths that creatures have plotted out for themselves to follow:

Notice the (evil) knight in the upper left: that is a creature from the non-nature kingdom destroying the trees that the squirrels/chickens have been working so hard to plant.  What a jerk, right?  That’s why the nature kingdom needs some bears, some big bruisers to defend its primeval forests.  8)

I have mostly ignored the hype around facebook and myspace, but those sites, as well as sites like digg.com, reddit.com, and del.icio.us (which are called “social bookmarking” sites, I have gathered), have reached incredible popularity.

I have joined del.icio.us and digg.com and have been trying them out to see whether they are useful to me.

One note about the sites: I was disappointed when I went to digg.com and reddit.com because many of the links that become the most popular due to people’s votes are links to vulgar or very derogatory material.

In case you don’t know how they work, what happens is people might read an interesting story on a webpage, or a cool blog post, and they will then vote for that link, which sends their vote to the social bookmarking site and lets others go read about it. If they like it, they will also vote for it, and if a site gets enough votes, it will show up on the main page (of digg.com or the others), so that all people will see it.

Unfortunately, this naturally leads to people with twisted hearts voting for evil sites, and so those often rise to the top–kind of the worst of human nature coming out. But the idea is pretty cool, I think, and not all of the links voted for are bad, most are morally neutral I would say.

So, my question is: Do you use any of the sites I referenced?

If so, what do you like best about them, or how are they useful to you?

I’ve been working on the graphics a bit with Crescendo, but before you get your hopes up that the graphics are looking better than just plain colored rectangles, let me disillusion you with this screenshot from the game:


What are those white looking things all bunched up together, you might ask? Well, of course, I would answer, those are the squirrels who are gathering the (currently invisible) acorns and planting them in the green earth, which they have (invisibly) transformed from the brown ground terrain so that the ground would be fertile.

Why doesn’t the squirrel look like a squirrel, you cleverly point out. Well, that’s because I downloaded some freeware images from a website, and though the website’s artist had created images of cows, deer, rats, bats, wolves, and other creatures, he didn’t create any squirrels. So I have used one of his chicken images to show the squirrels.

The squirrel/chicken heading in the northeast direction by itself is an attack squirrel who has spotted the enemy, whose terrain are represented by the grey and (slightly darker) grey tiles.

I think that this game is going to be great for children because they get to use lots of imagination for just about every aspect of it.

My real-time strategy game, code-named Crescendo, had been put on the backburner throughout all of my first year of marriage to Katie.

I have no regrets about this, but I am excited to announce that I am working on it again!  In the screenshot below, you can see that there is a small yellow square near the middle of the screen, which is a “selected” creature that I clicked on with the mouse to control it.

One kingdom is at the bottom left of the screen, and the opposing kingdom is at the upper right.  Eventually their kingdoms grow and they battle each other.

(Yes, it still has a long way to go before it is released and sells a million copies ;) )

…killing your dudes.

I apologize to all of our Vanguard readers who may have no idea what this picture and caption mean or why it is hilariously funny.

I will try to briefly explain it, but I will fail to communicate the humor most likely.

There is a genre of computer (video) game called “real-time strategy” or RTS. An RTS game is where you build up a little city of buildings, people, and army men and so does your opponent, and then you send out your army men to try to destroy your opponent’s city and men (and he does likewise; it’s all very civil).

Typically in these games, the people (non-army men) are weak in attack and defense strength, because they are the ones gathering money to build your city and army men. The people are gathering money inside your base, and your army men protect them–usually.

But, what often happens in these games is that your opponent cleverly devises a way to get past your guard of army men and inside of your base. Then all of his army men start destroying your people (or your “dudes” or best yet, “d00dz”), cutting off your supply of money and crippling you.

He might, especially if he is a 15-year old nerdy young man, taunt you by typing a message to you in the game that says something to the effect of: “I’m in your base, killing your dudes”. That’s what these cute cats are saying, too, albeit with poor spelling which can be expected of cats, as well as of 15-year old hackers.

Now do you see why it’s so funny? :D

“Let the buyer beware.”

I just read an article on the New York Times’ site about Countrywide Financial and its current problems due to the sub-prime mortgage crash.

Interestingly, the author of the article blames Countrywide for what it implies are its greedy practices that–gasp!–didn’t have the best interests of its loan-purchasing customers at heart.  The customers who purchased these loans with horrible interest rates and terms are not held responsible for their actions.

(more…)

I’ve known for some time that Devin’s the most brilliant man in the world. And, it looks like his co-workers are getting the message, too. Congratulations, my love! Check out the high praises listed below from Devin’s manager:

“Devin started his career at NI in 2001 in the MAX group, where he worked on the MAX configuration database known as MXS and other MAX components such as Portable Configuration, Remote System Configuration, and MAX installers.

Devin became the lead MXS developer in late 2002, taking over the reigns of this core NI technology during the MAX 3.0 development cycle. Over the next four years Devin led the MXS team to deliver key features for MAX clients and to improve the scalability, robustness, and performance of MXS. Much of this was to enable driver groups to leverage their existing configuration investment in MXS in new ways and on new platforms. For example, Devin extended MXS to enable off-line driver configuration in LabVIEW Project, and he played a major role in porting MXS for the Linux releases of NI-DAQmx and Modular Instruments drivers. He later led the VxWorks port of MXS for PowerPC based NI PACs.

Devin has proven himself to be an effective mentor and cross-group collaborator. He is enthusiastic and ready to help other developers when they need assistance, taking the time to share his expertise or to jump right in and help drive the right solution. He has repeatedly been praised by people around R&D saying that he provided time-critical assistance to solve a development issue or to resolve a customer support problem.

Earlier this year Devin transferred to the LabVIEW group where he brings his considerable talents to the Blueprint and System Diagram initiatives.

Please join with me in congratulating Devin on his past accomplishments, his promotion and his strong commitment to NI R&D.”

Today I was promoted to Senior Software Engineer!

What can I say, but God is good? :) At my company, you start out on the “technical track” as Software Engineer, then next comes Staff Software Engineer, and then Senior. There are other positions after Senior, but it will be many years before I would even be considered for them.

The neat thing is, I have realized how much I have learned in my 6.5 years of professional software development since graduating college. I work at a great company with very intelligent coworkers. Many of them far exceed me in programming talent, skill, and understanding, and I have learned a lot from them.

It is therefore an honor to be given a promotion by my company that accurately recognizes the value of my work. Some people say titles are meaningless, and in some places they are, but when they really do reflect the underlying reality, they are very meaningful.

(more…)

Our computer is not working right now due (I think) to a battery that went kaput.  I have ordered a new one to fix it, but it will be a few days before it arrives.

Quick chicken update:  For the first time last night, completely of their own accord, the chickens one-by-one went into their henhouse at dusk!

Gertrude, the least adventurous one, surprisingly led the way.  Interestingly, none of them “walked up the plank” but instead just leapt-flew to the top of the plank near the entrance and went in.

Lobelia, the middle one as far as daring goes, pathetically could not figure out how to land on the ramp and became quite distressed.  The other chickens were calling to her and poking their head out of the door to encourage her, but to no avail.

Fortunately, Katie rescued her by picking her up and placing her gingerly in the henhouse.

…a learning computer.
Arnold Schwarzenegger, Terminator II

That’s one of my favorite Arnold quotes because it uses just the right amount of real computer science terminology to sound believable, but of course in reality neural networks can’t do anything even close to what our brains can do. That’s why it’s science fiction!

My second favorite ridiculous science fiction quote is from Pauly Shore in the very dumb movie Son-in-law (if you haven’t seen it, don’t), where he impresses his girlfriend’s little computer-hacker brother by getting his computer working again, explaining: “I greased the subroutines and tweaked the P-RAM”.

However, the above quotes have nothing to do with this post, which involves yours truly, by the grace of God, fixing the guest toilet! It appears not to leak anymore, though only time will tell. The tank wouldn’t stand up quite straight, and so we are now calling it the “leaning toilet of Pisa”, but it doesn’t leak, and that’s what matters!

(more…)

I wrote a little program this weekend that lets an expecting couple enter in their baby’s name and their estimate at the baby’s conception date, then it just shows you how old the baby is and how many days are left until birth:

You can keep the program running all the time, and it will automatically increment your baby’s age in days and decrement the number of days until birth.

Technical note: It is the second program I have written using C# (”C sharp”), a programming language that Microsoft created some years ago.

You can download BabyCountdown.exe and use it for free!

Since Katie was at her theology seminar all day, I thought I would surprise her by fixing things around the house that have been on my “Big Fix-It Man” list for months.

What I naively thought would be a simple venture in home repair, as usual, grew to be a near-emergency and took the entire day.

(more…)

This post is for my own benefit and others who run into a problem where the Wordpress blog doesn’t not allow you to sign out (logout).

I fixed this by going to the place in Firefore where cookies are stored (Tools >> Options, Privacy, Show Cookies) then deleting all of the cookies for my blog.  Doing so deleted the login information, and then others could log in.

 
The rains have visited during the past week, here in Austin. For that, we are all very grateful and are breathing a collective central Texas sigh of relief at this reprieve from summer’s heat.
 
But, one resutl is that the grass is growing now. Bless the Lord, we have grass. And, bless the Lord, it’s growing properly. And, bless the Lord, we have no lawn mower here at the future Rose residence on quiet Turtleback Lane. No lawnmower. And, the grass is growing.
 
So, today, I walked outside with a pair of scissors and set about snipping off the stems and heads of the tallest grass patches. And, now they’re all snipped. It seems to me that, if my goal is to become a Proverbs 31 woman, I have a long way to go and best start today with managing this household in a creative and thorough way. :)
 
Readers, would you like to share stories about your housekeeping or landscaping creativity? YKC!

Next Page »