CampSoftware Logo       FileMaker Certified
Have a question? Email Us
Subscribe to our Blog!
Home | Products | Contact & About | Blog | Twitter | RSS Feed

Moving from WordPress to FileMaker


2/16/2015
Hal Gumbert

Time to Move

Yep. We moved from WordPress to FileMaker. It sounds insane, but it's working great all due to FMWebFrame by Tim Dietrich. Of course we didn't do this overnight and without reason. Our site was running on Wordpress and while it was working, we noticed that it was sluggish and we had added several plugins for things we really didn't need. It was time to simplify.

Looking back, we'd do it all over again. Our site is now wicked fast. If you need your website updated let us know! We can help get the info in a database and available on the web too!

Looking for a Deal

Once we found out about FMWebFrame, we needed to learn how it worked. So we started an experimental site that we've been using to test FMWebFrame called Overseerr.com where we list nice deals on things we like.

We created a new database file, added the products table, and then implemented FMWebFrame, which was a breeze. Not only did FMWebFrame add the ability to search FileMaker data by using the same Select statements like ExecuteSQL uses, it also added caching. Those are my two favorite features, but it does more than that.

Export / Import

To make the move, we exported all of our Pages and Posts from WordPress to XML and then imported them into a FileMaker Database. This took a bit of work, but not too much. We just had to extract the Titles, Page Content, Dates, and a few other fields into FileMaker fields. The data was ready to be published. Once that was done, we were able to use FMWebFrame show the content. All we really needed was a few webpages written in php that search the database and display the information on the page.

Total Recall

The majority of the content on our site are either pages or posts which are shown in very similar manner, but are cached. FMWebFrame's method of caching is crazy fast. Really. Without the caching, we'd still be using Wordpress. FMWebFrame can takes any text and save it to a file. So, when you perform a search on the FileMaker database, you just save the result to a text file. Once it's saved, you can then choose to pull the data from the text file or perform the search again. The flow is something like this:

  • Do we have a cache file for the query and is it fresh enough to use?
  • If so, use it and display the page.
  • If not, search the database, save the cache file, and display the page.

The result is that you only need to query the database when the page needs to be refreshed. We currently only refresh the cache after 24 hours. It sounds simple, but that means that if there is no cache, the next person that loads the page will have to wait a second or two to search the database, save the cache, and load the page. Every person afterwards for 24 hours can skip the searching of the database. It's really amazing.

Try It, You'll Like It!

View our list of posts on our blog and scroll to the bottom of the page where you can see either the query or cache load time. Even with about 80 posts on the site, you'll see how fast the cache is. If you happen to see the query time, reload the page to see how much faster the cache is and how old the cache is. Of course we have a way to force the cache to load. :)

Plug It In

The one thing we loved and hated about Wordpress are all the plugins. We had to find ways to add similar functionality, but found there are many great ways to replicate the functionality.

  • Pictures: We add images to our posts as FileMaker Containers converted to text using the new Base64 functions. By having the images as base64 text, the images become part of the page and are cached together!
  • PayPal: We use standard PayPal buttons.
  • Videos: We use YouTube's embedded html5 video player. On YouTube, go to a video, click share, and then embed. You can do the same for YouTube playlists!
  • Q & A: We use a Google Docs Sheet Form. When someone fills in a form, they are actually adding a row to a Google Sheet and then we receive an email.
  • Comments: Moved to Disqus for page comments.

DBObservers for FileMaker Developers Interested in Xojo


2/16/2015
Hal Gumbert

Always Learning

We've been using Xojo since 1998 and are still learning about it all the time such as the Observer Pattern. Last year, Paul Lefebvre posted about the Observer Pattern.

Paul stated:


You use the observer pattern when you have an object that needs to notify one or more other objects of specific changes. This is the definition from wikipedia: "The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods."


FileMaker DB Integration

