Executing linux shared libraries

The linux shared library system allows a shared library to have an entry point for running as normal application. We can use that to print version information on the terminal if you run our plugin shared libraries on Linux:

cs@ubuntu10-32:~/Desktop/MeinProgramm Libs$ ./MBS_SQL_Plugin_18645.so
MBS Plugin, version 15.1, built May 30 2015

So if you execute the .so library files in future, they should tell you the version number.

PS: For Mac and Windows you see details in Info dialog already.

Check your email sending code

In the hotel the last days I used one of my business apps to send emails to clients. Now it happened that some emails didn't come through and later I got emails telling me I sent too much (transfer limit). But those emails didn't came from my hoster where I have also my mail server. It was the mail server from the hotel network provider! Now what was going on there and how did they get my mail?

So I checked my configuration there. I was using SMTPSecureSocket, with Secure = true, a port for SSL, the SSL smtp server. I also set connection type to TLS 1.2 and a certificate to use. The idea is of course that all data is encrypted and server certificate is verified against the local one to only trust this one. Trusting either any certificate will not help as anyone could fake it. Also trusting any certificate based on a common root certificate doesn't help much. We all carry root certificates on our computers from various governments and military organizations. So trusting them doesn't help me, as I don't want to trust a certificate they generate. So I really want to either login and send email over my provider or I want an error before the credentials are sent.

In my recent testing the SMTPSecureSocket doesn't do it. Even with the settings asking for secure connection and TLS 1.2, I can see my email data in plain text if I watch network traffic using tcpdump utility in terminal. But I can get it to work by using my MBS CURL Plugin. When the connection is properly encrypted, the hotel network does not route it through their smtp proxy which counts mail and checks them for spam.

For the next days I have something to do:
  • replace all uses of SMTPSecureSocket with my CURL Plugin
  • change all email account passwords to long random text strings.
  • use different accounts for sending/receiving, so if smtp is compromised, a hacker doesn't see incoming mail.
  • check with tcpdump and CURL log messages that data is encrypted.
I'm disappointed that the SMTPSecureSocket class does not encrypt my data. Also I'm disappointed and ashamed by myself as I trusted it and didn't check the traffic. There is still the possibility that it was working in older version of the IDE or I miss a little property setting.

What do you do for sending emails secure in your applications?

See also forum thread on this topic and the Feedback case 39516.

Xojo Developer meetings in Montreal (Canada) and Berlin (Germany)

We scheduled two more Xojo developer meetings for this and next week:

28th May 2015, 6:30pm at The Keg, 25 rue St-Paul est in Montreal.

4th June 2015, 7pm at Café Intimes (Boxhagener Str. 107, Berlin).

If you like to come, I appreciate if you email me, so I know how many seats we need. Especially if you like to learn what Xojo is and how you can use it. Learn from what others do with it.

Schedules for FileMaker

One often requested wish for our FileMaker plugin is a way to schedule script calls. So for the upcoming plugin version we got functions to scheduling. You can schedule:
  • Start a script
  • Executing some SQL.
  • Evaluating an expression.
for the schedule you can do that when
  • a wait time is over
  • a certain point in time is reached
  • a certain time of day is reached
  • the user is idle for some time
The whole system is very flexible. Each schedule you create provides an identifier which you can use late to query/modify the schedule and of course to cancel them.

The schedules to do SQL or evaluate can optionally also perform a script with the result being the script parameter. The reason is that some operations in SQL can't be done while a script is running and the database is open. But you can check the result in the script called after SQL performed.

Dock Meter Example

dockToday we learnt in a forum post on the Xojo forum that Sascha Schneppmueller uses our ChartDirector plugin for a CPU meter in the dock.

We knew our plugin can provide CPU statistics to get the CPU usage and ChartDirector can show with charts, meters and gauges all the data, but this is first time someone combines that. And all with a background picture in the chart for the round bevel.

