The Joys Of Programming

Nightmare wrote:

I got to and finished the chapter on Scala in Seven Languages in Seven Weeks. I think I'm in love; I will certainly be doing some more book-larnin' on it. A low-friction, OO + functional language that has great interoperability with Java and library support for easy concurrency? I'd like some more of that!

Wait til you get to Clojure. Sploosh.

Nightmare wrote:

I got to and finished the chapter on Scala in Seven Languages in Seven Weeks. I think I'm in love; I will certainly be doing some more book-larnin' on it. A low-friction, OO + functional language that has great interoperability with Java and library support for easy concurrency? I'd like some more of that!

Seven Languages in Seven Weeks is up next on my reading list - its on the shelf at home now. I've scanned through it a bit and looks like a cool assortment of languages.

Bonus_Eruptus wrote:
Nightmare wrote:

I got to and finished the chapter on Scala in Seven Languages in Seven Weeks. I think I'm in love; I will certainly be doing some more book-larnin' on it. A low-friction, OO + functional language that has great interoperability with Java and library support for easy concurrency? I'd like some more of that!

Wait til you get to Clojure. Sploosh.

Clojure is on my list of languages to learn, but it has not made the cut yet due to my chronic fear of Lisp (beaten into me during my college days). Scala was further down the list, but has jumped to the top after reading the Scala section of Seven Languages. I have a couple of Scala books on their way; I haven't been this excited about a language in a long long time.

Nightmare wrote:
Bonus_Eruptus wrote:
Nightmare wrote:

I got to and finished the chapter on Scala in Seven Languages in Seven Weeks. I think I'm in love; I will certainly be doing some more book-larnin' on it. A low-friction, OO + functional language that has great interoperability with Java and library support for easy concurrency? I'd like some more of that!

Wait til you get to Clojure. Sploosh.

Clojure is on my list of languages to learn, but it has not made the cut yet due to my chronic fear of Lisp (beaten into me during my college days). Scala was further down the list, but has jumped to the top after reading the Scala section of Seven Languages. I have a couple of Scala books on their way; I haven't been this excited about a language in a long long time.

Here's a fun programming assignment to try out when learning functional languages:

http://www.cis.udel.edu/~decker/cour...

I did it in Lisp in college and then again in Erlang for fun to learn the language. Really fun project, in my opinion.

I'm very interested in Scala and Clojure. Been meaning to get to my copy of the 7 weeks book.

Mixolyde wrote:
Nightmare wrote:
Bonus_Eruptus wrote:
Nightmare wrote:

I got to and finished the chapter on Scala in Seven Languages in Seven Weeks. I think I'm in love; I will certainly be doing some more book-larnin' on it. A low-friction, OO + functional language that has great interoperability with Java and library support for easy concurrency? I'd like some more of that!

Wait til you get to Clojure. Sploosh.

Clojure is on my list of languages to learn, but it has not made the cut yet due to my chronic fear of Lisp (beaten into me during my college days). Scala was further down the list, but has jumped to the top after reading the Scala section of Seven Languages. I have a couple of Scala books on their way; I haven't been this excited about a language in a long long time.

Here's a fun programming assignment to try out when learning functional languages:

http://www.cis.udel.edu/~decker/cour...

I did it in Lisp in college and then again in Erlang for fun to learn the language. Really fun project, in my opinion.

I remember reading about your Erlang implementations on your blog

Nightmare wrote:
Mixolyde wrote:
Nightmare wrote:
Bonus_Eruptus wrote:
Nightmare wrote:

I got to and finished the chapter on Scala in Seven Languages in Seven Weeks. I think I'm in love; I will certainly be doing some more book-larnin' on it. A low-friction, OO + functional language that has great interoperability with Java and library support for easy concurrency? I'd like some more of that!

Wait til you get to Clojure. Sploosh.

Clojure is on my list of languages to learn, but it has not made the cut yet due to my chronic fear of Lisp (beaten into me during my college days). Scala was further down the list, but has jumped to the top after reading the Scala section of Seven Languages. I have a couple of Scala books on their way; I haven't been this excited about a language in a long long time.

Here's a fun programming assignment to try out when learning functional languages:

http://www.cis.udel.edu/~decker/cour...

I did it in Lisp in college and then again in Erlang for fun to learn the language. Really fun project, in my opinion.

I remember reading about your Erlang implementations on your blog :)

I wouldn't mind reading those. Link, please.

