Archive for the ‘The Business of Things’ Category

The Synology NAS, two months later

Saturday, October 29th, 2011

NAS time, again! Like before, I’m collecting my notes and thoughts all in one place.

Two months later

Why have 1 when you can have 2? After winning the GameTree prize, I decided I should have 2

So according to my blog here, I’ve been running the Synology NAS for just over 2 months now, and I still love it. Heck, I bought a 2nd one! The NAS has become a permanent part of my development setup, and even my development workflow. It sits in the corner and just works; What more do you want?

As mentioned in my earlier posts, I’m running both SVN and AppDailySales on it (iTunes Connect Sales Stat grabber). In addition, I’ve been running an internal wiki on it. I used to host 2 different external wikis, but both have been imported and archived locally.

I chose DokuWiki for my internal wiki because it uses flat files, meaning I don’t have to run SQL (though it is just a button to enable MySQL on the Synology). This has the added bonus that I can regularly commit the data to my SVN repository for extra redundancy (the Data and Media folders). On my TODO list is to add an automated task that commits wiki changes every morning, but hey, I decided to write this post instead. 😉

Here are are some of the more recent developments.

Moving Hiccups

Since I moved in to my new apartment, I’ve actually been having an issue with my NAS. AppDailySales, the python script I use to get my latest sales data, it wasn’t working. This required me to manually run my script to get sales data, but unfortunately, I’ve lost just shy of 3 weeks of sales data. Seeing how Smiles is a good 3 years old now, I’m not too bothered by the loss of daily data (weekly is still available), but it’s still a bit of a disappointment.

I’m not sure what compelled me, but I decided to investigate the connection problem today. Long story short, my DNS and Gateway settings were set wrong. Looking back, getting my network setup correctly was a real pain, so this doesn’t surprise me. My DSL modem apparently also acts like a router, so to get the two to play together nicely, I set my real router use a different IP (192.168.1.2 instead of 192.168.1.1). Silly NAS was set to “.1” instead of “.2”.

Part of that network config, I changed IP blocks from 192.168.0.x to 192.168.1.x, since that’s what my new router used. I had previously set static IP addresses for the NAS (.110), so I had to re-run the windows DSAssistant tool to change the IP block (an IP in 192.168.0.x cannot see an IP in 192.168.1.x, at least not with a subnet of 255.255.255.0).

Those were the only 2 issues introduced during my move. That’s not to say I didn’t find more ways to mess things up. 😀

Upgrading from DSM 3.1 to 3.2

About a month ago, Synology finally released the latest version of the OS for their devices. And not even a week ago, they released a bugfix for that. The changelog is extensive, including some improvements to features I’d like to start using, so today seemed a good day to update.

Updating was extremely easy. Since I started with 3.1, all I had to do was click the update button in the Control Panel. After it downloaded, just clicked install. Waited, and it was finished. Very nice.

But as expected, a few settings got messed up after updating. Nothing built in to the UI, but my cron job for running AppDailySales got removed from the /etc/crontab file. No problem, I wrote down what I did here in a blog post. THAT is why I’m writing this here now.

SVN seems to be still running properly. Nothing to do there. All my settings are still set. The wiki is still running. Great.

However, the EVIL Thumbnail generation processes are back! These eat up 100% of the CPU usage, doing pointless thumbnail generation. Ack!

But like before, this is easily fixed.

cd /usr/syno/etc/rc.d/
S77synomkthumbd.sh stop
S88synomkflvd.sh stop

But unlike my old notes, I have since found that renaming the files was not enough. The better solution is to move them out of the rc.d folder.

mkdir ../rc.d.I_REALLY_HATE_THUMBNAILS
mv S77synomkthumbd.sh ../rc.d.I_REALLY_HATE_THUMBNAILS
mv S88synomkflvd.sh ../rc.d.I_REALLY_HATE_THUMBNAILS

After waiting a while double checking “top”, I then saw a process fileindexd start up and eat my CPU. no problem.

S66fileindexd.sh stop

This one I did not remove from the folder, so it’ll certainly start up again once the NAS reboots. Thumbnails are useless to me, but file indexes I need to look in to. I don’t yet know if these file indexes are a Synology thing or a Linux thing.

That’s everything I’ve had to fix since upgrading.

Now, lets try out some new features!

Remote Backups

At long last, I finally set up remote backups on the device. I’m actually backing up my data 2 places:

  1. To the “other” NAS
  2. To Amazon S3

Both options are built-in to the device, you simply have to provide login credentials… oh, and one thing each.

  • On your “other” Synology NAS, you need to enable Network Backup mode (in the control panel).
  • On Amazon S3, you need to create a bucket to store the data.

