Handling Historical Data with FileMaker and AWS Athena, S3 & Serverless

In this blog post, we will explore a solution for optimising a FileMaker app that handles large amounts of data. We will address the challenges of data storage, file corruption, and performance degradation when dealing with historical data.

By leveraging cloud storage and serverless computing, we can offload and query this data efficiently, ensuring better performance and scalability.

Continue reading “Handling Historical Data with FileMaker and AWS Athena, S3 & Serverless”

The New Horizon: Script Transactions in Claris® FileMaker®

Script transactions in Claris FileMaker are finally here, but wait! Haven’t we done “transactions” in FileMaker for a long time? Yes and Yes. But script transactions are different and the main advantages, that I see, are the possibilities of simplifying code and improving solution performance. I’ll elaborate on these in this post. And, of course, there is also the inherent benefit of doing things transactionallyall or nothing is the law of the data.

Continue reading “The New Horizon: Script Transactions in Claris® FileMaker®”

Unite Hacks 2022 Hackathon

Who doesn’t love a good hackathon?! Unite Hacks, a 12-hour, student-led, in-person hackathon is happening this weekend in Oakland, CA. We can’t wait to see what these talented developers can build.

Continue reading “Unite Hacks 2022 Hackathon”

Design Think Your Code

Have you ever opened an existing solution, took one look at the source code – and your eyes just glazed over – as if you were attempting to decipher the Matrix?

You’ve entered the world of DX, or “Developer Experience”.

Just as User Experience (UX) refers to the experience of users, Developer Experience (DX) focuses on the experience that Developers have within the code of your system. This applies whether that’s code you inherited, code you passed on to someone, or code you originally wrote — all situations which affect a person I would call ‘Developer Next’. This could certainly be your-good-self, in six months time.

Continue reading “Design Think Your Code”

Custom Functions For Today’s FileMaker Devs Of Tomorrow

While working from home, and continuing to hone one’s FileMaker skills, it’s important for developers to stay active with ongoing learning pursuits. Claris® FileMaker®, as the world’s leading Workplace Innovation Platform, supports both the rapid creation of new custom apps, as well as the practical application of solutions to solve real-world business problems. Here, creative ideation is critical.

Continue reading “Custom Functions For Today’s FileMaker Devs Of Tomorrow”

The Benefits of Automated Testing

Software changes over time. Your company’s web site this year does things you had no idea you needed two years ago. How can we keep the cost of change manageable?

Automated testing is one way. Especially for large software projects, the practice of automated testing can dramatically reduce the cost of adapting software to new business necessities.

Continue reading “The Benefits of Automated Testing”

OOP Fundamentals: Quick and Dirty Guide to Testing

There are entire books written on testing. And it surely feels more an art than a science. My approach is similar to Kent Beck’s:

I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence (I suspect this level of confidence is high compared to industry standards, but that could just be hubris). If I don’t typically make a kind of mistake (like setting the wrong variables in a constructor), I don’t test for it. I do tend to make sense of test errors, so I’m extra careful when I have logic with complicated conditionals. When coding on a team, I modify my strategy to carefully test code that we, collectively, tend to get wrong.

https://stackoverflow.com/a/153565/1015566

He goes on to add that different people will have different strategies and, at the end of the day, you just have to do what works best for you and your team. Extremely practical, and the approach I personally follow.

This won’t be a detailed post on every possible topic on tests and testing in Object-oriented Programming (OOP). There are many books about that already. Instead, this article will cover the basics of testing, so you understand how and why we test, and you can adapt it to your own needs.

Continue reading “OOP Fundamentals: Quick and Dirty Guide to Testing”

Integrating FileMaker’s Data API and Ruby with the fmrest-ruby gem

We often work on projects that intersect two technologies near and dear to us: FileMaker and Ruby. This allows us to build robust web applications in Ruby on Rails, integrated with data sources from FileMaker solutions. When Claris introduced the FileMaker Data API we were naturally curious to try it out. At the time there was no off-the-shelf Ruby library for us to simply gem install, so we decided to roll up our sleeves and build one. Thus, fmrest-ruby was born.

This article will walk you through setting up and using fmrest-ruby in a Ruby on Rails project. Some level of familiarity with Ruby/Rails and FileMaker’s Data API is advised, although much of the content covered here is applicable to any Ruby project, Rails or not.

Continue reading “Integrating FileMaker’s Data API and Ruby with the fmrest-ruby gem”

OOP Fundamentals: The Decorator Pattern

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”

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”

Something out of Nothing: Null Object Pattern

What is nothing? nil? null? undefined? A vast void of emptiness that fills your soul with dread? Oh sorry, that’s just my stomach.

We often think of nothing as… well, nothing. It’s when something doesn’t exist and therefore cannot be interacted with. So in our code, we try account for having nothing. No User? No problem.

Continue reading “Something out of Nothing: Null Object Pattern”

Ruby’s Safe Navigation Operator &. and is it a Code Smell?

What is &.?

Ruby devs are probably all too familiar with seeing this error:

NoMethodError (undefined method `foo' for nil:NilClass)

Most of the time, it’s probably due to a typo, but every now and then we end up having to do something like:

defined?(bar) && bar.foo
# returns nil if bar is nil

If you’re on Rails, or are using ActiveSupport, you can use present? or try():

Continue reading “Ruby’s Safe Navigation Operator &. and is it a Code Smell?”

Composition over Inheritance, with JavaScript examples

If you are into object-oriented programming, you most likely have heard about composition over inheritance. The concept itself is simple: Whenever possible, prefer to compose objects rather than introducing inheritance.

Continue reading “Composition over Inheritance, with JavaScript examples”

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”

Let’s Abstract a While() in FileMaker

Introducing JSON Filter, Map, Reduce.

Now that FileMaker has given us a practical and more simplified way to loop in a calculation with the While() function, the doors have opened to other ways to look at looping. Continue reading “Let’s Abstract a While() in FileMaker”

We’ve been waiting for While()… for a while

FileMaker has been missing a looping control structure in its function set for…well…a while. So, the introduction of FileMaker 18’s While() function is less a fancy new feature than it is a fix for a long standing limitation in FileMaker’s function set.
Continue reading “We’ve been waiting for While()… for a while”

Modularizing The JavaScript You Already Have

Over time, without structure, things fall apart. So give them structure, a few conventions, and start to make them more maintainable. Let me say more, at least in the context of JavaScript in your applications (or did you think I was talking about gardens or buildings or such? lol.)
Continue reading “Modularizing The JavaScript You Already Have”

Which Server-Side Swift Framework Is Best For Your Project?

Server-side Swift is making waves in the web and services worlds, and developers from iOS, web and other coding backgrounds are increasingly joining the server-side Swift community. There’s just one problem (a good one): How do you choose which open-source Swift framework to use?
Continue reading “Which Server-Side Swift Framework Is Best For Your Project?”

A Ruby-ish Xmas

Ruby-ish, rubbish… Get it? Anyways, not like Ruby-ish means bad! Quite the opposite!

It’s the day after Xmas and because Ruby is awesome and delivered 2.6.0, we’ll get to play with some of our new Xmas gifts: Kernel#then, Proc#>> and Proc#<<.

Continue reading “A Ruby-ish Xmas”

Dependency Injection in JavaScript, a Node.js example

As developers, we are tasked with reducing complexity. Complexity is all around us, and good code organization reduces complexity while at the same time supporting increased flexibility, ease of change, quicker onboarding, faster debugging, and my favorite, better testing.
Continue reading “Dependency Injection in JavaScript, a Node.js example”

1 2