Note: I am a skimmer

Has anybody done any dabbling with Android development. I've heard it's pretty much straight up java w/ some android specific APIs. I've been interesting in giving it a whirl ever since I switched from iphone to Android.

http://techhouse.us/wordpress-mu/brianw/category/erlang/

There are my erlang posts, though you'll want to start at the bottom.

I never did write a post to celebrate completing the assignment. I did get it to work successfully with an A* heuristic search. When I tried to do a parallel implementation I hit the process number limit in the Erlang VM pretty quickly, (about 12 million IIRC).

I was thinking of writing a simple Entity System for games development next. I started some telnet mu* code, but didn't get very far. Just a little login and connection work. Wrote some maze generators, but they're not very good, either.

Radical Ans wrote:

Note: I am a skimmer

Has anybody done any dabbling with Android development. I've heard it's pretty much straight up java w/ some android specific APIs. I've been interesting in giving it a whirl ever since I switched from iphone to Android.

The development kit and Eclipse plugins are pretty easy to use and get started in, definitely. I toyed with a maze generating game for a bit.

Radical Ans wrote:

Note: I am a skimmer

Has anybody done any dabbling with Android development. I've heard it's pretty much straight up java w/ some android specific APIs. I've been interesting in giving it a whirl ever since I switched from iphone to Android.

On the previous page,

trueheart78 wrote:

Started reading Android Apps for Absolute Beginners yesterday. No idea what I'm going to do with it, yet, but I'm sure I'll figure something out. It's completely up my alley, though, so there is that :D

Haven't taken more time with it yet, but enjoyed it thus far. I've got Safari Books Online through work, so this is a nice way to learn for me.

trueheart78 wrote:
Radical Ans wrote:

Note: I am a skimmer

Has anybody done any dabbling with Android development. I've heard it's pretty much straight up java w/ some android specific APIs. I've been interesting in giving it a whirl ever since I switched from iphone to Android.

On the previous page,

trueheart78 wrote:

Started reading Android Apps for Absolute Beginners yesterday. No idea what I'm going to do with it, yet, but I'm sure I'll figure something out. It's completely up my alley, though, so there is that :D

Haven't taken more time with it yet, but enjoyed it thus far. I've got Safari Books Online through work, so this is a nice way to learn for me.

See, I told you I was a skimmer! I actually think I saw that book at my local library. I'll have to check that out. The only problem is finding the time to mess around with this stuff.

Radical Ans wrote:

Note: I am a skimmer

Has anybody done any dabbling with Android development. I've heard it's pretty much straight up java w/ some android specific APIs. I've been interesting in giving it a whirl ever since I switched from iphone to Android.

I've just finished my first WP7 app (still looking for German/Italian translators for localization), and am getting ready to re-write it for Android, so I've done a very slight bit of dabbling. Doesn't seem too difficult so far.

Bonus_Eruptus wrote:
Radical Ans wrote:

Note: I am a skimmer

Has anybody done any dabbling with Android development. I've heard it's pretty much straight up java w/ some android specific APIs. I've been interesting in giving it a whirl ever since I switched from iphone to Android.

I've just finished my first WP7 app (still looking for German/Italian translators for localization), and am getting ready to re-write it for Android, so I've done a very slight bit of dabbling. Doesn't seem too difficult so far.

Half my problem seems to be thinking of what I want to make. I was thinking of doing a TF2 backpack viewer, but somebody already beat me to the punch with that one. Gotta think on it some.

Nightmare, Bonus_Eruptus:

Here's a zip of all my erlang code for the train problem, including my various A* heuristic stuff and some unit tests that should show how to call various things. It looks like I got at least two heuristics working, I'm not sure if the out of order one was completed.

Erlang Zip

Mixolyde wrote:

Nightmare, Bonus_Eruptus:

Here's a zip of all my erlang code for the train problem, including my various A* heuristic stuff and some unit tests that should show how to call various things. It looks like I got at least two heuristics working, I'm not sure if the out of order one was completed.

Erlang Zip

Cool, downloading! Thanks!

Oh how I would like to apply for this, except the fact of being in OH and in a job that wouldn't take kindly to being gone for 6 weeks...
IGN Code-Foo Challenge

Had a code review yesterday... it was rough...

We were looking over a library module I had written in C. One of the guys used to work at Bell labs w/ Dennis Ritchie. Needless to say I was schooled. In a good kind of way though. The kind of thing that hurts, but will make you better in the long run.

