For DynaPDF we add new method to replace an image in a PDF:

With existing functions, you can query image information for all the images and export them to files. With the next plugin, you can use a new function in DynaPDF to replace each image with a new image. The display size and orientation is not changed, so your new image should match the size and aspect ratio.
With next plugin version, you can use the new function
DynaPDF.ReplaceImage in FileMaker or
DynaPDFMBS.ReplaceImage in Xojo. You can pass new picture as file on disk or with data in memory. The image can use it's own color space or be converted to one of the color spaces defined in the PDF or standard device colorspaces.
If you like to try, send me an email for an early preview copy.
Just a few days left to
register and get the early bird rate with $200 discount on regular price. Here a list of all dates for conferences:
2017-10-01 Until 1st October buy
XDC ticket for $799 and save $200.
2017-11-09 Join us for our
Xojo training day in London.
2017-11-10 Join us for our
Xojo conference day in London.
2017-12-05 Until 5th December buy tickets for
Munich Conference for 399 € and save 300 €
2018-02-15 Until 15th February
XDC ticket for $899 and save $100.
2018-03-05 Until 5th March buy tickets for
Munich Conference for 499 € and save 200 €
2018-04-25 On 25th April
XDC 2018 starts in Denver!
2018-06-05 Until 5th June buy tickets for
Munich Conference for 599 € and save 100 €
2018-09-05 Join us for our
English training day in Munich.
2018-09-06 Join us for our
European MBS Xojo Conference in Munich
2018-09-08 Join us for our
German training day in Munich.
As you see conference organizers need people to sign up early to make sure they have the required minimum of attendees.
e.g. for MBS European conference, we need to decide six months before the conference on whether we need all the reserved space or cancel some of it.

Nickenich, Germany (September 26th, 2017) -- Monkeybread Software releases version 17.4 of the MBS plug-in for Xojo.
The MBS plug-in comprises a collection of several plug-in parts which extend the Xojo (Real Studio) development environment with 2,300 classes featuring over 60,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console including 64-bit and ARM targets.
Some of the highlights on the 17.4 update:
For this release we reorganized a our plugins. We merged a few plugin parts, so we have now have 39 instead of 65 plugins. We removed a couple of plugins including QuickTime plugin and a few other deprecated plugin classes.
The new plugin comes with classes for
SoundFile handling, so you can read audio samples from various sound file formats. The new
LibTag plugin classes allow you to read metadata from various audio file formats.
For macOS 10.13 High Sierra, we added new Core ML classes to use machine learning files and for example classify pictures. We also updated Core Image filters and added new CoreImage barcode classes. For
WKWebViewControlMBS you can now take snapshots of the website.
If you like to use custom low level sockets, we added the
RawSocketMBS class for you, which can be used to send build custom socket classes to send various protocols in your own data packets including custom headers.
On macOS you can now use CGEventTap to monitor low level events. We added 64-bit MapKit framework, so you can decide between Google maps and Apple maps for your map views.
NSSpellCheckerMBS and
SFPasswordAssistantMBS classes are updated to run on 64-bit.
If you use Linux, please enjoy GTK+ 3 in Xojo 2017r2. Our plugins will dynamically load GTK library in version 2 or 3 depending on the Xojo version.
For Windows we added new picture methods to
WindowsClipboardMBS class to read/write DIB pictures. With DeleteTree and CopyTree methods on
RegistryKeyMBS you can much easier work on the windows registry. In Textarea you can now strike through text beside doing super and subscript.
We added new key down events
OverlayMBS class, echo property for
StdInMBS, memory usage functions to SQLite3MBS class and a 128bit mode for our
RegistrationEngineMBS class.
Finally we updated CURL Library to version 7.55.1, DynaPDF to 4.0.13.35, SQLAPI to 4.1.12, SQLite to 3.20.0 and LibXL to 3.8.1.
See
release notes for a complete list of changes.

The last days for a project in Xojo we had a different idea for prepared statements to avoid using wrong indices.
As you may know the MBS SQL Plugin allows you to use field names in the Bind statement to avoid messing up with indexes for named parameters. For this project the database access is without MBS Plugin, but with Xojo's built in database classes. So we had several queries to update 20+ fields in same tables and mixing up the indices for all the Bind() and BindType() calls and all those question marks.
So I had the idea to put all the field names in an array first, build SQL statement using that field and use the field array later to find the index in code. Take a look on this function:
(more)

