Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!



WSJ Refused To Publish Lawrence Krauss' Response To "Science Proves Religion"

GrantRobertson And this surprises you ... (556 comments)

... how, exactly?

about three weeks ago

What Isn't There an App For?

GrantRobertson I'm still waiting for... (421 comments)

...apps as good as what I had on my Palm Pilot, that will sync directly with my PC without going through someone's web service.

A task manager with actual start dates, end dates, dependencies, priorities, categories, and roll-over of uncompleted tasks. NOT these all-day appointments that Google pretends are tasks.

A database program that allows me to design my database on my desktop and sync it directly to my device, provides a usable, customizable interface on the device, then reliably syncs data back to my desktop, again WITHOUT an intervening web service and without programming.

Heck, a standardized synchronization manager to handle synchronizing files, data, and settings to the desktop, would be a good start.

about a month ago

Google Researcher Publishes Unpatched Windows 8.1 Security Vulnerability

GrantRobertson Re: Grammar police alert (129 comments)

Haven't they already proven it is impossible to "UNdisclose" anything on the internet. Once it is disclosed, it's out there forever.

"Can't stop the signal, Mal."

about a month ago

The Open Office Is Destroying the Workplace

GrantRobertson Asperger's (420 comments)

The kinds of people who do best at any kind of super-detailed work often have mild to moderate Asperger's, whether they know it or not. So, an open floor plan is one of the worst things one can do to them.

about a month ago

Scientists Develop "Paint" To Help Cool the Planet

GrantRobertson Wood stove? (145 comments)

I wonder if one could paint this on a wood stove to increase the heart output.

about 2 months ago

The Math Behind the Hipster Effect

GrantRobertson Re: True anticonformancy (176 comments)

There's a dude in central Austin with half a beard.

about 3 months ago

Tech Recruiters Defend 'Blacklists,' Lack of Feedback, Screening Techniques

GrantRobertson Re: oh boy! (253 comments)

Yes! People who have people skills assume it is easy to learn because they learned t easily. Many people have difficulty with it. You could teach me all ther moves for football but I would still get mowed down on every play. There are some things that one can't just learn out of a book. Believe me, I have tried.

about 3 months ago

Machine Learning Expert Michael Jordan On the Delusions of Big Data

GrantRobertson Re: Cloud (145 comments)

Yup, that's all we need, an internet outage causing multiple fatal accidents because cars traveling 80 miles an hour suddenly can't tell the difference between a police officer in the road and a tree beside it.

about 3 months ago

Ask Slashdot: Event Sign-Up Software Options For a Non-Profit?

GrantRobertson Wait five years... (104 comments)

Then they will see the error of their ways.

Other than that... just walk away.

about 3 months ago

Outsourced Tech Jobs Are Increasingly Being Automated

GrantRobertson Re: grow your own (236 comments)

Mr. Feet,

Can you please provide links to any of this info, particularly about the 86 families. I am genuinely interested.


about 4 months ago

My resting heart rate:

GrantRobertson So, just how much personal information are you guy (169 comments)

All you dudes whine about MS, Apple, Facebook, et al gathering up your personal data. Then you happily hand over all kinds of very specific data to Slashdot, just because they have a poll.


about 4 months ago

Ask Slashdot: Remote Support For Disconnected, Computer-Illiterate Relatives

GrantRobertson Fugedaboutit (334 comments)

Get yourself a box. In it place a couple reams of notebook paper, a bunch of pens, envelopes, and stamps. Then ship that to them. Tell these people that if they can't learn to be responsible then you are not going to jump through hoops to make up the difference. Just because you know computers does NOT mean you are responsible for lazy-dipshit-proofing every computer owned by a lazy, irresponsible family member.

about 4 months ago

Ask Slashdot: What To Do After Digitizing VHS Tapes?

GrantRobertson DAM (268 comments)

Look up "digital assett management video."

about 4 months ago

Oculus Rift CEO Says Classrooms of the Future Will Be In VR Goggles

GrantRobertson Re: why? (182 comments)

Sounds more like an observant realist to me.

about 4 months ago

Why Women Have No Time For Wikipedia

GrantRobertson No "bias," just a fact. (579 comments)

