MBS FileMaker Plugin 6.0 for OS X/Windows

Nickenich, Germany - (January 28th, 2016) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 6.0 for Mac OS X or Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, Mac, and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 6.0 has been updated and now includes over 3500 different functions, and the versatile plugin has gained more new functions:

With the new version we got a couple of new DynaPDF functions. One is the new optimize command to rebuild and repair PDF files. You can do that before archiving PDFs or before creating a PDF/A file. If you need to embed XML for your invoice PDFs, please check the ZUGFeRD examples. If you need to extract text from a PDF, you can now decide between DynaPDF.ExtractText for the whole document or DynaPDF.ExtractPageText for individual pages.

Our JSON functions got a major update. We know can pass JSON around as both text and IDs. Using IDs can reduce the work the plugin does with parsing and speed up the process a lot. Please check the new functions JSON.Parse, JSON.CreateArrayRef and JSON.CreateObjectRef to create references and work with them.

Do you have a LDAP server or one for Active Directory? We have new functions to query LDAP server. You can perform a search and get back results. You can add, modify, delete and rename entries.

If you need to loopup an IPv4 or IPv6 for a domain name, you can use our new DNSLookup functions. The reverse way is possible by looking up domain name for an IP.

For handling zip archives we got two new convenience functions: UnZipFile.ExtractFiles expands all files from an open archive while ZipFile.CompressFiles adds files to an archive. If you need more control, we still have individual functions for the tasks.

If you are unfamiliar with SQL, but you like to use powerful commands in FileMaker, please check our new Insert/Update/Delete commands. FM.UpdateRecord lets you update a record without switching layout. With FM.InsertOrUpdateRecord the plugin either updates an existing record or inserts a new one. And with FM.DeleteRecord you can delete a record without a relationship or changing layout. And those functions are available for multiple records, too.

For the FileMaker development, we got a new contextual menu entry for most list controls in FileMaker. Copy the list of fields or tables as text. Our Syntax Coloring feature is now off by default and turns on when you open script editor. This way regular users don't run into it.

We added html functions for clipboard, better hash, more FSEvents and path, new preferences and window, better list matching and PDFKit functions.

Finally we updated DynaPDF to version 3.0.48.143, libXL to version 3.6.5.2, openssl to version 1.0.2e, SQLAPI++ to version 4.1.7 and SQLite to version 3.10.2

See release notes for a complete list of changes.

Special offer for January: DynaPDF Lite

Interested in DynaPDF Lite?

For January we have a special offer:

DynaPDF Lite for $469 instead of $669 USD. (save $200)

You can use the DynaPDF License from us for the Xojo, Real Studio and FileMaker plugin.
The license is valid for C/C++, Delphi, PHP and Visual Basic.

Interested? Please contact us.

(VAT may apply. Euro price is 429 €)

FileMaker DevCon 2016 Las Vegas

Mark your calendars and register today for the FileMaker Developer Conference 2016 in Las Vegas, Nevada from July 18-21. Join over 1,500 developers at The Cosmopolitan for the most intensive — and fun — FileMaker educational experience of the year.

Don't forget to visit the MBS booth :-)

PS: Did you know that if you sign up as a company with a group of 4 developers, the 4th ticket is free?

MBS FileMaker Plugin, version 6.0pr8

New in this prerelease of the 6.0 plugins:
  • Fixed RichText.ReplaceText to replace more than 100 items.
  • Added Window.Maximize and Window.Minimize.
  • Removed debug messages for launch of plugin.
  • Added DynaPDF.GetTextDrawMode and DynaPDF.SetTextDrawMode.
  • Changed goto line to animate and jump to the middle.
  • Changed Syntax Coloring. Unless you open a script editor, relation graph window or debugger, we keep the colors off. This should avoid your clients see colors in text or search fields.
  • Fixed a problem in email parsing to not mark some inline text segments as attachments.
  • Changed Search Field in scripts. When you close script editor, the search is reset.
  • Fixed bug in Syntax Coloring to make sure some letters like a single a is no longer red.
  • Changed QTMovie.OpenContainer to work better with MP3 files.
  • Updated SQLite to version 3.10.2.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

DynaPDF Manual

DynaPDF has it's own documentation, which you can find included with our plugin: dynapdf_help.pdf.

In order to read it in a browser and for search engines to soon index it, I put the manual online as a webpage version:

monkeybreadsoftware.de/dynapdf/

