The Joys Of Programming

http://www.itworld.com/it-management/342165/7-frustrating-things-about-being-programmer

Let's all share our own lists! Here's mine, in order of most to least frustrating.

1. Arbitrary Deadlines- Nuff said

2. Reinventing the wheel... poorly- I swear I may physically assault the next person I meet who is responsible for rolling their own rules engine, AD style security, caching system, or data mapping method.

3. Business owners/customers who can't articulate their own process

4. When someone who doesn't know the craft ends their request with "That shouldn't be that hard, right?"

5. Companies that claim they are "agile" and to them that means stuffing a waterfall into tight iterations and missing deadlines repeatedly.

bandit0013 wrote:

5. Companies that claim they are "agile" and to them that means stuffing a waterfall into tight iterations and missing deadlines repeatedly.

I am giving up on agile. Nobody follows it correctly, so why bother. I am starting to push Programmer Anarchy. http://www.infoq.com/presentations/Leaner-Programmer-Anarchy

bandit0013 wrote:

3. Business owners/customers who can't articulate their own process

Dear God, This +likeabillion

In that vein, here's today's pet peeve:

People who don't understand the difference between a prototype and a deliverable. Yes, I know it's rough. It's like that because I had to use the Force to figure out what you wanted to accomplish. Let's get the life cycle and functional requirements refined before we worry about the second coat of wax.

GioClark wrote:
bandit0013 wrote:

3. Business owners/customers who can't articulate their own process

Dear God, This +likeabillion

In that vein, here's today's pet peeve:

People who don't understand the difference between a prototype and a deliverable. Yes, I know it's rough. It's like that because I had to use the Force to figure out what you wanted to accomplish. Let's get the life cycle and functional requirements refined before we worry about the second coat of wax.

That's why I never prototype in a language we will ship in.

"hey that prototype is looking good - we nearly ready to ship?"
"no, this is written in (some language we don't officially support)."
"oh, when can we be ready?"
"look at the prototype and tell me what we need to add to be able to make money with it"

By the time that happens, I have a dev plan together and can start work on the real thing.

That was great. I am literally going to send my CV to them this weekend.

GioClark wrote:

People who don't understand the difference between a prototype and a deliverable. Yes, I know it's rough. It's like that because I had to use the Force to figure out what you wanted to accomplish. Let's get the life cycle and functional requirements refined before we worry about the second coat of wax.

Ha! I was tasked with creating a prototype of a large model in excel/vba last year. Only they kept adding requirements and eventually asked me to incorporate the real data into the model. All despite me protesting the whole time that excel/vba was the wrong tool for a production version of this model and the whole point of the work I was doing was to create a prototype that they could get approval from the higher-ups so that someone else could then create the production version using a more appropriate tool/language.

How did the 'joys of programming' thread turn into the 'being a programmer sucks' thread?

billt721 wrote:

How did the 'joys of programming' thread turn into the 'being a programmer sucks' thread?

Uh, I always thought the title was intentionally ironic.

I think the "Joys" part is ironic. Or has become so.

*sigh*

Dear <coworker>,

When I send email to you asking for specific technical details about something, or for what settings you used, or what commands you ran, that is not an invitation for you to come over to my office and chat with me to "give me context". You're right, I want context. I want the kind of context that can only be provided by you using copy and paste to send me email describing exactly what you actually did. I don't want to waste 20 minutes listening to you chatter on about things that don't actually answer my question, only to finish up with "Okay, now please go back to your office and send me email", and have you decide that the email isn't all that important since we already talked, after all.

Love (hate),

Hyp.

Dear coworkers,

When there's a problem, don't just copy & paste the part of the log file you think is relevant. Just send me the whole thing. There's lots of bits and pieces working together and often the indicator of the problem is less obvious to you since you're not a developer. Don't worry, I'll find it.

With kisses,
Q

Dear previous coworker,

" if ($item_number == "20") $item_number = "00";
else if ($item_number == "21") $item_number = "01";
else if ($item_number == "30") $item_number = "10";
else if ($item_number == "31") $item_number = "11";
else if ($item_number == "32") $item_number = "12";
else if ($item_number == "33") $item_number = "13";
else if ($item_number == "34") $item_number = "14";
else if ($item_number == "35") $item_number = "15";
else if ($item_number == "36") $item_number = "16";
else if ($item_number == "37") $item_number = "17";"

Kindly kill yourself,

<333
bean

Dear Systems,

