Eclipse is an awesome program. A real Swiss army knife.
However, as you seem to infer, it tends to be a little difficult to use. I suspect one reason is that it tries to be All Things to All Men.
UIs are completely context- and audience-dependent.
If you've ever ready any of Tufte's stuff, you have seen some truly hairy interface elements that require training to understand. However, once you understand, the UX is extremely immersive, intuitive and useful; feeding you a great deal of complex data.
Usability is something that really gets short shrift from artists, designers, coders and engineers. In fact, it is often met with hostility and direct resistance.
There are so many elements involved in a truly usable interface. "Doing what I expect" is one. "Giving me exactly the correct information" is another, as is "appropriate and timely feedback."
However, aesthetics also play a huge role in a usable interface. It needs to look usable. Maybe not "attractive," but a button needs to look like something that you WANT to click.
I grew up on CLI. Since I've been doing software development since the early 1980s, I have used some of the scariest CLIs ever made (Is a hex keypad a "CLI"?).
These days, I greatly prefer a GUI. I often need to go into the CLI on a system to do stuff, but prefer to stay out of it.
I have designed skeuomorphic UX (I'm actually a fairly decent graphic designer, so I could make stuff look quite "real"), then trashed that for flat, and am basically settling into a "middle ground," where elements of 3D are used, but sparingly. I have found that performance is also a usability coefficient. When you have big-ass 24-bit PNG images, the software spends a great deal more time tossing stuff around in memory and/or disk. That can slow things down.
I'd like to see everyone agree that GUI and UX is every bit as important as the engine that drives it.
I don't think we're there yet. I suspect this comment thread will bear that out.
Or just as valueless as the badly-thought-out insult that was delivered anonymously; except less likely to drag down property values.
When we sign something, we usually think about it a bit more than otherwise.
Also, there's obviously a reason why/. has decreed that we can't mod in comment threads in which we participate. I kinda respect them, and figger it's probably not a bad idea to color between these lines. I'm not someone who follows rules, just because they exist. I need to understand why, or have some direct respect for the folks that made them (as opposed to the fifth replacement monkey). I may not always agree that the rule is good, but I feel that, as long as I am over at someone else's house, they get to set the rules.
I consider this venue to be full of potential employers, clients and employees. It is also probably aggregated by folks that wear trench coats in summer, and could fairly easily match my comments (anonymous or not) to my real identity, so I feel that it's a good idea to behave like I'm on stage at tech conference.
That doesn't mean bland and inoffensive. I'm not that kind of person. It does, however, mean not stupid and deliberately offensive. I have done plenty of that in the past, and, as my Disqus experience taught me, that stupid stuff I said and did, is still around, like an uncleaned catbox, reminding me that "I art mortal," so to speak.
Most of the "Anonymous Coward" postings I see here are folks with mod points that want to mod in the same discussion in which they are posting.
It just took a couple of ham-fisted goofs (*waves* Hi "foe"!) to let me see what was going on.
It's amazing how much more polite we get when we have to have our name (even an anonymized one) signed at the bottom.
I found that Disqus was "kind" enough to trawl all the databases they could, and found some very old comments (ones that I really regret making), and offered to link them to my current Disqus profile.
How nice. I declined. However, I have since signed off of Disqus. Not because of that, but because they were obviously hacked (or sold their user list to hard-core spammers, which I doubt). I use DEAs for these kinds of services. Getting penis pill spam on one of those DEAs automatically flags that service for binning.
It happens everywhere, but it impacts us the most when we are in conflict. I could certainly point to any one of a dozen current front-page stories (and the horrifying series of comments that inevitably follow), for examples. See my.sig for why we tend to choose simple, binary answers to all our problems.
The only thing I can say is "So, how's that working out for ya?"
Say that there's a tech writer that has a kid at home that needs to be picked up from day care ($500/month) at exactly 6PM, or they start racking up serious charges from the poor schlubs that need to hang onto the kid past closing time. This is an extremely common scenario. Let's say this tech writer (either male or female) is a single parent (for whatever reason).
This tech writer works with a crew of amped-up, high-capability programmers; all male, all just out of college, and all absolutely soaked in their jobs. They have stock options, make big salaries and have an extremely dynamic, cohesive team. They tend to pull "all-nighters." Basically, the kind of folks that employers love to have working for them.
Now, you can probably see some conflict coming down the road already...
This tech writer needs to have meetings with these programmers.
The programmers tend to want to have meetings late. Say 5PM or later. Some of them don't get in until 2PM, and they like to have subs and calzones at their meetings.
The tech writer needs to meet with them to get specifics for the docs. They insist that the tech writer meet with them at 5PM or later.
See where this is going?
Now, of course, the tech writer needs to either decline the meeting, pay out the nose for extended care, or have very, very short meetings.
When the boss asks why the manual isn't done, what do you think will happen?
If the boss is any good, they'll understand the tech writer's plight, but they may still be in a quandary. If they start insisting that the programmers (who are blissfully unaware of the tech writer's plight -they only think that [s]he's a "whiner," or "lazy") make arrangements to suit the tech writer's schedule, then they risk generating team friction. The programmers may start to resent the tech writer, and actually start making life difficult for them.
Or, the programmers might develop some empathy for the tech writer, and start making some accommodations. Maybe one or two of the "early birds" could meet with the tech writer at more reasonable times, with input from the "bedbugs."
The final solution may be that this particular tech writer may not be able to work with this particular team of programmers, or the programmers might start to learn about things that are more important than stock options and sixteen-hour-days; like kids (If folks have yet to have kids, then they haven't learned the TRUE meaning of "priorities" yet).
However, this seldom needs to be the case.
One of the things that I need to do, as a manager, is manage each team member from a perspective of empathy; not coddling or condoning.
The tech writer may, indeed, be a whiner, and may, indeed, take advantage of the fact they are a single parent to demand unreasonable accommodation. However, here's where that "mile in their shoes" thing comes into play. I need to see this behavior, and hold fast on the company line, yet also find where I can accommodate them, help them to feel as if someone understands them. I won't coddle anyone, and my employees know damn well I can be a real bastard, if they choose confrontation. However, it rarely comes to that.
As a manager, my first duty is to the corporation. My second duty is to the team. I am responsible for ensuring that the team works as effectively as possible, which often plays to the first priority. However, I have to make sure that the organization's priorities are respected and maintained. This includes things like HR policies, ISO 9000 gates, working hours and environment, etc.
I have been given the authority to command people to make acco
You guys have absolutely no clue at all. It's amazing how we project these cartoon personalities onto others. That's what I mean about our "digital avatar" culture.
And yes, I am the boss, but I also have a boss, and they have a boss, etc. ad nauseam. I'm fairly low down on the food chain, and don't really have any ambitions to go higher. I'm extremely happy where I am.
HINT: It's really not a good move to have a knee-jerk reaction to authority, once you leave High School. As a manager for almost twenty years, I've learned the other side of that coin. I think a lot of managers go through their careers scared half to death. I think we make very bad decisions when we are scared. That's one reason I'm not in a huge hurry to travel up the food chain.
I have to eat poop, once in a while, but I have learned that my boss has to do it even more than I.
It's a very, very good idea to learn empathy. I see very little of it displayed in the posts, here, and that means that many of us don't play well with others.
In today's world, very few individuals make the product. Pretty much everything is made by teams. These teams are comprised of these annoying things called "other people."
We can choose to project cartoon-simple avatars onto these folks, and suffer the inevitable results when the real person won't fit the avatar, or we can actually try to figure out and understand these other people.
That doesn't mean that we need to accept and co-sign their crap. Our (American) culture has an unfortunate propensity to equate "understanding" with "condoning."
Big mistake.
If you want to learn basic things about rats, talk to an exterminator.
I feel a large part of my job is to stay out of the way of my developers.
However, we are part of a much larger, ISO-9001 process machine, so it is very difficult to remove the process overhead.
I try to take on as much as I can, so the engineers don't have to weather it, but the process demands that they all have their part checking boxes and attending meetings.
The good thing about a process-driven organization, is that everyone knows exactly who will be sticking their nose in, where, and when. You can't just stuff extra clowns into the car whenever you feel like it.
Regardless of the reason for it being posted, it's a good conversation to have.
I think that consistent coding style is extremely important. There's a heck of a lot of sacred cows and third rails out there, when it comes to exactly what those coding styles should be. I'm not comfortable dictating to others what is best. I think that is likely to defeat the purpose.
Unless you feel like nursemaiding your own code for the entirety of your career, then using a consistent style is directly to your own benefit, as that means that you can easily turn it over and move on to newer, more interesting things.
In my own experience, developing a style (which includes commenting) is something that quickly becomes rote. You don't even think about writing good code. It just happens.
Pascal was developed as a teaching language. It enforced a certain level of style. Python enforces it even more, by doing things like insisting that whitespace be spaces, and that indents make a big difference in terms of context and scope.
When I became a C programmer (after using Pascal), my style quickly degenerated into Caveman Gothic. I had to re-learn a decent style.
What helped me a lot, was using Doxygen. It's a fantastic utility that helps turn comments into documentation. I had used HeaderDoc and JavaDoc before, but they never caught on in my workflow. Nowadays, pretty much everything I write is Doxygen-commented. I actually feel physically uncomfortable when I write code without Doxygen comments (like a quick one-off test function).
Working on a team helps. Having someone come over to you every two minutes, asking the most simplistic questions, trains you to write "leave me alone" code.
Once you've been writing consistent code style for a while, you don't even think about it. Even my quick n' dirty routines are extremely well-structured.
I have a certain style, which involves things like function and class names, variable and data member names, indenting, use of certain language primitives, etc. It is not ironclad, but I find it flows pretty naturally.
I have a spelling checker
I disk covered four my PC.
It plane lee marks four my revue
Miss steaks aye can knot see.
Eye ran this poem threw it.
Your sure real glad two no.
Its very polished in its weigh,
My checker tolled me sew.
A checker is a blessing.
It freeze yew lodes of thyme.
It helps me right awl stiles two reed,
And aides me when aye rime.
Each frays comes posed up on my screen
Eye trussed too bee a joule.
The checker pours o'er every word
To cheque sum spelling rule.
Bee fore wee rote with checkers
Hour spelling was inn deck line,
Butt now when wee dew have a laps,
Wee are not maid too wine.
And now bee cause my spelling
Is checked with such grate flare,
There are know faults in awl this peace,
Of nun eye am a wear.
To rite with care is quite a feet
Of witch won should be proud,
And wee mussed dew the best wee can,
Sew flaws are knot aloud.
That's why eye brake in two averse
Caws Eye dew want too please.
Sow glad eye yam that aye did bye
This soft wear four pea seas.
It's called "humor." Let. Me. Put. It. In. Small. Words.:
I DELIBERATELY mispeld. I write on a Mac. Mac OS X puts a little red zig-zag under misspled wurdz.
Hey folks. Tell your friends. I'm here all week.
Unfortunately for you guys, I pull this stuff all the time. It's my style. I've had plenty of reason given me to cry at life, and I choose to laugh, instead.
Some folkschoose to live life in a veil of tears. That's not me.
Feel free to killfile my ass. You won't find much to like in my postings.
I'm sure that he'll be very happy, there. Smart, eloquent guy, but not one I especially follow. There's a number of folks like that at Google. I doubt he's someone who would cause much damage, and he does bring a lot of funky intellectual PR to the joint.
That was a classic mystery meat link, so I suppose you're chiding me for not writing the title of the book in my link, That's a fairly classic Nielsen rant, and a valid one. I'm used to these social media sites, where the folks tend to speak a common lingo, and being on one with forty-two-gazillion members (with a large percentage of them being spammers, as indicated by the slush pile I sometimes try to select from) of various skill levels, is a bit new to me. You are absolutely correct. I should have expanded the name.
However, I really wouldn't mind it if you simply said something to the effect of "The fact that you aren't mentioning the title of the book, and simply referring to it obliquely, via an opaque link, is a fairly basic usability non-no.".
I've certainly received far harsher criticisms.
And it's still an outstanding book. It occupies a very respectable place in my personal Canon.
As someone who has done plenty of criticizing (and received it), I can say that we need to get our facts straight when we do it.
That said, I'm a HUGE proponent of usability. I think tecchies, as a species, tend to really suck at it (I include myself, there). I am constantly amazed at how "stupid" my users are.
Except...they can be doctors, lawyers, scientists, engineers, teachers, etc. Real smart folks.
When a whole bunch of real smart folks make the same mistake, over and over again, then it's probably a real good idea to examine the usability of the interface.
This book changed the way I view the world (Don Norman is Nielsen's buddy). Ever since I read it, I learned a new appreciation for human interface.
Serving a constituency that tends to take personal frustration and embarrassment out in rather pithy fashion helps to keep me focused on making UX accessible.
Thanks. That's some relevant feedback. There's cultural reasons in my organization that prevent me from implementing Pair Programming (or almost anything else that smells "agile").
I do FOSS stuff for a community that can get real, real nasty and pithy. Negative feedback can often take form as streams of vitriol and invective. It was wonderful training for me. For a while, I would respond in kind (I can get just as nasty, if I want), and nothing ever came of it. However, I started responding in a sincere manner, and often was able to "talk folks off the ledge," and extract some useful information, and, sometimes, real allies and evangelists. I do most of my work alone, but a hell of a lot of folks use what I write.
"This sucks fat c**k!" is often the first thing I hear, but drawing out the poster often gets me to "It won't let me enter Broadway West." (of course, followed by "That's why it sucks").
The nature of my job doesn't allow me to do anything more than a quick check to see if the site is visible through a firewall. Since everything at work is monitored and controlled up the yin-yang, it's actually impossible to do more than that.
Let me break it into smal, easy-to-comprehend words:
I own the computer I do the work on (since I use Macs -that ain't cheap). I don't use the company kit for that.
I own the time I do the work. lots and lots of it.
I don't list the work I do on my taxes, because it would trigger an instant audit. It would probably come out to a very significant figure, if I slapped an hourly figure on it. It would also probably cause problems for the organizations for which I do work.
I take vacation time (not company time) to seek technical training on my own (many) dimes.
My company benefits VERY MUCH from my personal endeavours. I am a senior software engineering manager with intimate, up-to-date knowledge of engineering practices and workflows. That is incredibly valuable. Just ask any of my employees. I'm not some clueless BOFH "bungie boss."
My post was stupid. I phrased it badly. I should have known that curmudgeons would jump on it.
I've linked to just one or two of the many projects I do in other posts. If you actually give a damn, you can go check them out.
Don't be such a sourpuss. Life's way too short for that crap.
In my own coding, I tend to *gasp* make mistakes. Sometimes, really, really dumb ones.
One of the biggest problems with my coding, is that I am often the only real coder looking at it. Even my FOSS work seldom gets reviewed by coders.
I can't say enough about peer review. I wish I had more. It can really suck, as one thing that geeks LOVE to do, is cut down other geeks. However, they are sometimes right, and should be heard.
Negative feedback makes the product better. Positive feedback makes the producer feel better.
I prefer a better product, but that's just me.
I had an interesting bug just the other day in my FOSS project. It's an iOS (iPhone/iPad) app that uses the MapKit Framework API.
When iOS 6 came out (with Apple's...wonderful...new maps), the black marker suddenly started showing as the default marker (this only works on iPads, so no one seemed to see it).
I went nuts trying to figure it out (actually, I've been nuts for a long time, but now I have something to blame it on).
I traced into the callbacks, and saw that they were being called with an empty annotation. Whiskey Tango Foxtrot?
It was a case of an ambiguous API contract. The Apple maps call the annotation setup as soon as the annotation is set, and the old Google API waited until a few things were set up, so the delegate call set after the annotation worked.
I could rail against the framework, but it was really my own fault, and I am just glad I figgered it out.
Good point, but I'd tell them anyway (I am very much a good company man). It would be their choice whether or not it was worth doing anything about it. If they made enough of an issue about it, I'd quit. I don't have a real problem with making a living.
I don't make a secret of my FOSS work, but I don't advertise it, either. Remember, I do this for free, for very altruistic organizations (not my church).
They would make themselves look like serious, serious crudmuffins, if they did, as they would be doing serious grinch-moves. It would be absolutely awful PR. They'd tell me not to spend any company time (I'm talking 15 minutes to do a quick field-test; not six hours of coding). On it. No big loss.
What I do, is take vacation time, and attend classes, at my own expense.
My own experience, is that most corporations aren't actually the serious evil to which they are cast. They are comprised of humans. I have a lot of friends that are lawyers.
Eclipse? Usability? Same Paragraph?
Wow. Now I've seen everything.
Eclipse is an awesome program. A real Swiss army knife.
However, as you seem to infer, it tends to be a little difficult to use. I suspect one reason is that it tries to be All Things to All Men.
UIs are completely context- and audience-dependent.
If you've ever ready any of Tufte's stuff, you have seen some truly hairy interface elements that require training to understand. However, once you understand, the UX is extremely immersive, intuitive and useful; feeding you a great deal of complex data.
For example, This is actually a highly usable data display. Millions of people use it, or displays just like it, to navigate all over the world's largest metropolitan area.
Then, there's just plain dumb.
"Dumbed-down" is often mistaken for "usable."
"looks like ass, but..."
Usability is something that really gets short shrift from artists, designers, coders and engineers. In fact, it is often met with hostility and direct resistance.
There are so many elements involved in a truly usable interface. "Doing what I expect" is one. "Giving me exactly the correct information" is another, as is "appropriate and timely feedback."
However, aesthetics also play a huge role in a usable interface. It needs to look usable. Maybe not "attractive," but a button needs to look like something that you WANT to click.
I grew up on CLI. Since I've been doing software development since the early 1980s, I have used some of the scariest CLIs ever made (Is a hex keypad a "CLI"?).
These days, I greatly prefer a GUI. I often need to go into the CLI on a system to do stuff, but prefer to stay out of it.
I have designed skeuomorphic UX (I'm actually a fairly decent graphic designer, so I could make stuff look quite "real"), then trashed that for flat, and am basically settling into a "middle ground," where elements of 3D are used, but sparingly. I have found that performance is also a usability coefficient. When you have big-ass 24-bit PNG images, the software spends a great deal more time tossing stuff around in memory and/or disk. That can slow things down.
I'd like to see everyone agree that GUI and UX is every bit as important as the engine that drives it.
I don't think we're there yet. I suspect this comment thread will bear that out.
In my experience, absolutely.
Or just as valueless as the badly-thought-out insult that was delivered anonymously; except less likely to drag down property values.
When we sign something, we usually think about it a bit more than otherwise.
Also, there's obviously a reason why /. has decreed that we can't mod in comment threads in which we participate. I kinda respect them, and figger it's probably not a bad idea to color between these lines. I'm not someone who follows rules, just because they exist. I need to understand why, or have some direct respect for the folks that made them (as opposed to the fifth replacement monkey). I may not always agree that the rule is good, but I feel that, as long as I am over at someone else's house, they get to set the rules.
I consider this venue to be full of potential employers, clients and employees. It is also probably aggregated by folks that wear trench coats in summer, and could fairly easily match my comments (anonymous or not) to my real identity, so I feel that it's a good idea to behave like I'm on stage at tech conference.
That doesn't mean bland and inoffensive. I'm not that kind of person. It does, however, mean not stupid and deliberately offensive. I have done plenty of that in the past, and, as my Disqus experience taught me, that stupid stuff I said and did, is still around, like an uncleaned catbox, reminding me that "I art mortal," so to speak.
Most of the "Anonymous Coward" postings I see here are folks with mod points that want to mod in the same discussion in which they are posting.
It just took a couple of ham-fisted goofs (*waves* Hi "foe"!) to let me see what was going on.
It's amazing how much more polite we get when we have to have our name (even an anonymized one) signed at the bottom.
I found that Disqus was "kind" enough to trawl all the databases they could, and found some very old comments (ones that I really regret making), and offered to link them to my current Disqus profile.
How nice. I declined. However, I have since signed off of Disqus. Not because of that, but because they were obviously hacked (or sold their user list to hard-core spammers, which I doubt). I use DEAs for these kinds of services. Getting penis pill spam on one of those DEAs automatically flags that service for binning.
Yup. All those short yellow lights at stoplight camera intersections will be for naught.
Damn cars will observe the letter of the law.
But wait! There's hope!
Expect an underground industry to spring up for override mods.
Fuck you, I'm not clicking your link.
I love /.
I really feel as if I'm amongst the intellectual and cultural elite, here.
Happy Christmas!
It happens everywhere, but it impacts us the most when we are in conflict. I could certainly point to any one of a dozen current front-page stories (and the horrifying series of comments that inevitably follow), for examples. See my .sig for why we tend to choose simple, binary answers to all our problems.
The only thing I can say is "So, how's that working out for ya?"
Say that there's a tech writer that has a kid at home that needs to be picked up from day care ($500/month) at exactly 6PM, or they start racking up serious charges from the poor schlubs that need to hang onto the kid past closing time. This is an extremely common scenario. Let's say this tech writer (either male or female) is a single parent (for whatever reason).
This tech writer works with a crew of amped-up, high-capability programmers; all male, all just out of college, and all absolutely soaked in their jobs. They have stock options, make big salaries and have an extremely dynamic, cohesive team. They tend to pull "all-nighters." Basically, the kind of folks that employers love to have working for them.
Now, you can probably see some conflict coming down the road already...
This tech writer needs to have meetings with these programmers.
The programmers tend to want to have meetings late. Say 5PM or later. Some of them don't get in until 2PM, and they like to have subs and calzones at their meetings.
The tech writer needs to meet with them to get specifics for the docs. They insist that the tech writer meet with them at 5PM or later.
See where this is going?
Now, of course, the tech writer needs to either decline the meeting, pay out the nose for extended care, or have very, very short meetings.
When the boss asks why the manual isn't done, what do you think will happen?
If the boss is any good, they'll understand the tech writer's plight, but they may still be in a quandary. If they start insisting that the programmers (who are blissfully unaware of the tech writer's plight -they only think that [s]he's a "whiner," or "lazy") make arrangements to suit the tech writer's schedule, then they risk generating team friction. The programmers may start to resent the tech writer, and actually start making life difficult for them.
Or, the programmers might develop some empathy for the tech writer, and start making some accommodations. Maybe one or two of the "early birds" could meet with the tech writer at more reasonable times, with input from the "bedbugs."
The final solution may be that this particular tech writer may not be able to work with this particular team of programmers, or the programmers might start to learn about things that are more important than stock options and sixteen-hour-days; like kids (If folks have yet to have kids, then they haven't learned the TRUE meaning of "priorities" yet).
However, this seldom needs to be the case.
One of the things that I need to do, as a manager, is manage each team member from a perspective of empathy; not coddling or condoning.
The tech writer may, indeed, be a whiner, and may, indeed, take advantage of the fact they are a single parent to demand unreasonable accommodation. However, here's where that "mile in their shoes" thing comes into play. I need to see this behavior, and hold fast on the company line, yet also find where I can accommodate them, help them to feel as if someone understands them. I won't coddle anyone, and my employees know damn well I can be a real bastard, if they choose confrontation. However, it rarely comes to that.
As a manager, my first duty is to the corporation. My second duty is to the team. I am responsible for ensuring that the team works as effectively as possible, which often plays to the first priority. However, I have to make sure that the organization's priorities are respected and maintained. This includes things like HR policies, ISO 9000 gates, working hours and environment, etc.
I have been given the authority to command people to make acco
<sigh />
WHATevah...
You guys have absolutely no clue at all. It's amazing how we project these cartoon personalities onto others. That's what I mean about our "digital avatar" culture.
And yes, I am the boss, but I also have a boss, and they have a boss, etc. ad nauseam. I'm fairly low down on the food chain, and don't really have any ambitions to go higher. I'm extremely happy where I am.
HINT: It's really not a good move to have a knee-jerk reaction to authority, once you leave High School. As a manager for almost twenty years, I've learned the other side of that coin. I think a lot of managers go through their careers scared half to death. I think we make very bad decisions when we are scared. That's one reason I'm not in a huge hurry to travel up the food chain.
I have to eat poop, once in a while, but I have learned that my boss has to do it even more than I.
It's a very, very good idea to learn empathy. I see very little of it displayed in the posts, here, and that means that many of us don't play well with others.
In today's world, very few individuals make the product. Pretty much everything is made by teams. These teams are comprised of these annoying things called "other people."
We can choose to project cartoon-simple avatars onto these folks, and suffer the inevitable results when the real person won't fit the avatar, or we can actually try to figure out and understand these other people.
That doesn't mean that we need to accept and co-sign their crap. Our (American) culture has an unfortunate propensity to equate "understanding" with "condoning."
Big mistake.
If you want to learn basic things about rats, talk to an exterminator.
I feel a large part of my job is to stay out of the way of my developers.
However, we are part of a much larger, ISO-9001 process machine, so it is very difficult to remove the process overhead.
I try to take on as much as I can, so the engineers don't have to weather it, but the process demands that they all have their part checking boxes and attending meetings.
The good thing about a process-driven organization, is that everyone knows exactly who will be sticking their nose in, where, and when. You can't just stuff extra clowns into the car whenever you feel like it.
http://www.pacifict.com/Story/
I remember when this guy gave his demo at ATG Night at the WWDC.
He used a tablet to demonstrate it, and he got a standing ovation.
Malbolge is the revolutionary new answer to the tyranny of C++!
Sadly, a style guide has yet to be developed for this amazing engineering feat.
The brain trust on Slashdot, however, should make short work of rectifying this appalling situation.
I saw this story very early this morning.
Regardless of the reason for it being posted, it's a good conversation to have.
I think that consistent coding style is extremely important. There's a heck of a lot of sacred cows and third rails out there, when it comes to exactly what those coding styles should be. I'm not comfortable dictating to others what is best. I think that is likely to defeat the purpose.
Unless you feel like nursemaiding your own code for the entirety of your career, then using a consistent style is directly to your own benefit, as that means that you can easily turn it over and move on to newer, more interesting things.
In my own experience, developing a style (which includes commenting) is something that quickly becomes rote. You don't even think about writing good code. It just happens.
Pascal was developed as a teaching language. It enforced a certain level of style. Python enforces it even more, by doing things like insisting that whitespace be spaces, and that indents make a big difference in terms of context and scope.
When I became a C programmer (after using Pascal), my style quickly degenerated into Caveman Gothic. I had to re-learn a decent style.
What helped me a lot, was using Doxygen. It's a fantastic utility that helps turn comments into documentation. I had used HeaderDoc and JavaDoc before, but they never caught on in my workflow. Nowadays, pretty much everything I write is Doxygen-commented. I actually feel physically uncomfortable when I write code without Doxygen comments (like a quick one-off test function).
Working on a team helps. Having someone come over to you every two minutes, asking the most simplistic questions, trains you to write "leave me alone" code.
Once you've been writing consistent code style for a while, you don't even think about it. Even my quick n' dirty routines are extremely well-structured.
I have a certain style, which involves things like function and class names, variable and data member names, indenting, use of certain language primitives, etc. It is not ironclad, but I find it flows pretty naturally.
Ode to a Spell Checker
I have a spelling checker
I disk covered four my PC.
It plane lee marks four my revue
Miss steaks aye can knot see.
Eye ran this poem threw it.
Your sure real glad two no.
Its very polished in its weigh,
My checker tolled me sew.
A checker is a blessing.
It freeze yew lodes of thyme.
It helps me right awl stiles two reed,
And aides me when aye rime.
Each frays comes posed up on my screen
Eye trussed too bee a joule.
The checker pours o'er every word
To cheque sum spelling rule.
Bee fore wee rote with checkers
Hour spelling was inn deck line,
Butt now when wee dew have a laps,
Wee are not maid too wine.
And now bee cause my spelling
Is checked with such grate flare,
There are know faults in awl this peace,
Of nun eye am a wear.
To rite with care is quite a feet
Of witch won should be proud,
And wee mussed dew the best wee can,
Sew flaws are knot aloud.
That's why eye brake in two averse
Caws Eye dew want too please.
Sow glad eye yam that aye did bye
This soft wear four pea seas.
--Arthur Unknown
It's called "humor." Let. Me. Put. It. In. Small. Words.:
I DELIBERATELY mispeld. I write on a Mac. Mac OS X puts a little red zig-zag under misspled wurdz.
Hey folks. Tell your friends. I'm here all week.
Unfortunately for you guys, I pull this stuff all the time. It's my style. I've had plenty of reason given me to cry at life, and I choose to laugh, instead.
Some folks choose to live life in a veil of tears. That's not me.
Feel free to killfile my ass. You won't find much to like in my postings.
Happy Christmas!
Oh, the humor.
Better killfile me, Bucko. I'm here all week. This kind of crap is S.O.P. for me.
Yup.
What is sarcasm? Do you know? Is my heinie stupid? No. It isn't smart, either. I don't own a burro.
I'm so sorry. I'm not used to dealing with folks who have absolutely no capacity for humor.
The "Dialectizer".
Here's an example.
I'm sure that he'll be very happy, there. Smart, eloquent guy, but not one I especially follow. There's a number of folks like that at Google. I doubt he's someone who would cause much damage, and he does bring a lot of funky intellectual PR to the joint.
That was a classic mystery meat link, so I suppose you're chiding me for not writing the title of the book in my link, That's a fairly classic Nielsen rant, and a valid one. I'm used to these social media sites, where the folks tend to speak a common lingo, and being on one with forty-two-gazillion members (with a large percentage of them being spammers, as indicated by the slush pile I sometimes try to select from) of various skill levels, is a bit new to me. You are absolutely correct. I should have expanded the name.
However, I really wouldn't mind it if you simply said something to the effect of "The fact that you aren't mentioning the title of the book, and simply referring to it obliquely, via an opaque link, is a fairly basic usability non-no.".
I've certainly received far harsher criticisms.
And it's still an outstanding book. It occupies a very respectable place in my personal Canon.
Unfortunately, he mispeld "Nielsen."
Those guys get upset when we don't spell write.
As someone who has done plenty of criticizing (and received it), I can say that we need to get our facts straight when we do it.
That said, I'm a HUGE proponent of usability. I think tecchies, as a species, tend to really suck at it (I include myself, there). I am constantly amazed at how "stupid" my users are.
Except...they can be doctors, lawyers, scientists, engineers, teachers, etc. Real smart folks.
When a whole bunch of real smart folks make the same mistake, over and over again, then it's probably a real good idea to examine the usability of the interface.
This book changed the way I view the world (Don Norman is Nielsen's buddy). Ever since I read it, I learned a new appreciation for human interface.
Serving a constituency that tends to take personal frustration and embarrassment out in rather pithy fashion helps to keep me focused on making UX accessible.
It seems a bit over the top for the context, but it is well-done.
Thanks. That's some relevant feedback. There's cultural reasons in my organization that prevent me from implementing Pair Programming (or almost anything else that smells "agile").
I do FOSS stuff for a community that can get real, real nasty and pithy. Negative feedback can often take form as streams of vitriol and invective. It was wonderful training for me. For a while, I would respond in kind (I can get just as nasty, if I want), and nothing ever came of it. However, I started responding in a sincere manner, and often was able to "talk folks off the ledge," and extract some useful information, and, sometimes, real allies and evangelists. I do most of my work alone, but a hell of a lot of folks use what I write.
"This sucks fat c**k!" is often the first thing I hear, but drawing out the poster often gets me to "It won't let me enter Broadway West." (of course, followed by "That's why it sucks").
Didn't you read what I wrote?
The nature of my job doesn't allow me to do anything more than a quick check to see if the site is visible through a firewall. Since everything at work is monitored and controlled up the yin-yang, it's actually impossible to do more than that.
Let me break it into smal, easy-to-comprehend words:
I've linked to just one or two of the many projects I do in other posts. If you actually give a damn, you can go check them out.
Don't be such a sourpuss. Life's way too short for that crap.
In my own coding, I tend to *gasp* make mistakes. Sometimes, really, really dumb ones.
One of the biggest problems with my coding, is that I am often the only real coder looking at it. Even my FOSS work seldom gets reviewed by coders.
I can't say enough about peer review. I wish I had more. It can really suck, as one thing that geeks LOVE to do, is cut down other geeks. However, they are sometimes right, and should be heard.
Negative feedback makes the product better. Positive feedback makes the producer feel better.
I prefer a better product, but that's just me.
I had an interesting bug just the other day in my FOSS project. It's an iOS (iPhone/iPad) app that uses the MapKit Framework API.
The bug was on this line.
The original code is here.
So that folks don't have to look at a whole bunch of source, here's the problematic two lines:
[mapSearchView addAnnotation:myMarker]; [mapSearchView setDelegate:self];
When iOS 6 came out (with Apple's...wonderful...new maps), the black marker suddenly started showing as the default marker (this only works on iPads, so no one seemed to see it).
I went nuts trying to figure it out (actually, I've been nuts for a long time, but now I have something to blame it on).
I traced into the callbacks, and saw that they were being called with an empty annotation. Whiskey Tango Foxtrot?
Then, just for s's and g's, tried this:
[mapSearchView setDelegate:self]; [mapSearchView addAnnotation:myMarker];
Damn if that didn't fix it.
It was a case of an ambiguous API contract. The Apple maps call the annotation setup as soon as the annotation is set, and the old Google API waited until a few things were set up, so the delegate call set after the annotation worked.
I could rail against the framework, but it was really my own fault, and I am just glad I figgered it out.
Good point, but I'd tell them anyway (I am very much a good company man). It would be their choice whether or not it was worth doing anything about it. If they made enough of an issue about it, I'd quit. I don't have a real problem with making a living. I don't make a secret of my FOSS work, but I don't advertise it, either. Remember, I do this for free, for very altruistic organizations (not my church). They would make themselves look like serious, serious crudmuffins, if they did, as they would be doing serious grinch-moves. It would be absolutely awful PR. They'd tell me not to spend any company time (I'm talking 15 minutes to do a quick field-test; not six hours of coding). On it. No big loss. What I do, is take vacation time, and attend classes, at my own expense. My own experience, is that most corporations aren't actually the serious evil to which they are cast. They are comprised of humans. I have a lot of friends that are lawyers.