Maybe it helps people. From time to time I can update it with current PDF file.

MBS FileMaker Plugin, version 6.0pr7

New in this prerelease of the 6.0 plugins:
  • Fixed FM.InsertRecordQuery to copy containers, too.
  • Added DynaPDF.Optimize function.
  • Added FM.InsertRecordQueryIgnoreDuplicates function.
  • Fixed problem in QuickList.MatchesSubString not splitting right.
  • Improved XML.Import for some special XMLs.
  • When copying scripts, the plugin now adds links to MBS plugin reference automatically.
  • Added Window.GetTitleVisible, Window.GetTitlebarAppearsTransparent, Window.SetTitleVisible and Window.SetTitlebarAppearsTransparent.
  • Added UnZipFile.ExtractFiles and ZipFile.CompressFiles functions.
  • Added Flags parameter for Hash.MD5.HMAC, Hash.PBKDF2.HMAC, Hash.SHA1.HMAC, Hash.SHA256.HMAC and Hash.SHA512.HMAC so you can define if input is Hex encoded or not.
  • Updated to newer plugin SDK.
  • Updated SQLite to version 3.10.1.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Optimize PDF Script

If you like to optimize a PDF with DynaPDF in FileMaker, you can use a script like the one below.

It loops over a table with container fields and imports them all in one PDF In memory.

Than it optimizes the PDF and writes it back to a container field.

For your convenience I included the commands to use files, too:

 

 

#Initialize DynaPDF if needed

If [$$DynaPDFInited  ≠ 1]

Perform Script [“InitDynaPDF”]

End If

#Clear current PDF document

Set Variable [$pdf; Value:MBS("DynaPDF.New")]

#For writing to file instead of container, pass path here:

//  Set Variable [$r; Value:MBS("DynaPDF.OpenOutputFile"; $pdf; "/Users/cs/Desktop/test.pdf")]

#Load PDF from container

Go to Record/Request/Page [First]

Set Variable [$destPage; Value:1]

Loop

#Read from file

//  Set Variable [$r; Value:MBS("DynaPDF.OpenPDFFromFile"; $pdf; "/Users/cs/Desktop/input.pdf")]

#or container

Set Variable [$r; Value:MBS("DynaPDF.OpenPDFFromContainer"; $pdf; Merge PDFs::InputPDF)]

#Import all pages

Set Variable [$r; Value:MBS("DynaPDF.ImportPDFFile"; $pdf; $destpage)]

If [GetAsNumber($r) >0]

Set Variable [$destPage; Value:$r+1]

End If

Go to Record/Request/Page [Next; Exit after last]

End Loop

#Repair & Optimize PDF

Set Variable [$r; Value:MBS("DynaPDF.Optimize"; $pdf)]

#Save to container

Set Field [Merge PDFs::FinalPDF; MBS("DynaPDF.Save"; $pdf; "Merged.pdf")]

Set Variable [$r; Value:MBS("DynaPDF.Release"; $pdf)]



DynaPDF 4, Optimization and PDF/A

DynaPDF 3 is already 5 years old and a lot of changed since then. Version 3 had the render feature as the big new function, but that involved to more. For example we got a print feature on Windows to directly send PDFs to a printer. Or the render features to write a multi page tiff file for a PDF.

For February DynaForms scheduled the release of Version 4 of the DynaPDF library. The big new features for Version 4 are a much improved PDF/A converter which supports version 1b, 2b and 3b of the PDF/A standard.

With DynaPDF Lite you can create PDF/A files and run the conformance check. This check is required to know which ICC color space to include as an output intent and whether the PDF conforms to the PDF/A standard.

Now if you have DynaPDF Pro plus the PDF/A extension, you can use the conformance check function to actually change the PDF and make it being conform. The current version of DynaPDF does those changes for PDF/A 1b. The converter for PDF/A 2b and 3b is currently in beta stage and will be ready soon.

Maybe more interesting on the PDF/A converter is the function to optimize and repair PDFs before archiving them. We can put in broken PDFs and they are rebuild completely. This fixes wrong items and removes duplicate parts, so the resulting PDFs are often smaller. Another optimization which runs optionally is to convert colors from various color spaces like Separation, DeviceN, and N-Channel color spaces to device color space. If you are interested in smaller images, DynaPDF can optionally scale down images in the PDF. e.g. reduce DPI of images and compress them as JPEG so they need less space. Finally DynaPDF can optionally delete invisible paths to further reduce file size.

