Contact Us

T: (425) 481-8175
info@portagebay.com

Twitter   Facebook   LinkedIn RSS

Subscribe to our Email Newsletter
Subscribe to our Bi-Monthly email newsletter
*



* required
Site Search

Entries in Techy (14)

Wednesday
Jun152016

Losing Your iPhone

My mom recently lost her iPhone. It was in her purse, which got placed on the top of the car, where it stayed when the car was driven off as she and my dad went home. There’s no way to know where it ended up. I spent a couple of hours helping them reset passwords and figure out how to deal with the situation.

My siblings and I have been pretty proactive with getting my parents online and connected. They’re both over 70, but also both have iPhones. My dad has a MacBook Air and my mom has an iPad. They share an iMac in their home office. For my mom in particular, this level of connection is a real blessing. She is stuck in a wheelchair most of the time, and so being able to communicate with everyone via phone, email, Facebook, Snapchat, etc. is a huge improvement in her ability to connect with her family on a day to day basis.

There were a few lessons from this event:

  1. All of your devices, whether iOS, Mac, or another platform, should require a passcode or password to access the device whenever you want to use it. This may be a minor hassle, but if the device is ever lost or stolen, you will be very, very glad you had this in place. The security problems my mom had would have taken twice as much time to deal with if the phone hadn’t required a passcode.
  2. All devices should absolutely be logged into an iCloud account. This gives you some ability to interact with them when lost or stolen.
  3. Given the above two points, if the phone is lost or stolen, don’t do what my parents did and call the carrier to cancel the account. As soon as they did that, we couldn’t use iCloud to locate or lock out the phone. It would have been preferable if we could have used iCloud to do this, but since AT&T had already canceled the phone, we couldn’t.
  4. In my opinion, the technology industry has failed so far when it comes to user authentication. Making my parents try to keep track of a dozen or more passwords for their various accounts does not work.
    They are not technical enough to use anything like 1Password, and yet keeping track of passwords on paper has its obvious security flaws. I hope Apple extends Touch ID to the Macbook and iMac product lines and that developers integrate it into their authentication mechanisms to reduce the need for passwords.

~John Newhoff

Monday
May092016

VR Hackathon 2016

I recently attended the Virtual Reality (VR) Hackathon 2016 in Seattle. Although I ultimately didn’t work on a very exclusive “VR" hack. I got to meet a lot of interesting people, look at some really cool VR tech, and learned how to hack the Amazon Echo.

The Seattle VR Hackathon 2016 ran the 3rd weekend in April at the University of Washington. It started Friday night and ran until Sunday afternoon.

During the Hackathon Friday night mixer, we formed into groups. The group I joined consisted of three people. After forming the group, we began to decide what we would do for our hack. One of the back-end developers in the group wanted to do something with the Amazon Echo hardware. The other developer and myself wanted to do data visualization in VR. We tossed around several ideas and decided the Amazon Echo, with the use of its AI, named Alexa, would be a great utility to assist users while immersed in VR. Unfortunately, this meant that the data visualization would need to wait. The clouds slowly parted and the plan materialized. We would use Alexa as our personal assistant while in VR.

Because you can become so involved in the VR world with goggles on, you need a connection to the real world in order to do things like order a pizza, call your mom, or text your friends to join you in a game. The idea we had was a utility function that would allow you to send communications to the real world without interrupting game play - to provide you the ability to send your friend a text message and tell him/her to come join you in the game, by simply asking Alexa to do it. Once the plan was set, we parted for the night.

Saturday morning we met up again, and after a primer tutorial by the Amazon team, we confirmed that the Echo would work great for our project. We got started putting the pieces of the puzzle together. In order to accomplish it we would need to use a few different services.

  • Amazon Echo for voice interaction. Amazon Echo uses an AI and responds to the name Alexa.
  • Amazons AWS Lambda for handling the logic and programmatic responses to our requests. AWS Lambda is a serverless compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.
  • Twilio for making telephone calls and sending text messages.  Twilio allows software developers to programmatically make and receive phone calls and send and receive text messages using its web service APIs.