I’m especially fond of the Amazon option, not only because it’s remote, but because it lets me experiment with Amazon AWS services. Amazon gives you a whole bunch of free data and services for 12 months, and if my math is correct, once those 12 months expire it’ll cost me less than $0.50 a month to host my 3 GB repository mirror. Not bad… Heck, that’s a bargain given what that data is worth to me (my whole biz relies on this).

Best I can tell, it only stores a single copy of each file on the backup destination (as it should), and only sends files that have changed. There is an optional addon extension called “Time Backup”, which as far as I can tell works just like Apple’s Time Machine. Time Backup only works with remote Synology devices, or attached external drives (no Amazon).

VPN

Remote access to my network, on an iPod

Now this very cool. For a while I was (figuratively) bashing my head against a wall trying to come up with a solution for accessing my SVN repository and wiki remotely. The repository was the tricky part, as the local PCs on my network tend to use the local Windows share name or the IP in the SVN url. Local IPs don’t exist outside your LAN foo!

So today I set up a VPN. This is an addon feature for the Synology that’s pretty great. I wont bother describing the setup, since it’s literally a checkbox and some minor configuration. I’m using PPTP, since it seems to be supported everywhere. It’s literally a feature of Windows, OSX, iOS, Android, and I would not be surprised if it worked on stock Ubuntu too (I have not checked as of this writing).

The only real work was opening the port on my router, and calling that work is pretty silly. After opening the port, I was able to access the VPN locally by using my IP. That wasn’t enough of a test for for me though, so I picked up my laptop and visited my parents to “borrow” their WIFI. Yep, worked great. Once connected, I can commit and checkout from my SVN repository, view my wiki, and even access devices on my network… all from far far away.

I figure I’ll only be using this when I’m out of town, or hanging/jamming at a friends place. Still, it perfectly solves my SVN problems, and gives me a bunch of nice features. My router easily lets me turn this off too, so I can keep my local network nice and secure in the off season.

Summary-ology

The Synology DS211j NAS – Easily the best $200 (+drives) I’ve spent in a long time.

One more prize for the road

Thursday, September 1st, 2011

Progress on the tech for my upcoming game “Alone, The” has been a little slow the past couple weeks, due to Ludum Dare, a nightmare of server issues (both LD and my own), and my upcoming move (OMG THAT’S RIGHT NOW). I have some great news to share though:

TransGaming Announces Winner of the $10,000 GameTree Developer Competition: Developer’s Choice Award

Developers from around the world have their say: Smiles HD takes home the prize

TORONTO, CANADA – August 31, 2011 – TransGaming Inc. (TSX-V:TNG), the global leader in the multiplatform deployment of games, today announced Smiles HD by Sykhronics Entertainment as the winner of their GameTree Developer Competition: Developer’s Choice Award.

Smiles HD is an award-winning puzzle/matching game featuring inventive game modes, engaging achievements and family-friendly themes. This immersive but “snackable” game experience involves spinning, swapping and dropping smiling objects to create huge combos and even bigger scores. After incredible commercial and critical success on the iPhone and iPad, Smiles HD was easily enabled on the next generation GameTree TV gaming platform for Smart TV.

“The amazing opportunity presented by TransGaming’s GameTree Developer Competition allows an independent developer such as myself to easily reach a growing market on an exciting new platform”, said Michael Kasprzak of Sykhronics Entertainment. “With TransGaming’s help and the GameTree TV SDK, Smiles HD was enabled on GameTree TV in a matter of hours.”

“We wanted our GameTree Developer Competition to truly engage the talented independent game development community in order to be able to discover and deliver innovative and creative interactive entertainment to our GameTree TV consumers. The Developer’s Choice Award gave GameTree Developers a voice to choose the best among their peers”, commented Vikas Gupta, CEO and President of TransGaming. “This indie development community is creating revolutionary games like Smiles HD which we know will be enjoyed by the GameTree TV audience, and TransGaming is dedicated to finding and rewarding that talent.”

I am a big fan of the outcome. 😀

Smiles HD should go live on “Free” set-top boxes in France soon.

AppDailySales, and running on Synology NAS Devices

Tuesday, August 23rd, 2011

Continuing my prior post where I talk about my server replacement, a Synology NAS (DS211j). In essence, a cheap, tiny dedicated Linux box featuring an ARM CPU and custom web UI specially designed for SUPER EASY RAID array maintenance and creation. There’s a 4 drive version, some many-more drive versions, but they cost more.

This time, I’m here to talk about a little tool for getting your daily sales data from Apple’s iTunes Connect website. AppDailySales!

http://code.google.com/p/appdailysales/

This is a python script I was recommended some months back, but it needed a few things IMO. So in a shocking rare case of OSS justice, I added the features I wanted myself and submitted a patch:

http://code.google.com/p/appdailysales/issues/detail?id=31&can=1

Just a few days ago (nine months later), version 2.9 was released (sparked by Apple’s change to the system), now including my patches! 😀

