Cool, I got my google app engine invitation!
I will probably write a comments app to replace my usage of haloscan.
Why? Because I can't connect to haloscan from home.
I will probably write a comments app to replace my usage of haloscan.
Why? Because I can't connect to haloscan from home.
I am trying to become more organized in my work. And it seems to be working.
Things I do/notice/try now:
There is a ticketing system. Use it.
Really, there is no reason not to. If the customer says creating tickets is annoying/boring/whatever, I do them myself.
It takes very little time and it lets me see/describe what I do/did in the day. Then, take what's in the ticket, clean it up, and...
There is a wiki. Use it.
Document every thing I do. No "this is just a little thing". There are no little things. If it was so little, I wouldn't have to do it. Put everything in the docs. The client needs it. I need it.
There is an email. Use it.
I got an email. Then either it's something that's broken (create a ticket), or something that needs explaining (create/refer a doc), or something that needs doing (create a todo), or a meeting (put it in the phone), or a a piece of data I need to remember (archive it, mairix will find it when I need it). I have had an inbox with no mail in it for three days, and it's quite liberating.
The phone is the first PDA that actually works.
I never managed to use desktop PIM suites or PDAs. I do keep my appointments on the phone. I always have my phone with me. I listen to it when I have an alarm. I can't say the same thing about the notebook, or about any PDA I owned. And it's a cheap phone. Using a smartphone makes no sense. I lose the things. Now I can sync it via bluetooth, too! I still use a Sony CLIE to read ebooks, though.
I like HiveMinder.
It's todo lists I can actually use. Done? Click, gone. New task? Fill a line and it's there, tagged, grouped, dated, prioritized. Want to do it from the CLI? Yup. I do need to write a Trac plugin that converts my tickets into todos, though.
Sure, I don't have it with me all the time (maybe sync it with my phone's todo list is possible somehow...) but I just need to do one full task review a day, add tasks when I'm on a computer, close tasks at the end of the day or while working.
Read email/news on fixed time periods.
I can't focus on working for over one hour nonstop. So I stop every hour for 10 minutes of news, and 5 minutes of mail (which is still working anyway, since I need to know about stuff). No mail app running in the meantime. If it's urgent, they have my phone number. If they don't, it's not urgent.
It is making a difference, I am becoming more productive without spending more hours at it, which was my previous "strategy".
Q: What happens if you have a SMTPA server, and you have a user called info, and then set its password to info?
A:
[root@victim ~]# qmail-qstat messages in queue: 151369 messages in queue but not yet preprocessed: 9
Lesson:
Yes, there is a reason why those passwords are not available by default.
I really should limit the per-account outgoing mail by default in all servers. Let's start working on it.
Suppose you want to send SMS messages from windows through a bluetooth connection to a phone.
I am sure you can make it work. On the other hand, I already had it working on Linux... so you can just use this on a friendly Linux box, and send SMS messages by accessing a special URL:
#!/usr/bin/env python from colubrid import BaseApplication, HttpResponse, execute import os class SMSApplication(BaseApplication): def process_request(self): numero = self.request.args.get('numero') mensaje = self.request.args.get('mensaje') [entrada,salida]=os.popen4('/usr/bin/gnokii --sendsms %s'%numero,mode='rw') entrada.write(mensaje) entrada.flush() entrada.close() msg=salida.read() response = HttpResponse(msg) response['Content-Type'] = 'text/plain' return response if __name__ == '__main__': execute(SMSApplication,debug=True, hostname='mybox.domain.internal', port=8080,reload=True)
If someone opens http://mybox.domain.internal:8080/?numero=1234?mensaje=hola%20mundo
it sends "hola mundo" to the 1234 number.
I suppose I could call this a web telephony service or somesuch, but it's actually just the 5'solution that came to mind.
It uses a silly little not-a-web-framework called colubrid instead of something you may know, because I wanted to keep it simple, and it doesn't get much simpler than this.
Just a snippet of code because every once in a while I need something like the classic memoize decorator but am working on a CentOS 4 bix (with python 2.3!)
I am still testing it, and am not even sure it really works, but it should be close.
cache=memcache.Client(['127.0.0.1:11211'], debug=0) cachetimeout=30 def memoize(fun): def inner(*args, **kwargs): key=repr(fun)+repr(args)+repr(kwargs) cached = cache.get(key) if cached is None: val = fun(*args, **kwargs) print "Setting: ",key, "to: ",val cache.set(key,val,cachetimeout) return val return cached return inner
And later inside a class:
And that's it. The basic idea I stole from a blog who was inspired by a Paul Graham book. It can be trivially turned into a decorator, of course (but then only works on 2.4 and later).