Move Games and Applications without Re-installing them; Symlinks (AKA mklink, symbolic links)

SSDs are the best thing to happen to computers since Windows 95. Running your computer from an SSD will increase it’s performance where it matters most. Your computer will boot in seconds instead of minutes, large applications will start almost instantly, load screens in games will zip by, and copying the pictures and videos off your camera will seem almost instant.

Unfortunately, most of us can’t afford an SSD drive large enough to handle all of our storage needs. Compare a 1 Terrabyte Evo 850 SSD at $350 to a 4 Terrabyte Toshiba 7200 RPM HD at $130 and you’ll see what I mean. Wouldn’t it be great if you had a fast SSD and a large capacity HD that you could easily move stuff between? The problem is that to move a program in Windows you have to re-install it, right?

Wrong! There’s a little known technique in Windows and Linux called Symlinks. A symlink or, symbolic link is a type of pointer that tells your operating system to look somewhere else for the data. A symlink will let you move the files and folders that make up a program or game to a new location and will tell the software where you moved them to. Our dream of having a small, fast SSD with our most used data and large HD to store everything else on, is in reach.

To make a symlink you’ll need to open PowerShell or a Command Prompt in administrator mode (right-click and choose Run As Administrator).

RunAsAdmin

In Windows there are a few different types of links to choose from. Soft links are a kind of redirection similar to a shortcut. Hard links are impossible for software to see and are therefore the most useful. A hard link for an entire folder (vs. a single file) is called a junction in Windows. Typing mklink in our command prompt will show us the basics.

mklink

As you can see below, my gaming rig has several storage drives, the RAMDisk is RAM memory that can store files as long as the power isn’t turned off, the FastDrive is my SSD, and the SlowDrive is a 3TB 7200 RPM HD.

mydrives

When I installed Battlefield 1, I let it go to its default location (C:\Program Files (x86)\Origin Games\Battlefield 1) because I was playing it a lot and wanted it to start fast and have short load screens. Now that I’ve switched to mostly playing Destiny 2, I want to move Battlefield to free up the space on my SSD. The instructions below will work for any software you want to move on all versions of Windows since Vista (including servers). Just change the folder names in your commands. Be careful, quote marks and spacing matter.

  • I use Windows Explorer to cut the Battlefield 1 folder from its original location and paste it onto my SlowDrive.MoveGameFiles
  • In this case we’re relocating an entire folder so our link needs to be a junction. The syntax is: mklink /j path I moved the folder to path of the original folder.  Note the quote marks, these are required if your path has spaces in any of the folder names. Also note, there is a space between the new location and original path.mklink-junction
  • When I look in the original path of the data, I will see a shortcut. This is the link; it’s what fools our software into thinking the files are in their original location. In fact, if I check the properties of the link in Windows Explorer I will see the information (size, etc.) for the new location, it even shows the original path. Checking the directory in PowerShell or a command prompt will show us the truth.mklink-shortcut-propertiesmklink-cmd-properties

You can use symbolic linking to move software to any drive you like without having to re-install it. I took less than 6 minutes for me to move this game vs. hours of downloading and re-installing. I used this same technique to map my children’s Minecraft save data to my OneDrive account so that they can access their games from any of our computers or even from their friend’s houses. It’s a very handy thing to know. Let me know in the comments if this helped you out or if you have questions about using links.

How to choose a Gaming Laptop; Lenovo Y700 Review

Anybody that has read my blog will realize that I’m a gamer.  I enjoy all types of games on all types of systems and that includes the PC. My house has two gaming PC’s in it; my pervious setup and the one I just finished building a few months ago. This allows my family to play games together. Right now my son and I are playing Destiny 2 and I must say, if you’ve never tried it on a PC, you should.

My father has played with us on the Xbox 360 and Xbox One; recently he decided to join us in Destiny 2 and Overwatch on the PC, but he didn’t already own a machine with a GPU. My parents are retired and like to travel in their RV so he wanted something that could go with him. Gaming laptops are tricky to choose. There are a lot of systems out there that claim to be able to handle AAA games, but many really can’t unless you’re willing to turn the graphics down to low and make other sacrifices.

So it comes down to specs, but as usual the marketing people who work for the manufactures know that you’re looking at specs and muddy the waters with a bunch of useless jargon. In the end you’re looking for:

  • CPU – The calculating brains of the system. You’ll want an Intel Core i-5 or higher or an AMD Ryzen processor. Celeron, Atoms, and other names are lacking the floating point co-processor, extra cache, and fast lanes that are required to play intense games.
  • Memory – You’ll need at least 8 GB of RAM, but I recommend 16 GB if you can afford it. Especially if you want to have YouTube or music streaming in the background or like to broadcast your game play.
  • Storage – Modern laptops offer choices between SSDs, Physical Hard Disks, or both. SSD drives are usually lower in capacity but much, much faster than old school hard drives. This means your games load faster and load screens between sections are quicker. Games can be very large though; Battelfield 1 is a whopping 70 GB so capacity can be an issue if you plan on installing more than one AAA title at a time. I like the systems that offer both, you can put the game you are currently playing on the fast SSD and move your others to the large capacity physical drive. To save money get a system with just an SSD and put  your own physical drive in it later (requires two hard drives slots).
  • GPU – The graphics processing unit is what determines how well your game will look and how many frames per second it can play at. Laptop GPU’s have the same or similar names to their desktop counter parts, but they do not have the same power. A laptop Nvidia 1050 cannot run Destiny 2 in 4k at 60FPS but the desktop version can. I only mention this so your expectations are realistic. You are looking for an Nvidia or AMD GPU and the higher its number the better. Intel GPUs are not suited for AAA games, you might be able to get them to play but only by turning down the level of graphics to their minimums. In addition to the type of GPU, you’ll want to pay attention to how much video RAM is dedicated to it. Aim for 4GB or more.

There are a lot of choices in the market right now. All the major manufactures like Dell, HP, and Lenovo make dedicated gaming laptops and several make business class systems that include a GPU so you can work and play on the same computer. The newly released Microsoft Surface Book 2 can be purchased with an Nvidia GPU that makes it suitable for gaming. Any of them are fine, just watch the specs I’ve mentioned above.

In the end my father settled on the Lenovo Y700; it is a dedicated gaming laptop but isn’t quite as large as some of the other systems. His has and Intel Core i-7, 16GB of RAM, a 250GB SSD, and Nvidia GeForce GTX 960 with 4GB of VRAM. This laptop also has a 15″ 4k screen so it can run some games at their highest resolution without connecting to a TV. It’s keyboard includes a dedicated number pad so if you’re wanting a system that can double as your work laptop this one will fit the bill. 20171112_121805.jpg

It can easily run Overwatch at 4K 60FPS on medium but I have to turn Destiny 2 down to 1080P to reach 60 FPS. He’s been very pleased with it and the price was exceptional. Most gaming systems with these kinds of specs end up in the $1100 – $1500 price range but he picked this one up at Costco for $800.

Skin your Gear

All of our portable devices: laptops, phones, tablets, and game systems are subjected to the bumps and bangs of life when we take them on the go. It’s not the violent drops to the sidewalk that end up defiling my gear. I’m careful and rarely drop equipment.

My stuff always ends up scuffed and scratched from riding around in my laptop bag or being tossed in my desk drawer. For a lot of people the solution is to put their gizmo in a case. I can’t stand cases. Why would I pay a small fortune to get the slimmest, lightweight, super styled gadget and then turn around and stick it in a giant plastic box?

Luckily for people like me there’s a happy medium. Skins are vinyl decals that are cut to perfectly fit your device. They don’t alter the shape or weight but are sturdy enough to ward off most minor dings and scratches.

The sky is the limit when it comes to style. You can get clear skins or have then made out of your own photos. There are countless designs and several quality manufacturers. I like Decalgirl.com the site is easy to use and the skins are high quality. They have designs for almost every type of gadget. As you can see in the pic below, I’m partial to the blue galaxy design. My son prefers the retro NES look.

Razer Kraken USB vs. Razer Kraken 7.1 v2 Gaming Headsets

Over the years I have owned and used almost every type of headset out there. I started with the basic 3.5mm jack in sets that came with the Walkman. Then, when the original Xbox came out I got my first wireless set. I’ve had Bose, Apple, Samsung, Turtle Beach, Lenovo, Sony, Corsair, and everything in between since.

