Can I get a 3X game? » 2number of comments:

JD came into the room, blew a great cloud of dust off of the blog’s admin panel, coughed briefly, and began to type a new entry without bothering to apologize for neglecting the blog for four months. “That’s what RSS readers are for, to let people keep in touch with websites that are infrequently updated,” he reasoned. “Besides, no one wants to hear a long-winded apology. Best to get to the actual content.”

I have loved 4X games (games in which you control an entire society, starting from a small village/planet, eXploring the universe, eXpanding your empire, eXploiting the resources, and eXterminating your enemies) since I first played Master of Orion back in the mid 1990’s. I like starting from scratch, gradually increasing in power, building a mighty empire.

What I don’t especially care for is that last X. I like building my empire, but I don’t really care for conquering other empires (or, far more frequently, getting conquered).

Tonight I was playing Civilization 4, happily building the Portuguese empire. I had expanded out to a small island off the coast of the main continent, I had hanging gardens and spices and all the comforts of a great empire. What I didn’t have was a strong enough military to keep it–Celtic invaders broke off our trade agreements and took over everything but my small island in an embarrassingly swift conquest.

Maybe I’ve been spoiled by Euro-style board games like Agricola and Puerto Rico, but I like having a field that I know that people can’t mess with directly, where you’re competing on how well you use the resources available to you to build your territory, rather than conquering other people’s territory.

I want there to still be a goal and competition–SimCity bores me to tears–but I want it to be indirect. I want the video game equivalent of a Eurogame. Any ideas where I can find one?

Ubiquity » 0number of comments:

Ubiquity adds easy to use commands to Firefox. It’s dead simple to use: activate it with a keyboard shortcut (I use Ctrl-Space), then type in a command. The commands autocomplete, so you don’t even have to remember or type in the whole command. Some good ones:

  • weather <location> gives you the local weather
  • tinyurl <URL> sends the URL to tinyurl and enters in the shortened URL at the current cursor location. (Great for Twitter!)
  • twitter <message> broadcasts a message on twitter
  • tag <list of comma-separated tags> saves the current tab as a bookmark and assigns it the list of tags
  • email <text> to <email address> starts a new email in Gmail with a link to the current web page
  • escape HTML entities replaces all instances of greater than signs with &gt; and all less than signs with &lt; in the selected text–very useful for HTML-enabled forms where you want to discuss HTML tags
  • translate <text> <from language> <to language> replaces the selected text in a website with a translation of that text into a new language.
  • add to google calendar <event> adds an event to google calendar, e.g. “add to google calendar dinner with parents Friday at 5pm”
  • list opens a list of all the commands Ubiquity accepts

Very spiffy.

My iPhone App is Done! » 0number of comments:

So, I’ve been gone for a while. I’ve been spending most of my time learning how to program in Objective-C and writing a new iPhone app. And now, it’s finally ready and available for download!

FoodPad IconThe FoodPad Calorie Tracker is designed to make it as easy as possible to keep track of what you eat. It remembers previously entered foods in an autocomplete list for later meals, and it helps you discover how many calories are in your favorite homemade foods with the Recipe Calculator.

You can download FoodPad from the iTunes App Store now or find out more about it.

I’ve downloaded Textmate, which I’ve heard all kinds of good things about. So far, it’s exceeded my expectations for how awesome it is. The only disappointment so far is that the Blogging bundle doesn’t play nice with Habari yet. It works fine with a test Wordpress blog that I have, so the problem is with the MetaWeblog plugin for Habari. Clicking Fetch Post returns the error “Can’t convert Array into Integer.”

I attempted to submit a bug report on the Habari website, but gave up after several attempts were rejected as spam for some reason. So, maybe some Habari person will read this instead.

0number of comments:

This is a pretty neat project: In B Flat. Be sure to include the bottom left video, which has a neat bit of poetry in it that meshes well with the music from the other videos. (via MeFi)

0number of comments:

