Skip to content

Instantly share code, notes, and snippets.

View al2o3cr's full-sized avatar

Matt Jones al2o3cr

View GitHub Profile
@al2o3cr
al2o3cr / README.md
Created June 25, 2018 10:44
STI method generation optimization

Reducing STI memory usage

if there are many STI child classes, ActiveRecord generates methods for each one individually. This is wasteful in the typical case, since all the children share the same underlying columns.

The small patch included here causes those methods to instead be generated in the parent class, shared amongst all the subclasses.

DO NOT use this if you call methods like attribute :foo to adjust the typecasting of columns in individual models.

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+
@al2o3cr
al2o3cr / README.md
Created May 23, 2021 03:28
Solution for "four fours" problem

Fours

A partial solution to the problem posed here: https://twitter.com/mikelikesbikes/status/1396159019837018117

This solution represents the expressions in reverse Polish notation (RPN) - see also Forth and HP48s.

The version presented here does NOT produce all values from 1 to 100, as it does not use enough operators.

Extending the search to additional operators only requires adding the value to @operators and a clause to eval to handle it.