MBS Xojo Plugins, version 21.2pr8


New in this prerelease of the 21.2 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from Dropbox.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 11.2pr8


New in this prerelease of version 11.2 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in Dropbox folder or ask for being added to the dropbox shared folder.

Smooth scrolling list control with ContainerControls


Recently I implemented NSCollectionViewControlMBS control for Xojo to have a grid of items based on container controls. But a few days ago we had the need for having just a few containers to scroll on a window in Xojo. You may start to implement this in Xojo with a scrollbar and then move in the ValueChanged the containers up/down as needed. Quickly you may realize you need a wrapping container to clip the scrolling ones properly. But if you loop over containers and change their Top property to move them around, you may quickly see the scrolling not be smooth. We needed something better.

Since macOS comes with a NSScrollView class, I wanted to use that to push the job of scrolling and redrawing to the OS itself. So we have a Xojo managed inner and outer ContainerControl and slide our NSScrollViewMBS object between. We put all item containers on the inner ContainerControl, so Xojo may not know about the scrolling and just sees a big container in a smaller one. We configure the scroll view with a vertical scrollbar, some bezel around and a reasonable page scroll value.

When we try this setup, we can scroll smoothly and with mouse wheel support. We get the elastic scrolling with bouncing on the ends (can be disabled). This is fantastic and very smooth.

You may ask about Windows and Linux. Well, this may also be doable, but then with a regular Scrollbar itself. It may be tricky to get the redraw stuff smooth and avoid flicker. But well, I made an example for that, too. Tested on Windows and seems to work mostly with scrollbar controls. Since we only move the inner container up and down and let the container do clipping, it seems to work well with not much flicker.

And once I had that, I merged the two examples into one. Please try it soon as part of the examples coming with MBS Xojo Plugins in version 21.2pr7 or later. If you have feedback and improvements, feel free to send them back to us, so we can merge your changes into our example.

Improving our OCR functions for FileMaker Server


When we made our OCR functions back in September 2012, we designed them without reference numbers, so you can only have one current OCR job. Since FileMaker Pro always runs one script at a time (others are waiting), this is not a problem. But what happens on a server?

On a FileMaker server scripts may run in parallel. For a lot of customers this is no problem when occasionally a script runs, which may use OCR. But our active power users tend to do more and run scripts in parallel on multiple CPU cores. And there the mess starts with one script clearing the results of the other one since we hold the OCR state in a few global variables. You can mitigate this yourself with our Mutex functions, which allow you to have a script wait for another script to finish accessing a shared resource. While intended for our SharedMemory functions to synchronize memory access, it works fine to control access to OCR functions, too.

To fix the issue, we move to using per thread variables for our version 11.2 of the plugin. That means you can now have independent OCR setups on a FileMaker Server. Since FileMaker Server uses different threads to run scripts in parallel, you may have each script basically do the initialization, use OCR and do cleanup. If one script runs on first thread and initializes and later another script on second thread tries to access it, it may not see the initialization. You may detect this state by OCR.IsInitialized function. (more)

MBS Xojo Plugins, version 21.2pr7


New in this prerelease of the 21.2 plugins:
  • Added ContainerControl List example.
  • Updated PortAudio to version 19.7.0
  • Fixed problems in WindowsQOSMBS class.
  • Updated DNS functions for Windows.
  • Updated DLL linking for Windows to direct link functions requiring Windows 7.
  • Added newer constructor to NSKeyedArchiverMBS class to allow secure coding.
  • Added Archive and Unarchive methods to CKRecordMBS class.
  • Fixed issue with CloudKit events for CKFetchRecordZoneChangesOperationMBS and other classes.
  • Updated LibJPEG-Turbo to version 2.1.0.
  • Added explicit destructors for lots of CloudKit classes to explicit cleanup event handlers.
  • Added AVCaptureMetadataOutputMBS class for iOS.
  • Added constants to AVFoundationMBS class.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from Dropbox.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 11.2pr7


