The joys of the Hadoops.

Bullshit job. Was on a 64 meg file…


Starting phase 1/2
13/08/06 17:50:07 INFO hdfs.DFSClient: Created HDFS_DELEGATION_TOKEN token 809466 for jacmorgan on
13/08/06 17:50:07 INFO security.TokenCache: Got dt for hdfs://;uri=;t.service=
13/08/06 17:50:07 INFO input.FileInputFormat: Total input paths to process : 1
13/08/06 17:50:07 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library
13/08/06 17:50:07 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 0e7005136e4160ed4cc157c4ddd7f4f1c6e11ffa]
13/08/06 17:50:21 INFO mapred.JobClient: Running job: job_201306241658_277200
13/08/06 17:50:23 INFO mapred.JobClient: map 0% reduce 0%
13/08/06 17:51:05 INFO mapred.JobClient: map 100% reduce 0%
13/08/06 19:11:03 INFO mapred.JobClient: map 100% reduce 2%
13/08/06 19:11:09 INFO mapred.JobClient: map 100% reduce 4%
13/08/06 19:11:17 INFO mapred.JobClient: map 100% reduce 9%
13/08/06 19:11:27 INFO mapred.JobClient: map 100% reduce 31%
13/08/06 19:11:36 INFO mapred.JobClient: map 100% reduce 33%
13/08/06 19:11:43 INFO mapred.JobClient: map 100% reduce 42%
13/08/06 19:11:45 INFO mapred.JobClient: map 100% reduce 43%
13/08/06 19:11:54 INFO mapred.JobClient: map 100% reduce 49%
13/08/06 19:12:08 INFO mapred.JobClient: map 100% reduce 70%
13/08/06 19:12:20 INFO mapred.JobClient: map 100% reduce 76%
13/08/06 19:12:25 INFO mapred.JobClient: map 100% reduce 89%
13/08/06 19:12:28 INFO mapred.JobClient: map 100% reduce 96%
13/08/06 19:12:33 INFO mapred.JobClient: map 100% reduce 98%
13/08/06 19:12:54 INFO mapred.JobClient: map 100% reduce 99%
13/08/06 19:13:23 INFO mapred.JobClient: map 100% reduce 100%
13/08/06 19:13:38 INFO mapred.JobClient: Job complete: job_201306241658_277200
13/08/06 19:13:41 INFO mapred.JobClient: Counters: 28
13/08/06 19:13:41 INFO mapred.JobClient: Job Counters
13/08/06 19:13:41 INFO mapred.JobClient: Launched reduce tasks=400
13/08/06 19:13:41 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=9134
13/08/06 19:13:41 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
13/08/06 19:13:41 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
13/08/06 19:13:41 INFO mapred.JobClient: Launched map tasks=1
13/08/06 19:13:41 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=12087236
13/08/06 19:13:41 INFO mapred.JobClient: File Output Format Counters
13/08/06 19:13:41 INFO mapred.JobClient: Bytes Written=707444
13/08/06 19:13:41 INFO mapred.JobClient: FileSystemCounters
13/08/06 19:13:41 INFO mapred.JobClient: FILE_BYTES_READ=194976
13/08/06 19:13:41 INFO mapred.JobClient: HDFS_BYTES_READ=6459407
13/08/06 19:13:41 INFO mapred.JobClient: FILE_BYTES_WRITTEN=24925231
13/08/06 19:13:41 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=707444
13/08/06 19:13:41 INFO mapred.JobClient: File Input Format Counters
13/08/06 19:13:41 INFO mapred.JobClient: Bytes Read=6459286
13/08/06 19:13:41 INFO mapred.JobClient: Map-Reduce Framework
13/08/06 19:13:41 INFO mapred.JobClient: Map output materialized bytes=193522
13/08/06 19:13:41 INFO mapred.JobClient: Map input records=3548
13/08/06 19:13:41 INFO mapred.JobClient: Reduce shuffle bytes=193522
13/08/06 19:13:41 INFO mapred.JobClient: Spilled Records=746
13/08/06 19:13:41 INFO mapred.JobClient: Map output bytes=708190
13/08/06 19:13:41 INFO mapred.JobClient: CPU time spent (ms)=665880
13/08/06 19:13:41 INFO mapred.JobClient: Total committed heap usage (bytes)=456494940160
13/08/06 19:13:41 INFO mapred.JobClient: Combine input records=0
13/08/06 19:13:41 INFO mapred.JobClient: SPLIT_RAW_BYTES=121
13/08/06 19:13:41 INFO mapred.JobClient: Reduce input records=373
13/08/06 19:13:41 INFO mapred.JobClient: Reduce input groups=20
13/08/06 19:13:41 INFO mapred.JobClient: Combine output records=0
13/08/06 19:13:41 INFO mapred.JobClient: Physical memory (bytes) snapshot=74638561280
13/08/06 19:13:41 INFO mapred.JobClient: Reduce output records=373
13/08/06 19:13:41 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1456794771456
13/08/06 19:13:41 INFO mapred.JobClient: Map output records=373
Starting phase 2/2
13/08/06 19:14:10 INFO hdfs.DFSClient: Created HDFS_DELEGATION_TOKEN token 809821 for jacmorgan on
13/08/06 19:14:10 INFO security.TokenCache: Got dt for /user/jacmorgan/DW_CATEGORY_GROUPINGS.txt;uri=;t.service=
13/08/06 19:14:10 INFO input.FileInputFormat: Total input paths to process : 400
13/08/06 19:14:21 INFO mapred.JobClient: Running job: job_201306241658_277470
13/08/06 19:14:24 INFO mapred.JobClient: map 0% reduce 0%
13/08/06 19:15:31 INFO mapred.JobClient: map 3% reduce 0%
13/08/06 19:15:59 INFO mapred.JobClient: map 91% reduce 0%
13/08/06 19:16:14 INFO mapred.JobClient: map 95% reduce 0%
13/08/06 19:16:33 INFO mapred.JobClient: map 100% reduce 0%
13/08/06 19:17:57 INFO mapred.JobClient: map 100% reduce 1%
13/08/06 19:18:25 INFO mapred.JobClient: map 100% reduce 2%
13/08/06 19:18:37 INFO mapred.JobClient: map 100% reduce 3%
13/08/06 19:18:49 INFO mapred.JobClient: map 100% reduce 4%
13/08/06 19:19:06 INFO mapred.JobClient: map 100% reduce 6%
13/08/06 19:19:17 INFO mapred.JobClient: map 100% reduce 7%
13/08/06 19:19:42 INFO mapred.JobClient: map 100% reduce 11%
13/08/06 19:19:57 INFO mapred.JobClient: map 100% reduce 15%
13/08/06 19:20:23 INFO mapred.JobClient: map 100% reduce 19%
13/08/06 19:20:44 INFO mapred.JobClient: map 100% reduce 20%
13/08/06 19:21:01 INFO mapred.JobClient: map 100% reduce 24%
13/08/06 19:21:22 INFO mapred.JobClient: map 100% reduce 26%
13/08/06 19:21:41 INFO mapred.JobClient: map 100% reduce 30%
13/08/06 19:22:00 INFO mapred.JobClient: map 100% reduce 34%
13/08/06 19:22:25 INFO mapred.JobClient: map 100% reduce 41%
13/08/06 19:22:48 INFO mapred.JobClient: map 100% reduce 48%
13/08/06 19:23:34 INFO mapred.JobClient: map 100% reduce 53%
13/08/06 19:24:06 INFO mapred.JobClient: map 100% reduce 66%
13/08/06 19:24:19 INFO mapred.JobClient: map 100% reduce 72%
13/08/06 19:24:46 INFO mapred.JobClient: map 100% reduce 77%
13/08/06 19:25:16 INFO mapred.JobClient: map 100% reduce 84%
13/08/06 19:25:44 INFO mapred.JobClient: map 100% reduce 90%
13/08/06 19:26:06 INFO mapred.JobClient: map 100% reduce 95%
13/08/06 19:26:33 INFO mapred.JobClient: map 100% reduce 98%
13/08/06 19:27:06 INFO mapred.JobClient: map 100% reduce 99%
13/08/06 19:27:24 INFO mapred.JobClient: map 100% reduce 100%
13/08/06 19:27:50 INFO mapred.JobClient: Job complete: job_201306241658_277470
13/08/06 19:28:01 INFO mapred.JobClient: Counters: 29
13/08/06 19:28:01 INFO mapred.JobClient: Job Counters
13/08/06 19:28:01 INFO mapred.JobClient: Launched reduce tasks=400
13/08/06 19:28:01 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=11763547
13/08/06 19:28:01 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
13/08/06 19:28:01 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
13/08/06 19:28:01 INFO mapred.JobClient: Rack-local map tasks=10
13/08/06 19:28:01 INFO mapred.JobClient: Launched map tasks=691
13/08/06 19:28:01 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=57274285
13/08/06 19:28:01 INFO mapred.JobClient: File Output Format Counters
13/08/06 19:28:01 INFO mapred.JobClient: Bytes Written=418
13/08/06 19:28:01 INFO mapred.JobClient: FileSystemCounters
13/08/06 19:28:01 INFO mapred.JobClient: FILE_BYTES_READ=422822
13/08/06 19:28:01 INFO mapred.JobClient: HDFS_BYTES_READ=765044
13/08/06 19:28:01 INFO mapred.JobClient: FILE_BYTES_WRITTEN=57564659
13/08/06 19:28:01 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=418
13/08/06 19:28:01 INFO mapred.JobClient: File Input Format Counters
13/08/06 19:28:01 INFO mapred.JobClient: Bytes Read=707444
13/08/06 19:28:01 INFO mapred.JobClient: Map-Reduce Framework
13/08/06 19:28:01 INFO mapred.JobClient: Map output materialized bytes=3305757
13/08/06 19:28:01 INFO mapred.JobClient: Map input records=373
13/08/06 19:28:01 INFO mapred.JobClient: Reduce shuffle bytes=3305757
13/08/06 19:28:01 INFO mapred.JobClient: Spilled Records=1568
13/08/06 19:28:01 INFO mapred.JobClient: Map output bytes=1499400
13/08/06 19:28:01 INFO mapred.JobClient: CPU time spent (ms)=12397980
13/08/06 19:28:01 INFO mapred.JobClient: Total committed heap usage (bytes)=1162561519616
13/08/06 19:28:01 INFO mapred.JobClient: Combine input records=0
13/08/06 19:28:01 INFO mapred.JobClient: SPLIT_RAW_BYTES=57600
13/08/06 19:28:01 INFO mapred.JobClient: Reduce input records=784
13/08/06 19:28:01 INFO mapred.JobClient: Reduce input groups=57
13/08/06 19:28:01 INFO mapred.JobClient: Combine output records=0
13/08/06 19:28:01 INFO mapred.JobClient: Physical memory (bytes) snapshot=925201244160
13/08/06 19:28:01 INFO mapred.JobClient: Reduce output records=57
13/08/06 19:28:01 INFO mapred.JobClient: Virtual memory (bytes) snapshot=2479001276416
13/08/06 19:28:01 INFO mapred.JobClient: Map output records=784