Recently I bought my son the Razer USB headset for $60.00 at Best Buy. We picked them because they had 7.1 surround sound, worked with both the PC and PS4, and felt pretty comfortable at the store. For the price they seemed like the best bang for my buck. 40mm drivers, a boom mike, and nice ear pads made them an upgrade over the iPhone ear buds he had been using with the PS4 and he was just starting to get into PC gaming so being able to plug into both devices was a nice feature.

20171110_221850.jpg
Razer Kraken USB

We got them home, downloaded the newest Razer Synapse software (required for the surround sound to work) and went through the simple setup process. I appreciate the way the software allows you to adjust the angle of each directional sound. It allows for some incredibly accurate sound only shots in games like TitanFall and Overwatch. Nothing lets you dodge Diva’s rocket attack like hearing where its coming from.

KrakenSurround The EQ lets you tune the sound of your game until it’s just right and you can easily create profiles (saved settings) for each game that you play. I have one for games and another for music.

The only negative thing we experienced was something my son noticed. There is a slight feedback tone when there’s no audio signal being played. It’s a common issue with USB headsets and is more related to the PC’s internal cable shielding than the headset itself, but it is annoying when you’re in between games or songs.

I liked the Krakens so much that I decided it was time for me to replace my trusty Turtle Beach XP400s. The Turtle Beach cans were just fine but I have so much wireless equipment in my house that they were occasionally dropping out from interference and I’ve worn them so much the ear pads were getting threadbare. I opted for the Kraken 7.1 v2 model, at $90.00 (on sale) they were a little more expensive but have some nice upgraded features for the extra thirty bucks.

20171110_220335.jpg
Razer Kraken 7.1 v2

The 7.1 v2 Krakens have 50 mm drivers, the base will shake your skull. Seriously, I have to turn it down on games because the explosions can hurt at high volume. The mic retracts all the way into the headset when you’re not using it and has a mute button embedded in it. When you mute the mic the tip glows red. The have the same surround sound features as the Kraken USB but add active noise cancelling for both ambient noise and your voice in the game. Most importantly they add mic monitoring; the ability to hear yourself in the headset when you talk. My wife thinks this is the most important feature in all headsets because it keeps me from talking quite so loud.

KrakenMic

The 7.1 set is also Chroma enabled which lets me match the color to my PC and other accessories. For me this is feature is important; my whole PC case, motherboard, keyboard, mouse and even my desk are all RGB LED and the ability to have my headset match the color of my mood is nice. The headband is wider, the ear pads are thicker, and they’re overall more comfortable.

The Kraken USB set sounds great, they are some of the best sounding headphones I’ve used, but the 7.1 edition takes the cake. They are flat-out the best sounding earphones I’ve owned so far. I think they sound better than my Bose Soundlink set that I use at work. The base is thumping, the highs are clear, and they filter out any feedback. You’ll be happy with whichever pair fits your budget but if you can afford them opt for the 7.1 v2, the extra $30 ($40 when they’re not on sale) is well worth it. No matter which set or brand of USB headset you buy, always check the manufactures site to see if there is related software. You don’t get the full set of features without it.

Network Speed Boost Part 3; Remove Legacy Devices

Now that you’ve upgraded your router and wireless access points its time to talk about letting go of the past. You see, an ethernet network (what we all use now days) slows down when slow devices are conversing on it. Think about your morning commute; if a car a mile up the road slows down to rubberneck the accident on the other side of the highway, so do you eventually. Networks are not all that different.

All of your devices are using the same pathways to connect to each other.  In the first article in this series we discussed packets. Some of the packets that run across your network are essentially advertisements for the type of device and services it offers to other systems. These are called broadcast packets because they are sent throughout your entire network. Layer 2 packets are started on their trip with a broadcast; like you trying to get your friend’s attention at the bar. You shout their name and everyone hears you but only Kevin turns around.  When this type of information hits an older device it leaves that device at a slower speed. Old man Bob hears you shout for Kevin but the has to think about who that is for a bit before he passes your shout on. This slows down your entire network just like the guy a mile up the road checking out the wreck. It doesn’t matter if the legacy system is wired or wireless the effect is the same.

What do you do if you need the older equipment to keep running but you don’t want the slow down it causes? This is a trickier situation that you might expect. No solution outside of removing the old equipment is going to be perfect. That being said, the strategy that is most effective is to isolate the equipment as much as is possible. Group all the old stuff together on its own separate network per se. This can be accomplished through a technology known as VLANs.

VLANs or Virtual Local Area Networks are a way for your router to separate traffic into groups of devices. Like the right lane on the highway, all the slow people are supposed to stay out of the fast driver’s way (in theory). It isn’t hard to accomplish but the way you do it, is different for each specific set of equipment you might be using. Google is going to be your friend.

In the case of wireless equipment it helps to run all of your faster equipment on the 5 GHz channels and all of your older tech on the 2.4 GHz channels if your wireless access point has the ability to do both. VLANs can provide wireless networks with isolation from the packets that go across them but not from the signal waves the Wi-Fi protocol uses to send an transmit the packets with.  Separation at the signal level requires running your equipment on two different stations as it were.

 

7.1 Surround Sound with Any Headset in Windows 10

If you’ve updated your Windows 10 computer with the creators update you can enable virtual surround sound for any headset. It doesn’t matter if you’re using a 3.5 mm jack or a USB headset the setting works on all of them. Movies and games benefit from the effect most; music is normally only recorded in stereo.

  1. Plug in your headset
  2. Type “Sound” in the search bar and press enter
  3. Click the Sound Control Panel icon
  4. SoundSearch
  5. In the Sound control panel select your headphones and click the Properties button
  6. headphoneproperties
  7. Click the Spatial Sound tab
    • If the tab is missing you don’t have all the required updates. Type Updates in the search bar and open Check for updates to get them installed.
  8. Use the drop down to select Windows Sonic for Headphones
  9. Spatial Sound
  10. Selecting it should automatically check the box to turn on 7.1 virtual surround sound.
  11. Click Apply and OK

You also notice that Dolby Atmos is an available selection; this software may work slightly better, but it isn’t free. After the demo period you have to purchase it in the store for $15.00.

Congratulations, you should be able to hear angular sound in your games and movies. This feature is essentially the same functionality games pay big bucks for in surround sound headphones. Now you can do it for free with any old headset you have lying around.

Network Speed Boost Part 2; Wi-Fi

If you’ve read Part 1 of this series you’ll know that I don’t advocate for investing in upgrading your Wi-Fi until you’ve addressed the cable network that feeds it. There’s no point in spending hundreds to get Gigabit wireless when your cabled network only runs at 100mb/s, your router is too slow to keep collisions and congestion at a minimum, and your ISP only provides 10mb/s. In my opinion, your money and time is better spent on upgrading the core infrastructure of your network first.

Once you’ve gotten your cabled network up to spec you’ll probably want to address your wireless network. In my home, wireless devices far outnumber the cabled ones. All of my family members have tablets, smartphones, portable game systems, and they all connect to Wi-Fi. At last count there were 51 devices logged on to my SSID. That’s more than a lot of small businesses. You’d think they would all be lagging like crazy, but that isn’t the case. In this article we’ll talk about how I’m able to do that.

The secret is in understanding how wireless network signals are broadcast. They leave the antenna in your wireless router like ripples through a pond. The antenna on your device only picks up a fraction of the waves being transmitted. Think about a toy boat floating in those pond ripples; only a small fraction of the waves actually touch the boat. Now think about something in between your toy boat and the source of the ripples an even smaller fraction of the waves will hit your boat. This is the more or less the same thing that happens to Wi-Fi in your home or office. The fewer Wi-Fi waves that hit your device, the less data those waves can transfer to and from it. This translates into lagging connections, slow web pages, and a bad experience.  Just like those waves in a pond, the further you get away from the rock that made them, the smaller and weaker they become.

2017-10-28  14:09:06.jpg

So what do we do? There are quite a few things you can do to increase the amount of signal waves that reach your device. One of the most important is to place your Wi-Fi access point in an optimum position. The ceiling is a great place if it’s an option for you but generally the higher, the better. Remove as many obstructions as possible; walls, furniture, and other electronic devices all degrade the signal as it travels through space. Sources of magnetic interference like microwave ovens are notorious for disrupting wireless access. Contrary to popular belief, setting your Wi-Fi access point right next to your device does not result in a better signal. Again, picture those ripples in the pond, there’s always a blank space or eye right around where the rock hit, right?  You need your devices to be 4 or 5 feet away at a minimum.

