Friday, April 29, 2016

Getting Custom Compose Key Sequences to Work in Debian: The Odyssey

Having just spent a very frustrating afternoon trying to get custom compose key sequences working on my new Debian install, I figured I would write a quick post to help others who might be in the same boat.

(For those who don't know, the compose key is a metonym for a fabulous system in Linux that lets you easily type thousands of symbols not found on keyboards. It usually has to be enabled in keyboard settings and can be set to a wide number of keys, but usually the right Windows or Alt keys are popular. Once you have it enabled, you can simply type <Compose Key>-^-a to get â. Or <Compose Key>-"-o to get ö. Or <Compose Key>-o-c to get ©, and so on and so on. There are typically hundreds or thousands of such combinations available by default, ranging from letters from common and uncommon languages to all sorts of esoteric symbols and punctuation [such as the interrobang, ‽, Compose Key-!-?]. Many of them are set up with key combinations that sort of make sense based on the component parts so it's often easy to guess without needing to specifically remember all the combinations. However, I digress.)

This all started with my desire to type some Hawaiian this afternoon, and for that I needed an ʻokina, the letter ‘ʻ’ at the start of the word ʻokina (which is not a quotation mark, despite how it looks; it's Unicode symbol U+02BB, “MODIFIER LETTER TURNED COMMA” [‽]). This is one symbol that isn't in the extensive list of default compose key sequences, but it's not too difficult to add your own—by default in Linux Mint Debian Edition (and I'm guessing plain Debian) there's a file in your home directory called .XCompose where you can simply look at the syntax of all the other entries and define your own sequence based on that.

This file came over in my transfer to Debian, and from what I could find it was what you used to define custom compose key sequences there too, but my sequence I'd added to print an ʻokina in LMDE simply wasn't working, nor were any of the additional ones I created as further tests. (Testing is pretty simple because the .XCompose file is read by programs each time they start up, so you can make a change, re-open a terminal or another text editor, and immediately try it out.)

From some more Googling and reading around, I found the suggestion to add the phrase
export GTK_IM_MODULE=xim # Warning, see below.
to my .profile file in my home directory. Now I'm not super-clear on what all of this means myself, but as best I can tell IM refers to “input method,” and xim refers to an older and more limited input method used by the X server that handles graphical things on Linux. GTK is a toolkit (bunch of code) for making graphical user interfaces that underlies quite a lot of software, along with another toolkit, Qt, and they apparently both have their own internal input methods that seem to not allow custom compose key sequences.

Anyway, what I'm actually trying to say here, is that the above code does not appear to work anymore, although it apparently did in the past. With it in place my custom compose sequence no longer beeped at me angrily like it did before, but simply silently failed with no output. After several hours of following comments in Stack Trace and nearly a score of reboots and reloggings in a futile effort to get things to work, I finally chanced upon a comment suggesting the use of “uim” instead of “xim” (‘u’ for ‘universal;’ I think it's a newer input mode with more functionality). This finally worked for me so I've added the following lines to my .profile file (I added the QT one for completeness, though I don't know how necessary it really is):
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
Once you've done that, you'll need to make sure you have the actual uim package installed; on Debian, run
$ sudo apt-get install uim
Once you've done that, log out and log back in and things should hopefully work now. Hope that helps! As for me:

◦ Confounding compose key conundrum: cracked! ✓

Tuesday, April 26, 2016

Distrohopping to Debian