~2 hours.


We may need more Hadoops. (btw, was counting more or less.)

(And we have a decent cluster. Just miffed by this run. Feel free to check the Hadoop website for our current size.)

Class Review


The lectures presented in this class were enjoyable and fun to go to, especially the early ones. However, as class went on, to me, things traveled into harder and harder material, that involved a lot of higher level math. The problem there for me was a lot of the math was skimmed over, so the focus was put on the wrong spots. I know I took Calc 3 and Statistics, and I may be an abnormality here, but I took my last math class outside of differential equations about 2 years ago at tech. So the stuff isn’t entirely fresh in my mind. (This doesn’t mean that I am not familiar with the subjects however, it just means that I need a reminder every once and a while).

So, two ways I could address this is:
1) Studying on my own ahead of time, if I knew what portion I needed a refresher on.

2) Having that basic level re-introduced in class.

Now, normally, there wouldn’t be much issue with this, and I am perfectly capable of taking notes and figuring it out outside of class, but the in-class breaks detracted from this, because usually it involved either asking Robert, whom isn’t the best of help when it comes to explaining things, or Sterling, whom is just as lost as me sometimes, as he is another one of those people who have taken the math years ago.

So the in class breaks? For the first few weeks, I felt it was very productive, but that also may be because I was able to help those around me understand the concepts.