One of the best things about FileMaker is how it automatically communicates with with the database. We don't need to worry about any of that in FileMaker, but with Xojo, we have a lower level of control and must handle forms ourselves.

Normally, I would create my form and have a method set the form and another method save the form. Anytime I add another field to the form, I'd have to update the set / save methods. That becomes a pain point very quickly.

Implementing with Xojo

DBObservers makes things MUCH easier. Once the DBObservers is set up, all we need is a sqlite table of data like our Contacts table fields and a Window / View with the fields that we need set to their database column names.

The flow is really simple as well, which I love.

  • You subclass the fields / interface elements that you want to use.
  • You add the fields to the form and set the table name.
  • You create an array of the fields to be observed.
  • You send messages like "Set" or "Save" to the observers.

Video and Example

Check out the video below and download the example file. Be sure to check out Paul's example file too.

Using techniques like this help to make software for our clients much faster!


Reference for FileMaker App for Made with Xojo


2/10/2015
Hal Gumbert

Last week we released Reference for FileMaker our iPhone / iPad App that makes looking up FileMaker details quickly.

Not only is it one of our first apps, it's one of the first iPhone / iPad Apps created with Xojo! Xojo is really amazing. With it, we can create real apps for Mac, Windows, Linux, Web, and now iOS ( iPhone / iPad/ iPod ). Xojo is also working on adding Android to the list, but no dates have been set for the release date.

We've been using Xojo since 1998, way back when it was called REALbasic and have been using it to develop apps since then. One of the main reasons we love Xojo it is a high level language. The level refers to how close the language is to machine language. Binary is lowest level language (1's and 0's) followed by assembly language, then languages like C, C++, Pascal, COBOL, and others follow. Xojo would be above those languages and FileMaker above Xojo. While FileMaker is generally a drag and drop development environment, Xojo requires more "coding". You can still drag and drop some elements, but you also have to write code. Think of Xojo as between FileMaker and C++.

We've created C++ apps in the past, but it was never fun. The first time we saw Xojo, it was like a breath of fresh air as Xojo made it easier to create apps. Since the iPhone was introduced, we've been trying to find a way to build apps with out using C++. We've tried FMTouch which converted FileMaker databases to iPhone apps. We've tried LiveCode which is like Hypercard. We've tried PhoneGap which is like building mini web apps. None of them felt right to us.

Xojo added building iOS apps in early December 2014 and we had our app submitted to the App Store by the end of December. It was amazing to conceptualize, develop, and submit the app so fast. Considering that it took a week or so to learn how iOS apps work with Xojo, I'm still amazed how fast we could build an app. Since then, Xojo has released TWO updates. Xojo strives to release major updates quarterly and minor updates as needed. The updates aren't just bug fixes, but also new features, changes, and docs / examples. Here are the Release Notes.

If you need an app created, we can help with the development.

Here's a video that Paul, the Xojo Developer Evangelist created to show how easy to can be.


FMEasyWeb with FileMaker Layouts


11/11/2014
Hal Gumbert

Tim Dietrich and I have been experimenting with the FileMaker and the Web recently using Custom Web Publishing. One thing led to another.

FMEasyWeb

Tim's been working on FMEasyWeb which makes it crazy easy to put a FileMaker layout on the web. Below you can see what a list layout currently looks like. It generates the layout automatically for list and detail layouts, but detail layouts are just a long column of each field. It works, but it's not similar to the FileMaker layout. It's freaking awesome and completely useable for being automatically generated.

EasyWeb-Alpha-1-List-View

 

FMEasyWeb with FileMaker Layouts

We started talking and wished we could get a Custom Web Publishing page to look like a FileMaker Layout. So, I mentioned that we could get the position and size of just about anything on a FileMaker Layout by selecting all the objects on the layout to get the xml representation of the layout.

