Happy new Year 2012

The year ends and it was a great year for us. We had two conferences hosted in Germany this year. First in May in Essen with ASH and second in November in Frankfurt on our own. We also participated in other events like the Filemaker Conference in Hamburg.

With our plugins, we had several transitions this year:

On the Real Studio plugin, we had quite a few transitions:
  • First we had to move 400 plugin parts from CodeWarrior to Visual Studio 2008. Also a few plugins which had already been with Visual Studio 2005 had to move to 2008 version. That change had a few side effects and it needed a few releases to fix them all. One benefit is better code output.
  • Next we moved to Mac OS X 10.7 for compiling on Mac. For this move we now use Xcode 4 for the Mac Intel plugins and a copy of Xcode 3 for the PPC parts. Works well and we can support PPC a little bit longer.
  • The transition to Cocoa is also huge. We updated a lot of functions to support Cocoa like our methods for the window class. For others we simply updated documentation and hint to newer Cocoa classes.
  • The biggest transition so far are the new alpha channel pictures. So far we updated dozens of plugin parts to support new alpha channel pictures. At least like the old ones and ignore the alpha channel. But of course in the future we'll have to thing a lot how to handle mask and alpha channel for each of them. This is really difficult to support more than 20 combinations of Real Studio versions, platforms, picture class flavors and color depths.
On the Filemaker plugin we moved from Visual Studio 2005 to 2008 and from Xcode 3.x to Xcode 4.x. That was really a smooth transition and the only side effect is that we dropped PPC target.

For 2012, we plan to take part in a lot of events. First Real World 2012 in Orlando, Florida in May. Than of course Filemaker Conference in Salzburg in October. In-between a couple of smaller meetings like the Real Studio meeting 20th January in Esslingen (near Stuttgart in Germany), the Filemaker meeting in Hamburg on 12th January and a couple more. For example we plan a spring Real Studio meeting for London. Maybe also one in Paris or in Switzerland.

On our plugins, we'll continue our work to release a new Filemaker plugin soon with new CURL and CUPS functions. And for Real Studio we'll have a 12.0 version coming to update several plugin parts and a couple of new functions, especially with LCMS2, WMI and a new class for directory watching on Windows.

We wish you and your family a happy new year 2012! And see you soon on an event in your area :-)

The difference between WebPicture and Picture classes

I recently saw in a web project from a client a line of code which is similar to this one:

ImageView1.Picture = ImageView1.Picture.rotate90MBS

The idea, well is to simply rotate the picture. Looks pretty nice, doesn't it?

But actually it's a huge waste of resources. The application will spend more than 90% of the time needed on this with encoding and decoding of a PNG. Only less than 10% are needed for the rotation.

So expand this line and use temporary variables:

dim oldWebPicture as WebPicture = ImageView1.Picture
dim oldPicture as picture = oldWebPicture
dim newPicture as picture = oldPicture.Rotate90MBS
dim newWebPicture as WebPicture = newPicture
ImageView1.Picture = newWebPicture

As you see we need five lines now. First line gets the reference for the current WebPicture object. That is typically a JPEG or PNG encoded picture for the browser to display. Next steps uses the Operator_Convert to get a picture object. And that's some heavy work as the picture is internally decompressed. That takes some CPU time. Third line does the operation on the picture and returns a new picture. In the forth line, this new picture is converted to a web picture. You can easily see in the debugger, that this makes PNG image data. Another expensive call. Finally we assign the new WebPicture to the imageview. This will put it into a global list for the internal web server and tell the image view to load the picture data.

So you see the WebPicture class is a container for holding image data. You should only use it for output, not for input. Like for assigning it to an ImageView or for a file download. To optimize the rotation above, you should keep the original picture in memory and rotate the picture. So you avoid converting from webpicture to picture, which gives you a little speed advantage.

For more details: WebPicture, Picture and Operator_Convert

Real Studio - The Perfect Companion for SMEs