To run the script, all you need is Python. Before I used to run this on Windows XP (Python installed in C:\Python2.7\, with PATH environment variable set to include this).

Now with the NAS, I SSH in to the device (Go download Putty if on Windows), login as root (same password as admin), and install the python package.

ipkg install python

Easy. Done.

Place the AppDailySales.py script somewhere on your computer, likely in the same folder you want your stats placed. Then simply invoke it with –help to get a list of arguments.

python appdailysales.py --help

I run it from a batch file or script. My old Batch File Version looks like this:

The new, shockingly similar shell script version (i.e. only single %’s) is this:

This creates files like so:

2010/2010-12/Daily-2010-12-13.txt
2010/2010-12/Daily-2010-12-12.txt
2010/2010-12/Daily-2010-12-11.txt
2010/2010-12/Daily-2010-12-10.txt

Nice and easy to read names, unlike the default files generated by iTunes Connect.

In the next section, I’ll talk more about setting it up as a service. In other words, totally automated!

(more…)

I am running a Synology NAS now

Tuesday, August 23rd, 2011

Last week, a drive in my server died. These drives weren’t really that old, but were Seagate’s from the drive failing epidemic a few years back. I bought 6 drives around this time, 4 for the server in a RAID 10 array, 2 for my workstation. I lost 1 to the failure problem, and the rest I managed to get updated firmwares installed in time.

Since then, I have been extremely leery of Seagate drives. My server ran Windows XP (yes), and used the on-board Intel SATA RAID controller of this MOBO. On several occasions, the RAID integrity would fail for no good reason upon bootup, that I simply stopped turning my server off.

My brother the “professional network admin” has been reminding me for years that Software Linux RAID is the best RAID. So after this tragic failure (no data lost, just some hair), it was time for something different.

My brother and I have been talking NAS (Network Attached Storage) devices for a while, he himself trying a few over the years, to really sub-par results. Generally, the prices were terrible for completely sub par hardware that couldn’t perform. Popular NAS like the Drobo start at like $700, yuck! The best bang for buck always seemed to be building a server.

Actually, bang for buck wise, building your own file server is still cheaper. But Linux is a delicate mistress. I am a coder, and dealing with game console development tools and Linux setups over the years has taught me how to live comfortably in Linux. I work on Windows though, just I do it with Cygwin and MinGW/MSys.

That aside, there is still too much sh*t to learn about Linux. Time is money. Building and maintaining another server, I’ll be honest, I don’t want to do it (FreeNAS was suggested on my Twitter, for anyone in a more adventurous mood).

It’s 2011, give me a drop in solution that’s cheap, small, fast and good!

Blam! Hello Synology DS211j!

This 2 drive consumer model rakes in at around $200, size not much larger than an eternal casing, and sporting a 1.2 GHz ARM processor. ARM! Hey! I know those!

It runs a breed of Linux, interfaces via gorgeous fast HTML UI, and support fancy Linux favorites like SSH out-of-the-box. Well not quite out-of-the-box, as you do need to download the latest firmware and a setup tool for your OS, but that’s easy.

Mine I filed with a pair of 3TB Hitachi Deskstar drives, spinning at 7200 RPMS with 64 MB of cache. Western Digital Caviar Green drives were $40 cheaper each, but are known to be slow and problematic on RAIDs (though there are fixes, a tool WDidle3 seems to address this). Again, time is da mon-nay, and wanted something I could just drop in. Benchmarks said these drives were better overall performers too, so hey, why not!

A stock image I borrowed from Synology. UI has lots of wild features like Music Player, Photo Viewer, and more, all built in (Java Plugins). The user interface is really great. Smooth like being right on the machine, but it's a virtual operating system that runs right in the browser, done in HTML+JS and PHP. You can actually try it online. Click the image.

Hardware setup was a matter of unboxing, opening it (sliding case sides front and back to unlock), plugging my drives in, screwing them in, and closing the casing (opposite of opening). I think I had this done in 5 minutes, max. Didn’t even need a manual.

Building the array I wanted (MODE 1) was extremely straightforward, that I wont both talking about it.

What I will talk about is some of the advanced stuff I wanted from it, and the configuring done to make it act accordingly. After all, this blog post is actually for me, so I can know what I did in case I need to reproduce it.

(more…)

Nope, not this time

Wednesday, July 20th, 2011

No sir. Do not pass go, do not collect $50,000.

However! All is not lost!

I am still eligible for a the $10k “Developers Choice” award, which means you, you developers! Visit GameTreeDeveloper.com and cast your vote (For Smiles HD). 😀

I might win something…

Wednesday, July 20th, 2011

The latest in the world of Mike, I might win something again.

I’m less than an hour away from finding out if it’s true, so here’s me killing minutes as I wait.