Videos from MBS Xojo Conference in Koblenz 2016

The videos from our last MBS Xojo Conference in Koblenz 2016 are now available to attendees.

Conference Videos

We provide audio tracks for all sessions and videos for a few sessions. In total 4h 45m video and 9h audio.
All the conference material is available for attendees of the Koblenz conference and will be available for those attending the Berlin conference in 2017. Register here.

If you can't attend and you like to watch videos and slides, please purchase a video only ticket for the same price as a conference ticket. You can later even upgrade to attend the conference in person.

Welcome Franziska!

Earlier today our baby arrived. Mother and our little girl are well and enjoy their time together.

Baby picture

XojoTalk podcast

The XojoTalk podcast just got it's thirties episode. So go and listen to it!
  1. Shoving Phones In Their Pockets with Geoff Perlman
  2. That's A Lot Of Tens with Bob Keeney
  3. Developer of Long Standing with Eric Gibbon
  4. Grizzled Veterans with Travis Hill
  5. Where's My Column? with Marc Zeedar
  6. I have no idea what you're talking about with Kem Tekinay
  7. Snowgun with Kevin Cully
  8. Really Wicked with Hal Gumbert
  9. It's my dog with Norman Palardy
  10. Strap a Mac Pro to my wrist with Tim Dietrich
  11. The forum is my personal training ground with Tim Hare
  12. Shipping is a feature with Paul Levine
  13. Hockey Programmer with Mike Cotrone
  14. Software Maniacs with Ken Whitaker
  15. Type my password like an animal with Justin Elliott
  16. Magical Toolkit with Craig Boyd
  17. I Keep My Secrets to Myself with Bruno Frechette and Jonanthan Guillemette
  18. Not The Pi You Eat with Geoff Perlman
  19. Ghost Touches with Geoff Perlman
  20. Spoiler Alert with Bob Keeney and Marc Zeedar
  21. Enterprise Consulting with Arthur Couture and Tom Rupprecht
  22. I Like Things That Just Work with Tim Parnell
  23. Take a Walk with Michel Bujardet
  24. Figure out stuff on my own with Kimball Larsen
  25. Toughest thing is the substitutions with Jim Meyer
  26. Happened by Accident with Tom Catchesides
  27. Database Goddess with Carol Keeney
  28. Email is Not a Project Management Tool with Susan Fennema
  29. I Went to High School with the Apple File System Guy with Tim Dietrich
  30. We Like Our Customers with Geoff Perlman
Subscribe at iTunes or to RSS Feed

WebViewer crashes

If FileMaker or Xojo crashes when showing web content with an embedded PDF, you may see in the crash report lines like this:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_platform.dylib 0x00007fff89bf8fc9 _platform_memmove$VARIANT$Unknown + 41
1 com.apple.CoreGraphics 0x00007fff8c887d85 __CGPixelAccessDataInitialize + 733
2 com.apple.CoreGraphics 0x00007fff8c921d18 __CGPixelAccessAccessBitmapData + 489
3 com.apple.CoreGraphics 0x00007fff8c8876ed __CGPixelAccessCreateImageFromRect + 222
4 com.apple.CoreGraphics 0x00007fff8c8875e4 CGPixelAccessCreateImageFromRect + 204
5 com.apple.AppKit 0x00007fff8d7ed7bb -[NSBitmapImageRep initWithFocusedViewRect:] + 1480
6 com.adobe.Acrobat.framework 0x00000001349edf67 0x1349ea000 + 16231
7 com.adobe.Acrobat.framework 0x0000000134a7c375 RunAcrobat + 563935
8 com.adobe.Acrobat.framework 0x0000000134a7bed0 RunAcrobat + 562746

As you see in the crash report, the adobe frameworks crashed when drawing a view.

In that case you may have an old PDF plugin from Adobe installed. You could of course update the PDF Plugin.
Or you can check /Library/Internet Plug-Ins or ~/Library/Internet Plug-Ins folders for plugins. Those folders should normally be empty except Default Browser.plugin file.

If you remove the PDF plugin from Adobe, the webviewer will use the default plugin from WebKit, which may not crash. Try it!

MBS Xojo / Real Studio Plugins, version 16.5pr4

New in this prerelease of the 16.5 plugins:
  • Fixed an issue with CURL wildcard mode not finding files sometimes.
  • Fixed a problem in barcode creation.
  • Fixed a possible crash in WindowsClipboardMBS.GetData.
  • Added NSApplicationMBS.showHelp.
  • Updated to DynaPDF 4.0.3.11
  • Changed JavaVMMBS Constructor to use existing JavaVM if initialized before.
  • Fixed bug with printing for DynaPDF. Please adapt newer example code.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Automated video editing with Xojo

