While fixing here and there the Continuous Integration daemon, I'm looking back and thinking about my own mistakes while designing it. If this blog was supporting tags I would tag this entry as Lession learned.
Also, maybe I should support tags.
About Logging:
The hierarchical logging proposed by the logging module in Python is a Good Thing. I regret not having followed it. I went for a name which is just the name of the application, and now I can't simply disable a log when I don't want it.
About security and reporting
This is about embedding security in your design.
Sometimes people want to see some visual feedback. It's however usually a bad idea to show inner details to the outsider. In my case I'm orchestrating some remote service, which is seen by my system as a resource. It's good to be able to show such resources. It's bad to do that when showing the resource could give you unnecessary details, like session keys in urls.
I was thinking about a safe_show()
method, for this kind of objects. If
you don't define it, the system defaults on __str__()
or __repr__()
.
Yes, I'm talking Python here, but this is a general idea.
Don't SSHFS. Use Rsync if you can.
I love sshfs, but in my experience it's a bad idea to use it in some automatic system. If you expect stuff to run automatically, you don't really want to have a faulty sshfs mount in the way (e.g. if your ssh server crashes). Too bad, I learned how to use rsync only recently.