If you have a large area to cover with Wi-Fi or if your neighborhood is crowded with a lot of signals (there are 17 networks in range of my home) you’ll want to tune your system. Usually, this involves logging on to the console with your web browser and accessing the available menus. You can adjust the channel your Wi-Fi uses (there are 14) and pick the least crowded; most systems will show you how many networks are on each channel. You can also adjust the amount of power pumped into the radio on some devices. Google will be your friend here. Basically just ask the question and read the anwser.

GoogleWiFichannel

If your wi-fi access point doesn’t have advanced options like upping the power, you may be able to replace it’s software with something that allows you to access those functions. DD-WRT and Tomato are two of the most popular firmware replacements. Both are far more advanced than what comes on stock devices and let you crank up the power. In certain cases, they even let you overclock (run faster than normal) the memory and CPU. Just be aware that this often leads to a shorter lifespan; more electricity equals more heat and that kills electronics faster. Once you gain access to the advanced options another thing to adjust is the channel width; a bigger number is better for Wi-Fi but will cause interference with things like bluetooth (they both use the same size waves).

That covers most of what you can do without spending money. If you’re willing to part with some cash to get a better experience, you can do a lot more. We’ll look at some options ranked from least expensive to most.

  1. Upgrade your antennas. Contingent on the brand and type of Wi-Fi access point you own, it may be possible to upgrade your antennas. If your antenna is external and screws into your access point, you can replace it with something like this.
  2. Replace your mediocre device with something more advanced. If you’re running the all-in-one Modem/Router/Wi-Fi device your cable company gave you, the experience you’re getting is the same as comparing a Toyota Camry with a Corvette. If you want to stay under the $200 price point I highly recommend the ASUS RT-3200.
  3. If you’ve got the funds and want the Ferrari instead of the Vette; go mesh. Mesh networks use multiple access points, all sending the same signal to your devices. They can divide your devices up between themselves to split the load, over-ride rogue signals from other networks, hand off to each other as you move through a large space, and essentially make your Wi-Fi run like cables. If you work in a large office you’ll notice they have a lot of smoke detector looking things up on the ceiling, those are mesh Wi-Fi access points. You can cover an unlimited distance with them (whole towns even). Mesh is the ultimate Wi-Fi experience but it comes with a big price tag and requires some expert knowledge to get working.

Mesh Wi-Fi

2017-10-29  01:15:56.jpg

If we take our ripples in the pond example, Mesh would be the equivalent of multiple people tossing rocks and causing ripples all over the place. The boat is bound to be saturated with them. In terms of wireless access that means plenty of signal to transfer data with, fewer dark spots, and the ability to cover your entire building or home. Until recently, mesh networks were the domain of corporate class equipment and priced out of range for homes and smaller businesses. Now that demand for better Wi-Fi has taken off, most manufacturers offer a mesh system. Google, ASUS, Linksys and some companies you’ve probably never heard of are all jumping in the mesh pool. PCMAG.com has an excellent comparison of the most popular models.

Personally, I use equipment made by Ubiquity. They were one of the first companies to make an affordable mesh system (I’m always an early adopter). They offer some features that other manufactures don’t; outdoor access points, roaming, guest wi-fi with banner support (think coffee shop or hotel), and their system is infinitely expandable. Their devices are POE (power over ethernet, means you don’t need an electrical outlet close by) and support wireless uplinking (they can talk to each other without cables). The software has had more time to mature than the competition and as a result offers more intuitive reporting, problem resolution, and control of specific wireless devices. The system is commercial class, but costs the same or less than some of the more popular residential solutions. If you’re in the market I highly recommend them. https://unifi-sdn.ubnt.com/

Exchange & Outlook Custom Form Room Reservations; Retain Invitations

As I mentioned in my article Exchange & Outlook Custom Room Reservations, Guide & Template , the trouble with using custom forms for room reservations in Microsoft Exchange is that you have to retrain your users to open the room’s calendar directly. This is because the default room invitation process never displays a form at all. It only shows an EWS (Exchange Web Service) generated list of available rooms and their free / busy information. When the user selects one, the room’s mailbox is sent an invitation email which is processed by the attendant service or the room’s moderator. The reserver never gets a chance to see your custom form or complete any of the extra data fields you’ve painstakingly created.

Re-training your employees to open the room’s calendar isn’t too difficult if you’re setting up the service for a small organization. If you work for a company with hundreds or thousands of employees you’ll likely end up frustrated and so will your users. There are quite a few 3rd party add-ons for Exchange that claim to fix this limitation. You don’t need them. In this article we’ll explore using a few lines of HTML, JavaScript, PowerShell, and Outlook to allow the normal invitation process, while still compelling your users to complete the custom form.

My solution involves 4 basic components that, when executed correctly, allows the room’s mailbox to send an email back to the user requesting they complete your custom form. The auto response message will include a link that directly opens the room’s calendar showing their appointment. We’ll use PowerShell to alter the appointments created by the invitation so that they use our custom form.

  • Enable automated processing for the room invitations
  • Alter the message class of the tentative appointments
  • Create web pages that open each room
  • Create an invitation auto response with a link to the web pages

Enable Invitation Auto-update

In order for my technique to work, the room’s invitation must be processed from an email to a tentative appointment before the user receives the automated response. To accommodate this requirement we need to tell Exchange to automatically update the invitation on receipt (it can wait for hours otherwise).

  1. Create a txt file that contains only your room’s (assuming more than one) email addresses (you can see them in the EMC).
  2. Open the Exchange Management Shell or import an Exchange session in to your PowerShell.
  3. Run the following script (change the path to match the location of your text file)
    $ccrooms = Get-Content -path "C:\Users\MyUserName\Documents\ccroom.txt"
    Foreach ($ccroom in $ccrooms) {Set-CalendarProcessing -identity $ccroom -AutomateProcessing Autoupdate}
    
  4. If you ever add more rooms you’ll need to update them as well.

Alter the Message Class of the tentative appointments

Which form Exchange uses to open a message is determined by an attribute stored in Active Directory called the message class; it gets added when you alter the schema for the installation of Exchange. We want to alter all of the room’s tentative appointments so that they use our custom form. For this to work you’ll need to set up a few things ahead of time.

  1. A machine with Outlook installed (I use a VM). You could also use CDO on an Exchange 2013 or older server but you will need to alter the COM object in the script.
    • I haven’t been succesful in changing the attribute via EWS. You can set the default message class for a mailbox but not for each individual appointment; which is what we need for this solution to work.  If you know how to do this in EWS leave a comment, I’d really appreciate it.
  2. The AD account you logon to the machine with must have full permissions to all the room’s mailboxes.
  3. Create an Outlook profile for each room’s mailbox on the machine (individually); you probably think that you know better and can just open the mailboxes from one profile but you don’t / can’t. Just trust me.

Now that you have everything staged, we’re going to execute a PowerShell script that runs in a loop every 30 seconds and changes all the appointment’s message class attributes to our custom form.

Here’s the code:

Function Change-Class
{
$mbxs = Get-Content -path "C:\Users\Myusername\Documents\ccroom.txt"
Foreach ($ccroom in $ccrooms)
{
$outlook = new-object -com Outlook.Application
$namespace = $outlook.GetNamespace("MAPI")
$room = $namespace.CreateRecipient("$ccroom")
$room.Resolve()
$roomcal = $outlook.Session.GetSharedDefaultFolder($room, 9)
$appointments = $roomcal.items

Foreach ($appointment in $appointments)
   {
     If ($appointment.messageclass -eq "IPM.Appointment")
     {
      $appointment.messageclass = "IPM.Appointment.Conference Center"
      $appointment.save()
     }
   }
}
}
While ($true)
{
Change-Class
Sleep -Seconds 30
}

Notice that we’re using the same list of the room’s email addresses; don’t forget to change the path to match the location you’ve stored the file in. You’ll also need to alter the name of the form on the line $appointment.messageclass = “IPM.Appointment.Conference Center” to match the name of your published custom form. You must publish your form to each room with the same name or alter the script accordingly.

Create Web Pages that Open each room from a hyperlink

We’ll setup an auto responce to room invites in the next step. We’ll want to include a hyperlink in that auto-responce that opens the room’s calendar in Outlook for the user. This makes the process appear more seamless. You could accomplish this same goal in other ways, but I found this approach to be effective and simple.

You’ll need an IIS instance to host the pages on. Since we’re talking about Exchange you’ll have OWA and EWS installed, the IIS instance that hosts those services will do just fine here. Just create a new file based site and place the pages you create into the folder. I’m not including full instructions for this, but if you get stuck leave a comment.