Well, after about two months of waffling, I finally went ahead yesterday and installed Debian (short ‘e’ as in ‘bed’ if you're curious) on my desktop like I've been meaning to. And it wasn't even all that difficult, actually!

When I first decided to switch to using Linux as my main operating system over two years ago, I took a look at the dizzying number of distros out there, and…

…actually, let's back up and establish some terminology first. “Linux” isn't an operating system like Windows or Mac OS, per se. It's the name of a kernel—the central core of an operating system, that loads first and handles all the interactions between all of the programs and the hardware. Linux is often used however as a metonym (technically, a synecdoche) for the many different operating systems built on top of the Linux kernel. These usually go by the name distributions, or distros for short. Some popular ones are Linux Mint, Debian, Ubuntu, openSUSE, Fedora, and Manjaro (taken from http://distrowatch.com/). What distinguishes one distro from another could be anything—large things like what kind of packaging system they use (so that software packages created for one distro won't work on another) to cosmetic things like what desktop manager they use (many distros allow you a choice of several) to a million and one little variables that can be tweaked such as the default programs included. There are literally hundreds of distros out there, though the vast majority of them are based on just a handful of main distributions (since it's a lot easier [relatively speaking] to create a new distro by modifying an existing one than it is to create one from scratch). Anyway, back to what I was saying…

When I first decided to switch to using Linux as my main operating system over two years ago, I took a look at the dizzying number of distros out there, and decided to go with Linux Mint Debian Edition, or LMDE. Let's unpack that a bit:

  • Linux Mint (by itself) is a very popular distribution made to be easy-to-use out of the box and good for Linux newcomers. It's based on…
    • Ubuntu, long and widely considered the most popular distribution partly due to a similar reputation, which is itself based on…
      • Debian, one of the oldest distributions, dating all the way back to 1993 and the distribution with the largest number of distros based upon it.
Anyway, as you can see, Linux Mint is basically two steps removed from its original base. A few years ago a new distro called Linux Mint Debian Edition was introduced, based directly on Debian and cutting out the middleman of Ubuntu so to speak. I liked the idea of keeping things simple, and since I was still a relative newcomer to Linux I decided to stick with a distribution with a reputation for user-friendliness.

Fast forward to today, and with a few more years' experience with Linux under my belt I decided to once again ‘cut out the middle man’ and switch directly to Debian itself. I'm no power user, but I know my way around a command line interface well enough, and I feel there's a benefit to using a more widely-used distribution (LMDE was, unfortunately, always kind of a side project to the main Linux Mint version).

Debian apparently used to have a reputation for being difficult to install, but I found the whole installation process for Debian 8.4 “Jessie” pretty simple, even with my setup having root and home installed on different partitions. (Which allowed me to keep all my user data when switching; very convenient!) I had a few wrinkles along the way, to be sure; I've got a separate hard drive for storing all my big files that don't need to take up space on my SSD like photos and music, and had forgotten how my more Linux-experienced friend Graham had mounted and linked it when we first set up my computer (the drive was actually auto-mounted and I could access it, just not the way my shortcuts were set up to expect). Thankfully, Graham was able to swing by after work and get it sorted, and with my current level of experience I think I could duplicate it in the future if necessary. There've been a few more small issues but so far I've been able to solve them all, and it looks like everything is working.

Oh, and to explain the title, it's a tongue-in-cheek reference to “distrohopping,” the practice of trying out lots of different Linux distros, sometimes without any sort of “main” distribution. Obviously, trying a second distro in as many years doesn't exactly qualify. A hui hou!

Sunday, April 17, 2016

Vectorizing Flags

The Europa Universalis IV wiki had a contest running for the last two weeks to help get things updated after the new 1.16 patch, but along with all the needed text was a request for higher-resolution versions of a whole bunch of country flags which previously existed only as tiny 192x128 pixel images. I figured it'd be a fun chance to brush up on my Inkscape skills, so I vectorized a number of flags and created higher-resolution versions. I'm pretty happy with how they turned out, so I thought I'd share some of the more interesting ones. These aren't actually the vector images themselves, just PNGs, as SVG images often still don't play well with some web browsers.

Berar
Berar is a small Indian nation that doesn't exist at the start of the game in 1444, but can appear later on. This one was a fun exercise in tracing the entire outer shape, followed by removing the cutouts using the difference operation on a series of paths with the main one. (A path in Inkscape is essentially any arbitrarily shaped object defined by a series of vertices and spline curves between them such that they define either a curve or an area. They can have a large variety of mathematical Boolean operations such as union, difference, intersection, exclusion, etc. applied to them. This lets you build up a path from a collection of smaller paths, or, as in this case, punch out a bunch of holes in a large path.)

Caddo
Caddo is a North American nation from the Mississippi region. Of course, whether they ever actually had a flag like this questionable; all nations in EU IV require a flag for identification, but given that it covers the whole world from 1444 to 1821 there are a lot of little nations that likely never had an official flag, so Paradox Interactive has to come up with something based on…I don't know, really, presumably important symbols in that nation's history and the like. Anyway, regardless of its historical veracity, I like the geometric shapes on this one.

Kazembe
Kazembe is a small nation in the interior of Africa, one of the new nations added in the 1.16 patch in fact. This one was a massive amount of fun to trace for some reason despite (or maybe because of?) the slight asymmetries present throughout the entire thing.

Quito
Quito is a small nation in the Andes, in modern-day Ecuador (and lending its name to Ecuador's capital). This is another nice set of geometric shapes (I did tend to pick ones that would fairly quick to do, rather than ones having complicated images).

Riga
Riga is a tiny nation on the Baltic Sea in 1444, now the capital of modern-day Latvia. That staff on the right took a lot of time trying to replicate all the little bumps in the original image (and having to guess a lot, given the tiny resolution). Most of the bumps are actually small circles added to the path of the staff.

Sioux
Sioux is a nation in the Great Plains region of North America, with some cool geometrical shapes. Getting the rotation and placement of the tipi shapes around the edge was an interesting challenge. (Also, go read the article on tipis on Wikipedia, it's pretty interesting.)

Tarascan
Tarascan is a Mesoamerican nation towards the western edge of the region, and historically one of the largest rivals of the Aztecs. Similar to the Berar flag, this is just a large circle (with a radial gradient) with a whole bunch of shapes punched out of it.

Tyo
Tyo is another of the new Central African nation added in the 1.16 patch. This was a great chance to use a clipping mask; each of the little half-circle shapes is actually part of a full, nearly-circular ellipse, with a copy of the brown background circle serving as a clipping mask so you only see the parts of them inside the circle. This one was quite fun to do.

Yaka
Yaka is the third new Central African nation here (being new, they didn't have high-resolution flags so there were several to do). This was a pretty simple case of vector tracing.

Finally, here's the flag of Kutai, a small nation on the eastern shores of Borneo. This one took a lot longer than the others (which typically took less than twenty minutes) due to the amount of detail present:

Kutai
I did this one because I really liked the original flag, and once played a game as Kutai partly because of that. By the way, here's the original file I was working from (I'm not sure why the tiger's tongue is orange):


Yep, that's the actual size. (Same for all of the other flags, of course.) While most of it wasn't too difficult to vectorize (just time-consuming), I couldn't really recover any detail from that crown thing, so I kind of made something up based on what I thought it was supposed to look like.

All in all, a fun little project, and it's been fun to get back to working with vector images again. A hui hou!

Wednesday, April 6, 2016

Keeping Busy, with Art!

Well, here I am, unemployed for the first time in…over five years, I think? It's strange to have this much free time on my hands, but by no means unpleasant. Apart from the usual stuff of looking around for a new job, I'm relishing the chance to get back to doing something I haven't done as much of lately: art.

I've never really considered myself much good at doing real-world pencil-to-paper type art, so when I discovered programs like Inkscape, GIMP, and Blender, I was quite excited. I've spent many happy hours playing around with each of them, but with a full-time job I found I just didn't seem to have as much creative energy left at the end of the day. (Probably because I was often spending a lot of it at work coding!) With all this free time on my hands, though, I'm looking forward to getting back into creating more visual stuff again.

In fact, I got back into Blender this week, and came up with some simple but neat-looking stuff. I haven't used Blender for even longer than Inkscape or GIMP (due to occasionally having need of 2D image manipulation but not much need for 3D modeling) so I was worried I'd need to completely relearn it, but it looks like quite a lot of it is coming back to me already after a little brushing up. Monday I created a simple test of Blender's more physically-accurate renderer Cycles with a small brushed-metal model and some simple lights:


I think it came out pretty nicely for not having used Blender in a few year (and not really using Cycles even at that point, as it was pretty new back then). I'd like to really push my Blender skills and improve them while I have the chance, so I'll probably have more practice work to post on this blog in the next few weeks. And maybe some other stuff too, who knows? A hui hou!

Sunday, March 27, 2016

(Historic) Eruptive Action at Puʻu Huluhulu

Last week some friends from work and I went for a hike up on Mauna Kea near the Visitor Information Station. On our way down we stopped at Puʻu Huluhulu (which I've written about before) for a short hike since one of my friends hadn't been there before.

I wasn't originally planning to take any pictures, but as we were rounding the western end I was struck by something I hadn't noticed before. Move your mouse over the picture below to see it highlighted! (Which effect, incidentally, is a new trick I worked out just for this post. Mobile users, I'm not sure how mouseover effects are emulated, I'm afraid…try long-pressing on the image, perhaps?)

Western end of Puʻu Huluhulu, just off Saddle Road.

What I noticed, which can be seen better in the close up images below, is that at both sides on this end of the hill are pieces of flat rock sticking upwards at an angle. Given how they flank an eruptive cinder cone, I'm drawn to the conclusion that these are pieces of the overlying lava flow through which Puʻu Huluhulu erupted. (I keep wanting to call them the “crust” since they're both pretty thin—a few inches thick at most, especially the one on the right.) Presumably the rock connecting them was pulverized or ejected in the eruption of Puʻu Huluhulu and these pieces were far enough from the center to remain where they ended up.

Close-ups of the two bits of up-thrust crust.

Two miscellaneous comments on the first photo:
  1. That sky is surprisingly blue. We actually came down from Mauna Kea a little early because the weather was threatening rain, and there were a lot of patchy clouds and patches of fog on the way down. The wind was blowing pretty hard, and there were a lot of tiny water droplets in the air, so it surprises me there's that much blue sky to be seen.
  2. That picture also happens to be a (cropped) panorama I took with my phone. As someone who's put together a fair few panoramas by hand I remember being a bit disappointed in my previous attempts to use the auto-panorama feature in my camera software. I only took this one as something of an experiment, but perhaps the camera software was updated when my phone upgraded to Android 5.1 or something, because I'm actually pretty impressed with the result (I even have a slightly-differently cropped version as my desktop background right now). I'm looking forward to using this more in the future; as should be apparent from this blog I love panoramas, but putting them together is a bit time-consuming so hopefully this'll allow me to take more of them in the future.
Anyway, I thought this was kind of interesting as I didn't notice those bits of crust the last time I was there. A hui hou!


Monday, March 14, 2016

Looking Back, Moving On

Well, in the two weeks since my last post I've been coming to terms with my coming unemployment, and doing a lot of thinking about where to take my life from here. I don't have anything definite to report yet, but I think I'm finally ready to start looking around.

I went to a seminar at Subaru last Monday that was very helpful in this regard. The seminar was on Data Visualization, by Mark SubbaRao from the Adler Planetarium in Chicago, and in the process of watching incredible visualizations of hundreds of thousands of galaxies and learning about how correct color map choice can dramatically increase the chances of a doctor noticing problems with your arteries, I came to a realization: I really enjoy data visualization.

During the talk I found myself thinking about how the times I'd had the most fun at my job working for the JAC and EAO were when I was designing systems and writing scripts to visualize data. Looking back even further, I've always loved seeing things like artists' impressions of exotic astronomical systems, and when I first discovered graphics programs like Inkscape, the GIMP, and Blender, one of the purposes I put them towards after figuring out how to use them was making my own such artist's impressions. (Some of my astronomy-related artwork on this blog can be seen here.) I'm a very visual person, and love figuring out new ways to make abstract concepts and abstruse ideas more comprehensible.

In fact, speaking of systems for visualizing data, I'm reminded that I never did introduce the project that occupied the majority of my time at work last year, the SCUBA-2 Calibration Database. This is a webpage linked from the EAO website that allows access to a database containing information on every calibration for SCUBA-2, the JCMT's powerful sub-millimeter continuum camera. You can search dates, date ranges, or pick a semester and project code to get a list of all calibrations taken on nights that project took data. You can filter by specific calibrators if you want, and when the results have been returned there are download links that will take you to the Canadian Advanced Data Centre where you can download all raw and reduced files associated with an observation.

Of course, the best part in my opinion is the option to graph the results you get. You have to enable the option, but doing so will let you graph anything from a single night's worth of observations to every single calibration ever taken with SCUBA-2. I had a lot of fun learning how to get a dynamically created image served up on command and writing the graphing script to get an interesting and useful image out. I've been adding some new features I always wanted to get around to in to my development version recently, so there will also be some new stuff released in the next two weeks.

(If you're wondering what these “Arcsec” and “Peak” FCFs you can plot are, FCF stands for Flux Calibration Factor, and they're essentially the ratio of a particular number to what that number would be if there were no pesky atmosphere getting in the way and attenuating the energy received from it. Put simply, Peak FCFs deal with the maximum brightness of an object and are very sensitive to proper focus of the telescope, while Arcsecond FCFs deal with the total energy received and thus should be more resistant to small changes in focus. Being out of focus moves the energy around in the image, but you have to be really out of focus for it to move outside the area being measured. The gray horizontal bar across the graph represents the range the FCFs should generally be in; as you can see, there are plenty of times this is not the case, and there a whole host of reasons why this is not the case ranging from dish deformation due to residual heat at the start of the night to long-term drifts in the Water Vapor Meter that estimates the transparency of the astmosphere.)

Anyway, that's how things have been going for me. I'm looking to start getting back into graphic design a bit after being introduced by a coworker to the work of a friend of his dealing with using Blender for scientific data visualization, so who knows, I might have some new projects to show here in the near future. We'll see! A hui hou!

Tuesday, March 1, 2016

Automating Yourself Out of a Job

Today marks the one-year anniversary of the James Clerk Maxwell Telescope running under East Asian Observatory management. Going to work this morning, I can definitively state that being unemployed was not on my mind, yet that's the situation I find myself facing this evening after going over my end-of-probation report with my boss.

And it's not even as if I did anything bad or poorly, either. If anything, I did too well. The job I was originally hired for, three years ago, was as a Data Quality Assistant, meant to handle simple but time-consuming tasks that my boss didn't have the time for but needed done. I've steadily worked to automate and reduce the amount of time spent manually doing the recurring parts, to the point where I'm not really doing that particular job anymore, or at least for no more than a tiny fraction of my time each week. I've automated it so effectively that there isn't really a need for that position anymore, and with the telescope facing a budget shortfall this year and the only positions left to fill requiring people with skillsets I don't have, it was a simple business decision from the top to cut costs. (Just to be clear, I'm not being replaced or anything; my position simply won't exist after this month due to there being no need for it.)

At this point I'm torn between conflicting thoughts, between pride that I did such a good job automating stuff with no formal computer science education, and the sad realization that that still puts me out of a job. It's such a terrible feeling, too; if I'd been fired for being lazy, or embezzling money or something it'd feel like a justifiable consequence, but being let go for doing your job too well flips around into a sort of cruel irony. This isn't the kind of reward for hard work I was always taught to expect! It feels like a major disincentive to working hard in the future, if that's a potential outcome.

As for what comes next? I don't know. I'm still employed through the end of the month so there'll be a lot of cleaning up code loose ends and passing things on to people. Then after that? We'll see, I guess. I'm still kind of in shock.

Monday, February 29, 2016

A Wedding! And the Flu.

It's been pretty quiet on the ol’ blog front here this month. The main reason for this is that I was in California last weekend for my sister's wedding, then caught something (apparently the flu) just before flying home on Monday. I then spent the rest of the week primarily being miserable and bedridden, barely able even to passively enjoy anything let alone write a blog post. A week later and I've recovered enough to write this short post, though I'm still tiring pretty early in the evening.

Other than getting sick, it was a good trip. I finally finished the doily I'd been working on for practice since last summer and gave it to my sister as a wedding present:

And here's a picture of the happy couple themselves:


Congratulations guys!

And happy leap year while I'm at it for everyone else, I guess. I dunno, I'm still a little addled from the flu. A hui hou!

Saturday, February 13, 2016

Gravity Waves!

Two days ago, on February 11th, the LIGO and Virgo interferometer collaborations announced the first direct observations of gravity waves (actually detected on September 14th, 2015). Why is this a big deal? Gravity waves are one of the predictions of Einstein's general theory of relativity, predicted a hundred years ago in 1916. They were also the last major prediction of general relativity not to have been experimentally verified, and have been the object of search for over fifty years, making this an especially momentous detection.

Gravity waves are caused by the finite speed of propagation of gravity, and are created when any mass accelerates (they're analogous to the electromagnetic radiation emitted by an accelerating charged particle). They're essentially ripples in spacetime, like the wake of a boat on water. However, due to the weakness of gravity, they're very, very weak unless you're talking about extreme concentrations of mass in extremely tiny regions. Thus, the best place to look for them is in binary systems of neutron stars or black holes, and indeed the detected waves most likely came from one of the latter.

You see, all orbiting masses radiate energy away in the form of gravity waves. For most systems, the amount of energy is negligible—for the Earth-Sun system, the radiated energy is about 200 watts; probably less energy than the computer I'm typing this on is using at the moment. The energy lost causes orbiting bodies to move closer together over time, though for the Earth-Sun system the distance works out to about the width of a proton per day (i.e., nothing to worry about). However, for dense masses in close proximity to each other like two orbiting black holes, the amount can be significant enough that it causes the orbits to decay much more rapidly.

Eventually the orbits shrink enough that the two objects (black holes, in this case) merge into a single object. As this happens the frequency of the radiated waves will rapidly rise, then level off in a way that gives a lot of information about the objects involved. In this case, we can say that the two objects were black holes with roughly 36 and 29 times the mass of the Sun, respectively. Unfortunately, due to the fact that only two interferometers actually detected the signal, we can't tell exactly where it came from, merely constrain it to an arc mostly within the South Celestial Hemisphere. It was likely pretty far away though, approximately \(1.3\pm0.6\) billion light-years away.

There's an interesting feedback effect that happens with this whole process: as the orbits radiate energy away as gravity waves, they shrink, but as they shrink, they radiate more energy away, which causes them to shrink faster, which makes them emit more energy, etc. From the detected signal, it turns out that in the last 20 thousandths of a second before the merger the two black holes were radiating away \(3.6\times10^{49}\) watts of power as gravity waves; to put that in perspective, that's more energy than is emitted as electromagnetic radiation by all the stars in the observable universe combined. (It really says something about the weakness of gravity that it took this absolutely mind-boggling amount of energy to actually be observable.)

All in all, this was a major step forward in verifying the last major prediction of general relativity, as well as opening up a whole new avenue of investigation for astrophysicists. Now that we know it's possible, hopefully we'll see more work put into additional, more sensitive interferometers in the future that'll allow us to detect weaker gravitational waves from more sources. A hui hou!

Sunday, January 31, 2016

We Need a SimFarm Remake


Anyone else out there remember playing SimFarm? It was one of Maxis' games from the early-mid 90's, though I didn't get to play it until around the turn of the millennium. Billed as “SimCity's country cousin” it was never as popular as its urban relative, as seen by the way SimCity has had multiple different versions over the years and a successful remake in Cities: Skylines, while SimFarm…hasn't.

And I think that's a shame, because I think there's the seed of a great game in SimFarm just waiting for an updated and modernized remake to bring it out. For those who haven't played it, SimFarm casts you as the owner of a small plot of land, empty but for your cozy little farm house and just waiting for you to develop it into a thriving family farm. Farming happens from a bird's-eye perspective where you oversee your various fields and animals. The weather changes over the course of an in-game year, and the climate of your starting area (you get to pick your location on a map of the lower forty-eight states at the start of the game) affects how well various crops do (apples do well in Washington, sunflowers in Kansas, etc.).

There a number of natural disasters that can happen at random, such as tornadoes, floods, and plagues of locusts, all of which can affect your farm in different ways. Somewhere on the map there's a small town, which periodically expands with different types of districts, some of which can also affect your farm (getting a fairground allows you to enter animals in competitions at the fair, and the airport allows you to buy and use cropdusters). Success in the game consists of managing your farm well (whether crops or animals) in such a way as to turn a profit, which allows you to buy additional land and expand your farm further.

All in all it was a fun experience (at least to my ~10-year-old self), and one that isn't really replicated in any game I'm aware of (please enlighten me if one exists!). To forestall potential criticism, I'm aware that there are games that play on similar themes. Probably the biggest and most famous is Farming Simulator 2015. Unlike SimFarm, however, Farming Simulator 2015 is operated in first-person mode with the player manually controlling various pieces of equipment. SimFarm, in contrast, has the player simply ordering things to be done (such as planting or harvesting a field), and the appropriate equipment springs into action if available (presumably piloted by invisible family or farm hands). Farming Simulator 2015 also uses pre-built maps that can't really be meaningfully changed, while a lot of SimFarm's charm comes from the way you can rearrange the map the way you see fit to build your dream farm.

I mentioned SimCity earlier, because I wanted to mention its 2015 remake Cities: Skylines by developer Colossal Order. The latest SimCity sequel (usually known as SimCity 2013) was widely panned by critics and players alike, and the people at Colossal Order decided to take it upon themselves to create a SimCity-like game from the ground up. The fruit of their efforts was Cities: Skylines, a critically-acclaimed, updated and modernized city-building game making full use of the many advances in the years since the original it was based on came out. I recount this to show what I'd like to see for SimFarm: someone to create a similar-but-modernized game from the ground up for today's audience taking advantage of today's technology. I'm not in a position to make one myself, but hey, maybe Colossal Order is taking suggestions on what to make next…