Updates for Updater, WebStarter and Bugreporter Kits

Today we update our Xojo developer Kits for Updater, Bugreporter and Web Starter. They all got a few bug fixes and changes over time and can be used in Xojo 2021. This includes a Web 2 variant for Web Starter Kit.
  • Bug Reporter Kit 1.5
    • Fixed some localization bugs.
    • Fixed compilation bugs for Xojo 2019r3
    • Changed email script to mark email as UTF-8.
    • Add list of current visible windows with focused control to the report.
    • Updated to Xojo 2021
  • Web Starter Kit 1.6
    • Fixed over 300 changes for Xojo Web 2.0 API
    • Added ErrorName and ErrorStack for JavaScriptErrors table and removed UserDetails
    • Updated for Xojo 2021
  • Updater Kit 2.3
    • Changed HTTPSocket to URLConnection class for newer API.
    • Updated Sparkle framework
    • Moved projects to 64-bit
    • Uses Info.plist added to project
    • Uses Build Step for MacOS to copy Sparkle.framework and key file.
    • Changed some URLs to https:// for app transport security.
    • Replaced updated app on server to be signed.
    • Using SSLConnectionTypes.TLSv12 now for socket.
    • Fixed kCheckSumNodeName to not include 32 as bit number is added later.
    • Updated to Xojo 2021.
If you use one of this components, you may want to download and compare. We recommend an app like Arbed to compare between two projects. When you purchase those Kits, you receive a download link with a year of updates included. If you let your maintenance expire, you may just grab a new license to get a new download login.

Six months till XDC 2022 in London

Just six months till the XDC 2021 in London, England. Tickets are still available for $750 USD till 1st October 2021 instead of $950 later.

It will be held March 30-April 1st, 2022 in London, England at the Holiday Inn Bloomsbury. This conferences is the best place to meet Xojo developers from around the world in real live, make contacts, present yourself as expert and learn what is new in Xojo. Tickets are available in the Xojo store and if you bring your partner, you can order an extra guest ticket for the dinner events.

Check out the conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!

Wether you are full or part time Xojo developer, this is your chance to learn all about the Web 2.0 framework, the Android progress and what's new in the Xojo world.

To get there, please use public transportation. The piccadilly line brings you right from Heathrow Airport to Russell Square Station, just next to the hotel. That trip should cost about 3 £ and you may just pay by tap in/out with your NFC enabled credit card or phone. Otherwise buy an Oyster card and load money on it if you don't have such a card. If you come by Eurostar train through the tunnel from France, you can exit Pancras station and just walk to the hotel. Otherwise take one station via subway to Russell Square Station. That station is right behind the hotel block.

See you soon there!

News from the MBS Xojo Plugins Version 21.4

In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 21.4.

 

DynaPDF

Let's starts with the news from DynaPDF. With the methods CreateTraceFile and AppendTraceFile you can create and append a file that log debugging information. The plugin writes debug messages to this file so you can check which methods you called. The AppendTraceFile method is practical because with this method it is possible to append debug information and not need to override it. 

 

Another new method from the DynaPDFMBS class is the GetInIsTaggedPDF method. It returns true if the currently opened PDF is a tagged PDF. 

Memory Block 

We have the new method ReadFileMBS for FolderItems to allow you the transfer of a file into a memory block. In the parameters we specify the memory block element in which the result should be stored. As return of the method we get a true if the file was read as a memory block.

 

In this context, the new method FindByteMBS for memory blocks is also interesting . With this method we can search for given characters in a memory block. In the parameters we specify an array with the characters to be searched in UInt8. Additionally we can specify from which position in the memory block to search. The default is 0 (At the beginning). The method returns the first position in the memory block where there was a hit. In the following example the positions of the first two hits are determined. 

 

Dim m As MemoryBlock = "Hello World"

 

Dim u() As UInt8

u.Append Asc("e")

u.Append Asc("o")

 

Dim pos1 As Integer = m.FindByteMBS(u)

Dim pos2 As Integer = m.FindByteMBS(u, pos1+1)

 

MsgBox "Found position: "+Str(pos1)+" and „+Str(pos2)


(more)

New in MBS FileMaker Plugin 11.4

In this article I want to introduce you the new functions from the MBS FileMaker Plugin in version 11.4.

Dictionary

