The Grandparents Went Mobile

“My friends have an iPad, I’m going to get one this weekend.”

“My friends have an iPhone, I’m going to send my nephew to get me one this weekend.”

Those are the sentences I heard from my 80ish year-old grandmother over the past year. She’s from South Korea and survived the Korean and Vietnam wars. She’s, to this day, very smart and can list off your birthday, phone number and her doctor’s address with little thought. Give her a math problem and she’s whip the answer right back at you.

My grandfather was, in general, an engineer. He had his HVAC and plumbing master licenses and might as well of had his electrical master license. He not only owned a HVAC and plumbing supply shop on the North side of Omaha but also a computer shop that specialized in AutoCAD. His home office is a library of floppy disks and DVDs of every software you’d never use. He helped fund and setup a high school’s technology program and computerized building HVAC systems he owned on using those green terminal screens and 1200-baud modems. This was all after he retired from the Navy and civil Engineering.

But as he also hit his 80’s, now being 90, his desktops and laptops started to see the dust slowly covering them. Software and hardware started to evolve quicker than he had interest in anymore. Now his day’s consist of watching black and white western TV series.

My grandmother, on the other hand, found that should could no longer ask her husband to search the Internet for information, send emails and print off legal documents. She never really learned how to operate a Windows machine because her husband liked doing that for her so much. It was his “thing”.

Then came the iPad. She found that she could send emails, fill out online forms and do research on the Internet using this ultra portable 10″ screen. It didn’t require a cord to use; no keyboard; no mouse. It was very basic. She could push email or Safari icons and they would just work. She could even wireless print. She no longer needed her “complicated” laptop to do much of anything except write legal documents and fill in financial spreadsheets. It was perfect for her.

She now has an iPhone and loves using it to make phone calls or even send a SMS here and there. Likely because of the “bling” and “peer” factors. So then I showed her maps, camera and photos. It was exactly what she wanted. So simple.

So what’s the point of this blog post? User experience.

She uses these devices because they are not overly complicated, even though you could make them as such if you wanted to.

But let’s take a step further.

The doctor’s office has online forms to fill out. She tried filling them out using her iPad but the doctor’s office told her they didn’t receive the information they needed. She was frustrated… and I can see why.

I came over and started filling out the forms on her iPad. Even though the site worked on the iPad, it was defiantly a desktop-centric site. The form labels were hard to read as they took up multiple lines and ran into each other. The form fields were small. It was almost impossible to exit the date picker widget after I selected the date. And there were form fields that I had no idea where to get that information, yet they were required.

In today’s world if you are creating a public website you should highly consider creating a mobile-first responsive site. Take this experience. My 80ish year-old grandmother and her peers use iPads and iPhones. Not laptops and desktops. Even on a podcast the other day, the speaker was saying the funny looks his son gives him when he tries to show him his desktop setup. He’s just always on a mobile device.

In reality, I use my mobile phone for looking up quick stuff like what a medication does or the address for a auto-repair shop. I don’t own a tablet, outside of a dedicated one for my dart board. I use my work desktop and home laptop for all the “real work”.

So in conclusion, when building or maintaining a public facing website, it’s very important to be mobile friendly and responsive to serve your experience to the many generations and different devices. If you don’t they’ll just go somewhere else, or worse, call you because you’re their only option and can’t use the site you’ve invested so much money in.

Advertisements

Running ColdFusion 9 on Windows 10

CommandBoxLogoMost of us find it impossible to install and run Adobe ColdFusion (ACF) 9 on Windows 10. There are a select few that suspiciously find it easy to install and run on Windows 10.

One of the more popular methods is to create a Windows 7 Virtual Machine (VM) and install Windows 7 there. I’ve even done that. But what you find, particularly on Hyper-V, is that it lacks portability. I can’t reasonably send another developer my VM. #1 due to licensing issues #2 it can be huge depending upon the size you reserved for the virtual drive.

But thanks to the Ortus team, and with a little open mindness, CommandBox takes care of this issue. From the Ortus website: “CommandBox is a standalone, native tool for Windows, Mac, and Linux that will provide you with a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and some sweet ASCII art. It seamlessly integrates to work with any of our *Box products but it is also open for extensibility for any ColdFusion (CFML) project as it is also written in ColdFusion (CFML) using our concepts of CommandBox Commands. It tightly integrates with our contribution community; ForgeBox, so developers can share modules world-wide.”

