Trump Tweets that didn't age well

I’ve been building a neural net to generate Trump Tweets as part of my Trump Report app, and have consequentially been going through a bunch of Trump Tweets to filter out irrelevant ones. During this filtering, I stumbled upon several that definitely didn’t age well. Enjoy!

Read More

JIRA template creator bookmarklet

This is a JavaScript bookmarklet that helps create pre-filled tickets. To use it, add it as a bookmarklet in your browser, then visit the JIRA issue create page. Fill out the fields you want to be pre-filled, then click the bookmarklet and it will provide a popup with the link to the template. You can then bookmark this link to pre-fill those fields whenever you’re creating a new ticket.

Read More

Useful git aliases

After watching this talk from the 2017 Git Merge conference, I got inspired to start integrating more git aliases into my workflow.

Read More

About this site

I wanted to write a quick post about the architecture of this site for those who may be interested.

Read More

Alexa Sonos Intercom

This is a recent weekend project I built. I had a Sonos system, and thought I’d turn it into an intercom using Alexa as the input. Here’s a demo:

Read More

Setting up a Node Sonos API using Resin.io

I wanted to build some home automation on my Sonos speakers. After some research, I decided that the most straightforward way to do this would be to fork a project I’d found on GitHub into this one, change some of the default settings, and add a Dockerfile so it could be deployed to a Raspberry Pi via Resin.io.

Read More

Olympic Beach Backpacking

This past weekend, some friends and I backpacked along the beaches of the Olympic National Park, in northern Washington. We were originally planning on going this route, but the slick rocks and stormy weather made that untenable. We ended up camping one night near Cape Johnson, then heading back to Rialto Beach.

Read More

Weekend Project: Bluetooth headphones for the TV

My weekend project was getting Bluetooth headphones working with the TV (My girlfriend isn’t a fan of the living room “turning into a warzone” during my occasional PlayStation sessions). I picked up this TaoTronics transmitter and it did the job well. It paired easily and then all I had to do was just plug it into the receiver’s headphone jack.

Read More

Greece Trip

My girlfriend and I recently spent a week in Greece. Our original plan was to spend a week on the island of Corfu, part of the Ionian Islands off the Western coast.

Read More

Exploring the Abandoned Tillamook Railroad

On Saturday, a group of friends and I went on a 9-mile trek along the abandoned Tillamook Railroad about 35 miles west of Portland. This railroad was originally constructed in 1906, but was damaged by storms in 1996 and subsequently fell into disrepair. It made for a nice, easy fall hike because of the fall colors, sun, and minimal elevation gain.

This route seemed to be the most popular, based on what I’d read, so we opted for that: http://www.oregonhikers.org/field_guide/Wolf_Creek_Trestle_Hike

Read More

Wine Tasting in the Columbia Gorge

My girlfriend and a couple friends of ours went wine tasting this weekend. And, naturally, I brought a drone.

There are dozens of vineyards in the Columbia Gorge near Hood River. If you’re interested in visiting yourself, here’s a map of them: WINERIES/VINEYARDS | Columbia Gorge Wine Country. We were totally overwhelmed with all of the choices, so we pooled our money and hired a tour guide. We went with Martin’s Gorge Tours, and were really happy with them. Plus, none of us were driving, so we could enjoy all the wine we wanted.

This particular flight was over the last vineyard we visited, Garnier.

Read More

Building a Raspberry Pi-Powered Kubernetes Cluster

Kubernetes was being used more and more at my office, so I wanted to dive in myself and figure out how this thing worked. I’d seen a few posts about building a cluster out of Raspberry Pis online, and decided to try it myself. I picked up 5 Pis, rack-mounted them on a set of tiny Pi racks I found on Amazon, hooked them up to a switch, and got HypriotOS running on them. Soon after, I was able to deploy Docker containers to the cluster.

Read More

How to freeze page Javascript execution in Chrome

As a QA engineer, there are often times when I’ll be working with dynamic elements on a page that disappear on mouse out. This can be extremely tedious to try to inspect these transient elements, and the only solution is to freeze the page. This can be done as follows:

Read More

On the HTML 5 "data" attribute

This attribute can not only contain text values, but any arbitrary JavaScript value, including arrays and objects. This is extremely useful for scoping and eliminating the need for global variables in the your application’s JavaScript.

Read More

Python class for TriMet train arrivals