Every time I need some crucial work done on the project I'm helming, I shouldn't be automatically backburnered and forced to go get management to explain that yes, my project actually is essential. It was essential work the last five times this happened, what makes you think it's any different this time?

I am not making requests because I have a fetish for wasting your time.

Dear Q-Stone,

The whole thing? I tried zipping up the whole source tree, but Outlook Express complained because it was over 1.21 jiggabytes, and wouldn't send it. Can you come over to my desk?

Minion

beanman101283 wrote:

Dear previous coworker,

" if ($item_number == "20") $item_number = "00";
else if ($item_number == "21") $item_number = "01";
else if ($item_number == "30") $item_number = "10";
else if ($item_number == "31") $item_number = "11";
else if ($item_number == "32") $item_number = "12";
else if ($item_number == "33") $item_number = "13";
else if ($item_number == "34") $item_number = "14";
else if ($item_number == "35") $item_number = "15";
else if ($item_number == "36") $item_number = "16";
else if ($item_number == "37") $item_number = "17";"

Kindly kill yourself,

<333
bean

amazing

Quintin_Stone wrote:
billt721 wrote:

How did the 'joys of programming' thread turn into the 'being a programmer sucks' thread?

Uh, I always thought the title was intentionally ironic. :D

In the joy column: Fixing a vendor's app for them after support drags their feet. Then getting their buy in that your ad-hoc changes will be supported AND incorporated in future versions.

Bonus_Eruptus wrote:

Dear Q-Stone,

The whole thing? I tried zipping up the whole source tree, but Outlook Express complained because it was over 1.21 jiggabytes, and wouldn't send it. Can you come over to my desk?

Minion

THE LOG FILE, IDIOT!

Quintin_Stone wrote:
billt721 wrote:

How did the 'joys of programming' thread turn into the 'being a programmer sucks' thread?

Uh, I always thought the title was intentionally ironic. :D

Nope, I love the frickin' heck out of programming. The OP was sparked out of me trying out a different language and rekindling some of that love.

Do I support the guild idea, or think that small businesses that don't have a DBA on staff are crazy? We all look through different lenses at this stuff, and truthfully, it doesn't matter what I think, because that stuff is important to others. I wouldn't classify them as joy items, though.

The last line of the OP is this:

And if you are a programmer, when was the last time you actually remember smiling while writing code? C'mon! Share!

Lately, I've gone even further off the deep end as a programmer since moving to Linux full time, at the same day job. Between that, my 2 Raspberry Pi devices (one of which is now my web server instead of a VPS), and a recent server migration I've been trying to close the lid on, I've spent more time doing cross-platform programming, writing tests for our ancient-yet-ever-moving-forward PHP web application, and just familiarizing myself with so many more system and language internals that it's been an exhausting amazing past 4 months.

Quintin_Stone wrote:
Bonus_Eruptus wrote:

Dear Q-Stone,

The whole thing? I tried zipping up the whole source tree, but Outlook Express complained because it was over 1.21 jiggabytes, and wouldn't send it. Can you come over to my desk?

Minion

THE LOG FILE, IDIOT!

IMAGE(https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcQCJK6EjQWnduxJYzNniQ1TdqlWZoFTq2mR9fu4Fulb9DTmGywc5A)IMAGE(https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTcnRVHfDsMMRRNdwih8faKXqz1fX6v16laKDnDRJvdoVFfvSb5JA)

Who loves Java web development? I've been banging my head against a wall all week trying to integrate a few libraries: Dropwizard (which itself is built over Jersey, Jetty, and more) + Guice + Shiro. The issue doesn't seem to be anything overtly amiss in how I'm setting up Shiro stuff; I'm starting very small but I think the issue is that I don't entirely know what's being handled behind the scenes in the dropwizard-guice and shiro-guice dependencies that should -- in theory -- allow everything to play nicely together. My shameless, desperate pleas for help have been recorded here and here.

To explain the situation: my company wants to have web apps with role-based access controls because we're headed into health informatics and need to comply with privacy stuff. I built some prototype web services with Dropwizard not long ago, and I love how easy it is to work with (at the level of micro-services). If we don't get role-based access implanted in Dropwizard somehow, we have unpleasant choices to make:

1) Lose the niceties of Dropwizard and dive down, down into the darkness of normal Java web development.
2) Abandon Java web development altogether and start in on Python.

