Laser Pointers Blind Pilots

Click here for a related CNN report on lasers blinding pilots

Laser pointers can be cool toys, but they also pose a serious blinding risk.  DO NOT SHINE THEM AT PEOPLE.  These videos show the view from a pilot’s perspective when someone shines the light at an airplane.  We put pilots in charge of transporting hundreds of people in an airplane safely to a destination, I am sure the last thing you want when you are on the plane is a blind pilot.

Educate anyone you know that has these laser pointers and uses them as a toy on this danger.  It is also apparently considered an attack on the airplane and leads to FBI arresting an individual in the next video.


Liz Marks Texting & Driving Story – YouTube is a website setup by the US DOT using ad campaigns and educational resources to warn people about the dangers of texting and driving.  I think the public needs to be exposed more to the not so lucky cases as is the case with this girl who seems to barely manage escaping death.

I think that all too often we take the grittiness of life and death and hide it away that people just don’t have a clue about the reality of dangerous behaviors such as texting and driving.

Colorado Cannabis


There is a difference between recreational and medical usage of marijuana that many people do not know outside of states that have legalized cannabis.  Even though I live in Colorado, I did not really see the difference until Colorado voted to allow recreational sale and usage in the state.  I often saw people making comments such as “Dude, your state just wants to get high” even before Colorado voted recreational sale and usage into law.

Also, be aware that just because it’s legal, doesn’t mean everyone does it.  I support an individual’s freedom to consume whatever they want as long as it doesn’t harm themselves or others even though I do not partake in the legal consumption of substances such as marijuana or alcohol.

Medical Usage vs. Recreational Usage

I don’t care what numbers you read or subscribe to, I have seen the positive effects of marijuana on patients suffering from various ailments.  It is just another drug that is taken to help with the side effects of being ill or injured, while adding very little extra side effects.  There is no imaginary line dividing the believers from non-believers that marijuana “is good” or “is bad”, there are just facts.

Legalized recreational marijuana in Colorado also opens up the doors for more comprehensive studies that will put some numbers towards ending the great pot scare by allowing organizations to legally study its benefits for the medical community.

Recreational marijuana usage, however, has a much broader set of reasons why someone would consume it.  Some of these reasons range from the casual user saying “It just lifts me up in the morning” to a heavier user saying “I can’t wait to get baked out of my mind tonight”.  To my surprise, I saw that not all the recreational users want to get stoned to the point of being a non-functional couch potato.

Although there are different levels of recreational consumption, they both seem to belong to the “high-on” category.  All levels of recreational users have no medical reason for consuming, they do it just because it feels good.

On the dispensary’s side of the counter, there are lots of regulations with which to comply to hold a recreational or medical license.  Not all dispensaries are recreational, medical, or both.  Also, the dispensaries I have seen that carry both licensing keep the recreational and medical areas separate.

Medical Process

For several years now, Colorado has allowed medical marijuana sales and the heavily regulated process, simplified, is as follows:

  • A doctor can recommend (not prescribe) the use of cannabis to treat specific symptoms related to various ailments
  • Patients meet a recommending doctor
  • Doctor reviews patient symptoms and writes out a recommendation on an official state form
  • Patient mails the state form to the state and registers for a medical marijuana license (“Red Card”)
  • Patient receives the 1 year license in the mail and can then to grow a certain amount of plants and keep a certain amount of cannabis in usable form
  • Public consumption is prohibited
  • Dispensaries are established businesses that can claim some or all the patients’ allowed number of plants, with patient permission, and cultivate them on behalf of the patient
  • Only patients with a valid medical license can buy from a medical marijuana dispensary

Recreational Process

The recreational process seems much simpler on the consumer’s side of the counter:

  • Be over 21 years of age
  • Have a valid, government issued, identification card
  • Purchase from a dispensary carrying a recreational license
  • Public consumption is prohibited

Alcohol Comparison

To sort of sum up, I would like to make comparisons between recreational cannabis and alcohol consumption.  With alcohol you have a range of usage scenarios with the occasional user saying “I like to have a glass of wine with a fancy dinner on occasion” to a heavy user saying “I am going to get plastered tonight because I had a bad day at work”.  Private consumption is required for both substances, you cannot walk around in public spaces consuming them.  Alcohol is more dangerous causing impairment and slower reactions even at low to moderate levels, yet is widely accepted without much stigma.

Most people don’t want to smell your alcohol breath sometimes mixed with some other smells including vomit or urine while you drool and stumble your way around, just like most people don’t want to smell your marijuana smoke mixed with Cheetos breath while you’re chanting “Dude, I’m sooooo high right now”.

The only stigma I can think of with alcohol is when someone reeks like booze while you’re standing in line somewhere and you think to yourself, “Hey buddy, ease up on the bottle a bit”.   It seems the stigma is appropriately only at the high level of alcohol consumption, whereas with marijuana, any level of consumption seems to bring a stigma of “dude, you just want to get high”.

