MySQL with SSL in MBS Xojo SQL Plugin


Today an example on how to connect to MySQL via MBS SQL Plugin in Xojo:

dim con as new SQLConnectionMBS try // Specify SSL key file Dim keyFile As FolderItem #If TargetMacOS Then // pick from inside budnle keyFile = App.ExecutableFile.Parent.Parent.Child("Resources").Child("client-test-key.pem") #Else // pick next to exe file keyFile = GetFolderItem("client-test-key.pem") #EndIf con.Option("MYSQL_SSL_KEY") = keyFile.NativePath // Specify SSL certificate file Dim certFile As FolderItem #If TargetMacOS Then // pick from inside budnle certFile = App.ExecutableFile.Parent.Parent.Child("Resources").Child("client-test.pem") #Else // pick next to exe file certFile = GetFolderItem("client-test.pem") #EndIf con.Option("MYSQL_SSL_CERT") = certFile.NativePath // set where to find the MySQL client library #If TargetMacOS Then // pick from inside budnle con.SetFileOption con.kOptionLibraryMySQL, App.ExecutableFile.Parent.Child("libmysqlclient.18.dylib") #elseif TargetWin32 then // pick next to exe file con.SetFileOption con.kOptionLibraryMySQL, App.ExecutableFile.Parent.Child("libmysql.dll") #elseif TargetLinux then // pick next to exe file con.SetFileOption con.kOptionLibraryMySQL, App.ExecutableFile.Parent.Child("libmysql.so") #EndIf dim server as string = "myuser@mydb" dim DBLogin as string = "xxx" dim DBPassword as string = "xxx" con.Connect(server, DBLogin, DBPassword, SQLConnectionMBS.kMySQLClient) If Not con.Error Then MsgBox "We are connected!" Else MsgBox con.ErrorMessage End If catch r as RuntimeException MsgBox r.message end try

If the options MYSQL_SSL_KEY, MYSQL_SSL_CERT, MYSQL_SSL_CA, MYSQL_SSL_CAPATH or MYSQL_SSL_CIPHER are set, the plugin calls mysql_ssl_set function to pass those to MySQL client library.

Good bye Phoenix!


Leaving soon from Phoenix airport.
I enjoyed a great week in Phoenix with the FileMaker DevCon and seeing so many developers:



I look forward to come back in one of the next years. There is still plenty left to see.
The picture above is from Dobbins Lookout in the South Mountain Park, a viewing place you can drive to south of downtown up on the hill (700m high).

And thanks to the Xojo developers who came to my Xojo developer meetings in Tucson and Phoenix.

The big cleanup for our Xojo plugins


There is something I’d like to talk about. Fewer people are using Real Studio and as we approach the end of live for 32-bit on all operation systems, the days of Real Studio are counted. Everyone should move this year to Xojo in order to support 64-bit later this year.

For my Xojo and Real Studio plugins, I do consider dropping Real Studio versions. Old plugins stay of course available for a long time, but download rates on current plugins in the Real Studio format are far down (<3%). Would someone miss newer plugins not being available in Real Studio format?

Second I may do a big cleanup and remove old stuff like everything related to QuickTime, FSSpec, GWorld pictures and maybe a few more like the older overlay window class. We could even consider dropping Carbon for Mac. Wait, I think this is still used for console projects, so we may need to keep it around.

On the plugin itself, we may merge some to reduce the number of plugins we deliver and make it easier to manage them. Or otherwise split them more into individual ones, so you can easier sort out the parts you don’t need. Not sure yet.

Otherwise I could really cleanup more aggressive and remove some parts. For example the ImageMagick plugin is not well maintained by me as I favorite the GraphicsMagick one for my own projects. Same for the PHP plugin which is not the best thing in the world as the php code misses usually extensions and the apache environment. Next to drop could be LCMS Plugin for the older 1.x version of the library. Everyone should have moved to 2.x already.

In general unless a lot of people relay on something, the cleanup could make my life easier, the build processes and deployment faster and finally with less plugins to load actually give faster Xojo startup times.

What do you think?

Raw Sockets for Xojo


As you may know Xojo has a TCPSocket and an UDPSocket class for taking TCP and UDP protocol with other applications and define your own protocol on top. In our plugin we have a UDPSocketMBS class for more options and even an UDPSocket class for iOS. If you need high level application protocols like HTTP, FTP, SMTP or IMAP, you can always use our CURL Plugin.

Now recently someone asked for a raw socket to go more low level. So I implemented RAWSocketMBS, which allows you to specify in detail the address family, socket type and protocol you like to use. And this includes using raw sockets where you can provide your own headers for IP packets. For a truly raw socket, your app needs root permissions on a computer as you can mess up a lot by sending wrong IP packets, so be careful!

So our new RawSocketMBS class can be simply used to make your own UDP/TCP socket, one for ICMP to ping or any of the other 30 protocols. You can decide if you let the OS create the headers for your packets or you create them yourself.

If you like to try, either wait for 17.4 prerelease plugins or email me for an early beta.

MonkeyBread Software Releases the MBS Xojo Plugins in version 17.3


Nickenich, Germany (July 18th, 2017) -- Monkeybread Software releases version 17.3 of the MBS plug-in for Xojo.

The MBS plug-in comprises a collection of several plug-in parts which extend the Xojo development environment with 2,400 classes featuring over 62,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.3 update:

