Three days till year's end

The year 2015 will end in around three weeks. Do you need some more licenses?
  • Last chance to update licenses purchased in 2013.
  • You can order licenses for 2016 or later and have delivery plus payment done in 2015.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • If you need a Xojo license (new or update), we can always check whether a bundle of Xojo offers an advantage for you.
  • For FileMaker please check if you have enough license for the number of seats or servers you have in use.
Especially if you run on a budget and you want to spend some money in 2015, you can buy updates for several years in advance.

Dropping PPC, OS X 10.4 and/or rbx plugins?

For the new year, I thought about whether I could drop something for Real Studio.
The downloads for Real Studio are down to about 10% compared to Xojo plugin downloads.

The users with Real Studio version capable of building PPC apps may be down to less than 1%, so I wonder if I still should spend time building PPC and Universal libraries.

When PPC support is no longer needed, it may be worth to move the minimum target for OS X from 10.4 to 10.6. For 64-bit, we already use 10.7 as target and for Cocoa 10.5. Using 10.6 for all of those could simplify coding.

Finally if downloads for Real Studio go down further, the rbx plugin format is at question. I considered already to write a converter to convert Xojo plugins to rbx plugins, so users in need of those plugins could do conversion themselves. I would no longer need to upload those plugins.

What do you guys think about such changes?


PS: If you still use Real Studio, please use latest 15.4 plugins. They still work with REALbasic 2006r4 and newer!

MBS Xojo / Real Studio Plugins, version 15.5pr4

New in this prerelease of the 15.5 plugins:
  • Fixed a bug in CGPictureContextMBS class.
  • Added uuDecodeMBS and uuEncodeMBS functions.
  • Added NSAttributedStringMBS.GeneratePDF function.
  • Fixed problem with JSONMBS.SuffixObject method.
  • Updated SQLAPI++ 4.1.7.
  • Updated DynaPDF to version 3.0.46.140.
  • Added CipherMBS.Padding property.
  • Fixed an issue with registration plugin part and web app.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

More Drag & Drop on Windows

Did you see our recent improvements to WinDataObjectMBS class?

It is great for receiving drags on Windows. Especially we got a case with Microsoft Outlook here. When you drag and email and/or attachments to your Xojo app, you do not get all data normally. But with using our classes, you can get more details.
For a normal Explorer file drag, the GetPaths function will give you folder items. But with Outlook attachments, there are not paths. But GetFileDescriptors gives you metadata for those attachments and GetFileContents function can give you the data. For the actual email, the GetFileName function gives you a path.
The reason for all those different functions is that Microsoft invented over the years newer ways to handle drag & drop, especially for files.
With now three ways to receive files, we are happy to get data into Xojo app from Microsoft Outlook.

Merry Christmas

Frohe Weihnachten und ein gutes neues Jahr!

Merry Christmas & Happy New Year

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo


Sebastian, Michael, Monika & Christian Schmitz

MBS Xojo / Real Studio Plugins, version 15.5pr3

New in this prerelease of the 15.5 plugins:
  • Added noteHeightOfRowsWithIndexesChanged method to NSTableViewMBS class.
  • Improved NSTableViewMBS to have more debugger visible properties.
  • Updated DynaPDF to version 3.0.46.139.
  • Added more LDAPMBS properties.
  • Added more WinDataObjectMBS class methods.
  • Fixed bug in HASPHLDMBS.HaspTimeToDateTime function.
  • Deprecated HASPHLMBS and HASP functions. Please move to HASPHLDMBS classes for using HASP Sentinel dongles.
  • Improved SignalMBS class to show better names in crash log.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

Xojo Meetings in Chicago and Cleveland

As I am going to Cleveland for a conference, I thought about organizing a few Xojo meetings there. So if you are in Cleveland or Chicago area, maybe you want to join me for a dinner event?

So we have two surveys here:

Chicago, Illinois
Cleveland, Ohio

Maybe you want to check the dates and join us in March?
Once we come closer, we can decide on a date. If someone wants to suggest a location, please email me.

Xojo 2015r4

We just got notice about the release of Xojo 2015r4.
This is a minor release fixing over 100 issues in Xojo. The planed features for retina support and high resolution aware applications has been moved to 2016r1 as it is not yet finished. Especially for Windows it seems to be harder than expected. Nevertheless you can already use the image sets in your projects to include assets in several resolutions. Be aware that those may be lost or not editable in older versions of the IDE.

Xojo 2015r4 is primarily a bug fix release. Some notable improvements include:
  • Added CGFloat data type to make it easier to create Declares to iOS and OS X Cocoa frameworks.
  • The Code Editor is now noticeably faster when working with large projects.
  • You can use the TextAlign property to more easily set the alignment for web text controls.
  • Added SecureAuth property to MySQLDatabase to allow connections to pre-4.1.1 authentication protocols.