Dennis Wallentin wrote an article about Real Studio: xldennis.wordpress.com/2011/12/21/real-studio-the-perfect-companion-for-smes/

Thanks Dennis for mentioning our plugins. He asked me so far a few question and I wish him the best for his Real Studio projects!
See you at Real World, Dennis. Would be nice to talk to you and see what you developed.

Merry Christmas

Frohe Weihnachten und ein gutes neues Jahr!
Dieses Jahr hat Michael fleißig mitgeholfen beim Backen :-)

Merry Christmas & Happy New Year
This year Michael helped a lot with backing cookies.

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo

Michael, Monika & Christian Schmitz

MBS Real Studio Plugins, version 11.4pr3

New in this prerelease of the 11.4 plugins:
  • Fixed bug in Picture.ScaleMBS.
  • Fixed bug with picture reading on console targets.
  • Added Target constant to MBS module.
  • Added WindowsDirectoryWatcherMBS class.
  • Added Picture.ColornessMBS function.
  • Picture functions can now read pixels again from old PicHandle, CICN or IconSuite pictures.
Download: macsw.de/plugin/Prerelease

Two days left for DynaPDF Sale

Between 6th and 24th December 2011 all MBS Real Studio DynaPDF Plugin licenses are offered with a 15% discount. DynaPDF is available in 4 different editions, ranging from our popular started edition up the full featured enterprise edition. To create beautiful PDFs, the starter edition is enough, but for advanced features like displaying a PDF, you need the Pro edition. Orders with invoice or paypal are discounted you directly. For Share-It, please use DynaPDFSale coupon code.

If you ever wanted to use PDF in Real Studio, this is your chance to get this plugin now!
More information on our DynaPDF plugin is available on our website.

MBS Real Studio Plugins, version 11.4pr2

New in this prerelease of the 11.4 plugins:
  • Fixed bug with console/web picture creation.
  • Fixed bug with DynaPDFMBS.FileLink function and added example project.
  • CoreAudio plugin classes are now console safe: CoreAudioPlayerMBS, CoreAudioMBS and QTSoundStreamMBS.
  • Updated DynaPDF to version
  • Added alpha parameter to DrawRotatedTextMBS function for Mac.
  • Added ABAddressBookMBS.sharedAddressbook for quicker access to the addressbook.
  • Added ABRecordMBS DisplayName so you can easily display the name of a person or group.
  • Updated LCMS2 to LCMS 2.3.
  • Fixed another bug in RegExMBS.Replaceall.
Download: macsw.de/plugin/Prerelease

Handllng Sales and Serial Numbers

Today one of my plugin users asked what to use for handling payments and serial number delivery. Basically put your app on a website, link to a payment page and have something delivered to customer once payment is done. So I know this ones:
The Mac App Store has by magnitudes the best visibility compared to anything I have seen before. It's easy to make sales there as people are actively searching for software there. But of course Apple does not allow every possible app and they don't really support selling updates.

I personally used Kagi and eSellerate long ago. But I don't do that anymore, because I'm in Europe. They do all processing in US Dollar which means for people like me that all money from Europe is converted to USD and later converted back. This conversion costs a few percent every time, so having the account working completely in Euro is an advantage for me. And that is done by Share-It.

For Stripe and Fastspring, they are fairly new and maybe more flexible to add an option you ask them for. Stripe is currently US only anyway. For Fastspring we had a nice meeting with one of their managers in Atlanta on one of the evenings after the Real Studio Summit earlier this year.

On the serial number creation, several services have APIs to hook into. For Mac App Store you don't need serials. For Paypal, you'd have to deliver yourself as it's only a payment service. For Share-It I once made a template for a serial number generation application. You can create this app in Real Studio and add your own unique serial number generation code. Than compile the app and upload it to Share-It. As serial numbers are now generated on the fly for payments, you can simply relax and wait for cash and support calls.

