Skip navigation
Help

word processor

warning: Creating default object from empty value in /var/www/vhosts/sayforward.com/subdomains/recorder/httpdocs/modules/taxonomy/taxonomy.pages.inc on line 33.

James Gosling is probably best known for creating the Java programming language while working at Sun Microsystems. Currently, he is the chief software architect at Liquid Robotics. Among other projects, Liquid Robotics makes the Wave Glider, an autonomous, environmentally powered marine robot. James has agreed to take a little time from the oceangoing robots and answer any questions you have. As usual, ask as many as you'd like, but please, one question per post.

0
Your rating: None

Programmer Steve Losh has written a lengthy explanation of what separates good documentation from bad, and how to go about planning and writing documentation that will actually help people. His overarching point is that documentation should be used to teach, not to dump excessive amounts of unstructured information onto a user. Losh takes many of the common documentation tropes — "read the source," "look at the tests," "read the docstrings" — and makes analogies with learning everyday skills to show how silly they can be. "This is your driving teacher, Ms. Smith. ... If you have any questions about a part of the car while you’re driving, you can ask her and she’ll tell you all about that piece. Here are the keys, good luck!" He has a similar opinion of API strings: "API documentation is like the user’s manual of a car. When something goes wrong and you need to replace a tire it’s a godsend. But if you’re learning to drive it’s not going to help you because people don’t learn by reading alphabetized lists of disconnected information." Losh's advice for wikis is simple and straightforward: "They are bad and terrible. Do not use them."

0
Your rating: None

The whole "everyone should learn programming" meme has gotten so out of control that the mayor of New York City actually vowed to learn to code in 2012.

Bloomberg-vows-to-code

A noble gesture to garner the NYC tech community vote, for sure, but if the mayor of New York City actually needs to sling JavaScript code to do his job, something is deeply, horribly, terribly wrong with politics in the state of New York. Even if Mr. Bloomberg did "learn to code", with apologies to Adam Vandenberg, I expect we'd end up with this:

10 PRINT "I AM MAYOR"
20 GOTO 10

Fortunately, the odds of this technological flight of fancy happening – even in jest – are zero, and for good reason: the mayor of New York City will hopefully spend his time doing the job taxpayers paid him to do instead. According to the Office of the Mayor home page, that means working on absenteeism programs for schools, public transit improvements, the 2013 city budget, and … do I really need to go on?

To those who argue programming is an essential skill we should be teaching our children, right up there with reading, writing, and arithmetic: can you explain to me how Michael Bloomberg would be better at his day to day job of leading the largest city in the USA if he woke up one morning as a crack Java coder? It is obvious to me how being a skilled reader, a skilled writer, and at least high school level math are fundamental to performing the job of a politician. Or at any job, for that matter. But understanding variables and functions, pointers and recursion? I can't see it.

Look, I love programming. I also believe programming is important … in the right context, for some people. But so are a lot of skills. I would no more urge everyone to learn programming than I would urge everyone to learn plumbing. That'd be ridiculous, right?

Advice-for-plumbers

The "everyone should learn to code" movement isn't just wrong because it falsely equates coding with essential life skills like reading, writing, and math. I wish. It is wrong in so many other ways.

  • It assumes that more code in the world is an inherently desirable thing. In my thirty year career as a programmer, I have found this … not to be the case. Should you learn to write code? No, I can't get behind that. You should be learning to write as little code as possible. Ideally none.
  • It assumes that coding is the goal. Software developers tend to be software addicts who think their job is to write code. But it's not. Their job is to solve problems. Don't celebrate the creation of code, celebrate the creation of solutions. We have way too many coders addicted to doing just one more line of code already.
  • It puts the method before the problem. Before you go rushing out to learn to code, figure out what your problem actually is. Do you even have a problem? Can you explain it to others in a way they can understand? Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?
  • It assumes that adding naive, novice, not-even-sure-they-like-this-whole-programming-thing coders to the workforce is a net positive for the world. I guess that's true if you consider that one bad programmer can easily create two new jobs a year. And for that matter, most people who already call themselves programmers can't even code, so please pardon my skepticism of the sentiment that "everyone can learn to code".
  • It implies that there's a thin, easily permeable membrane between learning to program and getting paid to program professionally. Just look at these new programmers who got offered jobs at an average salary of $79k/year after attending a mere two and a half month bootcamp! Maybe you too can teach yourself Perl in 24 hours! While I love that programming is an egalitarian field where degrees and certifications are irrelevant in the face of experience, you still gotta put in your ten thousand hours like the rest of us.

I suppose I can support learning a tiny bit about programming just so you can recognize what code is, and when code might be an appropriate way to approach a problem you have. But I can also recognize plumbing problems when I see them without any particular training in the area. The general populace (and its political leadership) could probably benefit most of all from a basic understanding of how computers, and the Internet, work. Being able to get around on the Internet is becoming a basic life skill, and we should be worried about fixing that first and most of all, before we start jumping all the way into code.

Please don't advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to …

  • Research voraciously, and understand how the things around us work at a basic level.
  • Communicate effectively with other human beings.