For years we use Xojo from time to time to write little apps to do video editing. Especially automated batch editing in order to avoid human error or repetitive tasks. Years ago we did that with QuickTime functions in Xojo and we still remember the nice EditableMovie class there. Today the world changed and we switched to use our AVFoundation plugin instead. AVFoundation is Apple's latest framework for video editing and it provides similar functionality, but in a more modern fashion. The use of asynchronously processing on several CPUs is built in and you can easily benefit from those enhancements in Xojo.

The job description:
  • Build a video from segments of videos recorded by an automated camera. We get a new file each 10 minutes and have to join them.
  • Cut away some time on beginning of first and end of last file.
  • Crop the video to a rectangle. This cuts away all the ceiling, floor and walls we don't need.
  • Compress for AppleTV, so you can watch it anywhere.
The sample project will be included with next plugins, but here is the main work method: (more)

Call for Speakers for MBS Xojo Conference in Berlin 2017

For our MBS Xojo Conference in Europe, 3rd to 6th May 2017 in Berlin, Germany, we are looking for speakers.

If you like to present an interesting topic around Xojo, please contact me soon.
We already have a few on the way and will add them to the schedule as soon as we received topic description and registration from speakers.

The final schedule will probably be released somewhere in December. Until that you can show your commitment to the conference and get the early early bird price for the ticket for 40% off the regular price.

Interest for our conference so far is much higher than the last years and registration is already at a record level over six months in advantage. Be sure to mark the date in the calendar and move your work to leave a week free to join us and enjoy a few extra days in Berlin!

Like to speak, sponsor or register already? Just email me. Register here

Visiting MBS Office

We are always happy to have guests from all over the world. If you come close to mid western area of Germany (near Koblenz), be sure to send us a message. Maybe we have time to meet for a drink and some shop talk. Once again today we met with a client in Koblenz for dinner. But also when I am traveling for conferences or to clients, I try to organize local meetings with other developers and get in touch. For me it is important to see what you guys are doing with Xojo and FileMaker, what issues you see and what things are missing. Later I can fill those with a plugin function or provide you tips for using existing plugin functions.

As you may know I also offer consulting, training and custom plugin development. While you can of course hire me to come to your office for a visit, it may be better for you to leave office. Take a day off and get something done with me. Come for a visit and we develop a solution together.

In the last years we had people come to get a personal MBS Plugin workshop, a training day to get an overview on our plugin features. Another client came to develop a web app in Xojo or implement the usage of a web service in a FileMaker solution. Getting started together, than continue alone in following days. You can also come with a list of issues we should work on in your projects. Most likely I can show you solutions using plugin functions as others had similar problems before. Often it is easier to pay for an hour instead of spending a day yourself looking for a solution!

If time permits we can always add some sight seeing to castles, monastery or mid-age buildings, do some hiking or checkout a brewery or winery. See you someday!

MBS Xojo / Real Studio Plugins, version 16.5pr3

New in this prerelease of the 16.5 plugins:
  • Fixed a regression on SQL prepared statement with error: "dictionary is nil".
  • Optimized NSViewMBS/NSWindowMBS getters, so they return the same view/window object if possible.
  • Added tabbing related functions/properties/constants to NSWindowMBS class.
  • Rewrote StyledText.RTFDataMBS to read/write RTF.
  • Updated SQLite to 3.15.0.
  • Added ConvertStyledText, WriteStyledText and WriteStyledTextEx functions to DynaPDFMBS.
  • Added drag & drop delegate methods to NSWindowDelegateMBS class.
  • Fixed an issue with QuartzCode plugin part where NSException handling plugin part was not correctly referenced.
  • Added MacFileOperationStatusMBS.Handle property.
  • Improved DNSServiceAddrInfoMBS for IPv6.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Goodbye Salzburg

After two weeks of conferences I am on my way back home.
This was an exhausting, but also entertaining and very interesting time. I met a lot of people, had shop talk all day and developed new stuff on the fly.



The Dallas FileMaker user group moved their meeting date for me and over 20 users attended. Next in Houston I met about 100 Xojo developers at the yearly Xojo developer conference including all the Xojo staff. This week in Salzburg at the FileMaker Conference I met around 200 FileMaker developers from German speaking countries.

As usual I spend only a little time in sessions. More important for me is the time in the lobby where people show me their projects, explain what issues they have and what functions they'd like to have. I can show what features my plugins have, what may help the client and how we can proceed. Some people even have projects for me I could do and some are interested in personal consulting or training services.

