Our Blog, Filemaker only, Xojo only, Archive (older), Follow us on Twitter, Xing, LinkedIn or Facebook.

Transparent Screensaver for macOS

Still my favorite screen saver. Have you tried it?

Nickenich, Germany - Monkeybread Software today is pleased to announce the release of Transparent Screensaver 2.4, an update to their popular screensaver utility for Mac OS X. The utility adds a variable transparency overlay screensaver to the list of screensavers in Preferences. With the screensaver running at 50% the effect is one of dimming the desktop and all open windows; 0% is black; 100% is completely transparent. With the screen lock option engaged, the user can continue to view their iMessage Buddy List, iTunes Library, or any open process or window, while waking their computer from screen saver mode is password protected.

If the user wishes to remain logged in to their computer, but prevent others from using it, he can lock the screen. This is done in System Preferences - Security - General. By selecting "Require password to wake this computer from sleep or screen saver," password authentication will be necessary to leave screen saver mode. With Transparent Screensaver the user can continue to view the desktop and all open windows while the computer remains inaccessible to others, screen locked.

Feature Highlights:
  • Transparent screensaver dims screen
  • Screen may be locked in transparent screensaver mode
  • Screen may be monitored while computer is inaccessible in screen saver mode
  • Prevents burn-in, maintains privacy, and protects security
  • Simple to use and install utility
Version 2.4 makes Transparent Screensaver Retina compatible. The utility is self-installing after download, allows variable transparency from 0% to 100%, supports a variable screen update rate of 0 to 30 frames per second, and includes two additional screensavers: pure white and pure black. Although screen burn-in (permanent damage to a monitor from continuous display of a single image over many hours) is less of a problem with modern LCD screens than CRTs, Apple still provides an optional screensaver function when there has been no input for three hours or less. At 50% or less transparency, Transparent Screensaver provides both protection from burn-in and the ability to monitor a locked screen.

"MBS Transparent Screen Saver is an ideal solution to privacy, security, and burn-in issues in Mac OS X," stated MBS CEO Christian Schmitz. "It incorporates all the benefits of a screensaver, while preserving screen visibility."

System Requirements:
  • Mac OS X 10.5 or later including macOS 10.13 High Sierra
  • 242 KB
Pricing and Availability:
MBS Transparent Screensaver 2.4 for Mac OS X is currently available as shareware, which is free to test for 30 days. A license is available from MBS for 15 US Dollars, or 10 Euro. Review copies are available on request. This update is free for all registered users.

Batch Emailer Application for Xojo as a sample project

For over ten years I use my own email sending applications to send newsletter to a group of email addresses. I recently talked with other Xojo developers and maybe some of them like to use this application for their own needs. Please note that this app is developed over 10 years, most settings are hard coded and the app and code is not necessarily pretty.

But here are features:

You can copy & paste a list of emails addresses with tab separated name and possible info text to the text area on the left. Than you can put in plaintext in the textarea in the middle. There is a also a tab panel to include html if you want. But I send 99% of my emails with plain text only. You can pass a subject list in the textfield on the top. The debug checkbox allows you to send email to yourself to test. The paste button allows you to paste email text with subject line as first line to the fields.

On the right you have the log listbox with messages from sending. On bottom left you can add an attachment. You also enter on the bottom the sender email addresses. As you are Xojo developers, you can enter your defaults in the Xojo IDE of course. Send button starts sending emails. The delay checkbox allows you to send emails with a delay, so you are not marked as spam sender by too many emails per minute.

The application uses the MBS CURL Plugin to build emails and send them. We use the CURLSMultiMBS class to run several CURL connections in parallel and get emails send quickly. But we also use this multi interface to prepare thousands of emails and push them as needed to be sent.

Please modify send method (and other places) to match your needs. This includes putting your name everywhere, your smtp credentials and server, your email address, the recipient for debug sending and a few other things. The email can contain %name% for the name of the recipient as well as %text% for some extra text parameter in the email recipients list.

The application writes a few log files in the app folder for emails sent including all the CURL debug output. When email sending fails, you will see we reduce the recipient lines on the left to the ones failed. Usually we than try it again to see if they go through second time.