So, I copied the xml for the FileMaker Layout shown below with no changes to the xml. You can get an idea what the xml looks like near the bottom of this page. The xml represents the field for the Title below. Just the Title field. If you were to copy the all of the objects on the layout, there would be that much xml multiplied by the number of objects. It looks like a total mess, but it's very organized. You can get the xml using a FileMaker plugin like Clipboard Explorer or the MBS Plugin. If there are other plugins, I'd like to know, so please leave a comment.

With that the xml, I created this web page layout. I looped thru each object in the xml and placed it on the layout. There was NO hand coding of anything. Each text and field were added to the webpage in the same position and at the same size. You'll probably notice that the portal isn't show on the webpage. That's next on the list.

FileMaker Layout

Just a FileMaker Layout.

FileMakerLayout

Web Page Layout

This is a web page generated from the xml of the FileMaker Layout show above. NO HAND coding was done. A bit of the xml is shown below.

FileMakerLayoutWeb

 

FileMaker Layout Field XML

This is what the xml looks like for the Title Field on layout shown above.

<?xml version="1.0" encoding="UTF-8"?> <fmxmlsnippet type="LayoutObjectList"> <Layout enclosingRectTop ="74.0000000" enclosingRectLeft ="20.0000000" enclosingRectBottom ="726.0000000" enclosingRectRight ="1003.0000000"> <Object type="Field" key="93" LabelKey="94" flags="0" rotation="0"> <Bounds top="93.0000000" left="20.0000000" bottom="114.0000000" right="273.0000000"/> <FieldObj numOfReps="1" flags="32" inputMode="0" keyboardType="1" displayType="0" quickFind="1" pictFormat="5"> <Name>Contacts::Title</Name> <ExtendedAttributes fontHeight="14" graphicFormat="5"> <NumFormat flags="2304" charStyle="0" negativeStyle="0" currencySymbol="$" thousandsSep="44" decimalPoint="46" negativeColor="#DD000000" decimalDigits="2" trueString="Yes" falseString="No"/> <DateFormat format="0" charStyle="0" monthStyle="0" dayStyle="0" separator="47"> <DateElement>3</DateElement> <DateElement>6</DateElement> <DateElement>1</DateElement> <DateElement>8</DateElement> <DateElementSep index="0"></DateElementSep> <DateElementSep index="1">, </DateElementSep> <DateElementSep index="2"> </DateElementSep> <DateElementSep index="3">, </DateElementSep> <DateElementSep index="4"></DateElementSep> </DateFormat> <TimeFormat flags="143" charStyle="0" hourStyle="0" minsecStyle="1" separator="58" amString=" AM" pmString=" PM" ampmString=""/> <CharacterStyle mask="32695"> <Font-family codeSet="Roman" fontId="9">helvetica neue,sans-serif</Font-family> <Font-size>12</Font-size> <Face>0</Face> <Color>#4D4D4D</Color> </CharacterStyle> </ExtendedAttributes> <Styles> <FullCSS> self&#10;{&#10;&#09;background-image: none;&#10;&#09;background-position: 0% 0%;&#10;&#09;background-size: auto;&#10;&#09;background-repeat: repeat repeat;&#10;&#09;background-origin: padding-box;&#10;&#09;background-clip: border-box;&#10;&#09;background-color: rgba(99.2157%,98.8235%,94.5098%,1);&#10;&#09;border-top-color: rgba(83.9216%,83.1373%,79.2157%,1);&#10;&#09;border-right-color: rgba(83.9216%,83.1373%,79.2157%,1);&#10;&#09;border-bottom-color: rgba(83.9216%,83.1373%,79.2157%,1);&#10;&#09;border-left-color: rgba(83.9216%,83.1373%,79.2157%,1);&#10;&#09;border-top-style: solid;&#10;&#09;border-right-style: solid;&#10;&#09;border-bottom-style: solid;&#10;&#09;border-left-style: solid;&#10;&#09;border-top-width: 1pt;&#10;&#09;border-right-width: 1pt;&#10;&#09;border-bottom-width: 1pt;&#10;&#09;border-left-width: 1pt;&#10;&#09;border-top-right-radius: 0pt 0pt;&#10;&#09;border-bottom-right-radius: 0pt 0pt;&#10;&#09;border-bottom-left-radius: 0pt 0pt;&#10;&#09;border-top-left-radius: 0pt 0pt;&#10;&#09;border-image-source: none;&#10;&#09;border-image-slice: 100% 100% 100% 100% fill;&#10;&#09;border-image-width: 1 1 1 1;&#10;&#09;border-image-outset: 0 0 0 0;&#10;&#09;border-image-repeat: stretch stretch;&#10;&#09;outline-width: 0pt;&#10;&#09;outline-style: none;&#10;&#09;outline-color: invert;&#10;&#09;outline-offset: 0pt;&#10;&#09;font-family: -fm-font-family(helvetica neue,sans-serif,roman);&#10;&#09;font-weight: normal;&#10;&#09;font-stretch: normal;&#10;&#09;font-style: normal;&#10;&#09;font-variant: normal;&#10;&#09;font-size: 12pt;&#10;&#09;color: rgba(30.1961%,30.1961%,30.1961%,1);&#10;&#09;direction: ltr;&#10;&#09;line-height: 1line;&#10;&#09;block-progression: tb;&#10;&#09;text-align: left;&#10;&#09;text-transform: none;&#10;&#09;text-indent: 0pt;&#10;&#09;display: inline;&#10;&#09;padding-top: 0pt;&#10;&#09;padding-right: 0pt;&#10;&#09;padding-bottom: 0pt;&#10;&#09;padding-left: 0pt;&#10;&#09;margin-top: 0pt;&#10;&#09;margin-right: 0pt;&#10;&#09;margin-bottom: 0pt;&#10;&#09;margin-left: 0pt;&#10;&#09;width: auto;&#10;&#09;height: auto;&#10;&#09;float: none;&#10;&#09;clear: none;&#10;&#09;overflow-x: visible;&#10;&#09;overflow-y: visible;&#10;&#09;overflow-style: auto;&#10;&#09;visibility: visible;&#10;&#09;top: auto;&#10;&#09;right: auto;&#10;&#09;bottom: auto;&#10;&#09;left: auto;&#10;&#09;position: static;&#10;&#09;box-shadow: none;&#10;&#09;box-sizing: content-box;&#10;&#09;vertical-align: baseline;&#10;&#09;-fm-digit-set: roman;&#10;&#09;-fm-space-before: 0line;&#10;&#09;-fm-space-after: 0line;&#10;&#09;-fm-tab-stops: ;&#10;&#09;-fm-strikethrough: false;&#10;&#09;-fm-underline: none;&#10;&#09;-fm-glyph-variant: ;&#10;&#09;-fm-paragraph-margin-left: 0pt;&#10;&#09;-fm-paragraph-margin-right: 0pt;&#10;&#09;-fm-character-direction: ;&#10;&#09;-fm-tab-top-left-radius: 0 0;&#10;&#09;-fm-tab-top-right-radius: 0 0;&#10;&#09;-fm-use-default-appearance: false;&#10;&#09;-fm-icon: none;&#10;&#09;-fm-icon-color: rgba(0%,0%,0%,1);&#10;&#09;-fm-tab-spacing: 0;&#10;&#09;-fm-override-with-classic: false;&#10;&#09;-fm-table-background-color: rgba(0%,0%,0%,0);&#10;&#09;-fm-baseline-shift: 0pt;&#10;&#09;-fm-fill-effect: 0;&#10;&#09;-fm-highlight-color: rgba(0%,0%,0%,0);&#10;&#09;-fm-text-vertical-align: top;&#10;&#09;-fm-tategaki: false;&#10;&#09;-fm-rotation: 0;&#10;&#09;-fm-borders-between-reps: false;&#10;&#09;-fm-borders-baseline: false;&#10;&#09;-fm-texty-field: false;&#10;&#09;-fm-box-shadow-persist: none;&#10;}&#10;self:focus&#10;{&#10;&#09;box-shadow: 0pt 0pt 2pt 1pt rgba(0%,43.9216%,81.1765%,1);&#10;}&#10;self .inner_border&#10;{&#10;&#09;background-image: none;&#10;&#09;background-position: 0% 0%;&#10;&#09;background-size: auto;&#10;&#09;background-repeat: repeat repeat;&#10;&#09;background-origin: padding-box;&#10;&#09;background-clip: border-box;&#10;&#09;background-color: rgba(0%,0%,0%,0);&#10;&#09;border-top-color: rgba(0%,0%,0%,0);&#10;&#09;border-right-color: rgba(0%,0%,0%,0);&#10;&#09;border-bottom-color: rgba(0%,0%,0%,0);&#10;&#09;border-left-color: rgba(0%,0%,0%,0);&#10;&#09;border-top-style: none;&#10;&#09;border-right-style: none;&#10;&#09;border-bottom-style: none;&#10;&#09;border-left-style: none;&#10;&#09;border-top-width: 0pt;&#10;&#09;border-right-width: 0pt;&#10;&#09;border-bottom-width: 0pt;&#10;&#09;border-left-width: 0pt;&#10;&#09;border-top-right-radius: 0pt 0pt;&#10;&#09;border-bottom-right-radius: 0pt 0pt;&#10;&#09;border-bottom-left-radius: 0pt 0pt;&#10;&#09;border-top-left-radius: 0pt 0pt;&#10;&#09;border-image-source: none;&#10;&#09;border-image-slice: 100% 100% 100% 100% fill;&#10;&#09;border-image-width: 1 1 1 1;&#10;&#09;border-image-outset: 0 0 0 0;&#10;&#09;border-image-repeat: stretch stretch;&#10;&#09;outline-width: 0pt;&#10;&#09;outline-style: none;&#10;&#09;outline-color: invert;&#10;&#09;outline-offset: 0pt;&#10;&#09;font-family: -fm-font-family(Helvetica,roman);&#10;&#09;font-weight: normal;&#10;&#09;font-stretch: normal;&#10;&#09;font-style: normal;&#10;&#09;font-variant: normal;&#10;&#09;font-size: 12pt;&#10;&#09;color: rgba(0%,0%,0%,1);&#10;&#09;direction: ltr;&#10;&#09;line-height: 1line;&#10;&#09;block-progression: tb;&#10;&#09;text-align: left;&#10;&#09;text-transform: none;&#10;&#09;text-indent: 0pt;&#10;&#09;display: inline;&#10;&#09;padding-top: 0pt;&#10;&#09;padding-right: 0pt;&#10;&#09;padding-bottom: 0pt;&#10;&#09;padding-left: 0pt;&#10;&#09;margin-top: 0pt;&#10;&#09;margin-right: 0pt;&#10;&#09;margin-bottom: 0pt;&#10;&#09;margin-left: 0pt;&#10;&#09;width: auto;&#10;&#09;height: auto;&#10;&#09;float: none;&#10;&#09;clear: none;&#10;&#09;overflow-x: visible;&#10;&#09;overflow-y: visible;&#10;&#09;overflow-style: auto;&#10;&#09;visibility: visible;&#10;&#09;top: auto;&#10;&#09;right: auto;&#10;&#09;bottom: auto;&#10;&#09;left: auto;&#10;&#09;position: static;&#10;&#09;box-shadow: none;&#10;&#09;box-sizing: content-box;&#10;&#09;vertical-align: baseline;&#10;&#09;-fm-digit-set: roman;&#10;&#09;-fm-space-before: 0line;&#10;&#09;-fm-space-after: 0line;&#10;&#09;-fm-tab-stops: ;&#10;&#09;-fm-strikethrough: false;&#10;&#09;-fm-underline: none;&#10;&#09;-fm-glyph-variant: ;&#10;&#09;-fm-paragraph-margin-left: 0pt;&#10;&#09;-fm-paragraph-margin-right: 0pt;&#10;&#09;-fm-character-direction: ;&#10;&#09;-fm-tab-top-left-radius: 0 0;&#10;&#09;-fm-tab-top-right-radius: 0 0;&#10;&#09;-fm-use-default-appearance: false;&#10;&#09;-fm-icon: none;&#10;&#09;-fm-icon-color: rgba(0%,0%,0%,1);&#10;&#09;-fm-tab-spacing: 0;&#10;&#09;-fm-override-with-classic: false;&#10;&#09;-fm-table-background-color: rgba(0%,0%,0%,0);&#10;&#09;-fm-baseline-shift: 0pt;&#10;&#09;-fm-fill-effect: 0;&#10;&#09;-fm-highlight-color: rgba(0%,0%,0%,0);&#10;&#09;-fm-text-vertical-align: top;&#10;&#09;-fm-tategaki: false;&#10;&#09;-fm-rotation: 0;&#10;&#09;-fm-borders-between-reps: false;&#10;&#09;-fm-borders-baseline: false;&#10;&#09;-fm-texty-field: false;&#10;&#09;-fm-box-shadow-persist: none;&#10;}&#10;self:droptarget .inner_border&#10;{&#10;&#09;box-shadow: inset 0pt 0pt 2pt 1pt rgba(0%,43.9216%,81.1765%,1);&#10;}&#10;self .text&#10;{&#10;&#09;margin-top: 0.25em;&#10;&#09;margin-right: 0.5em;&#10;&#09;margin-bottom: 0.17em;&#10;&#09;margin-left: 0.5em;&#10;&#09;height: auto;&#10;&#09;top: 0pt;&#10;&#09;right: 0pt;&#10;&#09;bottom: 0pt;&#10;&#09;left: 0pt;&#10;&#09;position: absolute;&#10;&#09;box-sizing: border-box;&#10;}&#10;self .baseline&#10;{&#10;&#09;border-bottom-width: 1pt;&#10;}&#10;</FullCSS> <ThemeName>com.filemaker.theme.tranquil</ThemeName></Styles> <DDRInfo> <Field name="Title" id="2" repetition="1" maxRepetition="1" table="Contacts"/> </DDRInfo> </FieldObj> </Object></Layout></fmxmlsnippet>