Please consume safely and responsibly, and remember that not everyone is a high-on or a drunk, and not everyone wants to hear about your marijuana or alcohol “adventures”.

Archive Old Files

One of my clients was recently merged into another business and they had an archaic system for record keeping that I call “Pile of Files”.  They wanted to go through the pile of files and folders and archive all files before the merger date.

This is the script that was the result.  Don’t take this script lightly and I would highly recommend going through the generated log file and making sure that everything is good to go before calling an archival project complete.

Also, make sure you have backups before starting any sort of data archival or migration!

Download this script


SETLOCAL EnableDelayedExpansion

REM **************************************************
REM This is a custom script whose purpose is to:
REM - Recursively search through folders
REM - Create a list of old files based on a date
REM - Move old files to a storage device
REM - Recursively delete leftover empty folders
REM **************************************************

REM Search for files prior to the date using format MM/DD/YYYY
SET _prior_to=01/01/1900

REM Source locations, using batch "array", list each directory separately to search
SET _source[0]=C:\Users\John Doe\Folder 1
SET _source[1]=C:\Stuff
SET _source[2]=S:\Old Junk
REM Set this to the last element number of _source "array"
SET _sourceLastElement=2

REM Destination location
SET _dest=D:\Archive

REM If these strings are found in a file's path, exclude them from copy/delete
SET _exclude[0]=DO NOT DELETE
SET _exclude[1]=ExcludeMe
REM Set this to the last element number of _exclude "array"
SET _excludeLastElement=1

REM **************************************************
REM **************************************************

REM Log file location
SET _log=%UserProfile%\Desktop\archive.log
DEL "%_log%" >NUL 2>&1

REM This is a temporary file we create to hold filenames to be moved due
REM to a 253 character constraint in the FORFILES /C argument
SET _fil_temp=%TEMP%\fil_tmp
DEL "%_fil_temp%" >NUL 2>&1

REM Loop through all files from _source[N] and add them to the temporary file
REM if older than _prior_to
FOR /L %%N in (0,1,%_sourceLastElement%) DO (
 FORFILES /s /p "!_source[%%N]!" /d -%_prior_to% /C "cmd /c IF @ISDIR==FALSE ECHO @PATH>>^"%_fil_temp%^""

REM Loop through temporary files and perform action
FOR /F "tokens=*" %%A IN ( %_fil_temp% ) DO (
 SET _exclusionFound=
 FOR /L %%N in (0,1,%_excludeLastElement%) DO (
 ECHO "%%~DPNXA" | FIND /I "!_exclude[%%N]!" >NUL && ( 
 SET _exclusionFound=1
 IF NOT DEFINED _exclusionFound (
 ECHO XCOPY "%%~DPNXA" "%_dest%%%~PA">>%_log% 2>&1
 XCOPY "%%~DPNXA" "%_dest%%%~PA">>%_log% 2>&1
 IF EXIST "%_dest%%%~PNXA" (
 ECHO DEL "%%~DPNXA">>%_log% 2>&1
 DEL "%%~DPNXA">>%_log% 2>&1

REM Recursively delete all empty directories from our source folders. First
REM show all sub directories in reverse order, then remove directories with
REM RD. This command will fail for each non-empty directory.
FOR /L %%N in (0,1,%_sourceLastElement%) DO (
 REM First, clean out Thumbs.db from our _source folders
 ECHO DEL /S /F /Q !_source[%%N]!\*Thumbs.db>>%_log% 2>&1
 DEL /S /F /Q !_source[%%N]!\*Thumbs.db>>%_log% 2>&1
 ECHO DEL /S /F /Q /A:H !_source[%%N]!\*Thumbs.db>>%_log% 2>&1
 DEL /S /F /Q /A:H !_source[%%N]!\*Thumbs.db>>%_log% 2>&1
 FOR /F "delims=" %%A IN ('dir /s /b /ad !_source[%%N]!^| SORT /R') DO (
 SET _exclusionFound=
 FOR /L %%M in (0,1,%_excludeLastElement%) DO (
 ECHO "%%~DPNXA" | FIND /I "!_exclude[%%M]!" >NUL && (
 SET _exclusionFound=1
 IF DEFINED _exclusionFound (
 ECHO Skipping delete of "%%~DPNXA" exclusion found.>>%_log% 2>&1
 ) ELSE (
 ECHO RD "%%A">>%_log% 2>&1
 RD "%%A">>%_log% 2>&1

REM Cleanup our temporary file
DEL "%_fil_temp%" >NUL 2>&1


Download this script

DNS based adblock using OpenWRT, OpenDNS, and dnsmasq

[Update 24 Feb 2018: I am now using a MikroTik router and have written an article to do the same kind of DNS adblocking.]


Why use a DNS based adblock?  Because I prefer to try to keep advertisements and pop ups off of all computers that use my internet connection, not just the ones with an ad-blocking  browser plugin installed.  It also cuts down on bandwidth usage from those auto-play advertising videos and flashing images. Continue reading “DNS based adblock using OpenWRT, OpenDNS, and dnsmasq”