MBS Xojo Plugins, version 19.2pr5


New in this prerelease of the 19.1 plugins:
  • Added new methods to JavaVMMBS class to create Java arrays based on Xojo arrays.
  • Added Value(index) methods to various Java array classes to set/get value easily.
  • Added updateNamedRanges parameter for InsertCol, InsertRow, RemoveCol and RemoveRow in XLSheetMBS class.
  • Changed Length in JavaStringMBS and JavaArrayMBS classes to be real properties and visible in debugger.
  • Fixed MouseWheel event in OverlayMBS class to be called more often.
  • Updated LibXL to version 3.8.5.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Our XDC 2019 Flyer


Last minute we printed a flyer for XDC to give away to attendees. Just a nice reminder to visit our European Xojo Conference in Germany:

See you in Miami!

MBS Xojo Plugins, version 19.2pr4


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

Early bird offer ends for European MBS Xojo Conference 2019 in Cologne


If you plan to sign up and get the early bird price for your ticket, please sign up today.

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. 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.

We already have 40 people coming from 10 different countries!
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇸🇪, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮 & 🇦🇹.

The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. The early bird offer available till 24th April is just 499 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint 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.

More details on the conference website.

Preparing for XDC 2019


These days I do last final changes for my MBS session slides. Got a nice review of the past year since last XDC to show what's new in the plugins.

For people interested in PDF, we include a slide about the upcoming DynaPDF 5.0 release later this year and something new we are working on the plugin part for DynaPDF. So if you are interested in PDF, I hope you join the session. Unless schedule changes, the MBS session should be 2nd May @ 13 o'clock.

We are looking forward to see you all in Miami!

PS: Early bird offers for the European Xojo Developer Conference ends this week. Join us in Cologne from 23rd to 26th October 2019 for conference and training days.

Five reasons why you should attend a conference


While we interact a lot with each other in your development community via forum, social media and tons of emails, we should not forget the importance of being in a live face-to-face setting with others. Being active in the developer community can bring many benefits. There is power in being connected to other developers who are active in the same area. It can be easy to skip meetings and not come to the annual conferences, but soon you may have skipped them for several years. Joining the forums is not enough, you need to be active and post regularly. But to build personal connections, you need to join the conferences and meet the persons behind the forum avatar. (more)

MBS Xojo Plugins, version 19.2pr3


New in this prerelease of the 19.1 plugins:
  • Added Convert methods to JSONMBS to convert from/to Xojo Variant/Dictionary/Array.
  • Added JSONMBS.IsInt64 property.
  • Added PopupMenu function to ContinuityCameraMBS class.
  • Added removeAllScheduledNotifications method to NSUserNotificationCenterMBS class.
  • Added TextArea.WinAutoCorrectionMBS property.
  • Added WinShowFontPanelMBS function for TextArea control to show standard font dialog on Windows.
  • Added writeHEIFRepresentationOfImage and HEIFRepresentationOfImage methods to CIContextMBS class.
  • Fixed a problem with DynaPDF parser and rendering some PDF.
  • Fixed problem with rotateTemplate function in DynaPDFMBS and 180 degree.
  • Improved 64-bit integer handling for JSON to avoid rounding errors with doubles.
  • Improved performance for plugin functions accessing Xojo dictionaries.
  • Rebuild DynaPDF without assert checks.
  • Rewrote callback part for PortAudioStreamMBS class on MacOS and updated PortAudio example.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Windows Font Dialog


We have some new functions for you related to the Windows standard font dialog.

For FileMaker, the new TextView.ShowFontPanel function can show the font dialog and let user change the font settings. For MacOS, the function will show the system font panel, which allows you to adjust font information asynchronously.

For Xojo, the new TextArea.WinShowFontPanelMBS function can show the font dialog for a text area. Please use NSColorPanelMBS class and NSTextViewMBS usesFontPanel property for MacOS. The panel floats and allows to change font information for current text area.

In both cases, the dialog shows with current font selection, than user can change them and the new font settings are applied to the current selection in the text.

Changes are coming to next prerelease of our FileMaker and Xojo Plugins. If you like to test today, please email us.

One week left for early bird tickets for European MBS Xojo Conference 2019 in Cologne


If you plan to sign up and get the early bird price for your ticket, please sign up soon.

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. 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.

The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. The early bird offer available till 24th April is just 499 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint 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.

More details on the conference website.

New JSONMBS methods for Xojo


As you may know we have a JSONMBS class in our MBS Xojo Util Plugin to work with JSON data. The class is optimized for best performance, but some people prefer to use native Xojo classes like dictionary for representing objects.

For the upcoming 19.2 release, we'll add new convert methods to our class. You can convert from Xojo objects to JSON and back. This involves using dictionaries for the objects and Xojo arrays for the arrays in JSON. As we don't know what is in the array, we use arrays of variants.

Convert(value as variant) as JSONMBS

