...lot of logic and callbacks for a particular form screen, but then the model becomes a pain in tests, where all those callbacks just get in the way. Or we...

...have different forms for the same model but they need to behave very differently (e.g. admin user form vs. public sign up form). There are many approaches that promise help...

...existing bash script to work for commits that are referencing Linear IDs. A core benefit of our convention to prefix commits by their corresponding issue ID is that we can...

...easily detect commits that belong to the same issue. You can either do that manually or use the bash script below. It can either be placed in your .bashrc or...

I frequently find myself needing a combination of group_by, count and sort for quick statistics. Here's a method...

...also in our library): Designing a Complex Form Designing a Dashboard Designing Content Designing Beautiful Shadows in CSS Pairing typefaces Then, take the quiz at cantunsee.space. Did you spot all...

...system's environment specifies. This is usually good enough. To test any timezone-dependent behavior in Chrome, you can change the time zone using the Chrome DevTools Protocol. Example

The gemspec for gems allows to add metadata to your gem, some of which have a special meaning and are...

DevOps Curriculum

Wir arbeiten bei makandra alle auf Linux-Betriebssystemen und bedienen im DevOps- & Cloud-Bereich primär Kunden, die ebenfalls auf Linux als Ziel-System setzen. Entsprechend benötigen wir tiefgehendes Wissen über...

...umfangreich. Verwende solche Inhalte zum nachschlagen von spezifischen Themen. The linux command line for beginners Installiere tldr mit dem Befehl sudo apt install tldr. Damit kannst du dir Beispiele für...

These steps are now part of Spreewald. Here are some useful examples how to use the attached Cucumber Timecop steps...

...DateTime.strptime is not what you want You may eventually encounter DateTime.strptime. It's a "better" Time.parse where you can actually define the date format to parse, e.g. >> DateTime.strptime...

...If you use Rails' time_zone_select, you will be juggling zone names like "Berlin" which are actually unsupported. Unsupported zone identifiers are silently discarded and you'll end up...

I used two lab days to read the The framework field guide - Fundamentals, the first of a three part series...

...Normalize characters in Ruby". Specs (for nerds) Here are some specs that describe the behavior of #to_sort_atoms: describe String do describe '#to_sort_atoms' do it 'should return...

makandra dev

Git has the concept of hooks: bash scripts that are invoked at certain points in the Git lifecycle. One handy...

Ctrl + Alt + S > search "rubocop on save" Under "Inspections", check the highlighted box on rubocop -a Caveat: This adds a...

Software engineering principles Read about the following software engineering principles and code smells: Single Responsibility Principle Law of Demeter

...component is using this class to render and modify some html, it may fastly become boilerplate to define every call of the method. Here callFake comes in handy, because it...

...of any dependent on the received arguments without having to know the exact arguments beforehand: spyOn(Random, 'shuffle').and.callFake((array) => array.reverse()) Now you can just assume any result of your...

unpoly.com

Version 3.7.0 broke some things in complex forms. Sorry for that. Concurrent user input is hard. 3.7.1 This change fixes...

If the project team consists of at least 2 members, do a daily standup. It should not take much longer...

...hosts. With the large number the puppet run on the Nagios server will become quite slow. In the end it took 10 minutes to complete. Make it fast

...Nagios server takes 65 seconds. References Eric Holzbach - Automating Nagios with Puppet and Puppetdb Ben Hartshorne - Puppet Perfomance Investigation Pieter Barrezeele - Puppet and Nagios

JavaScript objects can have getter and setter functions that are called when a property is read from or written to...

OpenAI is currently limiting the Audio generating API endpoint to text bodies with a maximum of 4096 characters.

When using Rails to truncate strings, you may end up with strings that are still too long for their container...

To set a cookie in your test browser for cucumber tests, you need to know which driver you are using...

So your Cucumber feature sometimes dies with this exception: Modal Dialog Present (Selenium::WebDriver::Error::UnhandledAlertError) As a seasoned Selenium...

makandra dev

This may be awkward to set up, but will work once you're done. Fun facts: