MBS Xojo Developer Conference

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/

Pictures from the Xojo Developer Conference

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 at the Xojo Conference

My session was moved to just after the lunch, so if you plan to come, please check the updated schedule tomorrow.

Tip of the day: Change EXIF metadata

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

Sneak Peak

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.

Just added: Zoom for HTMLViewer/Webviewer on Windows

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.

Tip of the day: Use Int64 for file and memory sizes

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.

MBS Xojo Developer Conference - Save the date

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.

MonkeyBread Software Releases the MBS Xojo / Real Studio plug-ins in version 14.1

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 3.0.32.87, LittleCMS to version 2.6.

See release notes for a complete list of changes.

Quiz of the day: What happened to this dialog?



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.

Survey Results

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.

MBS Xojo / Real Studio Plugins, version 14.1pr5

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.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

Xojo Cloud

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
With smallest package you get 512 MB of RAM, 20 GB hard disk, 20 GB of outgoing bandwidth, 20 Mbps network throughput and a single virtual CPU. Two bigger packages are available and if you need even more, you can ask. Probably all the configurations rackspace offers can be offered for xojo cloud.

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.

SQLPreparedStatementMBS improvements

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

More about Xojo 2014r1

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

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.
Get it now at xojo.com/download.

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.
Developing, testing and deploying your web app has never been so easy! Learn more at xojo.com/cloud.

MBS Xojo / Real Studio Plugins, version 14.1pr4

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 3.0.32.87.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

Xojo Meeting in Hamburg, Germany

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.

Survey about 2014 Conference in Europe

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:

Start Survey

For additional comments, please email us directly.

MBS Xojo / Real Studio Plugins, version 14.1pr3

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.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

xDev Magazine Issue 12.2

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.
Plus: OOP Structure, database design, Regex versus Xojo code, development hardware, Xojo tips, meet Xojo developers, and more.
The biggest plugin in space...

Archives

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