The Joys Of Programming

boogle wrote:
DSGamer wrote:

Okay, now for a question. I'm wondering if anyone knows of a good resource on when to use NoSQL databases and the data theory around them.

Most exists as a simple mapping of key -> value (really object you are storing).
You store things, things are accessed by keys, things have attributes, if you get a thing without an atribute then the atribute is None. Atributes can be lists, strings, ints, etc or ... OTHER THINGS!

Maybe it's just that I finally put it together, but described that way, NoSQL sounds like an object database.

Garden Ninja wrote:
boogle wrote:
DSGamer wrote:

Okay, now for a question. I'm wondering if anyone knows of a good resource on when to use NoSQL databases and the data theory around them.

Most exists as a simple mapping of key -> value (really object you are storing).
You store things, things are accessed by keys, things have attributes, if you get a thing without an atribute then the atribute is None. Atributes can be lists, strings, ints, etc or ... OTHER THINGS!

Maybe it's just that I finally put it together, but described that way, NoSQL sounds like an object database.

More or less. Basically schema-less document collections.

trueheart78 wrote:

Have you considered Safari Books Online?

Looks like you can get access to a smaller but curated library of books from Safari Online if you join ACM. The annual cost would be much cheaper. Anyone a member? Would you recommend it?

Garden Ninja wrote:
boogle wrote:
DSGamer wrote:

Okay, now for a question. I'm wondering if anyone knows of a good resource on when to use NoSQL databases and the data theory around them.

Most exists as a simple mapping of key -> value (really object you are storing).
You store things, things are accessed by keys, things have attributes, if you get a thing without an atribute then the atribute is None. Atributes can be lists, strings, ints, etc or ... OTHER THINGS!

Maybe it's just that I finally put it together, but described that way, NoSQL sounds like an object database.

That is one really easy way to use it.
Things get a bit more complicated when you start thinking about column family dbs based off the google big table white paper, but fundamentally you are mapping key to thing, thing to be defined as needed.

SixteenBlue wrote:
Garden Ninja wrote:
boogle wrote:
DSGamer wrote:

Okay, now for a question. I'm wondering if anyone knows of a good resource on when to use NoSQL databases and the data theory around them.

Most exists as a simple mapping of key -> value (really object you are storing).
You store things, things are accessed by keys, things have attributes, if you get a thing without an atribute then the atribute is None. Atributes can be lists, strings, ints, etc or ... OTHER THINGS!

Maybe it's just that I finally put it together, but described that way, NoSQL sounds like an object database.

More or less. Basically schema-less document collections.

I don't know if this is the perfect way to describe it though. How data is accessed and stored is different for different NoSQL implementations. Some use graphs to make it easy to traverse relationships (think social networks) while others are just simple name value pairs.

kazar wrote:
SixteenBlue wrote:
Garden Ninja wrote:
boogle wrote:
DSGamer wrote:

Okay, now for a question. I'm wondering if anyone knows of a good resource on when to use NoSQL databases and the data theory around them.

Most exists as a simple mapping of key -> value (really object you are storing).
You store things, things are accessed by keys, things have attributes, if you get a thing without an atribute then the atribute is None. Atributes can be lists, strings, ints, etc or ... OTHER THINGS!

Maybe it's just that I finally put it together, but described that way, NoSQL sounds like an object database.

More or less. Basically schema-less document collections.

I don't know if this is the perfect way to describe it though. How data is accessed and stored is different for different NoSQL implementations. Some use graphs to make it easy to traverse relationships (think social networks) while others are just simple name value pairs.

Yeah I think we were both talking about Mongo specifically.

I really only have experience with k->v nosql data stores.
I just think of graph databases as a graph where nodes are defined as a document and edges are defined as a relation, but again I haven't had to use them.

tboon wrote:

This is a general problem since so much of what we do cannot be quantified. So we make up metrics. Back when I started in the late 80s, the metric was LOCs. I worked with one guy who consistently could churn out 2kLOCs/day. That 1.99kLOCs were complete and utter rubbish meant nothing.

Bugs found vs bugs fixed. Defects per line written. Test coverage. Lines of comments. Comment density. I've seen all these used as metrics for judging the "health" of a project. And they all were stupid because they were used in isolation. Metrics like test coverage are important but only in context of other things (LOCs are just BS, I'm glad the industry has gotten past that). Unfortunately, management does not (usually) understand the context, they just generally want numbers to look at and compare.

I've gotten out of the business of directly managing other developers, but the point I used to stress was that I will get movement on whatever metrics I publish, especially by my bad developers, and that isn't necessarily healthy for the project. If I publish "number of unit tests written," all the mopes are going to begin cranking out reams of worthless tests. It's hard enough to get useful work out of the soon-to-be-fired-or-removed group, and I don't want to hand them a way they can waste their time and claim productivity for it.

If we've got only two sticky areas for an application, and I can personally verify that we've tested the holy hell out of those parts, I don't care that my code coverage number is 60%, and neither should the powers that be. Trying to manage that number up to 80% is not going to be a good use of limited time.

Sounds like you may be stuck with manage-by-numbers types. That mentality is sometimes defensible at the executive level. However, folks who have development teams working within a level or two really ought to know that you can't provide project health with a number.

Bought the K&R book today...