You can download on the xojo website.

Print to Printer in Xojo on Windows

We do have quite a few printing classes in our MBS Xojo Win plugin for Windows. You can query installed printers, learn about page formats and print jobs, show page setup and print dialogs, modify the device mode and create print jobs.

As we can enumerate printers, we can show them in a popupmenu. User can select one and we modify the printer setup string for a Xojo printerSetup object and than use normal Xojo printing functions to print:

// now we have nice setupstring dim ss as string = ps.SetupString 'MsgBox str(len(ss)) // parse it in device mode, to retain settings there dim d as WindowsDeviceModeMBS = WindowsDeviceModeMBS.FromSetupString(ss) if d = nil then // or start with a blank one d = new WindowsDeviceModeMBS end if // change printer if PopupPrinter.ListIndex >= 0 then dim w as WindowsPrinterInfoMBS = PopupPrinter.RowTag(PopupPrinter.ListIndex) // set device name d.DeviceName = w.PrinterName else MsgBox "No printer selected." Return end if // enable duplex 'd.Fields = BitwiseOr(d.Fields, d.DM_DUPLEX) 'd.Duplex = d.DMDUP_HORIZONTAL // get back as setup string dim da as string = d.SetupString if da = "" then MsgBox "failed to create setup string" Return end if // assign back ps.SetupString = da // and print something dim g as Graphics = OpenPrinter(ps) g.DrawString "Page on "+d.DeviceName, 50, 50
PS: Works in Real Studio, too.

Thread Names

Today I want to introduce you to SetThreadNameMBS, a newer function you can use in our MBS Xojo and Real Studio Plugins (15.5pr2).

Our plugin calls the SetThreadName function already for all the preemptive threads like for CURL or SQL. In a crash report you see the thread name and you can identify what the thread does. For example we create a project in Xojo and run there two threads. We name the main thread, the first and second test thread. Now we let one thread crash with a NULL pointer easily. In the crash report we can now see which thread is doing what by seeing our names:

Thread 0:: This is my Main Thread Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x96d9c9ce mach_msg_trap + 10
1 libsystem_kernel.dylib 0x96d9ba70 mach_msg + 68
2 com.apple.CoreServices.CarbonCore 0x9a9d7f6a YieldToThread + 429
3 rbframework.dylib 0x001f6791 0x1d4000 + 141201
4 rbframework.dylib 0x001f7388 threadRun + 392
...

Thread 10:
0 libsystem_kernel.dylib 0x96da2e6a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x9963372a _pthread_wqthread + 939
2 libsystem_pthread.dylib 0x99630e0e start_wqthread + 30

Thread 11:: TestThread
0 libsystem_kernel.dylib 0x96d9c9ce mach_msg_trap + 10
1 libsystem_kernel.dylib 0x96d9ba70 mach_msg + 68
2 com.apple.CoreServices.CarbonCore 0x9a9d7f6a YieldToThread + 429
3 rbframework.dylib 0x001f6791 0x1d4000 + 141201
4 rbframework.dylib 0x00277684 0x1d4000 + 669316
5 rbframework.dylib 0x0027135f RuntimeBackgroundTask + 47
6 0x00170c14 MainWindow.MainWindow.Thread1_Run%%oo + 96
7 0x001739ff Delegate.IM_Invoke%%o + 110
8 0x00173a40 AddHandler.Stub.0%% + 51
9 rbframework.dylib 0x001f7450 0x1d4000 + 144464
10 com.apple.CoreServices.CarbonCore 0x9a9d7b88 CooperativeThread + 305
11 libsystem_pthread.dylib 0x99633c25 _pthread_body + 138
12 libsystem_pthread.dylib 0x99633b9b _pthread_start + 162
13 libsystem_pthread.dylib 0x99630e32 thread_start + 34

Thread 12 Crashed:: CrashingTestThread
0 0x00170d11 MainWindow.MainWindow.Thread2_Run%%oo + 117
1 0x001739ff Delegate.IM_Invoke%%o + 110
2 0x00173a40 AddHandler.Stub.0%% + 51
3 rbframework.dylib 0x001f7450 0x1d4000 + 144464
4 com.apple.CoreServices.CarbonCore 0x9a9d7b88 CooperativeThread + 305
5 libsystem_pthread.dylib 0x99633c25 _pthread_body + 138
6 libsystem_pthread.dylib 0x99633b9b _pthread_start + 162
7 libsystem_pthread.dylib 0x99630e32 thread_start + 34

The thread with number 10 is created by OS X and has no name. Out threads with indexes 0, 11 and 12 have names.
This does help debugging, because we often have several things running and just one instance crashes. The thread name allows us to pass a text value to the crash report. This can be the ID of a transaction, the name of the PDF we process or the file we upload. We may have ten threads with same code run in different instances, but the thread name in the crash report may give us the clue we need to find the problem.