New in this prerelease of the 17.4 plugins:
- Improved RawSocketMBS.CalcChecksum and added new example project.
- Updated to LibXL 3.8.1.
- Enabled XML for GraphicsMagick for Mac as it's needed for SVG.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

I just returned from a three day training in a big cooperation. One of them visited my training day at the Berlin conference and was so happy that they hired me for three days in their office
Well, if you like to get a Xojo training on site, let me know. We can arrange training days in our office, in your office or meet in a hotel nearby. Usually I prefer to get you a bit disconnected from your company so you can concentrate and not respond to email/phone while you are in the training.
Common topics include introduction to Xojo IDE, basic coding techniques, demonstration of various controls and framework classes. For example using XML, JSON, RegEx or sockets classes with example projects. For database access we usually write a contacts or image database to include adding records, retrieving them, use BLOBs and prepared statements. We can dig into advanced language features like threads, declares, delegates, exceptions, variants/auto data types and the debugger.
Usually the training starts with an introduction of the trainees where we collect topic wishes.
Beside on-site training, we do have regular group training days:
Previously we had trainings in London, Berlin, Munich, Zurich, Frankfurt and a few other places.
If you have a few people interested in your area, we could offer a group training day for your group or a public one.
Training can of course also include showing you plugin features and building little projects which you can use a prototypes for your own solutions, e.g. show you how a certain feature can be done which is the core of your next solution.

Have you read the blog post
The Short-Term Xojo Roadmap from Geoff Perlman, CEO of Xojo Inc.?
Looks like they feel sorry to change the priorities on a few projects. Xcode 9 requires them to use 64-bit debugger for iOS apps. So be aware not to install Xcode 9 too soon!
While they work with all engineers on 64-bit features, the Android, InterOps and the Xojo Library project type will be delayed.
Good thing is the work on the new/improved Windows framework makes progress and Geoff announced it in the blog post! There have been rumors about this and maybe it was mention before at conferences as one of the side projects they do. Details are to be seen. This could be anything from using layered drawing on Windows, embedding some .net controls, switching to .net framework for the GUI or even using Windows Presentation Foundation for this. FileMaker uses WPF as far as I know. I remember we talked about that some time ago and how plugins may be affected.
For the MBS Plugins, well, we have to see what Xojo Inc. delivers. It may be that all functions related to windows and controls on Windows will no longer work. If we still get a normal windows handle for the windows, some things may work. It may be a lot of work, to change plugins and declares, but getting rid of flickering, should be worth it!

New in this prerelease of the 17.4 plugins:
- Fixed bug with CURL's GetInfoCookieList function.
- Fixed plugin options for CURL to pass empty C string for empty Xojo string. This helps with OptionCookieFile = "" to use in memory cookie engine.
- Added StdInMBS.Echo property.
- Added RegistryKeyMBS.DeleteTree and RegistryKeyMBS.CopyTree functions.
- Added classes for CoreML.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
Have you seen the details on the Blueborne attack?
armis.com/blueborne/
Any device unless patched can simply be taken over via bluetooth by just being in range of a hacker!
If someone places a bot to hack all devices in range automatically in a subway station, they can get thousands of devices taken over and have a huge bot army.
This is one of the bugs, which renders all unpatched devices to be no longer used. So any Android and Windows without security patch installed, and iOS before version 10 should no longer be used. And for Android it's unlikely, that your phone has currently the September security patch installed, if it's available for your phone at all!
Another solution is to disable bluetooth on all devices.

While you can kill a
thread in Xojo, you may think twice before doing it.
The
kill command usually raises a
ThreadEndException on the thread which with normal exception handling exists all methods and returns to the run event, which on exit ends the threads. So with normal Xojo code this should often work fine.
Now things are different when one of my MT methods in the plugin run.
Kill command causes problems there including crashes and runtime assertions. In my MT methods the plugin will run a loop and yield time to other Xojo threads. The actual work happens on a preemptive thread in parallel. The plugin doing the loop has currently no way to know you called kill, so it will continue until the work is done on the preemptive thread and return with the result. But yielding time may cause the ThreadEndException to be processed. The thread can be released from memory, objects destroyed and that pulls the rug out from under the plugins feet. The plugin continues trying to get the work done and this causes major problems for some client.
The better way usually is to define a cancel flag on the thread class and set it to true, when thread should be considered killed. In the thread, you could regularly check the flag and exit code immediately when it's true. This way you can exit safely and do clean up which may not happen when using kill, e.g. delete temp files.
For the future, the
new thread class has no kill method.
Here a list of MBS Plugin functions with preemptive threading:
The session list is online with the first 26 sessions.
A few more will follow once they are ready:
This includes sessions about what is new Xojo in April including Android, Web Framework 2.0, Compiler changes and not yet released features. A few sessions talk about best practice like SQLite, project management, HTML5, REST APIs and object orientated programming. Interesting is always to learn from experience of other developers with their projects like the Baseball Team Stats application from Paul Lefebvre. As Xojo targets a lot of platforms, the sessions include all platforms from iOS and Android, Web and Desktop with Linux, macOS and Windows.
Just three weeks to
register and get the early bird rate: Save $200 when you register by October 1st.

