Coding Blocks - What programmer do you want to be?
Episode Date: June 22, 2014“Water Cooler” episode talking about sweet sugary C# kisses, JavaScript as a first language, T-shaped developers, how to get addicted to drugs and…Where in the World is Carmen Sandiego? Points o...f Interest Keep the keys! Go follow @trentapple and check his site out at www.trentapple.com! A year’s worth of tech podcasts! from @patrikdahlen NativeScript – Cross […]
Transcript
Discussion (0)
you're listening to coding blocks episode 12 subscribe to us and leave us a review on itunes
stitcher and more using your favorite podcast app visit us at codingblocks.net where you can
find show notes examples discussion and more and send your feedback questions and rants to
comments at codingblocks.net and follow us on twitter at codingblocks and on facebook at
facebook.com slash codingblocks and with that with that, welcome to CodingBlocks.
I'm back with my voice.
I'm Alan Underwood.
I'm Joe Zach.
And I'm Michael Outlaw.
And today, today's going to be just a water cooler discussion.
Yeah, we've been talking a little bit about a few things, you know, kind of what we want
to be when we grow up and what life's like for new developers.
Whoa, whoa, whoa, whoa, whoa. I'm not growing up. I when we grow up and what life's like for new developers. Whoa, whoa, whoa.
I'm not growing up.
I refuse to grow up.
It's nice to dream, isn't it?
What?
My wife's grandma, she once said, I didn't plan on mentioning this,
but my wife had asked for something,
and her grandma told her that it was good to want things.
Nice.
Is this like the people in hell want ice water?
Sounds about right.
Doesn't mean they get it.
Yeah, something like that.
It's good to want things.
Yep.
So with that, we have some podcast news today.
What do we got?
Yeah, first off, I mentioned an article on the last post, our last episode,
about signing packages in NuGet and kind of what to do with your keys
and how it's a pain for open source.
And I got some really nice comments from Peter and Vlad.
And you can check that out on the blog post.
We'll have a link to it.
But basically, they both told me the same thing,
which was, of course, you have to use the same key.
Yeah.
So my little strategy there of just generating a new one every time
definitely loses the authenticity factor.
So not such a great idea,
but hey, you live, you learn.
And also I wanted to mention the SwedishCoder.net.
This is a guy we've mentioned on the podcast before,
Patrick Dahlin,
and he is actually getting really close
to having listened to 365 podcasts.
And if you go to his blog and kind of scroll through,
you'll get to see he's actually written notes on each one.
And I thought this was really cool because that's a lot of time.
When you think about 360, you know, generally an hour worth, like I don't even know how many weeks that is.
But that's a lot of time to really invest in yourself.
And I thought that was really cool that he actually took the time to write up the notes about it.
And so we probably actually remember some of the stuff that he learned.
Yeah, I think that might be the more noteworthy part of of is to take the notes about it yeah i mean he writes a decent little
post about each one of them and you imagine writing a note for every show you listen to
yeah and i mean honestly the cool thing is i went up there and was looking at them and he's got some
good references so i'm going to go check out some of these as well so yeah i think scott
hanselman's actually talked before about writing a blog so that he can google himself later
be like oh what's that cool thing i was looking at last month or you know two years ago and just Yeah, I think Scott Hanselman's actually talked before about writing a blog so that he can Google himself later.
Be like, oh, what's that cool thing I was looking at last month or two years ago?
And just kind of Google it and find it.
There you go.
So inspiration for some of you guys out there.
And also we want to send out some thanks to Trent Apple, at Trent Apple on Twitter.
And you can find him at www.trentapple.com.
He actually left us a review on iTunes, a five-star review, as did Brock as well.
Appreciate both of those.
Super appreciate them.
And another little piece of news that came up. I always get stuff about a cool last name.
But you've got to admit, to this day and age, for technology, that guy's got a pretty good last name.
Yeah, Apple's right up there, right?
That's not one you forget.
No, it would really suck for him if he hates Apple products.
Yeah, I mean, three.NET guys here sitting with Apple computers, so that tells you a little bit of something.
That's true.
Well, as soon as they start making outlaw computers, then maybe I'll focus on that. So with the last piece of news I have for the week,
it's Telerik came out with a new thing called NativeScript,
which is a cross-platform mobile development JavaScript-type language.
So Telerik is pushing these things out.
I don't know when it's actually going live, but we have a link to it,
so you can check that out.
Yet another cross-platform mobile development framework and also in other news uh the reflection of control article i posted
that out to reddit and got some interesting feedback on both reddit and on the site on
on codingbox.net um some interesting feedback some people pointing out uh mef or uh the service locator
pattern um yes those kind of similar ways of solving the problem but mbf is heavy man i don't
know anyone who's ever enjoyed working with it yeah you know i mean there were some some of the
guys the feedback you know there were guys who did and guys who voiced opinions similar to yours. Yeah, it's good to hear both sides of it.
So, moving right along.
We're on to our show topic.
I don't want to grow up now.
Should we be singing a Toys R Us song?
Well, how did you guys get into programming?
Anyway, when you started thinking about working in this field,
what did you want to be?
Oh, man.
I started programming, I think, in high school
because I had a little TRS-80.
So video games is what you're saying.
No, no, it wasn't video games.
It was actually, you know, we had these.
I was taking algebra or whatever, whatever age I was in.
And I was like, oh, this makes sense.
So I can write a little program that I can just plug in some numbers and it'll do my homework for me.
Fantastic.
So that's how it started.
But, like, getting into it in the real world
it was literally we had some inefficient processes at a job i was working at i was like
i think we can automate these and so i took something that took typically about eight hours
of a person's time in a day and dropped it down to about a minute so you know it was just it was
one of those you see something you know there's got to be a better way right yeah well for me it
was definitely video games uh you know world cups going on right now my wife was talking about how
she didn't recognize some of the flags i was like yo carmen san diego suspect flew off in a plane
flying a green and white flag go to morocco yes yeah oh man that was fun times yeah i love that
and nintendo and there's a lot of stuff around then.
My parents were both teachers, and we used to check out Apple II and take it home for the summer.
And I got to kind of play around and learn on that, and that was really cool.
So because I'm so young, it's hard to believe that I would understand this reference.
But totally war games.
Oh, absolutely.
That didn't really inspire me.
I was a kid at that point.
Yeah, I wasn't born yet. so it was kind of like I saw that movie on Netflix.
Right.
But Michael's still 21.
Yeah.
It's weird.
So one of the things we first wanted to talk about was this whole idea that I actually heard on a MacBreak podcast recently
where they just kind of lobbed this out there like hey what do you i mean
shouldn't people almost just consider using javascript as a first language now and i heard
that and i think i like twitched a few times and then i was like well wait a second this has a lot
of merit to it yeah f12 and you've got it right there right yeah i mean you got a free browser
that you can use it's got i mean webkit's got all these tools in it to be able to debug this stuff.
I mean, you don't really need a lot to get going.
And today, I mean, you totally, I mean, if you want to learn how to do things wrong,
yeah, you should totally pick up JavaScript as your first language.
Okay, so in fairness, it's loosey-goosey, right?
Like, there's no typing.
There's none of that.
Like, you can kind of cheat it in some places but but realistically so check this out like one of the things that
kind of makes a lot of sense is you have things like phone gap you have app accelerator slash
titanium you have um like swift apparently is following the same type of syntax obviously it's
going to be a little bit different but you have all these things that right now,
if you just really want to spend some time doing some JavaScript,
you could literally deploy out to Android, iOS, Windows Phone.
You forgot NativeScript that you mentioned earlier.
NativeScript, which is going to be a JavaScript-only thing.
TypeScript.
Now you've got Node.js, which is a server-side JavaScript.
Hey, welcome to learning a thousand different modules that you'll have to use.
I mean, it's insane.
Yeah, buying even Windows apps now, you know, like the Windows 8 apps.
It's crazy.
Unity, to make 3D games in JavaScript.
So just one of those things I wanted to toss out because, I mean, I personally am a fan of JavaScript because of what you can do with it. I'm not in love with the language by any means,
but there is a lot of things that you could do and do well just knowing JavaScript and nothing else.
I have such mixed feelings about JavaScript because, on the one hand, I don't like it.
Because it's a lot of the things that I don't like.
You mentioned it being loosey-goosey.
That's one of the things I don't like about it. I am a fan of the things that I don't like, like you mentioned it being loosey-goosey, that's one of the things I don't like about it.
I am a fan of the typed languages.
I like the structure being there.
And so JavaScript not having that, it's kind of like, whoa, whoa, whoa, wait a minute, wait a minute, wait a minute, wait a minute.
We've got to have some rules about how we do this.
But at the same time, it is so wildly popular.
It is so fast.
It does do things incredibly well that it does make me want to do
more of it and and do it well but i just it's not it's not my preference well i'll say this so i
just recently and i know i'm way behind the curve on this one but i just recently started messing
with node.js and the other day it's totally been replaced by like three
times right yeah yeah it's like you know two years old now yeah but i mean i took node.js yeoman and
was able to scaffold up an angular edon.js oh my god it's ridiculous but i was able to scaffold up
an application and like seriously it took me less than 20 minutes to scaffold an entire application using yeoman node
and and some base install packages and it's done so it so i know i mean there's obviously a place
for javascript it's not going anywhere html5 was trying to be the answer to a lot of things
but javascript is here for a long time to stay and it it's just growing. Yeah, I mean, absolutely. It's definitely, okay, so I remember a few years back,
Perl was often called the duct tape of the internet, right?
But I think that that has definitely,
now JavaScript has definitely owned that one now.
So I agree, it's definitely not going anywhere,
and there are some things that it does fantastic,
but it feels like you can't even use it successfully if you're not using some other package.
Agreed.
You need to be investing in libraries, some third-party library, in order to make it worthwhile.
Nobody should be writing it.
Other than learning purposes, I will say, nobody should be writing JavaScript code from scratch to do much of anything.
Unless they are trying to build a library.
Because at this point, you've got all these cross-browser compatibility issues
and all that kind of stuff, unless we're talking about server-side type stuff.
But I guess at its core, that's part of what bothers me about it, though.
Because you, like, name another language that you would say that about.
Crickets.
No, I don't know.
I mean, so I'll say this.
Like, even in Java, one of the things, and we're going to go further into this later,
but one of the things about Java that drove me crazy is there were all these frameworks and libraries.
And so it's the same type thing.
Yes, you can do a lot with Java.
Those totally, I see where you're wanting to go with that.
Okay, so let's just call out like Spring as a prime example, right?
Right.
But I view that separately, though.
That is like a practice that Java developer, the Java community has picked up on and carried
on with.
But you can still, without Spring,
write good Java code,
which might sound like an oxymoron to some,
without a problem.
Now with an IDE,
the IDEs are so built around Maven
or other build tools now,
it's hard to just kind of notepad and JVAC it.
Well, now, okay.
I mean, if we're going to go talking to Java now.
Like, we go into a whole different.
No, but, I mean, I guess that's where I'm getting is you can say the same thing with most any language.
If you want to get the most out of the languages, you're going to be using third-party things.
The most out of it.
I would absolutely agree with that.
So, like, you wouldn't do.NET.
You wouldn't use, you know, you wouldn't roll your own logging in.NET net you'd use a log for net or or an equivalent in java uh you know
log for j you wouldn't yeah i'm i'm a hundred percent on you you agree with you on that uh
like a newton soft for for json yes absolutely you would more often than not you're not going
to roll your own but what i'm saying though is like is with JavaScript, it seems like the default is you're not even writing pure JavaScript nine times out of ten.
You're using jQuery, or at a minimum, you're using some other third party.
But jQuery is more like a bolt-on, though.
It's just an extension to the language, as opposed to...
Well, can you say that about any of them?
You could say that about groovy and java but you gotta go like if you go angular you gotta go angular all in there's no sprinkling it here and there yeah i totally agree there
there's definitely some packages where you're all in but let's get back to just the javascript
portion of it another couple examples that i have like if you want to write a Chrome plugin, you can pretty much do it in JavaScript, right?
And now Chrome OS
is big, and you can pretty
much do the same type things that
will go cross
application type stuff.
It does make me wonder, too, though, like if some of
its performance is just because, like so the
very thing that I like, that I like
about like a C Sharp, for example, the structure,
the type language aspect
of it makes me wonder if
the fact that that's not there in JavaScript
is the reason why it performs so fast
and so well you know because
it is smaller
maybe I would think it would actually
be slower though because anytime
you're doing conversions or anything like it's
having to figure things out behind the scenes right like
you're anytime you do a plus it's going to assume concatenation unless you're telling it
to do a parse float or parse it so it seems like it would be slower and more memory inefficient
than anything else so that's a good point um but the thing is is the the engines behind it have
gotten so fast like google's what is it it, something V8 is just incredibly fast,
which is what Node.js runs off of.
And apparently they're even improving upon that more.
Yeah, even within Firefox, there's like a set standard set of library calls
that if you use that, then it can compile it down into native code.
So, yeah, I mean, it it's definitely it's like a necessary evil
see i don't see it as an evil i like it my biggest problem is it's so um fragmented right now
because there's so many js libraries out there and picking one is literally like sticking your
flag in the ground saying this is what i'm But this goes exactly to your Java point, though.
You were talking about so many different frameworks
and packages in Java.
JavaScript is, now hold on.
JavaScript is way worse.
Yeah, it's on a whole other level.
It's frustrating.
You can't even go three weeks
without a new library coming out.
It's like, oh man, you're still using that one?
No, we've totally moved on.
And they all define the dollar sign.
Yeah, I mean, you've got Durandal,
you've got AngularJS, EmberJS mean you've got durandal you've got angular js ember js you got handlebars knockout uh booch i mean there's just backbone there's so
many and picking them is mind-numbing but from just a pure learning perspective i i have to say
what they threw out on that language though so but on a first because here's the thing you can
cheat oh oh in javascript and and several of the frameworks do that for you and so you can learn
basic concepts granted you're flying without any kind of safety net because there's interfaces
you don't really have interfaces but they they actually cheat things in various different libraries.
But this goes back to your point, though, from our last episode, Joe,
where one of the complaints about things like these patterns are the lack of functionality in the languages.
Yeah, they're just making up for deficiencies in C Sharp and Java.
Or you don't need that crap in JavaScript.
Yeah, and that's the whole thing.
I guess that's the beauty of JavaScript is people have built it in there
because they miss it or because they want to use it in a particular way.
But JavaScript's main purpose is to get things done, right?
It's almost like you throw the craftsman stuff out of the water,
which you
don't have to by the way especially if you're using frameworks but if you boil it down to
nuts and bolts you can do a lot of stuff with that little language and that's the thing about
it it's fairly simple right i mean made in 10 days well until it gets big if you're looking
at working on a big project you can't f1212, find definition, go to usages, none of that stuff.
No, you can.
I mean, a little bit.
You can.
Kind of.
It's so easy to slip stuff into global, though.
So if you do it correctly, all right.
But, you know, if you don't, and that's why it kind of scares me a little bit as a first language,
is that you can do stuff really in the wrong way.
You can do the bad parts of JavaScript.
Yeah, that's true.
That's true that's true
it's definitely an interesting topic i mean it was it really got my curiosity when they said that because well because it can be the backbone for doing things like this new swift language
that came out from apple which is very intriguing i mean this language runs faster than their native
objective c but it's very much like a scripting-type language.
So it's an interesting concept to start with that because it's easy to pick up.
And here's the thing.
You'll pick up some bad habits, but over time, I mean, how many of us ever started out programming perfectly?
Oh, gosh.
We all started out with bad habits.
Six months ago.
Well, I think Joe kind of hinted on this because there's a good book that I know that I've read.
I think Joe might have read it.
I'm not sure if you've read it yet.
I've gone through it a little bit.
It's a good O'Reilly book that if you haven't already checked out, you should, called JavaScript, The Good Parts.
It's by Douglas Crockford.
And it's a really good book, and it calls out things that you should do in JavaScript and things that you should avoid doing in JavaScript.
There's a funny picture where it's got the good parts on top of JavaScript,
like the entire language, and the good parts is a very tiny book
compared to the full-on JavaScript book.
But it's crazy that you've got to have that book, though.
Yeah.
Well, I mean, come on.
There's bad parts to every language.
I mean, in all honesty, there's stuff that you should avoid.
Equal, equal.
Yeah.
Equal, equal is pretty nasty.
I like equal, equal.
Not in JavaScript, you don't.
Why not?
What?
Why don't you like it?
You're supposed to use triple equal.
You're supposed to use triple equal.
Yes.
Yeah, because it does this weird coercion kind of stuff that has really weird results.
Equal, equal is fine.
No, don't say that.
Don't tell him that.
Don't tell him that.
But here's what I will say.
I mean, even though we're doing a...
I can't even get it out.
Even though we're doing a fireside chat,
I do want to throw something out there
for anybody doing JavaScript.
If you're doing things at a page level,
like putting function and then my function on a page,
you need to get away from that completely.
Yes, scope it.
If you're going to put methods or anything on a page put it inside
its own scope so create you know my page equal and then an object and put all your functions in
that don't have it on the page because it's global and if there includes coming from other pages or
modules that are on that same page you're likely going to run into collisions and overwrite your
own functions so globals are bad yeah, just avoid global functions in JavaScript.
It's a bad idea.
So, you know, if you had to develop a language, right,
it would take some time, right?
There's a lot to be done there.
Like how long do you think that it took to create JavaScript?
At least, you know.
First version.
A day or two.
A day or two?
Really?
You're aggressive, man.
I'm totally kidding.
It's just because I work fast.
I mean, most people would probably take months, but me personally, like two days.
Yeah, yeah.
Really?
Yeah, yeah.
You guys are putting that out there on the record.
If I recall, Wikipedia, I think it's a week.
Yeah, Outlaw's got the number.
He's just dangling this carrot out there.
Go ahead.
Well, I was hoping to get an answer from you, but yeah, it was 10 days.
That really is insane.
Yeah.
I mean, that's fast.
But really, again...
And I'm not sure how...
I know I'm going to butcher his...
Man, I should not talk about names.
Yes, Brendan. to butcher his uh man i should not brandon names yes brendan uh yeah he he was tasked with developing
it and did it in nine and ten days i mean here's the thing really at the heart of it where it
started it was a very simple language yeah i mean and it's come a long ways like it does a lot more
than javascript was never intended to grow the 80 heads that it has i don't believe but it just
turned into when dhtml took off it turned into what you know people turn to well that's the
problem with duct tape you end up overusing it but it's not duct tape it's actually fairly you
forget that there's gaffers tape i like you should use i like it and instead you use the duct tape
because it's everywhere and it's quick and available and it works about as good and you got duct tape on your duct tape and then it just all
comes off but that's where the frameworks come in and they help you on duct tape yourself so yeah
but so what do you what do you guys think of the original question what do you think about
javascript as a first language good idea i see i feel like you know someone coming out of college
if they ask me you know the thing
and you know i'm really going to dive in on javascript and i think that's a good idea i'd
have to say yeah i think uh there's a certainly enough momentum in the industry i don't think
you'd be wasting your time i'll put it this way um i i wouldn't even care so much as whether you're
going server side or client side if you want to do node.js i'd say absolutely if you wanted to go client
side i'd say pick one of the popular frameworks like angular because you won't be hungry for a
long time so that i would say that it's definitely not a bad choice to get familiar with well okay
wait a minute are we talking about this from the point of view of you know telling somebody from
like marketability or are we talking about this from the point of view of like a school
trying to put together a curriculum in which should they use?
I'm talking about earning.
Because when we talked about, when we said like, you know,
teaching it as a first language, I thought we meant at like a school level,
which they typically don't care about marketability so much.
No, I would not say Scholastic has anything to do with it.
I would say from a marketability and being able to get
yourself out there and market yourself to to to work to work on projects yeah great first language
yes i think it's perfect for that stay behind that but let's go to my take conceptual like
how much you want to hate your life from a from a you know from a classroom perspective
should it be the language of choice for teaching purposes no absolutely not no i still
think i still think which one scheme see uh structure isn't something in computer programming
i still think that c++ was excellent for that simply from the um concept that you actually
had to care about memory and all that whereas java was a better oo type because i mean it was like the granddaddy of
it all yeah but oh it's kind of over now right we're on the functional uh yeah i mean that does
seem to be a hot topic nowadays um but i i definitely say from a scholarly position javascript
should not be your baseline from a if you want to start working on projects,
it could be something that gets you into a position somewhere fairly quick.
Yeah, I feel like JavaScript is great for rapid development,
but not something you want to be maintaining a giant legacy JavaScript app.
No way.
It depends on how well it's written.
Have you ever seen one?
Yeah, yeah.
The problem is in four weeks your app is about to be legacy code. uh it depends on how well it's written well yeah have you ever seen one yeah yeah no the problem
is in four weeks your app is about to be legacy code yeah well that's pretty much everything
nowadays so yeah all right well so hopefully we hopefully we beat up javascript i mean don't get
me wrong i like it but i like what you can do with it yeah and there are some things that some people
do that it's just flat out amazing i'm like wow i can't believe you did that javascript but you pulled that off quite nicely yeah oh uh so speaking
of that one of the ones that uh people should check out that is um fairly new uh i think it's
famo.us well god i hope it is now yeah um so there's a new javascript library that came out
that's like all about like this hour
uh within the past month i believe that's not new then they've been working on it for like a year
but it's insane it's all about 3d uh rendering using javascript which scares me to death but
um it's actually really cool if you look at the demos like some of the stuff that they're doing
with it is beautiful so So that's one to look
at. And of course, AngularJS
is huge. And we mentioned some
of the other ones.
We have now
obliterated JS. Murdered
JavaScript. While we got your
attention, I want to remind you
to leave us a review on iTunes.
We really appreciate it. And thanks
to Trent and Brock for doing that this time.
So we really appreciate that
and lets us know how we're doing
and what we need to improve on.
Yeah, and seriously,
if there is something
you'd like for us to improve on,
please drop us a comment
at comments at codingblocks.net
or go up to our site
and hit the contact us button
and fill that out.
And you know what?
If you do us the favor
of giving us some feedback,
we'll return the favor. Drop us a line
and we'll be sure to mention you.
Yeah, tell us your preferred mention or shout out
and we'll drop you some time on the show.
Yeah, so it sounds like we all
kind of agree that JavaScript sucks.
No, no, no, no.
I thought that was the takeaway.
These two guys.
So if you were kind of going for
a traditional kind of oa language like c
java um then you know how do you know which one to pick and how do you really get started
with that nowadays all right so just so you guys know we actually restrained ourselves from talking
about this before the show because we we wanted to really get these ideas out there because
like you could see all of us like no no
no i can't say anything do we put on the gloves now and like duke this out well i mean the answer
is clearly java right it's open source it's got a huge community and if you didn't know any better
if you didn't know the sweet sugary kisses that c-sharp will give you then you would probably be
fine with java your entire life okay so so so this was uh let me put some background
to this this was kind of spurred by there was a reddit uh article that was uh you know um
in both the c-sharp red subreddit and in the java subreddit you know why would why pick c-sharp over
java and then why pick java over c-sh Sharp? And that's what kind of got me thinking about this when I saw this
because there was actually a lot of – there wasn't as much hating
as I thought that there might be,
but there was some good interesting information out there.
And it was more along the lines of if someone who is getting into this
from the start and they didn't pick JavaScript,
and they had decided on, okay, it's one of these two languages that I want to focus my career path on,
which one should I go down?
C Sharp or Java.
So what would be your decision, your deciding factors?
Not your decision.
We know what your decision is is but what would drive you so so joe okay so it is interesting because we haven't
talked about this already and he already hinted on something and that was the sweet sugary goodness
that is c-sharp so if you were already ignorant to that right and i don't mean that in a rude way
but if you just didn't know you haven't coded in about it, then I would have to recommend Java.
Because there's a large community for it.
There's a plethora of jobs for it.
All kinds of different platforms that you can be on.
From both a developer point of view, you could develop in Windows or Linux or Mac.
But from a target point of view, your application could run on a multitude of targets.
Android?
Yeah.
Not the same app. No, no, no.
But what I mean, though, is that depending on what you're writing, you could target multiple platforms for whatever the purpose might be.
With the same skill set.
With that same skill set.
But also, the Java community as a whole, though, there are, what would you call them?
Fanatics?
No.
Well, there are those. But I meant like programming good practices that the Java community is far more entrenched to than a.NET community, for example.
AOP, dependency injection, these things are like second nature.
Spring, a moment ago, that's a no-brainer on a Java project.
But yet in a C Sharp project, it's like, whoa, wait a minute, you want to do what?
Even unit testing Microsoft started pushing unit testing
just a few years ago and Java guys
were like what do you guys do
before that?
So if you were just starting out
then I would say yeah go ahead and
pick up you know start with Java
and pick up a
IntelliJ or whatever you want to use
but because then
the problem is going to be,
once you start using something like a Visual Studio,
that does have all the sugary goodness, as Joe put it in,
plus combined with a language like C Sharp
that has a slew of syntactic sugar just built into it.
It's elegant.
It is like, oh my God, it's like crack cocaine.
You cannot stop. stop yep so let me
put my twist on what you just said as far as how i would choose this and mine again comes from more
of the marketability side of things so we live in the atlanta area if it were me i would be looking
at the job boards to find out hey hey, what are people looking for?
And this is just purely not even looking at the language.
This is saying, okay, if I invest my time in mastering one of these two technologies, which one is going to see that I have food on my table, right?
And in the Atlanta area, fortunately, there's good of both. I would say that Java's probably a little bit more in demand in the Atlanta area,
but it's not such a disparity to where you're going to be having problems finding something to do.
So that would be my first thing.
The next thing that actually did drive me more towards.NET versus Java was,
while there are these fundamental things that they almost
take for granted, like Spring and that, what was infuriatingly frustrating for me was when
I was first looking to end doing Java, like I would look, hey, what should I use, this
or that?
And there were nothing, it seemed like there were no fewer than 20 different answers and
just flame wars broke out on all of them and so it was like okay in dot net you pretty much have or in c sharp
will say you have a couple of ways that are pretty much standard that you do things like if if you're
doing a web app you have web forms at nbc that's it like you don't really think about it much you
don't have all these extra things stacked on top and And if you're looking for an ORM, you got, you know, in Java, you have in Hibernate, you have this MyBaddest stuff,
you have you have all these different options. And.NET, what have you got? You got Entity Framework,
like you don't really have to look far for those extra things that you want to do. And it seemed
like it was more of a standard. And that was one of the things that was really nice for me is i didn't have to worry myself about am i investing in this technology
that is going to phase out next month versus in dot net it was like hey this is standard practice
this is what everybody uses just go for it so those two things for me really were key in both
marketability and ability to just ease myself into the language because everything
was already kind of standardized i do feel like we should point out though before you get a bunch
of hate mail in hibernate it's actually a dot net technology i meant hibernate i'm sorry not
hibernate geez that's that's what otherwise the hate mail send your hate mail to you yeah no
hibernate my baddest There were several other ones.
And don't get me wrong.
There's a few ORMs in.NET, but pretty much if you talk to anybody, it's entity.
So that was kind of my take on it.
Well, I mean, and even you mentioned MyBaddest.
I mean, that exists for.NET.
There's a.NET port as well.
And that's the thing. A lot of Java technologies,
there are similar or competing technologies or even just straight-up ports of it.
But they're just not as widely adopted.
Yeah, there's more of a defined...
In the.NET community.
Right, there's more of a,
you can see this path in front of you
and you know that path is the one you're going to take
because that's what the standards are. So that's kind of interesting. you know that path is when you're going to take because that's
what the standards are so that's kind of interesting but the other thing is again like you guys that
joe brought up is once you start programming in c sharp some of the niceties in that language just
they really captivate you and then and then visual studio in my opinion is probably the best ide that's
ever been created yeah ever what about what's your take on this, Joe?
Yeah, I can't go back now.
I'm stuck on C Sharp.
But if I was starting over again,
I think I would probably go Java, realistically.
For what reasons?
Oh, just, you know, it's open source.
It's prolific.
You know, Android's huge right now.
And even from marketability, you think, like, Google, IBM.
Oracle.
Oracle's what I was looking for.
Even Amazon.
Like, these are big Java shops, you know.
Like, Java's not going anywhere.
And C Sharp is Microsoft and everybody who uses Microsoft.
Yeah, I mean, I'm 100% on board with you.
But there's just so many, it's the little things that start to add up over time.
So, like, you know, even, okay, so I can tell, I brought up IntelliJ as an example, right?
Like, in the Java world, you know, if you have a bunch of unit tests in, okay, let me go back.
If you're in Visual Studio and you have a bunch of unit tests, you can very easily just run the single unit test that you're working
on and trying to you know verify or debug or whatever it might be but in the java world you
know if you're like in a great old project you're running everything in that module before you you
know and you might only want to run the one test in that module it's things like that that just
frustrate me a little lack of polish? There's a total lack of polish.
But yet it makes up for it
because there's just so much of it everywhere.
Well, I will say one thing with Java
is because it has been around longer,
there are people that have built things on top of it,
like Groovy.
I've taken a look at Groovy recently,
and a lot of the syntactic sugar that we like in C Sharp, they pretty much made, like Groovy. I've taken a look at Groovy recently, and a lot of the syntactic
sugar that we like in C Sharp,
they pretty much made available in Groovy.
It's a very truncated or
very shorthand form of being able to
code the same type stuff.
You're referring to the Project Coin
pieces, where
they made
languages on top of the...
Like Scala's huge, Clojure. You can run JavaScript on Java. they like made uh you know languages on top of the the like scholars huge closure yeah you can
run javascript on java yeah so they've got a lot of stuff there and and again there's no hate there's
no hating on it but there are just so many not like link well i mean i do like to make my java
jokes yeah yeah yeah but but i mean seriously after Link, would you ever want to not have to use Link?
No.
Yeah.
I mean, we did a whole episode on it.
That's how much we liked it.
That's my thing, though.
In terms of synthetic sugar, though, that's what I'm saying.
You get so spoiled in C Sharp,.NET, and Visual Studio, auto properties.
Yeah, absolutely. That one will auto properties. Yeah, absolutely.
That one will spoil you.
I think it's C Sharp now.
I have to translate that to whatever
language I'm working in. It wasn't my first language, but
now it's the one that I think and dream
in.
Imagine
life without VAR.
No.
But if I was recommending it to somebody who was just starting out
the java would be the one i don't know like i said it would depend on to me i would say hey
look at look at where you want to be and what's available in that area listen you don't start
your drug habit with heroin you start with an entry level like you know marijuana and you work your way up to the heroin wow there goes the pg-13 rating yeah it's all off like instructions
on how to get addicted to drugs go ahead and slap the explicit tag on this um so what if you do want
to switch it up though what if you want to you know cross over to the other side or you know
see a shop and job are pretty similar but what if you are really into go and you're like i want to
start working in go now or i want to start working in javascript like how do you do that all right you know what i one of the
things that i've always said is you know people say yeah you got to get a book okay first you
got to have a reference book right we all have them but you're not going to learn how to do
things with a reference book now you got to do it and fail and fail and fail. And honestly, one of my favorite ways of learning more advanced ways of programming
is to pull down an open source project.
I mean, if you really want to learn how people are doing things
and doing things in a scalable way, typically speaking, not all of them will be,
but pull down somebody else's code where there's 200 developers working on it.
Because if it's bad, it's you know 200 developers working on it because if it's bad
it's going to get really bad but if you find one that's popular then you should be able to see some
good structure and find out how people are actually coding things open source is a great way to get
your feet wet in any kind of language but to recommend you know someone who's just starting
out a language like go though i don't know about go. I mean, I'm not trying to dog on it,
but it's a little early to see how well that's going to go over.
It was nice to see how do they set up their folders,
how do they set up their...
Go's not a great example.
They have kind of conventions for a lot of stuff like that.
Even Angular has a lot of conventions.
But just getting started on the little things like that
can be a real speed bump for people who are used to programming
and just want to kind of get going.
Yeah, honestly, that's one of the big frustrations
when trying to pick up a new library language or whatever
is what Joe just said with the folder structure.
I mean, that can be maddening.
It seems so trivial, but you'll see all these tutorials on how to...
You don't like that in Java you have to have 20 nested folders before you get to the file?
No.
Here we go.
And you don't want to look like an idiot by not having that either.
Yeah, man.
You got to have your com.net.org.companyname.www.mypackage.thisiswhatitdoes. Refactor.org. But we've all seen these tutorials where they teach you how to do something, right?
And you're like, well, where do I put that?
Like, does this go in the same file?
Or is this in the same folder?
Wait, is this the same package?
Where does this go?
So that's why I say, like, open source projects, a lot of times,
if you can find one that's got some decent traction.
I'm not talking it has two developers on it all doing things however they want. If you can pull
that down, look at the structure, see how they're laying things out, and use a good IDE to be able
to navigate through the thing, you can pick up a lot of tips that way. And it's a good way to
learn the language and learn how to avoid pitfalls that you would have done starting out.
I bet user groups is really good, too, for new languages.
You just kind of show up and see what they have to say.
And if you do start some sort of side project or something, you can kind of probably show somebody there and be like, all right, how bad did I do?
I would say also meetups, right?
Meetups are a great place to go to learn a a new technology and and you know at least kind of get
the concepts the fundamentals and while you're there if you'll come out of your shell and you
know shake some hands with some people and you know get some names get some contact information
then that way hey when you've got a question maybe they'll hit you up and you know and while
you're out of your shell maybe you can like write a review about the uh you know about the meetup
all the time where someone
goes to the go meet up and you know they go a couple weeks in a row and then next you know that
guy that they've been talking to is like hey you know we've got a position and i know you're you
know still starting out but i can tell you know i like how you think and uh i think you should come
work and go yeah so i mean there's definitely a lot of avenues to do it but i i think the key
takeaway from this is you can't just sit down
and read a book you have to put your hands on the keyboard and actually try and do something
if you don't do it i mean even if you create your own little mini project to do something
you gotta struggle through it because everything that people show you in demos
looks so easy and then you sit down and do it you're like wait a second they didn't tell me
about that right so wait a minute, you were saying there's
something to Apple's demo of Swift?
Hmm.
I actually want to get my hands on Swift.
Yeah, it's pretty. It looks like Link to me.
It's faster
than Objective-C, man.
So wait, all this stuff you're talking about, is anyone
thinking about switching to Swift?
Is that what's going on here? No. We've all got
Apple computers.
I mean, this should think about it.
I mean, this goes back to why
I would recommend Java, though.
With Java, you're
going to have that cross-platform
portability, and with Swift, at the
moment, you're not.
So would you want to recommend
someone a platform that they're locked into?
Well, I mean, you could go with Adobe Air
for that matter. I mean, you you could it's cross-platform hey 2000 call they uh they want their air back
yeah people still use it for mobile development yeah i know so it's i don't know like the
cross-platform thing is huge for me and it's actually really frustrating. Xamarin, uh, is something that I'm really interested in.
And actually we're,
we're all headed to a,
that's right.
Speaking of meetups.
Yeah.
We're actually headed to a meetup tomorrow night on Xamarin and,
uh,
pretty excited about it.
I mean,
the only downside is it's fairly expensive,
right?
I mean,
if you want to deploy to two different app platforms,
you're,
uh,
you're looking at some cash.
Yeah.
But how much would you be willing to pay if you were you know to basically not have to spend the next
six months working in java or or objective c right yeah yeah oh gosh depending on your application
if you're willing to take the hit for that license cost that license cost might be you know nothing
in comparison to the time that it might take to rewrite your application in Objective-C or in Java
and have a C-sharp version if you wanted to be in every app store.
Yeah.
But if you're writing the 400th Flappy Birds clone, then maybe you don't want to spend that money.
Yeah.
I mean, but if you actually have a business case for it, I mean, it makes a lot of sense.
You write one code base, and then it compiles across all platforms natively.
That's the big thing, natively.
My only thing is that I wish that it was more accessible to the developers.
The individuals.
That's the problem.
There is a free version of it, but there were some restrictions and some limitations as to what you can get away with with the free version.
We've talked about a lot of stuff tonight.
We've talked about JavaScript, Xamarin, Java, C Sharp, Go.
One thing that we've talked about a little bit before is wide versus deep.
We had Vlad on the show a while back, and we've talked to him about this too.
He's more of a deep kind of guy.
He wants to go and really learn something and just kind of feel it in his soul, whereas I tend to be more of a kind of a deep kind of guy. He wants to go and really learn something and just kind of feel it in his soul,
whereas I tend to be more of a kind of a fan of wide.
I want to play around with all sorts of different stuff,
and I feel like playing around with that new stuff gets me new perspectives
on the things that I kind of go deep on.
So what do you guys think about that?
Yeah, again, from my background, wide was the nature was the nature of the beast because it was, you know, it came from more of a services background.
So, you know, you always had the challenge of picking up something new, whether it be hardware, software, whether it's, you know, a server application or language.
You know, there was always challenge, you know, new challenges
there that you were being presented with to pick up something new. So in that, you know,
in a services background, why it is just the de facto standard. Yeah. And for me too, you know,
I spent a long time, like too long working in ColdFusion. Now that's basically, you know,
kind of dried up in a big way. And so I think if I had gone deep on that and you know really committed myself and you know that that would have been a very bad thing so for me
part of it's just kind of being safe and so i think it's good to go a little deep and so knock
knock who's there 2000 whatever i also was ruling the world yeah i also came from cold fusion which
is probably why i like JavaScript a lot
because it's another, you know, doesn't care about types.
But on the wide versus deep going into a language or technologies,
I also prefer the wide because I like working on, you know,
back-end processes.
I like dealing with databases.
I like messing with the UI.
I like it all.
And the only way to really do that, I don't ever want to be in a position where they're like hey you're working on this
form over here really seriously that's that's what that's what i'm doing and so in in i'm i'm
i love performance right and you can eat performance out of every little piece like you can go to the
database side and you can you can squeak a little bit of performance out of that and go to your ui and
enhance things and i just in in much like joe said i feel like there are definitely you need experts
in in technologies like people soft people they're gonna have jobs for a long time to come if you
if you specialize in salesforce you're probably gonna to have jobs for a long time to come. If you specialize in Salesforce, you're probably going to have a job for a long time to come.
But I also feel that if you're that guy that has a broad knowledge of things, that's when you become the architect.
If you're very deep on one thing and not everything, it's hard to become an architect.
Yeah, I mean, I agree that you do have to have an understanding. I remember many years ago there was a friend of mine who was – he had his language preference and he was willing to change jobs for that language.
And I remember thinking at the time and I even commented to him that I didn't have that same opinion that I was willing to write you know, write in like a C sharp today and a Java tomorrow or whatever it only because
the language to me that you were writing in, it wasn't, I, you know,
who I was so much as that language was just another tool in the toolbox that I
used. Now, do I have my preference? Oh, absolutely.
And I'm sure that anyone can guess what that might be.
Yeah, but kind of at the same time, do I regret that month I spent hot and heavy on Python and then forgot about two years later because I never touched it again?
Was that a waste of time?
Maybe.
At the same time, if you go deep on something, you do get diminished returns for that investment.
Each hour that you put into something you've been doing for 10 years you know how much are you really getting out of that
hour yeah i mean i've definitely been you know like like prologue for example am i going to find
a use case for that no but i i say you know i know for at least me when i'm working on something and
they tell me they have to use different technology I enjoy solving problems yes and I enjoy solving them in a way that works now and for people who
are going to come in behind me as well right I mean that that that's why we got into this right
was because the fascination of like trying to solve the problem and making this work right yeah
I mean as as most everybody knows who listens to this podcast now, that we both, we know our technologies, but we also try to become better at them, right?
So we're craftsmen, but we are ultimately always trying to solve a problem.
We're always trying to either enhance or make things better in some way.
And so that's why the technology or
the language to me is almost secondary and that's why i don't mind going wide i'd rather i'd rather
be able to solve the problem with the tools available and you know so so let me ask this
then how do you draw the line how do you how do you know that like when you think to yourself
you know what i'm going too deep it's time that i like try to pick up something else or when do you think to yourself you know what i've gone too wide
i need to go i need to pick something and dig into it more so i would say um there's this notion of
like a t-shaped person or t-shaped developer and that's where you have a deep specialization
because we're all skinny oh but uh that's what you also right so it's basically wide and deep
and so it's kind of like, for me,
I think like, you know, let's spend the time in the day job going deep, you know, day in, day out.
That's a great place for that. You know, you focus on kind of one area, but in your own time,
when your own side projects and the user groups go out and do the weird stuff, see what's out there,
you know, bring some perspective back. And so for me me it's all about doing the kind of um you know day jobby stuff in the day and then the weird stuff at night
yeah i could see that i i don't have as much time at night now that i have kids um i know
days were different when i didn't have kids but so how much time do you spend in your free time
doing java or java no i said the weird cool stuff or jython or go or oh now
now the go and the ruby and the messing around with design patterns i don't know that's it's in
the hobby range probably somewhere in the 10 hours now unfortunately i never actually finished
anything uh so you know it doesn't really work out too well for me but but that's not necessarily a
bad thing i mean it becoming familiar with these
type things doesn't necessarily mean that you're creating the next great application right it means
that you are putting your hands on the keyboard seeing what they're all about right but i will
say the things that i actually have finished have paid massive dividends okay so it's just like man
if i had you know you know 30 less projects but I finished that 60%,
then I think my life would be a lot better.
Yeah, I could see that.
So that was some good advice, though, as to how to go wide and deep.
But really the question is when do you self-evaluate?
So I'll say the Cold Fusion thing that he brought up a little while ago.
At one point I looked around and i was like oh wow you know there's there's this is a job market in atlanta that's actually fairly hot
for technology but yet there's you know three buildings in a 50 mile radius that have this
technology it's time it's time to do something else and so that's one way right economic change
or environmental change with the technology stack that you're working on. And then the other thing too is like, to me, once you get bored, then that's probably also a good indicator that you either need to go deeper so
that you have a better understanding and maybe can craft your stuff better or
you go wider and expand your,
your technology stack so that you're dabbling in things that,
that pique your interest again.
Yeah.
I think that's the right answer is when you get bored,
you know,
that's,
um,
that's how you're not necessarily time-based,
right?
Yeah.
So when you just start thinking, you know what, it's time to move on.
Maybe you end up kind of changing where that specialty lies
or maybe that kind of specialty ends up kind of fading away.
I guess I was thinking about it more from the point of view of like a Mablibs fill-in-the-blank.
If you haven't programmed in a new language in X amount of time, you're too deep.
I don't subscribe to that.
Yeah.
Time-wise for me, it doesn't matter.
It's more about
interest and and and market it pretty much that's how i'm looking at it right because
if if you if you have a job a lot of people get into programming either because they think they're
going to like make a lot of money or because they like to problem solve it's usually one of the two
um either which way if you run out of problems to solve because your technology disappears then
then you haven't you haven't done what you need to do to go wide enough the only problem that i
have with the board theory though is that you could remain not bored for a long time right
this is me personally and and which just makes you too deep but not is that if you wanted to
if you wanted to yeah to be t-shaped i don't know i think
if you're still excited and having fun solving new problems and then at that point it's not the
technology that you're having fun with it's the solving problems and i think maybe that's your t
is solving the problems not necessarily the technology right and also okay so you're
redefining why then is not being uh like like technical right yeah maybe you're maybe you're you know
vertical is solving line of business problems or you know like 3d graphics or you know whatever it
is it's not necessarily a technology or a language i think once you hit that complacency so some
people may not get bored but some people might become complacent like they just know what to
expect right as soon as you hit that then pretty much pretty much you should start reevaluating what you're doing,
whether you need to look at other technology stacks or, or, you know, go deeper into what
you're doing. But once you become where it's like almost cruise control, then it's time to kick it
up a notch, whether you go wider or whether you go further down into what you've already got.
So what if, um, you know, your day job just kind of got erased and you, you know, were out there in the wild and you had some sort of new project and you got to do anything you want.
And basically for that month, you know, you got to pick whatever technology, whatever project you wanted.
Race car driver.
In the technology field.
Oh, oh.
What would you do?
Dang.
I, no, go ahead. What would you do? Dang. I – no, go ahead.
What would you do, Joe?
I was totally serious about race car driving.
You posed the question, Joe.
What would you do?
Well, I know video games is always cool.
There's a lot of stuff going on in an independent scene,
especially on Steam and Project Greenlight, stuff like that.
I always thought it would be really cool to make a video game,
but I also think it could be really boring to be the one making the game rather than playing it.
But I also think Go is really exciting right now.
Also, there's a lot of stuff going on in JavaScript,
and while I don't really like JavaScript too much,
it would be awesome to be able to participate and do these things that are user-facing
and kind of have real projects that people can use rather than just libraries.
Oh, and hardware.
Oh my gosh.
Sorry, I just got to say Raspberry Pi,
the, what do you call it,
the $35 Linux computer.
That's freaking awesome.
You can hook up machines
and do things in the real world.
I think if I had to define,
basically, if I wasn't where I was, like, what might be something of interest?
I kind of think, like, drones and robots, like that kind of automation.
I think it sounds pretty neat.
Mine, I think, would be –
Swarms of drones.
That's cool stuff.
We need to leave some YouTube links on that. I think mine would be swarms of drones that's cool stuff we need to leave some youtube links on that
uh i think mine would be home automation oh very cool because i i totally dig like home audio video
stuff and the whole idea that you walk into a room and say all right i want to watch a movie
lights dim your projector screen comes down your freaking curtain slide closed like that whole that whole
idea and then like you know audio but then the control surface for that i think that's where
there's a lot of things that could be done because everybody has ipads and smartphones and all that
have you seen the ring the ring yeah you can wear like a ring and kind of do hand motions
not the movie you do these cool kind of hand motions and that'll know like you
know turn the light on turn the light off whatever and it's just this ring so it's unobtrusive you
don't have to go fishing in your pocket for it more gestures you gotta do that would only work
for non-sports fans your lights are going off your projectors flickering on and off yeah that'd
be a problem but not so i think that's what i do um i don't really know i but i don't know what language
anyway she's in that ring
it's on their left hand like for right-handed people never mind yeah bad thought all right so
yeah anyways uh yeah i think that's what i do do. And I don't know what... I would probably try something like Xamarin or...
Yeah.
One of the cross-platform ones because I'd want to be able to do it on a tablet of some sort or a phone.
So that's probably where I'd go.
Interesting you guys didn't say mobile.
Well, no, that's kind of what I'm getting at.
Okay.
Yeah, that's why X what i'm getting at yeah okay yeah that's why
xamarin would be there um maybe maybe something like absolutely mobile are you kidding oh yeah
you'd have to have that on tablet right so yeah that's cool oh another one that i'd probably be
hot in uh that you were talking about with the uh the drones. I like the whole idea that now, like movies,
people rent these quadrocopters and put cameras on them
and get these flyby scenes.
I would totally love to write some interfaces for that kind of stuff.
Yeah, they're actually using those quadcopters for a lot of stuff.
Yeah, I mean, they're replacing what used to be thousands of dollars
to fly around a helicopter to do the same type thing.
Flyovers of just about anything. anything yeah pretty cool stuff so yeah um yeah i i think that's that's pretty much
was there anything else we missed with this these were kind of topics that just came up
throughout the week yeah i think it's been a pretty good uh water cooler discussion so yeah
i mean these are all things that we were like oh we need to write that down that'd be a good
good discussion so hopefully you guys got something mean, these are all things that we were like, oh, we need to write that down. That'd be a good discussion.
So hopefully you guys got something out of this.
Yeah, and if you did or didn't,
leave us a comment or give us a review or something.
Let us know.
Oh, yeah.
Oh, also, first off, Outlaw has a killer resource.
Yeah, so Joe had introduced me to Programmer Humor
on subreddit,
which how I missed that one, I don't know.
But I strongly recommend you head over to Reddit
and find the Programmer Humor subreddit.
But while looking through that,
I stumbled upon this Tumblr called
lifeofasoftwareengineer.tumblr.com.
And oh my God, is there some comedy gold
on that account.
I was in tears. Oh, absolutely. It's a bunch
of animated GIFs. It's just absolutely
fantastic. Wait, they're animated what?
GIFs is for choosy GIFers. They're GIFs?
GIFs are for choosy
programmers.
The point being is
that you need to head over to
lifeofasoftwareengineer.dumblr.com.
And if you are not in tears laughing at one of those, then there might be something wrong with you.
You need to have your heart checked.
You got some medical problems going on because I promise you there is some comedy gold.
Go here.
You will see sloths.
You will see Eddie Murphy.
You will see Simpsons and weird Russian cars driving backwards.
You're going to like this. Trust us.
You'll see Gandalf.
Oh, man. My favorite
was the Indiana Jones one that we
tweeted out. Oh, about mocking?
Oh, my God. That one was just
so hilarious. We've tweeted our favorites.
Yes, so you definitely
if you want some of these random
humorous things that come up, you can follow us on Twitter.
Yeah, every now and then you need to take a break and laugh.
Yeah.
I'll give you a taste.
I'm looking at one right now.
It's titled Getting a Compiler Warning.
And it's got a police officer holding up his hand like a stop sign, letting this motorcyclist know, you know, don't go this way.
And the motorcyclist zooms by and gives the cop a high five
so that's just a taste of what what you'll be seeing on the site it's awesome
now it's it's beyond stop the car pull over get on your phone life of a software engineer
at tumblr.com yeah it's fantastic um that's it for resources we like really yeah yeah that we didn't have much on
that this week yeah well i mean there wasn't really a lot that applied to this week's topic
no but there's a lot of really funny things on the website yeah you gotta go the gold mine oh
wait i will say one of the resources uh outlaw turn me on this one this week it's also from
reddit it's battle stations oh man we talked alan had uh never experienced the uh the
the underbelly of people's uh incredible workstations and gaming stations that they've
built and they call them battle stations it is so apropos yeah i said this to my wife and i just
assumed she was gonna love it and i got home i was like hey you didn't write me back how'd you
like battle stations and she just said you're not getting love it. And I got home and I was like, hey, you didn't write me back. How'd you like Battle Stations? And she just said,
you're not getting six monitors.
But if you really want to torture yourself,
what you need to do...
So, okay.
So there is the Battle Stations subreddit
that Alan's referring to.
So you can head over to Reddit and look for that.
But do yourself a favor
and go to Google
and search for best of Reddit Battle battle stations top five and oh my god
oh they're there there's like one of the top results that came back i think it might have
been the top result that came back and uh it's got like top 10 uh you know battle stations that
were listed on reddit and i think it's it's kind of old you know that that story might be it's a year old yeah but uh still
they're beautiful my god you'll want them you'll want all of them and you'll want a room in each
each room of your house to believe that like this is the computer that some people just like
come home to yeah it's incredible oh man it's it's truly fantastic stuff so yes apparently i've been
lost on the interwebs for a long time and found that. It also makes me want to program a battle station simulator where you could just kind of create your dream setup and hardware and take screenshots of it and post it on the internet.
Here comes a SketchUp article.
There's my next startup idea.
Yep.
All right, so now we're getting into the tips of the week.
Yep, and I get to go first because I was the first one to write this down,
but Gliffy is an awesome free tool
for making things like flow charts,
UML diagrams, wireframes, network charts,
sitemaps, all sorts of stuff.
And it's only really free for kind of limited type things.
You can't really have a lot of private graphs
and stuff like that,
and there's some cheap accounts.
This is the Atlassian product, too,
so that's awesome.
But yeah, gliffy.org.com?
I think it was.com.
.net.org.info.
And gliffy.package.java.helloworld.
Spelling gliffy is a little weird.
I guess I should spell it wrong. It's gliffy.comlloworld. Yeah. Spelling Gliffy is a little weird. I guess I should spell it.
It's G-L-I-F-F-Y.com.
Yep.
All right.
So with that, we went to another meetup.
When was that?
Last week.
Last week.
For SpecFlow.
And got a really great presentation there and introduction into spec flow so if you haven't heard of spec flow it's a
it's both a um a plug-in to studio as well as an add-on into your project that allow you to
well let me let me start the the goal is to allow the business owners to be able to define
the uh you know criteria for your your application that can then later become
your unit test.
So it allows the business owners to write things in a given when then type format.
And using spec flow, you can translate that quite nicely into your unit test.
And then there's also some tools where in the presentation that we were given where
using Yotta.js, they were able to take the same specification file, same file, and have
it work for both test cases in JavaScript as well as C Sharp.
And based off of that specification file, it's generating the structure of your unit
tests for you.
So you're only filling in the blanks of your unit tests.
Yeah, it was pseudo-readable English type business cases that got turned into unit tests.
It was really neat.
Yeah, there's a Pluralsight video out there as well that talks about, I think it was called Test First Development.
And during that, they talked about SpecFlow.
But you can find more information about it at specflow.org.
Yep. And my tip of the week is actually a SQL Server Management Studio tip
that a lot of people don't know about.
If you have a table, and a lot of times you're trying to figure out
what columns are in the table.
Actually, I'll leave two tips on this because they're both kind of related.
And that's because autocomplete doesn't work.
Autocomplete sometimes works
this is because there's no described function yes this is actually the kind of trick for described
so what you can do is you can highlight the table name in your editor and then hold down alt and
then push f1 and it will actually bring up a list of all your columns and some descriptive information about the table.
And then another little quick tip about SQL Server that you can do in Management Studio
is say that you want to do a select or you want to do an insert into a table
and you don't want to have to type out all the column names on your insert into,
you can actually go over to the left where you expand your table
and then there's that
columns folder if you drag that columns folder over into your editor it will automatically give
you a common delimited list of all the columns in that table so it will basically copy those
into your editor for you wherever you place them nice so two little tips for working in management
studio just always like you know use the right click, select top 1000, and then refactor
that query. You can do that, but this
is actually much quicker.
You don't have to refactor anything. It just
brings it in. So those are my tips.
Alright, so with that, we'll
be putting the links in the show notes,
and be sure to subscribe to
us on iTunes and Stitcher, and
we'd really appreciate your reviews
as well. That really goes a long way to help us out and help us find new listeners.
And again, if you do leave us a review, we'll mention you on the podcast.
And just, again, leave your preferred method of shout out.
Visit us at codingblocks.net where you can find the show notes, the examples, the discussion,
and more.
And this will be www.codingblocks.net
episode 12
and you can also send your feedback questions
and rants to comments
at codingblocks.net and make
sure to follow us on twitter
at codingblocks where you can
see us linking to many
funny life of software engineer
posts absolutely and we do also
do other things
no it's mostly just it's not as good any funny Life of Software Engineer posts. Absolutely. And we do also do other things.
No, it's mostly just rehearsing to Life of Software.
It's awesome.
Yeah, so that's it, guys. © transcript Emily Beynon