I recently needed to have a pool of objects and it would make everyones life a lot easier if those objects would automatically return themselves to the pool when they were done.
Here's my take on a shared pointer pool.
I recently needed to have a pool of objects and it would make everyones life a lot easier if those objects would automatically return themselves to the pool when they were done.
Here's my take on a shared pointer pool.
This is a quick and dirty config guide to setup git-http-backend
with uwsgi
from supervisord
on nginx
. I did this on Fedora 20
so on a different distro some paths will likely be different.
I've also ignored security in this post as I have ssl termination handled elsewhere. This will send your password in the clear if you don't have ssl setup correctly! Don't forget to setup git permissions as well. This config allows any authorized user (somebody who can login) to push.
OMG I HATE MY LIFE SOMETIMES
So… I'll hopefully write more about this later, but the TL;DR is do not use monitor.py
and uwsgi
.
So if you have something like this in your wsgi.py
, comment it out with extreme prejudice.
import monitor
monitor.start(interval=60)
Symptoms include, but not limited to:
I haven't looked into too closely but I suspect the fact that the monitor opens up it's own thread and runs forever has something to do with it. Open files, open sockets, stuff like that.
In your muttrc
you should have something like the following:
set query_command = "goobook query '%s'"
bind editor <tab> complete
bind editor ^T complete-query
and if auto-completion of aliases isn't working make sure you don't have:
bind editor <tab> complete-query
bind editor ^T complete
Note that the complete-query
vs complete
. Ctrl-T
runs your query_command
whereas tab
auto-completes as appropriate (likely from your alias list).
That took too long to figure out…
This pattern which I thought up (but is likely not unique) can very nicely manage your service configurations, automatically reload/restart your service, and even give non-root users (if desired) the ability to modify system config files.
All through the magic of git hooks. This example tracks config files for Apache (httpd).
Do you have a function called Enable()
and another called Disable()
. Make those two private and make a third:
void Enable(bool enable) {
if ( enable )
Enable();
else
Disable();
}
// now change all your calling code from
if( x == y )
Enable();
else
Disable();
// to
Enable( x == y ); // 4 lines are now 1
As per my example above, four lines got compressed into one line but nothing actually changed. The algorithm is identical but you now have fewer lines to think about and worry about. And all of this multiplies. If you make that change 4 times you've removed 12 lines of potential bugs and oversights.
I've finally gotten around to uploading a little project I did years ago. any_config
is a template class that implements a somewhat fancy prototype pattern.
Read about at github.com.
This was originally the majority of this post: Start a django project the right way but I've decided to put in it's own post instead.
I'm assuming you're on OSX. If you're on Linux most of these steps will be the same. If you're on Windows… Install VMWare and then install Linux.
I've added a tl;dr
at the end.
Although I have tweaked this over the years, the original code came from (I think, I've long since lost the bookmark) klymyshyn.com