This function checks what is in the variant and returns a matching JSONMBS object. String, boolean, integers and doubles are just wrapped with JSONMBS objects. Dictionaries are converted to JSON objects, but we only use text for the keys. Currency values are converted to double, colors to integers, dates and texts are converted to strings before processing them. We detect arrays of String, Object, Variant, Single, Double, Int32, Int64, Boolean and Currency and convert them to JSON arrays. Anything else can raise an exception about an unsupported type.

Convert as Variant

The counter-part function on the JSONMBS class returns the varisant matching whatever is in the JSON data. The plugin will create arrays of variant, dictionaries and values (string, double, int64, boolean and nil).

Performance on the new methods should be as good as Xojo.Core.Use Xojo.Data.ParseJSON and Xojo.Data.GenerateJSON functions in the Xojo runtime. But as we use Variant/String/Dictionary and not Auto/Text/Xojo.Core.Dictionary, this may be an interesting alternative for you?

If you like to try the new methods, please email us or wait for next prerelease.

Looking for memory leaks


We try to make memory leak free plugins. That is difficult and may even be impossible to do 100%. But we try our best and if you find a memory leak, please let us know.

Especially for server applications running a long time, a leak can bring down a server. If you just leak 5 KB per second on a server script, this may be over 2 GB in a week ending up in swap storage. If it's slow enough, it will fill your server's disk with swap files, but if it leaks fast, it will also hit performance a lot!

We do static analyses on our source code to find leaks. We do use C++ classes to automatically free memory when they are released, e.g. on function end. And we use NSAutoreleasePools on Mac to collect objects and release later. We try to get memory management right and automatically get there. But there may always be things not found by us.

A memory leak you report should be reproduced in a small script/method, which can be run several times. First call my do initialization steps and trigger some framework initialization, but any subsequent call should result in a higher memory usage each time. This method may have a loop to the relevant steps a 1000 times to make it a significant leak. On the end, you should have leaked a few Megabytes, so we can look for big objects not freed or thousands of small objects of the same type. Make sure you do all the release/free calls as provided by the plugin.

Due to memory management, memory is allocated in chunks. Memory is freed with delay, so you may need a short pause for memory pools to be cleared. So two or three runs may allocate the chunks

A lot of frameworks we use do leak themselves. e.g. Cocoa framework on Mac has a lot of small leaks. So in general we are not really looking for leaks which just leak a few kilobytes every few minutes. Watching a Cocoa app in Instruments we see a lot of small leaks. We prefer to fix the leaks in our code!

Xojo 2019 Release 1


Xojo, Inc just announced the release of their new version Xojo 2019 Release 1. You can download it on the website.

It includes over 200 improvements, such as:
  • Significant improvements to performance of Layout Editor, especially with web projects
  • The free Xojo Pi license now lets you build for Console and Desktop
  • Improvements to URLConnection: SendSync now works with threads, added a new HTTPStatus property, URLConnection also now appears in Library for desktop projects
  • 32-bit Windows builds use OS app manifest
  • Spell checking now also supported in TextArea on Linux
  • Dynamic Constants are now referred to as Localized Strings
  • General AutoComplete improvements
The complete list of improvements in Xojo 2019 Release 1 can be found in the release notes.

As usual a good mix of a few new features and lots of bug fixes. We are looking forward to XDC to see what big features they are working on.

For me an important change is the buffer size on SSLSocket, which has been increased to 256K instead of tiny 8 kilo bytes. The annoying GTK+ warnings are also gone. What is your favorite new thing?

See also Xojo 2019 R1 review by Bob Keeney.

PS: MBS Xojo Plugins in version 19.1 are working perfectly with the new Xojo version.

Scan document on iPhone or iPad


With the new Continuity camera feature in MacOS Mojave and your iOS device, you can scan documents:

So you place the document on a table, you start the process on your Mac and than you take the iOS device to take a picture. The yellow area shows where the document is recognized, so you can scan it. iOS will do the crop and rectify steps and store the document as PDF. I needed, you can add more pages.

We'll also offer the possibility to show the popup menu with all options including selecting device for more than one of them. Screenshot is in German, but the texts are actually localized to your language.

MBS Xojo Plugins, version 19.2pr2


New in this prerelease of the 19.1 plugins:
  • Fixed Date constructor call in plugin to produce dates (Broken in pr1).
  • Added ContinuityCameraMBS class.
  • Updated DynaPDF to version 4.0.27.78.
  • Changed WordFileMBS class to also handle OpenDocument text files.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Continuity Camera for Xojo


As you may know there is a feature in MacOS Mojave called Continuity Camera. When an application shows a view which accepts services bringing in photos, you may receive photos from your iPhone. So when you are in TextEdit application, you can use contextual menu on the text area and choose Insert Photo from your phone. The iPhone asks you to shoot a photo and the image file gets transported back and inserted into the text view on your Mac.

In Xojo, you run a method calling Import command on our new ContinuityCameraMBS class and you get this dialog:



Or you let the user select it from the localized context menu entries.

Once the image is captured, you get a method called via delegate, where you can process the result. e.g. we show the picture right into the window of our example project.