The raffle for a free
Xojo Developer Magazine subscription ended.
What raffle?
Well, please read the last sentence in
blog post.
Congratulations on the winners: Lewis, Markus and Mattias.
As three people commented and I couldn't decide on which random number generator to use, I spontaneously decided to give each one a subscription!
Happy programmers day to everyone!

As you may know there is an open source project called
TextInputCanvas. It provides some better text input events to Xojo apps using custom text control like the
Formatted Text Control.
Recently Xojo 2017r2 was released which uses GTK in version 3.0 on Linux. Previous versions used GTK 2.
You can load a copy on my
plugin download page.
This plugin is build with my plugin build system, so it has MBS in the name and includes libraries for Mac, Windows and Linux including ARM, so you can use it in all projects. If you find a bug related to the GTK3 or 64-bit port, please tell me.
A speciality of MBS Plugins with GTK is, that we built plugins to link dynamically to GTK and use either GTK 2 or GTK 3 depending on the Xojo version. This should help to have just one set of plugins to work with Xojo 2013 up to 2017r2.

New in this prerelease of the 17.4 plugins:
- Updated CoreLocation, Contacts and FSEvents for future.
- Added more CoreImage Filter classes for the future.
- Added new CoreImage Barcode classes for the future.
- Changed Linux plugins to include build number in SONAME field so OS can distinguish different versions better.
- Updated DynaPDF to version 4.0.12.34.
- Updated NSSpellCheckerMBS class for 64-bit.
- Added more methods for UDPSockets to RAWSocketMBS class.
- Fixed crash with WindowsClipboardMBS and Xojo 2015, introduced in pr3.
- Changed CURL functions to explicit flush output files after Perform finished.
- Added CGEventTapMBS class to catch events low-level on macOS.
- Added CGEventMBS class.
- Updated SFPasswordAssistantMBS for 64-bit.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
Da ich diesen Monat nach Wolfsburg muss, würde ich gerne wieder mal einen Xojo Stammtisch organisieren:
Wer hat Interesse an einem Xojo Stammtisch im September in Braunschweig oder Wolfsburg?
Einfach gemütlich zusammen sitzen und über Xojo Neuigkeiten, Konferenzen und die täglichen Probleme bei der Softwareentwicklung unterhalten.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit Projekten. Einfach Computer mitbringen und was zeigen.
Wir treffen uns am 18. September in Braunschweig!

For browsing help files, the
Dash application is very useful on Mac and iOS.
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).
You can also add Xojo documentation itself to your dash set, see download in preferences dialog.
For FileMaker you find the docsets for v15 and v16 here:
FileMaker Dash Docsets
Feedback is welcome.
Just three weeks to
register and get the early bird rate:
Save $200 when you register by October 1st.
The Xojo Developer Conference is the best place for Xojo users to learn from the experts, network with other Xojo users from around the world and meet the Xojo engineers.
April 25 - 27, 2018
Magnolia Hotel
Denver, Colorado
With 20 speakers and 32 educational sessions, XDC is definitely an event you don’t want to miss! We'll have content for those who are just getting their feet wet, to topics for the most advanced Xojo developer, this conference promises to have something for everyone.
Register Now
Sessions will be announced soon, topics will include the following and more:
United testing, Design patterns, Debugging, Android, The compiler, Sqlite, iOS, Marketing apps, Web framework, Xojo + Aloe, Databases, Cross-platform, Windows, Linux and Best Practices.
What is XDC like?
Watch our highlights video to hear directly from attendees.
The Xojo Developer Conference
Education | Networking | Social
Learn more about XDC
Join now to meet 120 attendees on the biggest Xojo conference in 2018!
We got a new cabinet and it's a nice place for my little Apple Museum: An original Apple Cube with 450 MHz from year 2000.
It still runs well with Mac OS X 10.4.11, can be remotely managed via screen sharing and used to be my testing computer for PPC applications. But since I dropped my PPC support this year, it may now stay on the cabinet and wait till we need it. There is always a chance you get an old document where the software is no longer available to convert them to a newer format.
The Apple mouse pad there is even older. Over 20 years a give away from one of the Apple Expos here in Germany!

