Thursday, March 8, 2018

Troubleshooting Error Code 802 and FileMaker Go Bug - Update

Error Code 802: Unable to Open File


While helping develop a FileMaker Go solution recently, we hit an unexpected snag (is there any other kind?) late in development cycle.  Our stand alone solution is designed to automatically connect to a FileMaker Server to get updated information on a routine basis every time it starts up. Since our clients are not always able to connect to the internet, we have code to allow them to safely bypass the check-in if that is the case.

Towards the end of the development cycle, we activated the code to make the call, and started testing.  And immediately ran into problems:  FileMaker Go version 15 connected right away.  FileMaker Go 16 connected with one user, but not another user.  Both were using the same beta version of the software, both had the same version of FileMaker Go:  v 16.0.4.   One of the first steps in troubleshooting is to add error capture code in order to see what is going wrong,  We did that, and were rewarded with error code 802:  Unable to open file.  Which is something we knew, of course.  But why could one user open it and not another?

The Search Begins


So I looked for some help on the internet and found that error code 802 had been puzzling people going back to 2004, and there were a variety of causes:
  • Permission errors

  • Database source not open on the server

  • No reason, just happens occasionally

  • Inaccurate database relationships

  • FileMaker server bug

  • DSN managers trying to setup a connection via ODBC

  • Overloaded server


The list went on, and every solution identified did not apply to our situation.  The server file was present and available on the server to FileMaker Go users, and was accessible by using Open Remote directly from FileMaker Pro client, as well as FileMaker Go 15 (a requirement for this project).

For the record, our setup is pertty straight forward:  The FileMaker 16 server is housed on an AWS (Amazon Web Services) server, and is the limited developer version allowing one concurrent hookup.  Only one user was connecting (and immediately disconnecting after running a short script) at a time, so too many concurrent connections was not the problem.

After thinking about FileMaker 16 differences from earlier platforms, a thought occurred:  This might be a security problem with FileMaker 16's new, rigid SSL requirements.  I checked, and our temporary FileMaker SSL certificate, issued by the FileMaker Server for development purposes, had expired.  Every time a new user tried to connect to the server with FileMaker Go 16, the server threw a popup warning that the connection to the database on the server was not secure.  During a normal connection via FileMaker client, this is not a problem, as the user can click the button to proceed.  When logging on via a script, however, this option was not available, and the file would not open - Error 802.

Problem solved


We were able to connect every user by simply adding a Host entry with the IP address to the iPad – when a user adds the host, the security warning shows up during the process and the user can permanently add the server to the approved list.  Short term, that works out.  I later added an SSL certificate to the server, solving the problem in the long term.  And a valid SSL Certificate is something necessary for almost all FileMaker Server installs with containing sensitive data (the exclusions include local servers inside a secure firewall).

So add one more option to Error Code 802:  Unable to open file via script due to SSL Certificate requirements with FileMaker 16.


FileMaker Go Bug - UPDATE


I reported what I suspected was a FileMaker Go bug on Monday here.  It turns out to be the real deal:
Thank you for your posts and movie file.  I am able to reproduce the issue with FileMaker Go 16.0.4 under iOS 11.2.6 using an iPad Pro.  I have sent all information, including a sample file, to our Development and Testing departments for review.  When I receive any feedback, I will let you know.

TSGal

FileMaker, Inc.

Hopefully, it will be patched soon.

Monday, March 5, 2018

FileMaker Go Bug?

FileMaker Go Bug?




I am working with another developer on a big rollout for a primarily iPad based solution. We are using sliding panels as a major interface feature.  In the development process, we discovered a FileMaker Pro Bug.

The app is feature packed and has multiple sliding panels on each major interface page.  On some layouts, up to seven sliding panels are stacked on top of each other. While this results in a more complex development environment, the resulting user experience (UX) is impressive and has a reduced learning curve.


And it all works well on Mac’s and PC’s.


Using FileMaker Client on a Mac or a PC is not a problem.  When we programmatically activate a sliding panel, that panel assumes “Active Focus”, meaning the panels essentially drop behind the Active Focus panel despite their relative position in the stack.

For example, activating the 7th (lowest) panel in the stack using the “Go to Object” command essentially brings that sliding panel to the top of the stack.

Once on top, all functionality you would expect does work:  filed access, scrolling, popovers, button access, etc.  But...

Portal Scrolling does not work FileMaker Go


On FileMaker Go, however, there is a major problem.  Calling the 7th panel and giving it Active Focus on FileMaker Go works for all functions save one: scrolling a portal.  Watch this short video to see the bug in action:


[video width="1468" height="752" mp4="http://www.filemakerprogurus.com/wp-content/uploads/2018/03/FileMaker-Go-Bug.mp4"][/video]


Steps we have taken to try to squash the bug:




We reviewed all of the Window script steps:  Since the panels are placed on a Window, those commands were not effective.

We also tried various Navigation commands, and I suspect we could build a script to go to a record in a portal and force a scroll, but that is clunky and not intuitive to the user.

The only thing we have found that works is to hide the slider using “Hide Object When”.  The problem there is the logic it takes to properly hide up to 7 different sliders using conditional logic. It can be done, but only after all design considerations have been locked down.  Adding any new features sends us back to the logic maze with plenty of testing to ensure all works OK.


In the hope that there is a work around we have not yet discovered, I am posting this on various forums and with FileMaker, and also posting here on my blog.
Please leave a comment if you have an idea.  Your feedback is appreciated.


Friday, March 2, 2018

FileMaker and Shippo, and the 2–Minute Rule

Shipping Labels Using FileMaker and Shippo


Shippo Logo

Brandon Ray, of DB Services, posts a great how to do it article on integrating FileMaker with Shippo, an inexpensive online service that allows you to use just about any major shipping service.  Shippo provides an easy way to get shipping costs and allows you to print the label, too.  And all for a cost of only a nickel over the cost of shipping.