More coming soon in our plugins.

PS: The Optimize feature can also be used to fix corrupted PDFs created in FileMaker 14. See community thread.

Using CURL with Rosette web service

One developer using MBS Plugin came with a request to connect to Rosette's API to query various functions on language detection and parsing.

From the website they got this cURL command line to translate:

curl "https://api.rosette.com/rest/v1/morphology/complete" \
     -H 'user_key: [your_api-key]' \
     -H 'Content-Type:application/json' \
     -H 'Accept:application/json' \
     -d'{"content": "The quick brown fox jumped over the lazy dog. Yes he did."}'

Now this translates very well into a FileMaker Script. As you see we start a new CURL session, set a couple of options, perform the transfer and check the result.


For building the JSON I highly recommend to check the latest 6.0 prerelease for the new JSON commands we have there. As this webservice is a REST webservice, the input and output is JSON encoded and our functions help to do this very efficiently. 

# Start new CURL transfer

Set Variable [$curl; Value:MBS("CURL.New")]

# Set options like Verbose Debug Messages

Set Variable [$result; Value:MBS("CURL.SetOptionVerbose"; $curl; 1)]

# the url of webservice

Set Variable [$result; Value:MBS("CURL.SetOptionURL"; $curl; "https://api.rosette.com/rest/v1/morphology/parts-of-speech")]

# the header info for tagging, API Key comes from a global field.

Set Variable [$result; Value:MBS("CURL.SetOptionHTTPHeader"; $curl; "user_key: " & RosetteAPISettings::RosetteAPIKey; "Content-Type: application/json"; "Accept: application/json" )]

# We want a POST transfer:

Set Variable [$result; Value:MBS("CURL.SetOptionPost"; $curl; 1 )]

# Build JSON using the plugin function to properly encode a string:

Set Variable [$request; Value:"{\"content\": " & MBS("JSON.CreateString"; TextData::TextAsInput) & "}"]

Set Variable [$result; Value:MBS("CURL.SetOptionPostFields"; $curl; $request)]

#show our JSON in a field for debugging:

Set Field [TextData::CURLInput; $request]

#Run transfer

Set Variable [$result; Value:MBS("CURL.Perform"; $curl)]

# Check result and debug messages

Set Field [TextData::CurlDebug; MBS("CURL.GetDebugAsText"; $curl)]

Set Field [TextData::CurlOutput; MBS("CURL.GetResultAsText"; $curl)]

# Cleanup

Set Variable [$r; Value:MBS("CURL.Cleanup"; $curl)]



Tip of the day: Make a 32-bit FileMaker 14 application

Need to run FileMaker always in 32-bit independent of the flag in Finder info window and independent of how you launch FileMaker?

One way is to simply remove 64-bit code from FileMaker. If you run in terminal the file command, you see that FileMaker 14 is a 32-bit and 64-bit universal binary:

file ./FileMaker\ Pro\ Advanced.app/Contents/MacOS/FileMaker\ Pro
./FileMaker Pro Advanced.app/Contents/MacOS/FileMaker Pro: Mach-O universal binary with 2 architectures
./FileMaker Pro Advanced.app/Contents/MacOS/FileMaker Pro (for architecture x86_64): Mach-O 64-bit executable x86_64
./FileMaker Pro Advanced.app/Contents/MacOS/FileMaker Pro (for architecture i386): Mach-O executable i386

Now to make it a 32-bit only app, run the following command (one line):

lipo -thin i386 ./FileMaker\ Pro\ Advanced.app/Contents/MacOS/FileMaker\ Pro -output ./FileMaker\ Pro\ Advanced.app/Contents/MacOS/FileMaker\ Pro

This removed 64-bit code and you now have a 32-bit only app:

file ./FileMaker\ Pro\ Advanced.app/Contents/MacOS/FileMaker\ Pro
./FileMaker Pro Advanced.app/Contents/MacOS/FileMaker Pro: Mach-O executable i386

For relative paths to work as above, you need to move in the right folder using cd command in Terminal. Please also make a backup and be aware that any updater will probably restore the app.

PS: Do at your own risk. If something goes wrong you need to reinstall FileMaker 14.

Hiding window title bar

In the screenshot below, do you see all 4 FileMaker windows?