As an option, you can ask for a document. You get a similar window on your Mac, but iOS will ask you to scan for document pages. Multiply pages are put together into a PDF document.

Coming soon for MBS Plugin 19.2. Please contact us if you like to try today.

Three weeks left for early bird tickets for European MBS Xojo Conference 2019 in Cologne


If you plan to sign up and get the early bird price for your ticket, please sign up soon.

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. 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.

To give you an update, we have already over 30 attendees signed up, we got a few sessions already confirmed and listed on the website. A few more potential sessions are not yet confirmed. We are still looking for your developers to apply for a free ticket. If you like to join the conference and get the early bird ticket pricing, please sign up soon. If you like to speak, please send a proposal soon and please sign up for the conference soon. As of today we have people from eight countries already signed up.

The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. The early bird offer available till 24th April is just 499 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint 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.

More details on the conference website.

Xojo meetings for California


Due to WWDC, I'll come for a visit to California in June. As usual I like to meet other developers beside the visited conference and like to organize a few meetings for local Xojo developers.

The flight is via Los Angeles, so I can make a break there for a meeting and than do one in San José. If needed, I could even come to San Francisco to meet a few people. In all three places, I have >50 plugin users in a 100 km radius. So a lot of people could join us.
Please vote and let me know which date is best for most people.

If you are interested in private time for consulting, training or discussion MBS or Xojo topics, we can of course schedule a meeting. Please contact me directly interested.

MBS Xojo Plugins, version 19.2pr1


New in this prerelease of the 19.1 plugins:
  • Added 12 more methods to StringHandleMBS class.
  • Added AcceptTabs property for NSDatePickerControlMBS control.
  • Added asInt32, asInteger, asInt64, asUInt32 to SQLValueReadMBS class.
  • Added ASIOGetSampleRate function for PortAudioMBS class.
  • Added check for AddHeader in CURLEmailMBS class to make sure a double colon is included.
  • Added copy function to UNNotificationAttachmentMBS class.
  • Added FindGCD function to LargeNumberMBS class.
  • Added MKCustomAnnotationMBS class.
  • Added MKCustomOverlayMBS and MKCustomOverlayRendererMBS classes.
  • Added nil object check for SQLCommandMBS.ExecuteMT and similar functions.
  • Added setAsInt32, setAsInt64, setAsInteger, setAsUInt32 to SQLValueMBS class.
  • Added SQLiteInMemory constant to SQLDatabaseMBS and SQLConnectionMBS classes.
  • Added WindowsListMBS.ActivateWindow and window.ActivateWindowMBS methods for Windows to bring a window to front.
  • Changed ChartDirector and SQL Plugin to accept licenses for up to 5 years in future instead of 3 years.
  • Changed NetworkTimeOut and TimeOut in LDAPMBS class to be double value with seconds.
  • Changed SQL Plugin to not complain about missing functions with freetds.
  • Changed SQLCommandMBS class to clear SQLFieldMBS and SQLParamMBS objects from it in destructor. If you access them later, you'll get SQLNotInitializedExceptionMBS exception.
  • Changed SQLConnectionMBS/SQLDatabaseMBS to pass more options to SQLCommandMBS for MS SQL: SQL_ATTR_CURSOR_TYPE, SQL_ATTR_QUERY_TIMEOUT, SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_SCROLLABLE and SQL_ATTR_CURSOR_SENSITIVITY.
  • Changed SQLDatabaseMBS.Client and SQLConnectionMBS.Client to raise exception if client is out of range.
  • Deprecated the Shell function on InternalSQLiteLibraryMBS class.
  • Fixed a problem with NTML authentication with CURL functions on Windows.
  • Fixed an issue with AutoCache in SQL Plugin preventing MovePrev method to work correctly.
  • Fixed an issue with DynaPDFImageMBS.PictureData not working.
  • Fixed bug in JSON generation for NULL strings.
  • Fixed bug with custom markers and WordFileMBS class.
  • Fixed bug with exception handling for SQLCommandMBS.ExecuteMT method.
  • Fixed issue with piModelNames, piRevisionNames, piMakerNames in WiringPiMBS module.
  • Fixed memory leak in CURLSURLMBS class.
  • Implemented Application.FrontmostMBS property for Windows.
  • Implemented NSImage to Picture conversion for console project on MacOS. This makes e.g. folderitem.IconImageMBS function working.
  • Manually applied CURL fix: vauth/oauth2: Fix OAUTHBEARER token generation #3377
  • Manually applied NTML fix for CURL.
  • Reverted change from 19.1 about DrawCGPDFDocumentMBS to use newer API as the functionality is not identical.
  • Rewrote Caching for SQL Plugin to use much less memory.
  • Rewrote conversion between Xojo Date and NSDate class for Cocoa to handle time zones.
  • Updated CURL to version 7.64.1.
  • Updated DynaPDF to version 4.0.27.77.
  • Upgraded CubeSQL SDK to version 5.7.3.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Archives

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