The example will be included for everyone with next plugin prerelease. You can find the CDAngularMeterMBS class in the documentation. It provides the round meter. With setMeter you define how big the meter will be. The setScale method defines the scale of data, in our case from 0 to 100 with steps of 10. The line width is set to 3 for the major ticks and zero for minor and axis. Next a wall paper is added with the size of the chart, so it does not repeat. Finally the pointer is added with the current value and two colors to draw it. Before displaying the image, a mask is added to hide the outer parts of the image.

PS: Did you try ChartDirector 6 with PDF output?

Greetings from Canada

Now at the Conférence québécoise des développeurs FileMaker® 2015 in Montreal watching presentation about some database software ;-)

FileMaker DevCon Early Bird offer ends next week

The early bird offer ends next week, so be quick if you like to join the FileMaker Developer Conference in Las Vegas. Would be bad to decide too late and pay $500 more...

The Developer Conference is a great chance to meet over 1200 other FileMaker developers from all around the world. Not to forget that Las Vegas is a great place to visit!

Even if you are not so interested in casinos, you can take a car and drive outside the city to visit some desert like Red Rock Canyon. Or drive to Boulder and visit the Hoover Dam.

And did you know that if you sign up as a company with a group of 4 developers, the 4th ticket is free?

MBS will be present with a booth, so visit us there!

Local Xojo Meetings in the next months

As you may know I travel a lot this year and so we got a couple of upcoming Xojo developer meetings:
Ottawa Canada 21st May
Montreal Canada 28th May
Berlin Germany 4th June
Newcastle upon Tyne United Kingdom 16th June
Kiel Germany survey
Reykjavik Island survey
Las Vegas USA survey

If you want to join, please contact me, so I can put you on the list. Suggestions for meeting places or restaurants are welcome.

MBS FileMaker Plugin 5.1 for OS X/Windows

Nickenich, Germany - (May 19th, 2015) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 5.1 for Mac OS X or Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, Mac, and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 5.1 has been updated and now includes over 3100 different functions, and the versatile plugin has gained more new functions:

We added new plugin functions for markdown processing. Markdown is a markup language with plain text formatting syntax designed to be converted to HTML. Using our plugin you can process markdown text and create HTML.

Our new Dictionary commands allows you to pack various parameter for a script call in a dictionary. You pass this dictionary to the called script and there extract the variables with just one MBS call. This preserves data types for all transferred variables like containers.

The MBS Plugin offers for some time now various functions for the clipboard. Now in this version are functions to put file paths on the clipboard and to query them. For example an user can copy files in Finder or Explorer and run a script to import those files into the database.

Our ListDialog functions got a new grouping feature. And you can fill the dialog now with a SQL statement.

The menu functions now allow you to specify font details for menu entries. You can set font, color, size, italic, bold or underline. To create menu you can now use a text definition for our quick menu function.

If you know SQL, you can use our FM.InsertRecordQuery function to easily copy records from one table to other table. An SQL query can query data from various tables and insert the result in another table. With the FM.InsertRecord function you can now add a record to a table with one function call. And the new FM.SQL functions allow you to query values from a SQL query result with native data types.

For DynaPDF we got new function to query fonts in PDF document and fonts on your local computer. For your PDF documents you can now define print settings, e.g. define that your document should be printed duplex. In addition you can edit templates and set fonts for form fields.

Finally we got new functions for environment variables, mounting network volumes, password encryption for zip archives, a timeout for socket connections and paper options for Twain scanning.

More details in the release notes. Please take the time to check our 300 example databases and check where you can use our plugin features in your solutions.

MBS Releases the MBS Xojo / Real Studio plug-ins in version 15.1

NICKENICH, Germany (May 19th, 2015) -- Monkeybread Software releases version 15.1 of the MBS plug-in for Xojo and Real Studio.

The MBS plug-in comprises a collection of several plug-in parts which extend the Xojo (Real Studio) development environment with 2,100 classes featuring over 55,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console.

Some of the highlights on the 15.1 update:

We added a new plugin for markdown processing. Markdown is a markup language with plain text formatting syntax designed to be converted to HTML. Using our plugin you can process markdown text and create HTML on the fly.