You're very lucky to have someone that senior as a mentor. The mental discipline in those old programmers is fearsome. He's probably forgotten enough to fill whole books.

Malor wrote:

You're very lucky to have someone that senior as a mentor. The mental discipline in those old programmers is fearsome. He's probably forgotten enough to fill whole books.

I wholeheartedly agree. While the experience of having your code ripped apart can be rough on your self esteem. I'm glad to have been part of the experience.

I'm jealous! That's an awesome experience. As an undergrad, I had the same advisor that Ritchie had...but as much as he liked to talk, I never got any feedback like that. He did get Ritchie to come speak to our ACM chapter, which was really awe-inspiring.

Yeah, but imagine how impressive it'll be if and when he says the code is good. I'm not even a programmer, Ans, and I'm a little jealous of you, bruised ego and all.

Malor wrote:

Yeah, but imagine how impressive it'll be if and when he says the code is good. I'm not even a programmer, Ans, and I'm a little jealous of you, bruised ego and all.

That's what I've been working towards yesterday and today. It's a ton of work but it'll be worth it in the end.

Radical Ans wrote:
Malor wrote:

Yeah, but imagine how impressive it'll be if and when he says the code is good. I'm not even a programmer, Ans, and I'm a little jealous of you, bruised ego and all.

That's what I've been working towards yesterday and today. It's a ton of work but it'll be worth it in the end.

I've never been 100% convinced about the effectiveness of code reviews, especially ones like this (and maybe I'm interpreting this incorrectly) where it seems very much like the seniors analyse the juniors (as it were). Code reviews serve a worthwhile purpose: making sure everyone's on the same page; following guidelines and conventions and making sure nobody's doing anything glaringly awful, but in terms of de-constructing someone's working and giving it line by line approval I'm not so sure.

Maybe it 's different in other sectors, but where I work there are only really two metrics that determine "good" code: 1. is it consistent and readable to others and 2. does it do what it supposed to in a timely fashion. For the most part code reviews are useless for determining number 2, and 1 very rarely requires code to be pored over and analysed to be apparent. We like to keep our code reviews informal, the developers all sit in a group and review each other's projects, highlighting bits we thought were done well and others we thought were done poorly and discussing them. That way no one feels as thought they're being schooled or vicitmised (and it isn't something anyone dreads), but hopefully everyone learns from one another. It also allows the senior devs an equal opportunity to pick something up from a new start as it does the other way round. Plus, on occasion, they have also been hilarious :).

It would be nice to have a seasoned mentor however, which is something we arguably lack. Anyway, just my (probably unwanted) two cents Hope you're code updates go well and you have an easier ride next time.

Radical Ans wrote:
Malor wrote:

You're very lucky to have someone that senior as a mentor. The mental discipline in those old programmers is fearsome. He's probably forgotten enough to fill whole books.

I wholeheartedly agree. While the experience of having your code ripped apart can be rough on your self esteem. I'm glad to have been part of the experience.

I think I love you all. I've been through that a lot of times, and I believe I'm better for it. Having Mr. Gates call bullsh*t on your code himself is an educational experience (thank goodness it was mostly aimed at my boss).

But maybe you guys can help me.

Now I'm standing gingerly in the footprints of that senior, and I'm having a very hard slog trying to interface with these guys we inherited from our company merger who have never worked for anything bigger than a mom-and-pop shop with one or two script-kiddies who call themselves programmers.

They think that 2000 hits a week is a huge load (some of our sites do that much in a minute), they don't use server-side anything unless forced, and they don't track their bugs or do design documents, and they use 1-letter variable names all over the place. They just don't understand there's a reason for stuff like communication, comments and documentation. And they've been handed the task of doing a look-and-feel upgrade to one of our projects.

That sort of stuff works okay when all you have to do is shout at the coding-monkey over the cubicle wall and you're working a contract that means you'll never have to see this code again. When you're in four different states and two territories across seven time-zones trying to coordinate a launch of a large n-tier project that involves 52 websites that will require several weekly maintenance processes to maintain, it's a whole 'nother ballgame and it's turning into a major culture clash.

For example: today's giant CharlieFoxtrot over the fact their designer/SEO guy randomly decided this project doesn't need a compact privacy policy.