Download: massemailer.zip

Please try it, please modify it and let me know what you made from it!
I’ll include the example with MBS Plugins and if you have changes, I could include them.

Session ideas for next MBS Xojo Conference

During the London conference we got a few ideas for sessions:
  • Screen Layout best practice
  • Intuitive design of applications
  • Weak areas of Xojo and best practice to handle them
  • Xojo Versions, why you may use one version over the other for a project
  • GDPR, the new data protection rules in Europe and best practices
  • Brexit and how it affects your business as UK/EU developers
  • Tips to optimize projects for performance
  • Beginner Session to introduce Xojo to people new to the platform.
    (This could be put in a separate room and run in parallel to a advanced topic)
Maybe someone likes to volunteer and present about them?
Or you have more great ideas?

As I make conferences for the community, you are welcome to join and do great presentations. In Berlin I was quite happy to have so many presenters that I could reduce my own part to only one session. A thing that did not work for London, where I had to make three sessions myself to fill the schedule.

The next Xojo conference in Europe will be the MBS Xojo Conference in Munich in September 2018. See you!

MBS Xojo Plugins, version 17.5pr7

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

MBS Xojo products overview from London Conference

ThumbnailAt the MBS Xojo Conference in London, I did a presentation about MBS Plugins, our Kits and what is new and changed in 2017.

Video is available here: MBS Xojo Products (English and 50:11 minutes)

Please watch and let me know if you have questions about MBS products.

The next Xojo conference in Europe will be the MBS Xojo Conference in Munich in September 2018. Please join us there!

Upcoming changes for 2018 in MBS Plugins

For 2018 we change a few little things on the pricing/licenses.
  • For our FileMaker plugin we add a new tier 100 seats and move up the price for unlimited seats in a company. To secure old pricing, you can update in advance in 2017.
  • For updates we will only accept update order until 12 months after a license expired. We usually recommend to extend maintenance at the time the license expires. If you miss that 12 month deadline, you have to buy a new license. There may be a transition period where we remind all people with expired licenses to update.
  • We already implemented trial licenses and use those to give new users a way to try the plugin for a month without getting warnings about missing license keys. This allows better testing, especially on projects with server software.
  • For 2018 we plan to offer the option to get subscriptions for the plugin. Which simply means that Paypal or Share-It or we directly will automatically bill you for updates unless cancelled. Simply a way to make ordering easier and not miss to update in time. The license will be perpetual as usually and continue to work, even if you cancel the subscription.
  • Some clients already have maintenance contracts. They define what licenses get automatically issued and billed as well as what support service is included. If you like to get such a contract, you can contact us.
  • Plugin business is growing nicely over the years. For 2018 we may be finally at the point where we can add staff. So I am looking forward to get another C++ developer and maybe someone for writing tutorials. This may be a lot of work to make some processes available to be run by several people instead of just one or two, but I hope this will get sorted out quickly.
  • On the trip in the UK the main political topic has been Brexit. Nobody knows yet what the conditions for my sales to the UK will be in 2019 as well as how much value the pound will have. But to secure todays pricing, you can order MBS Plugin licenses and updates for up to 5 years in the future.
  • Due to changes in Xojo 2017r3, all Xojo customers must upgrade to 17.5 plugin (for 64-bit DLL fix).
  • All FileMaker users need to upgrade to recent plugin version if they plan to use next FileMaker version. While older versions may work, we fixed issues and I would hate if you waste time debugging them once again. FileMaker Cloud should only be used with 7.5 and forward (Linux linking problem got fixed).
As usually with 60000+ functions in Xojo and 5000+ functions in FileMaker, it is unlikely you may find a bug. But some fixes like the boolean return value issue on FileMaker may affect hundreds of functions. So please do yourself a favor and stay current. If you find a problem, please try the latest version to check if your problem was fixed already.

Greetings from MBS Xojo Conference in London

The MBS Xojo conference is running well currently and presentations run here all day. We had presentations from David Cox, Trisha Duke, John Dear, mMarc Zeedar and me.