Send Twitter Searches to a Google Spreadsheet


10/16/2014
Hal Gumbert

IFTTT ( If This Then That ) added the ability to send Twitter searches to a Google Spreadsheet.

This will let you store tweets of things that interest you. I have one set up to store FileMaker Tweets.

Here's a pic of the new triggers...

IFTTTTweets


FileMaker Related Field Updater / Storing Unstored Fields


10/3/2014
Hal Gumbert

NOTE: We really like this method, but it won't work in FileMaker Go since it requires an Extension. If the ExecuteSQL function had INSERT, UPDATE, and DELETE or if we could run a script in the calculation engine, this would work.

For years, we’ve had problems with Filemaker unstored Fields. Don’t get me wrong, unstored fields are great for having related data available in related FileMaker tables. However, unstored fields don’t work so well for Finds, Sorts, or Relationships.

Recently, Doug de Stwolinska and I been trying several methods to update a field in another table. Before now, we have been adding a trigger on the field on the layout which runs a script that updates the stored field in the other table. It works nicely, but if we add the field somewhere else we’re likely forget the trigger. Also, we might add a field to a layout by duplicating the field with the trigger which then causes an incorrect values to be updated. On top of that, we end up with a bit of screen flicker as we open a window off screen.

Yesterday, Doug and I found a way to do this with no triggers and no flicker but it does require a FileMaker Extension to be able to use FileMaker SQL INSERT, UPDATE, and DELETE statements. We use the BaseElements Extension which does a ton including FileMaker SQL!

