Goya Blog
BaseElements 3.0.1 Released
Submitted by Nicholas Orr on 27 August 2010 - 2:28pmI've just posted a .1 release for BaseElements 3. There are a bunch of the usual fixes in this version to various UI and data issues. Full details are on the Version History page.
There are two notable changes though. Firstly, I'm url encoding the filenames so that it should work fine with accented characters or even other language filenames.
Also I made a change to the way that our "Filter XML" option was working. You may recall this from a previous post about the FMPA 11 DDR producing invalid XML.
In the fc releases, I had the Filter XML option default to off. My logic was that this issue wasn't going to affect everyone, so turning it on would involve a slowdown for all users, when this wouldn't affect that many people. People who had the issue could be pointed to the setting and that would solve the problem.
In 3.0.0 final I changed that to defaulting to on. I had got enough reports of this being an issue that in order to save on user frustration and also support requests, defaulting to on would make things easier for all and not cause too many slowdowns.
And finally in 3.0.1 I've removed the option altogether, in lieu of it being smart. If you're importing a DDR generated with v11, it does filtering, otherwise it doesn't. A much more sensible choice and one less preference.
I still haven't figured out how to remove the "Smart Find" preference and leave only the language setup choice, but that can wait.
Detecting maximised windows in FileMaker
Submitted by Nicholas Orr on 25 August 2010 - 10:22pmI had a feature request for BaseElements that to me sound perfectly reasonable : When you're creating a new window by holding down the option key, can you put it a few pixels below and to the left of the current window in the exact same way the "New Window" command does. Sounds perfectly fine to me, it will be a pain to put into all those scripts, but makes sense and probably should be done.
I had one thought though that makes this a little tricky : What if you're on windows and have the window maximised. Obviously it shouldn't do anything at all. You don't want to lose the maximised state just because you've opened a new window. So surely there's a "Get ( WindowState )" type function that will tell me if the current window is maximised or not. Well it turns out there isn't.
So how do you tell if a window is maximised? First, this is a windows only function, so check for that. Then check if the window size is as big as can fit on the screen, so compare WindowHeight and WindowWidth to WindowDesktopHeight and WindowDesktopWidth. They should be different only by four pixels, which is the width of a window border. Plus the window should be positioned at the top left of the screen.
But you can easily manually create a window that size and that position, that isn't maximised. The second trick is to compare the WindowWidth to the WindowContentWidth. This is the size of the FileMaker "desktop" so to speak. And if you have a window that is the same size as the desktop, and positioned on the top left, it slightly expands the WindowContentWidth to show properly. In other words you get the scroll bars on the main FileMaker background. When it's maximised there is a fixed distance between the two, depending on which LayoutViewState you have ( Form, List or Table view ).
So with all that smarts we can create a CustomFunction called "IsWindowMaximised" that takes no parameters. The function ( for FileMaker 11 ) is :
---
Let (
diff = Case (
Get ( LayoutViewState ) = 0 ; 16 ;
Get ( LayoutViewState ) = 1 ; 19 ;
Get ( LayoutViewState ) = 2 ; 31 ) ;
( Get ( SystemPlatform ) = -2 ) and
( Get ( WindowHeight ) = ( Get ( WindowDesktopHeight ) - 4 ) ) and
( Get ( WindowWidth ) = ( Get ( WindowDesktopWidth ) - 4 ) ) and
( Get ( WindowLeft ) = 0 ) and
( Get ( WindowTop ) = 0 ) and
( ( Get ( WindowWidth ) - diff ) = Get ( WindowContentWidth ) ) )
---
Simple eh?
Be aware though that this version only applies to FileMaker 11, although it should also work fine in 10. In earlier versions the left side status bar will alter what I've used as the "diff" variable. With the status bar hidden, the values are similar to the above ( except for Table view which is 19 ), but with the status bar shown, the diff value needs to be 85.
I've tested this on XP and Win 7, but not vista although I assume it would be the same as 7.
I hope this is of use to someone else somewhere.
As for when I will build this into BaseElements, well I think it's a really good suggestion so I will do it. It's just that there are 1000+ GTRR steps that do the "New Window" option in BaseElements, two for every single link you can click on. One is a normal GTRR and another for GTRR using the found set. So there's a lot to change :) My kingdom for a completely dynamic GTRR step where I can program the "New Window", "use Found Set" and "From Table" options, not just the destination layout.
Thanks to Chaim from ProductiveIT for the idea and help with testing.
Back from DevCon
Submitted by Nicholas Orr on 25 August 2010 - 4:03pmI've arrived back from San Diego after our 15 day flight direct into Melbourne. Sorry did I say 15 day, I meant 15 hour flight. Although it does seem like that at times.
We had a great conference, it was very successful for us in terms of getting BaseElements out in front of lots of people, and we're very pleased with the results. I hope everyone managed to get our devcon discount pricing, if you didn't though, we were handing out coupon codes to extend the discount for 30 days after devcon and I have a few left if anyone missed out. Send me an email and I'll forward them on.
I think San Diego is a great town for DevCon, there was lots to see and do outside the main conference and lots of reasons to bring family for a holiday ( which I didn't do this time though ), and although the showcase room was a little cramped, we managed to snag a good spot and had a lot of traffic. Looking forward to next year.
And I've got a BaseElements .0.1 update almost ready to go as well, so keep an eye out for that.
Congratulations to all the winners this year of the 2010 FBA awards, almost all of them are people we met at DevCon or have chatted to online before and all are deserved winners. Well done to all for their hard work.
BaseElements 3 Released
Submitted by Nicholas Orr on 18 August 2010 - 1:22amLate last night I uploaded BaseElements 3.0.0. With no b, fc, x, y or z in the version number this makes it a final release. Since the last fc release I've incremented the plugin to fix a variable detection issue, updated a bunch of bits and pieces related to variables and plugins, and made some other minor tweaks.
The download links are on the regular download page.
Thanks to everyone who has been helping me test, in particular Doug, Chaim, Bart, Scott, Bruce, Ward but also lots of others.
BaseElements 3 Final Candidate 2
Submitted by Nicholas Orr on 15 August 2010 - 6:53pmI've got another small update to the fc1 version of BaseElements 3. This one has some minor fixes :
A layout fix for the size of the main analysis layout.
A fix for the privilege set that does access to files when importing multiple reports.
A change to the variable detection code to pick up brackets in variable names.
Download links are :
BaseElements_Mac.dmg - fp7 files.
BaseElements_Mac_Runtime.dmg - Runtime.
BaseElements_Win.zip - fp7 files.
BaseElements_Win_Runtime.zip - Runtime.
Come and see us at the booth tomorrow night if you're at DevCon. We'll be there during the Welcome Reception.
BaseElements 3 Final Candidate
Submitted by Nicholas Orr on 11 August 2010 - 10:09pmAnother day, another BaseElements release. This time is special though, it will certainly be the last for a few days, as I fly out to San Diego tomorrow for DevCon. I'm really looking forward to it this year it should be a good show.
And finally I have no outstanding issues in BaseElements land, and so I'm declaring this version to be a final candidate. Or release candidate. Or whatever it is that comes after beta. We've solved the plugin issues, and also added a workaround for the character encoding issue thanks to some nifty programming and text editing by our intrepid plugin developer.
On to the links :
BaseElements_Mac.dmg - fp7 files.
BaseElements_Mac_Runtime.dmg - Runtime.
BaseElements_Win.zip - fp7 files.
BaseElements_Win_Runtime.zip - Runtime.
Other than an updated plugin, the other changes since b10 are :
- Fixed an issue that would cause the files not to display or show record access issues in some situations.
- Fixed a false out of memory error when importing files with large ( 10 MB ) nodes caused by large embedded images.
- Added in the new BE logo.
- Resolved some startup window position issues.
- Some minor layout tweaks.
I've also posted a fairly complete BaseElements 3 New Features page.
The character encoding problem.
I'm really glad that we were able to build in a workaround for a new behaviour in the FMPA 11 DDR that causes XML validation issues in some situtations. I've filed a bug report about it to FileMaker, but that may not get fixed for a while and in the mean time telling people to wait until "someone else fixes it" or "change your solution", isn't a satisfactory answer for me.
Side note : if anyone else notices this issue, and it causes problems, it would be great help if you could either add a comment to that report, or file your own with a sample file. The more reports the more likely this will be fixed sooner.
The issue is that when you have certain legitimate characters inside a calculation quote, the DDR output doesn't properly encode these characters and so produces invalid XML. The problem is that it can't be imported back into anything as it fails the first check of validity. It also affects copy paste actions in FMP.
The character encoding solution.
We've added a checkbox to BaseElements setup that is called "Filter XML". I'll write up a more detailed FAQ page about this, but the quick version is that it preprocesses your XML files and removes any invalid XML. This doesn't affect the output as these can only be inside quoted text, so you still have all the available data, but now your xml is also valid and will import just fine. By building this into the plugin we were able to make the process quite quick.
In fact a big solution that takes about 33 minutes to import only had 40 seconds added to the import time by the preprocessing of it's 500MB of XML data. I'm really excited that we were able to make this happen at all and to make it happen with an almost insignificant cost in import time is a double bonus.
Now I'm just looking forward to showing off the new version at DevCon and catching up with everyone.
And if you're not coming to DevCon, don't forget the 30% discount coupon : "elementary". Only valid until the 18th of August.
BaseElements 3 beta 10 and new UI
Submitted by Nicholas Orr on 10 August 2010 - 11:54pmI've uploaded BaseElements 3 beta 10. Download links :
BaseElements_Mac.dmg - fp7 files.
BaseElements_Mac_Runtime.dmg - Runtime.
BaseElements_Win.zip - fp7 files.
BaseElements_Win_Runtime.zip - Runtime.
I was going to do a little more playing with this version before uploading it, but there are some fixes in it for a crashing bug and also some import issues, so I wanted to get this one out so that people testing can try again. I'm tempting fate ( like I did with b9 ) by posting this version late at night, my time, but that gives me a full northern hemisphere day of testing while I sleep :)
The big thing is that this version has a completely new UI. It's fully integrated but may be tweaked slightly before final.
Left Side Nav vs Top Nav
I have wanted to switch to a top menu for a while. I like the left nav, and if you do it inside a portal you can have really dynamic menu items with expanding options and lots of details and a single UI element to display, so no changes to layouts once it's setup. But realistically, unless we get the ability to have left side navigation bars in FMP 12 ( I think unlikely :) ) it just doesn't work perfectly. I've come to the conclusion that in a solution where list and table views are so important, like in BE, then a consistent, always available navigation option is better than a cool looking one.
So the new UI is firstly about moving the nav to the top, and secondly about cleaning it up a little. If you have a look at beta 10, there are a couple of extra layouts at the end of the file. Basically they're a progression through our development process and ideas as we worked through some plans. I thought they might be interesting to others, so I've left them in b10.
The icons are gone. I really liked them, I bought a set ages ago, so I was keen to use them. But it was pointed out to me, and quite rightly, that I'm trying to reduce clutter and unnecessary UI elements. And icons that look good, but don't add any significant functionality don't fit that aesthetic. ( It's tough when your blog posts get raised in design discussions against you. )
If you have any thoughts or comments on the new design, please let me know : Email, contact form, or twitter.
BaseElements 2.6.8 Update
Submitted by Nicholas Orr on 10 August 2010 - 10:05pmI've just finished uploading a minor update to BaseElements 2 to bring it to 2.6.8. Only a couple of small changes in this version :
* Update the registration code to accept BE v3 licences.
* Updated the file plugin to include Troi File 5.0.
* Updated the dialog plugin to include Troi Dialog 5.5.
The download links are :
Single User Version fp7 Files
BaseElements_Mac.dmg File Size 2.5 MB
BaseElements_Win.zip File Size 2.3 MB
Sharing Enabled Version fp7 Files
BaseElements_Mac_MU.dmg File Size 2.5 MB
BaseElements_Win_MU.zip File Size 2.3 MB
Single User Runtime Application
BaseElements_Mac_Runtime.dmg File Size 38.5 MB
BaseElements_Win_Runtime.zip File Size 41.6 MB
The plugin updates mean BaseElements 2 will run on Windows 7 as well as the latest FMP versions on all platforms. The critical change is the ability to accept a BE 3 licence. Any new purchases from today will automatically get a v3 licence, which will also work with 2.6.8. Also anyone who purchased v2 after 1st of March 2010 will automatically get a v3 licence sent out to them.
BaseElements 3 Beta 9
Submitted by Nicholas Orr on 9 August 2010 - 11:49pmDownload links :
BaseElements_Mac.dmg - fp7 files.
BaseElements_Mac_Runtime.dmg - Runtime.
BaseElements_Win.zip - fp7 files.
BaseElements_Win_Runtime.zip - Runtime.
Fixes :
- Fixed an issue where there were false CF missing warnings.
- Changed the CF missing warning from ValueList missing to say CF missing.
- Added back preview mode to the view as Custom Menu so you can actually get out of preview mode.
Mostly this fixes issues with CF references introduced in 8, but also some display oddities and a few other bits and pieces. Also you may notice ( or not ) the new logo on the about screens. They haven't propagated all the way through yet to the other layouts, but hopefully I'll have more on that tomorrow. :)
There are two outstanding issues to resolve before I can turn this over from beta to final : First, there is a plugin issue that causes an out of memory error on large solutions. We're working on that so will have an answer for it soon.
The second issue is more of a workaround. I've found that the DDR in 11 includes characters that the v10 DDR would strip out of your files. Things like high ascii or other characters that should be encoded in XML and aren't being properly encoded. I've posted a bug report http://forums.filemaker.com/posts/ae50945cb2 as I think it's a general error with not only the DDR but also the copy paste mechanism in FileMaker. I think I'll have a workaround in BaseElements regardless of whether the bug is fixed, but I've got to make sure it works first.
baseElements 3 Beta 8
Submitted by Nicholas Orr on 6 August 2010 - 4:21pmI never thought I'd do 5 beta versions of this, let alone 8. But here it is :
BaseElements_Mac.dmg - fp7 files.
BaseElements_Mac_Runtime.dmg - Runtime.
BaseElements_Win.zip - fp7 files.
BaseElements_Win_Runtime.zip - Runtime.
The list of changes are :
- Added the TO mismatch to the error count.
- Fixed an issue where Summary fields weren’t being referenced.
- Made some more optimisations in the references import.
- Fixed an issue where valuelist references to external files wasn’t working.
- Sorted out some reference issues with ValueLists.
- Added a custom menu item for printing of reports and list layouts.
- Fixed an issue in the Go report for SMTP steps.
- Removed and, or, not and xor from the plugin list :)
Critical changes are to the way ValueLists were handling references, the layout unreferenced calc and also the FileMaker Go Compatiblity Report, especially it's print option.
This version has now had quite a bit of testing, so I'm looking to post the upgrade details on Monday.