Skip to main content

Posts

Cache strategies

An ideal cache entry is created just before its value is first needed and destroyed just after it is no longer needed. typical cache strategies do not (try to) approximate this ideal, but half a loaf is better than none? caching doesn't necessarily help. for example, using another host to cache database query results requires more network usage. determining if the additional complexity and cost are worthwhile depends on the database server's behavior (it might be caching the results already), network connection speeds, etc. in a simpler architecture, a server and its cache are hosted by the same machine. if there are redundant servers there will be duplicate cache entries, so analyzing cost/performance still requires effort. there is no free lunch. Server requirements ...

Innocuous scraps

Nécessité fait loi. i was about to mangle Hamlet's soliloquy (slings and arrows of micromanagement?) when i found this :-) with so many ostensibly peaceable people at war, it's easy to imagine being in a situation where killing someone might be the best option. after all, sometimes there are no good choices. whether you are willing is one question. which is better is another. i'm sure i've been characterized as results-oriented at some point, and i certainly have broken rules. now i self identify as process-oriented, partly because i think it's possible to be both, mostly because a mindful focus on processes can lead to better results. metrics are situational, i.e. better is in the eye of the beholder. in my kitchen, using less water is important because i wasted so much. this shift towa...

Sphinx supplement

Once upon a time, i was in a team led by a developer who was devoted to introducing modern standards. he didn't have much experience, so i think this devotion was essentially a cloaking device. though we didn't generate documentation, most pull requests elicited a request for a docstring change. my first post about Holistic Development focused on logging . this one is about generated documentation. though software developers habitually read code, generated documentation can become their primary source of information because it's easier to read. it also assures product owners that features are addressed, and that the design is orderly. Documentation review a docstring is just a comment until documentation is generated. at that point, evaluation of docstring quality should be based on the generate...

Stop making sense

Several students at a college radio station responded to David Lynch's death by playing David Byrne's music, and i think they all acknowledged their confusion while announcing their songs. that seemed odd to me, and it still does. Byrne and Lynch are/were both unconventional, white men. they both attended multiple art schools without graduating, receiving honorary degrees afterward. they were other similarities, but there were just as many differences. for example, Lynch's name reveals an historic English/Irish connection whereas Byrne is actually a citizen of Ireland and the United Kingdom. (not caring about such details might be a good thing.) Byrne's Bicycle Diaries is a byproduct of an active lifestyle, whereas Lynch was homebound because of his emphysema. ...

Deliberate logging

While diagnosing an error, it's not unusual to discover that the application log does not contain relevant information while also being overly verbose. DEBUG-level entries can be cryptic, and maintainers often insist that their applications emit them in production environments. the universal acceptance of low quality logs is a management failure. Holistic development a software development protocol should synergize best practices, but we should run away whenever someone claims that success depends on a protocol's complete implementation. incremental development of software is common, as is reusing large frameworks. the development process can mature similarly. Holistic Development is a protocol i should describe someday, but piecemeal presentation makes sense because partial implementation is help...

Jam tomorrow

Instability and uncertainty are on the upswing (quoting Chinese Premier Li Qiang via The Taipei Times ). other publications quoted him differently, so i infer that there is no official translation of Li's words. China's complaints about disruptions to normalcy seem ironic when juxtaposed with its Belt and Road Initiative. on the other hand, people love to complain and there is more conflict than usual these days. with the possible exception of catharsis, most complaints have no effect. grief is real, but it shouldn't be extended. at some point, we should look forward to tomorrow's jam. it won't be good, but it will be better than the jam we cannot have today. Instant sauce i have a vivid memory of licking the last traces of raspberry coulis off...

Not so fast

Don't know how to begin or what to say, but feel like saying something about a few Python development issues. as hosts evolved from actual/virtual machines to containers, server deployment adapted accordingly. hosts were de facto containers because they had service interfaces, but deployment via systemd/upstart was unusual. i know supervisord was also used. virtual environments became popular, because of host-server and server-server dependency conflicts. i avoided this style of virtualization by segregating servers and/or letting some servers govern the dependencies of others. needless to say, containers and machines are quite different. when a container is server-specific, a virtual environment has no value. thus, i install Python p...