If you need help creating serial numbers, we have our RegistrationEngineMBS class. And if you need dongle protection, you can use our dongle plugin. But that's more for expensive products with a few customers.

What experience do you have?

Map of blog readers

Isn't it interesting to see where all the people come from?
This distribution looks like our client map, so I bet this is simply the Real Studio distribution over the world.

How to get SQL Plugin running with Postgre SQL on Windows?

Our SQL Plugin can connect to a lot of different databases. This includes Postgre SQL. But as with all databases, you need to tell the library where to find the connector library, what database type you connect to and the connection string.

So first, you need to load the database library. Our postgresql example shows the line to locate the library:

db.SetFileOption SQLConnectionMBS.kOptionLibraryPostgreSQL, getfolderitem("libpq.dylib")

This is for Mac OS X as you see on the dylib. Change that to ".dll" on Windows. And maybe also change path to your favorite location?

To get the libraries, please go to postgre sql website and download the 32 bit version for Windows. Even if your server is 64 bit, you need the 32 bit dll. From the download, simply copy this dlls: libpq.dll, ssleay32.dll, libeay32.dll, libintl-8.dll and libiconv-2.dll. Put them all in the application directory, so the application can find them.

Tip: Don't download the installer. Simply download the binaries zip archive, you can delete the other files.

Next you want to get a connection string. It looks like you pass "host:port@database".

MBS Real Studio Plugins, version 11.4pr1

New in this prerelease of the 11.4 plugins:
  • Added CancelAsyncCall and ExecNotificationQueryAsync methods to WindowsWMIMBS class.
  • Added WMIObjectMBS class.
  • Added DynaPDFMBS.FileLink with string parameter, so you can pass relative paths as string.
  • MirrorPictureMBS, VMirrorPictureMBS and HMirrorPictureMBS now work on Linux.
  • Fixed a bug in plugin UTF8 string handling which affected RegEx, DynaPDF, XL, GraphicsMagick and ImageMagick plugins.
  • Fixed a bug in RegExMBS.ReplaceAll for the case where new text is empty.
  • Changed linux compile settings so we are now more compatible to older glibc versions. Especially dynapdf does no longer need glibc 2.7 or 2.11 so it works on Red Hat Enterprise Linux 5.
  • ABAddressbookMBS class uses again shard addressbook instance, so we get all the events correctly.
Download: macsw.de/plugin/Prerelease

Real Studio Meeting near Stuttgart

We have a meeting of Real Studio users in south west Germany. On friday, the 20th January 2012 we meet at about 6 pm in Esslingen near Stuttgart in the rooms of the company Hellmer & Triantafyllou. This is the first meeting of the Real Studio user group Baden-Württemberg. All interested Real Studio developers are welcome to join the google group and the meeting. The meeting will be from around 6 to 9pm and it looks like we are at least 7 users so far.

MonkeyBread Software Releases the MBS Real Studio plug-ins in version 11.3

NICKENICH, Germany (December 13th, 2011) -- Monkeybread Software releases
version 11.3 of the MBS plug-in for Real Studio.

The MBS plug-in comprises a collection of several plug-in parts which extend the Real Studio development environment with 1,500 classes featuring over 38,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console.

This is one of the biggest plugin update we ever had. More than 2500 new features including 66 new classes. While a lot of small things have changed, we'd like to point you to a few bigger changes:

First we updated our picture related code to support Real Studio 2011r4. All plugins have to adopt as Real Software added alpha channel pictures.

Next we added support for color management using LCMS 2.2. We keep LCMS 1.x classes for compatibility, but suggest everyone to move to the new classes. With LCMS you can now support v4 ICC profiles in your application.
For businesses it is important to read and write Excel files for data exchange. Our new XL plugin does this and supports both the old xls files and the newer xml based xlsx files. So if you need to have your application to write reports, you can now load a Excel file (template) and add your values. Or create a new Excel file from scratch. Our plugin is based on libXL (additional license required) and works without having Microsoft Excel installed.