The root problem is that this company is completely absurd, but the particular issue that is surfacing here is that we don't have suitably deep in-house experience with anything -- seriously. We don't have domain experts for health informatics, machine learning, natural language processing, etc. because the company thinks that we can just teach ourselves and do fine (and sure, we can do some basics, but not enough to be competitive); we also have an overabundance of junior programmers, some of whom can't be trusted to work on anything of consequence (it's very concerning that I'm on the upper end of the spectrum here). The reason I was pushing for Dropwizard was because it made Java web development more accessible to the junior people; it's insane that we are considering a complete change in language (Python is a distant second place for languages known in-house) just to keep things accessible. I feel a long ramble starting to form in my fingertips, so I better cut this off here.

On the bright side, every miserable day I spend at work is motivating me to continue my independent project.

tboon wrote:

That's why I never prototype in a language we will ship in.

"hey that prototype is looking good - we nearly ready to ship?"
"no, this is written in (some language we don't officially support)."
"oh, when can we be ready?"
"look at the prototype and tell me what we need to add to be able to make money with it"

By the time that happens, I have a dev plan together and can start work on the real thing.

There is Wisdom here.

RolandofGilead wrote:
tboon wrote:

That's why I never prototype in a language we will ship in.

"hey that prototype is looking good - we nearly ready to ship?"
"no, this is written in (some language we don't officially support)."
"oh, when can we be ready?"
"look at the prototype and tell me what we need to add to be able to make money with it"

By the time that happens, I have a dev plan together and can start work on the real thing.

There is Wisdom here.

Yeah - this is why I mostly prototype in Photoshop. We used to call it Release to Drywall on the schedule. After the spec is final, you mockup with what they're now calling "wireframes" but you print out screenshots. Then you pin it all up in a conference room and walk everyone through the UI, using those printouts and a slide-deck with the buttons built as links to the appropriate slide to back it up.

Then once everyone is on the same page and you have an agreed-upon direction, you start real coding.

Cyranix wrote:

Who loves Java web development?

Does running Rails on JRuby count?

Three days. Three days it took me to realize that instead of making API calls and parsing the resulting XML live as it came over the wire, I could just just save them locally to XML files, then parse them locally to my heart's content once they're finished. Then I don't have to wait until it's the middle of the night in the UK so I won't DDOS the customer's site testing my analytics ETL tool. I've been awake way too long.

They shouldn't let me near computers.

Good news everyone. I figured out how to collect roots concurrently and handle pointer assignments. Now comes implementation, yay! And compiling mono on windows.

Cyranix wrote:

Who loves Java web development?

I've used Shiro and Guice (but not shiro-guice) and messed around a little with Dropwizard. I'll take a look this weekend. Have some code to share? I could follow what you said you did but code that does not work would make it faster.

Edit: n/m yes you do in this case.

momgamer wrote:

Yeah - this is why I mostly prototype in Photoshop.

I love me some balsamiq

Is there any program to let me write a .pdf the way one would use Word to write a .doc?

RolandofGilead wrote:

Is there any program to let me write a .pdf the way one would use Word to write a .doc?

Open Office Writer lets you export as a PDF. I know there was a version of MS Office that let you do that, too. I forget which year, though, and I don't know if they've taken out that functionality in recent versions.

RolandofGilead wrote:

Is there any program to let me write a .pdf the way one would use Word to write a .doc?

I'm pretty sure Word 2007 and up have PDF in the Save As options.

Drupal Theming

I recently spent a bunch of time trying to really understand Drupals theming system including Preprocess functions. To those unfamiliar with Drupal, they attempt to create a system where developers can prepare a bunch of variables that can be printed by a front end dev or a designer who doesn't know any PHP. As someone who does everything, it didn't make too much sense where to do certain things, but finally using preprocess functions more has been eye opening.

Shadow DOM

I just learned of something called the Shadow DOM. If you don't know what it is, it's the forbidden zone of the browsers Document Object Model that you don't have clear access to, however it uses HTML to create all the little things like sliders etc. I learned about it from the Breakpoint series Paul Irish is putting together on Youtube which has shown some very cool ways to use Chrome Dev Tools.

Community Projects
I've started a community project where I get to try out all the more modern web dev techniques I don't really get to use at work. It's been a lot of fun. @font-face, CSS transitions, font based sprites. Web development can be a lot of fun and it's amazing things like Chrome Dev Tools and SASS are becoming more featured and standardized! I know I could, but I never want to do a web project without SASS and jQuery.