ConferenceCenterRoomLinkPages

Now we need to create one page for each room. You be using the email address of the room to identify it. Paste the code below (change the email address) into notepad and save it with the HTML extension.

<!DOCTYPE html>
<html>
<head>

function OpenConferenceCenter()
{
var outlookApp = new ActiveXObject(‘Outlook.Application’);
var pmapi = outlookApp.getNameSpace(“MAPI”);
var recipient = pmapi.CreateRecipient(“room@mydomain.com”);
recipient.Resolve();
var calendar = pmapi.GetSharedDefaultFolder(recipient, 9)
calendar.display ()
}

</head>
<body onload =”OpenConferenceCenter ()” ;>
</body>
</html>

As you can see, we are creating an Active X object in the web pages to open Outlook and then the room’s calendar, which means this only works in Internet Explorer.

Create an invitation auto response with a link to the web pages

Now is when those Outlook profiles we setup earlier will come into play. We want to use Outlook to create a rule to repsond to calendar inviations in each room’s mailbox. This rule is not visible in Outlook for shared mailboxes, hence the profiles.

For each room:

  • Open the Room’s mailbox in an Outlook profile
  • Click on the Rules button in the ribbon and then select Manage Rules and Alerts.
  • Click the New Rule button
  • Select Apply rule on messages I receive
  • Check which is a meeting invitation or update
  • Click Next
  • Check; Have the server reply using a specific message.
  • In the bottom pane click underlined words “a specific message” and enter your message. I reccomend something like the text below(change the hyperlink location).

Your tentative reservation request has been received. Approval of your reservation request is based on receipt of the meeting information form. Please use the link below to locate your appointment, open it, and complete the Conference Center form by clicking its icon in the Ribbon.

CustomFormButton

The web link below only works in Internet Explorer. If your default browser is set to something else, you’ll need to right click and copy the they hyperlink below. Then paste it into Internet Explorer.

Click here to open the room’s calendar and adjust your appointment.

  • Click Save and Close on the Message
  • Finish the Rule

You should be ready to test now. If everything has gone according to plan the user’s experience should go like this:

  1. The meeting’s organizer selects a room from the default appointment form in the Outlook.
  2. Once they submit the invitation the room’s mailbox will reply with our message to finish the form.
  3. When the click the link embedded in the message the room’s calendar will open, they should double-click the appointment they just made to open it.
  4. All that is left is to click the form’s button to display it, complete it and save it.

This seems complicated but I’ve implemented it in an environment with 15,000 + users without any training and encountered very few issues. If you end up using this method in your own business I’d appreciate you leaving a comment.

PowerShell; Use COM to interact with other applications

If we want to move beyond the abilities afforded to PowerShell via its module system; we’ll eventually need to interact with other applications in our own code. For example; have you ever tried to load the “Outlook” module for PowerShell? There isn’t one, but does that mean we can’t interact with the software? Of course not. PowerShell can interact with applications in a myriad of ways, you’ve heard all the buzz words; “REST API”, “SOAP API”, “COM” but how do we use these tools? What are they really? In simplest terms they’re what us old school techs call “hooks”, built-in ways for applications to interact and exchange data. PowerShell is capable of using all of the popular methods including REST with JSON but in this episode we’ll discuss COM.

The Component Objet Model (COM) was introduced by Microsoft in 1993 as a non language specific standard for inter-process communication. It serves as the basis for some of Microsoft’s most popular technology; OLE, Active X, Direct X, and the Windows Runtime are all directly based on it. Using COM can be both extremely simple and frustratingly complex depending on what you are trying to accomplish but since nobody is going to read a 200 page blog post we’ll start with the easy stuff. If you would like a more detailed explanation of COM refer to https://msdn.microsoft.com/en-us/library/windows/desktop/ms680573(v=vs.85).aspx.

All of the examples and code that follows interacts with Outlook, I am an email admin after all, the techniques work with pretty much any application that runs on Windows. First we need to create an object to hold our application in memory while we work with it. How do you hold something in memory? With a variable of course, $outlook = new-object -com outlook.applicationwill essentially open a hidden copy of Outlook and store it in the $outlook variable so that we can send commands and exchange data with it (Get it? Outlook, Exchange data, I’m so funny). How does one find out what commands you can send to a COM object? You might be tempted to try help and that’s a good instinct but we’ve actually switched to C# here (called encapsulation) so PowerShell’s help won’t know anything about Outlook. We need to ask PowerShell to ask the Outlook COM object what commands (methods) it has available. We use the Get-Member command to do that; new-object -com outlook.application|gm will return a list of all the options at our disposal. Note that we had to create the object before we can get its member methods.

 I always try to keep these posts short enough to read and obviously we could spend the next year just going over all the different options in Outlook alone so lets look at a specific scenario. We’re writing a script/application and want our user’s Outlook contacts to pop-up on the screen.

$outlook = new-object -com outlook.application
$contacts = $outlook.session.GetDefaultFolder(10)
$contacts.display()

In the short script above we have loaded our application into memory, then selected the contacts folder. I just happen to know that each Outlook folder type (calendar, inbox, contacts, appointments, etc.) has an assigned number, GetDefaultFolder is saying get the top folder of this type and the display method is opening the selected item on the user’s screen.

Just for fun, lets create an Excel spreadsheet. Just to prove we can.

$Excel = New-Object -com Excel.Application
$Excel.Visible =$True
$Workbook = $Excel.workbooks.add()

Life with the Nintendo Switch. 7 months and counting

I’ve had the Gameboy (all of them), 3DS (both), GameGear, the PSP (both), and the Vita (both). I used mobile games to quit smoking. Instead of taking a smoke break, I’d go for a walk and play a game for 10 minutes. Instead of smoking after a meal, I took Mario or Sonic out of my pocket and played until the urge passed. It worked, gave my hands something to do and my anxiety somewhere to go.  For better or worse, I traded a smoking addiction for a mobile gaming habit. Almost any day on my lunch break you can still find me in the break room playing a game. One could say mobile gaming is important to me.

My family and I got the chance to see the Nintendo Switch at Pax South before it launched. I could already tell it was going to be a hit. A full power console that could go with you was something I’d been dreaming of since I was a kid. So had everyone else apparently, the line for the demo was 3-4 hours. Nintendo’s claim looked legit, so we pre-ordered one.

Amazon dropped off our new console March 3rd and we immediately set it up and my wife started playing Breath of the Wild. We were stunned, the game looked gorgeous and played perfectly while the switch was in the dock.  Now for the moment of truth. I pulled it out of the dock, slipped the joycons into their channels and handed it back to her. The game didn’t glitch a single bit, it just kept playing as if nothing had happened.  The holy grail of gaming had been delivered. Who would have thought Nintendo, the “games don’t need power” people would beat the likes of Sony to the punch?

Don’t get me wrong, the Vita and 3DS are great portable systems and there are several games I will be playing on them in the future. I still haven’t played Majora’s Mask and I want to complete all the tracks on Wipeout but as for a comparison between the portable systems, the clear winner is the Switch. I can only play on the smaller portables for about 45 minutes to an hour before my hands cramp and my eyes burn. The controls and screens are just too small. The Switch hits the sweet spot for me. I’ve played several multi-hour sessions on it with no adverse effects. The device is still small enough to fit in my jacket pocket if I detach the joycons (a simple process).

PortableSystems
Comparison of the 3DS XL, Switch Splatoon Edition, and the Vita Slim

The newest update for the Switch system adds some much-needed features. The most important to me is the ability to transfer save games to external storage. Nothing is more frustrating to a gamer than loosing a save game they’ve spent 50+ hours on. It also adds a 30-second screen clip recording (it always had screenshots) and the ablity to save those to a card as well.

Anytime a new system launches there’s always the question of developer support. Who will make games for it and how many? It’s a deciding factor in a system’s success. One of the major downfalls for the Wii U was a very limited catalog of 3rd party games. The switch has been popular enough to get attention from the likes of Bethesda who will be releasing Skyrim and Doom on the device by the end of the year. Several other big name studios have also pledged support, Sony and EA have both released games and there’s a rumor that even Microsoft might port some titles to it. The Shop app was pretty barren on day one but now there are a decent number of titles available. Rocket League and Skyrim are the two my family are most looking forward to.

Speaking of family, my kids and wife hogged the Switch so much that I decided to plunk down the cash to get one of my very own. I opted for the Splatoon 2 Edition with its neon pink and green controllers. It isn’t out of the ordinary for my tribe to have more than one of a console. To a lot of people this will sound ridiculous but it’s how my family spends time together. We don’t go to professional sports games and don’t have motorcycles or jet skis, gaming is our hobby.