I wanted a Bash alias that would output the time remaining until the next Eastbound train at the stop near my apartment. I created a Python class to get this data that I could implement in a script. This class takes as parameters your TriMet API key and the ID of the stop. To obtain a TriMet API key, visit http://developer.trimet.org/.

Read More

Linus Torvalds on Design

“Don’t ever make the mistake [of thinking] that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That’s giving your intelligence much too much credit.” –Linus Torvalds

Read More

OSX HotCorners Alternative

I’m a frequent user of OSX’s HotCorners feature. It allows me to put my display to sleep with a simple swipe of the mouse to the bottom-right corner of the screen. This is handy when I’m stepping away from my computer in order to keep coworkers from status-bombing me in our internal social network. Recently, I thought it would be cool to run a script when I stepped away from my computer, particularly to set my chat status to “away.” I realized that this wasn’t possible with the vanilla HotCorners, so I looked around for other options. I came across CornerClick. It’s an older project, but still works well. I’m currently running Maverick’s on my machine and it’s been fine. I definitely recommend this for anyone looking to add more functionality than comes with HotCorners out of the box.

Read More

Useful Intellij HotKeys and tricks in OSX

Search everywhere: Shift + Shift Find in Project: Cmd + Shift + F Add a breakpoint: Cmd + F8 Duplicate a line: Cmd + D Run in debug mode: Shift + F9 Run: Shift + F10 Stop Run/Debug Session: Cmd + F2 Pop open the terminal: Alt + F12 Find usages of a method or variable: Option + F7 Show currently-executing line: Option + F10 Tab to autocomplete: One annoyance with IntelliJ is that autocompletion doesn’t account for a token already being present before it inserts. So you end up having to delete text if you’re already in the middle of a method name and do autocomplete, for example. A way around this is to hit the Tab key instead of the return key when doing autocomplete. This will then autocomplete in the way that you’d expect.

Read More

Advantages of Primitives in Java

Java has some nice classes that wrap Primitives (Integer, Boolean, etc). In recent versions of Java, these classes can be used interchangeably with Primitives. So why use Primitives at all, ever? One of my coworkers recently told me that he makes use of Primitives as much as possible because they’re never allowed to be null. Since the Java wrappers for Primitives are references to objects, it is in fact possible for them to be null. As I’ve written before, it’s best practice to avoid null wherever possible.

Read More

Securing a Linux server with port knocking

I’d come across an obscure reference to port knocking in a security book and was curious to try it out. Essentially, port knocking is a way of firewalling connections to certain ports (such as SSH) pending a predefined “knock” sequence of TCP connections. This acts like a sort of “open sesame”-esque password and can be very secure if used in conjunction with other forms of authentication, such as SSH keys. Any scans by an attacker will reveal all ports closed. Your legitimate users, knowing the predefined knock sequence, will be able to get the server to open up your protected service to them.

Read More

Implementing a sleep() function in JavaScript

Note: usually, it’s better to use an asynchronous function, like setTimeout(), because this function blocks execution until it’s finished. That being said, sometimes you need to add a busy wait loop into your scripts. And this is how:

Read More

Origin of the command key symbol in OSX

The “⌘” symbol (the “Looped square”) was chosen after Steve Jobs decided that the use of the Apple logo in the menu system (where the keyboard shortcuts are displayed) would be an over-use of the logo. Apple’s adaptation of the symbol—encoded in Unicode (and HTML) at U+2318 ⌘ (HTML: ⌘)—was derived in part from its use in Scandinavian countries to denote places of interest. The symbol is known by various other names, including “Saint John’s Arms” and “Bowen knot”.

Read More

How to escape digits in CSS selectors

I’ve been writing Selenium tests for work lately and got tripped up recently on an element that had id “#1_ul.” Selenium kept throwing an error that the selector was invalid. I used FireFinder to generate a unique CSS selector for the element, and it returned “#\\31_ ul”. This puzzled me, until I came across this post on CSS selector escape sequences. It turns out that I needed to escape the leading digit in the selector. The way that CSS selectors work, to escape any numeric character, just prefix it with \3 and append a space character. This has to do with Unicode.

Read More

Florida man drives around with cell phone signal jammer for 2 years