If you want to send your application to the Mac App Store, you can now use the Common Crypto classes for doing encryption. As your application uses only system provided encryption, you don't have the hassle with US export limitations for software with encryption. Also you benefit from improvements to Store Kit classes, iCloud classes and push notification functions.

We updated several libraries, so you can now enjoy DynaPDF with improved raster features, SQLAPI 3.8.3 for improved SQL database access, PCRE 8.13 for improved regular expressions and libPNG for improved security working with PNG files.

This update is recommended for all Real Studio developers. Especially if you want to use Real Studio 2011r4 which older plugins don't support.

Congratulations to our winners

Okay, time ended for the quiz, so let's look who won. First we had a few duplicates and a few spammers to remove. The right answer was 30th December 2001 and I was really surprised that so many people found that. You can find it for example on the realsoftware.com website,

The rest is random number playing:
  • DynaPDF Lite for Khai Wee Toh
  • DynaPDF Starter for Heinz Wieczorek
  • 30% Discount for Real Software for Christian Sandmann
  • 20% Discount for Real Software for Julen Ibarretxe
  • RBD Coupon for Gavin Smith
  • RBD Coupon for Dennis Birch
  • RBD Coupon for Mahyar Shariat
  • RBD Coupon for Edwin Lau
  • RBD Coupon for Stefan Hierlmeier
  • RBD Coupon for Paul Lefebvre
Congratulations for the winners and have a great Christmas time!
Emails to the winner and participants will be sent later. The raffle was done between all the people with the correct year number.

MBS Real Studio Plugins, version 11.3fc

New in this prerelease of the 11.3 plugins:
  • Fixed possible problem with CreateOutputPort, CreateInputPort and CreateDestination with MidiClientMBS class.
  • Fixed bug for Cocoa in DrawRotatedTextMBS function.
  • Added SetCurrentWorkingDirectoryMBS global method.
  • Getting NSImage picture with mask does no longer try to get a mask if the NSImage has no alpha channel. This way a problem because if the mask failed, the image was completely transparent.
  • Fixed ABMultiValueMBS.edit method.
  • Added GetUserUnit and SetUserUnit to DynaPDFMBS class.
  • Extended LogoMBS to return logo picture with alpha channel (if supported)
Download: macsw.de/plugin/Prerelease

Quiz ends tonight

As you know we raffle off a few discount coupons, DynaPDF licenses and RS Developer Magazine subscriptions. And we run a sale on DynaPDF licenses with a 15% discount.
Don't miss it! Enter the quiz here.

to answer a few of the questions from comments on the quiz:
  • Thanks to everyone for gratulations and thank you messages.
  • It's okay to use a web search to get the result.
  • I was suprised for several people knowing exact day. So maybe we raffle top prices within the participants with exact date and other prices with all with right year. We'll see.
  • Wether it's Real Studio or REALbasic? That name change didn't change the product.
  • We are looking for version 1.0 of the collection, not some individual plugin we had before.
  • Also the quiz is not about the founding date of our company.
  • If you want to correct your answer, simply enter again. We'll remove your older guess.

Monkeybread Software Sale and Raffle Quiz

Between 6th and 24th December 2011 all MBS Real Studio DynaPDF Plugin licenses are offered with a 15% discount. DynaPDF is available in 4 different editions, ranging from our popular started edition up the full featured enterprise edition. To create beautiful PDFs, the starter edition is enough, but for advanced features like displaying a PDF, you need the Pro edition. Orders with invoice or paypal are discounted you directly. For Share-It, please use DynaPDFSale coupon code.

If you ever wanted to use PDF in Real Studio, this is your chance to get this plugin now!
More information on our DynaPDF plugin is available on our website.