I would also suggest maybe a refresher on matrix math, or at least jacovians, as that can get complicated, and much of the class is based around it, as it favors matrix approaches to problems instead of what I am going to call algorithmic, or equation based solutions.


Polls are terrible.

Firstly, I believe this because to be due to the inconsistency of the posting time.  I know Piazza was sending me emails, but I have no clue where it was sending them , as I could never find them, and I have no clue where to change my email in that system. So that is kinda an issue on Piazza’s side.

Secondly, the polls were posted inconsistently, so I couldn’t develop much of a pattern of going onto piazza to answer them.  So I would have enjoyed a bit of regularity as to when to get on to answer them. Also, on that note, Piazza didn’t really put the polls into one place, And I can think of at least one occasion where I got on to attempt to answer a poll, and didn’t because I thought it wasn’t posted, but it turned out it was buried under a pile of other peoples questions.

As far as poll content, the polls were not really posted predictably enough to get a group of people together on a regular basis to do them.  And the content was mostly only useful as far as I personally felt as to attempt to figure out what would be on the next quiz. Though this even changed throughout the semester, as this became a bit less reliable. So over all, I am meh on the subject of polls, but in my opinion, the best two things that could be done to improve them would be:

1)      Have them set up to be sent out on a regular timer, like for example an hour after class is finished. This way, groups can be formed for this. Also this way, it turns them into regular focus questions. My biggest issue is the regularity as it is anyways. Currently, I just make an attempt to answer them a few hours before class just to make sure I do it.

2)      Have them be a different color on Piazza or something to separate them from the regular comments. That way they are identifiable.


As far as the assignments go, I feel they where enjoyable, with my biggest issue with them being a lack of practical implementation experience for the robot ones, (The Rovio one didn’t count in my mind. The Rovio is a whole another issue, and it would be a great project on another platform.)

The best project was the first one. This one had the implementation and the practical of using our code on a real robot. The worst project was most likely the Rovio one.

I would also say the last project was funky, and didn’t quite follow the pattern set forth by the other projects. Mostly, because I wish I had a bit more guidance on what to pick as far as stuff. I feel like getting pointed to a website and told pick two isn’t the best way to go about it. At least not with that timeframe given for that project. It felt rushed to me.

And the Kinematics one was special. Besides sitting in a hotel puking as I was attempting to do it, It comes back to the sudden switch into hard math.


The quizzes shifted for me as the semester went on. The beginning I thought they were great, as they followed the polls online, and to me where at a good level of difficulty. Then they shifted and tangent a bit, and became a hair harder to follow and guess what we should study for them.


