The MBS Real Studio Web Starter Kit is a starting point for building your Web Applications with Real Studio.
Version 1.0 is the first public version with this features:
Database Support including REALSQLDatabase, MySQLCommunityServer, CubeSQLServer and SQLDatabaseMBS. Other databases can be added easily.
Simple User Management for Admins and normal users.
Auto login, so people don't need to login each time..
Allows logging to text file and database and displaying them..
SQL Console with download of database and query result as CSV file.
Session management for admin to see what users do.
Creates Backup of database.
Object browser and memory statistics.
Messages for Admins to/from users.
Shows how to cache images/files to save memory.
and much more....
You can use the Kit as a foundation of your new web application or simply copy the parts you need to your own web application. This Kit is the result of putting together all the goodies we developed in the last two years for various web applications. Things we believe everyone could need in their own solution. And of course in the next years, we will add more functions depending on user requests.
Our Web Starter Kit requires Real Studio 2012 or newer and a license of the MBS Real Studio Plugins.
The Util Plugin part is required and the MacOSX part is useful here.
The Web Starter Kit is available for $149 USD or 99 Euro (+VAT if needed).
Kem Tekinay, one of our plugin users made a speed test with RegEx class in Real Studio and the RegExMBS class in MBS Plugins.
Well, it looks like the plugin is magnitudes faster.
This are some results you can see with the sample project:
String Created: 1.048.500 bytes
RegExMBS: 8.120 microsecs, 500 found
RegEx: 317.797 microsecs, 500 found
String Created: 10.485.000 bytes
RegExMBS: 77.930 microsecs, 5.000 found
RegEx: 33.953.951 microsecs, 5.000 found
Tested in RS 2012r2.1 with 13.1 MBS Plugins.
Even with sampling on Mac OS X we can't see what the RegEx class does with all the CPU time. Maybe they simply rebuild the regular expression every time they do a search. We'll see. If you are interested, subscribe the Feedback case 24836. For now you can simply use our plugin if you need speed
Today I had a training session with a developer using both Filemaker and Real Studio. Topic was on how to connect to a Filemaker Server from Real Studio Web Edition and do all the database stuff: List tables & records, edit a record, delete a record and update a record.
I can tell you it's just working fine.
Of course it's your decision if you go with (Instant) Web Publishing or Filemaker Go to fill your database on the go. But with Real Studio you can build native desktop clients, web clients and soon iOS clients. Much more customized to your needs than anything from Filemaker.
Need a training?
If you need more than watching Bob Keeney's excellent training videos, you can order your personal training from us. From an hour remote to a multi day meeting in your/our office, there are a lot of possibilities. Just ask and provide a list of topics.
Real World 2013 is just two months away. Sign up soon to benefit from Real World advanced pricing (Ends 17th March)
Register on conference website.
The schedule has been posted: Real World Schedule.
As you see first day is in big Ballroom so everyone can watch the Web and iOS sessions after the keynote. Also the MBS Session is Thursday 11am and Thursday night we a going bowling at Splittsville.
If you run this in your webpage, the content is zoomed to 200%. I think this is useful to offer people buttons like smaller, middle and bigger where they can zoom the content.
Or with some math to make the webcontent fit the screen on a large window.
I can inform you that we just provided one of our plugin users with an example on how to upload to webdav with our CURL plugin. There is nothing special so far. Just make a PUT request to the right URL and CURL will handle the details.
As you can also do GET and DELETE requests, you can also download and delete files.
Works both with Real Studio and Filemaker with MBS Plugins.
Real Studio Developer Magazine is having a special one-day President's Day sale on Monday, February 18, 2013. Use coupon code PREZDAY and all orders over $25 are 15% off!
We're keeping this simple, with no gimmicks or absurd limitations. The 15% discount is valid for all our products: subscriptions, back issues, printed books, even subscription renewals! But this coupon is only good on February 18, 2013 (there's a little leeway for people in different time zones), so hurry to take advantage of our President's Day sale!
There are a lot of little additions we could do. Like for example tag properties and parameters which you can use to store references to your own objects if needed. For example for GameKit we have added tag parameters to several methods which later call an event. This way you can pass any reference value with the method to have it in the event. For example if you run several times the same query, you can later in the event see which query the result belongs to. Do you need another tag property or parameter somewhere?
There are several cases where you pass raw data between functions. Now sometimes you use a string like if you read bytes from a binarystream. In other cases you use a memoryblock, like for webfile class. Now we have a lot of functions which take data or return data. A lot of are already overloaded so you can pass both memoryblock and string and the plugin takes both. This avoids extra conversion. Do you need somewhere a function to return string/memoryblock or take it?
There are convenience functions we can add. For example we just added in 13.0 plugins a method CIImageMBS.AsNSImageMBS to quickly convert from CIImage to NSImage. This avoids a few extra steps. With 13.1 plugins we also add CIImageMBS.imageFromPicture to convert a picture to CIImageMBS quickly. Those convenience functions can save time and make coding easier. Can you think about methods you could need to make your live easier?
For our SQL classes we added in 13.0 plugins methods to get RecordSet from SQLCommandMBS or SQLConnectionMBS objects. This helps for using our SQL classes with some methods taking RecordSets like the reporting classes.
So if you have ideas for little helper functions, methods or properties, please do not hesitate to suggest something.
This is a new example app for upcoming 13.1pr1 plugins:
Do you notice that with 4 Real Studio threads, the plugin can actually get 4 CPU cores busy and get work done faster?
Over the last months we added quite a few MT methods. That are plugin methods which perform work on an extra preemptive thread which the Real Studio thread calling them yields CPU time away. And if you use several threads in Real Studio already, this will help you keep more CPU cores busy.
For 13.1pr1 we add this new MT aware functions for loading/saving NSImage/CIImage:
NSImageMBS.TIFFRepresentationMT and NSImageMBS.TIFFRepresentationUsingCompressionMT
NSImageMBS.JPEGRepresentationMT and NSImageMBS.JPEGRepresentationWithCompressionFactorMT
Also we have a couple of existing functions:
SQLDatabaseMBS.SQLSelectMT and SQLDatabaseMBS.SQLExecuteMT
SQLConnectionMBS SQLSelectMT and SQLConnectionMBS SQLExecuteMT
SQLCommandMBS ExecuteMT and SQLCommandMBS ExecuteCommandMT
DNSLookupMBS.LookupHostbyNameMT and DNSLookupMBS.LookupHostbyAddressMT
If you have ideas for other methods which could benefit from loading work off to another CPU core, please don't hesitate to contact us.
NICKENICH, Germany (February 12th, 2013) -- Monkeybread Software releases version 13.0 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,700 classes featuring over 45,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console.
Some of the highlights on the 13.0 update:
New functions for localization help you format numbers with the localization of the user in a Web Edition application. So if server runs with US localization and a french user uses your Web app, you can use FormatMBS and CDblMBS to handle numbers in french localization. The LocaleMBS class provides information about localized number formatting.
For Mac OS X 10.8.2 we updated our GameKit classes. With more than 100 new methods and events, you can now update your games to use this new methods and take full advance of the new functions in GameCenter.
Improved UUID creation and validation, so you can now generate random UUID and also validate UUIDs entered by the user. The Validate function can also fix UUIDs which are not 100% correct.
The SQL plugin has been updated do SQLAPI 4.0.3b1 and includes new informix unicode client. We also added a InformixMBS class. For normal SQL queries we added SQLSelectAsRecordSet and SQLSelectAsRecordSetMT functions, so you can query on SQLConnectionMBS and still get a RecordSet instead of a SQLCommandMBS object. Useful to pass the RecordSet to report functions. Also we have SQLCommandMBS.AsRecordSet to give you a record set for a command object. The function BuildRecordSetMBS can be used to build a new recordset based on a string array.
For our Twain plugin, we can now do scans without showing user interface and also set parameters like resolution and orientation before the scan. For Windows the transfers have been optimized and are faster now.
For safe access to the user interface from a thread, we added functions to set the text of labels and the value of progress bars from a thread. The plugin will make sure the main thread does those updates while your background thread continues. With ShowModalThreadSafeMBS on the MessageDialog class you can show message dialogs from a thread.
There are several little changes like a new SHA3MBS class, support for CoreFoundation on Windows using QuickTime, new Recursion properties on DirectorySizeMBS, more methods on CIImageMBS, new Mouse events on OverlayMBS and volume property for audio play through classes.
CURL library is updated to version 7.28.1, the libXL library updated to 3.4.0 and DynaPDF library to 188.8.131.52.
Just a quick note for everyone thinking about releasing some modules or classes for Real Studio as LGPL. It won't work.
LGPL was created to have a GPL library being used in a non GPL application. So the library is compiled on its own and can be replaced with another version. As Real Studio can't compile libraries (DLL/dylib/so files), you can't include LGPL classes/modules/controls in a non GPL Real Studio project.
The only real way to to use LGPL software with Real Studio is to compile the LGPL library to a dll/dylib/so and use declare commands or a plugin to call the functions.
Better use a commercial license or a free license (MIT, BSD, Apache just to name a few).
In order to prepare plugins for the future, we cleanup and fixed a couple of things for the plugin version 13.0. The new Real Studio 2013 releases will require some plugin SDK changes as we should stop using deprecated functions. Also for 64 bit functions a lot of deprecated functions will no longer be supported, so it's really time for every plugin vendor to no longer depend on them.
We now use RBBoolean, RBUInt64, RBColor and RBInteger data types everywhere instead of int/long data types. For all string access we now use REALGetStringData for RS 2012 instead of the older accessors PString, CString, REALGetStringContents and REALGetCString.
This was so far a lot of work and has no direct visible effect except that maybe a 100 functions changed their parameters a little bit. Like passing now UInt32 instead of integer.
The following plugins already compile fine for Mac 64 bit so far:
Linux, DirectShow, CanonEOSDigital, Lion, CocoaBase, SnowLeopard, MountainLion, CUPS, WIA, LCMS, LCMS2, WinDragDrop, WinICM, DynaPDF, Overlay, LargePicture, QuickTime, VLC, Audio, JPEG, Java, Compression, RegEx, GIF, XMP, Tidy, Tiff, PNG, ImageMagick, Leopard, QTKit, MacOSXCG, PHP, Main, Controls, DataTypes, Win and CocoaExtras. Other plugins still need more work.
Well, you are going to Orlando for Real World?
Great, best you get the room in the Holiday Inn Hotel, so you can spend all day with Real Studio developers and get the most out of the conference. With three days full of sessions, one day of optional training and the evening events. In the whole week, you'll easily find people in the hotel lobby or at the bar in the evening.
From the hotel, you can walk just 500 meter to Downtown Disney and enjoy a few shops and restaurants. A huge Disney shop, a Lego shop, restaurants in several styles and even a cinema is there. Walking in the other direction down the Hotel Plaza Blvd. you leave the Disney property and there you find a dozen fast food restaurants and a 24/7 supermarket. All in walking distance.
If you like you can see nature. In Florida for example the lakes: Lake Apopka with the Lake View Park in Winter Garden or the East Lake Tohopekaliga in St. Cloud. For some more nature, you can drive to the Hillsborough River State Park. This is a nice park, where you can walk a mile along the river and see some turtles, squirrels or alligators.
Like to see history? Seven miles down from Hotel to Kissimmee, you find the Osceola Country History center. Just after Walmart, turn right in the Bass Road, and after some hundred meters, you find it on the right side. There you find a park with a couple of houses from the late 18th and early 19th century.
Next on history is the Fort Christmas Historical Park located half way to the Kennedy Space Center. Another nice way to learn something about history of Florida.
Renamed AddRenderingIntent function to AddOutputIntent in DynaPDFMBS class.
Added properties to TwainMBS for resolution and orientation.
Updated DynaPDF to version 184.108.40.206.
Added folderitem.MacResolveNodeIDMBS function.
Fixed QTGrabberMBS.Recording and QTGrabberMBS.Previewing properties.
Updated WindowsIniMBS class for Unicode.
Removed SplitMBS class, StringArrayJoinWithDelimiterMBS and StringArrayJoinMBS functions. Please use built in framework functions from Real Studio instead.
Removed QTFileTransferMBS class. Please use HTTPSocket instead.
Overloaded all DynaPDF functions taking buffer to also accept memoryblock directly avoiding conversion from string to memoryblock.
Added NSControlMBS destructor to better cleanup if you add control to a toolbar and you forget to keep it alive by storing reference in a window property. No longer crashes on action event in this case.
Removed PrepareLookup, ProcessLookup and FinishLookup from DNSUtilMBS module. Please use LookupMT for that.