As you may have noticed, I am coding in-between and writing blog articles. For Xojo I hoped for a 64-bit debugger sooner as I worked the last weeks on a CloudKit plugin. Still I hope to get it done and debugged in the next weeks, so you guys can try it.

For FileMaker we got a couple of news:
As usually if you see a feature in the other plugins and you like me to transfer it, please tell me. For a lot of features it makes sense to offer them for both. The styled text feature for DynaPDF is right away built for both tools. We had the Java classes in Xojo for ten years already and now added this functionality for FileMaker as well.

I am looking forward to meet you at the next conferences:
and some more where I don't yet know the dates. Keep me informed if you organize a conference or hear about one. See you there!

DynaPDF and Styled Text, Xojo vs. FileMaker

Another idea I got on the FileMaker Conference here in Salzburg: Users may want to have a text field with styled text and transfer that text as good as possible into a PDF page via DynaPDF.

The Xojo framework provides a StyledText class where we can query text styles (italic, bold and underline), color, font and font size. Via the paragraph class, we get alignment information, too.

The FileMaker plugin SDK offers functions to query styled text. But I have to query style for each character and detect the runs myself (see feature request). It does provide some more styles, e.g. strikeout. But it does not provide alignment information (see feature request).

The plugin can now convert styled text as good as we can to format commands in DynaPDF. WriteFText/WriteFTextEx functions can process various commands and we can easily support different fonts, alignment, color, styles and even more features.

In FileMaker the example looks like this:

MBS FileMaker Plugin with Styled Text to PDF

As you see we have the input field on the top left, the translated commands for review on top right and the final PDF as preview below.

And in Xojo I made a text editor with live preview:

MBS Xojo Plugin with Styled Text to PDF

For the Create PDF button to write a PDF you only need the DynaPDF Starter version. But for live preview with rendering a page, we need a Pro license. whenever you change something in the left text area, we update a few milliseconds later the preview on the right side. The page size is set to match the canvas size, so you get an unscaled high DPI preview.
As you see we have alignment only in Xojo, but strikeout only in FileMaker.

PS: Available soon in plugin version 6.5pr3 or by email now.

An award for the MBS FileMaker Plugin

At the FileMaker Conference 2016 in Salzburg I received an award for the best development tool for FileMaker:

Klemens und Christian

Thanks for recognizing my ten year commitment to FileMaker for writing the MBS Plugin.
And thanks to all my customers who supported me with ideas and by using the plugin.
A few of the new ideas from the conference will be in the next prerelease.

MBS Xojo / Real Studio Plugins, version 16.5pr2

New in this prerelease of the 16.5 plugins:
  • Fixed events for IKImageBrowserViewControlMBS class.
  • Added CUPSMBS.PrintData function.
  • Fixed a possible issue with CalendarItems being released while script runs.
  • Added CustomNSViewMBS isFlipped event.
  • Added MimeEmailMBS.DecodeInline function.
  • Updated libXL library to version 3.7.0.
  • Updated SQLAPI++ 4.1.10.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/. Or ask us to be added to our shared Dropbox folder.

Library vs. Plugin

At the Xojo conference here in Houston Xojo Inc. announced a couple of upcoming features for Xojo. You can read details on the Xojo blog, Bob's blob or soon in Xojo Developer Magazine. One of the news in the creation of plugins in Xojo. Let's call those a library as you bundle Xojo code with resources into an archive. And as a few people asked me how that would affect me or whether I will support them, so here a few details:

First what is a Xojo Plugin currently?
Well, a xojo plugin currently is a zip archive with file extension .xojo_plugin. You can rename it to .zip and unpack it if you like to take a look inside youself. What you find are a couple of folders with various compiled libraries inside. Those libraries come per platform, so we have there DLLs for Windows, dylibs for Macs and shared objects for Linux. Current MBS Plugin have 8 different variants included.

To write such a plugin, you take a native compiler for your platform, write some C, C++, Objective-C or assembler code. You can include static libraries in your plugin and fully use all the features in the C compilers offer you. The libraries include the Xojo declarations and register them at runtime, so the IDE loads all plugins and queries them for the declarations.

What is a Xojo library?
Not sure how Xojo Inc. will call it exactly, but as far as I know it will be a new type of project. There you can include all stuff you currently have in projects like modules, classes and windows. Than you press build button and it will compile them all and write intermediate code into a new file. This should include resources like images and native libraries written in C/C++.
So you can add a library to a project and when compelling the Xojo IDE will include the library parts in the normal build process.