This is a pretty funny/interesting story that I heard on the Security Now podcast earlier today. This wannabe vigilante drove around for 2 years on the highways in Florida with a cell phone signal jammer in his SUV, which is VERY illegal because it blocks emergency services. Cell networks are designed in a way that makes it easy to detect interference (MetroPCS noticed that their signals were regularly flatlining on the same stretch of highway twice a day), but it took awhile to track this guy down. When the police pulled him over to arrest him, they noticed that their radios had lost all contact with dispatch. He’s not facing any jail time, but IS looking at a $48,000 penalty from the FCC for his antics. http://www.theverge.com/2014/5/1/5672762/man-faces-48000-fine-for-driving-with-cellphone-jammer

Read More

Testing xpath selectors with FireFinder

I was in need of a tool to test out some XPath selectors for the Selenium framework I’m using as part of a project I’m working on, when I stumbled upon FireFinder. This is an add-on for Firebug, so it’s only compatible with Firefox. It’s extremely useful, though, for testing out XPath selectors. Definitely recommend it for web developers.

Read More

Adding a custom search engine to Chrome

You can add a custom search engine to Chrome that you can activate with a keyword. Just replace the query string parameter in the URL with “\%s” and Chrome will substitute it in when you do the search.

Read More

Mac Adware removal

I had to clean up a Mac with some browser hijacker malware recently. This tool proved to be the most effective.

Read More

Normalizing uploaded image rotation in Java

EXIF (Exchangeable image file format) is a standard that specifies metadata for images. This allows digital cameras and phones to embed GPS coordinates, camera type, resolution, timestamps, and much more into the image file.

Read More

The HTML "Marquee" tag

“Marquee” is a somewhat esoteric HTML tag introduced in Internet Explorer 3 that is used to create a scrolling area of text. It has a direction attribute that specifies the direction that the text should move in. The text can also be set to bounce around when it hits the end of its scroll area.

Read More

TIL: Browsers do not pass the referer string when on an HTTPS page

The HTTP Referer (originally a misspelling of “referrer”) header field identifies the address of a web page that linked to the resource being requested. It is a widely-used feature around the Web that is often used for analytics (in particular, identifying where a website’s traffic has come from).

Read More

Bash shell script to check the stock price of a company

I wrote a quick little shell script this morning using the YAHOO Finance API to show the stock price of my company in the terminal. This works for any company that’s publicly traded. Just change “JIVE” to your desired company’s stock ticker code.

Read More

How to use a keyboard shortcut to switch keyboard layouts in OSX

I use the Dvorak keyboard layout, which is great but problematic when, for example, I have a coworker who needs to type something on my machine. It got tedious clicking through options to change the keyboard layout, so I created a hotkey to do this. Go to System Preferences -> Keyboard -> Shortcuts. Select “Input Sources” from the menu, then check the “Select the previous input source” box. For some reason, it defaults to Cmd + Space, which is the same hotkey that Spotlight uses. I use Alfred, which activates with Option + Space, so it wasn’t a problem for me to just disable Spotlight’s hotkey. If you do use Spotlight, you can customize the hotkey in the same window.

Read More

Reflection in Java

Code Introspection is the ability to inspect the code in a system and to see object types. Reflection is the ability to make use of code introspection to modify classes at runtime.

Read More

Warm Springs Hike

I spent yesterday hiking near Warm Springs with some fellow Jivers. Toward the end of the hike, a herd of wild horses galloped over one of the ridges and ran past us. It was surreal.

Read More

Cloudy Pass Panorama

I finally got a chance to stitch together the biggest panorama I took this summer. This was taken during the last sunset I spent at Cloudy Pass. It’s difficult to describe the breathtaking beauty and magnitude of this place. These mountains surround you and are all that you can see for miles. A picture may be worth a thousand words, but there is really only one word necessary. Awe.

Read More

Assign a keyboard shortcut to quickly fullscreen an OSX window

I like to use hotkeys for frequent tasks whenever possible. With that in mind, I created a hotkey to toggle applications as fullscreen in OSX. This is an easy process. Simply go to System Preferences -> Keyboard, click the “Shortcuts” tab, and go to App Shortcuts. Click the “+” button to add a new shortcut. For the “Menu Title,” enter “Enter Full Screen.” Then assign the shortcut by pressing the keys you want (I set mine to command + esc). Click “Add,” and your shortcut will be assigned. I added another shortcut for “Exit Fullscreen” and assigned it to the same shortcut. That way, the hotkey acts like a toggle for that functionality.

Read More

