APIs change, but don't worry

Over the years APIs (application programming interface) change. As we code plugins in C, C++ and Objective-C, we are faced with all the changes from Apple and Microsoft as well as changes in libraries we use. No need for you to keep up to date with those changes as we can update the plugins to newer APIs without changing the interface to REAL Studio. We already switched a lot of functions from using Carbon to Cocoa for the future REALbasic Cocoa target. Also we updated older file functions on Mac from using FSSpec functions to newer FSRef functions. No need for you to care about this implementation details.

But from time to time things change or we simply discover a bug. For example on the CURLMBS class we had several changes over the last years. With newer CURL library versions there are options going away and new options being added. Whether an option in CURL is an integer or a boolean is not always well documented, and sometimes changes over time. So a few properties like OptionFTPCreateMissingDirs changed their type from "boolean" to "integer" to allow a third state. Other properties changed because we simply chose the wrong REALbasic data type. Also we had a typo error in our code so we renamed GetInfoResposeCode to GetInfoResposeCode.

If you have an old project which does no longer compile or function properly, you can try to fix it yourself. But before you become frustrated, please email us. Maybe you missed just a little note in our release notes. Good night.

Combobox troubles

The Combobox is a nice control, but it lacks a lot of features.
It has currently 43 feedback items in feedback and it could be a few more. What I'm missing personal are methods to open the combobox and let the user see choices while he types. Of course it would be nice if documentation says that DeleteAllRows for example clears the text in the textfield.
My feedback report: feedback://showreport?report_id=12593
Please sign on, add your comment there and put it on top of your favorite list. I already got it here from position 3422 to position 843 :-)


Do you know phidgets? That are little USB devices which I support with my plugins. There are phidgets with sensors like distance, reflection, weight, touch, motion, voltage, temperature and a few more. There are several motors available, RFID readers, displays, LEDs and couple more.

I personally have a Text LCD Display here for testing.

So if you want to write an application which emails the user if the temperature in the server room is too high, you can use the temperature sensor.

And believe me, there is a lot of money you can make if you offer consulting for companies in your area to help on automating operations. For example how about an app which uses a sound and a light sensor to detect people, activates a camera and sends an email with the picture to some security personal? Maybe also using a RFID sensor on some key locations where a security guard can identify itself and being not a burglar?

Worldwide spread of REALbasic updated

Today I run a big sample of addresses through a mapping tool. Of course data is anonymous as precision was reduced and we do not show who lives under the red dots.
This time I not just made a world map, but also a map for the USA and one for central Europe:

Download big images:

Especially those big maps are quite useful if you want to plan a REALbasic related event and you need to know where you find clusters of users.
Enjoy them and write me. Is this useful? Interesting?

Emails get lost?

We get orders for new plugin licenses every day, but from time to time things go wrong.

Sometimes customers make an order and call us 5 minutes later as they want to release their application right now and are waiting for the license. Please make sure you order licenses long before you ship. Best before you give your app to testers because from time to time there can be a bug in the registration code. And it doesn't look nice if you ship an app which tells the user that you don't have a REAL Studio or MBS Plugin license.

Other issue is that emails sometimes do not reach their destination. Sometimes people make an order and we do not receive it. Or we sent a license key and that email is lost. So if you wait for a response and you did not hear from us within 2 days, you should contact us. For the rare case we do not get your emails, please use our feedback forms on the website. Also it is always good to have a second email account using a different server in a different location with different spam filters.

Currently, I'm waiting for a client from Milano to respond. So if you read it here, please email me.

About InstallSystemExceptionHandlerMBS

What happens if your application runs out of memory?
See Feedback Report 12072: REALbasic crashes when C++ raises exception in out of memory situation

REALbasic does not handle exceptions on the c++ new operator, so your app crashes. I hate this. I'd prefer if they catch this c++ exception and raise an OutOfMemoryException (which they prepared earlier when they had memory).

Today I added a plugin method InstallSystemExceptionHandlerMBS. If you call it, it will wait in background and whenever your app crashes, it will show a message. The last message before your app dies, but it's better than nothing. This works currently on Mac OS X and Linux, but not on Windows.