View on YouTube

All we needed to do is add a Calculated value to the field within Manage Database, allowing the value to be replaced.

RelatedFieldUpdater-CalculatedValue1 RelatedFieldUpdater-CalculatedValue2

So, if we needed to update a First Name to another table, we could type into the field and the Calculated value calculation would run. Initially, we created the calculation within the Calculated value, but after we found all the ins and outs, the calculation became very long. Since it was so complex, we generalized the calc and converted it to a Custom Function. This how we can update the stored field in the related table:

First &   Extensions.BaseElements.RelatedFieldUpdater ( First ; CONTACT ID ; GetFieldName ( ContactsRelated::NameFirst ) ; GetFieldName ( ContactsRelated::CONTACT ID FK) ; "update insert delete" )

 

These are the parameters:

Extensions.BaseElements.RelatedFieldUpdater ( thisFieldValue ; thisRelationshipKey ; relatedFieldName ; relatedRelationshipKeyFieldName ; action )

 

The "First &" simply places the field back in the field. The remaining part is the custom function which receives the edited value, keys, field name, and what it should do. The custom function looks to see if the related record exists. If it does, it uses FileMaker SQL to UPDATE the field. If the record doesn’t exist, it INSERTS the record, if you add 'insert' to the action. If the field is cleared and you add 'delete' to the action, it will delete the related record. If you clear the field and don’t allow deletes, it will clear the field on the related table.