Yesterday we had a training day for Xojo with a nice group. We looked into using dictionaries and threads, using helper tools with shell class, using controls for iOS, Web and Desktop projects and much more.
Later that evening we went to the Jimmy's restaurant for an excellent dinner.

If you are in London, interested in Xojo and you like to join dinner tonight, please send me a message.

The next Xojo conference in Europe will be the MBS Xojo Conference in Munich in September 2018.
Please join us there!

Prefetching records from databases

When you do queries to a SQL database, you should know that in worst case, there ia a request over the network for fetching each record. So everytime you call MoveNext or FetchNext methods, the database driver may go and request the next record from the database server. This can be quite time consuming if you need 10000 rows and you do 10000 network roundtrips, each with a few milliseconds.

But you can ask our SQL functions to do prefetching and get more records in advance. For example you can use a prefetch size of 100 records. On the first record query, you get the network request to get 100 records. Than your 2nd to 99th query return immediately with data in practically no time.

The picture on the right side shows how long record fetching takes in milliseconds on a test application. The batch size is 10, so getting 10th, 20th and 30th record takes each 70ms, which all the records between take only a small amount of time.

In Xojo with SQLDatabaseMBS, SQLCommandMBS or SQLConnectionMBS class:

dim nBulkSize as Integer = 1000
c.Option(SQLCommandMBS.kOptionPreFetchRows) = str(nBulkSize)

Please note that this is a setting which applied on the database connection will propagate to all commands running on that connection.

In Xojo with JDBC using JavaDatabaseMBS class, you can use the JavaResultSetMBS.FetchSize or JavaStatementMBS.FetchSize properties to enable the same batch loading.

In FileMaker with MBS SQL functions, you can call

MBS( "SQL.SetConnectionOption"; $Connection; "PreFetchRows"; "100" )
MBS( "SQL.SetCommandOption"; $Command; "PreFetchRows"; "100" )

to do the same.

I hope this helps you for your network based database access. If you use SQLite, please do not forget to use a big cache.

This week Xojo Training and Conference in London

Monkeybread Software is pleased 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. 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 from 7 countries are already registered for this event and we also hope to see a lot of people for the dinner on the evenings. We still can add a few seats for training, conference or just the Thursday dinner. Interested?

If you like to attend a bigger conference, check out the MBS Xojo Conference planned for September 2018 in Munich.

MBS Xojo Plugins, version 17.5pr6

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

Transparent video playback in Xojo

For a normal movie player, you can use the MoviePlayer control in Xojo. But if you need something special like transparency, you can use MBS Plugin and the AV* classes:

The tricks used here are:
  • Fill window background with transparent color
  • Disable window shadow.
  • Set window to be non opaque.
  • Set player layer to be non opaque.
  • Set player layer to have no background color.
Only if all settings are right, the transparency works.
The example will be included in next prerelease. Or email for a copy today.

Trial license keys

For the next plugin version we added the possibility to create trial license keys for our FileMaker and Xojo plugins.

A trial key is only valid for a limit time and allows to test all features without demo limitations. Due to the time limitation of the key, you can use it for a few weeks and than it stops working.

We setup a form to request a license key:
Request Trial License Key

We may limit who can get a trial and filter out the requests looking like spam.
But otherwise I'd expect a lot of people would like a free trial. Please understand that trial keys are not intended for deployment of solutions as keys expire. Our regular keys don't expire and can be used forever with the plugin versions released before a given date.

You can also explicit register for newsletter, so you know about new releases and events.

Disable edge touch gestures in full screen windows

When you run a touch screen with Windows and make your Xojo app full screen, you may want to disable the edge gestures. Microsoft defines properties to be set for a window where you can use the option PKEY_EdgeGesture_DisableTouchWhenFullscreen to disable this.

dim w as new WindowsPropertiesMBS(self)
dim key as string = w.EdgeGestureDisableTouchWhenFullscreen

w.Value(key) = true

You may be able to set or query other properties if needed and of course query available keys.
New plugin will be available soon or ask for it via email.

xDev Magazine Issue 15.6 Issue

The November/December (15.6) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Delete It! by Sam Rowlands