InstallSystemExceptionHandlerMBS(Message as string = "")

If you like to try it, go to our prerelease plugins and download the new Main plugin and the sample project: http://www.macsw.de/plugin/Prerelease/

A feedback item you may want to check

REALbasic strings have a text encoding assigned and you normally do not care. For example if you pass a string from an editfield to a function like val(), you do not need to know what text encoding the string has. A function returns a string in the easiest encoding. The next function works with that encoding or converts it to whatever it needs. All transparent for you.
Now if one of the functions fails on this process, you are in trouble. Especially if it's a core function from the REALbasic runtime which is used in every app:

The len() function does not return the correct string length for strings with the UTF16BE encoding.

Please add this feedback item to your favorites on a good position as we need bugs like this fixed yesterday.

MBS REALbasic Plugins, version 10.4pr2

New in the second prerelease of the 10.4 plugins:
  • Changed loading of libhid and libusb in Linux HID Plugin part to make it compatible to more linux versions.
  • Removed WindowsPrinterListMBS class.
  • Added GetDefaultPrinter and SetDefaultPrinter to WindowsPrinterMBS class.
  • Added ChangePrinterSettings, GetPrinterSettings, GetPrinterTechnology and CanPrinterPassThroughPostScript to WindowsPrinterMBS class.
  • Added WindowsDeviceModeMBS class.
  • Added WindowsPrinterMBS.DevMode.
  • Updated DynaPDF to version
  • Changed a few internal unicode functions. I hope this has no side effects.
  • Added CGGetOnlineDisplayListMBS.
  • Added LinuxHIDInterfaceMBS.Available
  • Added Picture.RotateMemoryMBS
Download: macsw.de/plugin/Prerelease

REAL Software events in Japan and Southkorea

Seems like REAL Software plans two events in asia. From their twitter message:
Save the date! REAL Software event Japan Aug 2 @ Fukuoka, REAL Software event Korea Aug 4 @ Seoul
Same in a recent twitter message from REAL Software Japan.

Who plans to visit such an event? Please email me, post a comment or use the feedback forms.

Maybe there are enough so I may decide to come? 15 hours for a 9000 km flight.


Learn Something New Every Day...

Today I learnt that in RB 2009r2.1 (Still my favorite RB version) the ContainerControl.EmbedWithin places the controls on front on Windows and on the back on Mac OS X.

That is the reason I now have a canvas on the Mac side. So I can embed a second layer not on the window, but on the canvas to have it on front. On Windows I can simply embed to the window.

MBS REALbasic Plugins, version 10.4pr1

New in the first prerelease of the 10.4 plugins:
  • Fixed WebViewMBS constructor to work again.
  • The Linux HID Plugin part now loads libhid.so and libusb.so at runtime. So your app launches if this libraries are missing and you can ask the user to install them.
Download: macsw.de/plugin/Prerelease

Playing with VLC

You may know the VLC application. It plays all kind of video formats and behind it, there is the powerful library call libvlc. Basicly the application is just the front end to this library. Now you can use this library in your applications to play audio video, extract frames.
The only problem is that libvlc is GPL, so we may have problems using it in commercial projects.
Contact me if you are interested in this project.

Geoff's Cocoa update

There is a new blog post on www.realsoftwareblog.com about their progress on Cocoa.

While I see those screenshots with Carbon and Cocoa, I hope they make the controls look identical on both targets. I'd hate to move/resize all my textfields, statictexts and popupmenus to have the app look the same on Cocoa as on Carbon.

If you like those pushbuttons, check our NSButtonMBS class. You can have them already today in REAL Studio. Same for the ghost picture with Drag & Drop. If you need help for implementing this, email me.
Just my 0.02 cents...

MBS REALbasic plug-ins version 10.3

The MBS plug-in comprises a collection of several plug-in parts which extend the REALbasic development environment with 1,300 classes featuring over 29,000 documented functions.