For this release we updated ChartDirector to current version 6. Beside some useful tweaks for various charts like glares, round edges and extra colors, this new release adds PDF output. You can now render a chart as a PDF file with vector graphics. For some complex charts we can fall back to a picture embedded in a PDF file.

For the Map, HashMap and Set classes in our plugin, you can now switch between case sensitive and case insensitive string comparison. Those specialized classes act like a dictionary, but can provide better performance by avoiding variants.

Our plugins include various classes for CoreGraphics, the graphics framework on OS X. Improvements have been made to CGPathMBS class with a new helper class CGPathElementMBS so you can inspect a path content. The CoreGraphics display class got a new property to check the refresh rate of the screen.

For Windows graphics, we got additional methods in the WindowsBitmapMBS module. Here you can find functions to convert between HBITMAP and HDIB as well as Xojo pictures. Related to this are new methods on our GraphicsMagick and ImageMagick image classes to get a HBITMAP. This is useful for declares to Windows APIs and passing images.

The HTMLViewer in Xojo can have various platform specific backends. For the Mac part, we added support to WebUIDelegateMBS for multiple selection in file open dialogs. For Internet Explorer on Windows, we added a new way to load HTML from memory and a function to check the reference count. When using Chromium instead we can also check reference count and adjust.

For OS X we improved our QCView classes and added a full functional control for showing Quartz Compositions. The repository class helps you locate compositions.

Our SQL Plugin got new functions to receive notifications for postgre SQL databases. We also got a Trace event for our SQLDatabaseMBS class to better log what is happening. For MySQL we can now repeat requests in case of a dead lock.

In this release we updated ChartDirector to version 6.0, DynaPDF to and LCMS to 2.7. While Xojo Inc. announced 64-bit support for upcoming Xojo versions, this plugin version does not yet support 64-bit targets.

See release notes for a complete list of changes.

Dash help archives updated

Just updated the archives for the Dash application. Does the auto update work for you?

So here you can click to launch Dash and install our plugin help:
MBS Xojo Plugin and MBS FileMaker Plugin

You can download the archives manually on our website: FileMaker and Xojo (Real Studio).
Feedback is welcome.

xDev Magazine Issue 13.3