Let's start with the new features in the Dictionary component. Here you can now filter the keys by their beginning or their end. With the function "Dictionary.KeysWithPrefix" you can now get a list of all keys that have a specific beginning. You may have entries like "person.123.firstname" and "person.123.lastname" and by using Dictionary.KeysWithPrefix you can look for "person.123." to find all keys starting with this prefix. The opposite is the case with the function "Dictionary.KeysWithPostfix". In this case the keys are filtered by their end. So, in the previous example, we could filter by .firstname and get "person.123.firstname". The postfix and prefix keys functions allows you to organize things in the dictionaries with e.g. dot notation.

SQL

With the new function SQL.FieldExists you can check if a given field exists that we want to query. To do this, we specify the command reference number and the name of the field in the parameters. If the field exists, we get 1 as return value.

(more)

Video about DynaPDF and Xojo

Stefanie shows how to use our MBS Xojo DynaPDF Plugin in Xojo.

ThumbnailXojo and DynaPDF

(English)

28:04 minutes

Watch on Youtube

Please do not hesitate to contact us if you have questions.


Teamviewer installation for remote support

We like to explain everyone how to setup TeamViewer on macOS for remote support.

Go to teamviewer.com and download the Teamviewer app, e.g. teamviewer.dmg. As far as I see you can directly click download on the cookie dialog and then close the website, but the webdesign may change. No need to allow cookies!

Once downloaded, you open the disk image.

Please make sure the domain shown in the GateKeeper dialog is only www.teamviewer.com and nothing different.

(more)

The magic of our XML.Import function

A client got a bit xml file from Swiss government with a list of all registered/permitted medications. A huge XML file with thousands of entries. In order to import those easily, we use our XML.Import function in MBS FileMaker Plugin.

We copied the XML Import example database included with our plugin to desktop. We copied the xml file to desktop and renamed it test.xml. Then we open the database and run the script. Since we didn't change it, it will simply look for a file named test.xml and import it. Since the XML file is 50 MB, this takes a while, but the XML.Import function creates 18 new tables with a lot of fields:



The example has "Import2" as prefix for reasons, but you can change that. We got over 130000 records created within a minute.

The client asked how to get the ID from preparations into the other tables like the Pack table. But then we surprised our client with the magic of FileMaker's relationships. We connect the right parent entries to the UUID field of the parent table. Once all tables are moved in place and all connections are made, the graph looks like this:



As you see limitations table got duplicated, so we can connect it both to preparations and packs.

Once this is setup, we create layouts. A layout for a pack can now show fields from preparation to show which preparation it belongs to.
Also via all that relationships, the table for a preparation can show the first pack, substance and price on the same layout.

Let us know if you have questions and enjoy the magic of those functions.

Last day for OmegaBundle

The end is coming for OmegaBundle 2021. Don't miss the chance to get this wonderful pack of add-ons for Xojo:


Once the day is done for the last time zones (greetings to our Hawaiian Xojo developers), we can tear down the ads and close the store.
Please make sure all pending orders are paid full until Monday.

MBS @ FMTraining.TV

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch. And they have a huge library of FileMaker training material to watch and learn all about the Claris FileMaker product family.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We talk a bit about what's new in MBS FileMaker Plugin in version 11.4 and answer user questions.

Do you like this video?

Please let Richard know and send him your wishes or ideas for future live broadcast as well as topics for training videos. And check out the FileMaker Training bundles as well as their new book for FileMaker, updated for 2021.


MBS FileMaker Plugin 11.4 - More than 6500 Functions In One Plugin

Nickenich, Germany - (September 7th, 2021) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 11.4 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for Claris FileMaker produce line. As the leading database management solution for Windows, macOS, iOS and the web, the Claris FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 11.4 has been updated and now includes over 6600 different functions, and the versatile plugin has gained more new functions:

We updated our WordFile functions to store the resulting word file into a container instead of a file with the new WordFile.WriteContainer function. You can substitute any text in the word file with WordFile.Substitute function or check whether some text is there with WordFile.Contains function.

In this release we add thread pooling for Windows. This highly benefits some functions using threads like e.g. CURL.PerformInBackground. We can reuse threads and lower the memory footprint.

If you have to read plist files on macOS, please check our new PList functions. We return content as JSON and also allow to write back those plist files.

