Category: Programming

  • Google Groups out, Stack Exchange In

    Recently I had a technical problem I was dreading having to find the answer to. It involved installing and configuring Java; that’s one of those topics where answers and resources seemed to be plentiful on google groups. But recently, google groups has been spammed to death, and my best bet was to find a forum or a mailing list.

    This may sound as though I’m whining, but signing up for forums and mailing lists can be tedious and time-consuming. Then, there’s the problem of finding the right forum and/or mailing list. My question is too idiotic to ask on a java programmer’s mailing list, and forums tend to be for hardware/software/OS.

    That is why it is with great relief that I have discovered several communities which let you post questions and search older answers.  On all of them you can browse by tags. They use the digg frontend to let you find interesting/important questions.

    • Stack Overflow lets you ask programming questions and hard setup questions.
    • Server Fault lets you ask system administration questions.
    • SuperUser lets you ask questions specific to an OS or piece of software. 
    • Doctype lets you ask web design and programming questions.

    I really like the interface, and it seems that geeks have already gravitated to these forums. Also, there is practically no spam and my question got a reply fairly quickly.

    Another thing. I confess that I enjoy browsing through the question lists. You can read a tutorial or article to learn something, but that’s only as good as how it was originally written. But when you read through questions dealing with everyday configuration and programming issues, you leave with a better sense of what is hard and easy to get done and which methods are the most powerful.

  • Searching & searching and finally finding it!

    Wow, I bookmarked something in delicious a few months ago and only today got around to wanting to look at it again. It was an important page for me although I had no plans to use it immediately.   So I bookmarked it on delicious and thought, gee, it’s always there when I will need it.

    Alas! Apparently I didn’t bookmark it on delicious; I could have sworn that I did. But how did I find this site in the first place? I remember it was a lone individual’s site; it was somebody who knew his stuff, but not a name I would recognize.

    I tried googling and looking through reference links, and then by some great miracle I found it again! Thank goodness. It probably is of no use to most readers, but for the sake of posterity, here it is: CSS Tests and Experiments (and specifically this thumbnail image gallery template). Bruno Fassino, you’re a genius!

    As a person who is not a web designer, I am willing to learn some basic css tricks, but most of the CSS resource guides are focused on wild design concepts of limited usefulness. Also, these so-called tutorials often focus on really elaborate site layouts without first explaining basic concepts.

    Even good explainers of CSS are not right for me. Eric Meyer wrote a first class book on web-design, and it is useful for teaching concepts, but I find that my needs are more basic than that. I want some simple designs to play around with (but a little more complicated than the W3 CSS tutorials).

    With the Internet, there is another problem. Browsers don’t implement css evenly, and often when one browser falls short, the designer puts hacks to make it work in the other browsers. These browser   hacks are useful at the time, but a year later, the hack is no longer necessary and you no longer need it (it only clutters the web page).

    Another problem is that as browsers support later versions of CSS, there are often more efficient ways to accomplish things. I’ll confess: I don’t have the time to keep abreast of the latest tricks.  I just relearn CSS every two years or so for a particular project and forget it again  (starting with my first experiment here. Believe me, the popup windows were pretty amazing in April 2002).  I actually enjoy fiddling around with CSS once in a while, but it’s agonizing having to relearn everything from scratch (and this time I have Safari and Chome that I need to test—ugh!). The good news is that my Luddite friend (who was on IE 5.5 until about 2003)  has now upgraded to IE 6 (although he’s still on Windows 98).  He’s somebody I can ask to test things in a pinch. Amazingly, as of December 2009, IE 6 still accounts for 10% of all Internet traffic.

    What I like about  Fassino’s website is that we see the results of various experiments. Feel free to suggest your own favorites.

    Here are the CSS resources I refer to most often.

  • Client-Side pages in XSLT: Promising?

    I just learned something amazing: XSLT transformation browser side (meaning: giving the user an XML document and an XSL document and letting the browser process it) is lightning fast — far faster than server-side processing. So why is no one using it?

    Kamal Gill wrote more about this (especially with respect to plone). I think I heard this once before, but it never really sank in.

    I’m definitely doing more research into this. I have to wonder what he means by XML. (I assume we mean more than XHTML). Also, I’m wondering if there are caching/memory issues on the client side as well. I will report back later.

  • Designing for Children: The Constructivist Approach

    In response to the announcement that SimCity will be ported to the One Laptop per Child platform, Alan Kay writes a long piece wondering whether Sim City is truly an example of constructivist learning. He talks about designing software environments for children and at the end concludes that Sim City might not be the best platform for that (he prefers something called etoys):

    If “children first!” is the rallying cry, then it makes sense to try to invent computer environments that use the very best ideas (and these are very hard to come up with). This is why the various groups that got interested in this romantic quest via early contact with Seymour have always been colleagues and never rivals. The hard to come by ideas for projects, representations, user interfaces, experiments, etc., have been freely traded back and forth. The notions of “thresholds below which is not worth going” have been jointly refined, etc. One of the parasitic difficulties is that computer environments, once made (with lots of effort and dedication) tend to form tribal bonds that are rather religious in nature. The amount of effort required plus the attendant religion makes it extremely difficult to take new insights and ideas and make brand new better environments for the children. The strong tendency is to use and reuse and incrementally expand the old environments.

    So, for young and youngish children (say from 4 to 12) we still have a whole world of design problems. For one thing, this is not an homogenous group. Cognitively and kinesthetically it is at least two groups (and three groupings is an even better fit). So, we really think of three specially designed and constructed environments here, where each should have graceful ramps into the next one.

    The current thresholds exclude many designs, but more than one kind of design could serve. If several designs could be found that serve, then we have a chance to see if the thresholds can be raised. This is why we encourage others to try their own comprehensive environments for children. Most of the historical progress in this area has come from a number of groups using each other’s ideas to make better attempts (this is a lot like the way any science is supposed to work). One of the difficulties today is that many of the attempts over the last 15 or so years have been done with too low a sense of threshold and thus start to clog and confuse the real issues.

    I think one of the trickiest issues in this kind of design is an analogy to the learning of science itself, and that is “how much should the learners/users have to do by themselves vs. how much should the curriculum/system do for them?” Most computer users have been mostly exposed to “productivity tools” in which as many things as possible have been done for them. The kinds of educational environments we are talking about here are at their best when the learner does the important parts by themselves, and any black or translucent boxes serve only on the side and not at the center of the learning. What is the center and what is the side will shift as the learning progresses, and this has to be accommodated.

    OTOH, the extreme build it from scratch approach is not the best way for most minds, especially young ones. The best way seems to be to pick the areas that need to be from scratch and do the best job possible to make all difficulties be important ones whose overcoming is the whole point of the educational process (this is in direct analogy to how sports and music are taught — the desire is to facilitate a real change for the better, and this can be honestly difficult for the learner).

    Specifically about Simcity he says:

    SimCity is similar but more pernicious. It is a black box of “soft somewhat arbitrary knowledge” that the children can’t look at, question or change. For example, SC gets the players to discover that the way to counter rising crime is to put in more police stations. Most anthropologists, sociologists, psychologists, and economists would disagree violently. Alternate assumptions can’t be tried, etc.

    Both of these packages have won many “educational awards” from the pop culture, but in many ways they are anti-real-education because they miss what modern knowledge and thinking and epistemology are all about. This is why being “above threshold” and really understanding what this means is the deep key to making modern curricula and computer environments that will really help children lift themselves.

    Two nuggests from the slashdot discussion about whether Simcity is a truly educational tool. First, a comic dialogue exchange:

    Is this to give the kids a virtual sense of what it’s like to live in a 1st world country? “look at all of the nice luxuries you will never experience!” how about the irony of building a nuclear powerplant on a computer you have to handcrank?

    Reply: This comment is funny, but it relies on a common misperception that the poor kids for whom the OLPC was created have no idea what modern urban life is like. Most of them live in or in the shadow of large modern cities, Johannisberg, Kolkata, Rio de Janeiro, Jakarta, Manila, and Mexico City, just to name a few. They have plenty of opportunities to see modern life, they just don’t have much opportunity to participate.

    Let me help you out with a simple analogy. You read slashdot, right? So, you have plenty of opportunities to see beautiful women, but all you get to do is watch, from a distance. That’s why you bought that stick of Axe Deoderant.

  • Geekend coming Up!

    Since I’m officially looking for work, it may seem a little curious to redouble my efforts to master more technical skills. But after reading this Oreilly article on an xml editor for documentation, I’m tempted to download XMLMind this weekend. Partially to learn the tool, but partially to produce some DITA and Docbook documents quickly as a way to familiarize myself with the xml dialects. What’s cool about XMLMind is that it has some docbook and dita toolbar customizations. It also has a basic wysiwig/word processor view capability which lets you view basic structure while editing. Up until now, I’ve been using Oxygen XML editor. It’s great for doing xslt and coding, less helpful for producing structured documents that are actually meant to be read.

    The article by James Eliot and Marc Loy covers not only Docbook and the editor itself, but also certain aspects of the xml workflow itself. (BTW, a few weeks ago I linked to a nice book by John Shipman about using xslt). XMLMind XML Editor (or XXE for short) also includes a nice tutorial/manual.

    Two other things related to information design and technical writing. First, I’m reading a great book, Information Architecture for the World Wide Web (3rd edition). I’ve read the previous edition (1st?), but this one contains a lot of new information.

    Second, the plone group in a documentation group reorganized their excellent documentation. Here is the result. Here is a piece by about the card sorting method used to do this reorganization.

    Reality Dose (written the following Monday): Boy, I accomplished next to nothing last weekend!