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

Easily Generate and Install a $57 Custom FileMaker Server SSL Certificate


4/8/2015
Hal Gumbert

Generating and getting a custom SSL Certificate for FileMaker Server is much more complicated than it should be. Last year, I personally spent much more time that it should have taken to get it to work. Unfortunately, FileMaker Inc doesn’t provide detailed instructions on how to  get through the process.

Last year, I was able to get a Comodo InstantSLL Certificate to work great, but it cost $100 for a year. That certificate is expiring next week, so the timing of this was perfect. Before creating these instructions, I tried to follow the instructions that Tim Dietrich provided to create a certificate with MediaTemple. Luckily, when I went to spend the $75 for the certificate, I found out that you cannot buy a cert from MediaTemple if you don’t use any of their other services. I would have bought two… They suggested that I go directly to GeoTrust, but that was even more expensive than the Comodo certificate.

This time, I Googled for 'GeoTrust QuickSSL Certificate' and saw on the first page of the results that NameCheap.com had the exact same certificate for $57. That’s about half off the Comodo certificate and about 25% off the MediaTemple certificate!

As an extra bonus, I recently moved the CampSoftware.com website from GoDaddy to NameCheap.com recently. Overtime I went to pay for new services or even renew a service, GoDaddy would up sell products I don’t need and the payment process was overly complicated. NameCheap.com’s main feature is to make the process easy and affordable. With GoDaddy, they charged their max rate every time, forcing me to look for coupons to get the price down to a reasonable level.

So, I took a slight chance and ordered the $57 NameCheap GeoTrust QuickSSL Premium Certificate and it worked perfectly!

Try out the following instructions and let me know if you run into any problems. There are some Mac specific instructions, but we’ll update this ASAP.

  • Buy the NameCheap GeoTrust QuickSSL Premium Certificate: http://j.mp/FileMakerServerSSLCert
  • Generate the request certificate on the FileMaker Server.
  • On Mac: sudo fmsadmin certificate create /CN=dagobah.campsoftware.com/C=US/O=CampSolutionsInc
  • Copy the contents of the FileMaker Server/CStore/serverRequest.pem file.
  • On Mac: Drag the serverRequest.pem file to TextEdit on and the copy the entire contents of the file.
  • In your NameCheap Panel, set up your certificate: https://manage.www.namecheap.com/myaccount/ssl-list.asp
  • Click 'Activate Now' for your 'QuickSSL Premium' certificate.
  • Select 'Other' for the Web Server Type
  • Paste the contents of the serverRequest.pem file that you copied earlier.
  • Click Next
  • Choose Email Address for the domain in which you can receive an email.
  • Click Next
  • Check the Admin Contact settings and make sure you can receive an email from the email address where the cert will be sent.
  • Click Submit Order
  • Check for the email to approve the certificate. Check your junk mail if you don’t find it.
  • Click the approve web link in the email.
  • Wait for the page to load and approve the certificate.
  • Wait for the certificate to be emailed to you. Check your junk mail if you don’t find it.
  • In the email, look for the Web Server Certificate and create a text file containing the text from and including '-----BEGIN CERTIFICATE——' to '-----BEGIN CERTIFICATE-----'. Save it as 'serverCustom.pem'.
  • Import the serverCustom.pem file.
  • On Mac: sudo fmsadmin certificate import

WARNING about FileMaker 13.0v9 Security Update


4/7/2015
Hal Gumbert

FileMaker released an important security update yesterday. However, you REALLY need to devise a plan to install the update.

The short story is DO NOT UPDATE FileMaker Pro or Go UNTIL you update FileMaker Server. If it's not done in the right order, you'll find yourself NOT ABLE TO CONNECT to your database.

This update changes the internal security certificate that is used to encrypt the data between FileMaker Pro & Go to the FileMaker Server.

Here are the detailed steps to update if you use FileMaker 13 and not FileMaker 12:

What that means is you CANNOT update FileMaker Pro or Go until the FileMaker Server is updated.

If your database is hosted by a hosting company, make SURE it's been updated to 13.0v9 before you update FileMaker Pro. If you update before the Server you won't be able to connect.

If you don't know what version the server is, you can use this in a calculation in FileMaker Pro: "Get ( HostApplicationVersion )"


Creating an App for your organization is easier that you think


3/16/2015
Hal Gumbert

Does your organization have an app?

Creating an app is easier than you might think. We use Xojo to create iPhone, iPad, iPod, Mac, Windows, Linux. For Android, we use the Android Developer Kit. Xojo cannot create Android apps yet, but they do have plans.

We created one of the first Xojo apps to be approved on the iOS app store, Reference for FileMaker. We have a couple of apps in development and just released our first Android app for our friends at Christian Camps & Conferences.

Camp is my middle name. Literally.

We've been helping out Christian Camps & Conferences for many years with their FileMaker database. I remember when Bob contacted us about helping out with FileMaker. Bob said he runs a camp and wanted to know about our experience creating software for camps. I explained that our name was CampSoftware, but it's named after my middle name "Camp" passed down from my Grandfather to my Father, to me, and to my Son. I said we've haven't worked with a camp yet, but we work with all types of businesses and we learn very quickly.

Retreat to New England

Christian Camps & Conferences is located in New England and has an amazing summer camp program and also a conference center for retreats. From their website: "Christian Camps and Conferences, Inc. is a non-profit foundation with the mission to foster vibrant Christian communities in awe-inspiring outdoor settings where young people are spiritually transformed through Christ-centered relationships."

Conference Center
Manage Menu

Android meet iPhone

Years passed as we've worked on several projects together. A few weeks ago, Bob contacted us about creating an Android app for his camp as they already had an iPhone app. So we took a look at their iPhone app and provided a ballpark estimate regarding the costs.

The Android app turned out to be really nice and Bob was pleased, which made us happy!

The app includes access to their web cams, registration, directions, and a countdown to the first day of each camp session. The web cams don't look like that right now as it just snowed 6 inches yesterday!


Android App
Manage Menu
Web Cams
Manage Menu

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