Our SendMail functions got an upgrade to produce S/MIME signed emails with new SendMail.Sign function. For this we also added new PKey.ReadFromContainer function to read in private keys to sign.

For iOS we added SharingPanel functions to run the sharing dialog for sending text, files, pictures or URLs to other applications or services, e.g. AirDrop.

We got a new function Container.Screenshot to take snapshots for WebViewer controls. But this function can also be used for all other named controls on a layout to snapshot content like pictures of text fields.

For DynaPDF we got new functions to set printer settings via new DynaPDF.Print.SetSetting function. You can check whether an input PDF is a tagged one with the new DynaPDF.GetInIsTaggedPDF function.

For macOS you can now have the plugin prevent closing the database design dialog while relationship tab is selected. See SyntaxColoring.DontOpenManageDatabaseDialogWithRelations.SetEnabled function to enable it.

We improved errors printed into trace log, got new SQL.FieldExists and SystemInfo.isWindows11 functions, allow backslash for escaping paths in XML.GetPathValue function and added HEAD as verb for CURL.SetupAWS and CURL.SetupOAuth functions.

Finally we updated CURL library to version 7.78.0, DynaPDF to 4.0.58.153 and SQLAPI to 5.1.5.

See release notes for a complete list of changes.

MonkeyBread Software Releases the MBS Xojo Plugins in version 21.4

Nickenich, Germany - (September 7th, 2021) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 21.4 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 2900 classes and 73,000 documented features, and the versatile plugins have gained more new functions:

We updated our WordFileMBS class to substitute any text in the word file with Substitute method or check if some text is there with Contains method.

In this release we add thread pooling for Windows. This highly benefits some methods using threads like PerformMT in CURLSMBS to recycle threads and lower the memory footprint.

For Windows we added a WinMouseFilterMBS class to universally get mouse events for all controls in your applications. Our WebView2ControlMBS control to use Microsoft Edge/Chrome browser control got new properties for preferences, e.g. to decide whether password fields auto fill.

Our DynaPDF plugin got a DeleteOCGFromDisplayTree method to delete optional content. The GetInIsTaggedPDF method can tell you whether your import PDF is a tagged one. For our Graphics.DrawString integration in PDF we added better code to draw text condensed. Finally we enhanced our tracing feature to append to a log file.

For iOS we got a new SharingPanelMBS class to show the sharing panel and e.g. post multiple pictures to photos application or send several files via AirDrop. We improved NSViewMBS class for iOS (using UIView of course) and fixed issues with submitting to the App Store.

We added FieldExists method for SQLCommandMBS class, the FindByteMBS method for MemoryBlock taking an array of bytes to look for and we added HEAD as verb for SetupAWS and SetupOAuth method in CURLSMBS class. The new isWindows11 function in SystemInformationMBS module may be helpful in the future, WKPreferencesMBS got more properties and NSComboBoxControlMBS class got working keydown events.

Finally we updated CURL library to version 7.78.0, DynaPDF to 4.0.58.153 and SQLAPI to 5.1.5.

See release notes for a complete list of changes.

Neues MBS FileMaker Plugin 11.4

7. September 2021 - Monkeybread Software veröffentlicht heute das MBS FileMaker Plugin für FileMaker in Version 11.4, mit inzwischen über 6600 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Wir haben unsere WordFile Funktionen aktualisiert, um die resultierende Word-Datei mit der neuen Funktion WordFile.WriteContainer in einem Container statt in einer Datei zu speichern. Sie können jeden beliebigen Text in der Word-Datei mit der Funktion WordFile.Substitute ersetzen oder mit der Funktion WordFile.Contains prüfen, ob ein Text vorhanden ist.

In dieser Version fügen wir Thread-Pooling für Windows hinzu. Dies kommt einigen Funktionen zugute, die Threads verwenden, wie zum Beispiel CURL.PerformInBackground. Wir können Threads wiederverwenden und den Speicherbedarf verringern.

Wenn Sie Plist-Dateien unter macOS lesen müssen, probieren Sie bitte unsere neuen PList Funktionen. Wir geben den Inhalt als JSON zurück und wir können auch JSON als Plist-Datei ausgeben.