I think the portfolio is a great concept, as I was attempting to start this on my own already.  I’m sorry I didn’t put as much time as I should have when I was working on it, but It became a bit of an afterthought. What I think would be cool, and more effective then the portfolio and poll system as it stands is merge the polls and the portfolio assignments, having the class talk about the class weekly. This way, it becomes a genuine reflection on the class, forces us to focus on it, and It most importantly gives you feedback as to what we are thinking, way more so then a poll question that can be guessed. You can also then better judge our individual interests and what we focus on during the class. Once again, another positive.

So yes, I think more portfolio would be a good thing. One other class I was in took this concept soo far as to have a tumbler account set up for the class, and had us post something about the papers for the class, could be anything, before the class started. This gave him both insight into our thoughts, and forced us to be prepared for class.

So yes to portfolios, and yes to more.

Final Comments

Andrew is awesome. And I loved the AR Drone. Lets do more with it in the future.  Also, I loved the class, it was one of the more enjoyable ones I’ve been in. I just wish that it stayed with robots for the last project.  What I really wanted to do for the last project was implement vision mapping for the AR Drone. Problem was I didn’t find anything on my quickish search that would allow me to do that with SLAM. Mostly, I suppose I wasn’t looking hard enough, but I still think that would have been an awesome last assignment. Even if we implemented (or attempted) to implement our own slam algorithm. Actually, that would have been 100 times better than running two others in my book.

A start at Outpost Abaniden

Abaniden, or “Constructpaddles” was viewed to be a large mountain with a waterhead by the locals. Of course, dwarfs, bieng dwarfs, looked at all the value in that mountain, loaded with surface metals like Limonite, Cassiterite, and Terahedrite, and thought them themselves, “Lets Level it.” And thus, the outpost Abaniden was born, a small squad of 7 dwarfs, whom believed they where destined to level that  bloody mountain.

Spring 125

We dug a hole. It was a glorious hole. It even ramped down 5 levels. We love our hole. Now we shall hide our depot down there, with a little cute village. THEN! WE SHALL LEVEL THE VILE MOUNTAIN!

Summer 125

Wow time passes quickly as you build walls… Zipp, I blame you completely for this. Also, I blame you for the cavern that just collapsed on the miner dwarf, killing him.

10 Migrants arrived, bolstering the fortress carving crew. 2 of them where children.

We also seem to have a minimalist metal toolchain up and running.

Autumn 125

Blah! More digging. 6 more dwarfs showed up. Some stuff got dug, and quarters were laid out.

A Kae has stolen a <pig tail fiber hood>. meh. And a <pig tail fiber trousers>… dun really care bout spare clothes… and a sock… and a sheep wool cloak. a pig tail fiber left mitten. and a copper battle axe. This means war!

The outpost liason and some merchants have arrived. And the Kea stole a rough claro opal. I think the Kae got away. Deactivated the military.

We got a depot built and the traders started unloading. We sent some silver and pickaxes to them.

Winter 125

The merchants disembarked, and we demanded wood, and cats. Lots, and lots of cats.

Fuck! Why are buzzards stealing shit now! Posting the guards up at the merchants. it seems all the food we bought is currently getting stolen!

Our trade arangements this year are they want:

  • maces (142%)
  • legwear (121%)
  • anvils (164%)
  • prepared meals (196%)
  • fish (182%)
  • leather Earings (143%)
  • blocks ( 116%)
  • meat ( 118%)
  • scepters (153%)
  • cheese (117%)
  • thread(170%)

And a Kolbold appears, we sick some soldiers on him.

Spring 126 -> Miloti

Journey to Azothfeb

Today, we journey for the land of Azothfeb, Immortalityarrow. I think it has a nice ring to it. It is time for us to get to work! To dig! Before the dingomen get hungry. We expect a supply caravan by winter, and we plan to hold out till then. For the glory of all of Zulban Gasol!

Spring 128

The land was flat, and as thus, we decided to do something strange to dwarfs. Start a surface farm next to the river, with our focus of industry on the domains of farming and fishing. A small, underground barracks for storage will be dug however. However, it seems we where followed by a small pack of goats. Our lookout mistook them for goatmen. Quite a scare. A rather large fishing and farming industry was set up for the trading seasons, and the digging of a rocky living quarters for 12 was constructed. We can also note a shortage of farmers and fishers in the village, so we can expect the next immigrant wave to be retasked and set to purpose.

Summer 128

We continue our collecting and harvesting operations, our farms operating at sub-par capacity due to the lack of planters servicing them. 2 Migrants arrived into the village, A fishworker, whom shall be set to work immediately, and a gemcutter, who shall be retasked as a farmer-dwarf to help put out 200+ seeds into the earth. Both have seem to taken nicely to their new professions. The new set of stills and farmers workshops was constructed for the future threshers and brewers, and the raw materials stockpile was successfully excavated, and set for wood and stone. A heavy deforestation initiative was then started to help fuel the initial stockpile.

Autumn 128

We activated one Stillery, in an attempt to boost booze reserves. The masons, Carpenter  and cradtdwarf stalls also opened up this month. Our main issue still is our lack of workers for our industries. A trader depot was constructed for the winter onset of traders. Our mason was removed from fishworking duties. Another wave of migrants arrived. out of these, a trader and bookeeper will be chosen. 6 dwarfs, with two children. The merchants, along with our liason, has also arrived during this season. We started moving what little tradegoods we have, mostly foodstock and some booze. The finished good room was also finished.