These are skills that extend far beyond mere coding and will help you in every aspect of your life.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!

0
Your rating: None

This SlideShowPro photo gallery requires the Flash Player plugin and a web browser with JavaScript enabled.

Hover over the image for navigation and full screen controls

Marc Shoul

Brakpan

play this essay

Brakpan is a small town that lies on the East Rand of Gauteng, sandwiched between Boksburg, Benoni and Springs. A once-prosperous mining community, today there are pawnshops, roadhouses, mechanics, mini casinos and other day-to-day shops lining the two main roads that slice through the town. Brakpan is like going back in time; so many aspects of the town remind me of old images I have seen of South Africa. Despite all the changes in nearby Johannesburg, Brakpan still goes about its business in much the same way it did before.  There is a lack of modern development. You don’t see Tuscan townhouse complexes or buildings with glass facades. It’s all very simple and straight forward – almost transparent, and this transparency can be seen in the people too. You won’t find any airs or graces, no fancy cappuccino shops, sushi cafes or organic goods in Brakpan.

The town does not seem to have benefited from its gold rush glory days, which spanned between 1911 until the mid 1950’s, and it now has very little to show for its’ past. Today, the once flourishing mining town only pulls out a small portion of gold compared to what it used to generate, and some disused gold mines now only sell rubble.

A second factor that has contributed to Brakpan’s sense of preservation is the development of Carnival Mall and Casino, which conveniently lies just off the highway a few kilometers away from Brakpan Central. All the major chains and retail shops have moved to the mall and, as a result, the town centre has been left untouched and undeveloped, stunting it economically and leaving its inhabitants with little opportunities.

And yet there are many faces to modern Brakpan. Young girls push prams while karaoke competition winners don’t get their promised prizes. Pirated DVD’s get sold on the streets, crippling the nearby video shops that rent out older movies. There is a sense of nostalgia that remains and is reflected in the buildings and in the people. This is a place where you can still enjoy school and church fete’s, rugby matches, old bars, sokkie jols, biker rallies, fishing and braaiing at the Brakpan Dam; all of which are a part of the local’s lives.

Here there is a peacefulness and relaxed country town feel, without the stress about what tomorrow may bring.  The people of Brakpan live in the now but are still bound by the constraints of the past.

The images presented here are printed on Multigrade V1 FB Fibre matt photographic paper. Exhibition prints are 40cm by 40cm in size in an edition of 10.

Bio

Marc Shoul lives and works in Johannesburg, South Africa. He was born in 1975 in Port Elizabeth, Eastern Cape, South Africa and graduated (with honors in photography) from the Nelson Mandela Metropolitan University in 1999. Since then, he has had several exhibitions of his work including group shows at the Arts Association of Bellville, Fusion (1999), Artscape, Mental Health, (2001) Cape Town, Month of Photography, Detour, (2002), Cape Town, Photo ZA, Obsess (2004) and Resolution Gallery, Faces (2008) in Johannesburg as well as at the World Health Organization TB exhibition in India (2004). Solo exhibitions of ‘Beyond Walmer’ were held by the Association of Visual Arts Gallery in Cape Town (2000) and Natal Society of Arts, Durban (2001).  “Flatlands” a solo exhibition was also held at the Association of Visual Arts in Cape Town (2009) with help from the National Arts Council. Shoul was also featured in the AGFA Youth International Photojournalism Publication 1999. He also reached the finals of the Absa L’Atelier 2009.  Flatlands showed at KZNSA in Durban, South Africa and Galerie Quai 1 in Vevey, Switzerland in 2010. Shoul was invited to hold a workshop at the Vevey School of Photography on the 2010. Shoul was also been included in After A at the Report Atri Festival, Italy, June 2010 curated by Federica Angelucci. Beyond Walmer is on show at the Nelson Mandela Metropolitan Museum June-August 2010. Brakpan (work in progress),Shoul has also been included in the Bonaini Africa 2010 Festival of Photography, Cape Town Castle of Good Hope and Museum Africa, Johannesburg. Brakpan (work in progress) was included in 10 a group exhibition at the PhotoMarket Workshop, Johannesburg, 2010. Brakpan in 2011 won the 1st prize at the Winephoto.

Nelson Mandela Metropolitan Museum added “Beyond Walmer” to its permanent collection (2007).

For the last ten years, Marc has worked for various local and international magazines such as Time, Colors, Wired, Blueprint, Dazed and Confused, Design Indaba, World Health Organization, Mother Jones, Stern, Gala, De Spiegel, Financial Times Magazine, Monocle, Smithsonian and The Telegraph Magazine, He has also shot for many advertising clients and agencies.

He has recently completed a project named ‘Flatlands’ in the Johannesburg inner city.  He is now working on a new body of work in Brakpan on the East Rand where he is exploring the city’s way of life and its people.

He is interested in exploring theams of social relevance and changes within his country and further a field.

Shoul works largely in black and white, using a medium format film camera and natural light printed on Fiber photographic paper.

 

Related links