Clean Up Facebook with a Greasemonkey Script » 1number of comments:

Facebook has been deteriorating lately; the signal-to-noise ratio is going down. The news feed is cluttered with quizzes like “Which Disney princess are you?” and with people becoming “fans” of things like music and water.

Fortunately, there are people out there who have fixed these problems for us, with an incredibly useful little Firefox add-on called Greasemonkey. If you don’t have it already, just click that link and click “Add to Firefox.”

Next, we’re going to install a script to make Facebook look like this:

After you’ve added Greasemonkey to Firefox, click on this link to install a script that will strip out Facebook ads, make it have only two columns instead of three, block app invites, and remove “fan” pages and apps from the Highlights and news feeds.

You’ll be left with just the signal without all the noise.

Command Line Tools: weather, todo, wget, tweet, and solve » 0number of comments:

Now that Cygwin is just a keyboard shortcut away, it’s time to explore a little of what it can do.

Download files: wget

This is a tool built into Cygwin that makes it easy to download files without needing a web browser. Simply type wget [a url] to download a single file.

But wget has a lot more features than that. For example, if you want to download a lot of files, you can save a list of URLs to a text file, putting each URL on its own line. Then, open cygwin and type wget -i listoffiles.txt and wget will download each file, one after another.

If you’re looking for more interesting ways to use wget, you’ll probably find this Lifehacker post relevant.

Get weather forecasts: weather

When we’re finished, you will be able to type the word weather into the console and get back a list of current local weather conditions and a local weather forecast (example). We’ll be using a shell script written by Jeremy Stanley to make this happen.

NOTE: Since this script pulls its forecast information from the U.S. National Weather Service, forecasts are only available for US territories. However, international readers can still get their current weather conditions since that data is provided by local airports.

  1. Download the latest version of the script.
  2. Open it by typing tar -xvf [filename] and change to the new folder by typing cd [new folder name].
  3. optional If you want to try the script out, typing in ./weather ATL will return the current conditions at the Atlanta airport.
  4. Now, to get your local conditions/forecast, you’ll need to edit the weatherrc file in your favorite text editor. Add the following lines to the top of the file (after the copyright notice).

    [default]
    Forecast = True
    City = Greenville Spartanburg
    St = SC
    ID = KGSP

    That’s the configuration to get my local forecast. To get yours, we’ll need to change the city, st, and ID variables to your location.

    To get a forecast, you’ll need to put in a city that the National Weather Service provides information for. Go here and select your state to find what cities are available. If you don’t want a forecast, just delete the Forecast = True line.

    To get current conditions, you’ll need to provide the METAR id for your nearest airport. Go to this map and click on the city closest to you. Under the map will be the METAR id for that airport.

    Save the weatherrc file and type ./weather into cygwin. It should give you a local forecast with current weather conditions.

  5. optional Let’s make it so that you can get your weather from anywhere in the file system and so that you don’t have to type that annoying ./ beforehand. We’re gonna have to move some files around.

    If it doesn’t already exist in your home folder, make a folder called bin (mkdir bin). Move just the weather file to that folder. Make sure it’s executable by typing chmod +x weather.

    Next, type python -c "import sys ; print sys.path" to find out where to put weather.py and weather.pyc. I put mine in /usr/lib/python2.5

    Then, move weather.1 and weatherrc.5 to /usr/share/local/man/man1, which is where cygwin stores manual files. (Once you do this, you can type man weather or man weatherrc to find out more about how to use this weather script.)

    Finally, move weatherrc to your home folder. I recommend renaming it .weatherrc, which will make it invisible to the ls command.

    Now, you’ll need to make sure cygwin knows to look in the bin folder for the weather script. Open the .bash_profile file in your home folder and make sure these lines are included and not commented out:

    if [ -d "${HOME}/bin" ] ; then
    PATH=${HOME}/bin:${PATH}
    fi

    Once you’ve done all that, type weather into cygwin, and it should give you the forecast and current conditions no matter where you are in the file system.