Convert Plugins?
Depending on how library projects will be designed, it may be possible for me to write a converter for my plugins. An application which can read my plugin definitions and generate the wrapper classes. Each method there would have a declare line to call the underlaying C function. I am not sure how well this would work and whether the overhead is worth it. Could be that it is easier and more convenient to just keep the plugins as they are and just provide newer stuff in the new format.

Uses for Libraries
We all have common code which we currently include in all projects. This common code can be moved into a library project and be prebuilt. This way the build process of our normal apps should be faster. Although when debugging the project, the debugger may not be able to step into our own library!

Next you want to bundle some code and sell it. Plugin vendors like me may be able to finally deliver iOS compatible plugins this way. At least precompiled is better protected than encrypted classes which have been breached before. Selling libraries could increase the number of vendors and help to get more third party controls into the Xojo store.

Possible Problems
There are a couple of problems coming which needs to be resolved:
  • First what happens if you add a library with a window to a console project?
    Probably this will cause errors and some libraries must have flags and #if set to work well.
  • How can libraries be compatible to several Xojo versions?
    The intermediate code from LLVM and the file format used by Xojo may not be forward or backwards compatible. Also calls to the framework may change, so newer library may miss a function in the Xojo runtime if used in an older version of the Xojo IDE.
  • How do we handle conflicts within the libraries?
    Class names may be declared in different ways. While I hope we can do libraries without putting them into namespaces, it would be nice if the library user could optionally add a namespace in order to resolve conflicts.
  • Would libraries include function names, so we see that in stack traces?
  • Can we debug into the library if we have the library source code?
    Maybe we may need a library format including source code for debugging, at least for home made libraries.

So let's see what gets released later in 2017 and maybe refined in upcoming releases in 2018.

MBS Xojo / Real Studio Plugins, version 16.5pr1

New in this prerelease of the 16.5 plugins:
  • Updated to DynaPDF 4.0.3.10
  • Added JavaObjectMBS.ClassName property.
  • When looking for Java installation on Windows, we now use unicode paths.
  • Fixed a problem with QuickTime plugin not loading on macOS Sierra.
  • Updated OpenSSL to 1.0.2j
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/. Or ask us to be added to our shared Dropbox folder.

Xojo Feedback Success rate

The Xojo feedback system is a huge bug and feature wish tracker. It currently has over 45000 items inside. This is really a lot for a company of that size. Each day a dozen issues are reported and someone at Xojo Inc. has to review them. Initial review is often done by Robin, who will often ask for more information or directly assign your request to the engineer who may have interest in it. The bug report than has status Reviewed, often for years. What you don't see are the private entries for Xojo Inc. Engineers write ideas and discussions to the bug report. Is this issue related to others? How could it be done? How long would it take and how important is it?

Over the years I contributed 1117 cases there:

1117 Status Percent
1Open0,1 %
2scheduled0,2 %
3Completed & Fixed0,3 %
5Need Review0,4 %
21Implemented1,9 %
24resolved2,1 %
24Closed (Duplicate)2,1 %
28Closed (Already Exists)2,5 %
40Closed (by Design)3,6 %
56Closed (Won’t Implement)5,0 %
90Closed (Misc)8,1 %
97N/A8,7 %
108Closed (Not Reproducible)9,7 %
121verified10,8 %
220Fixed & Verified19,7 %
277Reviewed24,8 %

As you can see I have a lot of cases. Some even lost their status. This happens often if the type of the cases switched and the new status is not applicable for the new case type. Overall I have 268 (24%) of my cases being completed, fixed or resolved. I think this is an impressive rate, if you think that Xojo Inc. is a company with very limited resources.

So please participate. When Xojo Inc. looks for things to do for next release, they will look into the feedback app. What cases have a high voting? What cases are important to people or to engineers? What bugs are critical? There are thousands of cases with nice to have things and some get done, too. Other cases get a clearly no, which is often very difficult to decide. The 96 cases I have which got closed with "Won't implement" or "By Design" status, disappointed me of course. But other cases have been resolved or fixed the same day I reported them. My success rate of 24% makes me happy here and continues my hope that I can change Xojo to be more like I need it to be.

So please participate. Bugs can only be fixed if someone enters them in Feedback. Feature wishes will easier be seen if you assign your points to cases. And remember: Just because someone complains on the forum or mailing list about an issue will not change anything unless it is in feedback and everyone can check status there. So if you see a good feature request or a bug somewhere, please report it, so it's not lost.

PS: For my own plugins I do similar. We can discuss plugin wishes a lot. I usually will tell to send me an email to follow up. Because I often forget the wishes or bug reports soon. And if nobody sends me an email, it is probably not important.
The biggest plugin in space...

Archives

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