Download the Example Database with the Custom Function


Free Right Now: Work Time, Clock & More


12/6/2013
Hal Gumbert

Sometimes I need to keep an eye on the time and I normally use Weather Clock, this this is very nice as well: Work Time screen568x568


Free Right Now: Window Magnet [Actually $1]

12/6/2013
Hal Gumbert

This is really neat. Apparently, on Windows OS, you can drag windows to the sides or top to have the windows automatically resize.  Window Magnet does that for Mac OS! screen800x500


FileMaker 13 is Available


12/3/2013
Hal Gumbert

FileMaker Inc released FileMaker 13 today! From the press release...

FileMaker 13 includes more than 50 new features. Chief among them are:

  • FileMaker WebDirect, an entirely new, HTML5 browser-based technology that allows teams to create and deploy desktop-style solutions in a web browser with no programming skills required.
  • Tools to create amazing iPad and iPhone solutions that support even more iOS behaviors, including slide controls, popovers and the ability to scan records using gestures. iPad and iPhone layouts can now be created in one step; and iOS solutions can include single-click capture of bar codes using on-device cameras and custom keyboards that speed data entry.
  • Major improvements to design capabilities, including support for shareable custom themes and styles, and the ability to drag and drop data fields onto design layouts.
  • More robust security, with AES 256-bit encryption that locks down data no matter where it lives – on iPad, iPhone, desktop or server. FileMaker Pro 13 Advanced is used to enable encryption.
  • Dozens of new enhancements for solution developers, from the ability to hide or display objects on a screen based on business logic to easier integration with web applications.
  • Simplified server administration, including an entirely new HTML5 administrative console in FileMaker Server 13 for managing business solutions from anywhere.