Winter 128

Our broker is a slow, slow, slow man, and couldnt be arsed to make it to the trade depot fast enough to actually attempt to trade with the merchants. Way to be a hero. Seems drinking rum was way more important than trading goods. Maybe next year!

Also, seriously need more dwarfs. My industry is hampered by a lack of workers. Excavation of the first set of dorms has been completed.

Spring 129

The dwarfs have finally finalized the trade agreements. We are looking at for this year:

  • War Hammers  @ 188%
  • Shields/Bucklers @ 192%
  • Headwear @ 200 %
  • meat @ 114%
  • amulets @ 114%
  • Leather waterskins @ 164%
  • seeds @ 114%
  • blocks @ 126@
  • bracelets @ 119%
  • anvils @ 193%
  • scepters @ 110%

Migrants also arrived, numbering 25.

One child grew to become an adult.

And Oh Shit. Fun is happening.

The Wherehedgehog Kedom Jolupur has come! A large hedgehog twisted into humanoid form. It is crazed for blood and flesh. Its eyes glow scarlet. Its brown hair is patchy. You will now know why you fear the night.

A squad of 10 was formed to oppose this new threat, made out of whatever we could find, in addition to our one hunter armed with wooden bolts.The squad was then assembled and given orders to attack the hedgehog. It would be an interesting battle, mostly due to the complete lack of weapons. Kedom attacked my woodcutter, lacking on firmly, tearing apart muscles, and destroying bones.Then suddenly, in the midst of the onslaught, Kedom reverted to his human form and attempted to flee from the site, my dwarfs in hot pursuit, even with my woodsman, Avuz Fikodaran, laying on the ground bleeding out before any care could be provided to her. Kedom escaped this time.

In the meantime, a dwarf was taken by the mood and claimed a mason’s workshop, begaining a mysterious construction, Muthir Nilum, a gabbro armour stand.

An elven caravan then arrived. We hoped to gain weapons from the elves to defend ourselves with.

Summer 129

Did I mention this was the most clueless trading session ever? Either way, we traded alot of crafts and some booze for a hair of booze, and a lot of shields. A standing military of 5 dwarfs was created, in hopes of having trained warriors for the next attack.

Autumn 129

A snatcher appeared! A goblin thief, Smunstu Slaxuaxusp, has attempted to sneak into our village. He then appeared to have ran off. One of the dwarfs withdrew from society. Also hit a small galenda deposit. A new wave of migrants arrived, numbering 11, bringing us up to a total of 60 dwarves.

A planter was stricken by melancoly.

A new thief, Tikikishraybin, has shown up at our village. The military has been set upon him, though the hunters make short work of him before the military can arrive.

The outpost Liason from Zulban Gasol arrived with a caravan.

Winter 129

The planter, who was piorly stuck by melancoly, has died of thirst, her chosen method of suicide being to stop drinking. And once again, our broker is failure, and cannot manage to find time to sit at the depot to save his life, generating us another tradeless year. A goblin Thief appeared, killing a Farmer before making a getaway.

Also, one of these years, we will manage to get ourselves an anvil.

On a positive note, One of our dwarfs has given birth, helping to offset our losses.

Our miner entered a fey mood and started a mysterious construction in a mason’s workshop, resulting in Limubas, a diorite statue of Ngom Whiteterror, valued at 6600.

This item is a msterfully deisgned image of Ngom Whiteterror the goblin and Brassonslaught the Organized Equlaity the giant tigerin diorite by Lor Derenmuzish. Brassonslaught the Organized Equality is striking down Ngom Whiteterror. The artwork relates to the killing of the goblin Ngom Whiteterror by the giant tiger Brassonslaught the Organized Equality in the hills of Goring in 73.

Yay for history lessons from our miners. Another goblin thief appeared, fleeing before he could do any harm.

Spring 130

A goblin thief attempted to raid us again, stabbing a baby before we could return the favor and kill the thief. I think we are changing our general orders to include posting a sentry at the entrance to the fort. Kib was also apointed chief medical know-it-all, seeing as we have no trained doctors at this fort.

A migration wave hit, giving us a net gain of 24 dwarfs.

Expanded the charcoal making operation, and created a second newbie doctor.

One kid grew up. Also, another thief, it seems these things are getting more and more common. He was spotted stabbing a child in the farms near the surface, within visual range of the guardpost. After a long battle with much pain for the soldiers, eventually the goblin was killed. The damage was 1 dwarf that needed a crutch, 2 dwarfs that cannot stand, and 3 dwarfs that cant grasp a weapon.

The elvish caravan then arrived.

Summer 130

Sold 3725 worth of trade goods to the elfs. Bought a wren, some wine barrels, wooden weapons, crutches and splints to replace those used on the soldiers, giving the traders 660 profit. They did not accept the deal, so back off to 880 profit. Dropped back to 1129, they accepted. Soldiers re-equiped with wooden weapons and armour from the elves, tannery started mass-producing armour in an attempt to lessen future casualties. A diplomat also left unhappy, but noone really cares about them.

A new baby dwarf was born.