By creating a set of what is termed as "Alexa skills," we could trigger programmed events to be passed using speech recognition from Alexa and get scripted interaction with people in the real world. The functions called by "Alexa skills" were handled by the AWS service Lambda. Using Lambda, we could write functions in node.js, python, or java. The functions would make web services calls to Twilio. Using the Twilio API, we were able to write scripts to make the telephone call or send a text message. Once the person received the phone call and text, the Amazon Echo would respond back to the user in a nice voice with a programmatic response like "message sent."

By the end of Saturday we had a working prototype where a user could say out loud “Alexa, call John!” and immediately the user would receive a text message confirming the call had been sent. Alexa would then respond “Done!” and the person “John” would receive a telephone call, on his cell phone, from a Twilio robot telling him the words we had programmed it to say. With a little knuckle grease, some refreshers to node.js, a few facepalms, the pieces of the puzzle weren’t that difficult to put together.

The last day of the Hackathon came and we presented to the judges and other hackers. As with many of the hacker events, there were a bunch of attendees, which made 24+ teams and some really good hacks. Our hack only loosely fit in with two of the six categories, and we didn’t win in either of those categories. Although we didn’t win any prizes, we had a great time and we learned some valuable skills that I will definitely use on other projects. All that said, it was a lot of fun and I would do it again.
~Xandon Frogget

Wednesday
Aug122015

Removing White Space From Text Fields

Removing white space in text fields is nothing new for FileMaker, but removing extra space before carriage returns ( “¶” for short ) from a delimited list, requires a little bit more than the simple trim function that is provided in FileMaker.

The trim function in FileMaker will remove unneeded spaces at the beginning and end of a text string. This is very helpful for a single line of text. It will take a line of text like
" Bob " and turn it into "Bob".

Unfortunately when you have several lines of text that are delimited by a ¶ character as in the following example, you will need something else.

example:

"Allison¶
Bob ¶
Charlie¶
Doug"

If you want to make sure none of the lines have an extra space at the end like the second line "Bob ¶", a simple trim will not work.

This is where the substitute function can come in handy. 

Substitute(text;searchString;replaceString)

The Substitute Function will search for a character or string and replace it with whatever character or string you choose. With this you can take a text field like the example above and use the substitute function to replace the occurrences of " ¶" with a single "¶".

 Substitute ( example ; " ¶" ; "¶" );
(notice there is a space before the ¶ in the searchString)

This will provide you with the corrected:

"Allison¶
Bob¶
Charlie¶
Doug"

You can apply the same substitute several times to remove multiple spaces, and when mixed with the trim function, it can really help clean up text and lists.

Substitute is one of my favorite functions for working with text. If you haven't used it before, give it a try and see if it can't help remove unwanted white space.

 -Xandon

Tuesday
Apr232013

Super Hi Res Monitor

I spent a rather dumb amount of time recently trying to get my MacBook Pro to display more than 1920x1440 on my external 27" monitor. At that resolution, I'm just not taking very good advantage of the size of the monitor. In FileMaker (and other apps) having the higher resolution allows you to deal with multiple windows and palette windows more effectively.

It turned out that my monitor simply wasn't capable of displaying anything higher than that resolution.

I decided to get rid of my old monitor and purchased an Asus monitor capable of displaying 2560x1440. It was a little expensive, but now I'm really enjoying the additional screen real estate, particularly in FileMaker when I'm using the debugger and data viewer.

-- John Newhoff

Monday
Apr152013

Linked Web Browser Page in FileMaker Web Viewers

Web viewers extend the capabilities of FileMaker by letting your database interact with the web. Recently we added a simple web viewer to E-Com, our special education software for FileMaker, that displays a web page with recent news and events. We wanted the users to be able to click on a link within the web viewer and see the linked page in a window in their web browser outside of FileMaker. It sounds simple, but turned out to be a 'gotcha' because FileMaker's default behavior is that  all interaction with the web page happen within the web viewer in FileMaker. There is no preference to open links in a new windows. 

The simple fix to this issue is to use a bit of HTML, using the 'target="_blank”' syntax to allow the link to open up in a new window.

In the demo file, we have a web viewer object set up that will perform a search for the given product in different search engines.

 

 

The web viewer is using the  'target=“_blank”'syntax so that clicking on each link will open up a new browser window, leaving the web viewer object intact.

 

 

Download Demo File