So basically what’s going on here, in this blog entry’s context, is CommandBox will run ACF 9+, Railo 4.2 and Lucee 4.5+. This is done by running a WAR in Java against CommandBox’s own web server which still supports ACF9 integration. Technically you’re supposed install Java 1.7 for official support of ColdFusion 9. However, from what I’ve seen, it runs just fine on Java 1.8.

Here are the easy steps in Windows to get you running in less than 10 minutes:

  1. Download CommandBox at https://www.ortussolutions.com/products/commandbox#download. I suggest “With JRE Included”.
  2. Extract the contents to something like C:\CommandBox. For all other OS’s see Installation.
  3. Open a Command Prompt
  4. Go to your new directory, such as “CD C:\CommandBox”
  5. Type “box” and enter
  6. This will then initiate Box for the first time and then take you to the Box CLI.
  7. Change the directory to your first website that needs ColdFusion 9, in this example. ex: “cd \websites\cf9test”
  8. Here we will set the ColdFusion engine, version, hostname (optional) and name (optional). Run:
    server set app.cfengine=adobe@9 (this will run the latest version of ACF 9)
    server set web.host=cf9test.local (be sure to set in DNS or your hosts file to 127.0.0.1 or you will get a “Cannot assign requested address: JVM_Bind” error)
    server set name=cf9
    *
  9. Step #8 will be saved in server.json and never needs to be done again as long as that file is intact. For more configuration arguments, see Server.json.
  10. Type “start” and enter**
  11. This will download the ColdFusion 9 WAR and extract it and then initialize it. This may take a number of minutes.
  12. Once CF9 is “installed” a browser window will open up to “http://cf9test.local” or whatever you set the web.host to. If you didn’t define web.host it will open up to “http://127.0.0.1”. Either way it will use a random port number. This port number can be defined in the server.json configuration file.
  13. Append “/CFIDE/Administrator” to the URL it is using. If you accidentally closed the browser tab, look for the blue CF task icon in your task bar. Click it once and click “open browser”.
  14. The password to the ACF admin is “commandbox”
  15. Configure necessary settings such as data sources or enable J2EE session variables if needed.
  16. Then go back to your root URL and you should be up and running.

There is so much you can do with CommandBox, including https, URL rewrite and even generating CFM frameworks. See the CommandBox Manual for more.

*When setting the server name, this will allow you to keep configurations stored such a DSN in the admin. You can use a general name such as “cf9” and use it among different instances or you can use a more specific name just for that instance or a group of instances such as “mysite”. Without it, you have a chance of loosing or overwriting configurations in the CF Admin.

There is a way to script out you ColdFusion config, such as DSN’s, using CFConfig CLI. However as of this post writing, it doesn’t allow you to use ColdFusion 9. But feel free to experiment using this with other versions or later down the road.

There are a number of other ways to configure your servers as well. See Configuring your CommandBox servers on first start by Brad Wood.

**The trick to thinking here is the webroot for the website being loaded up in your browser, is the directory you run “start” in.

“Ride Sharing” Buses Thought

Buses were the original “ride share” concept. The difference is the city always owned the vehicle, it fits many more people and is regulated.

What if the city bus concept adapted to the popular ride sharing services such as Uber and Lyft?

Instead of buses following a predefined route every day, let the computers dynamically route the buses. People with smartphones could request a pickup and set a destination. They would then be routed to the nearest bus compatible and pickup efficient location that isn’t necessarily a predefined “bus stop”. In that app they would also define their drop-off point, which could change the bus that’s picking them up with a more efficient route. People without a smartphone would go to a normal bus stop and press a vandal resistant button. Once on the bus, they would select the destination using a built-in display.

Of course a lot more thinking and planning would need to be done so as each passenger is limited to a ride that is reasonable in time and fairly predictable.

But I think this could go a long way to getting more people to use public transportation, pay via a mobile app and stop routing buses to empty bus stops.

Buying AWS Unwanted EC2 Reserved Instances