Switches
The Splatoon Edition Switch vs. the Standard Edition

My wife and I just had an excellent date night and when we got home we busted out the Switches and fired up Splatoon 2. We had a blast playing together. She’s a better player at this particular game than I am but we frequently came in the top two spots on the winning team. If you’ve never played, Splatoon is a unique game. It’s a shooter that doesn’t require spectacular reflexes and precision aiming. Anyone can play it and feel successful. You play as a Squid that shoots ink from various weapons to cover as much of the world’s surface as possible in your color. It’s one of the best times a couple can have together; take my word for it. The game has the right balance of putting your loved one on a team with you and then putting them on the opposition team, just to keep it interesting.

Lots of people complain about the battery life, but lets face it, battery technology is what it is. If they put a much larger battery in the system it would be too big and heavy. With the plethora of charging options in the world it really isn’t a big deal. I haven’t killed it yet and I play more than your average kid. I always have a portable external battery on me. What tech geek doesn’t? I get around 2.5 hours of Mario Kart or Splatoon 2 before the battery needs a recharge.

If your gaming hobby isn’t allowed to consume all of your fun budget and you need to pick just one console to purchase. I’d say get the Switch and this is advise from a person that owns and plays every console and portable since the Atari 2600. You really can’t beat it. I imagine it will go on to be one of the best-selling systems of all time.

 

 

Exchange & Outlook Custom Room Reservations, Guide & Template

Exchange has a decent built-in room reservation system. It has some nice features like Free/Busy information, a robust address book, advanced room lists, automatic time selection, and an excellent invitation and approval system. However, it leaves a lot to be desired when it comes to information about the rooms themselves. It doesn’t track the information required by managed conference centers at all. There’s no layout or seating information, no pictures or directions, no way to alert IT staff or room managers that custom setup is required and no catering tracking.

At the heart of Microsoft’s Exchange Server software is a series of databases. These databases can be modified to store both the fields you see and use in Outlook as well as custom data. Outlook itself provides the tools we need to add our required fields but it also will allow us to create custom forms to input and access the new data with. Many Exchange admins and Outlook power users are already familiar with Outlook’s custom forms trick. There are a lot of articles and excellent information on-line about using them. I like Outlookcode.com and have learned much from reading the site. Microsoft also publishes several TechNet articles on the subject. Using custom forms, Outlook transforms from a CRM and PIM tool to full database application solution.

Create a Room Mailbox

A room mailbox is pre-configured to handle meeting requests and approvals. A room mailbox must exist before publishing and testing the form. More information about resource mailboxes is available @ https://technet.microsoft.com/en-us/library/bb124374(v=exchg.141).aspx

To create room:

  • Open the Exchange Management Console or Exchange Web Console
  • Navigate to Recipient Configuration ->Mailbox
  • Right click on Mailbox and choose New Mailbox

New Mailbox

  • In the New Mailbox wizard select Room Mailbox then click Next

New Room Mailbox.png

  • On the User Type screen select New User then click Next
    • Please note: this option will create an Active Directory account for this mailbox and then disable it once permissions are set, automatically. You should not delete the disabled account the process leaves behind but it is wise to move them to an OU in AD that is protected against accidental deletion. 
  • On the User Information screen, select the check box for Specify the organizational……..
  • Click the Browse button
  • Navigate to the OU that your room mailboxes occupy
  • In the Name Field enter the room’s name as you would like it to appear
  • Enter a username in the User Logon name field (name of temporary AD account)
  • Verify that the Alias field is populated with the room name or some variation of it
  • Select the database location and any applicable policies
  • Click Next

RoomAliasDatabase

  • Click the New button on the next page
  • Click Finish
  • Your new room mailbox will be visible in the EMC after enough time for replication has occurred

Room Mailbox Options

Options for room mailboxes include things like: who are the room administrators, should requests be processed automatically, and who can override the default settings. The options below are a good place start, but you will need to customise them to fit your specific requirements.

  • Locate the conference room you wish to configure in the EMC. 
  • Right click on it and select Properties
  • On the Resource General tab enter the Room’s capacity (this will be visible in the room finder)
  • On the Resource Policy tab enter delegates if this room is to be moderated by a human
  • Uncheck the Forward meeting requests to delegates box (this setting can be annoying)
  • On the Resource In-Policy Requests tab choose Selected Recipients for the first option and All Users for the second option This configuration will make sure your users follow the policies you set.
  • On the Address and Phone tab complete the location information fields
  • On the Resource Out-of-Policy Requests add the Room administrator, this will allow them to override a policy when required.

 Outlook Developer Mode

To create custom forms, fields, edit code, etc. you need to enable Outlook’s developer mode. Outlook in Developer Mode, functions as an IDE (Integrated Development Environment) and a pretty powerful one at that.

  • Open Outlook
  • Click on File
  • Click on Options
  • Select Customize Ribbon
  • Put a check mark in the box marked Developer
  • Click the OK button

Outlook Developer Mode

A new Developer Tab will be visible in Outlook’s ribbon, from this tab you can design and publish forms, edit Visual Basic Scripts (VBS) and Visual Basic for application (VBA) add-ins.

Download and Edit the Template

In this article we’ll walk through editing a template I’ve already made, you’ll see how the tool works and be able to make your own with ease. Plus, it’s a good template even if I do say so my self, LOL. You can download it here: Conference Center Template. Unzip the file to your hard drive. Opening a form template in Outlook the first time can be a little confusing.

  • Open Outlook
  • Click the Developer Tab
  • Click the Design a Form button
  • Use the drop down to select User Templates in the File System
  • Click the Browse button and locate the file you saved

OutlookFormTempFileSys

The template will open in Edit mode. It opens to the default Appointment tab because this form is based on the built-in meeting maker. Click on the tab named Conference Center to see the customizations.

OutlookConferenceCenter

Change the Pictures

  • Right click on the picture (use tabs to select) and pick advanced properties
  • Select the Picture field and click the button in the upper right
  • Browse to the picture you wish to insert
  • Click Open

OutlookFormEditPic.png

  • After inserting an image, size it by selecting PictureSizeMode in the properties
  • Choose Stretch from the drop down at the top, this will cause your pic to fill the frame

OutlookFormPicSize

Edit the Equipment List

  • Right click the field you wish to edit and select Properties
  • Use the controls to adjust the field properties accordingly
    • You can choose whether the boxes are checked by default or not. Enter Yes for checked or No for not checked

OutlookFormEditEquip

Edit the VBS Code (AV Notification)

This template includes VBS code that emails a copy of the appointment when the “Request Live Streaming……” box is selected. You can remove this section of the form if you don’t need it. Otherwise, you’ll need to edit the email address or change the code to better suite your particular requirements.

  • In the Ribbon click the View Code button

OutlookFormVBS

  • Change the highlighted Email address or otherwise adopt the code for your purposes. There is no save option in the editor. Once you are finished close its window.

OutlookFormVBSCodeEdit

After you’ve completed all of your changes save the form. File -> Save.

Publish the form to the Room’s Mailbox

Your users cannot access the form until you publish it to the mailbox we created at the beginning of this article. Before proceeding you’ll need to open the room’s mailbox in Outlook. If you don’t, it’s path will not be available in the publishing dialog. I prefer to setup an Outlook profile just for working with the room’s calendar, but this is optional.

  • Select the drop-down chevron under the Publish button
  • Choose Publish Form As from the menu

OutlookFormsPublishAs.png

  • Select the room’s calendar from the Look In drop down
  • Provide the Display Name and Form Name
  • Click the Publish button

OutlookFormDisplayname.png

Make the New Form Default

To prevent users from having to manually open the form we’ll want to replace the default appointment form.

  • Open the room’s folder in your Outlook (you must be displaying the folder list)
  • Right click on the room’s calendar folder
  • Click Properties
  • In the When posting to this folder use drop down box select the form you published
  • Click Ok

OutlookFormDefault.png

Congratulations you’ve upgraded your room reservation system. After you’ve wowed all your co-workers with the results of your hard work and get around to fully testing everything, you will notice a usability flaw. The form only works if you open the room’s calendar directly in Outlook.

