The decorator pattern is one of my favorite patterns. It is simple, extensible and powerful. It feels like it follows the essence of object oriented programming beautifully. Sadly though, it is also easy to be misused or misunderstood. So, in this post I will show you the essence of the decorator pattern, illustrated with a few examples.
Continue reading “OOP Fundamentals: The Decorator Pattern”Category: Python
OOP Fundamentals: The Dependency Inversion Principle
The dependency inversion principle is one of the cornerstones of object-oriented programming. Without it, there is no object-oriented design. It’s that important.
Continue reading “OOP Fundamentals: The Dependency Inversion Principle”bBox for FileMaker v0.96 with JSON processing, Python 3 and more
We are pleased to release bBox version 0.96, with JSON processing via jq, Python 3 compile/run, and improvements supporting Zsh, cURL and Ruby.
bBox is a free utility plug-in to extend FileMaker solutions to easily use code libraries and macOS-based functions from Python, JavaScript, PHP, Ruby, AppleScript, C/C++, Bash/sh, XPath, and SQLite. Also included is a demo file that has over 210 examples of how you can put bBox functions to work for you.
Continue reading “bBox for FileMaker v0.96 with JSON processing, Python 3 and more”
Common Code Smells in OOP
Over years of reviewing Ruby code, the same things tend to come up over and over. In this post, I’d like to address some of the most common code smells I find when reviewing OOP code (and Ruby code in particular).
Continue reading “Common Code Smells in OOP”bBox for FileMaker v0.95 Now Available
We are pleased to release bBox version 0.95. bBox is a free utility plug-in to extend FileMaker solutions to easily use code libraries and macOS-based functions from Python, JavaScript, PHP, Ruby, AppleScript, Bash/sh, XPath, and SQLite. Also included is a demo file that has over 210 examples of how you can put bBox functions to work for you.
bBox for FileMaker v0.93 Now Available
We are pleased to release bBox version 0.93, including new FileMaker script steps and web viewer functions. bBox is a free utility plug-in to extend FileMaker solutions to easily use code libraries and macOS-based functions from Python, JavaScript, PHP, Ruby, AppleScript, Bash/sh, XPath, and SQLite. Also included is a demo file that has over 210 examples of how you can put bBox functions to work for you.
bBox for FileMaker v0.90 Now Available
We are pleased to release bBox version 0.90. bBox is a free utility plug-in to extend FileMaker solutions to easily use code libraries and macOS-based functions from Python, JavaScript, PHP, Ruby, AppleScript, Bash/sh, XPath, and SQLite. Included is a demo file that has over 200 examples of how you can put bBox functions to work for you.
Overcoming TLS Frustrations with Python and macOS Sierra
The short version of this is that you probably want to upgrade to High Sierra (macOS 10.13) if you need to do much of anything with the built-in macOS version of Python and any network tasks.
Continue reading “Overcoming TLS Frustrations with Python and macOS Sierra”
JavaScript for FileMaker with bBox
In 2017, we released several new versions of bBox plugin. In the spirit of yearly retrospective, let’s highlight perhaps the most exciting new bBox feature: JavaScript for FileMaker. The new JavaScript for FileMaker functions in bBox are great for heavy duty JSON processing tasks, repurposing JavaScript code for use in FileMaker, or other computation intensive processing. Here’s a recap…
bBox 0.88 for FileMaker Now Available
We are pleased to release bBox version 0.88. bBox is a free utility plug-in to extend FileMaker solutions to easily use code libraries and macOS-based functions from Python, JavaScript, PHP, Ruby, AppleScript, Bash/sh, XPath, and SQLite. Included is a demo file that has over 180 examples of how you can put bBox functions to work for you.
Version 0.84 of bBox for FileMaker Now Available
Optimized for FileMaker 15, the new version of bBox includes 160 examples
We are pleased to release another update to bBox, v0.84 of our free utility plug-in to extend FileMaker solutions to other programs, code libraries, and OS X functions including Python, Ruby, AppleScript, Perl, Bash/sh, XPath, and SQLite.
Continue reading “Version 0.84 of bBox for FileMaker Now Available”
Version 0.83 of bBox Now Available
Optimized for FileMaker 15, the new version of bBox includes 160 examples
We are pleased to release another update to bBox, v0.83 of our free utility plug-in to extend FileMaker solutions to other programs, code libraries, or OS X functions (Python, Ruby, AppleScript, Perl, Bash/sh, XPath, SQLite).
Excel formatting and charts from FileMaker using XlsxWriter
If you’ve developed solutions with FileMaker for any length of time, you’ve almost certainly created files using FileMaker’s native Excel exports. Although quite useful, this feature gives almost no control over the formatting, and definitely no way to set formulas, charts, or even text formatting.
Continue reading “Excel formatting and charts from FileMaker using XlsxWriter”
Version 0.82 of bBox Now Available
We are pleased to release another update to bBox, v0.82 of our free FileMaker utility plug-in.
Installing xhtml2pdf on OS X
Xhtml2pdf is a cross-platform Python module that allows easy conversion of HTML or XML to PDF files. Its dependencies, ReportLab & Pisa, also have a host of very useful functions, including programmatically creating or modifying PDF content & creating barcodes.
bBox 0.80 Now Available
Its been almost a year since we’ve mentioned bBox on this venue, but we are now pleased to announce that version 0.80 is publicly available.
Using Cocoa’s PDFDocument class from FileMaker
I’ve been looking for a way to interface with some Cocoa classes in the Mac OS X API from FileMaker for a while. My initial target was PDFDocument, part of the PDF Kit suite of classes. For more information on Cocoa’s PDF Kit see here: Introduction to PDF Kit Programming Guide
Continue reading “Using Cocoa’s PDFDocument class from FileMaker”
Removing intermediate directories
We recently needed to remove the intermediate directories in a large number of parent directories. So, if we started with /A/B/C/D, we wanted to end up with /A/B/D. It seemed simple at the time, so I blithely said “Sure, I can write that easily as a shell script”.