New in this prerelease of version 11.2 of the MBS FileMaker Plugin:
  • Added SystemInfo.LinuxSystemInfo function.
  • Changed OCR functions to separate different threads on server better.
  • Updated DNS functions for Windows.
  • Updated DLL linking for Windows to direct link functions requiring Windows 7. Plugin works on Windows Server 2008r2 or newer, too.
  • Changed trace output for audit to show field name audited.
  • Fixed problem on Windows with AVRecorder.AddPreviewWithControl and AVRecorder.AddPreviewToWindow not using the FileMaker window, but a separate one.
  • Fixed problem with XML.ExtractText and XML.GetPathValue not seeing all text if there are XML nodes within a text block.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in Dropbox folder or ask for being added to the dropbox shared folder.

Bitsundso Download


For everyone watching regularly the Bitsundso Plus stream, we got a nice utility app (made in my spare time) to download the current episode as video:



You can download current version here: BitsundsoDownload.dmg

You need to specify the ID and password for the login. Than you specify where the ffmpeg command line tool is and where to store the video file. By default it will be put on desktop. Our tool just performs a login on Bitsundso website, gets the video stream URL, picks the 720p stream and downloads it by running ffmpeg. It shows you progress and opens video file on the end. Settings are saved for next run, so you can just run it every week, when you got the push for the new episode.
We have it in use for years now. With this update Apple Silicon is included and we made adjustments for Big Sur. Great for offline watching.

Have fun!

Linux System Info


For our MBS FileMaker Plugin we have the first linux only function: SystemInfo.LinuxSystemInfo.

This function provides some system information for Linux and returns it as a JSON block.

{
"UpTime": 708,
"Loads": [0.023873, 0.048828, 0.067382],
"TotalRAM": 4112195584,
"FreeRAM": 1589587968,
"SharedRAM": 1622016,
"BufferRAM": 20881408,
"TotalSwap": 4111462400,
"FreeSwap": 4111462400,
"Processes": 1010,
"TotalHigh": 0,
"FreeHigh": 0,
"MemoryUnit": 1,
"ConfiguredProcessors": 4,
"AvailableProcessors": 4,
"TotalPhysicalPages": 1003954,
"AvailablePhysicalPages": 388083
}

You may query such a block regularly and do your own decisions based on the numbers, e.g. only do something on the server if load counts are small. Or you may check how much memory is available on the computer. (more)

MBS Xojo Plugins, version 21.2pr6


New in this prerelease of the 21.2 plugins:
  • Updated DynaPDF to version 4.0.52.146.
  • Fixed a problem with TrueItem() function in FileListMBS not working right for alias files.
  • Fixed ShellMBS and WindowsProcessMBS classes for Windows to allow PowerShell.exe to run.
  • Added SkipParagraphs parameter for StyledText.RTFDataMBS to speed up conversion.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from Dropbox.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 11.2pr6


New in this prerelease of version 11.2 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in Dropbox folder or ask for being added to the dropbox shared folder.

RFID reader for use with FileMaker


A client got a RFID reader, which can send a data packet through the local network, so you can receive them in FileMaker with out Socket functions.

The Ethernet MifareĀ® RFID Reader (ER750/ER755) has been tried by us and works.

You use the little configuration app on Windows to tell it which IP and port to connect to. Our normal TCP Socket example coming with our MBS FileMaker Plugin can do the receiving and show you the data. As text encoding use Hex since you get binary data. The first 4 characters are timestamp, package type and data length followed with up to 16 bytes of card UID. And since we need only that UID, we cut it from the data block with Middle($text, 13, 32). In hex all bytes take two characters. We get the UID as hex string and can store it in a database field for later comparison.

If you have trouble getting a connection, please make sure the Firewall lets the connection coming in. Beside a FileMaker Pro waiting for connection, you could of course use a little app or script on a computer to accept it and trigger whatever connection. For example a Xojo app using our MBS Xojo FMAPI Plugin could listen with a ServerSocket in Xojo, take the request and then use data API to create a record in FileMaker or perform a query to find the record for the UID. This may even run on a little Raspberry Pi computer and if the card is accepted put power on a PIN to trigger a door opener.