You purchase a year-long EC2 Reserved Instance (RI) from Amazon Web Services (AWS). You’re now saving 30% on your sparkling EC2 instance cost!

Fast forward three months. Your project tanked and is costing you money instead of making money. You need to kill it and kill it fast.

But then you remember that one-year contract you have with AWS. <doomed>

You then remember that you can sell off your RI to a marketplace. Bank account saved – mostly.

That part is easy to research and follow the steps for success.

Now “Wannabe Joe” is looking for a deal and wants to purchase that discounted RI you’re selling off. Joe goes to the EC2 console and clicks “Reserved Instances”. He then proceeds to “Purchase Reserved Instances”.

He sees a paragraph:

Reserved Instances sold through the Reserved Instance Marketplace are identical to those sold by Amazon Web Services, except they may have different prices and terms. For more information about the Reserved Instance Marketplace, go to the Reserved Instance Marketplace web page.

He remembers about the marketplace selling unwanted instances so he clinks on the provided link. Listing, selling, fee and getting paid. All great for the seller. But how does he purchase one. Click-after-click just provides frustration.

Don’t worry Joe. You overthought the whole process.

  1. In the AWS Console Home, go to the EC2 console
  2. Press the “Reserved Instances” link on the left and then press the “Purchase Reserved Instances” button up top.
  3. Choose your platform, types, zone, term and tenancy.
  4. Press the “Search” button
  5. If there are any unwanted instances up for sale, they will be listed under the “Seller” column as “3rd Party”.
  6. Add to cart and away you go.

console_ri_purchase_1

Simple 🙂

Reference and image by: https://aws.amazon.com/blogs/aws/amazon-ec2-reserved-instance-marketplace/

#aws, #ec2, #marketplace, #reserved

Modifying Your Hosts File

Windows 10 and 8

  1. Press the Windows key.
  2. Type “notepad” in the search field.
  3. In the search results, right-click Notepad and select “Run as administrator”.
  4. In Notepad, open the following file: “c:\Windows\System32\Drivers\etc\hosts”
  5. Append your entry such as:
    127.0.0.1[tab]www.mysite.com
  6. Save changes

Linux

  1. Open the “/etc/hosts” file in a text editor such as vi or nano
  2. Make the necessary changes to the file.
  3. Save changes

Mac OS X 10.6 through 10.12

  1. Open Applications > Utilities > Terminal.
  2. Open the hosts file by typing the following line in the terminal window:
    “sudo nano /private/etc/hosts”
  3. Type your domain user password when prompted.
  4. Edit the hosts file.
  5. Save the hosts file by pressing Control+x and answering y.
  6. Make your changes take effect by flushing the DNS cache with the following command:
    “dscacheutil -flushcache”

Global Ransomware Outbreak Prevention

A new ransomware, using the same attack as WannaCry, is hitting the world hard today on Windows PC’s. Here’s some steps to prevent this from happening to you:
1. Don’t click on links inside emails that you aren’t 100% positive you know what they do.
2. Backup your important files so something disconnect from your computer like the cloud or USB drive you remove. crashplan.com is a great service to have.
3. Install Windows updates – this prevents this specific attack from taking hold
6. Have an antivirus program running. A free one is avast.com – been using it for many years.
5. If you’re still on XP/Vista/Windows 7/Windows 8 etc. now’s a good time to get upgraded to Windows 10

#ransomware, #windows

Activating Windows Server 2012R2 Evaluation

CF Webtools is part of the Microsoft Network which gains us access to software for development purposes. But one gotcha is if you try to apply the license key to an already installed evaluation version of Windows Server. In this case Windows Server 2012 R2.

When you try to change the product key in the UI, it says that this product key can not be used on this version of Windows. Not that the key and evaluation type are the same standard 2016 R2 edition.

To get around this use the “DISM” command.

To determine the installed edition, run:

DISM /online /Get-CurrentEdition

To check the possible target editions, run:

DISM /online /Get-TargetEditions

Finally, to initiate an upgrade, run:

DISM /online /Set-Edition: /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXX /AcceptEula

A server restart will be required.

edition upgrade

Note: Legally check your license. This is technical advice only.