Changes to Websites and Services

I’m in the process of moving all my websites and services to Azure.  There will be many interruptions to services during the transition.

Affected apps and services include the Translucency website, all applications under Downloads and Projects, the InstaTech website, the InstaTech Package Builder, and After.

All sites and services will soon be running from subdomains of *.azurewebsites.net.  I’ll be dropping the translucency.info, instatech.org, and after-game.net domain names once they expire.  In the meantime, they will redirect to their replicated site on Azure.  Only the http protocol will redirect properly.  I’m no longer maintaining SSL certificates for any of the domains.

This means that all the links pointing to the HTTPS versions of my websites will not work.  The Azure sites, once redirected to them, are encrypted.

Work on all of this should be completed by the end of July.  Until then, many apps will be broken until I update them to use the new services.

In the end, this will significantly reduce the cost and time required to maintain everything.

InstaTech Connections Overseas

I had the pleasure of working with an InstaTech user from Portugal this morning!  He’s an IT professional who was wanting to install InstaTech server, but there was an error when trying to complete the setup.

We were able to fix the problem, and in the process, I identified an area where I can improve the error reporting.  But the really cool thing was that I got to test using InstaTech from my server to connect to a computer overseas.  The computer also running Windows with a different language!  InstaTech performed very well, and I’m really pleased with how it’s coming together.

It was an exciting and rewarding experience in many ways.  Every time I meet a new person through one of my apps, I get a brief glimpse into different parts of the world and different people’s lives.  It gives me this feeling of how big the world is, yet how small at the same time.  And the feeling of inclusion and togetherness that comes from that can’t be properly labeled.  It’s amazing.

SSL Requirements for InstaTech

Occasionally, I run into this situation: Someone wants to install InstaTech Server to evaluate it, but they get stuck at the SSL certificate installation part. InstaTech currently enforces SSL, so the certificate installation is necessary. I’m happy to help people get a free Let’s Encrypt certificate installed, but it’s not always possible.

I made encryption mandatory because I didn’t want to put anything out there that had any potential for being used in an unsafe manner. My thought is that someone who is less informed about the importance of encryption may opt to skip it if allowed and put themselves and their customers at risk.

I attempted to make this as easy as possible, though. After running the installer, a quick start guide opens, and the first thing is a link to http://certify.webprofusion.com/.  This is by far the easiest way to get a certificate installed on an IIS server, in my opinion.

But recently, I’ve been thinking about those who are aware of the security implications, but simply want to test it internally first.

The first idea I had was to allow an unencrypted connection, but throw up huge warning messages. The second was to only allow it if it’s on the same subnet or domain (or some other manner of determining if it’s on the LAN).

What are your thoughts? I’d love to hear them.

Inside StorageLists

When I began writing the back end for After, I started with Entity Framework/SQL Server.  I wanted to use the opportunity to teach myself the Code-First approach, as I’ve previously only done Database-First.

I really enjoyed working with Code-First, and it was a worthwhile investment of time.  However, I soon found that  SQL Server isn’t well-equipped to handle multiple persistent connections that need to share a static context.  (Please refrain from saying, “Duh, I could have told you that!”  :D)

Instead of searching for something else, I decided to get creative and write my own.  I already had my data modeled in such a way that I could reference everything by ID/PK, and I liked how Code-First used the DbContext class and DbSets.  So I put those concepts into StorageLists.

The StorageList is basically a List<> that writes items to disk after a set period of time of not being accessed.  This timeout can be adjusted, but the default is 3 minutes.  Also, the item must pass the PersistenceFilter, if specified, or else is held in memory and never written to disk.  Items written to disk are serialized to JSON.

Your models for each StorageList must implement IStorageItem, which adds the StorageID property and LastAccessed.

Here’s the example use that’s in the readme:

 

InstaTech Release

A while ago, I released “version 1” of InstaTech. I’m still debating whether I want to make a serious marketing effort just yet, or at all. So, while I’m on the fence about that, I figured I’d at least start sharing and mentioning it.

InstaTech is a suite of tools for providing IT support. It has a remote control application, live chat support, and workstation management bundled together. The website is at https://instatech.org, which is also available from the Projects menu above. On the Downloads page, there are prebuilt clients that are ready-to-use and are completely free for personal use.

The remote control app requires a server to connect the client app and the viewer, which is web-based. Using a server to relay the connections is how it’s able to traverse NATs and firewalls without any port forwarding. The clients on the Downloads page use a server that I’m hosting, but for business use, customers will need their own server.

The Package Builder will allow you to create your own server install package that has the client applications included. Try it out on your own IIS server!

Oh, and there will also be a huge update coming to Game Cloud soon. 🙂

Oh yeah, I forgot!

I was doing some work on one of my new projects in the wee hours of the morning, and I decided to tinker with an old, under-powered tablet we have laying around. Windows 10 doesn’t run well on 1GB of RAM (read “hardly at all”), so I’m going to try various Linux distros to see if I can get any use out of it.

I wanted to remote into it from my laptop to do some clean-up on it first, since dinking around with it using touch is slow and tiresome. Neither Remote Desktop nor Remote Assist was working, and I was about to download Team Viewer on it when I realized, “Oh yeah! I made my own screen sharing app!”

While Team Viewer Quick Support certainly gets the job done just as quickly, there was an unique satisfaction in using my own application for real work. I can’t wait to see it in action when the full InstaTech service goes live!

Remoting into a tablet.
Remoting into a tablet.

Another Project

I figured I should do a quick post about what I’ve been working on. I recently started a new project, which I’m calling InstaTech (https://instatech.org). It’s going to be a website for remote computer support, and I just completed the screen-sharing tools.

I’m kind of on overdrive with this project at the moment, but once I’m at a good “cruising point”, I’ll divert some time back to After.