If you are interested in using SNMP (Simple Network Management Protocol) queries to check status of your network devices, you can now use our NetSNMPMBS class.

To select fonts on Windows you can now use the WindowsFontDialogMBS class. The dialog can be preset, provides an apply button with an event to live show the new font in your document and various other events to know its state. With various properties you can customize the appearance of the dialog.

While the next macOS version is in beta, we already implemented new functions to support newer image and video formats there. This plugin also fixes a few issues, so you can now use our plugins on the latest macOS beta.

For our XL functions to read and write Excel documents, we can now load and save partial documents. If you have huge documents, using a temporary file can reduce the memory requirements. And if you only need data from one sheet inside a big document, loading only that one sheet can speed up processing a lot.

For CipherMBS class we changed CipherInit, EncryptInit and DecryptInit methods to return a boolean and indicate whether they were successful. You may need to update your code.

Our WindowsDeviceModeMBS class is updated for handling setup strings better in Xojo 2017r1. This is important as the format changed and you may want to avoid trouble.

We got PNG library with SSE2 for Mac enabled, context menu in overlayMBS, better handling of emails, better PDFKit annotations, CURL form data inspection and much more.

Finally we updated SQLite to 3.19.3, PostgreSQL to version 9.6.3, OpenSSL to 1.1.0f and 1.0.2l, libPNG to version 1.6.30 and DynaPDF to 4.0.11.31.

See release notes for a complete list of changes.

MBS Xojo Plugins, version 17.3pr7


New in this prerelease of the 17.3 plugins:
  • Added WindowsDeviceModeMBS.ApplyToSetupString method.
  • Updated WindowsDeviceModeMBS class methods for SetupString to handle 2017r1 SetupString format.
  • Added XLBookMBS methods to load partially and load/save with temp file.
  • Added GMImageMBS.PNGLibVersion function.
  • Changed Contacts, CoreLocation and MapKit plugin parts to better load on macOS 10.13 and not crash.
  • Added check to CGPDFDocumentMBS to raise out of memory exception in low memory conditions to avoid crashes later.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Xojo Plugins, version 17.3pr6


New in this prerelease of the 17.3 plugins:
  • Enabled SSE2 extension for libPNG for macOS as all Macs with Intel CPU should have SSE2.
  • Updated libPNG to version 1.6.30.
  • Updated DynaPDF library to version 4.0.11.31.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Summer Sale in Xojo Store


Xojo Inc. announced a sale in their store for add-ons to Xojo:

Sale in the Xojo Add-On Store - 20% off!

Beat that summer heat, stay inside with Xojo! Between today and July 16th, shop our add-on store and save 20%, sale includes XDC Videos! Simply use discount code SPLASH when you check out in the store!

Shop the Xojo Add-ons store to find third party products that will help you develop faster and do more! The store includes developer tools, user interface add-ons, database extensions, distribution tools and learning materials, like training videos and magazine subscriptions.

Get access to the 2015 or 2016 Xojo Developer Conference session videos (plus slides) for 20% off. And don't forget, you can still save $200 on your XDC 2018 registration when you sign up now!

Shop now!

If you like, you can get MBS licenses there or contact us directly for the same discount on new licenses.
Same coupon code should work for MBS Orders via Share-It.

MBS Xojo Plugins, version 17.3pr5


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

New Country and Territory promotion


As you may know our MBS Plugins are used in over 55 countries (FileMaker) and 74 countries (Xojo).

But still there are a lot of countries left, so we’d like to offer a promotion:

Get a second year of updates for free when purchasing a new license from us in July when the order comes from a country we not yet have customers from. For some bigger countries, new state/province is also fine.

After a purchase, we can definitive say whether you are from a not yet listed country, so please contact us before/after purchase to check.

You may wonder which countries we don’t have clients from?

FileMaker:
In Europe for example Poland, Ukraine, Serbia and Bulgaria.
In North America for example Alaska, New Mexico and Maine in USA, Ontario in Canada.
In South America for example Peru, Ecuador, Panama and Guyana.
In Asia for example Vietnam, Indonesia or Pakistan.
In Africa there is a lot of space between Egypt and South Africa.

Xojo:
In Europe for example Lithuania, Montenegro or the islands Sardinia and Corsica.
In North America for example Alaska and South Dakota.
In South America for example Peru or Nicaragua.
In Asia for example Vietnam, Bangladesch and Papua-Neuguinea.
In Africa anything between Namibia and Egypt.

So if you like to get a license and contact us and we give you a free update if you add an entry to our country list or at least live somewhere we have no customers yet.

xDev Magazine Issue 15.4 Issue


The July/August (15.4) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Shrink Your Apps by Mattias Sandstrom
Mattias with some techniques to make your built apps smaller.

Windows Fast Listbox Updating by Eugene Dakin
If you want your listboxes updated quickly, you can run into flickering on Windows. Eugene shows how to solve that with some handy routines.

Berlin, Here I Come by Marc Zeedar
Marc went overseas for the first time in years for the MBS Xojo Conference in Germany in May. Here's what happened, with gobs of photos.

Sharing Data for Health, Part 2 by Jc Cruz
Jose concludes the data sharing project he started last issue.

Optimizing Xojo Apps by Christian Schmitz
Xojo is great at handling many technical details for you, but some of that management costs performance. Christian shows how to avoid the slowdowns with these tips.

Plus: Xojo and WWDC, initializing controls, pg_dump, and more!

Archives

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