Atis Dorenoltar became mayor, and mandated the construction of goods, namely, he desires for us to make picks for him. Also, we will need to manufactire quarters for him. So we are back to needed a anvil to sate the mayor.

Libash Duthalushrir was found dead via dehydration. She will be layed to rest in the crypt, and a new recuit will take her place. First of the deaths from the last goblin thief. 10 more dwarfs arived, bringing our numbers up to 23.

And then a vile force of darkness arrived… Damnit, why didnt we get an anvil? It turns out a significant force of goblins, numbering 11 goblin hammermen, and 1 goblin swordsman, whom seemed to be riding a bat, took great interest in us. A giant militia was quickly created.

Firstly, all my hunters were organized into a ranged militia, the familial torches.

Secondly, we just started creating militias.

All my forces were set to station, and we had enough crossbows that I dared to create a second ranged squad, and two melee squads.

And dwarfs flew at their attackers. Kicks and punches and blows everywhere. Very quickly, 5 dwarfs were slaughtered. The milita captain Rith flew into a martial trance, the marksdwarf Thob putting a foot through the head of one goblin, the Hammerdwarf Nish dancing in combat. Quickly though, Rith was struck down by the goblin horde. The mayor, and his mandate of pickaxes, his skull bashed in by the goblin Ngokang’s iron shield. The sword dwarf Astesh Medtobasrer engaging in battle ferosiously.

during the combat, Ral Eshtanerlin, a stonecrafter went raging mad.

The sworddwarf Asteth continued her assualt, taking out her fury on the giant bat, tearing off its teeth with her wooden sword. knocing over goblins that stand in her way. She was later found dead.

The marksdwarf Thob continued his unrelenting assault, as Asmel started throwing a tantrum on the battlefield.

By now, the dwarf population has gone from 93 to 65… at the cost of 3 goblins.

And you know what goblins bring with them? A thief. More joy to the day.

By now, the goblin horde has made it into the fort proper. Reports of dwarfs found dead began to flow in.


More and more reports stream in


Dwarfs flee about the fortress, the remaining defenders attempt to salvage what is left of the situation. Normal citizens fleeing all over the place, praying for mercy to the blood god, (Whom of course is very entertained by the lack of mercy here, and will do nothing).

51… and 7 living goblins.

And a new mayor takes control during the Chaos, the self-elected mayor, Sarvesh Mezumablel, declared a ban on exporting stylish, high boots.


Fall 130

and 49 at the season change. The dwarfs, seeing no hope in the tunnels, take to the surface, fleeing about attempting to lose the goblin horde thirsty for their blood. Left and right dwarfs are going insane, some going stark raving mad, others, falling into melancholy.

And the population has fallen to 41. the dwarfs up there laying scattered wounded. Those that can move running from goblins.

We attempt to fight them off again, repopulating the squads with anyone able to wear armour. The mayor dies (again) as we are reduced to 27. dwarfs. 4 goblins are still invading that we know of.

Zulban Idendodok took up the arms of the next mayor of this village. Obviously he didnt get the hint about his predicessors.


One goblin left. All our remaining dwarfs were sicked onto him. If course, even this meant losses.

Our post battle dwarf count, not counting those who are missing that we dont know about yet, is at 25.

All dwarfs were returned to normal roles, and the wounded were counted, the missing sought out.

Of course, the dwarfs started the normal post-battle depression. The fortress covered in blood. And a wave of 8 migrants arrive  just in time to clean up the post-battle carnage.

On the plus side, food isnt an issue. on last count, we have 747 prepared meals and 352 prepared drinks.

So, current tally of forces.

  • 9 Dwarfs, wounded and out of commission.
  • 4 children
  • 1 baby

This leaves us with an effective 19 dwarfs. (and some of these are bound to kill themselves off from depression)

And, we are mandated to make amulets. I think we can do this one, great and glorious mayor.

So, we rearrange our dwarfs with a priority on medical. This means

  • 3 nurses
  • 1 assistant doctor, as the old doctor, Kib, can no longer stand due to sever sensory and motor function loss.
  • 1 doctor: Ushrir Iderith, who shall also be our Chief Medical Dwarf.

Our broker survived in one piece. He retains his job this time.

Our bookeeper was killed, so he is being replaced by As Kilrudgim.

This totals up to 7 dwarfs with jobs.

The following dwarfs are damaged and need healing before a return to work:

Thob Geshudiseth (Left Foot), Kib Rinalzon (Left Foot, Nerve Damage) Lor Itonsholid ( Hands Damaged), Alath Misavuz (Left Hand), Uzol Adekalath (Right and Left Hand, Infection) Fath Nanirmeng (Left Hand), Iton Mafollikot (Chest Damage), Nil Morulgusgash (Left Hand),

The following dwarfs are put to work in the following capacities:

Stinthad Siguzglar – Woodcutter

Muthkat Tobulnekut – Broker/Farmer

As Kilrudgim – Farmer/Bookeeper

Zulban Idendordok – Mayor/Hauler

Ushrir Iderith – Chief Medical Dwarf

Edem Orstistled – Doctor

Asmel Rigothhvod, Rimtar Gimudib, Lorbam Zanegonshen – Nurse