Unsere SendMail Funktionen haben ein Upgrade erhalten, um S/MIME-signierte E-Mails mit der neuen Funktion SendMail.Sign zu erzeugen. Dazu haben wir auch die neue Funktion PKey.ReadFromContainer hinzugefügt, um private Schlüssel zum Signieren einzulesen.

Für iOS haben wir SharingPanel Funktionen hinzugefügt, um den Sharing Dialog zum Senden von Text, Dateien, Bildern oder URLs an andere Anwendungen oder Dienste, z.B. AirDrop zu übergeben.

Wir haben eine neue Funktion Container.Screenshot, um Schnappschüsse für WebViewer-Steuerelemente zu erstellen. Diese Funktion kann aber auch für alle anderen benannten Controls in einem Layout verwendet werden, um Snapshots von Inhalten wie z.B. Bilder von Textfeldern zu erstellen.

Für DynaPDF gibt es neue Funktionen zum Setzen von Druckereinstellungen über die neue Funktion DynaPDF.Print.SetSetting. Mit der neuen Funktion DynaPDF.GetInIsTaggedPDF kann überprüft werden, ob ein Eingabe-PDF ein getaggtes ist.

Unter macOS kann das Plugin nun verhindern, dass der Datenbank-Design-Dialog geschlossen wird, wenn die Registerkarte Beziehung ausgewählt ist. Siehe SyntaxColoring.DontOpenManageDatabaseDialogWithRelations.SetEnabled Funktion, um dies zu aktivieren.

Wir haben die Ausgabe von Fehlern im Trace-Log verbessert, neue Funktionen SQL.FieldExists und SystemInfo.isWindows11 eingeführt, Backslash für das Escaping von Pfaden in der Funktion XML.GetPathValue zugelassen und HEAD als Verb für die Funktionen CURL.SetupAWS und CURL.SetupOAuth hinzugefügt.

Schließlich haben wir die CURL-Bibliothek auf Version 7.78.0, DynaPDF auf 4.0.58.153 und SQLAPI auf 5.1.5 aktualisiert.

Alle Änderungen in den Release Notes.

Optimizing a Xojo function

Today we want to look on seven different ways on how to implement a function to count the number of space characters in a string. Sounds simple, but depending how you code it, the performance will be much different.

All examples here use BackgroundTasks and NilObjectChecking disabled to avoid extra overhead. If background tasks are enabled, Xojo would insert a call to check for other threads due and we usually disable that in a tight loop as the check needed could take more than what the code inside the loop does. And when we deal with memory blocks below, we don't need to check whether the Memoryblock is nil on every access.

Using Middle

Let's start with the most high level view by using String.Middle function:

Private Function Count1(s as string) As Integer #Pragma BackgroundTasks False #Pragma NilObjectChecking False Dim l As Integer = s.Length-1 Dim c As Integer = 0 For i As Integer = 0 To l If s.Middle(i, 1) = " " Then c = c + 1 End If Next Return c End Function

The Middle() function does some more on text processing here like looking how many bytes one UTF-8 character takes. Since our space we look for is just one byte, we don't need that and can optimize by using MiddleBytes later.

(more)

Omegabundle for Xojo 2021 Developer Tools

Since some of you are on vacation, the offer got a final extension till 10th September 2021:

Get the top developer tools and third party components for the Xojo cross-platform development platform at a huge savings.

Omegabundle for Xojo 2021 is a collection of the most useful tool sets, add-ons, digital books and components for use with Xojo Inc's Xojo development environment. If purchased separately and not including any additional offers, the total cost would be over $3871. Omegabundle for Xojo 2021 costs $399.99.

Xojo is an award-winning, cross-platform development tool for the Desktop (macOS, Windows, Linux), Web, iOS (iPad/iPhone) and Raspberry Pi. With Xojo, you can create native applications by using drag-and-drop to build your user interface and then one straight-forward programming language to enable the functionality. Xojo is powerful and modern, yet easy to use and learn.

