ShortDash: Cross-platform Shortcut Dashboard

A few months ago, I was sitting in a video conference and noticed that the room was getting hot. I have a fan but it was just out of reach and it would have been rude to walk out of the frame in the middle of the meeting. At that point I wished I had one of those digital power plugs that you can control from your phone. I did eventually get one of those plugs but you had to use their dedicated app to control it. I thought it would be much more convenient to have a central dashboard where I could control it. And then it would be nice to be able to execute other things. This led to some tinkering with and its web request functionality. Soon after, the idea of ShortDash began to form.

ShortDash is a cross-platform shortcut dashboard for your local network. It allows you to create customizable dashboards of shortcuts and actions. You can even turn an old tablet or cell phone into your own personal shortcut dashboard.

A server runs on your local network and allows any device with a web browser to access the dashboards. A cross-platform target application allows actions to be executed on any Windows, Mac or Linux machine. All controlled from a single ShortDash server. Each device can be individually configured to allow full access or just specific dashboards.

Shortcuts can be created by customizing existing actions to execute programs, web requests, etc. Multiple actions can be executed with a single shortcut to create advanced workflows. An open plugin architecture allows anyone to quickly create new actions to fit any workflow required.

With ShortDash, I am now able to use an older generation Kindle Fire tablet as a secondary screen that always has my dashboard display. With one tap on a “Fan On” shortcut on my dashboard, a “Web Request” action is executed on the ShortDash server that sends an HTTPS request to IFTTT which then executes the “Turn plug on” action which finally turns on my fan. When I press the shortcut again, a different message is sent to turn the fan off. IFTTT can integrate with countless other products and services.

That is just one example of what ShortDash can do. The open plugin architecture allows anyone to quickly create new plugins to perform any action that is required. But even if you aren’t a programmer, a lot can be accomplished with the two main core actions: “Web Request” and “Execute Process”. You can quickly create shortcuts that will open your favorite programs or open the websites you read everyday. If you have multiple machines, you can install the Target application and execute actions on Windows, MacOS and Linux, all from the same ShortDash dashboard. The possibilities are endless and we have just barely scratched the surface of the fun and exciting things that you can do with ShortDash.

ShortDash is written in ASP.NET Core using the Blazor Server architecture.

ShortDash is open source and freely available for Windows, MacOS and Linux.

Outwitters Sports Network

It has been a while since I posted here so I wanted to give some details to what I’ve been working on over the last year. About a year and a half ago I discovered an iOS turn-based strategy game called Outwitters. I was immediately hooked. It had enough variation and strategy to keep my interest. I was playing it all the time and recommending it to everyone who would listen.

After you finish a game you have the ability to re-watch the replays and share them with others. This allowed you to learn new strategies or show off a triumphant victory. Unfortunately, you could only share the replays with someone who had an iOS device and had the Outwitters app installed. I wanted to watch the replays on my desktop so that I could easily compare and contrast different strategies against each other and improve my game.

Outwitters Replay Viewer

I began the process of reverse-engineering the replay protocol (with permission from the original developers) and creating the Outwitters Replay Viewer. I didn’t have any help from the original developers about protocols, file formats, or anything like that so I had to figure that all out on my own based on the data I could extract from the game. It took a bit of time to get everything squared away but in the end it worked out great.

The original version of the replay viewer wasn’t much to look at but it was functional. The second version had very basic graphics to indicate the types of units. But the 3rd version included all the graphics from the original game, looked the best and was the most functional.

iOS on Device Replay
iOS on Device Replay
Replay Viewer Version 1
Replay Viewer Version 1
Replay Viewer Version 2
Replay Viewer Version 2
Replay Viewer Version 3
Replay Viewer Version 3

Outwitters Sports Network is born!

Once the replay viewer was completed and people started using it, there began to be a lot of replay data stored on my server and so I started scanning them and creating analytics that allowed you to quickly find specific replays by map, player, unit, etc. This began the transition from just a replay viewer into the Outwitters Sports Network (Abbreviated as OSN). There are statistics, weekly top ranked player lists, leaderboards, popular replays and much more. According to Google Analytics, from August 2012 to December 2013 there have been 86,237 visits, 17,951 unique visitors, and 355,938 page-views. As of December 28, 1013 there have been 21,872 user submitted replays.

OSN Final Replay Viewer
OSN Final Replay Viewer
OSN Website
OSN Website

Technical Details

The replay viewer was programmed in Processing and then loaded on the website using Processing.js. Processing didn’t originally support JSON data so I had to use the compiled add-on library and examples at Jer Thorp’s Blog article “Processing, JSON & The New York Times”. Processing.js on the other hand does not support any java add-on libraries like Processing does so I ended up creating a special JavaScript based add-on that would supply Processing.js a library with the same footprint as the original java JSON library. I found a wonderful reference guide on Processing.js’s website called Pomax’s Guide to Processing.js that was invaluable in getting Processing.js and JavaScript to work together. This allowed Processing and Processing.js to use the exact same Processing based code so I didn’t have to support two separate code bases.

The Outwitters Sports Network Website utilizes the following technologies:

  • PHP and CodeIgniter for the backend processing and website
  • Bootstrap for the majority of styles on the website
  • JQuery for the powerful dynamic web interface
  • Handlebars for client-side templating
  • Highcharts for client-side charts on the statistics page
  • MySQL for data storage of statistics and searchable data
  • JSON text files for storage of full replay data files


It was definitely a long ride but a pretty enjoyable one. The final product ended up being way different than I had originally planned but I think it came out great. Especially, since it was originally just a proof of concept to see if I could do it. The Outwitters Sports Network is still going strong and still gets quite a few visitors. It is currently in maintenance mode as I’ve pretty much added all the features that I really wanted to be there. I still update the top player ranks every week and keep things running smoothly.