Asmel Okirlitast -Fisherdwarf

Shorast Regonul – Metalworker (Furnaces, Wood Burning, and metal armours/weapons/crafts)

Urist Itdunnish – Planter

Uvrad Zasdurad – Miner

Ral Eshtanerlin – Crafter (generic)

Morul Cerolabras – Bonecarver

Bim Eribusan – Mason/Carpender

Oddom Nishsulus, Ablel Regamith – Generic filler farm-task dwarf

Edem Uristorshur – Soapmaking / Leatherworking

The remaining 5 are children and babies.

Work started on digging and crafting coffins for the battle.

As Kilrudgim was struck by Melancholy. Replaced by Oddom Nishsulus as bookkeeper.

Morul Cerolabras was taken by a fay mood. His craft includes the corpse of a baby. One less corpse to bury then. Though he is screaming for tanned hides. That one may be hard to create.

Ral Eshtanerlin died of thirst, so we are down a crafter.

Alath Misavuz has fallin into melancholy. He was repairable with time too…

Muthkat Tobulnekut went stark raving mad. Broker is replaced with noone yet. At least he will be entertaining as he runs around in his madness…

Thob Geshudiseth died of thirst.

Adil Gimlikot grew up. Tasked her with being a miner.

One of the dying sword dwarfs went insane. Nobody cares, as he cant breathe anyways with the hole in his chest. Or hes limping about, attempting to kill my citizens now… One soldier was appointed to handle him, Stinthad Sigunzuglar the woodcutter. After a long fight, it was ended by the woodcutter, now the captain of the guard, punching the sworddwarf through the brain.

Oddom Nishsulus has now gone stark raving mad. he is an acceptable loss.

We have set a stray Ewe to slaughter.

And well, a caravan arrived before everything went completely to hell it seems.

Shorast Regonul has gone missing for the last week. We’ll write him off as dead.

A child was found dead from dyhydration.

A pair of ghosts has risen to haunt the fortress

Kib Rinalzon has been missing for a week also.

Also, it seems we have a vampire somewhere. A child was found dead, completely drained of blood…

for the count, down to 19…

And a thief shows up.

The bonecrafter went beserk. Send in the captain of the guard to pacify him. Or he decided to attack the caravan guards. Which made this easy.

Another thief… dont really care. Just want someone to move trade goods, but everyone is way too depressed to do anything…

As Kilrudgim died of dehydration.

2 more babies found dead…


Winter 130

Someone finally decided to start moving trade goods.

Asmel Okirlitast was found dead, dehydrated.

Sodel Odshithkonos was found dead.

Oddom Nishsulus died of thirst.

Alath Misavuz was found dead, dehydrated.

And the merchants left again without a trade, because everyone was too depressed to trade with them.


We are going to focus on one thing now. Burring the dead…

Uzol Adekalath found dead.

Udil Kilrudrith, Dwarven Child, went raving mad. Sent in a dwarf after him.

Another ghost has risen. At this rate, we will be a hit around halloween.

Muthkat Tobulnekut has been found dead via dehydration.

Ok, things are starting to normalize a hair. We have people digging and making coffins now. We have also started moving bodies behind a door so they are less visible in an attempt to raise morale.

A thief managed to steal a copper breastplate. I think we’ll manage to survive here.

Slowly but surely, the fortress starts to recover.

Stinthad Sigunzuglar has starved to death. We wont consider that one a tragedy…

Udil Kilrudrith, a child, died of thirst. Another no loss. With a population of 12, the child was a handcap to moral in a low moral situation….

And oh fuck fun!… an ambush… a small force of what looks like 4 goblin macemen and a goblin lasher have decided to party too! Just when we where putting things back together!

All but two dwarfs formed the reponse squad.

Uzol Rigothdakost nailed one of them with a lucky punch to the head, killing the goblin instantly. However, Urist was not so lucky with the goblin onslaught, and was knocked out by the goblin raiders, along with Edem Orstistled. Uzol continues to vent his fury on the goblins, punching the lasher repeatedly, untill one final blow fells the foul beast.

Ablel Regamith, Lorbam Zanegonshen, Uzol Rigothdakost, Urvad Zasduradm Edem Uristorshur all fell to the goblin raiders.

One of the ghosts has also gone violent. And the goblins fall to a whole new level of creulalty, hunting and slaying the fortresses kittens. My last two warrior dwarfs moved to engage the last three goblins… The mayor died without honour in the engagement, slayed viciously, and leaving an unhappy diplomat… again, and Amsel also proves disastrous in combat.

Spring 131

Two dwarfs remain, Bim Eribusan and ushrir Iderith, with goblins up above on the surface.  Another ambush happens. The two remaining dwarfs do their best to ignore it. This puts 9 goblins on the field of combat. Our only true hope is to survive till the next wave of immigrants as the goblins kill ever chicken, bird, tiger, and thing that moves.  The goblins however, decide to visit the inside of the fortress… and after a long chase, the mayor finds a pick through his head, leaving just the doctor left… until he too runs into the pack of goblins. he flees to the surface, only to run into the first pack of goblins. And there is alot of space to run in outdoors. Eventually, the goblins catch him, resulting in a trail of blood, and eventually, death.