Manage a todo list: todo

Gina Tripani from Lifehacker has started an open source command line todo list manager. Once installed you can type things like todo add "Write blog post" to add an item to your todo list, todo ls to get a list of things to do, and todo do 1 to cross off the first thing on the list, and a lot more.

You can find plenty more about the script and how to install it at the link above.

Update twitter: tweet

This python script will let you easily send messages to Twitter from the command line. Simply copy and paste this code to a text file and save it as tweet.py (ideally in the bin directory you made above). To make it even more convenient, comment out or delete these lines:

user = raw_input(‘Username: ‘)
password = raw_input(‘Password: ‘)

and replace them with:

user = “your twitter user name”
password = “your twitter password”

Then open the .bash_profile file again and add this line to the bottom of the file:

alias tweet=’tweet.py’

Now you can type tweet "Message to send to twitter" to send tweets from the command line.

Solve math problems: solve

This one is easy: simply add the following lines to the end of your .bash_profile file:

function solve () {
awk “BEGIN { print $* ; }”
}

Now you can type solve "2*(3+4)" and it will return 14.

Hope you all find some of these tools useful! If you have any that you want to share, feel free to leave a comment.

Command Line Tools, Post 0: The Quake-Style Command Line » 0number of comments:

I am rediscovering the joys of the command line.

After a couple years of service, my laptop was getting sluggish. After the delays finally became intolerable, I ordered a new hard drive and reinstalled my system from scratch. In addition to making the laptop faster, the process has gotten me to reexamine some tools I had previously neglected.

Chief among these is Cygwin. Linux has a lot of useful command line tools, and Cygwin makes these tools available for Windows. I use it to get the weather, manage a todo list, download files, do math, and even send updates to Twitter. Why use the command line for these tasks, when there are good graphical ways of doing them? Because it’s really, really fast.

The command line drops down over my other windows, like a video game console, at the press of a simple keyboard shortcut. Then it’s just a matter of typing in what I want.

I’ve written about how to set this up before, but a few things have changed since then. Here’s how to set up a Quake-style dropdown command line.

  1. Install Cygwin. I use the e text-editor, which automatically installs Cygwin with a bunch of useful packages in order to enable its more advanced features.

  2. Install AutoHotkey. (By the way, this program has a lot more uses than just this drop-down command line. It’s something I know I haven’t explored to its full potential yet.)

  3. Install Console2. This is a free and open source console program, which is much prettier than the standard Windows Command Prompt tool. You’ll want to install the latest beta version of the software (the stable version hasn’t been updated in years). For reference, I’m using Beta #144.

  4. Download console.xml and consolecywgin.xml and put them in the same folder as Console2, replacing the console.xml file that is already there.

  5. In the Console2 folder, right click on Console2.exe and click Create Shortcut. Rename it consolecygwin.

  6. Right click that shortcut and click Properties. In the “Target” field, add -c consolecygwin.xml after the final quotation mark. Click OK.

  7. Open Autohotkey if it isn’t open already. Right-click on the Autohotkey icon in the system tray and click Edit Script.

  8. Copy and paste the contents of this file to the end of the AutoHotkey.ahk file that appears.

  9. Save and close the AutoHotkey.ahk file. Right click the Autohotkey icon and click Reload This Script.

Now if you hit the Windows Key and the ~ key, you’ll get a regular old DOS prompt. Hit Windows Key + Shift + ~, you’ll get the Cygwin prompt. Type exit into either prompt to make it go away. Press escape to hide the prompt, and press either of the hotkeys mentioned above to bring it back.

In my next post, I’ll go into how to set up some of the neat commands I mentioned earlier.

What *does* this health insurance plan cover? » 0number of comments:

Last week, AIG offered me a health insurance plan in the mail. Included was a list of things excluded from the plan:

AIGletter.png

That seems just a little restrictive. Here’s a PDF of the whole thing, which includes restrictions against injuries sustained while playing team sports, participating in races, and heart attacks.

