16 December 2014
09 December 2014
29 November 2014
Promoting diversity isn’t, as many techies think, pure do-gooderism. It’s genuinely good for business, since a large body of evidence suggests that making organizations more diverse can also make them perform better.... A worldwide study, published in May, of more than four thousand R. & D. teams found that gender-diverse teams were considerably better at driving “radical innovation.”
07 November 2014
The Alto was arguably the first modern general-purpose computer — a big screen, modern software, and you used a mouse to point. It was never generally available but it was the Velvet Underground of computers, in that everyone who saw it went on to make their own computer industry.ᔥ things magazine
05 November 2014
It's important not to underestimate the power of simply saying... "You did well on this project."
27 October 2014
24 October 2014
In the 1990s, researcher Jane Margolis interviewed hundreds of computer science students at Carnegie Mellon University, which had one of the top programs in the country. She found that families were much more likely to buy computers for boys than for girls — even when their girls were really interested in computers.
This was a big deal when those kids got to college. As personal computers became more common, computer science professors increasingly assumed that their students had grown up playing with computers at home.
20 October 2014
13 October 2014
19 September 2014
In sum, COBOL won't get you a date. And it probably won't get you a job, either.He then circles back and grudgingly admits that the language still has a role to play in the marketplace, but without using the N-word. In other words, what he wants to say is, "my trendy language with arcane syntax is a niche language; your established language with arcane syntax is as useful as learning Attic Greek."
13 September 2014
08 September 2014
05 September 2014
Through social influence and legacy code, our oldest and most popular computer languages have powerful inertia. How could Go surpass C? If the right people and companies say it ought to.
15 August 2014
The book doesn't go in for the bleeding-edge wisdom of Silicon Valley's approach to software development—the whole "move fast and break things" scheme. On the other hand, there is measured approval for some of the innovations promoted by the Agile movement. #31: Rhythm, for instance, is a good explanation of why Scrum methodologies are successful, and #75: Fridge Door introduces information radiators. Rather, the Group's audience skews more toward teams and their managers in larger, more risk-averse organizations: governments, enterprise IT shops. These are the outfits that need to be told that project documents that no one reads (#61: Orphaned Deliverables) are valueless.
There are surprises, even for a reader like me, someone who has seen project wins and busts, employing nearly everything in the palette of project management techniques, from two-week sprints to WBS-driven slogs. For instance, #58: Cool Hand Luke is frank about the positive role that conflict has to play in organizations, which the authors more than once call "messy" by nature. And #57: "There's no crying in baseball!" is a little gem, neither pattern nor anti-pattern, that reminds us that strong negative emotions are a side-effect of that "passion for your work" that my boss keeps racketing on about:
In deciding whether or not to tolerate unruly emotions, it's worth remembering that feelings intrude on work only to the extent that people care about their work. The easy way to make the feelings go away is to hire people who don't give a damn.
The book is chocked with memorable coined phrases: "reality deodorant" to cover up the bad smells of a project in trouble (p. 12), "schedule chicken" (p. 129). Do I see some of these patterns at my own job? Oh, yes, I have attended my share of #4: Happy Clappy Meetings, and I have seen #16: Dashboards used effectively, but fortunately it's been a while since I encountered #19: Film Critics.
Each essay is short and to the point, as #62: Hidden Beauty advises on design:
... no design is made better in any way by piling on added features or glitz. Rather, what enhances a design's aesthetic is what is taken away. The best designs are typically spare and precisely functional, easy to test and difficult to mess up when changes are required. Moreover, they make you feel that there could be no better way to achieve the product's assigned functionality.
07 August 2014
Just one of the priceless comments:
//because visual studio has put a red zigzag underneath the name of my procedure //I need to return something always
We're in Leonard Pinth-Garnell territory here. Or, as my theater colleague Tim would say, "bad, bad, bad, and ghastly."
08 July 2014
- Scoop provides for multiple versions of draft/published stories: this blows the doors off CQ5's simple (but effective) author instance/publish instance model.
- Automatic smart cropping of images, given a master and a thumbnail. I've had clients that would love a feature like that.
- Locking body copy independently of assets like images and multimedia. Yep, that's also something that my guys demand.
- Tagging to an open standard: I haven't built any production code to support this, but it's something we have explored. Generally the stumbling block is the question of who owns the tags.
01 July 2014
10 June 2014
Students in the school at the hamlet of Palestina had been issued OLPC XO laptops, but securing internet and wireless connectivity was difficult.
Palestina is a 10-hour boat ride on the Purus River from the nearest airstrip. A local carpenter says that the village needs a road more than it needs cellphone coverage. He's probably right.
05 June 2014
I agree with him completely about the value of doing your homework:
Getting these rules in muscle memory is what you need if you want to get fluent in algebraic computations.
There’s just one thing missing, but it’s a big thing: the fact that algebra is made of sentences, that it means something, that it refers to something outside itself. An algebraic statement isn’t just a string of symbols with an x stuck in there somewhere. It’s an assertion about a relationship between quantities (or, when you get to more advanced algebra, between functions, or operations, or even other assertions.) Without that animating idea, algebra is a dead and empty exercise....
Computation is important! We lose just as badly if we generate students who have some wispy sense of mathematical meaning but who can’t work examples swiftly and correctly. A math teacher’s least favorite thing to hear from a student is “I get the concept, but I couldn’t do the problems.” Though the student doesn’t know it, this is shorthand for “I don’t get the concept.”
17 May 2014
06 May 2014
At every single step of the way, every software tool you would use to build a language breaks horribly when encountering non-Latin text. They all expect text encoded as ASCII, which is the standard that includes lowercase and capital Latin characters, numbers, punctuation, and that’s about it. Anything else needs considerably more effort to support consistently. The preceding screenshot shows a version of my interpreter choking on Arabic text and vomiting it out as percent-delimited code points.
08 April 2014
11 March 2014
17 January 2014
Barbara Ericson, of Georgia Tech's Institute for Computing Education, is working to change that. Ericson and her colleagues, in partnership with the Girl Scouts and other organizations, are experimenting with new strategies to get young women interested in computing. One radical idea: allowing high school students to use CS courses to count toward math or science curriculum requirements.
As much as I think everyone should have a solid grounding in logic (usually introduced by proving theorems in geometry) and problem solving by manipulating equations (algebra, Nicholson Baker's bugbear), I'm inclined to support this idea. Designing, coding, and debugging a program in a procedural language calls for similar skills: working at multiple levels of abstraction, systematically eliminating explanations until the correct one is found, finding the simplest solution.
09 January 2014
02 January 2014
So, it’s healthy every once in while to have an out-and-out fail.
The code deployment was never an issue; the procedural code was solid, and it always built and deployed successfully to production and staging environments. What burned us was the database migration: the new release entailed a major refactoring of an important subset of the schema.
The root cause of the fail was a database version incompatibility that we should have prepared for, but didn't. Even so, there were steps we could have taken that would have told us the migration was in trouble an hour or two sooner.
The migration was a series of SQL scripts. For most small updates (the app is usually updated on a 2-week scrum cycle), the dev team drops one or two short scripts (to create a new table, add some codes to to a dictionary table, that sort of thing) into a canonically-named folder, and migration is a short 5-minute process that takes no more time than the code deployment. But in this case, we had haphazardly put together a series of about a dozen scripts, two of which ran resource-devouring stored procedures.
What I would have done, in hindsight: organize the scripts so that all of the DML is executed first, then the dictionary tables are populated, and then finally the heavy lifting of moving data from one table to another happens. Add monitoring steps so that we can track the progress of the migration (we did do this for the second try). Seriously rethink the choice of stored procedures, and instead use a scripting language like Perl or Python or a compiled program. To the extent possible, provide a log or audit trail of migrated entities (the team did this very successfully in a smaller-scale migration a couple of years ago).