The Singleton design pattern in Java

In Java, sometimes it can be useful to have exactly one instance of a class. This is known as a Singleton pattern. A logger, print spooler, or window manager would be potential uses for this.

Read More

Using meta classes in Python to create a Constants class

I was writing some Python code for a project and needed a class to hold constants. Unfortunately, Python doesn’t natively support constants or static classes. After trying several different methods of implementing a constants class in this language, I decided to use a meta class. The code looks like this:

Read More

Experimenting with static methods in Python

I was writing a class to construct CURL requests in Python. I decided to experiment with making one of the methods static. To do this, simply place a [email protected] decorator before the method declaration.

Read More

Buck Lake camping trip

I spent the weekend camping at Buck Lake. It’s a serene alpine lake in the middle of the Mt. Hood National Forest and the camping spots are an easy, mile-long hike from the parking lot. The fall colors were gorgeous.

Read More

Battle-testing waterproof iPhone armbands

My recent move to Portland precipitated (pun intended) an upgrade of my iPhone armband. In college, I used a plastic bag and a Belkin armband on rainy days. I’m running further than I was then, and prefer to save the plastic. So I shopped around on Amazon and picked up two cases to test.

Read More

Installing FreeNAS 9.2.1 on a USB drive using the ISO

I’m on a budget, and needed a NAS for Time Machine backups. I happened to have 8GB of RAM, an old AMD Athlon X2 machine, and 7 Western Digital Caviar Green 1 TB drives to spare. I did not, however, have a CD drive, so I was stuck installing purely using the ISO and USB drives. After I assembled the machine, I ran into many headaches getting FreeNAS to actually install.

Read More

Paragliding in Tillamook [video]

My uncle went paragliding recently in Tillamook. I cut this video together out of the 15 minutes of footage he recorded on his GoPro. He went with Max Rock Paragliding, and said it was an amazing experience.

Read More

Holden highlights from Summer 2014

This summer was a very unique time to be in Holden Village. Rio Tinto’s $200+ million mine remediation project was running full-throttle and extensive infrastructure projects were undertaken in the absence of guests. The following is a list of some of the major happenings of the summer.

Read More

Mountain biking in Forest Park

Portland’s Forest Park has some excellent mountain biking trails that I’m just starting to explore. Most of the park, including the Wildwood Trail, restricts access to hikers only. However, there are several fire lane entrances and trails that permit bikes. These include:

Read More

Bike ride from the Portland Zoo to the Waterfront [video]

I went on a ride last night with my uncle and his friend from the Portland Zoo to the waterfront, passing through Washington Park and the Pearl District on the way. It’s a fun route, and I’m looking forward to biking more in that area. (Disclaimer: Watch this video on small–I stabilized it but it’s still a little nauseating full screen.)

Read More

High-speed dog photography

During a recent hike to Broken Top, I took a few shots of my parents’ dog, Cody, catching snowballs. I used my Canon SL1 on Time-Value mode with a shutter speed of 1/1250, an F-Stop of 7.1, and ISO 100. I was fortunate to have a highly luminescent scene, because a shutter speed that high significantly cuts the amount of light that hits the image sensor. In retrospect, I probably could have increased the ISO to 1600 without introducing too much noise. This would have bought me up to 4 stops of increased shutter speed for more motion-stopping power.

Read More

Todd Lake to Broken Top hike

On Friday, I hiked from Todd Lake to Broken Top with my sister. We’d read about the hike in Virginia Meissner’s Central Oregon hiking guidebook, and thought it looked scenic. It certainly did not disappoint. For most of the first and last 6 miles, there is a great view of Mt. Bachelor. At the turnaround point, there is a gorgeous glacial lake and a ridge that provides incredible views of the Three Sisters mountains as well as Mt. Jefferson and Mt. Hood. If you start at Todd Lake, the hike is 14 miles round trip with just over 700 feet of elevation gain. The distance can be shortened by driving on a rough road to the Broken Top crater trailhead. The clearance on our car was minimal, so we took the longer route. The hike has become more popular due to an article in the newspaper recently, so expect to see several people on the trails.

Read More

Working with thread events in Python

I recently wrote a multithreaded download queue manager in Python. I had the actual file downloads running in its own thread. I only wanted the program to download during certain times of day, and decided to implement this functionality using thread events. I set up my threaded class method for downloading to accept a “stop_event” parameter.