A "bias" is a belief that affects a decision. That there are fewer women editors on Wikipedia (Wp) is, in itself, only a fact, NOT a bias or a proof of any bias. I am a man, and yet I don't bother to contribute to Wp for many of the same reasons previously given as to why women don't contribute: I dont want to have to learn yet another markup language, just to get started. And I don't like trolls and mean people (I have my filter set on +1 here on /.). Now, these apply even though I firmly believe pedantry is entirely appropriate and necessary in the Wp context. It is entirely possible to be pedantic while remaining polite and considerate.

Now, I believe the main reason women tend to flock to FB & Pintetest is that these sites are predominantly social. So, if Wp added a much more social component, it might help. Another issue is that far fewer women currently enjoy technical things. That, too, is a fact but it is caused by dozens of social norms and biases. In order to make up for that, Wp could make editing an article as easy as editing a FB post. And dont give me that crap about how the Wp markup is easier to type than HTML. There should be a simple, WYSIWYG editor.

Finally, I think anonymity should go away, at least in the back end. If someone wants the priviledge of editing then Wp should be able to know exactly who they are. People should be required to prove who they are to register as an editor. They can enter a "handle" for the rest of the world to see, but if you are an ass, Wp will know exactly who you are and can truly ban you for life or take legal legal action if necessary. That should clear up a lot of the meanness.

about 5 months ago

If Fusion Is the Answer, We Need To Do It Quickly

GrantRobertson One word... (305 comments)


about 5 months ago

Fighting Invasive Fish With Forks and Knives

GrantRobertson The damned things will just jump in your boat. (180 comments)

IIRC, when I first saw a video about these things, one of the problems is that when a motor boat goes by they will jump out of the water high and hard enough to injure people in the boat. In the video they were flying outta the water by the hundreds. All you gotta do is set up your nets to catch them in mid-air and "drive around" in your boat. No harm to the native species at all.

about 5 months ago

Ask Slashdot: Would You Pay For Websites Without Trolls?

GrantRobertson Paid registration. (382 comments)

I would prefer that all sites offer the option of registering with your real name via a charge to a real credit card, NOT a debit or gift card. The money could go to the site or even to a charity. Then, if I had registered in such a manner, I would have the option of filtering out all non-registered users and even threads proceeding from their comments. It should be easy to click a button to turn the filter on and off, directly within the reading interface.

Then I could block most of the trolls when I want and easily see other comments if I am willing to weed through the trolls.

All sites should have downvoting but also have mechanisms to detect and de-register malicious downvoters, whether working alone or as an organized mob. Unregistered people should not be able to downvote registered people.

Sites should also offer white-lists, both manual and automatic. Only someone with good karma or badges or whatever should be able to vote at all.

I'm seriously thinking of droppping /. And doing all of my forum messaging through StackExchange.

about 5 months ago

Microsoft Considered Renaming Internet Explorer To Escape Its Reputation

GrantRobertson Just make it fully standards compliant... (426 comments)

...and stop trying to take over the internet by adding proprietary extensions to said standards. Stop trying to push MS server or development products by tweaking the browser to work better with said products.

The browser wars are over. MS won the battle but is loosing the war. They need to drop the insurgency and learn to play nice if they want to play at all.

about 5 months ago

Swedish Dad Takes Gamer Kids To Warzone

GrantRobertson Re: Gettin All Up In Yo Biznis (419 comments)

My grandkids will TELL you that they know the difference between games and real life. But then they play-fight a hell of a lot more rough than my brother & I did, partially because they are imitating the characters in their games, as is evidenced by the fact that they quote the games as they are literally kicking each other in the ribs as hard as they can. They compete to see who can make the closest imitation of some attack move while the "victim" endures the pain and risk of injury without complaint because the victims of the attacks in the games aren't really people so they don't / can't complain. Yes, they take turns being non-person punching bags because that is how it works in the games they spend every possible minute playing.

Now these are smart kids, aged 6 & 8, with normal empathy in other situations. But when they start acting out their games in "meat-space" they really do loose perspective and end up going overboard and often hurt one another.

about 5 months ago



Writing around the i4i patent

GrantRobertson GrantRobertson writes  |  more than 2 years ago

GrantRobertson writes "I know the i4i patent is old news, but...

I have an idea and I am concerned about how that farce they call a patent will affect the implementation of my idea.

