As I come to Utrecht (Netherlands), I plan a Xojo Developer dinner meeting there:
Date: 10th March 2017
Time: probably 18:00 to 22:00 o'clock, so you can come later or leave earlier.
Where: Somewhere in/near Utrecht, suggestions welcome.
Cost: Your own food and beverage
If you are interested, please let me know.
Topics may include news for MBS Plugins, Xojo conferences and latest Xojo release.
If you are interested in FileMaker, you can join the
MBS FileMaker Plugin Training day in Utrecht
As you may know we have already two CURL variants. First, the one to use your custom CURL library or the system provided one on Mac or Linux. Second, the CURLS* classes using a statically linked curl library with OpenSSL and SSH2 libraries. Now we a third option with CURLN* classes. Those use a built-in CURL library with the native SSL on Mac and Windows.
Here is a table with the built-in libraries:
Platform | CURL | CURLS | CURLN |
---|
Mac 64-bit | - | OpenSSL | DarwinSSL |
Mac 32-bit | - | OpenSSL | DarwinSSL |
Mac 32-bit PPC | - | OpenSSL | - |
Windows 32-bit | - | OpenSSL | WinSSL |
Windows 64-bit | - | OpenSSL | WinSSL |
Linux 32-bit | - | OpenSSL | - |
Linux 64-bit | - | OpenSSL | - |
Linux 32-bit ARM | - | OpenSSL | - |
For all variants you can always optionally load system or custom libraries. It's just about what is included in the plugin as default option.
Native SSL on Mac requires OS X 10.8 or newer.
If no library was loaded and you run the CURL class constructor, we will try to load the system library. That works fine on Linux and Mac.
So now it's your decision what you want to use:
The default for examples will stay with
CURLSMBS as the built-in libraries provide cross platform the same experience. If you need to do native SSL, you may want to try
CURLNMBS and if you plan to use your own custom CURL libraries, you can use
CURLMBS.
Everyone can now watch those 34 sessions from last year's XDC in Houston, Texas.
If you attended, you can simply login on
xojo.com and find the videos in the navigation bar.
If not, you can purchase them for a special introductory price of $349,
buy now.
Session list:
- XDC Keynote
- About the Xojo Compiler, Joe Ranieri
- Advanced Git Features and Methodologies, Justin Elliott
- All About iOS, Travis Hill
- Ask the Xojo Engineers
- Build and Consume REST WebServices with Xojo, Pat Delaney
- Database Driven Apps, Hal Gumbert
- Database Design Patterns and Anti-Patterns, Craig Boyd
- Desktop Developer’s Guide to Making iOS Apps, Paul Lefebvre
- Eliminating Common Database Issues, Bob Keeney
- Quick, Good and Cheap: Removing Human Error in the Xojo Application Build Process, Greg O’Lone
- Fun topics with Introspection, Norman Palardy
- Grow Your Software Company: Create Value, Get Sales, Paul Levine
- Implementing Self-Updating Apps with Kaju, Kem Tekinay
- It Rhymes with Mojo, Mark Strickland
- Load Balancing and Other Techniques for Enterprise Web Apps, John Joyce
- Managing Your Projects (and Yourself) to Success, Susan Fennema
- Mastering PostgreSQL, Dirk Cleenwerck
- Modernizing Your Xojo Apps, Paul Lefebvre
- Panel Discussion - Running a Software Business - Geoff Perlman, Paul Levine, Fred Roller
- Panel Discussion - Xojo Consulting - Paul Lefebvre, Bob Keeney, Tim Dietrich, Hal Gumbert
- Powering Apple TV Apps With Xojo, Tim Dietrich
- Raspberry Pi: The Ultimate Gadget, Paul Lefebvre
- Responsive Design for Desktop and Web, Michel Bujardet
- Snippets: A Collection of Tools and Code to Enhance Productivity, Bob Gordon
- Supercharge Your Windows and Linux Apps, William Yu
- Supporting Retina and HiDPI in Your Applications, Greg O'Lone
- Test Driven Development, Jeremy Cowgar
- The Dirty Dozen: Connecting to Nearly Any Database with the MBS SQL Plugin, Christian Schmitz
- The Xojo Framework, Joe Ranieri & Travis Hill
- Unit Testing from Soup to Nuts in Xojo, Philippe Casgrain
- Xojo Reporting on Steroids, Bob Keeney
- Xojo's Role in the API Economy, Tim Dietrich
- XojoScript: Xojo's Coolest Feature, Marc Zeedar
If you like to attend a conference, we have two great options for you:
in 2017: the
MBS Xojo Conference in Berlin, Germany from 4th to 5th May 2017.
in 2018: the
Xojo Developer Conference 2018 in Denver, USA from 25th to 27th April 2018.
New in this prerelease of the 17.1 plugins:
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
For years now we have two classes for
CURL in your
MBS Xojo Plugins:
CURLS (with S) which uses our statically linked CURL library. And it includes SSH and SSL libraries, so it has no dependencies. You can use the plugin and no other DLLs are required.
CURL (without S) does the same, except that it comes without a built in library. You can load whatever CURL library you want. For example you can use the one which comes with macOS or Linux. Or you provide your own dll/dylib/so files. Those versions may be with or without SSH or other features.
For 7.1 plugins we made sure both sets of classes have the same features and match in classes. So we got FileInfo class for CURL part, too.
And the CURLEmailMBS class used with CURLS part is now named CURLSEmailMBS. That is due the CURLEmailMBS is now related to CURLMBS. Please update the class name in your code.
If you are interested to use native SSL libraries on Mac or Windows and ditch OpenSSL, we have later special
CURL Libraries for you. They work well with CURL plugin, but you have to include them with your application and load them at runtime.
For browsing help files, the
Dash application is very useful on Mac and iOS.
Here you can click to launch Dash and install our plugin help:
MBS Xojo Plugin and
MBS FileMaker Plugin
You can download the archives manually on our website:
FileMaker and
Xojo (Real Studio).
You can also add Xojo documentation itself to your dash set, see download in preferences dialog.
For FileMaker you find the docsets for v15 here:
FileMaker Dash Docsets
Feedback is welcome.
On the weekend of March 18-19, 2017, the first ever
curl conference is taking place is Nuremberg, Germany.
Users, developers, binding authors, application authors, curl maintainers, libcurl hackers and other people with a curl interest are welcome!
I will be there and finally meet the curl people. I've been using curl for various projects including Xojo and FileMaker plugins for over 10 years.
Do you also come?
New in this prerelease of the 17.1 plugins:
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
Vor fast zehn Jahren habe ich für die Macwelt ein paar Videos gemacht für Macwelt TV zu REALbasic:
Die Anleitungen funktionieren wunderbar mit dem aktuellen Xojo. Natürlich sieht Xojo etwas anders aus als REALbasic früher:
- Alle Events müssen Sie selber hinzufügen.
- Das StaticText Steuerelement heißt jetzt Label.
- Alle Konstruktoren heißen Constructor und nicht mehr wie die Klasse.
Aber die Spiele kann man beide noch wunderbar nach programmieren und etwas Spaß mit dem Ergebnis haben!
Alle Videos finden Sie auf
YouTube. Ein paar Kopieren liegen auch
hier zum Download.
Recently we had the question whether we can draw into a MDI parent window.
The answer for all your Xojo or Real Studio projects is yes:
We can catch the paint event with our
WinNotificationMBS and draw something nice there.
For example a fixed color or any picture you like.
This will come with next prerelease or if you like to try today, just email me.
Today I made an example for a client to show how to do AES 256bit CBC encryption on iOS using CommonCrypto library and the
MBS Xojo Encryption Kit.
Our Encryption Kit wraps the CommonCrypto framework from Apple which is available for iOS (2.0 or newer) and macOS (10.4 or newer). It also wraps zlib library to compress and decompress data.
The compression and encryption functions are than used in a database connector. That's a proxy to connect to a database on a server and serialize the requests and record sets to send them through the network.
So here is some sample code for AES 256 CBC:
dim MyVal as text = "If you can read this text then process of encryption and decryption is working well."
dim mbMyVal as xojo.Core.MemoryBlock = xojo.core.TextEncoding.utf8.ConvertTextToData(MyVal)
dim MyPwd as text = "Passphrase goes here"
dim mbMyPwd as xojo.Core.MemoryBlock = CommonCryptoMB.Hash(CommonCryptoMB.Hashes.SHA256,MyPwd)
System.DebugLog "Test value and passphrase created."
dim iv as xojo.Core.MemoryBlock
dim cryptor as new CommonCryptorMB(CommonCryptoMB.CryptoOperation.Encrypt, CommonCryptoMB.CryptoMode.kCCModeCBC, _
CommonCryptoMB.CryptoAlgorithm.AES, CommonCryptoMB.CryptoPadding.PKCS7, mbMyPwd, iv)
dim enData1 as xojo.Core.MemoryBlock = Cryptor.Update(mbMyVal)
dim enData2 as xojo.Core.MemoryBlock = cryptor.Final1
dim enData as new xojo.Core.MutableMemoryBlock(enData1)
enData.Append enData2
System.DebugLog "Encrypted data value created."
System.DebugLog "Encrypted data: '" + CommonCryptoMB.EncodeHex(enData) + "'"
dim decryptor as new CommonCryptorMB(CommonCryptoMB.CryptoOperation.Decrypt, CommonCryptoMB.CryptoMode.kCCModeCBC, _
CommonCryptoMB.CryptoAlgorithm.AES, CommonCryptoMB.CryptoPadding.PKCS7, mbMyPwd, iv)
dim result1 as xojo.Core.MemoryBlock = Cryptor.Update(enData)
dim result2 as xojo.Core.MemoryBlock = cryptor.Final1
dim result as new xojo.Core.MutableMemoryBlock(result1)
result.Append result2
System.DebugLog "Result: '" + xojo.core.TextEncoding.UTF8.ConvertDataToText(result) + "'"
The same code works fine on macOS. For cross platform encryption for Mac, Windows and Linux, I would recommend our
CipherMBS class.
New in this prerelease of the 17.1 plugins:
- Updated DynaPDF to version 4.0.8.20.
- Added NSTableDataSourceMBS sortDescriptorsDidChange event.
- Added orderOut and orderFront to NSMediaLibraryBrowserControllerMBS class.
- Added LibraryLoaded property to DB2MBS, InformixMBS, MySQLMBS, PostgreSQLAPIMBS and SQLite3MBS.
- Fixed InternalPostgreSQLLibraryMBS, so it works again on Linux.
- Added CFObjectMBS.EncodedData.
- Fixed issue with overwritten memory in Picture.SteganographyMBS function.
- Added JPEGExporterMBS.ExportGray with memoryblock for pixel data.
- Added workaround to CoreLocation plugin to avoid bugs in 32-bit Apple frameworks.
- Fixed an issue with private API for Mac App Store in NSEPSImageMBS.
- Removed RegisterCustomQTDataHandlerMBS and OpenMovieWithCustomDataHandlerMBS.
- Removed AppleTalk properties for SystemConfigurationMBS as they are no longer available in macOS 10.12.
- Added options to TiffPictureMBS.Scanlines to read only every nth scanline.
- Added WindowsProcessMBS class, a shell class replacement for Windows.
- Added CGImageMBS.PictureScaled to get picture scaled down faster.
- Added support for CEF3 beside CEF1.
- Fixed NetworkInterfaceMBS.MAC to no longer have a LF character on the end.
- Fixed HIDAPIMBS to better find libudev.
- Added AppendTableRow and DuplicateTableRow to WordFileMBS class.
- Removed CUPSMBS.GetPPD function.
- Fixed an issue with internal message window for Windows.
- Changed plugin to show less registration warning dialogs in trial mode.
- Fixed issue with LDAPMBS.Bind not working correctly on Windows for all auth methods.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
The last days, I spend some time on a class for Windows to run a process with access to the stdin/stdout/stderr channels. I know the
Xojo Shell class can do that, but I wanted a bit more Windows specific commands here.
So we got a new
WindowsProcessMBS class to run a process on Windows. You can run GUI or command line applications and specify a couple of options. The plugin will automatically connect stdin, stdout and stderror handles, so the plugin can read the output of the tool and pass data for input. The class can be used synchronously or with events, whatever you prefer. Here an example:
// run command
dim w as new WindowsProcessMBS
w.CommandLine = "cmd /c dir"
w.CurrentDirectory = "C:"
if not w.run then
MsgBox w.LastErrorMessage
Return
end if
// wait
while w.Running
app.YieldToNextThread
wend
// show result
dim a as integer = w.AvailableBytesOutput
dim r as string = w.ReadOutput(a)
MsgBox r
We already got features to specify command line and environment variables. You can read or just peek in the output of the launched application. We can even terminate it or just wait for it to quit.
This class will be available in 17.1pr1 plugins soon. If you want to test on the weekend, send me an email.