If you liked the Xojo Conference in Las Vegas, maybe you are looking forward to also visit our conference in Germany?
Hotel in Koblenz is reserved for 17th to 20th September 2014.
17th - training in German
18th and 19th - conference in English
20th - training in English
Registration is open and we are looking for speakers. If you are interested in coming, you can already email me to put you on the list.
And after the conference you can take train to Munich for the start of the Oktoberfest. ICE from Koblenz brings you saturday morning in just 5 hours to Munich where you can enjoy the great opening at noon. Due to size of festival I would recommend getting a hotel 100 miles outside of Munich and take the trains in and out.
Website is here: monkeybreadsoftware.de/realbasic/events/
Here a few pictures from the conference:
You probably read Bob's report, but I can add that new compiler is scheduled for Q1/2015. So when that means we have a beta in Q1, maybe a good working one in Q2?
For iOS, well, they target to get it out in Summer for alpha/beta. But this first version will probably not support plugins, e.g. linking in static libraries and calling them with declares. I have no problem providing a library for Xojo iOS with wrapper classes in Xojo which declare to the functions in a static library to get DynaPDF, SQL and ChartDirector to the iPhone/iPad. But we'll see how soon that's possible.
My session was moved to just after the lunch, so if you plan to come, please check the updated schedule tomorrow.
Our XMP plugin can read/write EXIF metadata, IPTC and of course the XMP values:
dim file as FolderItem = SpecialFolder.Desktop.Child("test.jpg") // use XMPFilesMBS to open file dim flags as integer = XMPFilesMBS.kOpenForUpdate dim xf as new XMPFilesMBS(file, XMPFilesMBS.kUnknownFile, flags) // now read the metadata dim xmp as new XMPMetaMBS dim PacketInfo as XMPPacketInfoMBS dim xmppacket as string if xf.GetXMP(xmp, xmppacket, PacketInfo) then // set a value like here a different GPS altitude xmp.SetProperty xmp.kNS_EXIF, "GPSAltitude", "24695/43" // update file if xf.CanPutXMP(xmp) then xf.PutXMP(xmp) xf.CloseFile(XMPFilesMBS.kUpdateSafely) else MsgBox "Can't update." end if end if
The conference room is located on second floor and today staff was putting in tables and chairs.
See you there tomorrow!
Registration starts today at 7pm in main foyer (also tomorrow 7am there).
Tonight you can come to The Pub (there is only one pub in Monte Carlo) and try one of over hundred different beer types.
If you plan to go to the FileMaker DevCon this year, be sure to take advantage of the early bird offer and also make sure you get a room in the hotel. It may be booked out quickly.
MBS will be there with a booth, so you can come and meet me there.
Today I found a trick to do the zooming on HTMLViewer in Xojo and Webviewer in FileMaker for Windows:
So we have now functions for both Mac and Windows.
While improving old projects, we often run into the case where we use integers for file sizes or memory calculations. That is normally no problem, but integers are 32 bit currently and like to overflow. So if you show a list of files with file sizes and you use integers, all files with 3 GB will show as -1 GB. Our old code was from a time where folderitem.length was an integer and no 64bit data types existed in Realbasic.
So better use Int64 for file sizes. Also use 64bit integers for memory allocations. Some versions ago the runtime.MemoryUsed property was updated to be UInt64 (in spring 2011). This allows now showing correct values for apps use more than 2 GB of memory. Remember the address space for Xojo apps is currently always 4 GB. Minus app, stack, system libraries, you have on Mac about 3.5 GB to work with.
You can mark in your calendar the dates 18th and 19th September for the conference.
Location will be again the Contel Hotel in Koblenz. We ordered an extra Internet connection with WLAN for the conference. So we'll have two WLANs, the normal hotel one and our extra one. I hope this makes Internet more usable. The hotel also got an english version of the website.
Training days will be 17th and 20th, one in German and one in English.
Interested to do a presentation? Please contact us.
NICKENICH, Germany (March 18th, 2014) -- Monkeybread Software releases
version 14.1 of the MBS plug-in for Xojo and Real Studio.
The MBS plug-in comprises a collection of several plug-in parts which extend the Real Studio development environment with 2,000 classes featuring over 51,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 14.1 update:
For Mac OS X we added MapKit classes using the open source MapKit framework. While Apple offers a MapKit framework directly, it's only available for 64bit application. The MapKit framework we use here is available for 32bit and 64bit and uses google maps internally. We can later update the plugin to either use Google or Apple map service once Xojo builds 64bit applications.
To list processes with details on Linux we added a LinuxProcessMBS class. It can show you which processes are running and query the list of open files.
In order to support proxies better for network connections, we added new classes: For Mac we have a CFProxyMBS class and for Windows a WinHTTPClientMBS class. Both allow to query current system proxy settings and help with detecting the auto config URLs and parsing the configuration scripts.
Our SQL Plugin got a couple of improvements. The SQLPreparedStatementMBS class has been rewritten with new methods to bind parameters by name. You can now decide to raise exceptions for errors in the SQLDatabaseMBS class. The SQLDateTimeMBS class is now working better with existing date objects.
We also updated barcode plugin with color properties for barcode generation, added more CoreImage functions and improved Cocoa file handle and printing functions. DynaPDF has been updated to version 184.108.40.206, LittleCMS to version 2.6.
See release notes for a complete list of changes.
Nickenich, Germany - MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 4.1 for Mac OS X or Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, Mac, and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 4.1 has been updated and now includes over 2400 different functions, and the versatile plugin has gained more new functions:
For Mac OS X we added menu commands so you can build a menu with submenus and have it popup on screen relative to mouse or window. Menus can be decorated with images, checkmarks or custom font styles.
Our new cipher and digest functions allow you to create very flexible hashes or encrypted content which is compatible to other applications. You can process files, text or content stored in a container. For example you can encrypt a container with AES256 and transmit it as text by email. On the receiver you import back in FileMaker and decrypt it in a container field.
With CoreLocation's geo coder, we can use Apple's service to locate the geo coordinates for an address. Of course the other direction is also possible by querying the address of coordinates. Once you have addresses geo coded in your database you can do calculations about distance between two locations and find for example which clients live in a certain area.
For DynaPDF we added new functions to create checkboxes and textfields for forms. We had before functions to query form values and now added a few functions to set form field values. You can now search for text on a page and get back all locations where text was found. Finally you can load custom fonts from a folder for use in the PDF files.
For simple message dialogs, you can use our latest Dialog functions. For listing files, we now offer a way to list them recursively. The Audit functions got improved with new options, we added path drawing to graphicsmagick, new options for print dialog and run task. We can now build arrays in JSON from a list of texts, zoom in a webviewer or do some bitwise math operations.
More details in the release notes. Please take the time to check our 250 example databases and check where you can use our plugin features in your solutions.
This is an open dialog in an app made with Real Studio, but the developer did make a mistake...
Please comment with your guesses. I'll give answer tomorrow.
Answer: This is what you see if you call GetOpenFolderItem in a thread. The open dialog works only well on the main thread.
We recently did make a survey about a possible Xojo Conference in 2014. From the survey we know that most people already visited a conference. 22% XDC, 50% MBS, 13% other and 35% none. As you see there are a few people who visited several conferences.
And from next question it looks like 90% could come to a conference. Still there are a few people saying no and we got a few xojo bashing comments in the comment section.
For the conference week, the majority doesn't care, but the week in favor by the others is the third one in September. If you like, you could go to Munich after conference and visit Oktoberfest (starting 20th September).
The location is interesting. We got 42% for Koblenz, 13% for Mainz, 28% for Frankfurt, 35% for Munich and 17% for the don't care choice. From comments we know that people love to have an airport next to hotel (like the conference in Atlanta years ago). But also people regularly ask for the bigger cities like Berlin, Paris or London. We'd of course appreciate if Xojo Inc. does a European XDC in fall in addition to an USA based in spring. And than they could go to the bigger places.
Training is also welcome for half of the people. And everyone loves social events, so we'll look into something new. The castle last year was a lot of fun for the attendees. We already got some people to speak there, but no sponsor. So the only sponsor probably will be again MBS paying the deficit.
When considering the location for the new conference, we had a lot of ideas for why to go there or there. A lot of people like to have a big city like Munich, but it's the most expensive option for us. Hotel prices in Munich are even higher than those in Frankfurt for nice hotels near center. Part of the reason the Xojo Developer conference costs what it costs ($750-$950) is that Xojo, Inc. flies in their staff which of course is calculated into the price tag. For us a remote conference like in Frankfurt or Munich would probably cost 2000 Euro more than doing it around the corner here. And that would lead to a higher price per participant of course. So doing it in Koblenz again we can keep prices down and charge the same price as last year (299 Euro). Again we offer early bird price of 249 Euro and speaker price of 149 Euro.
So we are looking forward to Koblenz in September, but final decision depends on the hotel options we have. We'll check that soon.
New in this prerelease of the 14.1 plugins:
- Added SQLPreparedStatementMBS.Scrollable property.
- Rewrote SQLPreparedStatementMBS class. Now also taking binds on parameter name, not just index.
- Added MYSQL_SECURE_AUTH option to SQL Plugin, so you can pass true/false to enable/disable secure authentication for connecting to MySQL server.
- Added SQLDatabaseMBS.RaiseExceptions property. By default SQLDatabaseMBS raises no exceptions, but SQLConnectionMBS does. With the properties on both you can switch to the opposite. In all cases we update error properties.
- Added VLCEventManagerMBS.Listen method.
New in this prerelease of the 4.1 plugins:
- Added JSON.CreateStringArrayWithList function.
- Added new mode to String.ReplaceNewline for html/xml.
- Changed String.EncodeToHTML to ignore lower ASCII control characters.
- Added Files.ListRecursive function.
- Added DynaPDF.AddFontSearchPath function.
- Added Math.BitwiseAND, Math.BitwiseOR, Math.BitwiseNOT, Math.BitwiseXOR, Math.BitwiseShiftRight or Math.BitwiseShiftLeft.
- Improved QTMovie and PDFKit functions to read external containers by file.
As I just added another user to my shared dropbox folder for our plugins, I'd like to ask if there are more users who want to be added?
I can add you to the shared folder for latest Xojo / Real Studio Plugins or to the shared folder for latest Filemaker plugin.
Interested? Just send me an email or chat message with the email address you use on Dropbox.com.
And if you don't use dropbox, I can of course invite you.
The new Xojo cloud is a nice addition for quickly deploying a web solution for a client. From just a test installation to a full running solution. Of course you may need to upgrade from the smallest plan to a bigger one.
The package is designed to make it very convenient for the developer to run a web app. While you can get a small virtual private server for just $15 from Amazon, but with the xojo cloud you don't need to do a lot of things yourself:
- Install and configure linux
- install and configure web server
- Install and configure a working backup
- Install and configure an intruder detection software package
- Install updates regularly
- Configure web server to run perl cgi scripts
- Configure firewall
- Configure SSL certificates
- Configure exceptions to Firewall to talk to a database server
512 MB is quite okay for a couple of web apps with limited use of memory. But the server is configured with 512 MB of virtual memory, so with swapping you have 1 GB total. As far as I see after launching first Xojo app there is about 135 MB free. You can see that in my little infos app. We have an AMD Opteron Processor 4170 HE, which run with 2.1 GHz. You can query memory and CPU statistics using our MBS Plugin functions.
If you want to add a database beside SQLite, you can rent a database server or use your own database server. But for a database server it may be worth renting one from rackspace and use the same data center (Chicago) to have a very fast local network connection to database. But for that you will have to ask Xojo to open the firewall for local connections.
What you don't get is SSH access or any kind of FTP. If you need, you have to build yourself one of the examples as a simple file manager. The control panel is still quite limited. I miss controls to see current CPU and memory usage of all the apps. Also missing for us are good default and error pages in case someone tries different URLs for our server.
For European users, well the cloud is not very usable. There are issues with uploads to cloud, both from the IDE for uploading the app and with WebFileUploader control. And as servers are only in the chicago data center, so a lot of web apps are not allowed to be hosted there for us in Europe. Privacy laws don't allow storage of data outside the European Union for us. And some data is not even allowed to be outside the own country. This will be changed once Xojo Cloud is supported for the London data center.
You can now bind parameters by name with next plugin version:
// by index dim r as PreparedSQLStatement = db.Prepare("Insert into test_tbl(fid, fvarchar20) values(:1, :2)") r.BindType(0, SQLPreparedStatementMBS.kTypeLong) r.BindType(1, SQLPreparedStatementMBS.kTypeString) r.SQLExecute 12345, "Hello World by index" // by name dim sql as string = "Insert into test_tbl(fid, fvarchar20) values(:fid, :fvarchar20)" dim v as Variant = db.Prepare(sql) dim p as SQLPreparedStatementMBS = v p.BindType("fid", SQLPreparedStatementMBS.kTypeLong) p.BindType("fvarchar20", SQLPreparedStatementMBS.kTypeString) p.Bind("fid", 2345) p.Bind("fvarchar20", "Hello World by name") p.SQLExecute
So the new release is out and we all start using it. Of course a big project like Xojo is never done, but over a 100 bug fixes is a good thing. I personally like to see them work more on bug fixes than on new features, so the latest release has only a few additions.
The new AVFoundation based movieplayer control and the movie class can be used with our AVFoundation plugin. So you can actually use the plugin to access additional properties on the underlaying AVFoundation classes. For example you can use AVAssertMBS to get the metadata for the current playing movie like the lyrics or access the individual tracks of it.
The new IF function is really cool. It acts exactly like the normal IF command and only evaluates the one of the two choices for the result. This is more efficient than anything you can write yourself as a helper function.
In the web edition we got a major improvement for the listbox with header control. There is a new event HeaderPressed which allows us to do sorting in listbox on our own. And with HeaderStyle property we can style the headers differently.
If you just update projects to use 2014r1, be aware that a lot of quicktime classes have been removed. So Xojo is no longer using QuickTime at all (including Windows). MBS Plugin functions using QuickTime raise now in Xojo 2014 exceptions are the underlying plugin functions are no longer available. If you code sign your app, please update scripts to sign the framework instead of the dylib.
More to Xojo Cloud later.
Xojo 2014 Release 1 and Xojo Cloud, our one-click cloud hosting solution, are now available. Xojo 2014 Release 1 greatly improves overall IDE performance and layout editor performance for webpages with a lot of controls. It contains 107 improvements, 20 changes and 6 new features, including:
- MoviePlayer uses AVFoundation on OS X to support Mac App Store.
- New If operator for single-line If statements that can be used as expressions.
- New Crypto functions for DER and BER conversion.
- CancelBuild IDE Script command.
- Added WebTextField.CueText property.
- WebContainers scroll properly on mobile devices.
- Added HeaderPressed and HeaderStyle properties to WebListBox.
- Added TargetRemoteDebugger constant to know when the remote debugger is being used.
- Much improved tab behavior within IDE.
Also shipping today is the much anticipated Xojo Cloud - the best way to build web apps is now also the best way to host them!
Xojo Cloud is:
- Secure: You can't afford to be hacked. When it happens, it's costly. Our state-of-the-art, industrial-strength, multi-tiered security is woven into the core of every Xojo Cloud server.
- Easy: It can take days to set up a server and get it configured properly. Xojo Cloud servers require zero configuration. And with just one-click, your apps are deployed.
- Maintenance-Free: Servers require maintenance. Not so with Xojo Cloud servers. We maintain and back up your server for you saving you time and money.
New in this prerelease of the 14.1 plugins:
- Added NSFileHandleMBS.AvailableBytes function.
- Added flags parameter to SystemInformationMBS.MachineID so you can decide what values are used.
- Fixed a bug in PNG plugin with reading picture from string.
- Fixed WindowsICMProfileMBS.CreateIccProfile function to load the Windows function WcsCreateIccProfile dynamically.
- Updated DynaPDF library to version 220.127.116.11.
New in this prerelease of the 4.1 plugins:
- Added DynaPDF.CreateCheckBox and DynaPDF.CreateTextField.
- Added RunTask methods to add arguments and read/write data to the launched app.
- Fixed a problem with CGImageSource.Keys function where it crashed with invalid image reference.
- Added Menu/MenuItem functions and a Menu.Popup method to show popup menu on Mac.
- Added DynaPDF functions: DynaPDF.GetImportFlags, DynaPDF.SetImportFlags, DynaPDF.SetTextFieldValue and DynaPDF.SetTextFieldValueEx.
- Improved container reading for movie files.
After the recent survey, we found a date: 13th March 2014.
For 7 pm, we reserved a table in the Steak-House Arizona, but I hope to be there earlier.
See you there.
PS: if you like to join us, please email me.
We thought about whether to make another conference this fall.
With some questions we'd like to know how many people to expect and what preferences you have.
If you have time, please fill this survey with just 10 questions:
For additional comments, please email us directly.
Currently Mac OS X only, but working nice already:
For FileMaker 11 to 13.
New in this prerelease of the 14.1 plugins:
- Added LinuxProcessMBS class.
- Added WindowsICMProfileMBS.CreateIccProfile function.
- Changed NSImage*MBS classes to have properties instead of methods, so you see something in debugger. Also added a few more methods.
- Added MapKit plugin.
- Added CLLocationCoordinate2DMBS class.
- Added WebSocketHelperMBS.Unmask parameter.
- Added NSPrintInfoMBS methods to redirect printing to a file with normal Xojo OpenPrinter command in Cocoa app.
- Added DirectShowAMCrossbarMBS.PhysicalPinName, DirectShowCaptureGraphBuilderMBS.Crossbar and DirectShowAMCrossbarMBS.BaseFilter functions.
- Added BackColor and ForeColor properties for BarcodeGeneratorMBS class.
New in this prerelease of the 4.1 plugins:
- Added new grapichsmagick path drawing methods.
- Improved DynaPDF.GeneratePreview to flattens annotations and forms.
- Fixed bug in DynaPDF.GetTextFieldValue and DynaPDF.GetTextFieldDefaultValue function.
- Added CLGeocoder functions to map address to geo coordinate and back on Mac OS X.
- Changed plugin to return error message if you pass compressed container value. We have no idea on how to uncompress.
- Added functions Audit.SetLogAccess and Audit.GetLogAccess.
- Fixed functions Files.FileExists, Files.ItemExists, Files.DirectoryExists to return 0 on Mac instead of error if file/item/directory is not found.
- Changed Audit functions to ignore fields in the audit table which are not used. This way you can have automatically calculated fields there.
The March/April 2014 (12.2) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
- Inside Email * by Christian Schmitz
Have you ever needed to send email from inside your application? In this guide, you'll learn how to do it.
- Smart Reporting * by Trisha Duke
Sometimes a custom-made reporting solution is the answer. Trisha shares her method.
- Xojo Around the World * by Markus Winter
There are Xojo users everywhere. Markus even found some in New Zealand!
- The Dangers of Inefficiency * by Marc Zeedar
An efficient application isn't just about code optimization -- you need to consider subtle ways in which you carelessly waste your user's valuable time.
- Moving to AVFoundation * by Christian Schmitz
If you haven't heard the news, QuickTime is dead. AVFoundation is the new way to manipulate video content in your programs. Christian explains the differences.