I have been stewing on how to "link into" documents and media over which one does not have editorial control. Sure, one can create a link to a whole document or web page. It is even possible to link to specific parts of a web page... IF the location within the page to which you want to link is ALREADY delineated with a tag which contains an ID attribute. Some document formats even allow bookmarks to which one could link... IF that bookmark already exists.

But what do you do when there are no IDs or bookmarks to link to? So far, absolutely nothing. Maybe you could link to the document and then describe, in your text, how to find the location you want the user to read. Definitely not ideal. Especially if you want a computer to "read" that content at the other end of the link.

My idea is to embed additional metadata within the link which will help software "find" the exact location to which you want to link. Yes, this does present a huge set of additional problems: I would have to write browser extensions to do the work of "finding" that location within the document. And what if the document gets edited in such a manner that the software can no longer find the location? Those are questions for a later time. My question goes to the method I propose to use to indicate the location within the document: a mapping to the location based, in part, on the character count from some other, known, location within the document.

Anyone familiar with the i4i patent knows they use the character count to indicate where the formatting codes, which they separate from the content, should take effect within the document. Anyone familiar with the i4i case will know they are litigious bastards. So I want to be very careful to make sure that what I want to do does not fall within their "claims."

By my reading, the method in their patent only applies for use within a single, specific document. My idea applies BETWEEN different documents. As far as I can tell, based on my extensive reading, but limited knowledge of patent law, this should be enough to avoid violation of the i4i patent.

I know /. is the worst place to ask for legal advice. But it is the best place to start a discussion. So what do you folks think? Are we good for moving on to Tim Berners-Lee's and Ted Nelson's original visions of the web (what I call "Web 0.0")?

Thanks for your input.

P.S. I know that, by revealing this idea in a public forum, I am "publishing" it and this will prevent me or anyone else from patenting the idea. That is the point.

P.P.S. Yes, the link will contain "clues" in addition to just the character count, and I have also been stewing on "clues" which could be used for other media formats. Again, those are questions for another time."

Link to Original Source

Best language for experimental GUI demo projects

GrantRobertson GrantRobertson writes  |  more than 2 years ago

GrantRobertson writes "I am not a professional software developer and never have any aspirations to become one. I've been through a generic university computer science degree-program and I can tolerate C++ begrudgingly. I do OK with Java and prefer it, though I still have to look up every API before I use it. Most of the code I want to write will be not much more than prototypes or proof of concept stuff for the research I will be doing, rather than full-on applications ready for distribution and use. I can learn any language out there, if need be, but these days it is more about the ecosystem than the core language. IDEs, libraries, cross-platform compatibility, user support, open source licensing.

My research/tinkering will be along two main lines:
1) Devising entirely new graphical user interface elements, mostly in 2-D, though often in a true or simulated 3-D space. I am working on ways to visualize, navigate, and manipulate very, VERY large data-sets of academic research information.
2) Computer based education software, though of a type never seen before. This will combine some of the GUI elements invented in (1) as well as displaying standard HTML or HTML5 content via a browser engine.

My requirements are:
A) A decent IDE ecosystem.
B) A decent set of libraries, but ones that don't lock me in to a particular mind-set like Swing does in Java. (Boxes in boxes in boxes, Oh My!)
C) An ability to easily draw what I want, where I want and make any surface of that 3-D object become a source for capturing events.
D) Ease of cross-platform use. (So others can easily look at my examples and run with them.)
E) No impediments to open-source licensing my code or for others to go commercial with it either (as I have seen when I looked into Qt).

So, should I just stick with Java and start looking outside the box for GUI toolkits? Or is there something else out there I should be looking at?"

Buggy Slashdot

GrantRobertson GrantRobertson writes  |  more than 3 years ago

GrantRobertson (973370) writes "So what is up with Slashdot lately? It almost constantly has that little "Working *" thing at the bottom of the screen and it keeps scrolling up and down at random. It is really getting to be a pain."

Shortcuts to open specific file via search index?

GrantRobertson GrantRobertson writes  |  more than 4 years ago

GrantRobertson writes "Does anyone know of a means to create a desktop shortcut (on any platform) such that the shortcut initiates a search which finds and opens the specified file regardless of where it may have been moved to within the file system? The search could be done via whatever indexing service is installed on the computer — or by brute-force as a last resort. This would be different from a traditional saved search in that this search would be pretty much guaranteed to have only one result (due to a carefully chosen, unique file name) and it would directly open the file as if it were a regular shortcut to a file. Traditional saved searches, in contrast, are usually expected to have more than one result and so display the results in a list. While I understand that a saved search for a unique file name would produce a results list with only one item in it, and the user could then double-click that file, I am looking for a means to remove that additional step.

