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
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
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.
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
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
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.
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 3.0.12.25.
- 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
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?
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.
New in this prerelease of the 2.5 plugins:
- Added Math.HexToDec and Math.DecToHex.
- Added new optional NoAnimation parameter to Window.Resize function.
- Trace function now works again with logging to file.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/
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".
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
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.
Recently a client asked how to map addresses to geo coordinates in Filemaker. He had a web service doing it and wanted to script it in Filemaker with our plugins.
The website is
findlatitudeandlongitude.com. If you go there, you see a form where you can enter an address, press a button and have the coordinates shown on the right as longitude and latitude.
In order to script this website in Filemaker, you can load it in our Form utility application (included in Plugins download). There you see there is a form named load_location with a text field "loc". Our form utility shows you the Filemaker calculation line to fill text inside: MBS( "
WebView.SetFormInputValue" ; WebViewerRef; "load_location"; "loc"; Value )
Now of course we need a web viewer in Filemaker and give it a name. We use "web" in our examples as the name. So in the examples it's MBS( "
WebView.SetFormInputValue" ; "web"; "load_location"; "loc";Latitude Longitude Lookup::Address ).
Next you need to have a little script pause so the web viewer can update. Now if you check the button in the html source (or your favorite web inspector), you discover that it has javascript code calling a function load_address. And instead of using FormSubmit function from our plugin, you need to call that javascript method. So you use this command: MBS( "WebView.RunJavaScript" ; "web"; "load_address(document.load_location.loc.value);") With
WebView.RunJavaScript, you run a little javascript piece of code. And the code is what we copy right away from the html source. A lot of websites use that to load information without reloading the page.
Okay. Next we do a pause step, so the website can do the lookup and show information. 2 seconds may be enough. After that pause, we need to get the values. With your favorite web inspector you can see that the latitude is shown in a div with id lat_address in the second text inside that div. To get the value, we use javascript again. In javascript document.getElementById queries the div with the right id. The children() function gives us second child of that node and innerText gives the text inside. To run this javascript, we use
WebView.RunJavaScriptReturnTitle as we need the result. So we assign result to document.title and the plugin gives us that value in Filemaker. Final calculation for this looks like this: MBS( "
WebView.RunJavaScriptReturnTitle" ; "web"; "document.title = document.getElementById('lat_address').children[1].innerText") For longitude it's the same, just different names.
Well, I hope this example helps you. If you have questions, please don't hesitate to ask questions. Or simply ask us for a kick start help for your website. And don't forget that this breaks as soon as the website changes the layout.
Have fun. Here is the example project:
latitudelongitudelookup.fp7.zip
PS: Same can be done in Real Studio with our htmlviewer extensions.
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 3.0.12.24 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.
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.
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
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.
New in this prerelease of the 2.5 plugins:
- Improved reading containers for Container.GetJPEG* functions, especially for external jpeg files. Same for PDFKit, GraphicsMagick and functions
- Please note: You need a Developer license for creating Runtimes.
- Added CURL plugin functions.
- Added CUPS plugin functions.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/
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!
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);
}
</style>
Final webpage can look like the picture on right. Download project:
webbackground.zip
I'll be at the meeting in
Ulm this week (8th December at 19 o'clock) and at the January meeting in
Hamburg (12th January).
Please come for a visit and learn directly about our plugins from me.
Also if you know another meeting where I can attend, please tell me.
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 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.
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:
groups.google.com/group/realstudiouserslondon
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.
Heinz Wizoreck was kind enough to start a new Real Studio user group for south west Germany:
groups.google.com/group/RealstudioUGBW
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.
- 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.
There is a Filemaker meeting in Ulm (Germany) next week and maybe you like to attend?
I'll present my newest Filemaker plugin additions (version 2.5 preview) and the highlights from version 2.4.
Meeting is 8th December 2011 at 7pm in Ristorante Pizzeria Capri in Neu Ulm.
More details on the
website.