If you've ever run into a Mac file that won't delete, you know how that's a huge problem. Here's a solution to deleting those pesky files.

Green Screen Saver by Eugene Dakin

You probably know the "green screen saver" effect from the movie, *The Matrix*. Now you can make your own in Xojo!

A Matrix Tree by Marc Zeedar and Jens Bendig

Using linked lists to connect items can be problematic, so here's how to use a matrix, instead.

Move, Rectangle, Move! by Sam Rowlands

Sam shares some cross-platform animation code for Xojo.

Sharing Data for Health, Part 4 by JC Cruz

This time Jose explains how to import data in XML format.

Plus: All about 64-bit, pg_restore, Aloe, external items, and more!

PS: Meet Marc Zeedar live next week in London at our conference.

MBS Xojo Plugins, version 17.5pr5

New in this prerelease of the 17.5 plugins:
  • Switched to Xcode 9.1.
  • Added AppleScriptMBS.AllowInteraction property.
  • Added more properties to ECDHEMBS class.
  • Fixed issue with ECDHEMBS where curve name for named curves was not included in key for Windows.
  • Fixed picture methods for mirroring to work on console better.
  • Added Picture.ThresholdMBS function.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Formatted Text Control 3.1.9

BKeeney Software has released version 3.1.9 of the Formatted Text Control, a canvas based word processing control for Xojo Mac OS X and Windows applications. The FTC is an alternative to the built-in TextArea control and allows for in-line graphics, hyperlinks, custom components, better RTF support and much more. The demo project has quite a few examples, including a Masked Text Field, XojoScript code editor example, Embedded FTC (in your own canvas), as well as the word processor with page view.