What does this mean to you? Well, if you already have FileMaker 12, you definitely want to upgrade but not today or next week. I'd highly suggest purchasing the upgrade soon, unless it's a free upgrade for you. I'd wait to upgrade for a month. It might be a good to install around the New Year break, if we don't hear any bad reports...

FileMaker 13 might just change how you use FileMaker with the new WebDirect feature. With WebDirect, you can install FileMaker Server and EVERYONE, except those developing, can use a web browser or an iPad/iPhone to access the database. That means you won't need FileMaker Pro installed. It's going to change a lot. We'll be working with this quite a bit very soon with our FMSB Foundation as we've been working on a web/iOS interface for portions of FMSB.

The costs of FileMaker are changing too. I'll probably come back and edit this again when we hear more about the pricing...


Free Right Now: JetScanner: Camera to PDF, scan multipage documents to PDF

11/19/2013
Hal Gumbert

From the description of JetScanner:

"JetScanner is an ideal solution for both professional and casual use. It is one of the easiest ways to convert images on your iDevice into easy to use, view, and share PDF files."

-iPhoneLife

"JetScanner will create not just simple PDFs, but powerful ones in a matter of moments."

-appchronicles

JetScanner turns your phone/iPad to a powerful portable scanner. With JetScanner, you will be able to scan receipts, papers, documents or any other important photo.

