The Joys Of Programming

Not sure if this has been asked yet, but are there any decent programming or software development podcasts? I tried a few lately and didn't like what I found.

DSGamer wrote:

Not sure if this has been asked yet, but are there any decent programming or software development podcasts? I tried a few lately and didn't like what I found.

Ruby Rogues has covered some great topics, many that aren't ruby-focused.

Took a few episodes for me to stick with it, but I really enjoy the group. The recent episode with Dave Thomas of Pragmatic Programmers was a fantastic, non-Ruby focused one.

trueheart78 wrote:
DSGamer wrote:

Not sure if this has been asked yet, but are there any decent programming or software development podcasts? I tried a few lately and didn't like what I found.

Ruby Rogues has covered some great topics, many that aren't ruby-focused.

Took a few episodes for me to stick with it, but I really enjoy the group. The recent episode with Dave Thomas of Pragmatic Programmers was a fantastic, non-Ruby focused one.

Yeah, I'm looking for semi-agnostic theoretical level discussions. I tried listening to Coder Radio, but it was too much advertising, too much banter between friends about things other than programming. I can get that on tons of other podcasts. I'll check out that one you mentioned. Thanks.

DSGamer wrote:

Yeah, I'm looking for semi-agnostic theoretical level discussions. I tried listening to Coder Radio, but it was too much advertising, too much banter between friends about things other than programming. I can get that on tons of other podcasts. I'll check out that one you mentioned. Thanks.

Ruby Rogues is just about the only development podcast I've listened to that really produces on-topic discussions of any real value.

Most dev podcasts are either (a) too generic to produce anything worthwhile (a lot of high level, detail-lacking jabber that would fit in some software management rag), or (b) are basically "this week's RSS feed read out loud".

Besides the Rogues, there's JavaScript Jabber (same host and same format as RR), and the Cognicast.

*Legion* wrote:

(b) are basically "this week's RSS feed read out loud".

What's some good stuff to have in the RSS feed?

Is Scala susceptible to the slew of Java vulnerabilities from the last couple of years? Are those issues with JVM, or the Java language?

Topics of Ruby Rogues look fascinating, especially the last two, listening now.

Never did much with Logic Programming, but I looked up miniKanren and then microKanren from the list of langs in Seven More Languages in Seven Days, it's pretty sweet.
Idris, yay for dependent types.
Factor, I saw someone say PEG's on a post on StackOverflow. I love me some PEG's. Other than that I know little.

Too many problems trying to compile ldc2, if I try to do gc again I'll try hacking mono.

Lex Cayman wrote:

Is Scala susceptible to the slew of Java vulnerabilities from the last couple of years? Are those issues with JVM, or the Java language?

I think so. Also this doesn't help.

http://blog.ontoillogical.com/blog/2014/07/28/how-to-take-over-any-java-developer/

Lex Cayman wrote:

Is Scala susceptible to the slew of Java vulnerabilities from the last couple of years? Are those issues with JVM, or the Java language?

A few, but it depends on the bug. Some come from javac, and the JVM. I think the majority are in the standard libraries, so it would depend on what your code calls.

For anyone relatively close to Cincinnati, my employer is hiring for a couple of developer positions. One is contract (at least to start), the other is FTE. You can check out all the postings on our jobs page.

We're a PHP shop but, as with any group, we are amenable to the right solution to the right problem. That...that sounded so businessy I'm gonna go wash my hands. I've been here a year or so and enjoy the climate and coworkers.

muraii wrote:

We're a PHP shop but, as with any group, we are amenable to the right solution to the right problem. That...that sounded so businessy I'm gonna go wash my hands. I've been here a year or so and enjoy the climate and coworkers.