I think I’ll pass.

Comeback » 0number of comments:

Sins of a Solar Empire is an awesome, awesome game, especially with their new Entrenchment expansion. Last night I beat my first opponent on Hard mode, and I think it makes for an interesting story:

I was playing as the Vasari, a race of high-tech aliens with expensive but powerful ships, marked in green above. My opponents were the Verlin Descendants, a human faction with cheaper ships, marked in red.

I had pressed as far as Cesaro (one of the terran worlds in the east on the map above) with little resistance, but the humans had gotten going a little faster than me and had taken over Echemmon before I got there. I set up ship factories on Cesaro, built carriers full of bomber squadrons, destroyed their starbase at Echemmon, and took over the planet. I had built my own starbase there, but neglected to upgrade its armor and weapons, thinking that the remainder of my fleet and the starbase could handle anything the humans could throw at me.

This, it turns out, was an error. Before long, the humans sent in a massive fleet, with a lot of Ogrov Torpedo Cruisers, ships designed to take out structures like starbases, and with a lot of Flak frigates, designed to shoot down my bomber squadrons. In seconds my starbase was reduced to dust, and I was forced to pull back. Their fleet chased me out of Cesaro, destroying my factories and my pitiful local defenses and decimating my fleet. I pulled back to Dione.

I had expected the humans to pursue me again, but they did not. Perhaps they wanted to tend to their new conquests. Maybe they thought I held a fleet in reserve. Maybe they were afraid my fleet would jump back to Cesaro and take out their new buildings while they attacked. Or maybe they feared Dione’s more powerful starbase, which had much thicker armor and more powerful weapons.

In any case, I was sure I was going to lose the conflict. They had a larger fleet and access to more resources. I kept waiting for them to press their advantage, but apart from brief, smaller raids on Dione, which my fleet and the starbase easily swatted away, they seemed to be leaving me alone.

I set about rebuilding my fleet, doing research into ever more powerful shields, armor, and hull designs, and pondered how I might salvage the situation. Then it came to me: I would build a Kostura Cannon.

Now, I need to explain something about how the game mechanics here: You see those lines on the map? Those indicate the paths that ships have to travel. So even though my home planet of Weierstrass and their home planet of Minox are right next to each other physically, I’d have to jump to five different planets to get there.

But there is an exception: The Vasari have a technology that lets them build Phase Gates. A friendly ship can go directly from any planet with a phase gate to any other planet with a phase gate, bypassing the long trip from planet to planet to planet.

The Kostura Cannon is a large, expensive orbital weapon that can shoot at any planet, damaging every ship and structure in orbit. More importantly, it also temporarily makes that planet a phase stabilizer node, meaning that any ship at a planet with a phase gate can jump directly to it.

It was a big gamble: I had to build several new research labs, spend a lot of money on building a prototype, and then wait while I accumulated enough resources to build the cannon itself. All the while, I expected the humans to attack–instead, I discovered later, they were building broadcast centers, attempting to take over my planets using a propaganda campaign. It nearly worked too, but I built my own media hubs just barely in time to save Dione from rebellion.

Eventually, the cannon was finished and my fleet was rebuilt. I fired the cannon at their homeworld and sent in dozens of ships. Their fleet was badly out of position, and I was able to bombard their home planet–and their Capital Ship Factory–into oblivion before they could respond.

Meanwhile, I was building more ships and researching more technologies. I readied the cannon again and fired at Akhmatova, and sent even more ships into their back lines. This second fleet included a Migrator, which I used to build a starbase in orbit above their planet. The starbase was quickly outfitted with its own phase stabilizer nodes, allowing my ships a permanent direct path past their defenses at Terradas.

Their fleet eventually arrived, but it was too late. They had spend too much of their resource advantage trying to expand by culture; their fleet was not much larger than the one that had chased me out of Echemmon. I was able to crush their fleet and take over everything from Minox to Artemis before they surrendered.