Slipix Version 1.0 for iOS

Slipix has been discontinued and will not be updated anymore.


Slipix Logo

Slipix is a unique new puzzle game where you touch and drag different layers of an image until the real picture is revealed. These are not jigsaw puzzles. Each layer is a different design or pattern that create unique challenges.

There are 40 unique levels to master with four difficulty levels. Quick Play mode can generate an endless amount of levels to satisfy any puzzle solver. There is even a head to head multiplayer mode (iPad only) so you can play with your friends.

More levels are on the way!

Click here to check it out in the App Store!


Screen Shots


Have a comment, need help or have suggestions for new categories and events? I’d love to hear from you. Use the support/contact form or leave a comment in the comments section and I’ll get back to you as soon as I can. Thanks!

Portable Google App Engine For Windows (Enhanced)

5/12/2011: Updated to support Google App Engine Version 1.5.0.

A while back I put together the information and steps to get Google App Engine running on Windows wrapped up in a portable little bundle. Since it has been a while I thought it could use a good refresh with the latest versions of everything and make things work more like the real Google App Engine. Some of the content may seem the same as last time but there definitely will be some new ways of running things and new capabilities that were not available last time. This new way is much easier and should keep up with all the changes that newer versions of Google App Engine may bring.

Continue reading “Portable Google App Engine For Windows (Enhanced)”

Growing Pains

I recently moved to a new website host and have been in the process of migrating the main site and tools section over. It seems that in the transition the URL styles were not set correctly causing some of the older links to not work. This has been repaired. Sorry if you got a bunch of “Page not found!” errors over the last week.

When? Holidays and Important Events App for iOS4 Devices


When? Logo

Do you want to know when Mother’s Day is this year? Wouldn’t it be easier to have it on your calendar? It gets pretty tedious adding all those important events and holidays by hand. When? is an App for iOS4 Devices that allows you to easily find and add holidays and important events to your built in calendar.

It contains important events for many countries (with states or provinces where applicable) and religions. New categories and events will be continually added. When? makes it simple to add events to your calendar in two easy steps:

  1. Find the event or events you want using categories.
  2. Tap the + button and the event is immediately added to your calendar!

You can even add an entire category with just two taps. Tired of having an event on your calendar? Remove it just as easy by pressing the red check mark. That is all you need to do!

Click here to check it out in the App Store!

WebSolver: An Interactive Cryptogram Solver for the Web!

A great carpenter does not need to know how to make a hammer or saw in order to create a masterpiece.

Web Solver: Start
A while back I wrote a bunch of articles describing how to create your own interactive cryptogram solver using python. I’ve used it a lot in my own personal solving and have had a few friends use it too but it definitely is not a tool for everyone. There are a lot of great tools out there for solving ciphers but many of them are very technical, require a special environment to run, or require programming knowledge and experience. Now, I don’t want to down play the usefulness of these great tools or tell anyone that they shouldn’t learn computer programming (Note: I think all computer users should know the very basics of programming logic as it is so useful for many things). That being said, there are many people out there who love a good challenge but either don’t have the desire or the time to learn to program. Sometimes the greater skill is knowing how to use the tools properly and efficiently. A great carpenter does not need to know how to make a hammer or saw in order to create a masterpiece.

So for all you great carpenters (solvers) out there, I have ported my interactive cryptogram solver to the web! No downloads, no special environments (other than a modern web browser), and no programming skills needed. Just a clean area where you can do what you do best: solving.

Continue reading “WebSolver: An Interactive Cryptogram Solver for the Web!”

Pattern Words: A Solver’s Staple

While working on the Beginner’s Guide to the ACA, there was one technique that consistently showed up in all the research material: Pattern Words! At first I didn’t really understand how great they were. For those who don’t know about them or need a refresher, I’ll discuss a few of the different pattern types that I have come across. Afterwards, I’ll discuss my own Pattern Word Search Tool. Lets get started!

Continue reading “Pattern Words: A Solver’s Staple”

Beginner’s Guide to the ACA

When I first joined the ACA and opened my starter packet, I was eager to jump right in and start solving Aristocrats and Patristocrats. I tried to solve as many as I could. Once I got stuck I would try to learn a different way to solve in hopes that it would get me unstuck. There is so much great information available on solving different cipher types and trying out new techniques. Unfortunately, since there is so much great information, it is difficult to figure out where to start or what resources to use. I found myself frequently getting lost in material too advanced at the early stage and becoming quite frustrated when the information did not penetrate my thick skull.

After one frustrating week, I contacted LIONEL, the ACA Recruitment Committee chairman, in hopes of finding some form of beginner’s guide to help me stay focused. He mentioned the “Young Tyros Newsletter”. It is a wonderful resource and I really recommend all new members and even non-members to read them. They have lots of great insights and tips to get you unstuck. In our discussions, I proposed that we should create a “Beginner’s Guide to the ACA”. I definitely didn’t want to re-hash all the great information out there. My goal was to compile a small list of the most important topics for a beginner to know and then point them in the right direction of all the other great materials out there.

LIONEL put me in contact with a few members who graciously agreed to send me some of their notes on how they solved some of the lower level Aristocrat and Patristocrat cons. Their notes and insights have been a great help in increasing my knowledge and solving abilities. It took quite a long time and many iterations before I was satisfied with it but I finally finished the first version of the “Beginner’s Guide to the ACA!” This would not have been possible without the help of BECASSE, GGMA, LIONEL, MICROPOD, MATANZA, and ZANAC. I am very grateful for their help.

You can download the Beginner’s Guide to the ACA below. Hopefully, it’ll help someone not get frustrated and lose interest in cryptology before they gave it a good chance.

Beginner's Guide to the ACA Screen Shot
Click here to download!