Included Products

  • Ohanaware App Wrapper (UPDATED). Prepare your application for the Mac App Store or Web Distribution (macOS only app)
  • Ohanaware App Kit (UPDATED). A huge collection of declares and objects that Ohanaware has created over the years to help us with crafting better macOS applications. Your next macOS app starts here!
  • ExeWrapper (NEW). Microsoft Authenticode Signing - right from Mac! ExeWrapper enables you to code sign Windows executables on a macOS machine. (macOS only app)
  • DMG Canvas (NEW). Drag, drop and design your disk image's appearance and to easily and quickly create a fully assembled disk image ready to ship. (macOS only app)
  • GrafittiSuite Desktop Edition (UPDATED). 55 (up from 53 from 2020!) incredible user interface controls for Xojo that add value and improve the professional appeal of your Xojo applications.
  • XDL Library (NEW).Get some of the best articles from xDev Library, a brand-new ebook, Xojo Database Collection(XDL-0019), that weighs in at over 400 pages
  • MBS Chart Director for Xojo (UPDATED). Professional, interactive, real-time charts in your Xojo applications on Mac, Windows and Linux. Desktop, Console and Web projects.
  • MBS DynaPDF Starter Edition for Xojo (UPDATED). Create PDF files with your applications on Mac, Windows and Linux. Desktop, Console and Web projects.
  • Paradigma Software Valentina Studio Pro 11 (UPDATED). Ultimate reports designer, database administration and forms creation tool that runs on all three operating systems - Windows, macOS, Linux. Select one OS version.
  • Paradigma Software ValentinaDB ADK 10 for Xojo (UPDATED). Embed the ultra-fast, object-relational Valentina database into your applications and deploy royalty free - Windows, macOS, Linux, including Raspberry PI! Also works with local SQLite files and as a client to Valentina Server.
  • Paradigma Software Valentina Reports ADK 10for Xojo (UPDATED). Generate visually rich reports as graphics, web pages or PDF from your Xojo applications on Windows, macOS, Linux including Raspberry PI! Also works with local SQLite files and as a client to Valentina Server.
  • Paradigma Software Valentina Server Unlimited (UPDATED). 4-in-1 Reports Server, Forms Server along with two database servers: one built on object-relational Valentina Database and the other on SQLite. Report and forms serving works with MySQL, PostgreSQL, MS SQL Server and the included Valentina and SQLite servers
  • xDev Magazine (UPDATED). Get back issues and a year’s subscription to xDev Magazine,  the professional's magazine for developing with Xojo.
  • XDC Developer Conference Coupon (NEW). Save $100 off of the XDC Developer Conference 2022 in London! Coupon must be used before the end of 2021.
(more)

MBS Xojo Plugins, version 21.4pr5

New in this prerelease of the 21.4 plugins:
  • Added ReadFileMBS for reading file data into MemoryBlock.
  • Updated SQLAPI to version 5.1.5.
  • Added FieldExists method to SQLCommandMBS class.
  • Fixed Graphics.DrawString to better draw condensed text for DynaPDFMBS class.
  • Added isWindows11 function to SystemInformationMBS module.
  • Fixed problems with AVFoundation Plugin and a conflicting function name for iOS apps.
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.4pr5

New in this prerelease of version 11.4 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.

xDev Magazine 19.5

The September/October (19.5) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Often-Used Calculations by Markus Winter
Markus explores how to create an interface for frequently-used calcuations.

How to Make a Bad App by Marc Zeedar
It takes great effort to make a truly bad app. Marc explains just how to do it!

A Xojo Business Solutions Platform by Steve Pardoe
More than a year in the making, Steve explains how he built a business platform using Xojo.

Exploring Cryptography, Part 3 by Eugene Dakin
In his series on cryptography, Eugene explores something called the Polyalphabetic Substitution Cipher.

An Idea Xojo's Future by Markus Winter
Markus presents a radical proposal for Xojo's future.

Plus: Xojo 2021R2.1, rotating PDFs, SQLite, embedded Javascripts, native versus not, machine unlearning, and much more!

14 years of MBS Xojo DynaPDF Plugin

About 14 years ago we started the development of our DynaPDF Plugin.

After a year of development, the plugin was released to the public on 1st Sep 2007 with MBS Plugin 7.6pr1.

This plugin has been a big success for us and provides the PDF engine to thousands of Xojo applications around the world. Based on user feedback we got a lot of functions over the years like the raster engine, PDF/A conversion and ZUGFeRD support.

Please make sure you try the plugin, make it part of your toolbox and start to enjoy all the PDF features you can add to your application.

PS: The OmegaBundle 2021 includes a DynaPDF Starter license and is a great way to get a license.

Archives

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