This is a big update to our plugin collection. Featuring 36 new classes and over thousand new features, we can only list a few highlights here:

First we have a new example project coming with our ChartDirector plugin: Inside the ChartDirector Control project, you will find a canvas based ChartDirector control which implements adding charts to your application. With a few clicks you copy this class to your projects and add beautiful charts to your applications. All the difficulties in the mouse handling have been done for you so you can zoom and move in the chart.

Second, we have a new WIA Plugin part. This 20 new classes for Windows Image Acquisition let you browse for digital cameras. Once you have a device, you can import images or send commands to capture new images or delete images.

Third, we got a few customizable Cocoa controls: You can now customize a PDFView, a QTKitMovieView or a QTKitCaptureView. Draw into the display as you need to show custom widgets and get mouse events for them. Also we have a lot of new Cocoa related stuff like the Render function for the PDFPageMBS class to give you pictures for pages.

Also we got HID classes for Linux, a set of functions for a Machine ID, new picture functions and a lot of improvements on the existing stuff.

Release notes

MBS Plugins 10.3 Release Notes

We will release 10.3 plugins later today. Here are already the release notes: (more)

MBS REALbasic Plugins, version 10.3pr10

New in the 9th prerelease of the 10.3 plugins:
  • Fixed text encoding on DynaPDFMBS.EnumHostFontEx on the FilePath parameter. Now Windows ANSI on Windows and UTF8 on Mac/Linux.
  • Fixed a crash in SQL Plugin with SQLite on Linux.
  • Fixed a bug in SQL Plugin String handling.
  • Updated DynaPDF to version
As we are close to the release of final plugins, please report all bugs you see as soon as possible.
Download: macsw.de/plugin/Prerelease

Today: Atlanta REALbasic Users Group Meeting

There is a regulary meeting of REALbasic users in Atlanta and if you have time, I suggest you check it out. I hope to attend myself the next time I visit the USA:

The Atlanta REALbasic Users Group will be meeting Monday, June 14th. For this meeting we'll be discussing threads, how to best implement them, and how to get the most out of the processing power that is in our PCs and at our fingertips.

When: 6pm to 9pm
Where: Ippolitos Restaurant, Sandy Springs


If you live in the Atlanta area, we'd love to meet you and talk all things REAL Studio!

Bob's Guidelines

Bob Keeney wrote a nice article about coding guidelines.
I recommend you read it. Maybe you can learn something?

MBS REALbasic Plugins, version 10.3pr9

New in the 9th prerelease of the 10.3 plugins:
  • Changed CURLS Plugin on Windows to link to a different set of libraries so CURL now supports SSH on Windows, too.
  • Fixed a check in the ScreenshotMBS function which made the plugin use slower QuickDraw methods in cases where OpenGL should have been used.
As we are close to the release of final plugins, please report all bugs you see as soon as possible.
Download: macsw.de/plugin/Prerelease

Disable tabs on tabpanel

Not sure if you know it, but we have a nice function TabpanelEnabledMBS in our plugins to disable tabs in a tabpanel. Currently Mac only and I use it frequently myself. No idea why REAL Studio does not support it out of the shelf:

About the VAT rules

Sometimes people ask me questions like:
  • Why do you have so many options in your order pages?
  • Why do you need to know my postal address (or country)?
  • What is a VAT IDs.
So here an explanation: (more)

Neue Ausgabe der Hakin9

Es gibt eine neue Ausgabe vom Hakin9 Magazin:

Download: http://download.hakin9.org/de/Hakin9_DE_05_2010_DE.pdf
Website: http://hakin9.org/de/magazine/1104-ssl-zertifikate-sicherheit-mit-einschrankungen

English: There is a German magazine about IT security and you can download here the newest issue.

REALbasic Development Magazine - Special MBS Edition

Over the last years I wrote dozens of articles for the REALbasic Developer Magazine. A few months ago I had the idea of making some articles available to more people. Not everyone using REALbasic has a subscription, so this free issue collects a few nice articles.

If you like the magazine, check out their website, read some of the older issues or get a subscription.
More information and Download