Marc Shoul

0
Your rating: None

I suppose What You See Is What You Get has its place, but as an OCD addled programmer, I have a problem with WYSIWYG as a one size fits all solution. Whether it's invisible white space, or invisible formatting tags, it's been my experience that forcing people to work with invisible things they cannot directly control … inevitably backfires. A lot.

I have a distinctly Ghostbusters attitude to this problem.

Ghostbusters-logo

I need to see these invisible things, so that I can zap them with my proton pack. I mean, er, control them. And more importantly, understand them; perhaps even master them.

I recently had the great privilege of meeting Ted Nelson, who gave me an in-person demo of his ZigZag project and his perpetually in-progress since 1960 Xanadu project, currently known as Xanadu Space. But one thing he mentioned as he gave the demo particularly intrigued me. Being Ted Nelson, of course he went much further than my natural aversion to invisible, hidden markup in content – he insisted that markup and content should never be in the same document. Far more radical.

I want to discuss what I consider one of the worst mistakes of the current software world, embedded markup; which is, regrettably, the heart of such current standards as SGML and HTML. (There are many other embedded markup systems; an interesting one is RTF. But I will concentrate on the SGML-HTML theology because of its claims and fervor.)

There is no one reason this approach is wrong; I believe it is wrong in almost every respect.

I propose a three-layer model:

  1. A content layer to facilitate editing, content linking, and transclusion management.
  2. A structure layer, declarable separately. Users should be able to specify entities, connections and co-presence logic, defined independently of appearance or size or contents; as well as overlay correspondence, links, transclusions, and "hoses" for movable content.
  3. A special-effects-and-primping layer should allow the declaration of ever-so-many fonts, format blocks, fanfares, and whizbangs, and their assignment to what's in the content and structure layers.

It's an interesting, albeit extremely hand-wavy and complex, alternative. I'm unclear how you would keep the structure layer in sync with the content layer if someone is editing the content. I don't even know if there are any real world examples of this three layer approach in action. (And as usual, feel free to correct me in the comments if I've missed anything!)

Instead, what we do have are existing, traditional methods of intermixing content and markup ala HTML or TeX.

PDF vs. TeX

When editing, there are two possible interfaces:

  1. WYSIWYG where the markup layer is magically hidden so, at least in theory, the user doesn't ever have to know about markup and can focus entirely on the content. It is an illusion, but it is simple enough when it's working. The downside is that the abstraction – this idea that the markup is truly "invisible" – is rarely achieved in practice and often breaks down for anything except the most basic of documents. But it can be good enough in a lot of circumstances.
  2. Two windows where the markup is fully visible in one window, and shown as a live rendered preview in the other window, updated as you type, either side-by-side or top-and-bottom. Users have a dynamic sandbox where they can experiment and learn how markup and content interact in the real world, rather than having it all swept under the rug. Ultimately, this results in less confusion for intermediate and advanced users. That's why I'm particularly fond of this approach, and it is what we use on Stack Exchange. The downside is that it's a bit more complex, depending on whether or not you use humane markup, and it certainly takes a bit more screen space and thinking to process what's going on.

What I didn't realize is that there's actually a third editing option: keep the markup visible, and switch rapidly back and forth between the markup and rendered view with a single keystroke. That's what the Gliimpse project reveals:

Please watch the video. The nearly instantaneous and smooth transition that Gliimpse demonstrates between markup and preview has to be seen to be appreciated. The effect is a bit like Expose on the Mac, or Switcher on PC. I'm not sure how I feel about this, mainly because I don't know of any existing IDEs that even attempt to do anything remotely like it.

But I'd sure like to try it. As a software developer, it's incredibly frustrating to me that we have generational improvements in games like Skyrim and Battlefield 3 that render vastly detailed, dynamic worlds at 60 frames per second, yet our source code editors are advancing only in tiny incremental steps, year after year.

0
Your rating: None

An anonymous reader writes "This controversial post by Adobe's Kas Thomas asks if splash screens are just a sign of program bloat and callous disregard for users. It suggests that big programs should launch instantly (or appear to), perhaps by running against an instance in the cloud while the local instance finishes loading. Users of cell phones and tablets are accustomed to apps being instantly available. This is the new standard for performance, the author argues. Nothing short of it will do, any more."


Share on Google+

Read more of this story at Slashdot.

0
Your rating: None

Ask Reddit's got a fun thread: "what is the most painful way you have seen your co-worker accomplish something very simple?" As painful as this stuff is to read, it's a reminder that intelligent, experienced people often find familiar computing interface elements and metaphors impossible to parse.

Opens XP Internet Explorer, inhabited by so many toolbars that the actual display window resembles the eye slit on a hunting blind.

Uses Yahoo! toolbar to search for www.Yahoo.com.

Selects Yahoo! search engine from top of search results.

Types URL she has been given in full into Yahoo! search.

Selects random results on front page, and if they do not open desired website, closes IE and starts again from step 1.

what is the most painful way you have seen your co-worker accomplish something very simple? (self.AskReddit)

0
Your rating: None