07.22
It seems, allthough the papers are yet to be signed, me and Monica are going to by an apartment in Drammen. Really looking forward to moving away from Oslo to somewhere calmer.
Ramblings from a northern geek
It seems, allthough the papers are yet to be signed, me and Monica are going to by an apartment in Drammen. Really looking forward to moving away from Oslo to somewhere calmer.
A friend of mine pointed out a sad but seemingly true thing about how standards come about. Instead of asking the question “How could we go about solving this problem?” it seems as if “It would be awesome if X!” is the start (or at least the continuation of) standards.
To improve my HTTP knowledge I’ve once again read through the HTTP/1.1 (RFC2616) specification and just wanted to point out “how much fun it is”.
From section 8.1.2.2:
Clients SHOULD NOT pipeline requests using non-idempotent methods or non-idempotent sequences of methods (see section 9.1.2).
And the reference to 9.1.2:
Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, the methods OPTIONS and TRACE SHOULD NOT have side effects, and so are inherently idempotent.
Starting of, pipelining requests is a SHOULD NOT and not a MUST NOT so it can be ignored. Second, from my understanding of all this if the actual method is idempotent for a specific resource the “requirement” would be filled with POST requests as well.
Assumptions have to be made or I need to improve my logic and/or english skills but apparently I’m not the only one being confused, the HTTP/1.1 Pipelining FAQ at the netlib project page on mozilla.org says that PUT should not be pipelined.
Been quite busy as usual, so thought it was time for an update.
In real life I stumbled across an job opportunity at Norman working on the Norman Network Protection product. Have just been working there for a couple of weeks now but it is indeed very interesting!
On the computer front Andreas packaged the 0.1.12 pekwm release which includes a set of bug-fixes and better tab-completion in the command dialog. Septic has gotten a python companion, peptic which now is handling the mailing lists for pekwm. I’ve also put down some work on my python log tailer/parser/syslog/web frontend utility plog preparing a 0.1.0 release, 0.1.0rc1 is out.
I just (actually, it’s been a while I just haven’t finished this post) read the book “Clean Code: A Handbook of Agile Software Craftsmanship” (ISBN-13: 978-0132350884) which was a good read. I especially enjoyed the chapter “Smells and Heuristics” which goes through most of the indications of unclean code discussed earlier in the book in a condensed form.
Most of the smells are worth noting and taking into account, some examples include:
If you haven’t read it. :)
I finally took the first step towards getting myself a drivers license, took my first driving lesson earlier this week. :)
A friend of mine asked if it was possible to have different backgrounds on different desktops in pekwm, which it wasn’t as pekwm does not take care of setting the background. However, to solve this issue I’ve hacked up a small application during this week which is named wallpaperd. Wallpaperd is a simple daemon listening for workspace changes and then updating the background image.
The current release is 0.1.5, which is known to work under Ubuntu Linux, OS X, OpenSolaris and OpenBSD. Check it out!
SELinux seems to be one of the technologies available with great potential but with little or no user-acceptance. I have often ended up disabling the security features due to limited time reading up on, and then configuring the it to fit my needs. However I thought I should give the policies delivered with CentOS a go.
To get started with the targeted policies have a look at the selinux and httpd_selinux manual pages:
$ man selinux $ man httpd_selinux
Those two manual pages should give enough information to get started.
Something I find myself wanting to do is enabling CGI script to execute and then granting those scripts access to files. To run /path/to/file.cgi as a CGI script reading data from /path/to/read/directory and writing to /path/to/write/directory execute:
# chcon -t httpd_sys_script_exec_t /path/to/file.cgi # chcon -t httpd_sys_script_ro_t -R /path/to/read/directory/ # chcon -t httpd_sys_script_rw_t -R /path/to/write/directory/
For debugging purposes SELinux for Apache can be disabled by:
# setsebool -P httpd_disable_trans 0 # service httpd restart
To list out what contexts files have use the -Z for ls:
$ ls -Z
For some more information on the subject check out:
Moving towards Java land I recently took a SCJP certification and got reminded about how hard it is to measure knowledge and skill. Second up is, even if it would be possible to measure it in a good fashion what would you do with the score? Consider a person with both tons of knowledge and skill, but without sense for quality or ambition to do a good job. What would such values give you then?
Not providing any solution here, but it seems as if it is harder to give people a sense of quality and motivation to do a good job compared to improving their skills…
Today I did some updates on the Gal Gtk+ interface making use of some new shared code between the different player implementations. Showing the three level version of the interface (which is how the curses interface is laid out) in #pekwm (irc.freenode.org) it was suggested that it’s “better” to have previous two-level view.
Conclusion, as always, user interface design is tricky and for some things an extra configuration option is worth it!