We have here:
  1. Normal window with status toolbar
  2. Window without toolbar, but with title bar
  3. Window with toolbar, but without title bar
  4. Window without titlebar and without toolbar
We'll see how useful this will be in the future.

FileMaker Pro Gurus

Did you see the interview from Don Clark with me at last DevCon in Las Vegas?
Here it is:


If you like to watch, just go to filemakerprogurus.com on the interview page.

MBS FileMaker Plugin, version 6.0pr6

New in this prerelease of the 6.0 plugins:
  • Updated DynaPDF to version 3.0.47.141.
  • Updated libXL library to version 3.6.5.2.
  • Added contextual menus to most tables in FileMaker on Mac to copy content of table.
  • Added SyntaxColoring.ContextualMenuEnabled.SetEnabled and SyntaxColoring.ContextualMenuEnabled.GetEnabled functions.
  • Added Clipboard.GetHTMLText and Clipboard.SetHTMLText.
  • Updated SQLite to version 3.10.0.
  • For addressbook properties and labels you can now both pass with or without kAB prefix. So kABUIDProperty and UIDProperty work now.
  • Rewrote most of JSON so you can now optionally use JSON reference numbers for JSON objects for faster processing.
  • Added JSON.Release, JSON.CreateArrayRef, JSON.Parse and JSON.CreateObjectRef functions.
  • Changed JSON.Add* functions to allow multiple parameters to be passed to add a lot of values.
  • Added JSON.AddBooleanToObject and JSON.CreateBoolean functions.
  • Fixed Plugin.Path function for Windows.
  • Fixed bug in FM.SQL.Field function.
  • Fixed a memory leak in the internal function to query idle time on Mac.
  • Fixed a bug in FM.StopScriptIdle and in FM.RunScriptIdle.
  • Added Preferences.HasValue and Preferences.DeleteValue functions.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

FileMaker iOS App SDK

FileMaker Inc. today put a new SDK online for creating iOS apps based on FileMaker Go.

So if you have Xcode and an iOS app developer account with Apple, you should be able to build an iOS app which includes your fmp12 file as user interface.
You can have your own icon, URL scheme, startup screen and much more.

Now I wonder if a plugin SDK for iOS is coming, too...

see help.filemaker.com/app/answers/detail/a_id/15531
and help.filemaker.com/app/answers/detail/a_id/15582/

Copy Table Content Menu Command for FileMaker on Mac

Do you need to copy the contents of a table in FileMaker easily?

in your field definitions:


or in script debugger:


With next plugin version we will include a new feature: For all tables where FileMaker doesn't have it's own contextual menu, we can add one with a command to copy the content to the clipboard. This is very helpful if you like to copy a call stack or the list of fields from your solution. And probably 10 other tables you can now copy, too.
The copy is just a right mouse click away.

AES in FileMaker and PHP

You may have seen the AES blog post recently for AES encryption in both PHP and Xojo (Real Studio). The same AES encryption works in FileMaker, too.

Here is the example script:

# prepare

Set Variable [$keyHash; Value:MBS( "Hash.Digest"; "SHA256"; "Text"; AES like PHP::keyPlainText; "UTF-8"; "hex")]

Set Field [AES like PHP::keyHash; $keyHash]

Set Variable [$IVHash; Value:MBS( "Hash.Digest"; "SHA256"; "Text";AES like PHP::ivPlainText; "UTF-8"; "hex")]

Set Variable [$IVHash; Value:Left($IVHash; 32)]

Set Field [AES like PHP::IV; $IVHash]

# encrypt

Set Field [AES like PHP::EncryptedData; MBS( "Encryption.Cipher"; "encrypt"; AES like PHP::algorithm; "hex"; AES like PHP::keyHash; ""; "text"; AES like PHP::dataPlaintext; "UTF-8"; "base64"; ""; "hex"; AES like PHP::IV )]

# decrypt

Set Field [AES like PHP::DecryptedData; MBS( "Encryption.Cipher"; "decrypt"; AES like PHP::algorithm; "hex"; AES like PHP::keyHash; ""; "base64"; AES like PHP::EncryptedData; ""; "text"; "UTF-8"; "hex"; AES like PHP::IV; "" )] 


Special offer for January: DynaPDF Lite

Interested in DynaPDF Lite?

For January we have a special offer:

DynaPDF Lite for $469 instead of $669 USD. (save $200)