Most Outlook users create an appointment and then invite the room to it. This invitation is based on the Free/Busy system in Exchange which is a subset of the Exchange web services. EWS never presents a form at all. Just a list of rooms and their availability. When the user selects a room, an e-mail is sent to the room’s mailbox which is processed by the attendant and added to the calendar. You’re left with a couple of choices.

  1. Train your users to open the room’s calendar and book their appointments from there. This isn’t a bad option for smaller organizations, but if you have thousands of employees, retraining all them could be problematic.
  2. Read my next article about how to use a few lines of HTML, some PowerShell, and Outlook to allow the normal invitaiton process while still compelling your users to complete the custom form. Exchange & Outlook Custom Form Room Reservations; Retain Invitations

 

Pfsense OpenVPN Server and Mobile Client Setup Guide; Mobile Data Protection and Remote Access in One

Introduction

In today’s data centric world, everybody wants to know what you’re doing on-line. The free Wi-Fi at fast food restaurants and hotels allows them to mine your data usage habits for marketing purposes. The “Guest” Wi-Fi at your place of business can also be monitored. What’s a private person supposed to do? There are lots of articles on the Internet regarding VPN services but few of them are free and all result in the purveyor of the service being privy to all your data habits.

One solution is to route all your mobile traffic, personal device at work, phone/tablet connected to public Wi-Fi, etc. through your home network over a VPN. There are  several services on my home network that I’d like to access from anywhere; Remote Desktop to my family’s computers, in-home Wi-Fi console, my router / firewall dashboard, and my email server just to name a few. I prefer to not punch that many holes through my firewall. A personal VPN solves these challenges.

In today’s post I’ll walk you through setting up OpenVPN on Pfsense. OpenVPN is a popular open source VPN solution that is included on some firewalls and runs on most distributions of Linux. If your device includes it as an option the principal steps in this guide will apply but the screens and locations will vary.

Instructions

I will be posting a full setup guide for Pfsense at some point in the near future. If you’re not familiar with the software, it is a commercial class firewall and router package that you run on a PC. You can get a lot of information about it from their excellent website.

Create User Account(s)

You will need a user account to logon to your new VPN with. The software supports certificate based authentication. However, self-signed certificates (issued ourself vs. purchased) are difficult to work with on modern operating systems. For the purposes of this guide we’ll stick with a basic username and password.

  1. Open the web configuration
  2. Click System -> User Manager -> Add
  3. Complete the form
  4. Do not check the box to create a user certificate
  5. Click Save


You may be tempted to make a single account for everyone to share. However, I recommend creating a separate account for each person that may use the service. This makes troubleshooting easier and advances your security stance.

Install VPN Client Exporter Package

Once OpenVPN is up and running you’ll need to install and configure the client software on your mobile, laptop, etc. The easiest way to accomplish this is by sending yourself (email, Dropbox, etc.) a pre-packaged configuration file. To export the configuration file we’ll need to add some software to Pfsence.

  1. Open the web configurator
  2. System -> Package Manager -> Available Packages
  3. Search for openvpn-client-export
  4. Click the Install button

vpnclientexporterpackage

Create an Internal CA

OpenVPN’s private connections are built using TLS encryption; it’s not important that you understand the details but we need to set up Pfsence as a certificate authority so that it can issue the encryption certificates required to make this work.

Depending on how you installed Pfsence, you may find there is already a CA present in which case you can skip this section.

  1. Open the web configurator
  2. System -> Cert Manager -> CA -> ADD
  3. Complete the form and click Save

PfsenceCA

Issue Certificate

Now that we have a Certificate authority, we’ll need to issue the TLS server certificate the encrypts our data as it travels over the VPN.

  1. Open the web configurator
  2. System -> Cert Manager -> Certificates -> ADD
  3. Complete the form and click Save
  4. Be sure that you set the Certificate type to Server Certificate
  5. Add your public IP address as an alternative name
  6. Click Save

PfsenceServerCert.png

OpenVPN Wizard (Setup the service)

  1. Open the web configurator
  2. Click VPN
  3. Select OpenVPN
  4. Click the Wizards Tab
  5. Leave type of server as Local User Access
  6. NextOpenVPNWizard1
  7. Certificate Authority, select the CA you created
  8. Click Next
  9. In the certificate drop down, select the server certificate we issued from our CA
  10. Click Next
  11. The next form has a lot of options on it. Change the following:
    • Description, name your connection
    • Tunnel Network = CIDR network separate from your primary LAN subnet. For example; if your current primary network is 172.16.5.0/24 then you would want to put 172.16.6.0/24 here. Incoming VPN clients will receive addresses in this range.
    • Local Network = your primary LAN range. In the example, 172.16.5.0/24
    • Redirect Gateway = Select this option, it is the magic sauce that prevents the networks you connect to from snooping on your usage habits by sending all your network traffic through your home router instead of theirs.
    • Concurrent Connections = How many devices will you allow at once.
    • Select allow Inter-Client Communications
    • DNS Server 1 = IP address of your Pfsence firewall
    • Enable NetBIOS options
    • NetBIOS Node Type = b-node
    • Next

OpenVPNWizard2

The wizard will automatically add the required firewall rules and routes for us. However, it defaults to certificate based authentication and we want to change that (see create accounts).

  1. Click System-> VPN -> OpenVPN
  2. Select the pencil icon to edit the settings
  3. In the drop-down for server mode, choose Remote Access ( User Auth)

At this point our VPN server configuration should be complete. To use it we will need to install and setup the client software on our mobile device. There are a lot of client applications that support OpenVPN my personal favorite is OpenVPN CONNNECT. It is available on both the iOS Itunes App Store and Google Play for Android. The software works the same way on both mobile operating systems.

Google Play download (Android)
Itunes download (Apple iOS)

Export the Configuration File

OpenVPNExport

  1. Open the web configurator
  2. Select the VPN menu
  3. Click OpenVPN
  4. Click Client Export
  5. Scroll down to the OpenVPN Clients section and click the button labeled OpenVPN Connect (iOS/Android)
  6. Save the file to your disk
  7. Send the file to an email address that you can access from your mobile or place it in your cloud storage. (You could also connect your device and side load it)

Configure the client application

  1.  For Apple devices,
    • Open the configuration file from your device
    • Select OpenVPN CONNECT as the application to open the file with
    • Choose YES to import the profile
  2. For Android devices,
    • Save the file to your device from your email or cloud app
    • Launch the OpenVPN CONNECT application
    • Tap the three dots button in the upper right
    • Tap Import
    • Tap Import Profile from SD Card 
    • Browse to the Downloads folder (default save location) on either your internal storage or SD card
    • Tap the file you saved
    • Tap the Select button
  3. Enter the correct username and password (choosing save is optional)
  4. Click the Connect button.

Screenshot_20171011-151545.jpg

Validate your setup

Obtain your mobile public IP address by opening your device’s browser and going to http://www.ipchicken.com (not connected to VPN). Then connect to your VPN and open the page again. Your IP when connected to the VPN should be the same as a computer on your home network. If it is, everything is working. If not, try looking in the OpenVPN connect client logs and in the logs of Pfsense for clues.

Galaxy Note 8 Tips and Tricks; Air Command Shortcuts

Samsung’s Galaxy Note 8 is the most productive portable device I’ve ever used right out of the box, but you haven’t seen anything until you spend some time customising it. 

Samsung gets a lot of grief for pre-installing their software on all of the phones they make, but I find several of the apps very useful. One example; Air Command, is a mini launcher that activates when you remove the S-Pen from it’s slot.

By default when you tap its icon with the stylus you’re presented with a wheel of pen related applications. S-note, Smart select, and several others are pre-populated. What you may not realize is that the list can be customised to display shortcuts to any 10 apps you like. I use Onenote instead of S-note so I swapped the icons in the launcher. The short clip below will show you how.

Network Speed Boost Part 1; Upgrade your Router

Today’s high-speed internet has become a utility that needs to be distributed throughout your home to countless devices. Not so long ago, this was relatively easy to accomplish. More or less, you only needed to connect the combo modem / router / firewall from your Internet provider to your computer(s) and the rest of the setup was automatic.

For many, this default installation still serves well. If you have a handful of mostly wireless systems that need basic Internet service, there’s not much reason to invest your time and money in to a customized solution. Those of us that have multiple gaming consoles, tablets, laptops, phones, robot vacuum cleaners, smart refrigerators, smart TVs, and smart cars could probably use a network with more performance, tuning, and features than the default method allows for.