Should work fine on OS X, Windows and Linux. Please try it.

TextInputCanvas for 64-bit

As you may know there is an open source project called TextInputCanvas.

Recently I did a 64-bit port for a client.

You can load a copy on my plugin download page.

Updated source code is available for Xojo Inc. to update the official plugin soon. My plugin is build with my plugin build system, so it has MBS in the name and includes libraries for Mac, Windows and Linux including ARM, so you can use it in all projects. If you find a bug related to my 64-bit port, please tell me.

MBS Xojo / Real Studio Plugins, version 15.5pr2

New in this prerelease of the 15.5 plugins:
  • Added SetThreadNameMBS method.
  • Fixed problem in pr1 with Registration for Windows.
  • Updated SetApplicationDockTileImageMBS, RestoreApplicationDockTileImageMBS and OverlayApplicationDockTileImageMBS methods in Application class to work in 64-bit.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

Atlanta Xojo Users Group - Mon, Dec 14, 2015

The Xojo developers in Atlanta area meeting next monday:

Hello Xojo enthusiasts!

Please join us for this Xojo monthly meeting! We promise that you'll learn something new at each meeting!

Who: Everyone interested in developing in Xojo!
What: Monthly Meeting
Where: Las Palmas Mexian Restaurant, 2210 Holly Springs Pkwy, Holly Springs, GA :: 770-720-0062
When: Monday, December 14th, 2015 - 6pm to 9pm
Topic:
What a huge year for Xojo and Xojo developers. At this meeting we'll look back at the news highlights of the previous year. We'll also be looking into our crystal ball to speculate on what will occur in 2016.

We've got the latest Xojo news, reviews and announcements.

I hope to see you there!

Have a great time! (MBS will not be present)

MBS Xojo / Real Studio Plugins, version 15.5pr1

New in this prerelease of the 15.5 plugins:
  • Added CGColorSpace additions for OS X 10.11.2
  • Updated our CoreImage Filters to OS X 10.11 El Capitan.
  • Added more CoreImage classes and functions. e.g. for QRCode recognition.
  • Fixed an issue with DynaPDF tables and haveMore returning true in where it should have returned false.
  • Updated openssl to 1.0.2e.
  • Fixed constructors taking handle for NSMenuItemMBS and NSMenuMBS to work.
  • Fixed CallMethodLaterMBS time parameter. Now more precise.
  • Added NSAppleEventDescriptorMBS.descriptorWithCurrentProcessSerialNumber and NSAppleScriptMBS.executeSubroutine.
  • Updated DynaPDF to version 3.0.46.137.
  • Added more FSEvents functions.
  • Improved LDAPMBS constructors to work cross platform in both flavors.
  • Changed CURLEmailMBS class to check whether you called Constructor when subclassing.
  • Added SQLDatabaseMBS.ConnectMT method.
  • Fixed a problem with escaping names in emails.
Download: macsw.de/plugin/Prerelease . Or ask us to be added to our shared Dropbox folder.

Three weeks till year's end

The year 2015 will end in around three weeks. Do you need some more licenses?
  • You can order licenses for 2016 or later and have delivery plus payment done in 2015.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • If you need a Xojo license (new or update), we can always check whether a bundle of Xojo offers an advantage for you.
  • For FileMaker please check if you have enough license for the number of seats or servers you have in use.
Especially if you run on a budget and you want to spend some money in 2015, you can buy updates for several years in advance.

Early Registration for XDC is Now Open!

Early registration for the 2016 Xojo Developer Conference is now open! XDC will take place in Houston, TX October 5-7, 2016. It features sessions on best practices, special interests and other technical topics, with content for every level of Xojo developer. Educational sessions will cover topics like Xojo iOS, Raspberry Pi, database design, user interface design, debugging techniques, writing secure apps, and much more! Want to know what XDC is like? Watch our highlights video!

Register now!

XDC Pricing:
Early Bird Registration
Now through March 21, 2016: $799

Advanced Registration:
March 22 - August 22, 2016: $899

Late Registration:
August 23 - Conference: $999

XDC will take place at the lovely boutique Hotel Derek in the Galleria area of Houston. It's right in the middle of two airports, giving you plenty of options (and time) to find a great flight! We have negotiated a hotel room rate of $164 a night. Rooms can be reserved here.

If you have any questions about XDC, feel free to email or PM me on the forum.

More information, including the call for speakers, will be coming after the new year.

Birthday of our video page

Eight years ago we started created tutorial videos and today our video page has birthday. Enjoy a video and learn about our plugins.

Over the years we collected more than 60 videos. We hope you enjoy them!

We know we could make more videos. So what wishes do you have?
Please email us or post a comment here.
The biggest plugin in space...

Archives

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