There are only a few little changes:
- 22558: MacCocoa: No longer raises an ObjCException when viewing a ContainerControl in the debugger.
- 22658: Macintosh: Fixed an assertion that was triggered if FolderItem.Item was invoked with an index > 1 on a directory for which the process does not have read access.
- 21473: Web: Framework: Added a workaround for the iOS 6 Ajax bug.
Especially the iOS 6 fix is important as the ajax handling changed there in Safari.
If you like you can read the details in Feedback application by looking up the case numbers above.
New in this prerelease of the 12.5 plugins:
- Fixed bug with wrong datevalue in RecordSet from SQLDatabaseMBS.
- Added WindowsProcessStatisticsMBS.HandleCount property and WindowsProcessStatisticsMBS.ModeHandles constant.
- Added more NSControlMBS methods.
- Added TextArea.NSTextFieldMBS.
- Added drawWithBox event to all PDFAnnotationMBS subclasses.
- Added NSFontPanelMBS.validModesForFontPanel and some constants.
- Fixed a bug in DynaPDFMBS.SetFillColor with single array. Double worked, but single didn't.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
Just a few days left and 4 seats are still available:
The Real Studio Developers UK User Group is pleased to announce a one-day conference on Friday 2nd November, at the Regus office, Ground Floor, One Victoria Square, Birmingham, B1 1BD.
During the day there will be presentations from guest speakers from the UK and abroad, including Stephane Pinel from Real Software, Christian Schmitz, Trisha Duke, David Cox and Eric Gibbon. There will be plenty of time for networking and Q&A, where you can get help with your questions and issues from others, and perhaps demonstrate your software to others.
If you are a Real Studio developer, or are thinking about developing in Real Studio, there will be something for you. A raffle will be held and two lucky people will get a coupon for a 50% discount from their next purchase on the Real Studio online store!
(more)
We can confirm that Mr. Jens Boschulte, CEO of
DynaForms GmbH and main developer of the DynaPDF library will join us in Koblenz for the Real Studio conference. So you can ask all your PDF questions and learn better how the DynaPDF library works. Of course questions related to the Real Studio plugin may be better asked to Mr. Christian Schmitz from Monkeybread Software.
DynaPDF is a PDF library which started as a little library for PDF related tasks like working on PDF forms and converting EMF to PDF. The library grew over the last years to now over 800 functions. Earlier this year it got powerful raster functions to display PDF pages. It's just a question of time when we will have full editor functionality available to create PDF editors for all the special usages our clients can imaging.
We hope you enjoy coming to our conference next month.
More details on the
website
- Windows 8 can be downloaded for free as 90 day test version. Search for Windows 8 Enterprise Evaluation.
- How should I use this with a normal mouse? I hope Apple never has the crazy idea to run desktops with iOS!
- Maps shows for my village images which are something like 5 years old. They show a factory which was teared down years ago. Google Earth shows the factory was away 2009 and grass already growing there.
- Do not press windows key by mistake. You get back to main screen.
- Real Studio seems to run just fine with our plugins.
- All of our plugins load file. Verified with Plugin Load Check app.
- Seems like security was tightened. ProcessMBS class seems to no longer see other processes.
- Controls adopt the new style in view automatically. Custom controls may need to be updated to not look strange compared to native ones.
In general it looks like for our plugins, Windows 8 is just another Windows 7 with a new theme.
You can set fill or stroke color in DynaPDF using the normal SetFillColor/SetStrokeColor function. You pass an integer with the color value. This integer may be a simple color value for gray color space or may use RGB or CMYK functions for those color spaces.
But what if the integer precision is not enough?
Like if you want to show a 50% gray value, you can't really pass 127.5. You normally get it rounded down to 127.
If you really want to have 127.5, you need to use an array of doubles. We have FillColor overloaded so you can pass an array of double values to it. Now with double values you can pass 0.5 and the PDF will actually contain this value!
With doubles, the values are normalized in an array with one value per channel and range from 0.0 to 1.0.
This code is both fast and GPU accelerated so it works with huge pictures:
// Rotate image with CoreImage
// load image
dim f as FolderItem = SpecialFolder.Desktop.Child("test.png")
dim image as new CIImageMBS(f)
// rotate 45 degree
dim n as new NSAffineTransformMBS
n.rotateByDegrees(45)
dim TransformFilter as new CIFilterAffineTransformMBS
TransformFilter.inputImage = image
TransformFilter.inputTransform = n
// get result
dim resultImage as CIImageMBS = TransformFilter.outputImage
// for saving to file
dim outputImage as NSImageMBS = resultImage.RenderNSImage(false)
f = SpecialFolder.Desktop.Child("output.png")
dim b as BinaryStream = BinaryStream.Create(f, true)
b.Write outputImage.PNGRepresentation
// as Real Studio picture object for display
dim pic as Picture = outputImage.CopyPictureWithMask
Backdrop = pic
New in this prerelease of the 12.5 plugins:
- Added OldSDK parameter to EdsCameraMBS.DownloadEvfImage and EdsEvfImageMBS.Constructor for the case you want to use new plugin to 2.10 SDK instead of 2.11 SDK.
- Added AfterDrawRect and BeforeDrawRect events to CustomPDFViewMBS class.
- Added PDFAnnotationStampMBS.drawWithBox event for custom stamps.
- Added PDFPageMBS.CalcTransformForBox helper function.
- Changed NSLayoutManagerMBS. You now have InvisibleCharMapping to manage invisible characters. Removed the old properties: ideoGraphicSpaceChar, noBreakSpaceChar, endOfLineChar, spaceChar and tabChar.
- Added PDFBorderMBS.dashPattern.
- Added PDFAnnotationMarkupMBS.quadrilateralPoints.
- Fixed NSSavePanelMBS.setMessage to no longer raise an exception if you call it with an empty string.
- Fixed a bug in RegistryFileTypeMBS.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
Real World 2013 is just six months away. Time to mark the date in calendar and make sure you have a few days free for this event. If you know already that you will join us for the conference, you can register on the
conference website.
Also if you have an interesting topic for a session, please contact Real Software.
Real World 2012 was a huge success with over 100 attendees from 14 countries, featuring 20 exciting sessions. On the heals of that success, we will be returning to sunny Orlando, Florida in 2013 at the Holiday Inn Downtown Disney!
The
2013 Developer Conference will be even bigger and better than 2012, with 3 full days of presentations and events!
Also check the events left for 2012:
Not sure if you read it already, but my case study is already three years old:
realsoftware.com/community/monkeybread.php
Comments?
If you want to be there, contact Dana or Alyssa from Real Software and tell them your story.
One of my clients recently asked about space characters on web apps. He is used to sometimes put more spaces in the text to increase the distance between words. But with a website, those spaces have no effect.
If you put several spaces in a string, the web browser will compact that to one space. Except if you use a non breaking space. To create a non breaking space on Mac you simply type option-space (alt key and spacebar). On Windows it depends on the application. For example in Microsoft Word and Open Office, it is Ctrl-Shift-Space.
If you are familiar with asc() function in Real Studio, we can tell you that normal space has code point 32 and non breaking space has 160. The unicode standard actually has 12 other different space characters with different width and other properties.
In HTML when sent to browser, the non breaking space will be encoded as and the browser sees that as content for displaying. This is something I used years ago to have empty table rows in html have the high of normal text rows by using those spaces there.
New in this prerelease of the 12.5 plugins:
- Updated DynaPDF to version 3.0.21.54.
- Added NSBezierPathMBS and related methods to NSGraphicsMBS and PDFAnnotationInkMBS classes.
- Added MySQLMBS.SetSSL.
- Added SQLValueReadMBS.asVariant.
- Changed RecordSet from SQLDatabaseMBS to be scrollable and to allow multiple RecordSets being used at the same time with MySQL.
- Added SQLAnywhere plugin part to our SQL Plugin. Works with SQL Anywhere 10, 11 and 12 from Sybase. License is same as for SQL plugin.
- Added SQLAnywhereDatabaseMBS, SQLAnywhereLibraryNotLoadedExceptionMBS, SQLAnywhereNotInitializedExceptionMBS and SQLAnywherePreparedStatementMBS classes.
- Added DistortImage for ImageMagick classes.
- Added QTGrabberMBS.available.
- Updated canon plugin to work with 2.11 SDK.
- Fixed a bug in SQL Plugin's RecordSet class where sometimes you got same value for two integer columns. Maybe a compiler optimization broke it.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
For the
conference, we are getting closer to have the schedule done. There is still space left and we rearrange things to fit in another session if someone (you?) wants to speak.
I add myself a session "Advanced Language Features" and a session "SQLite in Depth". I think those will be very informative for people in the audience. Maybe I also repeat the security tips session from last conference if people are interested.
For one participants, I checked trains recently. From Austria you can take night trains to Koblenz directly. Simply get on board in Austria, sleep in the train and in the morning you arrive in Koblenz just before eight o'clock in the morning.
Actually you can get direct trains to Koblenz from Stuttgart, Hamburg, Vienna, Rügen, Munich, Berlin, Kiel, Klagenfurt, Chur (Swiss), Sylt, Oberstdorf, Greifswald, Luxemburg, Nuremberg and Passau. So our friends from Vienna can simply jump in a train if they don't get a flight.
For the evenings, I reserved space at the Weindorf, a lovely place to have dinner or drink a wine or beer.
More details on the conference and
Registration.
Today we had here a nice idea for a session on the
Real Studio Conference in Koblenz next month. I present a session on Wednesday about SQLite. In most projects we use SQLite via the
REALSQLDatabase class or our own
MBS Real Studio SQL Plugin.
So I hope you will enjoy this session and learn a few new things about the internals in SQLite and get a few tips and tricks from our daily use of this great database engine. Of course a few aspects in the session apply to other databases, too.
PS: The
survey for another session is still running.
New in this prerelease of the 12.5 plugins:
- Fixed SQL plugin, so RecordSet also has no problem when SQLite uses TEXT for a BLOB column. In that case value is now threaded as text.
- Fixed a bug in one of the string conversion functions for older pascal string for Quicktime functions. This affects QTGrabber and other classes.
- Improved RecordSet class from SQL plugin to return BLOB fields as binary data (instead of hex strings) and also other number and date/time values directly.
- Added NSParagraphStyleMBS to the conversion code between variant and NSObject, so you can now use it for attributes in NSAttributedStringMBS class.
- Added CustomNSTextFieldMBS class.
- Fixed bug in NSWindowDelegateMBS.shouldClose event.
- Updated DynaPDF to version 3.0.21.52.
- Added more NSWorkSpaceMBS methods.
- Added NSAppleEventHandlerMBS, NSAppleEventManagerMBS and NSAppleEventManagerSuspensionIDMBS classes.
- Added UTC parameter to AccessDateMBS, AttributeModificationDateMBS, BackupDateMBS, CreationDateMBS and ModificationDateMBS.
- The plugin takes strings without known encoding now as MacRoman on Mac and ANSI encoding on Windows/Linux.
- Fixed NSURLConnectionMBS class to work again.
- Added DynaPDFMBS.ExtractPageText, a convenience function to extract text of current PDF page.
- Fixed bug in WMI functions introduced in pr1.
- Switched Windows CURL librasry back to version 7.26.0 as 7.27.0 crashes with SSH.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
The 10th book is available with Real Studio Developer Magazines.
Normally the year books sell for $49, but with pre ordering you get 25% discount, so it's $37.50.
Order here.
Or you get your copy for normal price in Orlando on the Real World conference.
Anyway, the magazine is great as it is more up to date than any book available and an huge library of Real Studio knowledge. I recommend everyone to have a copy of the back issues to browse.
Real Software just emailed us that registration started. Tickets are available now for $750 in early bird registration.
This time I was the third one to register. Who was quicker than me?
So you have now three events to choose from:
Today I got a crashlog in DrawString method. Well, that happens, but the real reason here is that the MySQLCommunityPlugin from Real Software used by the client to write the database project, returns strings without defined text encoding. This is no big problem for most US people as they don't use accents or umlauts often. But European or Asian people soon have trouble.
So the trouble is that the database uses cp1252 West European. Now if you pass a string without defined text encoding (or wrong text encoding) to drawstring, it can crash. Simply trying to interpret those bytes in the string as UTF-8 will make trouble and lead to a crash. Keep that in mind if you see a crash in DrawString!
The fix is: Use DefineEncoding everywhere you get a string from database without encoding set or switch to
MBS SQL Plugin.
see also
Feedback case 22836 and
Feedback case 22727.
If you use xampp on Windows to easily install apache, you also get perl and everything else you need to run your Web App made in Real Studio. But soon you will see error messages like
couldn't create child process 720003
or
couldn't spawn child process
To fix this, please open the cgi created by Real Studio and look for the first line. This line is normally "#!/usr/bin/perl -w" and called the shebang line. It tells apache where to find the application to run this script. But on Windows, there is a no folder usr on the hard disc usually, so you get the errors above.
You can fix it easily and add your path. For example for us it is "#!c:\xampp\perl\bin\perl.exe -w". With the modified version of the cgi, the web app does now start. As the cgi is the same for all Real Studio Web Apps of a given Real Studio version, you can simply reuse it for all your projects.
Sorry people for the newsletters. First I sent them with wrong date for our
conference, than the second email had the wrong greeting and I just discovered that some French people got the German version. Still I hope some people still like to join the
conference: It's 19th to 21st November in Koblenz.
This morning we visited the hotel where our
training and conference will take place to check a few things. We will have WLAN for all participants and also ordered a welcome coffee in the morning.
If you have questions, please ask.
On our
conference, the program is filling with sessions. I think I should make a second one beside my normal plugins show. I got already a few suggestions and started a survey. What would be an interesting topic for a session?
The survey on Realbasic.de forum:
Survey.
- We got already a few registrations. Please sign up soon if you like to participate.
- Geoff Perlman will do a Video Chat with us and talk about Real Studio 2013 and we expect a demonstration of the new iOS Target.
- Robin Lauryssen-Mitchell will make a presentation about Feedback reports.
- Peter Monadjemi offered to present about moving from Visual Studio to Real Studio.
- Heinz Jürgen Groß will share his knowledge about color management and give some tips about porting applications from .NET to Real Studio.
- Roland Stephan shows about using XML for storing data with introspection and also presents a web app made with Real Studio which is used for the Darmstadt Artists Directory.
More details on the
conference website and
training website.
What a surprise! I just got one of those awards in front of 200 people on the conference
Thank you FileMaker Magazin.
See also:
filemaker-magazin.de
This conference is great so far with so many people and even Filemaker CEO came to visit us.
I met a lot of people and got a lot of new ideas for new plugin functions.
New in this prerelease of the 12.5 plugins:
- Split NSView and QTKit plugin parts to make apps smaller if you don't use all classes.
- Fixed a crash in one of the internal text handling classes from pr1.
- Added CustomNSTokenFieldMBS class.
- Changed DynaPDFMBS.CreateNewPDF to once again accept nil folderitem for creating in memory PDF.
- Fixed a bug in DynaPDFParseInterfaceMBS.BeginPattern.
- Removed LargeBinaryStreamMBS.ReadPString, LargeBinaryStreamMBS.WritePString, MidiObjectMBS.SafeMultiThreading, RamStreamMBS.LookPString, RAMStreamMBS.ReadPString, RAMStreamMBS.WritePString, XMPAssertNotifyMBS.SendAssertNotify and XMPMetaMBS.SendAssertNotify.
- Updated DynaPDF to version 3.0.21.51.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
Kevin just noticed me of their monthly meeting:
We'll be holding our monthly meeting on October 15th, 2012 from 6pm to 9pm!
Who: Everyone interested in developing in Real Studio
What: Monthly Meeting
Where: Aldo's Italian Restaurant
When: October 15th, 2012 - 6pm to 9pm
Why: We'll have a preview of the Southwest Fox Conference presentation "Real Studio for VFP Developers"!
I hope to see you there!
-Kevin
Error handling is very important in every application development. Things go wrong. You can't write a file as you don't have permissions, disk is full or the file exists already and is protected, maybe by some app having it open. The connection to a server or database may be lost or some object property may have been set to nil somewhere else in your code.
Still I see a lot of code from users where functions returning error status are called with the call statement. Or I see exceptions not being handled as well as function results not being verified if they are nil. There are some common error cases which developers like to forget:
- new picture raises exception for out of bounds (negative size!) or out of memory situations.
- folderitem.item() returns nil on missing permissions.
- SQLSelect returns nil recordset with SQL Syntax errors
- Picture.Open can raise an exception
- getting a value from a dictionary can raise a TypeMistmatchException, like for converting a window to a string.
There are still a lot of functions which silently fail without an error notice. And we have plenty of them in the plugins. So over the last month we got a couple of more checks in the plugin. Hundreds of functions have been modified to raise an exception if parameters are nil or required text parameters are empty strings. For example TiffPictureMBS.Open now raises NilObjectException with message "folderitem is nil" if you pass nil for the file parameter. So be sure you check the message and fix the problem. There is even a feedback report to have the IDE display the message of an exception (
case 22193: Show Exception message in debugger)
Unfortunately we had a bug in adding the exception checks. DynaPDFMBS.CreateNewPDF is okay with passing nil for the folderitem. You do that in order to create a PDF file in memory. The 12.5pr1 DynaPDF plugin raises an exception as I added an unnecessary nil check there. You'll find an updated plugin in the Prerelease download folder to fix this.
I just booked my trip to Birmingham for 2nd November
Real Studio meeting.
As you see on the
event website, there are still more than 10 seats available.
Would be nice to meet you there.
New in this prerelease of the 12.5 plugins:
- Added DirectShowAMCrossbarMBS class.
- Fixed JavaClassMBS.NewObject method.
- Changed internal folderitem functions to access path.
- Changed internal text functions to use REALGetStringData/REALDisposeStringData from the 2012 SDK.
- Changed internal CFDictionary/NSDictionary functions for converting from dictionary to use NSNull/CFNull if nil values are in the dictionary.
- Added Create* methods to CGPDFDocumentMBS class.
- Added DynaPDFEditTextMBS class for easier text editing in PDF.
- Added NSTokenFieldMBS class.
- Fixed CustomNSSearchFieldMBS.Action event to work again.
- Changed MidiEndPointMBS and MidiPortMBS to use Grand Central Dispatch for faster event handling.
- Changed DynaPDFMBS class to check better the text encoding and raise an exception if a string has no known encoding. This avoids problems with wrong text encoding.
Download:
macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.
We just got confirmation from the hotel, where we are going to run a Real Studio event in November.
19th November: Training day
20th and 21st November: Conference days
Each with an optional dinner in the evenings and maybe we even add a sightseeing day for interested participants.
We are looking for some more speakers, so if you are interested, please contact us. We expect to have the schedule more complete by end of month.
More details:
Events Website
The Real Studio Developers UK User Group is pleased to announce a one-day conference on Friday 2nd November, at the Regus office, Ground Floor, One Victoria Square, Birmingham, B1 1BD.
During the day there will be presentations from guest speakers from the UK and abroad, including Stephane Pinel from Real Software, Christian Schmitz, Trisha Duke, David Cox and Eric Gibbon. There will be plenty of time for networking and Q&A, where you can get help with your questions and issues from others, and perhaps demonstrate your software to others.
If you are a Real Studio developer, or are thinking about developing in Real Studio, there will be something for you. A raffle will be held and two lucky people will get a coupon for a 50% discount from their next purchase on the Real Studio online store!
(more)
NICKENICH, Germany (October 2nd, 2012) -- Monkeybread Software releases version 12.4 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,500 classes featuring over 43,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 12.4 update:
- We added a new PHP plugin. It is based on PHP version 5.4.6 and works on Mac OS X, Linux and Windows. This way you can use various extensions from PHP as well as reuse code you use with PHP on your website.
- This plugin greatly improves Linux support by adding new classes for the avahi library. This library implements the Zeroconf protocol which is also know as Bonjour in the Apple world. So you can find other services on the local network. For Mac OS X and Windows we already have our DNSService classes.
- If you use WebKit on Linux, you can now use our LinuxWebViewMBS and LinuxWebFrameMBS classes. They offer various methods to control the webviewer like clipboard functions, walking history or reloading.
- With LCMS 2.4 we updated our plugins to also include new classes like LCMS2IT8MBS, LCMS2DictionaryEntryMBS and LCMS2DictionaryMBS. Now we have the whole LCMS library covered in our LCMS2 plugin.
- For Mac OS X we added core image classes to detect faces. With CIDetectorMBS you can search an image quickly for faces and query position of eyes and mouth.
- Our classes for DirectShow to record video on Windows have now an event to get notified when a new video frame is received. You can query the current frame image and process it.
- For Mac OS X with Cocoa target we added new classes for printing. You can setup page format, start a print operation and print a view.
- We also updated DynaPDF to version 3.0.21.50 and the Plugin SDK to 2012r1.
See
release notes for a complete list of changes.
If you have questions, please don't hesitate to contact us. Also you can ask questions at Real World in Orlando next year.
Get your copy on the
Real Software Download page.
Something like 20 bug fixes. Check the
release notes page.
Especially the XML project saving was broken partly in 2012r1 which is now fixed.
I have been using the final candidate for a few days and had no problems so far.