There is one small catch.


You'll probably have to double enter the customer's shipping information:  Once into your order system, and once into Shippo.  Errors creep in when double order entry is needed. But, no worries!

Ray's solution gives step by step instructions for connecting your FileMaker solution to Shippo....or you could just download the free FileMaker Example file at the link below and integrate that with your solution.

Source: FileMaker Shipping Labels with Shippo

 

The 2–Minute Rule


James Clear is back with research on how to stop procrastinating with what he calls the 2–Minute Rule.  It boils down to one simple observation:  Most things you put off are easily done, you just don't get around to doing them for some reason.  The 2-Minute Rule addresses that problem by defining an issue thus:  If it takes less than two minutes to do, then do it now.
The 2–Minute Rule works for big goals as well as small goals because of the inertia of life. Once you start doing something, it’s easier to continue doing it. I love the 2–Minute Rule because it embraces the idea that all sorts of good things happen once you get started.
  • Want to become a better writer? Just write one sentence (2–Minute Rule), and you’ll often find yourself writing for an hour.

  • Want to eat healthier? Just eat one piece of fruit (2–Minute Rule), and you’ll often find yourself inspired to make a healthy salad as well.

  • Want to make reading a habit? Just read the first page of a new book (2–Minute Rule), and before you know it, the first three chapters have flown by.


I tired this, and it's easy to apply.  You only have to invoke the 2-minute rule.

But I have bigger to-do's than 2 minutes!

When you have something that takes longer to do than 2 minutes, something you've been putting off, just give it two minutes.  That often leads to working longer on it and getting it done sooner.  Read up on the science backing this concept at the link below.

Source: How to Stop Procrastinating by Using the "2-Minute Rule"


Getting information off the Internet is like taking a drink from a fire hydrant.

Mitchell Kapor


 

Wednesday, February 28, 2018

FileMaker and Python Micro-Services

Note to readers:  As a followup to the FileMaker and Java Micro-Services post from last Friday, today's post from FMP Dude shows how to use Python and Flask to create micro-services.  This post also appeared  first on the FileMaker community website, and is reposted here with his permission.  So, if Java isn't for you, the same micro-services are available using Python.  Enjoy!


The Simplest Micro-Service!  (Python and Flask)


If you want to start using micro-services in FMP, consider Python and the super simple framework: Flask. If you're unsure what benefits micro-services give you, check out this list below:



Key benefits of micro-services include:
  • Uses industry standard protocols (HTTP verbs!).

  • Enables you to tap into powerful modern languages.

  • Easy to Learn.

  • No need to "re-invent the wheel" in a proprietary FMP-only CF to duplicate existing tested/free library routines.

  • Cross platform so the service can reside ... anywhere (Linux, Mac, Win). Local/WAN, Server, you name it.

  • Allows any application that can do a GET to use the service (Terminal, FMP, Firefox, Opera, Chrome, ....)

  • Is FREE. No expensive FMP-ONLY plug-in(s) needed. Install anywhere or everywhere. 1 user or 10,000 users...FREE.

  • NO FMP plug-in installation and configuration for every copy of FMP you might have.

  • NO restrictive plug-in license agreements.

  • Extremely powerful (get the full power of free third-party libraries often written in fast C language)

  • Puts you in charge of the service code. Not a third party.

  • Service Code Runs .... FAST!

  • Externalize loops to keep loops out of slow FMP scripts.

  • Service programming tools manage dependencies --- automatically!

  • Offers high abstraction. The caller of the micro-service doesn't need to know any details how the micro-service code works. Parameters can almost always. be passed simply letting the micro-service handle translations or other messy details.


(Note: Most modern programming languages, including Java snd Python, support micro-services.)

------------

Below is about the simplest micro-service you can write.

NOTE: this service example below isn't intended to be "production ready"-- as you'd certainly have much more error handling and other code. Instead, the example code below is just a "see how simple it is to get started and see all you can do..." kind of thing.

(You will need to have Python installed, of course and you will need to install Flask. Check out "pip" and other simple installers for python add-ons like Flask.)

Python micro-service starting point code below:

from flask import Flask, request


import hashlib

app = Flask(__name__)

@app.route('/')

def hello_world():

   return 'Hello World!'

if __name__ == '__main__':

  app.run()

If you save the code above into a file called, for example: "simple.py", and then run it from the command line, you have a Python (starting point) web service you can call from FMP!

