VB is not all that basic. It has some (plenty) annoying omissions:
No explicit constructors. You have class_initialize and class_terminate methods that are called automatically when an object is created and destroyed - but there's no way of passing parameters to them, let alone implementing multiple signatures. Which brings us to...
No method overriding. At all.
No implementation inheritance
No array or dictionary constants
Come to think of it, no dictionaries full stop. There's a "Scripting" component you can use to get some functionality of this kind, but its dictionary are full-blown COM objects rather than native data types with their own dedicated syntax as they are in, say, Python.
No static class methods (there's a mechanism whereby you can create classes in a dll that expose all of their methods as global functions, which can be a good way of writing service components, but it's not ideal and of course you have to create the dll as a separate project...)
no runtime reflection (although there is a typelib component you can use to query interface definitions)
No support for generic programming, e.g. templates. This is something a statically typed language should have. If you've been programming VB for a while, you will have written quite a few "wrapper" classes for collection objects(unless you're into interfering with type libraries and other gnarly hack-arounds). Mind you, Java has (had) the same shortcoming.
OK, I'm not going to complain about not being able to overload operators, because I've never had cause to attempt that even in a language that supported it...
In spite of this, VB is OO enough to do OO programming in if you're patient enough, and it's undoubtedly one of the nicest ways to automate COM components.
Part of the reason for its poor reputation is that it's possible to build superficially powerful but fundamentally crippled and broken applications using the drag-and-drop interface provided by its IDE (data environments, data-bound controls, all that malarkey); all sorts of issues that the programmer ought to know and care about are occluded by this interface. More generally, a lot of the time you find yourself fighting the language to get at the messy details it has helpfully hidden away from you. The abstractions it puts in their place are useful up to a point, but break quickly when faced with exceptional requirements - which is pretty much all the time. Eventually you learn the workarounds, but it makes for a stilted and uneven coding style. My Python is a hundred times prettier than my VB can ever be.
VB6 is basically (hah!) dead now - the corpse just hasn't stopped twitching yet - and with luck the majority of VB coders will seize the opportunity to migrate to C# rather than Visual Fred...
I got the Redhat 7.3 Bible a while back and have referred to it a few times since when I've needed a quick way in to something I haven't done before, like configuring Apache or setting up MySQL.
It has a fairly good hit-rate in my experience of having the basic information I need at the point where I still need basic information.
I dare say most of it's also available on the web, but I prefer printed books for "single-digest" reading where you sit down and go through a few pages in sequence and then you're done; the web is better suited to hopping around rapidly in search of meaningful nuggets.
There's nothing stunningly good about the "Bible", but it fills a need that some of us have and doesn't tend to mislead or patronize the way many newbie texts do.
A lot of the explicit teaching I got about computers at school was about what a computer was in theory (at a very high level: what a floppy-disk was, what RAM was, not what a Turing machine was) and about how to use business software packages on it.
There was also some teaching which used computers as an accessory to run so-called "educational" software. Two words: Granny's Garden.
There was very little teaching which focussed on how to use a computer to help you do something you had thought of and wanted to do. Nobody wanted to place the power of computers directly in our hands, or thought that it might be educationally beneficial to do so.
This is an opportunity that I think has been largely missed in schools: the opportunity to empower students to build their own castles in the air, be it through programming or through building databases or through setting up webservers or whatever. The opportunity to try such things should not be restricted to those with the resources and motivation to go ahead and do them anyway; that's one of the reasons why we have schools in the first place.
That would be Mono that I'm currently using on my Linux desktop to learn C# with, right?
Hard to think of that many other vaporware projects that can actually compile themselves. Although I suppose if there were nothing but vapor to compile, a vapor compiler would do just as well as a real one...
Well, there kind of already are - there are python bindings (PyQT) for, oh, everything really, and doubtless perl and ruby bindings too. You need an interpreter for whichever of these languages you want to run, and you need the relevant packages, plus ideally some documentation and you're ready to go.
Having said that, I think ECMA-script is a good base for scripting functionality - I've thought for a while that it's just too good to spend its whole life servicing pop-ups and roll-overs, and it's good to see that SVG, for instance, will eventually be scriptable via ECMA-script and the DOM. I've used JScript, MS's ECMA-script implementation, with the Windows Scripting Control before now to script the behaviour of COM components, and found it greatly preferable to VBScript - much more dynamic, much better error handling (try...catch...finally, with objects throwable as exceptions), much better array-handling and so on. I haven't tried using it for a larger-scale project, and would probably resort to Python if I wanted to build a full-blown application, but for quick and dirty scripting it's a real gem.
Oh, I don't think it's unusual for people to act differently in different contexts, or to nominate certain parts of their lives as alternative realities where they can let their hair down, screw like minxes, vote republican or whatever. But porn isn't just about escaping from one's own personal norms or standards of behaviour; it's also about escaping from the reality of what other people are like. That's what's ethically deviant: the suspension of one's willingness to confront reality, in the first instance the reality of other people as people rather than as actors in one's own private libidinal theatre. I can see why one would want to escape - "sexual" and "frustration" used to be my middle names - but the bogosity and the narcissism of it disturb me.
Actually, I'm not sure that religious fundamentalism is always at the forefront of the minds of all religious fundamentalists. They compartmentalize, and so do consumers of pornography. The contradictions between the content of the fantasy and the context of the fantasist's daily life could conceivably become rather unbearable if they did not.
It may be that porn-users compartmentalize more consciously; for one thing, with the exception of a minority who are completely cool about displaying the stuff in the magazine rack in their living room, most porn users do literally have a draw they keep it in, or a bed they keep it under. But isn't it kind of weird to have a set of ethics, or a set of perceptions which form the basis for one's day-to-day ethics, which just get totally suspended (or inverted) during those special "time-out" periods when it's all botoxed butts and jism-loving sluts?
Porn has, and to some extent is, its own ideology; like other ideologies, it plugs a hole in the world with a fantasy version of the thing it's supposedly "about", in which everything works more or less exactly the way it doesn't in reality.
Religious fundamentalism is fantasy politics, in which real and intractable arguments about morality and justice get to be solved by looking them up in the user guide. Porno is fantasy gender politics, in which real and intractable difficulties in the matter of relations between the sexes get resolved...well, you know how.
This doesn't make porno evil as such; at least, not for the conventional reasons. But it does make it ethically deviant, insofar as ethical reasoning depends on a willingness to try to see the world as it is. Porno claims to present the naked truth: all the naughty secrets that the puritan sex cops want to keep secret and veiled. But porno is, like advertising, a kind of systematic untruth, perpetuated for cynical reasons, and whatever that is it ain't good.
I still have my doubts about the whole approach, but this is to some extent an ideological issue (HTTP/HTML for complex real-time client-server interaction just feels wrong to me) so basta for now.
The promise of multi-channelling GUI components is an alluring one, and Millstone is certainly impressive in its use of HTML/CSS/Javascript as a rendering target. Presumably having abstracted to that level you could retarget the renderer at an SVG or XSL:FO browser?
If a calculator app which has to make round trips to the server every time you press a button is meant to be a representative demo of this application, then my response has to be: no thanks.
I tried a couple of other demos on the site, like the treeview control which seemed to need to go off to the server every time you expanded a node. Responsiveness is a key issue in usability: anything slower than PDQ (Pretty Damn Quick) ramps up the end-user's frustration levels and makes the interface feel clunky and hostile rather than intuitive and friendly. All of the stuff on their site looked great, but it handled like a pig in treacle.
Maybe they're suffering a slashdotting right now, but that actually doesn't excuse them: if the responsivity of individual elements of your user interface depends on the responsivity of your servers, then the usability of your site is - to my mind - unacceptably fragile.
Is it possible that the developers used this primarily on a small LAN or even spent their time pointing a browser at localhost, and never considered how it would feel to be using it over the web? Surely they must have load-tested it? Surely they must have thought, "hmmm, so that's why client-side scripting was invented"?
when I was a child; that is, medication that took nothing away from me, and that put the dampers on some of the emotional and behavioral extremes my brain liked to lurch off into without provocation.
From my own experience, I can say flat out that anybody who attributes 100 percent of every child's emotional and behavioural difficulties to a mismatch between the child's personality and her environment - be it the school or the wider society - are completely ignorant of an important perspective. That perspective is the perspective of the six- or seven- year old child who is smart enough to know the difference between her normal responses to things (which certainly might include getting riled or feeling bored if school was dumb or the teacher went too slow or the other kids were being conformist little shites as usual), and her "off-the-scale" responses. The latter are the ones which which come out of nowhere, take your mind and body over, and leave you scared and out-of-control in the middle of a soup of disordered brain chemistry.
Whether disorders of this kind are best managed through chemical or therapeutic interventions is a question I'll leave to the experts. I think the answer is possibly both: it would be good to help the suffering child develop some personal resources to help her deal with her condition and its consequences. But I would have taken the drugs first, and the counselling second; most of the counselling I got, such as it was, was worse than useless to me at the time (it mostly amounted to "try...er, somehow...not to do that" or, worse, "think about how your behaviour affects other people" - not bad ethical advice, but practically useless if you don't know how to get a grip on the behaviour in the first place).
There is such a thing as being in one's right mind, and such a thing as being out of it, and all the Meyers-Briggs stuff is fine for analysing the relationships and interactions of a group of diverse people who are basically in their right minds but it doesn't address the first-person experience of children who know what normal functioning is for them and at the same time know that the way they function a lot of the time isn't like that.
The other thing I would say is that it can feel for the child as if she will never escape from her condition; and it can be a great comfort to know that for many people the passage into adulthood is a passage into relative stability and calm. That isn't everybody's story, but it is mine: with the exception of the odd - manageable - brain-blitz of manic frustration, I can usually get from one end of a working week to another without being chucked without warning into the aforementioned soup of crazy chemicals. You don't get, and should be helped to learn not to want, perfect control over your moods and emotions, but you don't have to spend your whole life out-of-control. Things get better...
You would have to parse the source files to get reflection. Wouldn't you?
A code-generation utility to write a FOO-serializing function for a struct FOO (given the source files where FOO and all sub-structs referenced in FOO were declared) might be worth having - a little bit like the proxy-generating utility I gather.net has for building classes out of WSDL files.
I wonder whether getting browser support for XLINK is the way forward here? Certainly writing script to manipulate the DOM to get your links is a clumsy approach; by the time you've done that, you may as well have written some XSLT and had done with it.
One typical use of XSLT is as a translator between marked-up data (XML) exported from somewhere and a marked-up hypertext document (HTML) presenting that data or a subset of it for the web.
Neither the XML nor the HTML will necessarily contain any formatting information beyond HTML's fairly basic set of tags, so you might still need CSS to finesse the layout and appearance.
An alternative is to translate from XML via XSLT into XSL:FO, and from there into PDF (using Apache's FOP). This is a still-maturing technology, however, and it's a bit verbose for my liking - but you can say that about most of the X* family...
or some variant thereof (e.g. <xsl:template select="foo|bar|baz"> for just the tags you want to translate directly to divs) might save you some time...
There are far worse poets about; even if he's sometimes a bit boring, at least he's not a belligerent bore.
I don't follow the advice he's followed, about writing every day so's to get the practice in. Like most of the poets I admire (but like them only in that way and to that extent), I write infrequently and almost grudgingly, when I become aware of something that wants to be said. And I don't workshop poems, because the thing that wants to be said doesn't give a stuff if it gets critiqued or not and the thing that can be critiqued isn't the thing that makes a poem worth writing, or remembering.
I studied poetry academically before I worked in programming (I started programming for fun around the same time I started reading poetry for fun - at about age 8). The practice of writing code and the practice of writing poetry are very similar in my mind; I don't mean that they're objectively similar, although there are objective similarities, but that subjectively the way it feels to be doing one is very like the way it feels to be doing the other.
That's not to say I don't suck at both, of course.
Anyway, here's a poem I wrote as part of a sequence called "Domain Names", which is a response to a question asked by the British poet Geoffrey Hill: What does the computer know of original sin?
***
Corrupted bug report received in error:
could not resolve address. This traces back
unendingly, is lost at last amid
a blitz of registers - beyond my skill
if not all skill. Go high-level to bare metal
in winding descent; resist light, heat and shards;
get zapped in nether regions. Every black
box has another black box inside it somewhere.
The shortest path is a relaxed approach
to the infinite: so route around bad sectors,
solicit patches, number each release
in cautious increments. Surely that kingdom
looms aloft where art is catalogued,
all things considered harmless. There the blinding
magii parley, indolent in their robes;
their elan earthed, exposed as commonplace.
Re:Copyright and recent translations
on
Free Books on CD?
·
· Score: 2, Interesting
The older translations may have some literary merit or historical interest in their own right (as may the newer ones, but it is easier to contextualise from a distance). Offering multiple translations from different periods might be a good idea too - especially if they can then be cross-referenced or presented as parallel texts. This might encourage the art of contextual reading, which a study of Great Books presented as isolated cultural fetish-items might tend to discourage...
Refactoring is also not just something you do (or not) after you've finished (i.e. shipped / deployed). It's something you do as you go along, during the process of building the thing. If you need to refactor substantially after you've finished, then it may be that you didn't refactor enough as you went along.
Refactoring is a fancy word for what many good programmers who are not geniuses do already, a few good programmers who are geniuses don't need to do, and a lot of bad programmers who may or may not be geniuses don't do enough. Speaking as an OK programmer who is not a genius, I feel I need all the help I can get, be it from test-infection or from taking a considered approach to cleaning up after myself.
Periodic refactoring helps me keep abreast of shifting requirements; it isn't about prettying-up something that's about to become obsolete anyhow, but about keeping a check on creeping duplication and tacit dependencies so that the code can absorb new requirements instead of being broken by them.
Nobody should be trying to write XML documents if they don't know why they're doing it. As you seem to be suggesting, for many purposes it's a lot more trouble than it's worth. I would suggest that if you think you want a WYSIWYG tool, then you probably don't really know why you want to use an XML format explicitly designed to separate content from presentation.
Having said that, I can't see any harm in automating conversion from Word to DocBook; one could fairly easily write VBA code to do it. The original author would probably have to adhere to some conventions, effectively mapping presentation styles to structure, in order for it to work at all well. I don't have any insight into the kind of mind that would automatically prefer that kind of arrangement to using angle-brackets and explicit structural mark-up, but I suppose I have to acknowledge that some people's minds do work that way.
"Elitism" is a cant word used by chippy so-and-sos to belittle those of us who've put the hours in trying to learn something they never attached any real value to in the first place, that they now find gives us some material advantage they don't like us having. Stuff 'em. All it takes is a little effort, and a little humility (I mean the kind needed to say to oneself, "the fact that I don't understand this indicates that I myself have something to learn"; after that, of course, it's hubris all the way). To my mind, it's the people who chunter on about the supreme importance of the "real world" - meaning that tiny subset of the real world that they themselves inhabit - that are the real self-deluding snobs.
I would consider that it is not beyond the wit of even "the 'average person'" to understand the concept of separating content from presentation, and that understanding this is a reasonable prerequisite for using a format like DocBook - otherwise what exactly do you think you're using it for? I can't see how recognising this prerequisite is "elitist". There are some very non-l33t people out there who have proved quite capable of getting their heads round it, after all.
Using MS Word has its prerequisites, too; certainly using it effectively does. I once spent a couple of fairly tedious evenings tidying up a friend's Word document - an MA dissertation - where she had used spaces for indentation throughout. Understanding how to define and use custom styles for consistent presentation, or even how to place tabstops to line things up with each other, is not something that everyone in end-user land is born with.
Piracy is both a social and a technical problem. It is tractable, up to a point, by both social and technical means, but ultimately intractable: in other words, neither social engineering nor software engineering will ever make it go away completely.
Locks on doors are a technical measure to reduce the attractiveness of the contents of your home to people who might otherwise be tempted to steal them. The problem of rampant housebreaking and theft in the area where you live may also have social factors, and may prove susceptible to a degree of social management, but that doesn't mean that the police are wrong to distribute leaflets advising tenants to tighten up their household security.
Media piracy is rampant at the moment because it's easy, and because no-one very much feels bad about doing it. If it were significantly harder, then a significant number of people would stop doing it, irrespective of their moral sentiments. If the moral sentiments of would-be pirates were engaged on behalf of the grievous sufferings of the music industry, then perhaps even fewer would succumb to temptation...
Same here - I started out temping, stuffing envelopes in the mail room at the admin HQ of a small UK bank. Now I code for them, build databases, automate back-end processing, you name it. I don't get paid a heck of a lot for doing it (about one and a half times what I was paid for stuffing envelopes, truth be told), but it's a bona fide tech job and a leg up to the next thing, whatever that may be.
A lot of the time you just have to sneak in sideways: get a foot in the door, and then fight your corner for a few months (obviously this requires some peculiar contortions...)
VB is not all that basic. It has some (plenty) annoying omissions:
In spite of this, VB is OO enough to do OO programming in if you're patient enough, and it's undoubtedly one of the nicest ways to automate COM components.
Part of the reason for its poor reputation is that it's possible to build superficially powerful but fundamentally crippled and broken applications using the drag-and-drop interface provided by its IDE (data environments, data-bound controls, all that malarkey); all sorts of issues that the programmer ought to know and care about are occluded by this interface. More generally, a lot of the time you find yourself fighting the language to get at the messy details it has helpfully hidden away from you. The abstractions it puts in their place are useful up to a point, but break quickly when faced with exceptional requirements - which is pretty much all the time. Eventually you learn the workarounds, but it makes for a stilted and uneven coding style. My Python is a hundred times prettier than my VB can ever be.
VB6 is basically (hah!) dead now - the corpse just hasn't stopped twitching yet - and with luck the majority of VB coders will seize the opportunity to migrate to C# rather than Visual Fred...
I got the Redhat 7.3 Bible a while back and have referred to it a few times since when I've needed a quick way in to something I haven't done before, like configuring Apache or setting up MySQL.
It has a fairly good hit-rate in my experience of having the basic information I need at the point where I still need basic information.
I dare say most of it's also available on the web, but I prefer printed books for "single-digest" reading where you sit down and go through a few pages in sequence and then you're done; the web is better suited to hopping around rapidly in search of meaningful nuggets.
There's nothing stunningly good about the "Bible", but it fills a need that some of us have and doesn't tend to mislead or patronize the way many newbie texts do.
A lot of the explicit teaching I got about computers at school was about what a computer was in theory (at a very high level: what a floppy-disk was, what RAM was, not what a Turing machine was) and about how to use business software packages on it.
There was also some teaching which used computers as an accessory to run so-called "educational" software. Two words: Granny's Garden.
There was very little teaching which focussed on how to use a computer to help you do something you had thought of and wanted to do. Nobody wanted to place the power of computers directly in our hands, or thought that it might be educationally beneficial to do so.
This is an opportunity that I think has been largely missed in schools: the opportunity to empower students to build their own castles in the air, be it through programming or through building databases or through setting up webservers or whatever. The opportunity to try such things should not be restricted to those with the resources and motivation to go ahead and do them anyway; that's one of the reasons why we have schools in the first place.
Why this
function setopt(form,opt,i) {
eval('var opt = document.' + form + '.' + opt + '[' + i + '];');
opt.click();
}
and not this
function setopt(form, opt, i) {
document.forms[form].elements[opt][i].click();
}
?
That would be Mono that I'm currently using on my Linux desktop to learn C# with, right?
Hard to think of that many other vaporware projects that can actually compile themselves. Although I suppose if there were nothing but vapor to compile, a vapor compiler would do just as well as a real one...
Well, there kind of already are - there are python bindings (PyQT) for, oh, everything really, and doubtless perl and ruby bindings too. You need an interpreter for whichever of these languages you want to run, and you need the relevant packages, plus ideally some documentation and you're ready to go.
Having said that, I think ECMA-script is a good base for scripting functionality - I've thought for a while that it's just too good to spend its whole life servicing pop-ups and roll-overs, and it's good to see that SVG, for instance, will eventually be scriptable via ECMA-script and the DOM. I've used JScript, MS's ECMA-script implementation, with the Windows Scripting Control before now to script the behaviour of COM components, and found it greatly preferable to VBScript - much more dynamic, much better error handling (try...catch...finally, with objects throwable as exceptions), much better array-handling and so on. I haven't tried using it for a larger-scale project, and would probably resort to Python if I wanted to build a full-blown application, but for quick and dirty scripting it's a real gem.
Oh, I don't think it's unusual for people to act differently in different contexts, or to nominate certain parts of their lives as alternative realities where they can let their hair down, screw like minxes, vote republican or whatever. But porn isn't just about escaping from one's own personal norms or standards of behaviour; it's also about escaping from the reality of what other people are like. That's what's ethically deviant: the suspension of one's willingness to confront reality, in the first instance the reality of other people as people rather than as actors in one's own private libidinal theatre. I can see why one would want to escape - "sexual" and "frustration" used to be my middle names - but the bogosity and the narcissism of it disturb me.
Actually, I'm not sure that religious fundamentalism is always at the forefront of the minds of all religious fundamentalists. They compartmentalize, and so do consumers of pornography. The contradictions between the content of the fantasy and the context of the fantasist's daily life could conceivably become rather unbearable if they did not.
It may be that porn-users compartmentalize more consciously; for one thing, with the exception of a minority who are completely cool about displaying the stuff in the magazine rack in their living room, most porn users do literally have a draw they keep it in, or a bed they keep it under. But isn't it kind of weird to have a set of ethics, or a set of perceptions which form the basis for one's day-to-day ethics, which just get totally suspended (or inverted) during those special "time-out" periods when it's all botoxed butts and jism-loving sluts?
Porn has, and to some extent is, its own ideology; like other ideologies, it plugs a hole in the world with a fantasy version of the thing it's supposedly "about", in which everything works more or less exactly the way it doesn't in reality.
Religious fundamentalism is fantasy politics, in which real and intractable arguments about morality and justice get to be solved by looking them up in the user guide. Porno is fantasy gender politics, in which real and intractable difficulties in the matter of relations between the sexes get resolved...well, you know how.
This doesn't make porno evil as such; at least, not for the conventional reasons. But it does make it ethically deviant, insofar as ethical reasoning depends on a willingness to try to see the world as it is. Porno claims to present the naked truth: all the naughty secrets that the puritan sex cops want to keep secret and veiled. But porno is, like advertising, a kind of systematic untruth, perpetuated for cynical reasons, and whatever that is it ain't good.
I still have my doubts about the whole approach, but this is to some extent an ideological issue (HTTP/HTML for complex real-time client-server interaction just feels wrong to me) so basta for now.
The promise of multi-channelling GUI components is an alluring one, and Millstone is certainly impressive in its use of HTML/CSS/Javascript as a rendering target. Presumably having abstracted to that level you could retarget the renderer at an SVG or XSL:FO browser?
If a calculator app which has to make round trips to the server every time you press a button is meant to be a representative demo of this application, then my response has to be: no thanks.
I tried a couple of other demos on the site, like the treeview control which seemed to need to go off to the server every time you expanded a node. Responsiveness is a key issue in usability: anything slower than PDQ (Pretty Damn Quick) ramps up the end-user's frustration levels and makes the interface feel clunky and hostile rather than intuitive and friendly. All of the stuff on their site looked great, but it handled like a pig in treacle.
Maybe they're suffering a slashdotting right now, but that actually doesn't excuse them: if the responsivity of individual elements of your user interface depends on the responsivity of your servers, then the usability of your site is - to my mind - unacceptably fragile.
Is it possible that the developers used this primarily on a small LAN or even spent their time pointing a browser at localhost, and never considered how it would feel to be using it over the web? Surely they must have load-tested it? Surely they must have thought, "hmmm, so that's why client-side scripting was invented"?
when I was a child; that is, medication that took nothing away from me, and that put the dampers on some of the emotional and behavioral extremes my brain liked to lurch off into without provocation.
From my own experience, I can say flat out that anybody who attributes 100 percent of every child's emotional and behavioural difficulties to a mismatch between the child's personality and her environment - be it the school or the wider society - are completely ignorant of an important perspective. That perspective is the perspective of the six- or seven- year old child who is smart enough to know the difference between her normal responses to things (which certainly might include getting riled or feeling bored if school was dumb or the teacher went too slow or the other kids were being conformist little shites as usual), and her "off-the-scale" responses. The latter are the ones which which come out of nowhere, take your mind and body over, and leave you scared and out-of-control in the middle of a soup of disordered brain chemistry.
Whether disorders of this kind are best managed through chemical or therapeutic interventions is a question I'll leave to the experts. I think the answer is possibly both: it would be good to help the suffering child develop some personal resources to help her deal with her condition and its consequences. But I would have taken the drugs first, and the counselling second; most of the counselling I got, such as it was, was worse than useless to me at the time (it mostly amounted to "try...er, somehow...not to do that" or, worse, "think about how your behaviour affects other people" - not bad ethical advice, but practically useless if you don't know how to get a grip on the behaviour in the first place).
There is such a thing as being in one's right mind, and such a thing as being out of it, and all the Meyers-Briggs stuff is fine for analysing the relationships and interactions of a group of diverse people who are basically in their right minds but it doesn't address the first-person experience of children who know what normal functioning is for them and at the same time know that the way they function a lot of the time isn't like that.
The other thing I would say is that it can feel for the child as if she will never escape from her condition; and it can be a great comfort to know that for many people the passage into adulthood is a passage into relative stability and calm. That isn't everybody's story, but it is mine: with the exception of the odd - manageable - brain-blitz of manic frustration, I can usually get from one end of a working week to another without being chucked without warning into the aforementioned soup of crazy chemicals. You don't get, and should be helped to learn not to want, perfect control over your moods and emotions, but you don't have to spend your whole life out-of-control. Things get better...
You would have to parse the source files to get reflection. Wouldn't you?
A code-generation utility to write a FOO-serializing function for a struct FOO (given the source files where FOO and all sub-structs referenced in FOO were declared) might be worth having - a little bit like the proxy-generating utility I gather .net has for building classes out of WSDL files.
I wonder whether getting browser support for XLINK is the way forward here? Certainly writing script to manipulate the DOM to get your links is a clumsy approach; by the time you've done that, you may as well have written some XSLT and had done with it.
One typical use of XSLT is as a translator between marked-up data (XML) exported from somewhere and a marked-up hypertext document (HTML) presenting that data or a subset of it for the web.
Neither the XML nor the HTML will necessarily contain any formatting information beyond HTML's fairly basic set of tags, so you might still need CSS to finesse the layout and appearance.
An alternative is to translate from XML via XSLT into XSL:FO, and from there into PDF (using Apache's FOP). This is a still-maturing technology, however, and it's a bit verbose for my liking - but you can say that about most of the X* family...
<xsl:template select="*">
<div class="{local-name()}">
<xsl:apply-templates/>
</div>
</xsl:template>
or some variant thereof (e.g. <xsl:template select="foo|bar|baz"> for just the tags you want to translate directly to divs) might save you some time...
There are far worse poets about; even if he's sometimes a bit boring, at least he's not a belligerent bore.
I don't follow the advice he's followed, about writing every day so's to get the practice in. Like most of the poets I admire (but like them only in that way and to that extent), I write infrequently and almost grudgingly, when I become aware of something that wants to be said. And I don't workshop poems, because the thing that wants to be said doesn't give a stuff if it gets critiqued or not and the thing that can be critiqued isn't the thing that makes a poem worth writing, or remembering.
I studied poetry academically before I worked in programming (I started programming for fun around the same time I started reading poetry for fun - at about age 8). The practice of writing code and the practice of writing poetry are very similar in my mind; I don't mean that they're objectively similar, although there are objective similarities, but that subjectively the way it feels to be doing one is very like the way it feels to be doing the other.
That's not to say I don't suck at both, of course.
Anyway, here's a poem I wrote as part of a sequence called "Domain Names", which is a response to a question asked by the British poet Geoffrey Hill: What does the computer know of original sin?
***
Corrupted bug report received in error:
could not resolve address. This traces back
unendingly, is lost at last amid
a blitz of registers - beyond my skill
if not all skill. Go high-level to bare metal
in winding descent; resist light, heat and shards;
get zapped in nether regions. Every black
box has another black box inside it somewhere.
The shortest path is a relaxed approach
to the infinite: so route around bad sectors,
solicit patches, number each release
in cautious increments. Surely that kingdom
looms aloft where art is catalogued,
all things considered harmless. There the blinding
magii parley, indolent in their robes;
their elan earthed, exposed as commonplace.
The older translations may have some literary merit or historical interest in their own right (as may the newer ones, but it is easier to contextualise from a distance). Offering multiple translations from different periods might be a good idea too - especially if they can then be cross-referenced or presented as parallel texts. This might encourage the art of contextual reading, which a study of Great Books presented as isolated cultural fetish-items might tend to discourage...
...play that long, looming note and let it float!
Refactoring is also not just something you do (or not) after you've finished (i.e. shipped / deployed). It's something you do as you go along, during the process of building the thing. If you need to refactor substantially after you've finished, then it may be that you didn't refactor enough as you went along.
Refactoring is a fancy word for what many good programmers who are not geniuses do already, a few good programmers who are geniuses don't need to do, and a lot of bad programmers who may or may not be geniuses don't do enough. Speaking as an OK programmer who is not a genius, I feel I need all the help I can get, be it from test-infection or from taking a considered approach to cleaning up after myself.
Periodic refactoring helps me keep abreast of shifting requirements; it isn't about prettying-up something that's about to become obsolete anyhow, but about keeping a check on creeping duplication and tacit dependencies so that the code can absorb new requirements instead of being broken by them.
Nobody should be trying to write XML documents if they don't know why they're doing it. As you seem to be suggesting, for many purposes it's a lot more trouble than it's worth. I would suggest that if you think you want a WYSIWYG tool, then you probably don't really know why you want to use an XML format explicitly designed to separate content from presentation.
Having said that, I can't see any harm in automating conversion from Word to DocBook; one could fairly easily write VBA code to do it. The original author would probably have to adhere to some conventions, effectively mapping presentation styles to structure, in order for it to work at all well. I don't have any insight into the kind of mind that would automatically prefer that kind of arrangement to using angle-brackets and explicit structural mark-up, but I suppose I have to acknowledge that some people's minds do work that way.
"Elitism" is a cant word used by chippy so-and-sos to belittle those of us who've put the hours in trying to learn something they never attached any real value to in the first place, that they now find gives us some material advantage they don't like us having. Stuff 'em. All it takes is a little effort, and a little humility (I mean the kind needed to say to oneself, "the fact that I don't understand this indicates that I myself have something to learn"; after that, of course, it's hubris all the way). To my mind, it's the people who chunter on about the supreme importance of the "real world" - meaning that tiny subset of the real world that they themselves inhabit - that are the real self-deluding snobs.
I would consider that it is not beyond the wit of even "the 'average person'" to understand the concept of separating content from presentation, and that understanding this is a reasonable prerequisite for using a format like DocBook - otherwise what exactly do you think you're using it for? I can't see how recognising this prerequisite is "elitist". There are some very non-l33t people out there who have proved quite capable of getting their heads round it, after all.
Using MS Word has its prerequisites, too; certainly using it effectively does. I once spent a couple of fairly tedious evenings tidying up a friend's Word document - an MA dissertation - where she had used spaces for indentation throughout. Understanding how to define and use custom styles for consistent presentation, or even how to place tabstops to line things up with each other, is not something that everyone in end-user land is born with.
Piracy is both a social and a technical problem. It is tractable, up to a point, by both social and technical means, but ultimately intractable: in other words, neither social engineering nor software engineering will ever make it go away completely.
Locks on doors are a technical measure to reduce the attractiveness of the contents of your home to people who might otherwise be tempted to steal them. The problem of rampant housebreaking and theft in the area where you live may also have social factors, and may prove susceptible to a degree of social management, but that doesn't mean that the police are wrong to distribute leaflets advising tenants to tighten up their household security.
Media piracy is rampant at the moment because it's easy, and because no-one very much feels bad about doing it. If it were significantly harder, then a significant number of people would stop doing it, irrespective of their moral sentiments. If the moral sentiments of would-be pirates were engaged on behalf of the grievous sufferings of the music industry, then perhaps even fewer would succumb to temptation...
Same here - I started out temping, stuffing envelopes in the mail room at the admin HQ of a small UK bank. Now I code for them, build databases, automate back-end processing, you name it. I don't get paid a heck of a lot for doing it (about one and a half times what I was paid for stuffing envelopes, truth be told), but it's a bona fide tech job and a leg up to the next thing, whatever that may be.
A lot of the time you just have to sneak in sideways: get a foot in the door, and then fight your corner for a few months (obviously this requires some peculiar contortions...)