So you’ve decided it’s time to upgrade to a more advanced network. Where do you start? Believe it or not, your ISP did not send you cutting edge equipment. Like most for-profit corporations, the bottom line matters. They gave you the most cost-effective solution. High end providers like Google Fiber and Verizon FIOS tend to use better equipment; if you have this type of service consider leaving it alone. The rest of us poor souls are going to dive in to our network hardware to see what can be improved. A future post in this series will focus on Wi-Fi;  we are looking at the cabled equipment in this one. Nothing makes wireless slower than having a lethargic cabled network feeding it.

Computers talk to each other by exchanging digital letters we call packets. Each packet has address info, a body, and timing information.  There are essentially two types of packets flying around on your network. One type we call Layer 2 are like letters that are destined for a neighbor; you don’t need the post office because their house is just across the street. The other kind are called Layer 3 packets, they are intended for systems on other networks (like the Internet). These Layer 3 packets need help to get where they are going, they ask your router for directions. The speed at which your router is able to direct the packets has an impact on network performance. The more devices you have connected to your network, the faster you router needs to be.

One way to tell if your router is suffering from poor performance is to run a speed test form a system connected to it via cable. A slower than expected test result can be a symptom of congestion. Congestion, in this case, means that your router isn’t keeping up. There are of course other causes of poor performance. If you suspect something else is causing the slow down; try disconnecting everything connected to your network and then reconnect each item one at a time running a speed test after each. If a drastic slow down occurs after a particular device is tested, it may be the bottleneck.

You’ve decided to upgrade your router but how do you figure out what to get? Like all technical hardware, routers have specifications to help you understand their performance. Unfortunately, marketing guru’s know we’re looking for specs and jumble the pot with all kinds of jargon and made up specs that simply don’t matter. What does matter? It comes down to CPU speed, RAM, Storage, and the type of software they are utilizing. Most of the other specifications are either meaningless or equal across all routers.

The ASUS RT-AC66U’s is a relatively high performance residential unit that you can get at most brick and mortar electronics stores. It has a Broadcom BCM4706 CPU that runs at 600MHz, 128 megabytes of storage, 256 megabytes of RAM, and runs a Linux-based operating system. The fastest home router ASUS sells (RT-AC5300) uses a BMC4709 running at 1.4 GHz, has 128MB of storage, and 512MB of RAM. Nearly twice as powerful but also double the cost.

Routers don’t calculate your finances or play games and can get away with a slower CPU, but 600MHz is paltry ; the first Iphone was faster. 1.4 GHz is better but still slow compared to a decent smart phone. Don’t get me wrong, either of theses units are an improvement over the router your ISP gave you but I prefer another option.

I run router software on an old PC. Why? Currently I’ve got an Intel Dual Core 2.4 Ghz CPU, 4 gigabytes of RAM, and 256 gigabytes of storage. I bought the refurbished PC from my local electronics store for $99.00 which is less than a third of the cost you’ll pay for the RT-AC5300. The software I use is pfsence. It is a commercial class Router and Firewall package that is open source (aka free). Pfsence is just one of many choices; this wikipedia page has a list of the most popular options with links to the downloads and instructions.

What’s the catch? Why doesn’t everyone run a router this way if it is both less expensive and faster? The perception is that the combo units (WiFi and router in one) are easier to set up and use. This is true but high performance is rarely easy. If you’re willing to spend some time and effort you can set up a stand-alone router capable of crushing anything you could purchase at an electronics store. Every device connected to my home network reaches it’s max speed; there’s no congestion. My whole family is often on different devices watching video, playing on-line games, and surfing Facebook simultaneously. None of them lag.

If you’re not interested in setting up a PC router from scratch or purchasing new hardware you can still give your network a speed boost by replacing the software on your current device. The software your router shipped with can be replaced with something custom that takes full advantage of the hardware you have available. Two of the most popular firemware replacements are DD-WRT and Tomato. This wikipedia page lists most of the options and has links to their downloads and instructions.

I’m working on a guide for custom configuring pfsence but their web site has execellent documentation. DD-WRT and Tomato are very popular and have lots of bloggers that have covered their setup procedures. In the next article in this series we’ll take a look at how to speed up your WiFi.

 

Color code Outlook email; Conditional Formatting 

I recieve more email in a day than I could possibly read. My job doesn’t allow for things falling through the cracks just because I’m busy. I use Outlook’s conditional formatting feature to make important messages stand out from the ocean of junk.

Conditional formatting will change the color and / or font of an email in your message list based on parameters you specify. You can easily change emails from your boss to red, team members blue, the big project to large yellow, etc.. Personally, I assign each project I’m involved with a color. This makes it easy to find relevant information quickly. 

  1. Open Outlook. 
  2. In the ribbon click View and then the View Settings button. 
  3. Click the Conditional Formatting button. 
  4. Select Add to start a new rule and assign an appropriate name.
  5. Use the Font button to choose the text effects your rule should trigger.
  6. The Condition button presents a list of filters to trigger your font change with. Choose the message sender, subject, keywords, and more. The three tabs across the top provide advanced options. 

Good organization of your inbox can be the difference between drowning in email or sailing through your workload. Spend a couple of hours upfront to automate as much as possible. You won’t regret it. 

PowerShell Hash Tables; Combine data from multiple modules.

If you use PowerShell long enough you will inevitably need to combine data from more than one module into a report. As an example, My co-worker ran into a situation where she needed to show mailbox sizes by city. Exchange doesn’t have the city but we know Active Directory does. How do you combine the information from the Exchange Module with the information from the Active Directory Module?

SQL, SharePoint, Lync, pretty much all MS server products have a module at this point. The examples below are Exchange and AD but you can use the technique to combine data into a report from any or all of them. First get the data you need from the Exchange module; Get-MailboxStatistics youremailaddress|fl totalitemsize should do the trick.

We know that Active Directory has our address in it. 

How in the world do we combine the data? There are lots of ways to do this programmatically but one of the easiest is to use a hash table. 