Thanks to Marc Zeedar from RB Developer Magazine to make this possible. Also thank you to Dan Wilson who made a special MBS related comic and Jeff Quan for the nice cover art with the plug-in.

MBS Releases Transparent Screensaver 2.3 for Mac OS X

Nickenich, Germany - Monkeybread Software today is pleased to announce the release of Transparent Screensaver 2.3, 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 iChat 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.3 makes Transparent Screensaver Snow Leopard 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. Also fixed in version 2.3 is a memory leak issue present only in Mac OS X 10.6.3.

"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
  • 228 KB

Pricing and Availability:
MBS Transparent Screensaver 2.3 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 Euros. Review copies are available on request.

Monkeybread Software: http://www.monkeybreadsoftware.de/
MBS Transparent Screensaver 2.3: http://www.monkeybreadsoftware.de/Freeware/Transparent.shtml
Download MBS Transparent Screensaver: http://www.monkeybreadsoftware.de/Freeware/Transparent.zip
Screen Shot: http://www.monkeybreadsoftware.de/Freeware/images/Transparent.jpg
Application Icon: http://www.monkeybreadsoftware.de/images/MBSLogo.jpg

Located in beautiful Nickenich, Germany, Monkeybread Software is a privately held company founded in 2000 by Christian Schmitz. Monkeybread Software focuses on the Macintosh and Windows platforms. With over eleven years as a software developer, Christian's aim is developing unique and useful utilities, complemented by first-class customer support. Copyright 2000-2010 Christian Schmitz Software GmbH. Monkeybread Software is a registered trademark of Christian Schmitz, Nickenich. All Rights Reserved. Apple, and the Apple logo are registered trademarks of Apple Computer in the U.S. and/or other countries.

MBS REALbasic Plugins, version 10.3pr8

New in the 8th prerelease of the 10.3 plugins:
  • Added ATSUTabMBS class.
  • Added CFAttributedStringMBS class.
  • Added DynapdfMBS.GetInIsTrapped.
  • Fixed PDFViewMBS constructors.
  • Updated DynaPDF to version
  • Added NameExtensionMBS and NameWithoutExtensionMBS functions to folderitem class.
Download: macsw.de/plugin/Prerelease

Looking for new video topics

As you may know we have a couple of video tutorials for our plugins.

Now do you have wishes?
Tell us what topics you'd like to see. What classes may be interesting for you to learn more about?
Please send us an email, use the comment or feedback forms.

Atlanta REALbasic Users Group Meeting

There is a regulary meeting of REALbasic users in Atlanta and if you have time, I suggest you check it out. I hope to attend myself the next time I visit the USA:

The Atlanta REALbasic Users Group will be meeting Monday, June 14th. For this meeting we'll be discussing threads, how to best implement them, and how to get the most out of the processing power that is in our PCs and at our fingertips.

When: 6pm to 9pm
Where: Ippolitos Restaurant, Sandy Springs


If you live in the Atlanta area, we'd love to meet you and talk all things REAL Studio!

One downside of a 64 bit application...

Have you ever thought what happens if you have a 64 bit application leaking? (more)

Check the WIA Plugin part today

Ever wondered how to import a photo from a digital camera into your REAL Studio application on Windows? (more)

MBS REALbasic Plugins, version 10.3pr7

New in the 7th prerelease of the 10.3 plugins:
  • Added WindowsVMStatisticsMBS Constructor.
  • Added WindowsProcessStatisticsMBS class.
  • Added QTKitCustomMovieViewMBS class.
  • Added QTKitCustomCaptureViewMBS class.
  • Added Picture.BlurMBS function.
  • Added constructors to QTKitTimeMBS class.
  • Renamed GetInfoResposeCode to GetInfoResponseCode in CURL classes.
  • Added PictureMBS.CalculateMemory.
  • Added PictureMBS.CanAllocateImage.
  • Added PictureMBS.ImageFormatBuffer.
Download: macsw.de/plugin/Prerelease


May 2024
Apr 2024
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