Just one year left till the European MBS Xojo Conference 2018 in Munich.
Monkeybread Software is pleased to announce the MBS Xojo Conference in metropolitan Munich, Germany. We meet in the lovely
Maritim Hotel in the center of Munich. The hotel is near the main station and in walking distance to the city center. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.
As date and location is set, we are now looking for interested speakers to join our conference. If you have an interesting topic, feel free to propose a session. We look for sessions to present applications made in Xojo, best practice, looking deeper on a Xojo features or presenting a product for Xojo developers.
The schedule:
Sep 5th: Xojo Training in English
Sep 6th: Conference, first day with dinner event
Sep 7th: Conference, second day
Sep 8th: Xojo Training in German
Registration is open. The early bird offer available till 6th January is just 399 Euro plus VAT. For the first 20 people we offer tickets for just 349 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim Hotel as well as an accompanying social program.
Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers. If you like to hold a presentation, please contact us as soon as possible. Speaker receive discounted tickets.
See also
conference in London this November and
XDC 2018 in Denver next year.

The September/October (15.5) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
- Improve WeakRef Performance by Thomas Tempelmann
You can avoid circular references by using weakRefs, but that causes performance problems. What's the solution? - The Case of the Broken Upgrade by Mattias Sandstrom
When a software upgrade breaks things that were working fine, finding the cause requires real detective work. - Touche by Marc Zeedar
With the latest version of MacOS Sierra, Xojo apps that use the Macbook Pro's Touch Bar are finally possible. Marc demonstrates how to make them. - Sharing Data for Health, Part 3 by JC Cruz
Jose explores using XML to export health data from his project. - Plus: Xojo 2017r2, custom code formatting, pg_dump, SQLBuilder and ActiveRecord, and more!
Not yet subscribed? Comment here this week for the chance to win a free six month subscription!

For the 9th time I made a Tester app for
Macwelt.de for novice users to check if their Mac can run the next macOS version.
You can download and try it here:
HighSierraTester.zip
The application does check a few parameters of your Mac to help you learn whether High Sierra will probably work on your Mac.
Be aware that the application is in German, but still it shows red, green or yellow icons for various parameters.
Your Mac must of course meet the minimum requirements from Apple and a few technologies only work if you have required hardware. e.g. HEVC decoding with hardware acceleration needs CPUs supporting it. External graphics adapters need Thunderbolt 3 port and APFS a SSD disk. I hope you see a lot of lights being green.
The application can also identify 32-bit kernel extensions which don't work any more.
Also we can find PPC applications (no longer supported for years) and also warn about 32-bit software, which may need an update for macOS 10.14.
Let me know what you think about it. I hope it helps you to decide whether installing macOS High Sierra makes sense.
See also:
Macwelt Artikel

Monkeybread Software is pleased to announce to host a little
MBS Xojo Developer Conference. We meet once again in the nice
Antoinette Hotel in Wimbledon for a meeting day and a training day.
We have a Xojo
training day on 9th November 2017. We talk a close look on Xojo and show you in little projects how to work with advanced Xojo language features, databases, sockets and threads. Please bring your own ideas and topic wishes to be added to schedule.
On 10th November 2017, we
meet with Xojo developers from all over UK to talk about Xojo on our conference day. We have a few nice sessions in the pipeline for you. Stephane Pinel will give his keynote and talk about what's new and coming in Xojo. Christian Schmitz from Monkeybread Software will update us on the latest plugin news. We will soon add more sessions, so keep an eye on the schedule. If you like to speak, please contact us soon.
If you like to join the events, please register with us. More than 20 people are already planning to join this event and we also hope to see a lot of people for the dinner on the evenings.
Also we would be happy to meet you on the big
Xojo Developer Conference in Denver with over 100 attendees. Your chance to meet all the people from he forums and mailing lists!