They decided they were ready to launch and tossed it over the wall to me for testing this morning. The guy didn't tell anyone he magically decided this (and several other feature revisions) on his own; he just had the programmer in arm's reach code it that way. There is no documentation to tell me what he had his coders work to and he got mad and made a bunch of smart alec comments when I asked for it last week. All I could work from to build test cases was the functioning of the site he's replacing, my understanding of what we're trying to do here, and whatever I could glean from his two Powerpoint presentations sprinkled heavily with the word heuristics. I do not think that word means what he thinks it means. I guess I should have known better, but I can't imagine working on something this complex without writing something down. Heck, scrawl on a napkin, I don't care.

So now I have to explain to them that outside of the concept of best practices, a) it solves a lot of technical issues with user's anti-virus software and client-side browser nonsense and b) it's required by law in several states now in order to do e-commerce. We already have one in place. The server configuration is all done; all he has to do is copy in the human-readable one and modify the skin-work to match his new look and feel. Would take about 10 minutes and he doesn't have to break his baby to do it; all he has to do is add a link to the end of the copyright string, just like his hero Google does.

Instead, he came unglued and accused me of "making a case against him" because he found out I have been keeping a bug list and putting it out on his precious Sharepoint server as his boss requested so he, all our up-line management, our backend gal, the CTO, and the programmer who has to fix the bugs can see it and we can coordinate what's been fixed and what's still outstanding/by design/pushed out past launch. He's gone from his boss (an ex-cheerleader producer type) to one of the VP's (who still works on a typewriter) today on this. I don't know how that's gone.

Since he's the one who insisted that I do a test pass and that we have to know where we're at in that process to finalize the launch planning and all these people have to be involved in that decision, I don't understand how he wants it done. And his boss the cheerleader got mad at me for sending email announcing that we'd done a build that rebooted the servers.

Ironically, this also brings up the point that the other three projects he's running (that also have e-commerce components) don't have any privacy policies in place (either compact or human-readable) and amazingly enough, have pernicious lingering issues with third party cookies because they use a lot of third party sources in their code. Can't wait to start that conversation, and with my new role as company-wide tester I'm gonna have to.

The coder's not raising a fuss; he likes the list and he's got his own problems with our DBA and his cowboying into the SQL server that has to support his project, all our backend stuff, and all our other sites and making changes to our common databases that break our other sites without so much as a by-your-leave. The concept of dependencies just never dawned on him. He's also being introduced to the fine art of version control.

Oh, and the fact that all that is riding on one SQL server is the huge goat-rodeo we've been having with the CTO because he refuses to believe our backend processes on 4 and a half terabytes of data (it grows by about 90,000 files a month) and the hit all those files take from search bots could somehow be impacting the database and the errors we get every time those processes kick in are because that offline process is coded in Perl instead of Javascript (I wish I was frickin' joking).

Wow. You just made me feel so much better about my day. I honestly don't have any advice, except maybe get everyone in the same room, go over the facts of what happened (and is happening), just so everyone knows. With some good luck, someone else will see how messed up it is and say something....if not, well, maybe that's not so good advice.

You missed the bit about four states and two territories across seven time-zones, didn't you.

The only correct answer is the application of a carpet cutter to the brake lines and a nice steep slope with a sharp 90 degree turn at the end and some poor safety railings on that turn..

@Momgamer:

Ouch, that's a difficult one. I don't know if it's any help, but we went through something similar (on a smaller scale, but the same basic idea) a few years ago. The company was looking to expand from what was a small (almost bedroom-sized) operation, essentially revolving around the ideas and code of a couple of individuals, into a proper code-shop capable of handling multiple simultaneous projects and making bids on increasingly complex and worthwhile tenders. Of course the end goal and the current operation weren't exactly compatible. In the end, after much wrangling and hard work, they were able to implement proper project management, sensible processes and good Q.A., however, we lost some of the original individuals who weren't prepared to make the change to their M.O. to support what was required. Sounds like something similar is happening at your place and it may mean just waiting to see who takes it up and who bails on it.

Q.A. is especially hard if they've been working for a long time without it, you wind up with people suddenly being told they write buggy code (as they've done all along, it's what coders do) when previously they've believed it's been pristine (hell, every time they tried hitting F5 it all seemed well and dandy). It might be possible to sway everyone to see the benefits of proper processes and methodologies, but it'll be really hard if the cultures have previously been so different.

Good luck, it'll be worth it once it's done (although getting them to see that might not be easy).

momgamer wrote:

You missed the bit about four states and two territories across seven time-zones, didn't you. ;)

DOH!