You can use the DynaPDF License from us for the Xojo, Real Studio and FileMaker plugin.
The license is valid for C/C++, Delphi, PHP and Visual Basic.

Interested? Please contact us.

(VAT may apply. Euro price is 429 €)

FileMaker Conference .fmp[x]Berlin 2016

There is a European Filemaker conference in english planed for Berlin, Germany: 
 
.fmp[x]Berlin 2016
THE pan-European Unconference for FileMaker Developers
2. - 4. Juni 2016
GLS Campus Berlin, Kastanienallee 82, 10435 Berlin

 
If you like to join an english speaking conference in Europe which is not organized by FileMaker, you are right here.

Introducing Runtime Shrinker 2.0

With our 6.0pr5 plugin we included the FileMaker Runtime Shrinker for Mac OS X. Download it on our prerelease plugin download page. This is a little tool which can shrink your FileMaker runtimes significantly. The application looks like this:



As you see we have 4 options:
  • First you can remove PPC code. As FileMaker does not even run on PowerPC based Macs, you can safely remove the old PPC code. (for FileMaker 11-13)
  • Second, we remove duplicate libraries. Yes, the runtime contains a few shared libraries several times and it works fine if you remove the duplicates.
  • Third, there are some icon files in the runtime which are not assigned to file types, so the operation system will never use them. You can remove them easily with this option.
  • Forth, you can remove 32-bit and/or 64-bit code for FileMaker 14. As the runtime requires OS X 10.7 you only need to ship either 32-bit or 64-bit depending on the plugins used. If there are plugins in the extension folder next to the runtime, those will also be shrunken.
  • Finally you can reduce the number of languages you support.
When we click the shrink button with all options and leaving only one language, we get the runtime smaller and the result dialog:


As you see we save 54 MB (32%) for a FileMaker 14 runtime here.

We already had questions for a Windows version. FileMaker runtimes on Windows include a lot of DLLs and most are required as far as we see. You still can yourself delete some localization files if you like. Also you don't need to include the Microsoft Runtime folders on Windows 7 as far as we see. Those libraries do ship with Windows 7, but please test that yourself.

Please give it a try and if you have questions, please do not hesitate to ask us.
if you want to share this news with friends, please point them to our website/blog so they can download the latest version. This app will probably need updates regularly for newer versions of FileMaker.

MBS FileMaker Plugin, version 6.0pr5

New in this prerelease of the 6.0 plugins:
  • Added more options for QuickList.MatchesPostfix and QuickList.MatchesPrefix.
  • Added QuickList.MatchesSubString function.
  • Updated Runtime Shrinker to version 2.0 for FileMaker 11 to 14.
  • Fixed bug in ServerSocket.SendQuery when reporting connection errors.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder. PS: Version number on the pr5 is still 4.

Happy New Year 2016

Already 2015 is finished and we a looking forward to a great new year!

This is year 16 for our Xojo plugins and year 10 for our FileMaker plugin. Yes ten, even as we will deliver version 6. We synchronized version numbers to the year number long ago.

What was new in 2015?
  • LDAP Functions
  • CURL with multiple asynchronous transfers
  • Markdown functions in plugin and via Javascript.
  • Running JavaScript without webviewer.
  • Excellent email sending functions for multiple attachments, right text encoding, properly encrypted connection and inline graphics.
  • Elliptic curve cryptography
  • and much more
In total 700 new functions for FileMaker and 300 new classes for Xojo with over 5500 new features in total. Year end we have 3500 functions in our FileMaker plugin and over 57000 documented things in our Xojo plugins. Over the years little babies get grown up.

Wishes for 2016?
We have quite a long list of wishes from people, but maybe you have a few new ideas?

Already on the list are new functions for Xojo to talk directly to HID USB devices on Mac, Windows and Linux. For OS X we may get some AVFoundation movie classes for easier editing of video files.

A big thing to do could be rewriting scanner support for OS X and Windows in our FileMaker plugin. TWAIN is getting dated and drivers are harder to find for 64-bit.

Conferences 2016

We are looking forward to meet you. For Xojo there is of course the XDC 2016 in Houston, Texas. We have meetings planned for Cleveland and Chicago and probably a few more to be named. We are still considering doing our own European conference, but need to fix a date and location.

For FileMaker, we plan to meet you at Las Vegas conference as well as the PauseOnError in Cleveland. In October we probably have once again a few conferences in Europe for FileMaker in Salzburg and other cities.

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