Monkeybread Software is running a raffle this week with a little quiz. Enter our raffle by answering our little question and win one of this ten prices:
  • A MBS Real Studio DynaPDF Lite license (retail price $669)
  • A MBS Real Studio DynaPDF Starter license (retail price $219)
  • One 30% discount coupon for next order from Real Software.
  • One 20% discount coupon for next order from Real Software.
  • Six Real Studio Developer Magazines coupons for three free issues.
More details on the website

We hope you enjoy our little quiz and we wish you and your family a merry Christmas and a happy new year!

Tip of the day: Background image in Real Studio Web Edition

If you like to use background image for an item in Web Edition, you simply define a style and assign it. In our sample app, it's named "Style1". Then you add a page source with defining a CSS style where you define the URL for the background image. Like this:
<style type="text/css">
   .Style1 {
      background-image: url(http://www.monkeybreadsoftware.de/realbasic/images/testpicture_small.jpg);
Final webpage can look like the picture on right. Download project: webbackground.zip

MBS Real Studio Plugins, version 11.3pr15

New in this prerelease of the 11.3 plugins:
  • Optimized picture to/from memoryblock functions.
  • Improved NSImageMBS/CGImageMBS to/from Picture conversion.
  • Added LasterrorMessage and OptionSSLCertPassword to CURLMBS and CURLSMBS classes.
  • Fixed bug in WinUSBNotificationMBS class. Name in the events is now correct again.
  • Note: Due the changes Real Software made in Real Studio 2011r4, old plugins are unable to access picture data on Linux.
Download: macsw.de/plugin/Prerelease

Real Studio 2011 Release 4 is Now Available

Real Studio 2011 Release 4 is now available for download at . This release includes 26 new features and more than 200 improvements including:
  • Greatly Improved Support for Cocoa: Significant improvements have been made in this release on Real Studio's Cocoa-based Mac framework and many projects will now simply work when built with it. There are more than 60 Cocoa-specific bug fixes in this release. This feature is still officially labeled as beta until Real Studio 2012 Release 1.
  • Alpha Channels: Graphics now have support for opacity allowing colors to be drawn that are anywhere from totally opaque to completely transparent.
  • Improved Printing on Linux: On Linux printing at a high resolution can now be done just as it would on Windows or Mac OS X.
  • Improved Graphics on Linux: Graphics on Linux now supports smoother drawing, anti-aliasing, translucency, and hardware acceleration.
  • Improved ODBC Support: Prepared Statements are now supported for ODBC which improves security.
  • Portuguese Support: The Real Studio IDE has now been fully localized into Portuguese.
If you have any questions please let us know.

New Real Studio User Group for London area

We had a few Real Studio events in Germany and I discussed with Trisha and Richard Duke from London about having an event in/near London next year.
So now we started an user group on google for people interested in joining a meeting:


Please join us and see you soon there. We gather interested people now, so we can discuss location, date and agenda soon.
And please tell other Real Studio developers about this group.

Real Studio User Group for Baden Württemberg

Heinz Wizoreck was kind enough to start a new Real Studio user group for south west Germany:


Subscribe to this group to keep up to date with events.
If you like to learn about other groups please check this page about the Real Studio Community.

More Real Studio related notes

  • Want to reset a dialog in Web Edition? You can use code like this:
    Dialog11 = new WebDialog1
    Basically you replace the existing dialog instance on your webpage with a fresh copy.
  • Real Studio Atlanta group meets: 6th December 2011, 6-9pm.
    This group exists for nearly 2 years now and if you have a chance to go close to Atlanta, be sure to visit them.
  • Seattle Real Studio user Group meets 10th December 2011, 10-12am.
    Maybe closer to people living on the west coast...
  • If you plan to use Real Studio 20011r4 or newer, be sure to update to our 11.3 plugins soon. We had to change a few things in order to keep plugins running.
  • Get your Real World ticket today. Until 2nd December 2011, you get tickets with a $200 discount.

The biggest plugin in space...


Jul 2024
Jun 2024
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