If such a thing does not exist then perhaps this post could serve as both an idea for an enterprising open source developer as well as a form of prior-art so no one would be able to patent this idea."

How to display web-based content within my own app

GrantRobertson GrantRobertson writes  |  more than 4 years ago

GrantRobertson writes "I know this may sound like a terribly specific question to ask on Slashdot but I am really just looking for a general answer right now.

I need to build an application that can display anything that can be displayed inside a regular browser, including stuff like flash that normally requires a plugin. This will be for displaying educational content that is stored locally on the user's computer and is pulled up and combined as necessary for whatever they are learning at the moment. I need the content to be able to contain anything that could be on a normal web page, including Flash or Quicktime or what-have-you. As I have no intention of rewriting a browser from scratch I know I will need to use a browser engine such as WebKit or Mozilla's Gecko. (Not the IE engine as I need portability. Sorry Bill) Preferably, the user should not have to install the plugins separately for my app. If it is installed in their browser, then I would like my app to just see it and use it too. However, I have been having difficulty figuring out if these or other layout engines can do what I need. Most of the sites for these things jump right into telling you how to compile the thing and are kind of sketchy on specific features and capabilities.

In addition, I would really like to develop this app in Java for maximum portability. I know that there are projects that are "working" on Java integration for various engines, specifically Gecko and WebKit. However, I can't figure out just how much functionality is actually available when embedding these HTML "layout" engines in a Java application. Is this even feasible at all? Or should I just go with C++ and accept the hassle of cross-platform development in C++?

I am far from an expert programmer in either language but have been known to learn whatever-the-heck I needed to get something done.

Yes, I have Googled till I am blue in the face. I have searched Usenet and the respective sites as well. But I can't find the answers to these questions, partly due to the "ungoogleability" of some of these terms. In other words, the terms are so commonly used together but in so many different contexts that I get a sea of false hits to dig through. So, I turn to Slashdot in a desperate plea for help."

Motorola Droid has serious WiFi issues

GrantRobertson GrantRobertson writes  |  more than 5 years ago

GrantRobertson writes "There is a forum thread on the Motorola web site with 28 pages of complaints from people, many experienced in IT issues, who cannot get their new toys to connect to Wifi properly. Many can get an IP address but no data transfers. Others can get some data to transfer but then it rapidly slows to a crawl.

It appears that Motorola has chosen to ignore the issue, pointing the finger at the WiFi access point manufacturers instead, much to the amusement of the forum members. Yes, I am one of the unlucky ones who can't get a connection. My recommendation is to not purchase a Droid until Motorola gets this issue straightened out."

Link to Original Source

How to start a global tech non-profit?

GrantRobertson GrantRobertson writes  |  more than 5 years ago

GrantRobertson writes "I am working on an XML standard for educational material that I truly believe will revolutionize education worldwide. (I know it sounds like delusions of grandeur, but really good ideas do come along every once in a while, even to otherwise nondescript people. At least take a quick gander before judging.) The standard will be in beta by this summer and I am about ready to start forming a non-profit organization to promote and oversee the standard. Once this thing gets started there is a strong possibility that it will grow very large very fast. My problem is that I have no experience starting and running a project on such a massive scale. Managing a hospital network is child's play compared to the convoluted social, legal, and technological mine field I am about to throw myself into. I have read books about forming and running non-profits but they are all limited to local, community-service type organizations.

I need to learn how to start and run a massive, global, technological project. Something on the scale of The Gimp, Wikipedia and the One Laptop Per Child projects combined. I will need to combine skills from many different fields that Slashdot readers may be familiar with. From the open-source community: I need to learn how to start, perhaps multiple, parallel open-source software projects (for software that uses the standard) and attract a community of developers around each of them. From the commercial software industry: I need to learn how to attract commercial ventures for creating the same kind of software. From XML experts: I could stand some help fine tuning the XML schema. From internet protocol experts: I could use some help finalizing the protocols that will be used to distribute the content to areas that don't even have internet connections. From intellectual property experts: I need to learn how to craft a license for the standard that will enable anyone anywhere to use the content while preventing proprietary interests from "embracing and extending" the standard toward their own ends and, at the same time, prevent well-meaning groups from forking the standard into oblivion. From Wiki and forum "owners": I need to learn how to attract a large community of conscientious content creators who will appropriately follow copyright laws when submitting content. From academics: I need to learn how to properly classify all of the material in their fields into a freakishly detailed hierarchical list as well as get an army of educators to volunteer time to vet content for accuracy. Which means I need to learn how to organize conferences for academics to work out those lists. From both pro and anti DRM people I need to learn how to create a system so those who would like to earn some money for the work they do creating content can do so without making the rest of the system impossible to use. And the list goes on and on.