IMAGE(http://i.imgur.com/Q3cUg29.gif)

@Quintin_Stone, I haven't played with CSS3 yet, but that's extremely accurate for my CSS2 experience.

S0LIDARITY wrote:

@Quintin_Stone, I haven't played with CSS3 yet, but that's extremely accurate for my CSS2 experience.

I've been playing around with responsive design... it's not so bad.

I think that any sane person, given sufficient time and the ability to choose their own tools, should be using an abstraction over CSS (LESS, SASS, Stylus, maybe others?) instead of straight CSS these days.

Yeah, I have been playing with LESS and am really liking it. I think the next project we do at work will use it.

Guild is coming along nicely. I've connected with one of the big incubators in the area and it's looking like they're going to take me under their banner. That will provide a lot of help with office space and networking.

Also, we're attending an IT job fair in the area this month, came up with this for a poster, what do you think?

IMAGE(http://www.swcguild.com/whitepapers/poster.jpg)

Love it. I have that very same problem for the past few years in regards to moving beyond purely technical positions and into management roles.

Edwin wrote:

Love it. I have that very same problem for the past few years in regards to moving beyond purely technical positions and into management roles.

My suggestion is get an MBA. The only manager I have worked under that was any good had an MBA. No amount of technical experience will qualify you for a management role.

Pragmatic Bookshelf has a 40% off coupon today, use at the checkout page where it says coupon.

randy_lives_06539331

Since I'm nearly 100% linux now, I've finally bit on the Vim and Tmux e-books.

Comics Sans is never good enough.

Cyranix wrote:

Comics Sans is never good enough.

Only because the opposite of the best is good enough?

I actually followed Martelli on StackOverflow when I was first learning python.
At 13:20 he uses the logical not operator on a slide title. This is a great man.

kazar wrote:

My suggestion is get an MBA. The only manager I have worked under that was any good had an MBA. No amount of technical experience will qualify you for a management role.

It's certainly more tricky to jump to the executive ranks at large companies without an MBA, because at that point most of your job is about money and managing priorities within your budget. Below that, I don't see a compelling reason for it. Doing budgeting for small teams isn't hard after you make the mental switch of accepting the fact that it's a whole bunch of shaky predictions lumped together. I don't find that folks with advanced degrees do any better at the people management aspects of the job, or at figuring out which work is important and which is just nice-to-have.

At least in my field (Health IT), the value of MBAs feels diluted. On the younger side, you have a ton of kids who went, "the economy sucks, I'm going straight back to school to get an MBA and hope it's better when I get out." On the older side, you have folks who got laid off and went after an MBA so they could land a different job. We've hit a point where everyone wants to manage (or program manage with an eye to jumping to management as soon as they can) and it's gotten difficult to find the hard-working 26 year old who just wants to go in and get sh*t done as an individual contributor.

If you go for the degree, go for the connections you make while you're there. The true value is in the network you build during the program. The MBA by itself isn't a magic job coupon.

Mr Crinkle wrote:

If you go for the degree, go for the connections you make while you're there. The true value is in the network you build during the program. The MBA by itself isn't a magic job coupon.

My point wasn't centered around an MBA being needed to do a management job, but rather my experience with managers that don't have an MBA tend to be way over their head. They don't know how to deal with people. They don't understand risk management. And the scary part is they pretend they do.

Now take a manager that was once a programmer and give him a management position. Most programmers are technical and tend to have weaker people skills (not all, but for the average I find this is true). They are also skilled at programming, so they have little value when they are not programming. I find it facinating that companies will make a programmer a manager and lower his value to the company while paying him the same or more money. At least if he has an MBA, or any business degree, one could argue he provides a value that is at least equal to when he was a programmer.

kazar wrote:

I find it facinating that companies will make a programmer a manager and lower his value to the company while paying him the same or more money.

On this point, we could not possibly agree more! For some reason there is a thought process that goes "This individual contributor is intelligent and productive. I will encourage him into management, even though that means the team will be losing its key producer. If he does not wish to do this, it must mean he does not want to grow. So, management it is, and hopefully he'll figure it out and be valuable again in a year or two."

Next I can get into my rant on paying average middle managers the same as superstar ICs.

Rant!
More rants!
If you are taking requests, can we go with Executive micro management in projects?

Mr Crinkle wrote:

This individual contributor is intelligent and productive. I will encourage him into management, even though that means the team will be losing its key producer. If he does not wish to do this, it must mean he does not want to grow.

This is a pretty depressing sentiment I've been sensing more and more at my current place. Not a problem for me personally at this point, but it's yet another reason why I've decided I don't want to remain here long term.

It's HR's fault.

Top performer X has reached the high end of the pre-defined salary band. We can't have someone managing a person who makes more than them! We also don't have positions on the hierarchy that can push someone beyond "senior implementer". Thus if you want to get more money or prestige, management is the only path available.

Not everywhere. I've worked at companies that have an advancement track for dedicated techs that goes well up into the executive level. Granted, these are the folks that generally hold a bunch of patents and spend their time doing research, but the titles do sometimes exist.

True, but most companies don't think about technical tracks beyond a certain point. When you start making a certain salary/get a certain title, the only way to progress is to go into management because most companies understand (either implicitly or explicitly) how a management track works. By far the preponderance of companies are like this, even ostensibly tech companies.