Open Side Menu Go to the Top
Register
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** ** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

09-09-2016 , 07:43 PM
Now I'm all bummed thinking about that poor girl in the palette stacker. I forgot all about that until making those posts.

I remember a job interview I showed up for that was advertised as something like "Needed: Warehouse worker, forklift driver, manufacturing". There were all these crusty old dudes in the waiting room, along with kids and a bunch of randoms. The interview was this cheesy sales pitch where he did 3 people at a time, and gave 2 of us times to come back the next day (I guess so we'd feel special or something) .

Turned out to be total bull**** selling knives. Luckily someone else at the hardware store I was temping at had been through it. He showed up the next day and wound up in a car all day with another knife salesman. **** that.

I always think about those poor old crusty forklift driver guys, getting scammed on some bull**** and treated with basically zero dignity by that sleazy ******* and his fake job posting. They deserve better than that. He even did the interview in those underground caves in KC that are used as warehouses/office space - so it would seem warehouse-related. But basically he just rented a windowless office for a while.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 07:47 PM
Quote:
Originally Posted by suzzer99
Yeah we can bond over the programming version of "You kids don't know how good you have it! In my day..."
I yearn for the old days in software development when things were simpler and the pace was slower.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 07:59 PM
Quote:
Originally Posted by adios
I yearn for the old days in software development when things were simpler and the pace was slower.
I have an idea of a camp for rich people with nothing but cabins, wood to chop, hiking, etc. and stuff to read. Real books, no newspapers or trash magazines either. No devices period. No phones. The manager has a phone in case of emergency from the outside world. They sign up for a certain amount of time. They can leave early but if they do they have to pay triple or something.

If I could get the time off work I'd jump at that. I could try to enforce it on myself but I think I'd last about 2 hours.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 08:10 PM
Quote:
Originally Posted by suzzer99
Why does concat return a new array and not just merge onto the target array like push? I get nailed by that one all time.
Imagine i do something like this...

Code:
var firstArray = [1, 2, 3];
var secondArray = [4, 5, 6];
firstArray.concat(secondArray);
With what you suggest, it would seem like both firstArray and secondArray should get mutated. Does it make more sense to mutate both of them or return a new array that is the result of combining them?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 08:19 PM
What? The most likely result of a.concat(b) is that afterwards, a = a with b on the end. That doesn't change b in any way. That's what, for example, strcat does in C.

Making a new array seems like a reasonable action as well but absent other information I would not assume that is what concat does.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 08:21 PM
i don't see why secondArray would get mutated in that example.

Last edited by SiQ; 09-09-2016 at 08:21 PM. Reason: what rusty said
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 08:21 PM
I'm irritated that "update" in python doesn't return the updated map.

So, like
blah = a.update({'foo': 'bar'})
after this, blah = None and a is updated. I actually feel like a should be updated and also it should return the updated value.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 08:32 PM
Quote:
Originally Posted by candybar
I'm not sure I follow. Why can't you choose to work with good programmers regardless of the language? You choose who you work with and the company you work for.
I think we are misunderstanding each other. What I meant is that I have no choice who I work with within the company. If I'm assigned to group x, it doesn't matter if i use language a, b, or c. The quality of the work I do isn't going to affect the quality of the work they do.

Quote:
Originally Posted by candybar
I can assure you that the programming language you use has very little bearing on the quality of the programmers you'll work with - your worth in the job market largely dictates this.
My programming knowledge is not going to affect who I work with but what I work on. You keep seem to suggesting that I somehow have control who I work with within an organization. I guess it could be true at a giant corporation but I don't know. My gut feeling is that isn't the case.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 08:39 PM
No it's the other way around. You can choose to work somewhere that hires good people, or you can work someplace that hires ****heads, or you can work someplace that hires haphazardly and then who knows.

But you seem to think that somehow some languages attract "good programmers" and some attract "bad programmers" and that if you choose the right language and work someplace that uses that, you'll get to work with Good Programmers.

In my experience, this is absolutely false. The tenor of the organization matters a lot more than what tech they use. Conversely, when I was responsible for hiring, I hired good programmers and gave not one hot damn for what languages they knew. If they were good, I'd have them up to speed on our tech in no time.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:00 PM
So i did some manual testing today. Later found out that's because there is no test coverage. My "mentor" didn't even know what a unit test was.

The code base is riddled with simple spelling errors that cause all sorts of problems. No code conventions were followed or enforced.

That's sadly not even the craziest part.

edit

oh, and most of the mentoring consists of people saying "figure it out" with no direction whatsoever. Not that i've experienced it personally because i'm not really doing anything yet, but just what i've seen with others

Last edited by Loki; 09-09-2016 at 09:08 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:03 PM
Welcome to the doll house
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:16 PM
Quote:
Originally Posted by Noodle Wazlib
So i did some manual testing today. Later found out that's because there is no test coverage. My "mentor" didn't even know what a unit test was.

The code base is riddled with simple spelling errors that cause all sorts of problems. No code conventions were followed or enforced.

That's sadly not even the craziest part.

edit

oh, and most of the mentoring consists of people saying "figure it out" with no direction whatsoever. Not that i've experienced it personally because i'm not really doing anything yet, but just what i've seen with others
The best is when there are multiple tables storing duplicate column data. At some point, all but one table is deprecated. Problem is that, from the perspective of a new employee, unless someone tells you that tidbit then you are in the dark. If I need that column data I might try to grab it from the incorrect table. The only time I would find out 'you should be getting that value from table y not table x' is if/when someone in the know tells me or I have to deal with a bug report related to that.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:26 PM
total newb trying to learn some database/sql skills. figured i'd do a little pet project to learn / possibly help my gf's business. how does this schema look?
end user sells custom websites as a monthly subscription. accepts payments via stripe but wants to keep records and be able to automatically do things like send emails on missed payments, etc.

Code:
customers {
	id: 1
	website: "name.domain"
	first_name: "jenny"
	last_name: "tutone"
	email: "jt@aol.co"
	phone: "867-530-9999"
	join_date: "2016-05-08"
	status: "active"
}

notes {
	id: 1
	customer_id: 1
	note: "..."
}

payments {
	id: 999
	customer_id: 1
	product_id: 03
	charge_amount: 49.99
	date: NOW()
	status: "approved"
	notes: NULL
}

products {
	id: 3
	title: "Starter Package A"
	description: "..."
	price: 54.99
	date_added: "2015-12-12"
}

couponApplied {
	id: 1
	coupon_id: 1
	customer_id: 1
	product_id: 3
	date: "2016-05-08"
	
}

coupons {
	id: 1
	title: "5OFF4LIFE"
	description: "5 dollars off for life."
	date_added: "2012-11-10"
}
wasn't really sure what do with coupons, tbh.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:29 PM
Quote:
Originally Posted by SiQ
total newb trying to learn some database/sql skills. figured i'd do a little pet project to learn / possibly help my gf's business. how does this schema look?
end user sells custom websites as a monthly subscription. accepts payments via stripe but wants to keep records and be able to automatically do things like send emails on missed payments, etc.

Code:
customers {
	id: 1
	website: "name.domain"
	first_name: "jenny"
	last_name: "tutone"
	email: "jt@aol.co"
	phone: "867-530-9999"
	join_date: "2016-05-08"
	status: "active"
}

notes {
	id: 1
	customer_id: 1
	note: "..."
}

payments {
	id: 999
	customer_id: 1
	product_id: 03
	charge_amount: 49.99
	date: NOW()
	status: "approved"
	notes: NULL
}

products {
	id: 3
	title: "Starter Package A"
	description: "..."
	price: 54.99
	date_added: "2015-12-12"
}

couponApplied {
	id: 1
	coupon_id: 1
	customer_id: 1
	product_id: 3
	date: "2016-05-08"
	
}

coupons {
	id: 1
	title: "5OFF4LIFE"
	description: "5 dollars off for life."
	date_added: "2012-11-10"
}
wasn't really sure what do with coupons, tbh.
Do you know anything about joins?

In your above example, is a specific coupon valid for a specific product? For example, if i have a coupon for a carry-out large 3 topping pizza that is pretty specific. That might be a 'specific coupon that is valid for a specific product' whereas a coupon for a carry-out pizza is very non-specific. It can be applied to a pretty wide range of pizzas. If it's very specific, i would add another column in coupons... call it something like 'valid_product_id'. This would allow you to quickly come up with a list of valid coupons based on whatever product the end user specifies.

Last edited by Craggoo; 09-09-2016 at 09:42 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:36 PM
yes
edit: damn you and your sneaky edits. "yes" was to "Do you know anything about joins?".

i thought i had that covered with 'product_id' in 'couponApplied' table, but maybe i should add an optional 'product_id' to 'coupons' table as well?
any other thoughts?

reedit: and once again damn you and your ninja edits.

Last edited by SiQ; 09-09-2016 at 09:44 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:45 PM
Quote:
Originally Posted by RustyBrooks
No it's the other way around. You can choose to work somewhere that hires good people, or you can work someplace that hires ****heads, or you can work someplace that hires haphazardly and then who knows.

But you seem to think that somehow some languages attract "good programmers" and some attract "bad programmers" and that if you choose the right language and work someplace that uses that, you'll get to work with Good Programmers.

In my experience, this is absolutely false. The tenor of the organization matters a lot more than what tech they use. Conversely, when I was responsible for hiring, I hired good programmers and gave not one hot damn for what languages they knew. If they were good, I'd have them up to speed on our tech in no time.
Pretty much this.

Quote:
Originally Posted by Craggoo
You keep seem to suggesting that I somehow have control who I work with within an organization. I guess it could be true at a giant corporation but I don't know. My gut feeling is that isn't the case.
This feels a lot like someone complaining about how they are always on terrible dates with terrible people and are thinking of moving to another city/state/country because the average quality of whatever is much better. Presumably you're not posting from North Korea and live in a free country - it's something you have complete control over.

Aside from matters of seniority and compensation, the kind of company you work at is usually dictated by your own worth. There are exceptions, for example, someone may choose to be in a much more senior position at a talent-starved company over a junior role at a talent magnet but on average you'll tend to be surrounded by your talent-peers. There's no better way to work with great people than becoming great yourself and getting jobs that live up to your standards. Of course, part of being "great" itself entails being good at working with less talented or knowledgeable peers.

Quote:
Originally Posted by Noodle Wazlib
So i did some manual testing today. Later found out that's because there is no test coverage. My "mentor" didn't even know what a unit test was.

The code base is riddled with simple spelling errors that cause all sorts of problems. No code conventions were followed or enforced.
This is pretty much the industry norm - it would have been really surprising if you walked into a low-paying tech job and found a really nice code base with great test coverage.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:53 PM
Quote:
Originally Posted by Craggoo
The best is when there are multiple tables storing duplicate column data. At some point, all but one table is deprecated. Problem is that, from the perspective of a new employee, unless someone tells you that tidbit then you are in the dark. If I need that column data I might try to grab it from the incorrect table.
This is also entirely normal and something you will find in any sufficiently complex software that's been around for a while. It's not ideal but if you know how to read code, it's not the worst thing in the world. The real WTF is:

Quote:
The only time I would find out 'you should be getting that value from table y not table x' is if/when someone in the know tells me or I have to deal with a bug report related to that.
I don't understand how you would simply assume that you got it from the right place without properly testing to ensure that your assumptions are correct.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 09:56 PM
Quote:
Oh god this. I have had recruiters nearly screw up job deals before. I have been enraged by them personally, I have had them enrage the hiring company.
.
My latest interaction with a recruiter for a "1 year" contract was as follows. First contact was beginning of July. After 3 weeks I had 2 phone calls with the actual company, 1 background, 1 technical. Recruiter calls me and says the hiring manager likes me congrats I have the job! At this point I am suspicious, like no onsite? Ok maybe for a contract this is possible. They are now working on the "paperwork". Next week recruiter says the company wants to talk to me again. I ask what is up, thought this was a done deal? He says oh they just want to get to know you. The convo is with someone completely new, he asks the same stupid background questions. over the next month I talk to 4 different people from the company, one of them tells me he has no idea why he is talking to me. They literally told him 20 minutes before our conversation that he was supposed to talk to me. Finally I get an offer, the "1 year" offer turns out to be 4 months, but the recruiter explains to me despite what the contract says it is really for a year and I can get hired full time! Also the contract is through this recruiting company, not the actual company I will be working for.

At the same time all this is going down mid August I get an interview for a full time position with the same company, different department. No recruiter this time, just directly through the company. 1 phone conversation, 1 take home assignment, 1 onsite, 48 hours later an offer. The offer is exactly what they said it would be during the interview.

This was the most positive experience I have ever had with a 3rd party recruiter, no sarcasm.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 10:26 PM
Quote:
Originally Posted by candybar
This is also entirely normal and something you will find in any sufficiently complex software that's been around for a while. It's not ideal but if you know how to read code, it's not the worst thing in the world. The real WTF is:

I don't understand how you would simply assume that you got it from the right place without properly testing to ensure that your assumptions are correct.
Read again. Duplicate columns in different tables with identical values. One of the first things I was tasked with was migrating legacy php code over. Problem is no one wanted to tell me (or knew) where/which bits of legacy code did what.

Literally at times I would go and ask someone "I've been tasked with migrating functionality x over. Do you know where that currently lives?" And the answer was usually no or a "you might find it in repository x".
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 10:54 PM
Quote:
Originally Posted by Craggoo
Read again. Duplicate columns in different tables with identical values. One of the first things I was tasked with was migrating legacy php code over. Problem is no one wanted to tell me (or knew) where/which bits of legacy code did what.
Either they function identically, in which case, you wouldn't get a bug report for using one over the other or they don't function identically, in which case there's a way to find out which does what. I understand that it's easier if someone who knows can tell you but over the course of your career, you will of course run into situations where no one knows and you should be able to find out. You're a programmer and presumably you have the code - why does someone else have to tell you which code does what? When you hire a plumber, does he demand access to the previous plumber who did the work so that he can figure out what was done?

Quote:
Literally at times I would go and ask someone "I've been tasked with migrating functionality x over. Do you know where that currently lives?" And the answer was usually no or a "you might find it in repository x".
Again, why isn't this your job to figure it out if people don't know and how is this considered unusual? If you're talking about any kind of code that no one has touched in a while, the person you're asking would most likely have to do the exact same thing you'd have to do to answer your question. Like with the whole PHP thing (can only write basic code because what the standard library does is like totally unknowable???) you seem to have this weird idea that other people should set everything up perfectly so that you don't have to solve any hard problem.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-09-2016 , 11:49 PM
So your solution is to comb through dozens of repos, thousands of files, > 100k LOC and just hope to stumble on what I'm looking for? This is not a situation where I have no idea how to read what I'm looking at. This is a situation where I have no idea where the code is I'm supposed to migrate. I don't know which file it's in. I don't even know which repo its in. And no one I ask knows either. Worst is that the people who you would expect know what I'm looking for are in the dark as well.

Quote:
Originally Posted by candybar
Either they function identically, in which case, you wouldn't get a bug report for using one over the other or they don't function identically, in which case there's a way to find out which does what. I understand that it's easier if someone who knows can tell you but over the course of your career, you will of course run into situations where no one knows and you should be able to find out. You're a programmer and presumably you have the code - why does someone else have to tell you which code does what? When you hire a plumber, does he demand access to the previous plumber who did the work so that he can figure out what was done?
That's the whole point. Take for example 3 tables having this duplicate column/value. Two out of three have been deprecated. Nobody knows which ones because nobody knows where the legacy code is that reads/writes to the correct table. It's literally trial and error to find out which is the right table. I gave up after a while trying to locate this legacy crap I was tasked to migrate. Out of the many things, one thing I was told was to try and find the php that generated our pseudo-random api keys. This is a task that would have probably taken hours... or the 5 lines of js that took no time flat to come up with that did the same thing.

With some of the stuff you're saying its almost like you're trying to get a ride out of me by acting like an idiot. I want to think you aren't but now I'm not sure.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-10-2016 , 12:10 AM
candybar you may have too much time on your hands.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-10-2016 , 12:22 AM
Quote:
Originally Posted by Craggoo
So your solution is to comb through dozens of repos, thousands of files, > 100k LOC and just hope to stumble on what I'm looking for?
Does grep not work on your computer? 100k LOC is not a a particularly large application at this point and people do this on code bases over 10M lines. It's also completely implausible that you have no idea which of the repos may have the code - even if people can't answer your question directly, either they should be able to answer or you should be able to figure out by glancing at the name and looking through the code which repository is generally responsible for what types of functionality and so on. If your application is split into a whole bunch of repositories, there must also be some kind of central system that puts that together either at runtime or at build, whether some kind of routing layer or application shell or something - that should help you figure out how the broader system is put together. You make it sound like these are isolated incidents but if you keep having to do this, you should probably try to understand the whole system.

Quote:
That's the whole point. Take for example 3 tables having this duplicate column/value. Two out of three have been deprecated. Nobody knows which ones because nobody knows where the legacy code is that reads/writes to the correct table. It's literally trial and error to find out which is the right table. I gave up after a while trying to locate this legacy crap I was tasked to migrate.
Again, you've mentioned this before but you have all the source code and you have the actual application and you have the database. Why is this so hard to figure it out? I've run into this exact situation many times before (only much more complicated because some business logic that would use one field in one instance and another in another instance, or on a waterfall basis, and so on) and it was never that hard. In some cases I've had to do this without access to the source code - some programs we had that were writing to the DB, we didn't have the source code for them at all and for others, we had some source code that was kind of related to the program but wasn't the exact same thing because what's in production was built off some forked copy that was long lost. Some of these problems I've had to debug in the middle of the night during pager duty with data coming from some system I'd never really heard of before until the pager went off and something I have no real access to anyway. I can go on.

Quote:
Out of the many things, one thing I was told was to try and find the php that generated our pseudo-random api keys. This is a task that would have probably taken hours... or the 5 lines of js that took no time flat to come up with that did the same thing.
I mean if you think this is hard, how do you think people build things like Windows and Office and Google Search and iOS and Android and that kinds of stuff at all?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-10-2016 , 12:29 AM
Quote:
Originally Posted by suzzer99
candybar you may have too much time on your hands.


Believe it or not, I've actually worked about 70 hours in the past week despite Monday being a holiday. And I'm working right now
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-10-2016 , 12:36 AM
No idea how you do it. Do you have big breaks for compile time or something?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m