At the very least, I need to learn how meet, choose, and recruit people who can help me do all these things. And I have no idea where to even start. Who can I talk to? Who will talk to me? How do I contact people who may be very busy running their own organization and get them to spend some time educating me in how to do what they do? Are there books about this kind of stuff? I have read some things by and about Richard Stallman but I need to know if his philosophy still works now.

If anyone has any advice ... any at all ... I can use all the help I can get. Thanks."

Self Healing Hyperlinks: A possible method to elem

GrantRobertson GrantRobertson writes  |  more than 5 years ago

GrantRobertson writes "I think I just invented a means to eliminate most if not all 404 errors without special scripting on web pages. I call the technique "Self Healing Hyperlinks." In addition, this method would allow specially tagged documents to be automatically found anywhere on the web if they have been moved from their original locations. This could prove very beneficial for locating academic papers even if the original site has been shut down. I am releasing this idea under a Creative Commons license and anyone is welcome to implement this idea in open source software. If you are interested, please take a look. I have other fish to fry."
Link to Original Source



Grant's Concise GUI Notation System (GCGUINS)

GrantRobertson GrantRobertson writes  |  more than 7 years ago

Grant's Concise GUI Notation System (GCGUINS)

Have you ever noticed that many computer books are over two inches thick but, by the time you finish reading them, you could swear there was only about 3/4 of an inch of information in there? This is because all computer books tend to be excessively verbose when describing how to achieve some task. I have seen books take over two pages just to explain how to set a couple of settings in a simple dialog box. Many authors go crazy cutting and pasting hundreds of copies of various almost identical sets of instructions throughout their books. After a while of trying to plow through all this verbosity, hoping to glean a few morsels of actual new information, I often give up in frustration.

As a former network manager and frequent Usenet poster, I found myself doing the same thing. Repeating the same instructions over and over again for fear that the user would not be familiar with the same instructions I had given elsewhere. Even when I was taking notes for myself, I was forced to write out all these instructions and it was hard for me to go back and quickly see what I had meant by what I had written.

So, being the lazy bum that I am, I started using an abbreviated notation for all these instructions. The organizational freak in me soon took over and found a way to standardize those abbreviations into a cohesive system and GCGUINS - it rhymes with penguins - was born. Why something like this has not caught on already is totally beyond me.