The May/June 2015 (13.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
  • The Xojo Future * by Marc Zeedar
    Geoff Perlman's keynote address at XDC is like the Xojo State of the Union -- it sets the tone for the year and gives us a vision of the future. While we all want our new features now, the reality is that things take time. Here's what's coming and what you need to know to prepare yourself.
  • Too Much Fun! * by Marc Zeedar
    XDC isn't just endless tech lectures and hotel food -- it's adventure and experiences in a new city, connecting with internet colleagues, and fervent debates about our favorite development tool. This year was particularly enjoyable (there was even a murder during dinner), so Marc's included lots of pictures for those who couldn't be there.
  • Metrics for Personal Health * by JC Cruz
    As part of his ongoing personal health journal project, JC Cruz explains how to collect and analyze raw data into health metrics that actually make sense to the user.
Plus: custom operators, enterprise data modeling tools, Xojo 2015r2, Xojo games, tips, and much more.

MBS Xojo / Real Studio Plugins, version 15.1pr9

New in this prerelease of the 15.1 plugins:
  • ChartDirector 6 now registers if you have a current license key.
  • Fixed SetBoolCapability, SetUInt16Capability, SetInt32Capability and SetFloatCapability in TwainMBS class to actually pass right parameter.
Download: macsw.de/plugin. Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 5.1pr9

New in this prerelease of the 5.1 plugins:
  • Added DynaPDF.EditTemplate, DynaPDF.EditTemplate2 and .
  • Add SetFunctions to limit what functions the plugin allows you to call.
  • Changed DragDrop feature to accept promised file drops. This allows files to be dropped from Photos app to FileMaker.
  • Fixed bug in Path.NativePathToFilemakerPath.
  • Changed DynaPDF.Save to close current page if you forgot that.
  • Added Twain.SetPaper, Twain.SetPaperSize and Twain.GetPaper functions.
  • Some smaller fixes for FileMaker 14.
  • Fixed SyntaxColoring for comments for FileMaker 14.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Xojo Developer Meeting in Berlin Germany

As I come to Berlin in early June, I'd like to organize a Xojo developer meeting there.

There is a lot to tell about the recent XDC conference, upcoming 64-bit support and future Xojo releases. To learn if there is interest and what could be the best dates, I started a few surveys:

Survey Xojo Meeting in Berlin

Once we see interest for dates, we can schedule them and look for a location. If you have a recommendation for a restaurant or you can provide a meeting room, please contact me. Also if you are not a MBS customer, please email us, so we can contact you with details.

Put reports on letter paper with MBS FileMaker Plugin and DynaPDF

Using MBS FileMaker Plugin and our DynaPDF functions, you can process a report generated by FileMaker and put a letter paper behind each page. Our example database (in next prerelease) shows you how to do this.

You can use two PDFs for letter paper, one for first page and second one for other pages. The letter paper PDFs can be stored in container fields or files on disk. You can have either one PDF for both pages or two PDFs, one for each page. Your script can even dynamically switch for each report to use different PDFs depending on the company branch, customer language or other criteria.

The only important thing is to have the report draw no background in the PDF which would hide the underlaying letter paper content. Of course we could add more plugin functions to remove unwanted background from a PDF for such a processing.

(The watermark goes away if you purchase a license of the DynaPDF Pro library and our plugin.)

FileMaker Drag & Drop from Photos app

Just a quick note: We changed the MBS FIleMaker Plugin's Drag & Drop features to accept promised file drops. This allows you to receive picture file drops from the new Photos app from Apple. Normally FileMaker will not accept them, but you can now create a drop area using the plugin and process them. Enjoy!

FileMaker 14 Runtimes

FileMaker 14Details about FileMaker 14 are coming out and there is one big problem for a lot of users here. Runtimes are now listed as deprecated.

"APIs, technologies, or features to be deprecated
As FileMaker Pro evolves, the list of APIs and technologies it supports may change. FileMaker recommends that you migrate your solution to use other APIs, technologies, or alternative features of the product, because the deprecated features may be deleted from this or a future version of the product.

  • FileMaker Pro runtime
  • Support for OS X 10.9 Mavericks
  • Support for 32-bit FileMaker Pro"
see help.filemaker.com/app/answers/detail/a_id/14502

It is very amazing that just after first release of a 64-bit version, they mark 32-bit as deprecated. Could easily be that FileMaker 15 ships 64-bit only!

Why do we care about runtimes?
  • Runtime can be used to make free demo copies of solutions for people to test and evaluate.
  • Solutions for single users which cost much less than a FileMaker Pro license.
  • Kiosk demos or self running demos of solution.
  • All the catalogs on DVD for giving away for free.
  • Small business solutions which normally start very small with a runtime and later go to Pro/Server when business grows.
If FileMaker Inc. really cancels the runtimes, a lot of FileMaker developers can no longer stay in business as they can't migrate everyone to FM Pro. Not to forget that FileMaker just raised a few prices on their price list.

There can be a hope that they offer something like FileMaker Go for Mac and Windows to fill the gap. So FileMaker Go for desktop with a database file and you have more or less the runtime back.

MBS Xojo / Real Studio Plugins, version 15.1pr8

New in this prerelease of the 15.1 plugins:
  • Added XLBookMBS.Load2 functions to detect format and load file.
  • Fixed problem with MDItemMBS constructor.
  • Updated ChartDirector to 6.0 release candidate (registration not yet possible).
  • Fixed CTParagraphStyle.FirstLineHeadIndent property.
Download: macsw.de/plugin. Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 5.1pr8

New in this prerelease of the 5.1 plugins:
  • Added MenuItem.GetRequireCommand, MenuItem.GetRequireControl, MenuItem.GetRequireOption, MenuItem.GetRequireShift, MenuItem.SetRequireCommand, MenuItem.SetRequireControl, MenuItem.SetRequireOption and MenuItem.SetRequireShift.
  • Added Menu.DefineQuickMenu.
  • Added MenuItem.GetBold, MenuItem.GetFontName, MenuItem.GetFontSize, MenuItem.GetItalic, MenuItem.GetUnderline, MenuItem.SetBold, MenuItem.SetFontName, MenuItem.SetFontSize, MenuItem.SetItalic and MenuItem.SetUnderline.
  • Added Files.Mount and Files.Unmount functions.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

ChartDirector 6 PDF example

While working on ChartDirector 6 Plugin, we got this sample code for you:
// The data for the bar chart dim data(-1) as double = array(85.0, 156, 179.5, 211, 123) // The labels for the bar chart dim labels(-1) as string = array("Mon", "Tue", "Wed", "Thu", "Fri") // Create a XYChart object of size 250 x 250 pixels dim c as new CDXYChartMBS(250, 250) // Set the plotarea at (30, 20) and of size 200 x 200 pixels call c.setPlotArea(30, 20, 200, 200) // Add a bar chart layer using the given data call c.addBarLayer(data) // Set the labels on the x axis. call c.xAxis.setLabels labels Backdrop = c.makeChartPicture // Create PDF and write to disk dim PDFData as string = c.makeChart(c.kPDF) if PDFData.lenb > 0 then dim PDFFile as FolderItem = SpecialFolder.Desktop.Child("simplebar with pdf.pdf") dim PDFStream as BinaryStream = BinaryStream.Create(PDFFile, true) if PDFStream <> nil then PDFStream.Write PDFData PDFStream.Close pdffile.Launch(true) end if end if
As you see the only change you may need in your application is to request the chart as PDF. The MakeChart function takes a new constant kPDF for the new output type PDF.
You can download and check the PDF here: simplebarwithpdf.pdf
(this PDF was generated on Mac with 64-bit Xojo alpha and ChartDirector 6 final candidate)

FileMaker 14

FileMaker 14Just today FileMaker 14 was released. The big change for me is 64-bit. Our plugin has been ready for 64-bit for a long time, as the Server used 64-bit before. Now it's 64-bit for everyone and you should make sure you have current plugins for best results.

If you use our SQL, Twain, LibXL, DynaPDF and other functions relaying on library files, be sure to have those in 64-bit, too. If you don't have TAPI driver in 64-bit, you should keep your solution running as 32-bit.

For the syntax coloring in FileMaker, the MBS Plugin can still overwrite FileMaker's colors and provide much more flexible rules for colors. Like red color if a called script is missing or checking calculation syntax to highlight wrong brackets.

With MBS FileMaker Plugin 5.0, everything should work already as we tested a lot with beta versions. With 5.1 we will probably fix a few minor things we'll encounter in the next days.
If you like to try, use our 5.1pr7 release: Prerelease Download

Enjoy the new version, test it and please email us if you see an issue.

More menu commands for FileMaker

For building a menu in FileMaker we got new plugin commands and options.

You can now use diamond and bullet as special setting for MenuItem.SetState function. This will provide on Mac the bullet and diamond images instead of a checkmark.

If you only want to show menu entries if modifier keys are pressed down like shift, command, option/alt or control, we got new functions for this:
MenuItem.SetRequireCommand, MenuItem.SetRequireControl, MenuItem.SetRequireOption and MenuItem.SetRequireShift.

You can also now set on Mac the font style with name, size and bold/italic/underline:
MenuItem.SetBold, MenuItem.SetFontName, MenuItem.SetFontSize, MenuItem.SetItalic and MenuItem.SetUnderline

Finally we got recently an MenuItem.ApplyColor function to set the color of the text:

Still on the wish list is to get more features on Windows, but Microsoft doesn't make this easy. We'll see.

Tip of the day: Edit IPTC data in JPEG file with CGImageSource/CGImageDestination

A client asked for editing IPTC entries in an image and add copyright notice. The CoreGraphics Image Source/Destination classes allow to read/write EXIF, IPTC, GPS, PNG, TIFF, PNG and JFIF properties. We use it here to load the image, add entries for IPTC with keys credit, copyright notice and contact and write the file to disk:

dim InputFile as FolderItem = SpecialFolder.Desktop.Child("test.jpg") dim OutputFile as FolderItem = SpecialFolder.Desktop.Child("output.jpg") dim inputSource as CGImageSourceMBS = CGImageSourceMBS.CreateWithFile(InputFile) dim outputDest as CGImageDestinationMBS = CGImageDestinationMBS.CreateWithFile(OutputFile, "public.jpeg") dim ImageProperties as Dictionary = inputSource.PropertiesAtIndex(0) dim GlobalProperties as Dictionary = inputSource.Properties dim IPTC as Dictionary = ImageProperties.Lookup(CGImageSourceMBS.kCGImagePropertyIPTCDictionary, nil) if IPTC = nil then // create if missing IPTC = new Dictionary ImageProperties.Value(CGImageSourceMBS.kCGImagePropertyIPTCDictionary) = IPTC end if IPTC.Value(CGImageSourceMBS.kCGImagePropertyIPTCCredit) = "Credit Test" IPTC.Value(CGImageSourceMBS.kCGImagePropertyIPTCCopyrightNotice) = "Copyright Test" IPTC.Value(CGImageSourceMBS.kCGImagePropertyIPTCContact) = "Contact Test" outputDest.SetProperties(GlobalProperties) outputDest.AddImageFromSource(inputSource, 0, ImageProperties) call outputDest.Finalize
For cross platform EXIF/IPTC/XMP changes, you can in general try our XMP plugin.
Please note that in CGImageDestination/Source and XMP Plugin most keys are mapped. So setting Credit in IPTC, also sets the corresponding field in XMP.

FileMaker DevCon in 10 weeks

The early bird offer ends in a two weeks, so be quick if you like to join the FileMaker Developer Conference in Las Vegas. Would be bad to decide too late and pay $500 more...

The Developer Conference is a great chance to meet over 1200 other FileMaker developers from all around the world. Not to forget that Las Vegas is a great place to visit!

Even if you are not so interested in casinos, you can take a car and drive outside the city to visit some desert like Red Rock Canyon. Or drive to Boulder and visit the Hoover Dam.

And did you know that if you sign up as a company with a group of 4 developers, the 4th ticket is free?

MBS will be present with a booth, so visit us there!

Tip of the day: MoviePlayer.rate

Today a client asked how to set MoviePlayer's rate. This property was there years ago in Real Studio, but is missing in current Xojo version. The following code in a module extends MoviePlayer class with a new rate property. We even included some switches for older Real Studio versions, so you can use similar code for older and newer IDE versions:

Sub RateMBS(extends m as MoviePlayer, assigns r as Double) #if TargetMacOS then #if RBVersion >= 2014.0 then // newer AVFoundation dim p as AVPlayerMBS = m.AVPlayerMBS p.rate = r #else // old QuickTime m.Rate = r #endif #elseif TargetWin32 then #if RBVersion < 2014.0 then // older m.Rate = r Return #endif // Windows Media Player dim o as OLEObject = m.MovieController MsgBox o.TypeName o.Player.settings.rate = r #endif End Sub

Full Time Xojo Developer Position in Canada

Paul Levine from Rage Software is looking for a developer to join his company:

We are looking for a full time Xojo developer to join our team. We develop a drag and drop, WYSIWYG web site builder with Xojo.

We would prefer a developer located in Canada but will consider all applicants.

Applicants should have the following skills;

  • 2+ years experience developing with Xojo or similar language
  • Experience developing for OS X and Windows
  • Experience working in teams
  • Experience with HTML/CSS and Javascript would be a huge plus
Applicants would work remotely.

Please message me here if you are interested and I can provide more details.

See forum posting and company website.

FileMaker Developer Meeting in Saarbrücken, Germany

Just arrived here and looking forward to the FileMaker developer meeting tonight.

Date: 7th May 2015
Time: 7 pm
Location: Ligatura Coworkers Saarbrücken, Quartier Eurobahnhof, Europaallee 22 27, 66113 Saarbrücken

Every FileMaker developer in the area is invited to come.
see website for details and contact information:

MBS FileMaker Calendar Functions work on Server

Just today I verified again that our calendar functions do work on a server. But you need to install the server to run with a local user account, because the server will see the calendars of this account only. Normally you would install FM Server with the user account fmserver, but that one has no calendars!

Once server runs with normal user account, it can access calendars. Enjoy!

MBS Xojo / Real Studio Plugins, version 15.1pr7

New in this prerelease of the 15.1 plugins:
  • Fixed bug in CTTextTabMBS.Create.
  • Fixed crash with calling NSAppearanceMBS.setCurrentAppearance.
  • Changed Cocoa plugins for 32-bit to once again build for 10.6 and newer (instead of 10.7).
  • Added ReferenceCount, Release and Retain to ChromiumBrowserMBS class.
  • Added IEReferenceCount function for HTMLViewer to check for leaks.
  • Added CGPathElementMBS class and CGPathMBS.Elements function.
  • Added PassSignerMBS module to sign passes for iOS from a Xojo made Mac app.
  • Added string related functions to NSCharacterSetMBS class.
  • Fixed bugs in CTRunMBS array functions.
  • Added OpenSSLMBS.PKCS7Sign function.
  • Added GetFiles and SetFiles to WindowsClipboardMBS class.
  • Added PackbitsMBS module.
  • Added OpenSSLExceptionMBS class.
  • For ChartDirector 6 we will have no PPC support.
  • For ChartDirector most axis getters are now properties and cache the object.
  • Added IORegistryMBS.PerformanceStatistics function.
  • Fixed a bug with Twain plugin which froze for a client.
Download: macsw.de/plugin. Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 5.1pr7

New in this prerelease of the 5.1 plugins:
  • Improved error message for Container.Export function.
  • Updated libSQL to version 4.1.5.
  • Updated DynaPDF to version
  • Added MenuItem.ApplyColor function to color menu entries on Mac.
  • Added Menu.FindItemWithTag and Menu.FindItemWithTitle functions.
  • Added FM.InsertRecordQuery function.
  • Added parameter for RichText.ReplaceText to replace all.
  • Added FM.InsertRecord function.
  • Made SerialPort.SetDataAvailableHandler work correctly.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Xojo Meetings in Canada

As you may know I'm coming to Canada later this month for the FileMaker Conference in Montreal.
How about some Xojo meetings?
There is a lot to tell about the recent XDC conference, upcoming 64-bit support and future Xojo releases.
To learn if there is interest and what could be the best dates, I started a few surveys:

Xojo Developer Meeting in Montreal
Xojo Developer Meeting in Ottawa
Xojo Developer Meeting in Toronto

If you could make it to several places, please sign for all. I may not be able to do all, but would be happy to meet a few developers. Recently at the XDC conference I met some people from Toronto and I consider to drive there.
Once we see interest for dates, we can schedule them and look for a location. If you have a recommendation for a restaurant or you can provide a meeting room, please contact me.

.fmp[x]Berlin 2015 starts next month

We are less than 30 days away from the upcoming dotfmp conference where you can meet me:

Berlin, Germany - 6 February 2015
We are pleased to announce the 3rd edition of THE pan-European Unconference for FileMaker Developer, .fmp[x]Berlin 2015.

Taking place from 4 − 6 June 2015 in the Hotel Upstalsboom Berlin, some of the finest brains of the European Software-Developer community will be meeting on a personal basis to exchange ideas and share knowledge.

This high-level content, all about the latest versions of the FileMaker Platform, will be accompanied by some special features that are not available elsewhere!

In terms of award-giving, unconference regulars will be pleased to know that the omnipresent 'dotfmp award for the longest journey’ will be better than ever. This not-to-be-taken-too-seriously event will continue to offer prizes and merriment. It will be joined by the "dotfmp Certification Exam for FileMaker Pro 2”, a nostalgic trip harking back to the beginning of software development. And, last but not least, the "Developer Passport” will honour the efforts of the most-dedicated developers in a very different way!

All this is framed by a very special supporting program. Starting on Wednesday 3rd, there will be the chance to hangout in one of the oldest beer gardens in Berlin. Delegates will be able to visit specialty restaurants on Friday 5th and to enjoy a Thuringian Barbecue on Saturday 6th. Closing, on Sunday, 7th is left free for sight-seeing to the many famous sights places and sights in Berlin.

.fmp[x]Berlin has been growing by 25% each year and has become an inherent part of the yearly schedule of the most important developers across the world. As such, this is the first time we have to limit the seats to a maximum of 80 attendees. In order to secure a place at this high-level event in one of the most exciting cities, register on the website now!

For more Information visit: www.dotfmp.com

Raspberry Pi support in Xojo

In the keynote Xojo Inc. announced upcoming support for Raspberry Pi support. That's great to hear and seems like a good idea after they got LLVM to build for ARM CPUs for iOS support and already have a Linux target. They have of course to rebuild their framework code targeting ARM Linux and add to the IDE functions to have a new checkbox for Linux on ARM. The framework itself should be an easy recompile.

On the plugins side, I really hope they just allow us to build plugins using the existing Plugin SDK for Linux. The source code is there for Linux on x86, so I'd assume same code in the framework would work on ARM. This way I could install a Linux copy here with cross compiler to ARM and rebuild all my plugins for it.

So once Linux ARM target is available and Xojo Inc. allows us to use an updated plugin SDK with a linux ARM cross compiler, I could let the computer spend a couple of hours to rebuild all my MBS Plugin classes for that.

We could use Rasppery Pis with Xojo to host our web apps or run console apps to do things in background. They could use MBS Plugins for charts, utilities, PDF handling, SQL connectivity, Picture effects and I/O, encryption and much more.

Colors for Menus in FileMaker

We got new command for menus in FileMaker to color the menu entries on OS X. This allows you to add color to menu entries.

Of course you can combine this with a custom font, underline, bold or italic text styles.

# create menu
Set Variable [$menu; Value:MBS("Menu.CreateMenu")]
# create menu items...
Set Variable [$item; Value:MBS("MenuItem.CreateMenuItem"; "Hello World")]
Set Variable [$r; Value:MBS("Menu.AddItem"; $menu; $item)]

Set Variable [$item; Value:MBS("MenuItem.CreateMenuItem"; "Red Color")]
Set Variable [$r; Value:MBS("MenuItem.ApplyColor"; $item; "#FF0000")]
Set Variable [$r; Value:MBS("Menu.AddItem"; $menu; $item)]

Set Variable [$item; Value:MBS("MenuItem.CreateMenuItem"; "Green Color")]
Set Variable [$r; Value:MBS("MenuItem.ApplyColor"; $item; "#00FF00")]
Set Variable [$r; Value:MBS("Menu.AddItem"; $menu; $item)]

Set Variable [$item; Value:MBS("MenuItem.CreateMenuItem"; "Blue Color")]
Set Variable [$r; Value:MBS("MenuItem.ApplyColor"; $item; "#0000FF")]
Set Variable [$r; Value:MBS("Menu.AddItem"; $menu; $item)]

Coming soon in the next plugin version...

Xojo 64-bit notes

First my plugins will increase in size a lot. About double the size due to new code for Mac Desktop, Mac Console, Windows and Linux plugin parts for 64-bit.

I did build everything as 64-bit within the last 24 hours. A few things had to be fixed so it compiles, but mostly I prepared this for the last two years. The IDE in version 2015r3a1 loads all my plugins and builds using them. It takes long if you have all the plugins installed, so I recommend to use only the once you need. Some things work:
  • MBSVersionString function reports plugin version.
  • LogoMBS returns our logo picture, so picture creation seems to work fine.
  • DynaPDF Plugin creates PDF already
  • SQL Plugin can connect to SQLite and do things.
So far it seems like an easy transition. Waiting for a supported 64-bit SDK, than recompiling everything and you guys can try it.

PS: I consider even with 64-bit to let the plugin not create strings over 2 GB. Not sure if Xojo will allow it, but it may not make much sense.


Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008