Read More

Performing DNS lookups with Dig

My coworker was configuring a Windows Update server recently, and the domain was being blocked. We realized that there was a DNS entry that redirected Windows Update traffic to a local server. The way that we discovered this was with the Unix “dig” command.

Read More

How to import GPX data from a legacy Garmin 60CSX

I borrowed a friend’s old GPSmap 60CSx to build an elevation profile of a hike that we had gone on. The device was purchased in 2006 and not supported out-of-the-box by any Garmin software I could find. After trying out several programs to import data, EasyGPS for Windows worked the best. I ran it in a VM on my Mac. After I installed the USB drivers for the GPSmap, it was able to import all the tracks and waypoints from the device.

Read More

Daemonizing a Python script

It’s pretty straightforward to daemonize and communicate with a Python script using the PYRO (Python Remoting Objects) library. I found this example on StackOverflow recently and it worked for my purposes.

Read More

My favorite quotes

The following is a collection of some of my favorite quotes. I’m working on getting accurate citations for some of them.

Read More

Funniest iOS 8 text suggestions

I’ve been using the iOS 8 beta for the past few days. Here’s a compilation of the weirdest and funniest contextual text message suggestions I’ve gotten from it.

Read More

The FCC's meeting on net neutrality

The FCC is meeting tomorrow to discuss the new rules on Net neutrality. Here’s a brief explanation of the debate. Please take a few minutes to get familiar with the issue and make your voice heard; as a citizen of the Internet, this affects you.

Read More

Modifying the X10 DS10A sensor

Sure, more and more WiFi-connected home automation gadgets are being released on the market. But most of them are prohibitively expensive, and it’s still very early in the Internet of Things era. Who knows how the market will shape up in the next decade; New protocols will be developed, better products will be released, prices will drop. Why waste hundreds of dollars speculating on the technology of tomorrow when the technology of yesterday works just as well, and is cheaper?

Read More

Replacing my MacBook's hard disk with an SSD

After using my roommate’s new late 2013 MacBook Pro and seeing the performance he was getting with his SSD, I decided to upgrade mine. I own a mid-2012 13″ model, but this upgrade should be compatible with most unibody MacBook Pros from the past few years.

Read More

HAL: Building the poor man's smarthome

As a kid, I thought it would be awesome to own a smart home. In 2009, I decided to make that dream a reality and started on the project. For the past three years, I have built on it and I now present a comprehensive guide to automating your home on the cheap. I call my system HAL, after the evil computer from “2001: A Space Odyssey,” and as an abbreviation for Home Automation with Linux.

Read More

Six essential Google Analytics metrics

I attended an excellent webinar on Google Analytics the other day hosted by Niel Robertson and Anna Sawyer from Trada. I’ve been using some metrics in my custom reports similar to theirs for a couple of my clients, but they had a few very insightful ones that I jotted down and implemented immediately. The combined list is as follows:

Read More

How to edit a public Google map

I was looking for a new apartment for when I go back to school, and wanted a listing of all apartments in the area. Thankfully, someone had already mapped out every apartment complex in a Google Map. Unfortunately, however, I also wanted the prices associated with those, but was not able to edit the listings to include them. I worked around this by downloading the map data and uploading it into my account, essentially making a copy of the public map that I could edit. Here’s how to do this:

Read More

How to automate your Adwords Editor login with AutoHotkey

I love Adwords Editor, but I hate logging in every time I use it because my password is so long that I have to open a browser, log in to Lastpass, copy my password, and then paste it into the login box. I can understand the security considerations by Google, but still prefer to avoid tediousness and repetition when I’m trying to get work done. Here’s my solution:

Read More

Remixing the Web, part 2: Using Yahoo Pipes

Yahoo Pipes is the Swiss-army chainsaw of remixing the web. It pulls in data from any web pages, spreadsheets, or RSS feeds that you choose and can filter, extract information (like prices or e-mail addresses), overlay it on a map, and much more. I’ve used it to:

Read More

Setting up and configuring a local Wordpress installation with mod\_rewrite

I recommend setting up a local WordPress installation to test any new plugins before you install them on your live site because I’m a firm believer in Murphy’s law. I can’t say how many times I’ve run into embarrassing, unexpected compatibility issues with older WordPress versions or other plugins that took my site offline. It’s easy to repair a damaged local site, but not so easy to repair a bigger site with more traffic while it’s live. You would think that this would be a straightforward process given the millions of blogs on the internet there using WordPress, but I’ve found that most of the time it’s a pain.

