I feel like I really accomplished something today. I actually re-implemented some of the core features of SpamAssassin and made it about 8 times faster. BUT that's not what I'm proud of.
I plumbed.
I managed to accidentally wrench off a tap in my garage a couple of weeks ago, and so I had to re-plumb it back on. But being right up against a drywall it was a bit more complex - a case of cut the pipe, clean the pipe, put on new tap, solder it on, solder on half a joint on the other end, and finally solder the two pieces of pipe back together at the joint end.
Yes it leaked first time. But I realised my screw up - I had soldered it back together with the tap closed, so the air/steam pressure build-up blew the solder out of the join. It doesn't tell you not to do that in any of the instructions, but at least I felt like I learned something. And with plumbing, you learn FAST or you get wet.
So now I can add "basic plumbing" to my resumé. Sweet.
Re:SpamAssassin Speedups
jmason on 2007-07-26T10:05:00
seconded;) Re:SpamAssassin Speedups
Matts on 2007-07-26T13:14:14
Hahah, somehow I knew that might solicit responses.
In our mail environment the mail is already pre-parsed, and so rather than call the entire SA I just parsed the rules out (for now ignoring eval: rules) and run them over my pre-parsed email. Saves going into the SA engine. By making it all a LOT simpler (i.e. about 8 methods in total rather than the hundreds in SA) it's an awful lot faster. There's a lot of overhead in SA to support some freaky weird setups, and honestly just too much bloat.
I'm working on figuring out how I can make some of the important eval: rules work now.
This way I can also work towards porting some of it to C.