This is a maintenance release and is free for all version 3 users. It fixes the following items:
  • Fixed issue with view scale < 1.0 setting up the clipping page incorrectly (#3500)
  • Fixed spelling replace on TestWindow (#3581)
  • Fixed Mac text AutoComplete positioning (#3574)
  • Fixed Tabstop Widths (#3500, #3576)
  • Updated Linux declare for doubleClickTime to include GTK3 in newer Xojo versions (#3575)
  • Fixed the Draw Control border on the right side (#3473)
  • Added SpellCheck configuration testing to contextual menu on TestWindow
  • Added SpellCheck configuration testing to App.Close event
  • Fixed resources directory location for the the Spell Checker initialization
  • Added more comments in code if plugins are missing
The Formatted Text Control costs $150 and is 100% unencrypted Xojo code. Version 3 and above requires the use of the Text Input Canvas plugin (included in package) to allow for proper text handling in Cocoa builds. Product page at bkeeney.com/formatted-text-control/

PS: Don't forget to ask Bob for PDF output to be added via DynaPDF plugin for v4!
That would give excellent PDFs with a lot of features and correct font embedding.

The office application for a market garden shop in Xojo

Recently I was asked how much time it needs to write a business solution for a small business in Xojo and how that compares to other tools.

Years ago I wrote an application for a small company to manage a market garden. They grow plants, collect seeds and sell seedlings, beside a lot of related products for gardening. The application has the following features:
  • Manage categories of products
  • Manage products with labels, prices, html & text description
  • Export products for upload to webshop
  • Print labels for products
  • Manage customers with billing & deliver addresses, newsletter subscription and bank account information.
  • Print mailing labels for packages.
  • Statistics to list best sellers with amounts and revenue per product.
  • Letter window to write emails to clients and keep them stored. Use place holders to auto fill in values and pass letter to email application or print for mailing in letter.
  • Newsletter window to setup various newsletter and send to all subscribers or only to people in a certain area.
  • Label printing for mailing labels for yearly catalog mailing. Easily prints 1000+ labels.
  • Manage orders.
  • Receive new orders from web shop. Order can be reviewed and modified.
  • Split function to split invoice between products available now and later.
  • Print product labels for products in one invoice.
  • Print invoice, package label and send email to announce delivery.
This app helped the company a lot and got them running much more efficiently. Instead of writing 40000 labels each year by hand, they now print them in the right quantity. For a product bundle, the right amount of labels is printed covering each product that needs labels. Same for an invoice where you can print all labels for all the plants and than go to the greenhouse to collect them.

This is a single user database application running based on SQLite database for 8 years now. It runs on a dedicated Mac in the office and is used over the day by several members of staff to edit products, print labels and handle orders. Originally we started in REALbasic, than Real Studio and now Xojo.

Development in Xojo is quite straight forward. We often arrange controls on the windows with the client together and than fill the events with code later. For the database access we simply build SQL statements and run them. Of course we use prepared statements to avoid SQL injections. Once we had the load and save for a window done, the other windows are more or less copy & paste. In total this project has 22 windows, printing the code gives a 218 pages PDF.

Label printing is done via a dedicated label printer where we sent control commands to the printer via CUPS Plugin functions directly over USB. And the whole job started just by them looking for help on getting the printer to print. But later we discovered it would be worth to have the app know the products, so you don’t need to enter the labels manually. And than when we have products, why not import orders and print invoices and labels for each order? Well, as you see this solution grew over the years and I am looking for keeping it running for another decade.

The totally billed time was 62 hours of development. That includes times at a visit in the office to get the printing working, write down specifications, check how they process orders, get details on web shop interface and starting with a prototype. It started in 2009 with a prototype and got a working in production solution within a few month. Between the first contact and a working application, it took 5 months with a lot of breaks for several weeks, but over the years the application grew a bit to the current level. The time above also includes support calls and bug fixes.

I hope this information helps a few people to see how quick you can develop in Xojo and how long a project like this takes.

MBS Xojo Plugins, version 17.5pr4

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

Windows DLL Limits and Xojo 64-bit IDE

As you may have read, Xojo goes 64-bit for the next version of the IDE. That’s great news and we plan to have our plugins ready soon. But on Windows we run once again into a limit of the number of DLLs which can be loaded. By default each DLL uses 1 to 2 slots for TLS/FLS table. The FLS limit is 128 and the TLS limit 1088. For 32-bit I did make a change to avoid this years ago. This way MBS Plugins didn’t count against the smaller limit.

So we made a change for 64-bit Windows to use TLS only and so we can load 500 DLLs without a problem:

WhatFLS useTLS use
Default Visual Studio 64-bit DLL10
MBS Plugins 64-bit DLL01
Xojo Database Plugins 64-bit10
Default Visual Studio 32-bit DLL11
MBS Plugins 32-bit DLL02
Xojo Database Plugins 32-bit10

All per DLL and plus the base level of about 50 TLS handles and 12 FLS handles for Xojo itself.

So for Xojo 2017r3 on Windows, you will definitively need our 17.5 plugins with the fix. Older plugins will only load partially. This fix enables to use to 500 MBS Plugin DLLs if needed and still have room in both tables for other plugins and Xojo itself.

MBS Xojo Plugins, version 17.5pr3

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

Older blog entries:

2017-10-22 75th Country
2017-10-21 FileMaker Server Security and plugins
2017-10-20 Windows Touch Events
2017-10-20 Just four weeks till Xojo Training and Conference in London
2017-10-18 Xojo will get 64-bit IDE
2017-10-16 Big SQLite Cache for 64-bit in Xojo
2017-10-16 MBS Xojo Plugins, version 17.5pr2
2017-10-15 Reise in die Schweiz zu FileMaker und Xojo Entwickler Treffen
2017-10-14 Conference discount offer
2017-10-09 Detect PrinterSetup data format
2017-10-09 Plugin Reorganization Summary
2017-10-09 FileMaker Conference .fmp[x]Berlin 2018
2017-10-03 Xojo Forum now with 18000 members
2017-10-01 MBS Xojo Plugins, version 17.5pr1
2017-10-01 Thanksgiving
2017-09-30 Replace Image in PDF
2017-09-27 Xojo Developer Conferences 2018
2017-09-26 MonkeyBread Software Releases the MBS Xojo Plugins in version 17.4
2017-09-23 Bind database fields with fields array in Xojo
2017-09-21 MBS Xojo Plugins, version 17.4pr8


Nov 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
XML: RSS Feed XML: Atom Feed