My issues with Chrome's handling of extensions
This got long enough that I've pulled it out of the original entry into a standalone entry.
On an ongoing basis, two issues with Chrome extensions especially grateon me. The first is that Chrome extensions are disabled when you'revisiting Google's website(s). This has a vaguely sensible excuse forsecurity reasons (Google's website hosts the Chrome extensions), butthe side effects are unpleasant since extensions provide significantportions of the browser interface for me (in the form of mouse gestures
More impressions of Google Chrome
It's been a while since I started to use Chrome and in the time since last August I'veaccumulated more opinions, partly because I gave in and installed theChrome equivalent of NoScript. The short summary is that I can'timagine making Chrome my regular browser instead of Firefox.
Here is my largest opinion in a nutshell: Chrome's support forextensions is not good enough. It really feels like Google fundamentallydoesn't like extensions and supports them only half-heartedly, versusFirefox'
OpenBSD pf rule numbers and tcpdump filtering
OpenBSD's pf packet filter can log packets to a pflog virtual networkdevice if you ask it to; in normal configurations such logged packetsappear on pflog0 and then wind up saved in /var/log/pflog . Aroundhere we log most rejections and some stuff that we accept, partlybecause this makes tracking down firewall issues much easier.
If you use ' tcpdump -e ' on a pflog device or log file, it will printthe rule number of the rule that caused the packet to be logged
Databases as a compromise damage limiter in web applications
Here is a thought that I have been toying around with lately: you couldsay that one attraction of using databases in web applications is thatthey limit the damage from an application compromise.
You can at least conceptually separate web applications into the'computation' (such as it may be) and the backend data storage.Historically, many web application vulnerabilities have given theattacker various sorts of unfiltered access to the backend storagesystem (usually this is some variety of passthrough attack whereparameters are not filtered enough).
When
How much space a Python dictionary entry uses
There are a number of built in Python types that have variable sizedinstances, such as tuples, lists, and longs (or ints, in Python 3).For some of these, there is a simple answer to how much space a giveninstance will take up, based on how many items you put in an instance;you can determine this from using There are of course any number of differences between tuples and lists,but today I discovered a subtle and interesting one: tuples have anon-zero Wait, what? Lists are clearly variable sized things, in fact morevariable sized that tuples since a tuple is immutable once created. Itturns out that that difference is exactly why tuples are In SystemProgrammerDanger , I wrote about the danger of having a systemprogrammer around (to summarize, we automatically reach for things likethe source code). But there's a flipside of that, handily illustratedby my recent entry on getting stale file errors for local files ; sometimes the system programmer approach isthe right one. When my colleague brought up this odd issue he was having with localfiles giving 'stale filehandle' errors, my first reaction was to grepthrough the kernel source for places that returned Today, one of my visitors came here after doing a Google search forthe error message: nonempty __slots__ not supported for subtype of 'int' Right away, I can tell you something about this person; they are eitherusing Python 3 or porting code to Python 3. (I use 'porting' instead of 'migrating' deliberately.) At one level, the reason you get this error message is simple and Icovered it in HowSlotsWorkI ; in short, you are trying to subclass a In SQLHairshirtIssue , I brought up SQL normalization in passing in a waythat may have left people thinking that it was done for performance. Myunderstanding is that this is not the case, or at least not why you donormalization. In short, normalization is not about performance; normalization isabout not making your life unnecessarily painful later. To simplifyslightly, normalization is more or less about not repeating yourself(with a sideline of not making extra work for yourself); each piece ofinformation appears in only one entry Today, Ubuntu released a PAM security update and we applied it. OnUbuntu 10.04, this upgraded the Ubuntu PAM package from version1.1.1-2ubuntu5 to 1.1.1-2ubuntu5.2 (other Ubuntu LTS releases hadsimilarly versions numbers); as you can see, this is a very minorversion bump. As you'd expect, this did not change, eg, the libpamshared library soname version (not even the minor version) sys.getsizeof() on an empty instanceto get the base size and then looking at
A subtle difference between tuples and lists in CPython
__itemsize__ , and lists do not. Or to put it in a morecomprehensible way, in CPython tuples are variable-size blobs andlists are not.
Sometimes having a system programmer around is the right answer
ESTALE errors
Ints, __slots__, and Python 3
My understanding of SQL normalization
How to fail at versioning
Menu