Running this code gives you this output (you can change the port if you need to:

$ python3 simple.py

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

(the service is up!)

Let's give this micro-service a workout:


From Terminal: $ curl localhost:5000

Output: >>> Hello World!

----

From POSTMAN:



 

From the IDE built-in REST Client:



The browser works fine, too.

 

From FileMaker:

 

INSERT FROM URL only needs one line since we're not sending data: "http://localhost:5000"

 



 

And, in the IDE where the service is currently running (can also start from command line and other options), we see our call to the web service from FMP:

 



--------

Let's add a method to do a hash.


 

Just create a simple method in your web service code and run it again:

 

@app.route('/HashMe', methods=['GET'])

def hashMe():

stringToHash = request.args.get("password")

m = hashlib.sha3_512()

m.update(str.encode(stringToHash))

m.update(b" Some Salt here for more security!")

return m.hexdigest()

----

Note: if we had also imported the pyperclip library, we could also, with one line of code, copy our hash to the clipboard:

pyperclip.copy(m.hexdigest())

----

From POSTMAN:

So, in just a few lines of code, we added a hash method we can call from any application that can do a GET!

Conclusion:


Using, in this case, Python, and the super simple framework Flask, in just a few lines of code you can have a working web micro-service.

My advice: Start easy. Start small. Build from there.





Education is not preparation for life; education is life itself.

John Dewey


Wednesday, February 21, 2018

2018 UX Design Trends

UX Design Trends and FileMaker


What's happening in the UX design world for 2018?  What can we learn from the latest trends and how (and should we) apply it to FileMaker database designs?

Let's take a quick look.

Shopify Predictions


Shopify's Oliver Lindberg delves deep into the subject, covering topics from variable fonts to ethical design to the death of the home page:
Last year was very much about web animations and microinteractions, conversational interfaces and chatbots, design sprints and bespoke illustrations. Even an approach that rejected mainstream web design trends became a trend itself: brutalism.

All of these trends are going to grow in 2018. In fact, Andy Budd, co-founder of pioneering UX consultancy Clearleft, thinks the subtle shift from UX design to digital service design is going to continue, and that we’re going to see much more interest in the field of service design from the digital sector this year.

Of particular interest to me is the Brutalism trend, which is basically turning away from the snazzier design trends:

 

[caption id="attachment_19622" align="aligncenter" width="443"]Brutalism Design Brutally simple.[/caption]

As you can see from its description, it is brutally simple.  And increasingly popular.   Something FileMaker developer's might want to emulate, mainly because a simple interface without a lot of pizzaz might be easier on the senses of someone pounding away at data entry and analysis. Be warned, however

Flat Design


Depending upon who you read, flat design is changing to adapt to 2018 trends by "adding nuance and depth to its prior ascetic identity", also known as adding more color, or is finally dying.  I am hoping for the latter:  I never liked it and the sooner it goes away, the better.  One thing younger readers will find as they get older is that the ability to easily discern contrast fades.  Flat design is low contrast and harder to read/view.

[caption id="attachment_19632" align="aligncenter" width="300"]Flat Design Flat design can by much harder to see for some.[/caption]

Fortunately, FileMaker moved away from it after a brief affair.

Inclusive Design


The shortcomings of flat design lead naturally to inclusive design, a movement deservedly gaining momentum:
These Inclusive Design Principles are about putting people first. It's about designing for the needs of people with permanent, temporary, situational, or changing disabilities — all of us really.

Inclusive design features the following principles:
  • Provide comparable experience
    • Provide alternatives like alt text, audio, etc.


  • Consider situation
    • Color contrast for outdoor users


  • Be consistent
    • Use consistent design patterns to build familiarity


  • Give Control
    • Allow zoom, for example


  • Offer choice
    • Consider providing different ways for people to complete tasks


  • Prioritize Content
    • Progressively reveal features and content when needed, not all at one time


  • Add Value
    • Using voice interfaces to control multimedia



There is much more to inclusive design than listed here, much of it applicable to FileMaker database development. I highly recommend a closer look.

There's much more


I've run out of time to cover all the trends and possibilities, but here is a partial list to consider in your design efforts
  • Artificial Intelligence

  • Video

  • Ethical Design

  • Voice User Interfaces

  • Scrolling effects

  • Typography

  • Mobile Animation

  • Storytelling

Sources:

10 no-nonsense web design trends for 2018 | Econsultancy

UX Brutalism

Inclusive Design Principles

Still more info:

Design Trends 2018: 28 leading designers, creative directors & illustrators tell us what’s inspiring them for the year ahead



Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it's really how it works.

Steve Jobs

Friday, February 16, 2018

Using FileMaker and API's to Connect to the Web

FileMaker and API's


Chris Ippolite, of iSolutions fame, and FileMaker, joined forces to make this webinar back in November.  If you need to connect FileMaker to the web, this webinar shows several practical examples of how to do it:
  • Integrating with Slack

  • Integrating with Zillow

  • Integrating with Mail Chimp

  • Integrating with google Calendar

  • Integrating google Maps and street view

  • Using the FileMaker Data API as a data source for hundreds of thousands of users!


That last item connects FileMaker to Nodejs to a special caching service to scale up to enterprise level.  Did you know FileMaker could do that?

There's also a bonus:  a free FileMaker Example file: the Books database uses the FileMaker Go's barcode scanning and the google books API to retrieve the data from the books barcode.  You'll have to get your own google API Key to make it work, but that's a pretty straightforward process.

Don't Be Intimidated


Viewing the connection process that goes on behind the scenes is scary the first time you look at it...just remember that most of the work is done in one script step:  Insert from URL.  A lot of the rest processing the returned data into FileMaker by parsing JSON into FileMaker. Spend some time working through this script and you'll pick up a valuable developer skill.

See the Power


Kudos to Ippolite and FileMaker for powerfully showing how connecting FileMaker and API's dramatically increases usability for your clients.

 

[embed]https://www.youtube.com/watch?time_continue=35&v=utkfFYIdXyU[/embed]

If you want to learn more about using FileMaker and API's, click here to see all the posts I've made in the past on this subject.  Enjoy!


Something important for developers to remember:

The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do.

Ted Nelson

Wednesday, February 14, 2018

You Are Paid to Solve Problems, Not Write Code

Solving Problems is Your Job


Most developers fall in love with writing code and making computers bend to their will....and of course solve problems.  But the reality is that most developers are paid to solve problems, which means much more that bringing coding skills to the table.

The successful programmer must learn much more than how to code to be successful:
  • The ability to communicate (very important!)

  • The ability to listen effectively

  • The ability to identify the problems

  • The ability to apply logic to solve a problem

  • And, finally, the ability to code efficiently in order to solve problems

You Can't Code in a Vacuüm


After applying all the skills you need to acquire, you still have to interact with others in a way that helps you succeed:
  • Working with your co-workers, client, and project manager

  • Keeping track of your time and effort

  • Commenting in your code to allow others to follow/improve/fix it

  • Learning the tools (and improving them) that allow you to interact effectively

  • Setting and meeting expectations with your client(s) and team

Keeping up with the Jones's


Don't forget that to do your job, you need to keep up to date with your skills:
  • Attend seminars to learn and to network

  • Read and apply new techniques

  • Study communication skills

  • Improve personal relationship skills

Improve your management skills


Most coders (sadly, say some) eventually move into management.  That's another whole set of skills that use many of the skills outlined above, so the transition will not be that difficult to master should you take that path.  What do you need to make that leap?
  • Study management techniques

  • Develop interpersonal skills

  • Learn how to become a mentor

  • Learn how to manage and support a team


As you can see, coding is just one important skill set of many if you want to be a successful programmer.  Just as you've learned to code, you need to now set new goals to be the best coder you be.

Good Luck!

Inspiration for this post came from Hacker Noon:  You Are Not Paid to Write Code – Hacker Noon


The best advice I ever got was that knowledge is power and to keep reading.

David Bailey

Monday, February 12, 2018

FileMaker, Spectre and Meltdown

FileMaker, Spectre and Meltdown


I haven't seen a lot of coverage on FileMaker, Spectre and Meltdown issues as they pertain to FileMaker server (and Wordpress, for that matter), but there are some guidelines and some safe practices to follow at this time.  The situation seems to be changing rapidly as more fixes are implemented and the true extent of the threat is revealed:
Meltdown was issued a Common Vulnerabilities and Exposures ID of CVE-2017-5754, also known as Rogue Data Cache Load,[2] in January 2018. It was disclosed in conjunction with another exploit, Spectre, with which it shares some, but not all characteristics. The Meltdown and Spectre vulnerabilities are considered "catastrophic" by security analysts.[10][11][12] The vulnerabilities are so severe that, initially, security researchers believed them to be false....Meltdown is a hardware vulnerability affecting Intel x86 microprocessors, IBM POWER processors, and some ARM-based microprocessors.[1][2][3] It allows a rogue process to read all memory, even when it is not authorized to do so.

Meltdown affects a wide range of systems. At the time of disclosure, this included all devices running any but the most recent and patched versions of iOS,[4] Linux,[5][6] macOS,[4] or Windows. Accordingly, many servers and cloud services were impacted,[7] as well as a potential majority of smart devices and embedded devices using ARM based processors (mobile devices, smart TVs and others), including a wide range of networking equipment. A purely software workaround to Meltdown has been assessed as slowing computers between 5 and 30 percent in certain specialized workloads,[8] although companies responsible for software correction of the exploit are reporting minimal impact from general benchmark testing....

Further, recommended preventions include: "promptly adopting software updates, avoiding unrecognized hyperlinks and websites, not downloading files or applications from unknown sources ... following secure password protocols ... [using] security software to help protect against malware (advanced threat prevention software or anti-virus)."[23][24]

For more up to date information, keep an eye on Wikipedia.

Servers are most vulnerable


This threat is real and will affect anyone with FileMaker servers on Mac or Windows, and cloud based servers as well (yes, even AWS).   Amazon issued a notice of fixes as it relates to Linux just last week.

Computer Weekly offers a somewhat more current take from January 18th and is worth a read, covering actions taken or planned by Microsoft.

What to do?


Tim Cimbura offered up some concrete advice recently in his post, Meltdown and Spectre Security Issues: What FileMaker and WordPress Users Need to Know - LuminFire:
From a FileMaker perspective, the impact may be a slow down at the application and server level. Estimates vary that it could be from 5%-30% but early reports are that the real world effects are not noticeable (unless your server is regularly running close to full load, which is not a best practice).

Stephen Blackwell started a thread that contains some useful links and advice for FileMaker users, as well.

The Bottom Line


Update your servers and software apps and keep them updated.  Increase server resources if your servers are running a heavy load.  And keep an eye on the issue – don't let it get lost in the daily shuffle.  Or you may end up with a massive security problem.

Friday, February 9, 2018

Build a Dynamic FileMaker Navigation Bar

Dynamic FileMaker Navigation Bar


Mike Duncan updated his ten year old dynamic FileMaker Navigation Bar, and it's pretty awesome.  And he included a free FileMaker Example File, as well!

(Looking for more ideas for FileMaker Navigation Bars?  Click here.)

Duncan's solution is easy to implement, loads fast, and changes if you change the order of your layout.  It also includes the following features:


    • Works in Browse and Find mode

    • Uses Themes and Styles

    • Allows manually navigating to layouts

    • Works in List View<

    • Works in Pro (both local and hosted), Go, and WebDirect

    • Works with multiple windows

    • Works natively (no plugins required)

    • Does not require additional schema

    • Handles a reasonable number of layouts

    • Minimal scripts required

    • Does not require custom functions, which is better for portability

    • Retains the last visited sub-section, allowing for navigation of multiple tiers



This solutions supports up to three tiers of menus, supports emojis, and the looks are easy to format due the use of Button Bars.

I've put this on a list of things to do and will hopefully report back soon.

Source: How to Build a Dynamic FileMaker Navigation Bar - An Introduction




 



 

Wednesday, February 7, 2018

Connecting FileMaker to Web Apps

Connecting FileMaker to Web Apps


Ibrahim Bittar presented at FileMaker DevCon 2017 on a topic that should be of interest to all FileMaker developers:  connecting FileMaker to web apps:

https://youtu.be/VMVaqG_-1ho

The video details what is involved, how to connect, and walks you through the process.  There is a free FileMaker Example database set up to connect to Producteev. a free project management online database – one I have been using for years. I like this.

Here is what you will learn in this video:


  • The Basics of JSON syntax

  • How oAuth2 works – from a practical point of view

  • Use of cURL to send and retrieve data from a web application (cURL is very powerful)

  • FileMaker scripting and calculation tips

  • Free FileMaker example file


Jump in and take a look.  It's hard the first time, but gets easier as you do more (just like anything else).

Creating Your Own SSL Certificates For FileMaker – beezwax

Creating Your Own SSL Certificate


Simon Brown, beezwax developer, solves a use case scenario not allowed for with FileMaker's insistence on SSL certificates:  A company that has a nonpublic domain and wants to issue their own certificate:
Typically, you buy an SSL certificate for a server from a SSL vendor. However, some companies may decide that they want to issue their own SSL certificates. Often this is because the domain is only used internally, and most vendors don’t easily allow (if at all) the signing of server certificates for non-public domains. Additionally, issuing your own certificates can remove complications caused by the certificate verification process used by most vendors, and there are no fees needed for each certificate.

Although this use case is not supported by FileMaker, I had a client who had no choice but to use their internally signed certificates, and was having issues getting to work on their newly updated server, which had been working fine with FileMaker Server 15. Since I didn’t have access to the server (their security protocols did not allow that), I decided to go through the process of creating my own CA (certificate authority), using it to issue an SSL certificate, and see if I could install it on a test instance of a FileMaker 16 Server.

It's not an easy process, but worth knowing about if you should run across this problem in the future.

Source: Creating Your Own SSL Certificates For FileMaker – beezwax > blog

Monday, February 5, 2018

FileMaker 16 cURL, Ghost Sessions, Motivation

FileMaker 16 cURL


Sunday was a marathon problem solving day for a client, trying to find a way to export and upload a file via FTP to a phone calling service.  I had a working solution for over a year on this, but the update to FileMaker 16 broke it somehow – it had more to do with upgrading to Sierra, I think, since my solution used Automator, Fetch, and Calendar to work around the inability of FileMaker to upload to this particular service (that's a story for another day).

So I spent some time getting to better know FileMaker 16's new cURL features, and found some great advice and great tools out there (for pre-FileMaker 16 cURL, check out this post from last year).  The solution lies with the ability of FileMaker to send the contents of a container field via FTP without downloading the file first.

In this instance, I still have to generate a file using a server side script and upload it to a container field, but once that is done I am able to FTP the file quickly from the server.

Luminfire's Andy Walz and Tim Cimbura blog post and free FileMake Example file (at the link below) helped immensely. I highly recommend reading it and playing with that file if you need to use FileMaker 16 cURL.

Source: cURLing in FileMaker 16 - LuminFire


How to Disconnect Ghost FileMaker Sessions on Your Server


With the cost of FileMaker clients being a factor all clients consider, it's good to have a way to kill ghost sessions...What's a ghost session, you might ask:
When you lose your network connection or your FileMaker quits, sometimes your session doesn't drop off on the FileMaker server. This becomes a problem when that session hogs up one of your license spots. This doesn’t seem to happen often, but when I talked prentices to colleagues at the annual FileMaker Developer Conference, I learned it happens more often than we think.

Agnes Riley to the rescue!  Her solution is pretty technical (and, sadly, does not include an example file), but all the coding you need is there to help you save your client from purchasing unneeded licenses.

Source: How to Disconnect Ghost FileMaker Sessions on Your Server


How to Get Motivated When You Don’t Feel Like It


Most of you know by now that I like James Clear's writing on motivation and habit building.  Clear finds and explains the latest scientific information to help you improve your life, and is never a boring read.

Check out this post on getting motivated:
The most important part of any task is starting. If you can't get motivated in the beginning, then you'll find that motivation often comes after starting. That's why your pre–game routine needs to be incredibly easy to start.

For example, you could create an exercise routine that starts with filling up your water bottle. That way, when you don’t feel like working out, you can simply tell yourself, “Just fill up the water bottle.” Your only goal is to start the routine and then continue from there.

There's more at the link - read up if you have trouble getting going.

Source: How to Get Motivated When You Don’t Feel Like It




 



 

Friday, February 2, 2018

FileMaker "Portal In A Portal", 4D Printing

Build a FileMaker Portal in a Portal


Kudos to Brian Ouimette of nedbs.com  for creating a solution to a problem that has flummoxed FileMaker and FileMaker developers for years:  building a portal in a portal.  Brian combined the power of JSON (a FileMaker 16 addition) with ExecuteSQL and one of the least used but very powerful features of FileMaker since the earliest versions:  Repeating fields.

Check out the Portal in a Portal video below:

[embed]https://www.youtube.com/watch?v=sn7SyAP0Sr0[/embed]

While this solution isn't technically a portal in a portal, it does duplicate the functionality and isn't too complex to implement:
In the following demo file, you’ll see a customer layout with an invoice portal. I can’t tell you how many times I have heard, “it would be nice to see what was on the invoice within the same portal.” With this example, this is finally something achievable.

There is an internal “portal” that has a set of buttons to allow scrolling one record up or down, and another set of buttons that will allow you to page up or down on the internal portal. The portal is setup in a way that allows clean and easy editing of these records. In addition to those features, this approach is modular and is as light weight as possible from a performance perspective. The JSON is built using a recursive custom function and the script can be run server side (PSOS).

I just gave it a test drive and it works great!

Bonus:  There is a free downloadable FileMaker example file at the link just below.  

Source: FileMaker "Portal In A Portal" - iSolutions


4D Printing:  What the heck is that?


There are visionaries in our world who think and do things that make life so much better, and I for one am glad they exist and do what they do.  Skylar Tibbets is one such guy, and his vision of manufacturing parts that self assemble is as cutting edge as it gets:
Back in February, Skylar Tibbits revealed that he was working on a project called 4D printing. In essence, the technology would allow for 3D printed parts to assemble themselves into usable objects. It's a concept straight out of futurism fiction, but various research facilities are making it into a reality.

I had to watch the TED video to figure out what he was talking about, and it is an eye opener.  The applications for what he is proposing are truly mind boggling:

https://www.ted.com/talks/skylar_tibbits_the_emergence_of_4d_printing

This presentation dates back to 2013, and much has been done since then.  Get an update on what Tibbets is doing now in self assembly here.

Here's Everything You Need To Know About 4D Printing


Robert Heinlein quote

 

Wednesday, January 31, 2018

State of the Custom App Report

When we weren't looking, FileMaker started marketing more effectively


On the day of the State of the Union speech, FileMake released the State of the Custom App Report.  Great timing – FileMaker rode the news existing news cycle, google searches, and social media traffic to get the most exposure and bang for their buck.  And spotlighted the power of the custom app. Well done.

And the report is pretty good, too:
The State of the Custom App Report 2017 honed in on citizen developers, defined as those individuals with little to no professional coding or developing experience. The 2018 report takes a look across the board, examining the myriad ways custom apps are being used and how these tools are helping businesses succeed.

The State of the Custom App Report 2017 honed in on citizen developers, defined as those individuals with little to no professional coding or developing experience. The 2018 report takes a look across the board, examining the myriad ways custom apps are being used and how these tools are helping businesses succeed

Results presented in this report were gathered in October 2017 from 370 FileMaker customers across North America, Japan, and Europe. Respondents are in organizations of all sizes and across different industries. All respondents were involved in the creation of their custom app(s), and are actively using them

Those are impressive numbers.   It's worth downloading and sharing.

It Started with Farmtime


FileMaker ran its largest ad campaign in over a decade with the release of Farmtime:

https://youtu.be/tbAwijlozZQ

This spot uses humor very effectively, is high quality, very professional and very different from past campaigns.  And it's garnered over 63,000 views in just two weeks.  Not bad for an ad...

Let's hope FileMaker keeps it up!




 

Monday, January 29, 2018

China's Two Great Walls (One Virtual)

AWS and WebDirect for Chinese customers:  It doesn't work.


I just learned this late last night.  I have a client who manufactures parts in China and ships to the US.  When we tried out the China vendor part of the database using FileMaker WebDirect this past week we were in for a surprise:  WebDirect does not work in China when hosted on an AWS server not in China.  User Accounts that work fine in the States cannot login to WebDirect in China.

It seems China forced Amazon to sell off physical assets and go into business with two Chinese firms:
The service operator and provider for AWS China (Beijing) Region based out of Beijing and adjacent areas is Beijing Sinnet Technology Co., Ltd. (Sinnet), and the service operator and provider for AWS (Ningxia) Region based out of Ningxia is Ningxia Western Cloud Data Technology Co., Ltd. (NWCD).

I'm not sure how that affects my client just yet.  The problem is severe and we are looking into options.  Using VPN technology to do an end run is evidently possible but not allowed...China controls content flowing into it's internet with a pretty tight fist.  Amazon encourages clients to comply with their rules, which makes it hard for my client.

If anyone out there knows a way to make this work, please let me know.


FileMaker Relational Design Video (Beginners to Intermediate)


Jeremy Hammond on the basics of FileMaker Relational Design at a recent user group meeting.  Worth your time if you are having trouble with it:

[embed]https://www.youtube.com/watch?v=VlUmJxrfmmA&feature=youtu.be[/embed]


360Works updates their plugins


Server compatibility is the biggest topic in this upgrade.  If you are running any of their plugins, get the updated versions installed.


Space isn't remote at all. It's only an hour's drive away if your car could go straight upwards.

Fred Hoyle

Thursday, January 25, 2018

Skiing the Great Wall of China (literally), Filtered Portals, and more...

Dynamically Filtering Filtered Portals


A blast from the past (all the way back to 2013!), but still a great technique for smaller databases, this filtered portal is easy to use and will filter multiple fields. Read the comments for some speed enhancements and an faster alternative.  The best part:  You can use your existing portal and just use the Filter Portal checkbox in the portal setup.  Free FileMaker Example File at the link.

Caution:  Do not use with tens of thousands of records unless you limit the number of fields and change it to update on field exit (or use a script timer to allow multiple character entry). Best not used on a cloud solution, either, but does work with smaller data sets.

Kudos to Sara Severson for this technique:

Source: Dynamically Filtering Filtered Portals | Soliant Consulting

Who Needs Snow to Ski?


This in one of the most incredible videos I have ever seen...this guy skis everything including the Great Wall of China!

https://www.youtube.com/watch?v=NHrwcQQ38bA

LOCATE DATA WITH LOGICAL PRECISION


I've played with Logicator and love the concept for some applications:
LOgiCATOR builds on the immense power of FileMaker’s native Find mode, and wraps that power in a sleek and intuitive interface. Gone are wonkish operators and confusing find and omit requests, replaced by plain language prompts and options.

It's easy to bolt on, powerful...and free.  Can't ask for more than that.  Free FileMaker Example file at the link.

Source: beezwax > products > logicator

 

Monday, January 22, 2018

Being Responsible as a Developer

So, how do you go about being responsible as a developer?


Being responsible as a developer requires some thought and some concrete action.  Susan Fennema and I discuss what steps you can take to help:




[embed]https://youtu.be/34SbWX8EY0k[/embed]


As a developer, how can you keep yourself on track?


  • Say no when there are too many demands

  • Underpromise, overdeliver

  • Look at the project management system for your work - communicate with your PM if what you think you're working on and what it says are not identical

  • Spend 10 minutes at the end of every workday to prep for tomorrow and to do your time sheets

  • Use the timer options if your time tracker allows that

As a sub, what if you are working with multiple clients and multiple project management systems as a developer? How can you avoid becoming overwhelmed?


  • Use the tools you're given by your PM or your contractor

  • Calendar your time for each client

  • Start by looking at the PM system for that client when you start work

  • Making the "me", "my tasks" area your landing pages in your browser

  • Set time to handle the business side of things, as well as coding.

  • Working with the same people, but different clients

  • Communication of availability and progress

How can your PM help?


  • When you are overwhelmed, your PM can help you sort out priorities

  • When the client isn't getting you stuff, your PM can get you an extended deadline

  • When the client asks for something not in scope, your PM can get more money

  • Many can test for you - something you always need before delivery

  • Your PM can say no when you don't want to


If being responsible is your goal, this video will help you achieve it.

This wraps up our six video series on project management and subcontractors.  We hope you found it useful!




This useful advice has been around for over 200o years and comes from a man born a slave:

It's not what happens to you, but how you react to it that matters.

Epictetus


Thursday, January 18, 2018

FileMaker External Authentication: EA, SSO, AD, OD, OAuth, LDAP

FileMaker External Authentication


Wim Decorte presented on FileMaker External Authentication (EA, SSO, AD, OD, OAuth, LDAP) at Devcon 2017 last summer. Don't let the the acronyms bother you. It's actually pretty easy to set up Microsoft Azure, Amazon, or Google to handle external authentication for your FileMaker solution, and Decorte spends most of his session showing you how to do just that.

Why use EA to connect?


The benefits are pretty nice, actually.  If you already have users set up outside of FileMaker, then those users can use their credentials to access a FileMaker database.  That streamlines setup and administration when rolling out a new database, and offers a lot of other features available with EA services:
  • Better password security
    • Length

    • Expiration times

    • Complexity (symbols, caps, etc.)

    • Geographical limitations

    • Multi-factor authentication

    • Time frame usage


Types of EA


Some types of EA have existed in FileMaker for years:
  • Local – FileMaker's login system

  • Active Directory – Windows

  • Single Sign On (SSO) – Windows again

  • Open Directory – Mac

  • LDAP – not a logon service, but a method of making the server easier to find


Newer technologies are now available:
  • IP – Identity Provider.  A service that stores and manages identities

  • IAM – Identity andAccess Management

  • OAuth – An industry standard that uses tokens between systems to authenticate users

  • FIM – Federated Identity Management.  This is the same concept as EA.

Three New Services


Microsoft Azure, Amazon, and Goole each use OAuth2 to provide authentication, which means the operation system is left out of the process.  FileMaker Server Admin is used to configure the connections to each provider, but that setup process is not very hard.

How It Works


The process of logging in is a bit change:  The user will open a FileMaker database the same as always using their normal method (shortcut, Open Recent, etc.), but will have the option to choose Azure, Amazon or Google instead of typing in their username and password:

FileMaker External Authentication View

Pretty nice...

Clicking one of those options will take the user away from FileMaker – don't panic, they will be directed right back – to login using their credentials with that service.  For example, they might have a google account with all that entails, so they would login to their account on their default browser. Of if they were already logged in, it will ask them to re-enter their password. By clicking they sign in button, the user will be directed back to the database.

Setup


If you are doing this for the first time, you might want to watch the first 12 minutes of the above video for an overview of External Authentication (EA).  I highly recommend watching it.

Otherwise, jump ahead to the 13 minute mark to learn how to hook up to Microsoft Azure.  This section also includes a bit more of an overview of the process plus the details needed to connect.  Azure has one advantage over the other two:  it handles users and groups, which gives the database administrator more options to control access. This is a big bonus, in that any MicroSoft user with credentials on the internal network can be added to a FileMaker group and be able to logon to the database.  Amazon and Google only have user accounts, which you will have add users to FileMaker but will choose to let them authenticate with that service.

For Amazon setup, jump ahead to 39:21 to get started.

For Google, jump ahead to 46:28.

[embed]https://www.youtube.com/watch?v=99BuLS3mCSY&feature=youtu.be[/embed]

All three of these services also work with WebDirect, by the way.  Jump to 53:00 minutes for more details.

The Downside


To use Azure, Amazon, and Google, internet access is acquired, which means no internet, no access, and nobody using the solution.

More Information


Download the white paper for this presentation here.  Trust me, you'll  want this.

Want to use the FileMaker Data API?  Todd Geist has you covered:

https://www.geistinteractive.com/2017/05/09/filemaker-16-data-api-and-oauth/


It has yet to be proven that intelligence has any survival value.

Arthur C. Clarke

Monday, January 15, 2018

Meeting Expecations

Meeting Expectations


In the fifth video of the Project Management - Sub Contractors series, Susan Fennema and I talk about tips for subcontractors to help with meeting expectations. Below the video is an overview...watch the whole video for all the useful details:

https://youtu.be/-wn1K0h232Y

What is the developer's role in using project management tools?


  • Checking off or assigning tasks to the client when they are finished

  • Post your time to the correct job and task, with coherent notes

  • Add tasks to keep yourself and the client on task

  • Make sure that everything assigned to you is truly in your court

If you offer 20 hours/week, how can you guarantee that you give it?


  • Progress vs. deadline is estimated based on your availability and workload

  • It is imperative that you give what you promise

  • Calendar your allocated time... if you promised 25 hours to a client, that's a 5-hour block per day. if your calendar is filled up, you have overpromised

  • If you are stretched and in demand as a subcontractor, raise your rates

What if a deadline is unrealistic?


  • Discuss this with your Project Manager

  • Figure out if part of the project can be delivered on time

  • Communicate on this early and often - avoidance and assumptions are dangerous

  • Give clear, concise communication – with consequences – to your client

Next week, we'll offer tips on how to be more responsible as a developer.  Don't miss it!




There are only two tragedies in life: one is not getting what one wants, and the other is getting it.

Oscar Wilde

Friday, January 12, 2018

Communicating with your Project Manager

Communicating with your Project Manager


Susan Fennema and I just finished our 4th Facebook live video on Project Management:  Communicating with your Project Management.

In this video we talk about communicating with your project manager and cover the following topics (and more, of course):


[embed]https://youtu.be/Jfg87GCqAAk[/embed]

What information does a project manager need from a developer?


  • When you will be working on the project

  • When you have questions for the client

  • When will you not be available (other projects, other clients, vacations)

  • How do you like to work (2-3 hour blocks? all-day blocks?)

  • Best means of communication (email, Slack, project management tool)

  • When something unexpected comes up

  • Document client communications/changes

The PM is responsible for scope, budget, and time. What is the developer's role in those same things?


  • Be clear how long will each task take you

  • Be responsible for understanding the scope

  • Let PM know when  the client asked for something that is not in scope

  • When you expect to be finished ("done done") with specific tasks


The biggest takeaway is not a big secret:  keep lines of communication open and the information flowing freely.  Doing so will make your job a subcontractor (or employee) much easier and more rewarding.


If you do not change direction, you may end up where you are heading.

Lao Tzu

Thursday, January 11, 2018

JSON Variables, WebDirect in FileMaker 16, Scrolling the Unscrollable

How to Automatically Create Variables from JSON Data in FileMaker

Mislav Kos wrote an incredibly powerful, free custom function for parsing data from JSON files, something you'll definitely want in your tool chest for the future (as the future will include a lot of JSON for most developers).
If you have data stored as JSON, presumably you will want to extract it at some point. And as part of doing that, you may end up assigning that data to variables, whether for better script readability or other reasons. Adding these assignment steps to your script can be tedious, especially when the JSON document contains a lot of data. For instance, given the following JSON document that has key-value pairs for each letter in the alphabet, we would end up having to create 26 "Set Variable" script steps.


Features include handling arrays, typecasting data (dates are saved as dates, numbers as numbers, etc.), handling spaces, and more.  One of the worst parts getting data from web sources is mapping the data properly, mostly because it is boring and tedious.  This free FileMaker example file (at the link) helps relieve that boredom.

Source: How to Automatically Create Variables from JSON Data in FileMaker

Scrolling the Unscrollable


I've never needed a scrollable check box in a popover before, but I have downloaded the free FileMaker example file, just in case:
Howard Schlossberg’s presentation on popovers (FileMaker 13 Popovers) has inspired me on multiple occasions… a favorite takeaway is the idea that you can have a scrolling check box set within a popover.

Bonus:  you can scroll other types of static fields, including container fields. More info at the link.

Source: Scrolling the Unscrollable | FileMakerHacks

FileMaker Server 16: Multiple Worker Machines


This was posted in May, but is still worth reading for a good overview of  WebDirect in FileMaker 16:
The FileMaker 16 platform includes FileMaker Server and introduces the ability to have multiple "worker" machines connected to a single FileMaker database server or "master" machine. This is mostly relevant to FileMaker WebDirect, which has greatly improved with the latest version.

This involves an understanding of the different services running as part of FileMaker Server, only one of which is the database server itself. There are also web publishing and scripting engines, among other services. Most important here is the Web Publishing Engine (WPE). That’s where WebDirect sessions are run from. FileMaker 16 introduces some changes to how WPE is managed in the FileMaker Admin Console.

The routing of clients to lower traffic hosts on the worker machines is worth noting.  So is the increased performance:  My clients WebDirect pages are waayyyy faster than the FileMaker client when run on the same machine.  It's almost embarrassing.  It's also often the best solution for the client.

Source: WebDirect in FileMaker 16 - New Features and Capabilities


We cannot put off living until we are ready.

Jose Ortega y Gasset

 

 

How to Automatically Create Variables from JSON Data in FileMaker

If you have data stored as JSON, presumably you will want to extract it at some point. And as part of doing that, you may end up assigning that data to variables, whether for better script readability or other reasons.

Adding these assignment steps to your script can be tedious, especially when the JSON document contains a lot of data. For instance, given the following JSON document that has key-value pairs for each letter in the alphabet, we would end up having to create 26 "Set Variable" script steps.

Source: How to Automatically Create Variables from JSON Data in FileMaker

Tuesday, January 2, 2018

FM to Google Translate, Indexing Secrets, FM to Zapier

It's a brand new year and lot's of exciting things are happening in the FileMaker world!


Translating using Google Translate with FileMaker


It turns out to be pretty easy, but costs for every word translated. I'd like to find a way to translate labels and tags in FileMaker on the fly – and store them of, course, for later use.  That would allow a user to translate a database into their language on the fly.  There would be limitations, of course, but still would be interesting.

Translation

There's also a free example file at the link (kudos to Douglas Alder for this).

Source: Making FileMaker interact with Google Translate | HomeBase Software

Indexing Text vs Numbers


Honza did some interesting – and eyebrow raising – testing on indexing text and numbers.  One of his startling conclusions:
The longest search time was measured when searching in indexed text field containing unique values. It was even almost twice as slow as searching in unindexed field.

There's more:
If you are likely to have repeating values from a value list in your field, having a value index is definitely going to help. If you’re going to store natural text in your field and likely to search for words that appear many times, word index is probably going to be your friend. But if your text field is going to hold unique values, the index overhead is something you may want to avoid.

Read Honza's post if you need to optimize indexing on your databases.  Or even if you don't...it's valuable insight.

Source: Text or Numbers – What’s Faster

Connect FileMaker to Zapier (and to hundreds of services) for free


This was announced at Devcon 2017 and requires some beta testing and setup, but the benefits are awesome:
The fmGateway for Zapier allows your custom FileMaker apps to communicate with a huge number of web applications using Zapier. For example:
  • new leads from your website can be automatically collected into your database

  • ecommerce orders can be imported automatically

  • SMS updates can be sent automatically to alert clients in changes to their order

  • customers can be automatically subscribed to your newsletter

  • invoices can be sent via PayPal or Invoice Ninja

  • updates can be sent to Slack and vice-versa


Every FileMaker developer knows the future lies in integrating with the rest of the world.  This tool will make that task easier.

Source: FREE fmGateway for Zapier – soSIMPLE Software/Paradise Partners