Using this notation system, any author - whether writing a book or a simple newsgroup posting - can quickly and easily communicate a series of steps that a user must take in order to perform some operation in standard software dialogs. I realize that there are many operations that cannot be described using this system, especially for graphical programs like CAD or photo editing programs. However, there is still a huge number of tasks that can be described using GCGUINS, even in these types of programs. By using this system, many hours of typing and reading can be saved by everyone involved. We may even save a few trees while we are at it.


  • Instructions should be able to be typed in plain text so people can use the text of the instructions in any system and so it will translate well when copied between file formats, such as when copying from text to HTML to a Word® document.
  • Should be easily understood by regular people with little prior computer experience and absolutely no programming experience.


  • Curly-Braces - { } - Wrap around any complete operation.
    • All the steps needed to achieve a single goal or neatly combined set of goals will be between one set of curly brackets.
    • Put spaces before and after each curly brace to clearly delineate them and to make it more obvious that this is a list of steps rather than just a comment or something.
    • Do not try to combine two separate operations within one set of curly braces. While it is appropriate to combine multiple settings changes to achieve one specific goal or to get set up for one particular situation, it is not appropriate to put two entirely separate tasks within one set of braces. For example:

      { Tools / Options ; <Save> ; Save options, [x] Prompt for document properties ; [OK] ; File / Save as... ; File Name: = Name_of_file ; [Save] }
      should be split up into:
      { Tools / Options ; <Save> ; Save options, [x] Promt for document properties ; [OK] }
      { File / Save as... ; File Name: = Name_of_file ; [Save] }.

    • You don't want the user to think that they always need to do the first part before doing the second part.
    • In fact, it is perfectly OK to break up complicated operations into multiple separate operations if you think it will be easier to understand.
  • Menus - / - Separated by slashes
    • Many GUI operations start with the selection of menu items. Any use of menus requires the selection of at least two things: the top level menu name in the menu bar and the sub-item in that menu. These will be separated by regular forward slashes. For example:
      • { File / Save } tells how to get to the save dialog box.
      • { Insert / Pictures / From Files... } tells how to, well, insert pictures from files.
    • Any time you see a forward slash separating two words or phrases then you know it is a menu choice. There is no need to clutter things up by prefixing the list with any additional text or symbols except for...
    • Context Menus - *:Target Object / menu item / sub-menu item
      • The "*" represents how the user "clicks" on the object with a pointer or stylus or what-have-you, in whatever means is used within the operating system to open the context menu. It is a visual metaphor for the action of clicking. It also represents a sort-of wildcard for all the different possible means to open that context menu. It could mean "right-click" in Windows, or "Option-Click" on a Mac. The user is expected to at least know how to get to a context menu. This makes the system compatible with whatever method for getting to the context menu a particular operating system may use.
      • The author could replace the asterisk with the specific means used for the operating system they are describing, or they could simply leave the asterisk there and explain to the user that it means opening the context menu for the target object.
      • RC = Right-Click
      • CC = Control-Click
      • AC = Apple-Click (Do they do that? I don't know.)
      • OC = Option-Click
      • CH = Click-&-Hold
      • DC = Double-Click
    • The author can use either the words or the abbreviation. The 'C' could be replaced with a 'T' or "Tap" when the user would be using a stylus but this does not seem necessary.

Open Object - OO:Name_of_Object

  • This means to do whatever is necessary within your operating system to "Open" the object, whether that be double-clicking, option-click, click-and-hold, tap-and-hold, or whatever. The user is expected to know how to do this for their operating system. Again, you could replace 'OO' with an abbreviation or name of a specific action but it will be more portable if you don't.


  • Gestures are a new feature of some operating systems and programs. Once you do the gesture you are sometimes taken to a regular dialog box or wizard.
    If the gesture doesn't take you to some additional dialog box then there is no real need to use this notation system to document it. Using { FG:Flick-Left:Album Art } would be more concise than "Do a left flick on the album art." but it would break up the flow of thought. The detraction from the flow of thought would not be worth the small amount of additional concision achieved.
  • Mouse Gesture - MG:Name_of_gesture:Object_to_gesture_over
    • The name of the gesture should be kept simple and, well, concise. Use "Left-Right-Left" rather than "Move the mouse to the left then the right then back to the left again." After all, we are trying to be ... what's that word? ... oh yeah, concise.
  • Finger Gesture - FG:Name_of_gesture:Object_to_gesture_over
    • Same as mouse gestures but with your finger on a touch screen. Usually, these don't open any dialog boxes so it won't even be necessary to use this notation. It is listed here merely for completeness.
    • Yes, I know all the obvious jokes. Get over it.

Semicolons - ; - Separate each step of the operation.

  • There should be a space before and after the semicolon so it isn't confused with part of a name or text in the dialog being described. For example:
    • { step one ; step two }
  • Selecting a menu item is considered one step. For example:
    • { Main menu / sub-menu ; <tab to select> ; [button to click] }

Commas - Section Name,

  • When a dialog box has multiple named sections it is helpful to name the sections and follow the name with a comma so the user can more easily find the actual dialog item to be modified. If there is more than one level of sub-sections then just separate the list of names with commas.
    • { Main menu / sub-menu ; <tab to select> ; Section on that tab, sub-section, [button to click] }
  • Comma separated labels don't indicate a specific thing to do, they just help you find the thing that you are supposed to do something with.

Tabs - <Tab Name>

  • Many dialogs have tabbed interfaces. This notation indicates which tab the user should be on or switch to.
  • Always list the name of the tab even if it is the default one. This way the user can be sure they are where they need to be.

Buttons - [Button Name] - Square brackets

  • Square brackets around a word or phrase indicates a button that should be clicked.
  • The square brackets are also used for a few other things but there will only be one letter or symbol between them and they will be part of a step with additional words, so it is easy to tell the difference.

Check Boxes - [x] Name or label of checkbox

  • [x] = checked
  • [ ] = unchecked. (There should be a space between the square brackets.)
  • Naturally, more than one can be checked.
  • Yes, I know, there could be a conflict with the red "X" close button in Windows. However, that button should be indicated by using [Close] instead of [X]. This is because that is the actual name of the button and so the instructions will still be correct if the look of the button is changed or the user is using the program in a different operating system.

Radio Buttons - Button_list_label: (x) Name of radio button

  • (x) = Selected
  • ( ) = Not selected (There should be a space between the parentheses.)
  • Only one should be selected.
  • Radio buttons should always be preceded by the label for the list of buttons, such as:
    • In Firefox { Tools / Options... ; <Tabs> ; New pages should be opened in: (x) a new tab ; [OK] }

Fields - Field Name = "What to type"

  • The quotes are included in the GCGUINS instruction but the user should not type them into the field.
    • { File / Save as... ; File Name: = "Name_of_file" ; [Save] }
  • You could leave the colon at the end of the label or ignore it. I don't think your users will notice. The important part is the equal sign.

Drop-Down List boxes - List-box_Name: = Item_to_choose[v]

  • Notice that this is almost like filling in a field except the [v] tells you that you can choose from a list.
  • No quotes are necessary because the user isn't typing anything. They are just choosing from something that already appears on the screen.
    • { File / Save as... ; Save as type: = File Type[v] ; File Name: = Name_of_file ; [Save] }
  • This is consistent with the button metaphor because the drop-down-list-button often looks like a button with a "v" on it.

Drop-Down List boxes where you can type in a new list item - List-box_Name: = "New list item to type in"[v]

  • The quotes indicate that there is something for the user to type while the [v] reminds them that this interface item is a list box. If they have typed the same thing before it may now be in the list for them to choose.

Some Simple Examples:

Note: these are all taken from Word or MS Windows XP because I am lazy and they happen to be what I have open right now.

{ Tools / Options... ; <View> ; Formatting marks, [x] Optional Hyphens ; [OK] }

  • Turns on the display of optional hyphens.
  • Notice that there is a semicolon after <View> because clicking the "View" tab is a separate step from checking the "Optional Hyphens" checkbox.

{ *:Desktop / Properties ; <Screen Saver> ; [Power] ; <Hibernate> ; [x] Enable hibernation ; [OK] ; [OK] }

  • Turns on hibernation. Notice that you can work through any series of steps very concisely, even if they take the user to multiple different dialogs. And there is no need to name or describe the dialogs as they appear. People don't usually care about that anyway. They just want to know what they are supposed to do. Pure and simple.
  • It should also be easier to remember because the reader can see all the steps at the same time within their field of view. It is always easier to remember what you can visualize as a single unit.

Outline format:

If lots of different settings in lots of different tabs or dialogs need to be changed, it is also possible to use an outline format to list all the steps in an organized fashion. Simply list all the steps necessary to get to a certain point as one heading in your outline. Then list each set of related steps as a sub-heading under that one. For instance, if you need the user to open a dialog then set options on a series of tabs, simply put the instructions to get to the dialog on one level, put the tab names on a sub-level, then put the various settings to change as sub-sub-heading under the tabs. If only one or two settings need to be changed on a particular tab then you can list the tab notation and the setting notation on the same line for compactness. But if a lot of settings need to be changed on a tab then list them all on a different line. Dialog section titles can be treated the same way. For example:

  • In Word 2003: { Tools / Options... ;
    • <View> ;
      • Show,
      • [ ] Startup Task Pane ;
      • [ ] Smart Tags ;
      • [x] Picture placeholders ;
      • Field Shading = When Selected[v] ;
      • Formatting Marks, [x] All ;
  • <General> ;
    • [x] Confirm conversion at Open ;
    • [Web Options] ;
      • <Browsers> ; Options, [x] Allow PNG as a graphics format ;
      • <Pictures> ; Screen size = 640 x 480 ;
      • [OK] ;
  • <Spelling & Grammar> ;
    • Spelling, [ ] Check spelling as you type ;
    • Grammar,
    • [ ] Check grammar as you type ;
    • [ ] Check grammar with spelling ;
  • [OK] }
  • (Ignore the bullets. That is the only way I could get the outline to show up right on Slashdot.)
  • Those who opened up Word and followed along will notice that I did not list section names when there was only one section in a tab. There is no real need to do so because it provides no additional information. However, you can list them if you want to, just for completeness sake.
  • Notice that I could have listed all these on one long line - with or without word-wraps - and it would have given the same instructions. However, by listing them in outline format the entire operation is easier to follow. Put things on one line when it makes sense and spread them out when it makes sense. Use your better judgment. Once you have written it out, take another look at it and ask yourself if you would be able to follow it easily if you were a relative novice.


  • Naturally, once the author has used this notation once or twice to tell the user how to do something relatively simple such as saving a file with a particular name, then the notation should be dropped and the author should simply write, "Save the file as 'filename'." To continue using the notation would just be irritating to most readers.
  • Normally you would only list settings for the things that need to be changed. However, sometimes it is necessary to make sure that quite a few settings are exactly how they need to be for some feature to work. In that case, list all the settings that are pertinent to the situation but leave out all the ones that wouldn't make a difference. You don't want to get carried away listing every setting in the entire system just to achieve one simple goal.
  • Normally the user will know the program in which they need to do all these steps from the context of the discussion. However, sometimes you might need to make it clear by simply stating "In Program_Name: { steps }."
  • Be sure to list all the steps necessary to complete the operation, including clicking all the [OK] and [Save] buttons. But do not list more steps than are necessary to achieve the goal. For instance, it is not necessary to close a task pane every time after performing some task involving that task pane. In fact, you may want to give separate instructions for opening the task pane and performing the task within the task pane. Then, after you are confident that the user knows how to open the task pane, you can simply write, "In the Foo task pane: { do these steps }."
  • There is no need to stick extraneous underscore characters between words or put quotes around multi-word labels. Just use the regular words as they appear in the menus and dialogs. You will notice that the syntax itself makes it clear where the name of something starts and ends.
  • While many might think that I named the system so that it would have an acronym that promotes Linux. They would be wrong. I just named it what I named it and only later realized that the acronym rhymes with "penguins." I stuck with it because I have a friend who collects penguins simply because they are cute. You know who you are.
  • Who knows, perhaps some smart programmer will figure out a way to use this notation system as a scripting language. Their script processor could simply read these instructions and do the operations just as a human would. This way the same text instructions could be used by both humans and computers. Someone could even create a feature where a user could simply copy and paste some of these instructions into a dialog box to instantly set the appropriate settings for a particular task. Or people could create buttons with these steps listed in a field in a configuration dialog box and when the user clicked on the button, then all the steps would be performed. I know, there is VBA and there are macros available in many programs. However, VBA and macros are rather obtuse for the beginning - or even intermediate - user while a list of steps in GCGUINS is very easy for novice users to read and understand.

License Notice:

Copyright 2007, Grant Sheridan Robertson

I, Grant Sheridan Robertson, give everyone the right to use this notation system for free in any documentation they write. Simple newsgroup or forum posts - where someone is just telling someone else how to do something - can use GCGUINS without any attribution because that would just become too cumbersome and I don't want to turn everyone into copyright violators. If your blog has absolutely no advertising on it whatsoever, then you can use GCGUINS without attribution. All commercial content, from Blog articles to published books, must give attribution using my full name "Grant Sheridan Robertson," the full name of the system, "Grant's Concise GUI Notation System," as well as the acronym, "GCGUINS," and say that it rhymes with "penguins." Yes, even Microsoft® books. So, a commercial blog article that uses GCGUINS must give attribution, but comments about that article don't have to go to the trouble. (I consider any publication of any form that makes money - including but not limited to: through advertising, subscriptions, selling merchandise, or donations - to be commercial.)

In addition, full books must include some form of this description and this license in an appendix so readers can learn to use GCGUINS for themselves. You are welcome to copy the text verbatim or modify it to suit your needs with the exception that you cannot modify this license. Web sites and blogs must either include this description or link to one somewhere else. I cannot guarantee that I will always have one available to link to, so you might as well just copy this text.

Finally, it won't do you much good to modify the syntax itself because then you would just confuse your readers who are already familiar with it. The goal, after all, is to make it easier for everyone to use their computers. A consistent system helps everyone.

Slashdot Login

Need an Account?

Forgot your password?