Read More

Remixing the web, part 1: Pulling RSS feeds from static pages

Real-time data is the future of the web. Unfortunately, this future is far from evenly-distributed, and many times you’re not able to make use of information because of this. Consider the following scenarios:

  • You’re looking for a new place to live and aren’t having luck with Craigslist. You find several local real estate brokerage sites but none of them have RSS feeds, leaving you with a nagging suspicion that there are better deals out there that you’re not equipped to take advantage of.
  • You want to track updates in a timely manner to a job listing site that doesn’t have an RSS feed.
  • You want to track updates on a Wikipedia article about a topic you’re interested in.
  • You want to find out any updates about an obscure news story on a site that doesn’t have a feed. The following resources are ones that I’ve personally tested for turning static pages into dynamic content. This is the foundation for much more exciting, innovative, useful, and, above all, easily do-able projects that I’ll discuss in future articles.
Read More

8 essential (and free) "cloud" apps for small businesses

  1. Documents/Calendar/E-mail: Google Apps Standard Edition. Google Apps provides Gmail, Calendar, and Google Docs by default and hundreds of optional applications in their Apps Marketplace. I recently moved my e-mail accounts to Google (though this site is still hosted with HostGator) and it was a relatively painless process. Google provides 7GB of storage space shared between Gmail, Calendar, and Docs as well as an Exchange Server for syncing with your iPhone or Blackberry. In a later post, I’ll talk about setting up a VPN for securely sharing files and more using Google Apps.
  2. Video Conferencing: Skype. Disclaimer: I haven’t had a chance to try this out yet and it’s still in beta with mixed reviews from testers. That being said, Skype is a popular, profitable, reliable company whose service I’ve used as my personal phone for over a year, so, even if the service has a few kinks at the moment, it’s not going anywhere. I’ll post a proper review later once I’ve test-driven it myself. For now, other alternatives include ooVoo and VoxOx.
  3. Conference Calls: Freeconferencecall.com. I had a short and unprofitable (to put it euphemistically) stint doing multilevel marketing at one point in my life. The one thing I learned, however, (aside from how to lose money while straining relationships with friends and family) was how to host conference calls for free. I can’t say enough about this service; they provide not only high-capacity conference calls but the ability to moderate and record the calls–it’s incredible that they’re able to have a sustainable business by giving away so much functionality for free.
  4. Invoicing: Freshbooks.com. I use this service for my personal clients and it’s made my life so much easier. The free plan limits you to 3 clients but gives you the full functionality of the service including project management, tracking time (for you and employees), automatic invoice e-mailing, and an optional client login page that allows them to pay you through PayPal. They even have an iPhone app.
  5. Backup: Backupify.com. The free version of Backupify gives you 2GB of storage for backing up cloud services from Delicous.com to Twitter to Google Apps. Backups are automatic and can be set up to be e-mailed to you. I just started using this service in mid-May and it’s very easy to set up.
  6. E-mail Alerts and Filtering: Syphir.com. This one isn’t a standalone app (it requires Gmail), but it’s so useful that I had to include it. Syphir adds more complex filters for Gmail and even allows you to send notifications to it’s $2.99 iPhone app. I use it to notify me whenever a client sends an e-mail or leaves a voicemail on Google Voice. As opposed to being notified of every e-mail on my iPhone, Syphir is very convenient.
  7. CRM: SugarCRM. The free, open-source (PHP-based) version of Sugar isn’t hosted (you have to download it and host it on your own domain) but I recommend it because I haven’t found anything better yet available for free. I set it up in March for a client and it’s allowed us to segment our sales team so each member can only see and update accounts that they’ve created. Other useful functionality includes website integration for capturing leads.
  8. Tech Support: LogMeIn. After a set of unnecessarily long and frustrating tech support phone calls with friends, family, and clients I discovered this service and breathed a huge sigh of relief. The free version is Mac- and Windows-compatible allows secure, remote control of up to 16 different computers (with their owners’ permission, of course) through a web browser. Even if you’re not in IT (I’m definitely not), this service is very helpful. You can turn your mouse into a laser-pointer and point out where whoever you’re helping should click, show powerpoint presentations, magnify items on the screen, and it even supports computers with multiple monitors.
Read More