Please do not hesitate to contact us with your questions.

One month till dotfmp 2021


Did you sign up for FileMaker Conference dotfmp.berlin 2021?

This conference is organized by Egbert Friedrich and takes place from 3rd to 5th June 2021 in Berlin, Germany.
Since this year the meeting will be virtual again and in English, FileMaker developers from all over the world can join live from home.

Who
dotfmp is an effort of various leading European FileMaker Developers. It is meant to bring all kinds of higher level developers together to share knowledge, educate and challenge each other.
When
dotfmp starts at the 2nd June 2021 in the later afternoon with a relaxed "Beer and Sausages" in the virtual beer garden. The session days itself last from 3rd until 5th June with various socializing events in the evenings.
What
dotfmp is a 3 Day-Unconference, Meetup, Hangout or Barcamp. It is an informal and self-organized effort to meet on a personal base.
Where
This year it is virtual, so you can join from your home.
Why
We feel there are far too few possibilities to talk to, learn from, and hangout with fellow developers in a relaxed and informal environment. And we'd like to share work and get feedback from people chewing on similar challenges.


If you like to join the conference and present something, please register soon. A donation to help on the equipment cost is also welcome.
See you there!

xDev Magazine 19.3


The May/June (19.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

More ARM by Marc Zeedar
Xojo's last update in 2020 was impressive, but its ARM support was missing a few elements. Thankfully, 2021R1 has fixed those flaws. Marc updates his benchmarks.

A Programming Black Hole by Markus Winter
Did you know that Xojo has a problem with basic math? Neither did Markus, until he fell down a programming black hole that led him to obscure 32-bit/64-bit oddities.

FileMaker-Like Checkboxes by Vince Du Beau
Vince wanted checkboxes in Xojo like he was used to having in Filemakerā€”so he wrote his own class to add them.

Holy Cryptography, Batman! by Eugene Dakin
If you're curious about cryptography, here's low-key introduction as Eugene starts a new series of articles beginning with the ancient Caesar Cipher.

Lost in the Woods by Markus Winter
Markus takes a break from his MapKit series to explore... mapping using Xojo's new MapLocation feature. How does it work?

Plus: Xojo 2021R1 new features, App Wrapper review, new PDF drawing, and much more!

The Xojo store is on sale!


Xojo Inc. just announced a sale for their web shop:

Get 20% off all Xojo licenses Today through Friday!

Plus take 20% everything in the Addons Store!

xojo.com/store


This sale includes a few MBS Plugin licenses in the add-on section of the Xojo store. If you like to order directly from us, we may offer the same discount for those new licenses.


MBS FileMaker Plugin, version 11.2pr5


New in this prerelease of version 11.2 of the MBS FileMaker Plugin:
  • Added SQL.ConvertDateTimeFromSQL and SQL.ConvertDateTimeToSQL functions.
  • Added Process.List function for macOS and Windows.
  • Changed search box for Script Workspace to consume double clicks to avoid resizing window.
  • Fixed Archive functions to do AES256 encryption on Windows.
  • Updated Linux 64-bit build machine to Ubuntu 18.04. Plugin still compatible to Ubuntu 16 and CentOS 7.7.
  • Changed Trace function to create log file, which is readable by other applications like a good text editor.
  • Fixed problem of Window functions on Windows not finding them.
  • Fixed WebView.SetFocus for iOS.
  • Changed FM.InsertRecordCSV and FM.InsertRecordTSV to recognize backslash escapes to have returns and tabs escaped in text.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in Dropbox folder or ask for being added to the dropbox shared folder.

MBS Xojo Plugins, version 21.2pr5


New in this prerelease of the 21.2 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/ or from Dropbox.
Or ask us to be added to our shared Dropbox folder.

Archives

May 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