IMAGE(http://images.sodahead.com/polls/003291601/1330108093_hissing_cat_2_xlarge.jpeg)

Sorry, couldn't help myself.

Another on that list of another seven languages looks friggin' awesome. This could make web programming actually fun.

http://elm-lang.org/

And even though it compiles to javascript+html+css now, I can't think of anything that would stop it from compiling to a different user interface platform.

IMAGE(http://basicinstructions.net/storage/2014-08-05-wisdom.gif)

Good day at work, Q?

wordsmythe wrote:

Good day at work, Q?

No. I mentioned it some on IRC, but here's the latest thing to come down the pipeline from sales and the parent company:

We are a small company that works develops a hospital software "solution": a suite of interconnected client/server apps to fill the gaps that a hospital's old clunky HIS does not do well or at all. One of those apps is a fully customizable kiosk app that patients can use and check-in for appointments. It is tied into the main server to pass back and forth info about the patient.

This is all we do, maintenance and enhancement of this system. There's only 2 developers here and we can't keep up with all the sh*t we have to do.

Sales gets the brilliant idea to respond to an RFP from a giant gun store & shooting range that is looking for a kiosk system that'll tie into a lane management system. Because hey, they want a KIOSK so why not?? Nevermind that our existing software does about 10% of all the functionality they want. We were tasked by upper management to put together a goddamn estimate and no arguments allowed.

I know from experience that the CEO has no clue what our software actually does (even though it was his idea to buy us), but FFS I know the sales guy has at least a tiny f*cking inkling. Except of course that he's always overselling and thinks that our software can do ANYTHING because it can be somewhat customized to fit a hospital's needs. Sure, that means it can run a f*cking SHOOTING RANGE!

So we returned a estimate of 2400 manhours (15 manmonths) and I hope they all choke on it.

Heh, my 18-month projection got shoved into a 12-month window, starting in January, and people are just now getting worried that we might not make 1/1/15.

I remember when I worked for a Web CMS vendor and we got solicited for an RFP for a state lottery commission that was looking for a data warehouse DMS / form management system.

Thankfully the VP of Sales listened to me when I said "yeah, this just ain't gonna work".

Little job related news/joy:

Moving from a support/development role on my current app (web-enabled IT work product app) to a full-time web development role in the same group. I wish I knew what I'll be working on first since the products we support are very disparate and we're trying new things all the time. Just to give you an idea: I've already been assisting this team with products using ASP.NET, C# and Java native mobile development in Eclipse & Xamarin and also might be doing work on a product based on Java/Groovy and others using Angular.js. This is all in the last few months.

My job situation has been bit frustrating since I've felt painted into a corner as far as career options (and far too comfortable and stagnant) but things have really come together this year. I'm optimistic, excited and terrified at the same time. I hope to hell this is a good sign.

Special mention to this thread and also to some individual GWJers that have been very helpful with career advice and encouragement. I appreciate it.

crossposting

MoonDragon wrote:

Just came across a poem written in valid Perl 3.0, called "Black Perl":

BEFOREHAND: close door, each window & exit; wait until time. open spellbook, study, read (scan, select, tell us); write it, print the hex while each watches, reverse its length, write again; kill spiders, pop them, chop, split, kill them. unlink arms, shift, wait & listen (listening, wait), sort the flock (then, warn the "goats" & kill the "sheep"); kill them, dump qualms, shift moralities, values aside, each one; die sheep! die to reverse the system you accept (reject, respect); next step, kill the next sacrifice, each sacrifice, wait, redo ritual until "all the spirits are pleased"; do it ("as they say"). do it(*everyone***must***participate***in***forbidden**s*e*x*). return last victim; package body; exit crypt (time, times & "half a time") & close it, select (quickly) & warn your next victim; AFTERWARDS: tell nobody. wait, wait until time; wait until next year, next decade; sleep, sleep, die yourself, die at last # Larry Wall

Congrats GioClark! "Optimistic, excited, and terrified" sounds like a completely reasonable attitude for a dev to have, new or old. Keep us posted on what you're working on. If you wanna talk Angular, I can be an okay-ish sounding board, as my team uses Angular in both of our front-ends (customer and admin).

RolandofGilead wrote:

crossposting

MoonDragon wrote:

Just came across a poem written in valid Perl 3.0, called "Black Perl":

BEFOREHAND: close door, each window & exit; wait until time. open spellbook, study, read (scan, select, tell us); write it, print the hex while each watches, reverse its length, write again; kill spiders, pop them, chop, split, kill them. unlink arms, shift, wait & listen (listening, wait), sort the flock (then, warn the "goats" & kill the "sheep"); kill them, dump qualms, shift moralities, values aside, each one; die sheep! die to reverse the system you accept (reject, respect); next step, kill the next sacrifice, each sacrifice, wait, redo ritual until "all the spirits are pleased"; do it ("as they say"). do it(*everyone***must***participate***in***forbidden**s*e*x*). return last victim; package body; exit crypt (time, times & "half a time") & close it, select (quickly) & warn your next victim; AFTERWARDS: tell nobody. wait, wait until time; wait until next year, next decade; sleep, sleep, die yourself, die at last # Larry Wall

Code poetry is delicious. OM NOM NOM.

I'm having a blast with Protractor, webdriverjs and grunt.

My job is pretty awesome, even if one of my stories this sprint is to clean up the compiler and Resharper warnings on the web third of our new product.

Any given sprint can see me making PageObjectModels for future E2E tests I a test-first mode, implementing a new feature for the AngularJS-ASP.Net MVC app, refactoring a back end API, tracking down who broke the overnight integration tests in TeamCity, researching UI improvements for our logging server, and so much more.

We have about a dozen senior type devs who are all rather talented, an IT team that is amazing, a CTO that will jump in and code or qa a story if needed, but who also doesn't micromanage and honestly doesn't want us working weekends or pulling all nighters.

Management and sales pretty much leave us alone, allowing priorities to flow from the product team to us.

It's pretty awesome to have a job where I'm treated like the skilled, intelligent, problem-solving human being I am.

Maybe I should have posted this in How's Work Been, but it started out about the coding part of my job.

I found out what Dependency Injection is!

Remember back when, after about say, four days/weeks/months of learning C++ and you get the notion that it'd be cool to get back a value of a particular type by inputting a string? Then you actually try it out and find it to be tedious as hell and swear to never do it again?
It's like that, but automated so it's easier.

Good for you duckilama.

IMAGE(http://i.imgur.com/oyTPssF.jpg)

We need McIrish to come visit us in NYC and help us get our process streamlined! It's taking for ever for our devs to get changes published and verified on the website!

Show up at their office, connect to the wifi, run a speed test:

IMAGE(http://i.imgur.com/ijp2NSu.png?1)

Grab a wired drop, run speed test, get same result.

Found a nice little incompatibility with MySQL and Python today. I calculate an internal surrogate key to figure out the user's age in years at the time they post a piece of content. Lots of my rollup queries at the end of the ETL run use this bit of MySQL:

DATE_FORMAT(FROM_DAYS(fd.createdOnTimeSk - fu.birthDateTimeSk), '%Y') + 1

Problem 1: Python thinks '%Y' is a string formatting code like "%s" or "%d", so it's invalid if I don't escape the '%' and make it '%%Y'.
Problem 2: That doesn't work, because the ORM (peewee) modifies the raw SQL string multiple times through the stack, so to make it work using SQL, I'd have to use something like '%%%%%%%%Y', with some power-of-2 number of '%' characters that get formatted out at every level.

Much easier to just write my own helper function in Python, which was part of the point of ripping out the ETL in the first place, but still, formatting codes can be a pain in the ass.

Pass it in as a bind variable. (Yeah, annoying, but lets the DB stack take care of quoting for you.)

I find it kind of ridiculous that there would be multiple levels of string formatting going on in that stack, but then I never use ORMs, so.

Or to put it another way: It's not Python or MySQL, it's your ORM. All that would happen with the standard Python DB API is one level of interpreting % as introducing a bind variable, if your DB driver uses Python format string syntax instead of :foo or :1 or ? syntax.

Hypatian wrote:

Pass it in as a bind variable. (Yeah, annoying, but lets the DB stack take care of quoting for you.)

I find it kind of ridiculous that there would be multiple levels of string formatting going on in that stack, but then I never use ORMs, so.

Or to put it another way: It's not Python or MySQL, it's your ORM. All that would happen with the standard Python DB API is one level of interpreting % as introducing a bind variable, if your DB driver uses Python format string syntax instead of :foo or :1 or ? syntax.

Yeah, turns out it's kinda sh*tty for raw SQL, and uses ? instead of named parameters. There's only one parameter anyway, which is a company ID, so I wound up validating the crap out of the parameter to avoid SQL injection and bad values, then just using "sql statement".format(**{"company": company_id}).

They really should be stored procedures, but for some reason, the consultant who designed this system warned us off of those. And onto MySQL. And using Kettle, which as of two minutes ago, I have stripped entirely from my ETL. Sneak preview of my JIRA ticket resolve comment:

"Kettle is dead! Long livIMAGE(http://i.imgur.com/lmv1XcB.jpg)"

I'm finding working in an ad agency to be a little bit of survival. I'm not sure if I'll make it, either. The company is great. The people are great. And those are the reasons I left for where I did. The thing that's shocked me is just how almost antagonistic we are to engineering outside of JavaScript. There's work to be done on back-end systems, but we don't seem to seek that work. And the kind of work I do either isn't appreciated or is considered "just plumbing". It's starting to wear on me to be considered both unimportant and my work to be uninteresting compared to the design aspect of the work. I don't know what to do with that.

Sounds a little bit like when I worked on Wall St. The traders either couldn't figure out why you were employed at all or were super pissed at you because something had gone wrong. So you're either irrelevant or the most important person in the world, but in a bad way. It's possible to make significant changes in a situation like that, but you really have to take the initiative to do so. Advertisers are super competitive, so you need to decide if you're just there to pull a paycheck or if you're willing to push for more.

If you need resources, maybe put together a demo that shows some really cool thing that's visible from a user perspective, something the advertisers would care about, and show it to one of the more technically-minded important people. But be sure to have all your ducks in a row in terms of delivery time and what you need to get there. People like that are very results-oriented, and if you're just looking for a thumbs-up they'll think you're wasting their time. As far as the estimate itself, you can build in whatever marginally related back-end changes you want and take care of everything. The trick is using something the advertisers can understand to drive the improvements.