What’s a hash table? In the simplest terms it is an array (a spot in memory) that stores key/value pairs. In our case we going to store a key (the name of our column) and a value (the results of another command) in the array and then display only the results. It sound complicated but trust me; it is easy once you get the hang of it.
The trick with hash tables in PowerShell is to get the syntax right. @{ <name> = <value>; [<name> = <value> ] is the formula. I know it looks complicated but if we plug in the data we’re looking for in, it will make more sense.
Get-MailboxStatistics dt208703|fl totalitemsize,@{Name=”City”;expression={(Get-ADUser -Identity dt208703 -Properties city).city}} see that comma between our first command and the @ that starts our hash table? You need a comma separator for each new hash table in your command. English teachers may be trying to get rid of the comma in written language but if you forget them in programming you’ll be sorry.

So what’s up with the ().city in our hash table? The syntax didn’t say anything about that. Turns out it is just some formatting. Who remembers grade school math; what does (3×2)+6 mean? For those of us that are a little rusty, it means multiply 3 and 2 and add 6 to the answer; the () mean do this first. Same thing in programming languages (they’re all just subsets of Algebra). So do this first (Get-ADuser –Identity dt208703 –properties city) and then display only the value named city. 

Samsung’s Galaxy Note 8; Best screen writing ever? 

Full disclosure, I am now and always have been a pen computing fan. Who remembers Graffiti on Palm Pilots and the first Windows XP tablet edition PCs? From the Apple Newton to the first Pocket PC, I’ve owned them all. Something about writing with a stylus connects to my brain in a way that keyboards cannot duplicate. 

I freely admit keyboarding is faster and more accurate. I also agree that learning to use a stylus can be more than a little frustrating. Samsung’s pen experience is on a level by itself. I am writing this article with it in the superb WordPress mobile app. I may never type again. 

Traditionally one of the highest hurdles for stylus input methods to jump has been a lack of friction between the instrument and the glass screen. Samsung has chosen to trade the tips of the S-pen with softer, replacable rubberized nibs. This improvement along with the Note’s vast compute resources have created an experience that rivals paper. I took an online typing test using the S-Pen and was able to hit 26 words per minute which is much faster than my thumbs at 19 wpm. Writing was more accurate as well. 

Speaking of compute resources, this thing is smokin’ fast! With it’s 8 core 64 bit CPU and 6 GB of RAM the unit crushes every task I throw at it. Apps open quickly, multiple windows do not lag and I haven’t had to manually close anything. I just checked and there are 23 apps open in the background while I’m writing this and I didn’t notice a single slowdown. 

Holding the note in my hand to write, reminds me of the little notebooks reporters and cops use (on TV). The narrow and tall form factor allows your hand to fully grip the phone and the buttons line up just under your fingers. Clearly Samsung’s engineers gave some serious thought to the balance and shapes. 

The handwriting interface on the device has also been improved. Gone are the rigid input boxes and specific character strokes most people associate with writing on a computer. The keyboard section of the screen is an empty page with a few simple controls. 

You just write in your normal style and it gets turned into typed text. Even if you have less than steller handwriting or do things like mixing print and cursive, it just works. I’ve switched over to my other hand and it still recognizes the words. Above all, the Note 8 totally ignores my hand resting on the screen while I scribble away. 

In my opinion, Samsung’s Galaxy Note 8 is the best on-screen writing experience you can get right now. Even over full tablets like the Surface Pro (which I also have), the limiting factor for them being the ackward size and weight. 

Maybe now that I’ve published a glowing review, Samsung will tell me how to disable the infamous Bixby Button.  

Automatically Organise your Outlook Inbox in folders by years

Wow, people’s mailboxes are a mess. Who has time to read and sort the thousands of mostly irrelevant messages that have built up in there over the years? We can’t just delete the stuff because as soon as you commit to saying good-bye the laws of corporate Karma will cause an executive to ask for one of the messages you just dumped. 

What’s a busy person supposed to do? I get Outlook to put all my mail into folders by year, only leaving the current year’s mail sitting in my inbox. It’s easy to setup and really helps. 

1. Open Outlook.

2. Create folders for each year under your Inbox. I personally create a folder named Archive and then folders for each year under it.

3. In the Outlook Ribbon click on Rules -> Manage Rules and Alerts.

4. Click the New Rule button.

5. Choose “Apply rule on messages I receive”.

6. Select the box next to “received in a specific date range”.

7. In the Step 2 window (lower); click on the underlined words “in a specific date span”. 

8. Use the pop up to enter the start date (Jan 1st of the year you are building the rule for) and the after date (Dec 31 of the same year).  

9. Click Next and select the check box for “Move it to the specified folder”. 

10. Click the word specified and browse to the year’s folder to select it. 

 

11. Click Next to add any exceptions. 

12. Click Next again and check the “Run this rule now…..” check box. 

Repeat the process to create rules for each year. Your inbox will be cleaner, your Outlook will respond quicker, and your email administrator will get off your back. 

A gamer family’s trip to PAX South 2017

My wife and I were trying to figure out something cool to do for a family trip. We’d already done Yellowstone, the mountains, the ocean, Disney, you know all the great American family trips…… We were looking for something more personal to us. I mentioned that I had always wanted to go to a game expo like E3 but that you had to be a professional to attend. She asked a question I had just never thought of, “Are there any Expos open to the public,  around?”; “Well Duuuuuuh, of course there are. PAX has been around for quite a while, attracts attention from big vendors, has all the “gamer culture”, I felt like I should have thought of this a long time ago.

Google enlightens me to the fact that PAX has expanded since the last time I looked into it. Now they have a venue in Texas when it is freezing here and nice and toasty warm there. I have always wanted to take my wife to San Antonio anyway. Just like that our family’s next trip was chosen. I left the details to whatdouknow’s highly trusted logistics engineer (aka my wife).

San Antonio River-Walk Bridge
One of the many San Antonio River-Walk Bridges.

We wanted a hotel next to the action but it had to be quiet, too. My wife searches and comes up with a few candidates. We settle on the Spring Hill Suites in San Antonio. It’s walking distance from the Arena but not directly on the River Walk. It has a heated pool, free Wi-Fi, free breakfast, and the reviews look decent.

Here’s a travel trip from somebody who’s always on a budget and has years of practice. Find your hotel room on one of the big advertised sites like Trivago, Travelocity, or Expedia because they make it easy to search lots of hotels and rooms very quickly. Before you book the room; see if the hotel you like has their own on-line presence. More often than not, the hotel’s site will be less expensive than the search conglomerate’s.

We book our room and talk about transportation on the ground. We decide that our plans don’t require renting a car, our hotel is walking distance from the convention and the River Walk. We’re going to try Uber as a family for the first time. Great, the trip is all planned now we just need to wait until time to go.

San Antonio Zoo Landscaping
The San Antonio Zoo is very nice

PAX South is always in January and held in San Antonio Texas. Winter rolled around and it was finally time to head to the airport. We landed after an uneventful flight and my wife launched the Uber app. She told the app we needed a car big enough for 4 and their luggage. This is our fist time using Uber, ever. We hang around in the loading  slash smoking zone waiting for our car and trying to dodge the clouds of stink for twenty minutes when a Toyota Prius rolls up. Hmmm, not what I imaged when we requested seating for 4 and luggage but we all eventually squeeze in. It’s a good thing these people are my family, LOL

Everyone was impressed when we got to the hotel. It was possible to see the convention center from it. The building looked nice and well maintained. The pool was great, it was out on a back-deck next to the sidewalk so you could people watch while you swam. The small bar / kitchen served breakfast, beer and wine, and had a simple room service menu at night. There’s was a small convenience store and the usual vending machines. The rooms were comfortable and the TV had plenty of HDMI hookups for all our gear. All the room’s in this hotel are divided by a half-wall and the restroom into two separate spaces.  If you ever make the trip I highly recommend the Hotel. It’s about a 5 block walk to the convention center and 4 blocks to the River-Walk. If you want closer to the action, the River-Walk Marriott is connected to the venue.

San Antonio’s Spring Hill Suites

This slideshow requires JavaScript.

We got up the next morning, had breakfast in the hotel lobby (which was excellent) and then headed to the convention center. The sidewalks were a stream of people marching to PAX. Once we passed through security we were directed to the mother of all lines. Someone had brought inflatable dice and we played the largest game of “Keep It Up” I’ve ever seen.

They opened the doors and the crowd streamed in. The main expo floor is huge, you literally cannot see from one side or end to the other. It is packed with booths from every type of video, electronic, board, and tabletop game you’ve ever played. There are retail booths, demo booths, the Nintendo Switch is playable (it hadn’t been released yet). In a word it is Rad!

There’s so much to see and do here; concerts, shows, meet and greets with gaming celebrities and YouTube stars. There are several gaming libraries where you can play every game on every console ever made. A sea of late-model gaming rigs awaits hundreds of simeltaneous players for numerous tournaments. There’s a console tournament section. Open games that you can just step up and play and this is all just in the main hall.

The convention center has an enormous number of side rooms, each of which has something different going on. One is stuffed full of musical instruments, electric guitars, and drums waiting for anybody that would like to come play. In a lower level common area there’s a bean bag oasis were people crash and play Mario Kart 7 in open games on their 3DS consoles. I won’t spoil it all, part of the fun is discovering everything yourself.

I didn’t expect the sheer amount of competition. There were professional tournaments with thousands of dollars and big name sponsors and there were friendly tournaments that anybody could play in.

Not only is PAX fun; the city of San Antonio is too. We have walked all over this burg. Our smart watches tell us we’re clocking an average of 13 miles per day. The River-Walk is lined with places to eat, the Alamo, bars, and an upscale mall. The city has a magnificent Zoo that is an Uber or Lyft away.

My kids count this as their favorite vacation to date. Considering some of the places we’ve been, that is saying something. If you’re looking for something to do and your family likes games, PAX is worth your attention. We had a blast and I’m sure we’ll go back sometime. Tickets are on sale for PAX South 2018 now http://south.paxsite.com/, they sell out every year.

Make a Windows 10 Theme from your personal pictures

Chances are that after a few years of carrying around a camera with you near constantly, you’ve probably racked up a stack of epic pictures that you’d rather stare at instead of the usual melting clock wallpaper fair. Windows 10 makes setting up your own custom theme using your pictures ridiculously easy.

First you’ll need to separate out all your favorite pics. Copy and paste them in to a  folder anywhere on your hard disk. As a beginner’s tip; I suggest that you choose pictures with a wide-angle (large area) view. They tend to look better as background pics than those that are of tight spaces.

Now that you have your pictures all picked out. Open your notifications pain and click the All Settings button. allsettings

Choose Personalization from the menu and then click on Background in the menu on the left. Choose Slideshow in the drop down box in the center. Now use the browse button to locate the folder you saved all of your epic pictures in. Basically you want your screen to look like mine does below but with your folder’s name.

Background

Now pick colors from the menu on the left and check the box that says to automatically pick a color from your image.

Colors

That’s it. Your background will now cycle through all the pictures in your folder and the task bar and window colors will change to match the selected picture. It’s one of my favorite features in Microsoft’s new OS. If you haven’t already upgraded, you should think about it.