Save your scans as PDF or zip files in your favorite cloud application such as Dropbox, Google Drive, SkyDrive or Evernote. You can email or print your PDF file using an AirPrint compatible printer.

Features:

◉ Scan Documents

Scan your important documents, papers or files and create professional PDFs.

◉ Border detection

JetScanner features a smart border detection that will identify the border of the paper to make cropping easer.

◉ Image Filter

Process your images with black and white or greyscale filters.

◉ AirDrop Sharing

Share your scans using iOS 7 feature AirDrop.

◉ Scan to PDF - All your scans will be saved in your device, ready to be shared as a PDF documents via email or other cloud services.

◉ Scan to Zip - JetScanner allows you to zip your images and share it too!

◉ Cloud Services - Upload your PDF or ZIP file to Dropbox, Google Drive, Evernote, SkyDrive.

◉ Email, AirPrint, Open In


HopTo - iPad Mobile Workspace


11/19/2013
Hal Gumbert

A friend just sent me a link for HopTo and it looks very useful, so I thought I'd share it... One thing that I miss on iOS is a Mac like experience where I can access my files, no matter the app. On iOS, we have to think about what app created the file, then go to that app. It's backwards thinking... Maybe someday iOS will have a place we can access all of our files in one place.

Anywhere work and personal file accessibility comes to the iPad

  • Manage/share personal and business files in one place
  • Access PC files from your iPad
  • Insert images into documents from Google searches
  • Download image files to camera roll
  • Email and share files
  • Easy to use multi-tasking interface

An interactive mobile workspace built with you in mind

  • Innovative user interface allows for true multitasking
  • Single location view of business and personal files in cloud storage
  • Save files in cloud storage
  • Create, edit and share Office files
  • Establish favorites for quick access
  • Get your own “Personal Cloud” without having to pay service fees

Manage Personal & Work Office Files & Photos from Your iPad

  • Create and edit Word/Excel documents and files
  • View PowerPoint files that are saved in cloud storage
  • Be mobile but still have access, no matter where you are in the office
  • iPad native functionality with easy to use features
  • Open remote files in local apps
  • Data privacy & security

Spawning FileMaker


3/7/2013
Hal Gumbert

Brian Schick posted on Twitter a link on how to open additional instances of FileMaker, or any other application on your Mac. This was also mentioned at PauseOnError this week several times.

I wouldn't suggest that general users try this out, but developers and power users could used this to be able to multi task better. Up until now, we run a FileMaker Pro along with FileMaker Advanced to use FileMaker Pro to run a task / billing database. Now, we can just run another copy of FileMaker Advanced.

This is also a great idea to work on several databases simultaneously and to make copy and pasting of anything that resides in a modal  window.

To try it, open Terminal and run the following command: open -n /Applications/'FileMaker Pro 12 Advanced'/'FileMaker Pro Advanced.app'/

This can be used for any other app too like FileMaker Pro, Safari, or any other app that you need. Keep in mind to enclose and paths or file names in quotes if there are any spaces within the path.

To make it less painful, you can also turn that terminal command into an Automator script as shown below or just download the Spawn FM.app Automator script.

SpawnFM

 


FileMaker Scripting & Calcs. Now in Color!