Conquered, we are by the goblin hordes, and they feast upon our bones, and party with our silver.

Thikutnazom, Inception

Alas, thanks my unwavering and yet loyal loyalty to my king under the mountain, I have been banished from the Mountainhomes. Alas, it was my mistake to dare to mint a copper coin out of iron. Somehow, the yellow slather made from the dried blood of a strange critter. Somehow, it just didnt pass the inspection. And instead of taking my head, he exiled me, and a few others, off into the wilderness to strike out. Of course, eventually, we ran low on previsions, and well in the name of the glory of Nokorobok, we have set up camp, our glorious seven creating an outpost for glory and industry. A new chapter will began here, in The Land of Machines, here at our new home, Thikutnazom, at least, hopefully, before the jaguars get hungry for dwarf flesh.

Our old home has promised to remind the merchants of our existence, and promised us, on our depture, a caravan before the winter. But now it is spring, time to set the plows into action, to go forth, and make this land our own, this frozen wasteland covered in snow that we shall call our home.

Spring 125

We moved into our new mountainhome, and begun digging ourselves a new place to live. With the discovery of packed sand caves, we quickly created a decent sized farming zone, and planted it full of things to help sustain us come winter. At least now we wont starve from a lack of food. We also dug out our meeting hall and a few dorms for our brothers and sisters. Looking into the summer, we are looking to expand our outpost with a few workshops for the stone masons and a small canal to fill and stock with fish, giving us the ability to have meat in the winter months, and a source of water that wont freeze over.

Summer 125

Got some industry up, and got some migrants to our outpost, 4 dwarfs and a child, bringing our number up to 13. At the begaining of the season, our bookkeeper got into a fight with a wolverine, whom was beaten back with the bookkeeper’s fists with minimal damage to the bookkeeper, and a broken rib for the wolverine. Undettered however, the wolverine then went after our outposts only child, killing Rith Mengizm. Poor Rith, we will miss you, and your burial will be grand. Of course, this murder pacified Solasman the Wolverine. A tomb was constructed for Rith.

Currently we are set up industrially to make toys and crafts for the late Autumn caravan.

Autumn 125

Everything froze over. And it did so before we finished building the brewery. I hope that the water put into reserve in our pond will be enough to sustain us over the winter. Or at least till the caravan comes and we can afford to buy drinks. A study was created for our bookkeeper. A new wave of migrants arrived, Bringing with them 7 new dwarfs, one of them a child. A caravan froM Nokorobok arrived, along with a Cravan, composed of dwarfs. Overall, it was a good seasion, with much growth and profit, and little disaster, including the construction of a pair of stills.

Winter 125

We pissed the merchants off. They left without trading with us. Started digging a mineshaft down to 20 levels below.

The MountainHome has made the following requests of us:

  • Crossbows (150% worth)
  • Fish (182% worth)
  • Leather Waterskins (171% worth)
  • ammunition (114% worth)
  • tanned hides (179% worth)
  • cut gems (135% worth)
  • prepared meals (166% worth)
  • rings (182% worth)
  • legwear ( 110% worth)
  • tools (191% worth)
  • handwear (191% worth)

We are this gearing up for handwear, tool, and ring production. We will also attempt to install a working fish pond. Or at least caputure live fish for trade come next winter.

Our craft dwarfs have been set to making rings.

Spring 126

Save File Corrupted….

SLAM Algorthms

SLAMfinal <- PDF link to the paper we wrote.

First and foremost about these SLAM algorithms  They, in general, seem a hair platform specific, and need to be calibrated to the application. Which means applying them to an arbitrary dataset can be a bit of a challenge. That, or I suck at picking SLAM algorithms to run experiments on. Either is a valid possibility. Continue reading “SLAM Algorthms”


This thing is one sexy, sexy beast of a robot. At least when your coming from a Rovio. For one, it is accurate, secondly, it is responsive. ( Did I mention the senors are accurate too?

But, onto the meat of this encounter…

For this little tidbit, we had to take this thing with ROS, and get it to “fixate” on three color dots that we printed out. The greatest challenge for this was convincing this bot that Blue was Blue due to shifting lights in the room. (It kept attempting to turn blue green). But all in all, once we got the camera calibrated, it worked like magic

It worked very, very well too, and I was very happy with this assignment. As an experiment, I took a hold of the aft of the cowling on the robot, and pulled it back a hair, and it has… amazing stickiness to that colored dot. And by that, I mean it sprung right pack to where it should be. We could also lead it about my moving the dots about (ie, carrying them). All in all, this was a fun bot to work with.



First and foremost, the Rovio, as a robotics platform sucks. This is of course because the sensors in it are terry inaccurate.

The second reason for this is that the same commands, given repeatedly, give vastly different results. Another sign of the horribleness of the platform.

I also am a bit disappointed by this assignment, because it feels like we didn’t actually do anything autonomous with the Rovio platform. We just gave it dead reckoning commands, told it to run them, then analysed what it did. It just doesn’t feel fun or interesting to me. But that may be just me on this too.

So heres to hoping that we get to have more fun with the next robot!