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

03-11-2014 , 03:56 PM
Quote:
Originally Posted by clowntable
Those are all waaay more important (especially fixing the last usually means you don't even have to think about caches) but I'd consider none of them low level
That's definitely true and I hadn't realized that you had added the "low level" constraint.

I think my bigger point is that in most applications there is some bottleneck that is going to be orders of magnitude slower than any of the low level issues - which is why I don't think many developers actually need to know that stuff. The low level optimizations will be a tiny fraction of the overall run time of the code.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-11-2014 , 08:08 PM
We're implementing a 3rd party vendor's address validation service, typical javascript model stuff. Other dev asks me "How does this work, I mean do they provide us with a really big db?". My response:

Spoiler:
Of CORS not.


Spoiler:
He didn't get it.


Spoiler:
Its obviously jsonp anyways.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-11-2014 , 09:55 PM
Quote:
Originally Posted by clowntable
I'm kind of with you that you pretty much never need it but it seems like a concepts that just makes sense to know.
I think the concept of memory hierarchy and the principle of locality are worth knowing for every programmer. Size of L1 cache, not so much.

Quote:
At least it feels more important that other low level stuff i.e. intricates of saving an opcode or whatever comes to mind.
If you're limiting the discussion to random facts about processors, cache size is as good as any.

Quote:
But for argument's sale, list a couple of low level items that you think are important (maybe we kind of disagree on low levelness to boot :P). I'm also faaaaaaar from an expert on these issues so I'll gladly yield to your experience.
Those four courses mentioned earlier, compilers, operating systems, computer architecture and computer networking, would be a good start, and in that order. I don't know that there's a simple answer - knowing random facts without the understanding to apply them in proper context can be worse than knowing nothing. If I had to stick to non-obvious, but simple, factual knowledge, I'd go with 1) signed-number and floating point representation and 2) process memory layout (code/data/heap/stack/etc)
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-11-2014 , 10:06 PM
Quote:
Originally Posted by Grue
We're implementing a 3rd party vendor's address validation service, typical javascript model stuff. Other dev asks me "How does this work, I mean do they provide us with a really big db?". My response...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-11-2014 , 10:27 PM
BTW, Stanford's compilers MOOC starts in a week. Looks pretty demanding (10-20 hrs a week!) and it has very positive reviews on coursetalk.
https://www.coursera.org/course/compilers
http://www.coursetalk.com/coursera/compilers
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 03:16 PM
bump

What do you angular folks use for integration testing? Since I'm using rails, it seems like capybara is fine for testing that high level behavior. I finally got around to configuring jasmine tests and guard this morning.

I still think unit tests are very overrated.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:03 PM
How long would you think an intern with very little Python/webdev experience (just assume ABC-learned Java in school) would take to get through the Django tutorial if you also require him to
- use pip/virtualenv(wrapper)
- configure his IDE of choice (let's say PyDev)
- python3 instead of the assumed python2 from the tutorial (expected to install both on his linux dev-computer)

And actually understand the stuff, not just click through, well enough to make meaningful small changes to the example app reasonably fast

How much extra for
- setting up/using git for the mere basics (if never used version control before)
- virtual box+vagrant+salt

Am I way off base for expecting this in one work day with very little extra help (he gets a couple of links to read for each topic but then it's basically google it yourself)

Last edited by clowntable; 03-13-2014 at 06:09 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:19 PM
I used yeoman to build the scaffolding for an angular app. It created a preconfigured grunt file and everything to use karma and jasmine. I hate messing around with the ever changing javascript utils but yeoman was pretty easy to install and get working. My only complaint is that I couldn't figure out how to set karma to just watch for changes and had to run it and wait each time. To be fair I didn't spend much time looking for how to set it up correctly.

I kind of stopped working on my angular app (the flopzilla range calculator clone) but at least half of the code I wrote was unit tests. More than a handful of times I refactored something or made changes to the structure of data somewhere that caused tests to fail. I can't imagine having to debug that without tests, probably not realizing something was broken without immediate feedback.

If you're just using a few gizmos and routing then maybe its not necessary but again if thats the case you would only have a few tests.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:23 PM
Corporate security wants us to sanitize every single header and cookie for cross-site scripting on the off chance one of them gets reflected on the browser. Has anyone else dealt with anything like this? I couldn't find any kind of built in node package or standard whitelist of stuff to screen for, etc. Seems like crazy overkill.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:26 PM
So I'm in an MS program right now and one thing I've noticed is that the best candidates get like five internship/full time offers in a span of under a month, all from top firms/startups, while most of the other people go months before getting an offer. However, the pay differential between the top people and everyone else isn't really that big. The best people might have offers from fb/linkedin/etc paying $130k living in SF, while the guys who go months without finding an offer might get $75-85k living in a much cheaper location (and the difference in skill is huge, as the best guy might be able to do in 1-2 days what takes the other guy two weeks to do, and he'll do it far better). Given that everyone wants the best candidates, why don't firms just throw enough money at them to make them not refuse, ie $300k+? It seems like the skill difference between programmers isn't really compensated and given that everyone wants the best guys, there isn't really a bidding war.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:33 PM
Quote:
Originally Posted by alex23
Given that everyone wants the best candidates, why don't firms just throw enough money at them to make them not refuse, ie $300k+?
http://www.nytimes.com/2014/03/01/te...on-valley.html
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:49 PM
clown,

You're so far off base haha. The django tutorial from what I remember does not walk you through setting up a proper python dev. environment.

Setting up pip/virtualenv is not bad as long as he's semi-familiar with linux and knows how to follow instructions but there are tools that wrap virtualenv which make using virtual envs much nicer.

The tutorial itself (the poll tutorial) teaches you very little. It's such a basic amount of information that I highly doubt you'll be able to build anything behind a ridiculously simple toy app. It also doesn't include any best practices really. It's like a throw away hello world app that has a model.

It's one of the main complaints about django from a lot of people. If you really want to know a lot of good info expect to spend at least a hardcore week of research/learning.

I spent a week of hardcore self researching (finding out good sources of information) to the point where I was comfortable building some reasonable apps using best practices but I also have a lot of web dev experience prior and little python experience.

This also involved using standard community packages, doing sane real life asset management using a pipeline, caching, dealing with multi-models, using things like abstract models and other django features etc.. All in python 3. I had to fix a few packages to work with python 3 because the owners never updated them -- that's another hurdle to jump.

Most of big name packages are updated but he'll need to be comfortable enough to jump into other people's source code and update python 2 code to python 3.

---

For git/vagrant/virtualbox/salt.... no chance in a day with no knowledge before hand. The concept is so foreign to people who are new to this stuff.

With prior ruby experience it took me like a month or so of pretty involved research to not be ******ed with chef as in, I was able to provision servers of different types on ec2. How is that guy going to learn "devops" along with your other list of stuff in 1 day as a dude with almost no experience?

Edit:
I never looked too deep into what salt is, but salt is another "provision your infrastructure" tool like chef right? It's not like fabric or capistrano that is more for performing actions across many machines but not so much geared for provisioning?

Last edited by Shoe Lace; 03-13-2014 at 06:59 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 06:59 PM
Yeah, I would think 2 weeks should be the baseline expectation. If they get it done much earlier than that, probably a clear hire.

As Shoe Lace mentioned, one Python 3 vs. 2 issue could take a whole day to track down.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 07:05 PM
Quote:
Originally Posted by e i pi
I think the answer to this is that its often difficult to really know what you're getting after a day of interviews, so companies don't want to pony up the cash on a new hire. This means the stars only have to be paid a little more than the baseline to keep them from jumping.

I have a feeling stackoverflow and github reputations (or things like them) will lead to more merit based pay in the future. If you're not already, you should be paying attention to your online reputation as a developer to make the big bucks.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 07:06 PM
Quote:
Originally Posted by alex23
So I'm in an MS program right now and one thing I've noticed is that the best candidates get like five internship/full time offers in a span of under a month, all from top firms/startups, while most of the other people go months before getting an offer. However, the pay differential between the top people and everyone else isn't really that big. The best people might have offers from fb/linkedin/etc paying $130k living in SF, while the guys who go months without finding an offer might get $75-85k living in a much cheaper location (and the difference in skill is huge, as the best guy might be able to do in 1-2 days what takes the other guy two weeks to do, and he'll do it far better). Given that everyone wants the best candidates, why don't firms just throw enough money at them to make them not refuse, ie $300k+? It seems like the skill difference between programmers isn't really compensated and given that everyone wants the best guys, there isn't really a bidding war.
Great programmers do make a lot of money and there are tons of 300K+ bidding wars but you're talking about kids out of school, not actual great programmers. Top kids out of school aren't usually great programmers right now, though they have the potential to be. The skill disparity you're seeing has a lot to do with the fact that middle to bottom end of the class have a lot of people who aren't going to make it as professional developers and many haven't even had much practice, while the top kids are already close to their peak in terms of raw speed. Not that there isn't a huge amount of skill disparity even among experienced developers but most of it has nothing to do with a guy doing simple real-world work in 2 days that takes another two weeks. Jeff Dean's not going to be that much faster at doing CRUD work than some random guy with a ton of Rails experience.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 07:18 PM
Do all the $300k+ bidding wars happen in Sili Valley? Specifically do any of them ever happen in the LA area? I'd drive a long way for $300k.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 07:37 PM
Didn't we have this discussion and find 300k+ jobs are exceedingly rare?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-13-2014 , 07:42 PM
Quote:
Originally Posted by suzzer99
Do all the $300k+ bidding wars happen in Sili Valley? Specifically do any of them ever happen in the LA area? I'd drive a long way for $300k.
New York too but here most of those jobs are in finance or ad tech. Hedge funds in particular will pay huge amounts for top talent but some of that bonus will be dependent on the firm's performance.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 12:21 AM
Quote:
Originally Posted by clowntable
How long would you think an intern with very little Python/webdev experience (just assume ABC-learned Java in school) would take to get through the Django tutorial if you also require him to
- use pip/virtualenv(wrapper)
- configure his IDE of choice (let's say PyDev)
- python3 instead of the assumed python2 from the tutorial (expected to install both on his linux dev-computer)

And actually understand the stuff, not just click through, well enough to make meaningful small changes to the example app reasonably fast

How much extra for
- setting up/using git for the mere basics (if never used version control before)
- virtual box+vagrant+salt

Am I way off base for expecting this in one work day with very little extra help (he gets a couple of links to read for each topic but then it's basically google it yourself)
At the end of day one, I would expect to see

git push origin master --force

And you patting him on the back for a job well done.

It would take me over an hour just to set up Emacs. Virtualbox can take over an hour to download...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 07:29 AM
Quote:
Originally Posted by e i pi
I used yeoman to build the scaffolding for an angular app. It created a preconfigured grunt file and everything to use karma and jasmine. I hate messing around with the ever changing javascript utils but yeoman was pretty easy to install and get working. My only complaint is that I couldn't figure out how to set karma to just watch for changes and had to run it and wait each time. To be fair I didn't spend much time looking for how to set it up correctly.

I kind of stopped working on my angular app (the flopzilla range calculator clone) but at least half of the code I wrote was unit tests. More than a handful of times I refactored something or made changes to the structure of data somewhere that caused tests to fail. I can't imagine having to debug that without tests, probably not realizing something was broken without immediate feedback.

If you're just using a few gizmos and routing then maybe its not necessary but again if thats the case you would only have a few tests.

I take back what I said... but still would argue that unit tests in general are overvalued. I'm not saying they don't have their place, just that having 1000 unit tests for simple methods isn't necessarily getting you much. Disclaimer: I haven't worked with big teams that have programmers I don't particularly trust.

I'm finally getting more comfortable setting up my angular tests with jasmine, and it's nice to just stay out of my app and run tests instead. If I'm going to do consulting, I do need to have some test coverage, otherwise I'm a failure.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 07:33 AM
Had an interesting conversation with a couple of guys who are using Go and CanJS for their stack. Sounds like Go is going to take over the world, and is easy to learn. Obviously there was a bit of kool aid for me to drink, but sounded like there were massive amount of job openings for it.

Anyone have any thoughts?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 07:39 AM
Let me clarify...it's basically "can he set up his own environment in a non-idiotic way". He doesn't have to fully understand everything just understand the basic reasoning behind it. Python3 only means he should be able to work through the tutorial and set up his environment for Python3.

And the basic changes just means..."let's say I wanted to add this field to the polls, what would I do? How would you change the color of something"...really trivial stuff.

But it seems like I was off base regardless :P
---

I guess I can just repharase it...what do interns do on day 1 at your companies?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 07:48 AM
A lot is going to depend on how good your documentation is. Is the intern going to have to solve a bunch of dependency issues that no one wrote down but everyone knows? Any other gotchas in your environment? You can't expect a new person to sit down and figure stuff out on the wiki if you don't have good documentation.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 07:59 AM
Nchabazam,

Not close to changing the world for general web dev. I invested some amount of months with it 18 months ago. Today the state of web dev in Go is about the same as it was back then. There are some slight improvements but not much.

Compared to rails there's like 0.1% community support when it comes to packages.

I could see it being useful for certain things where you require ridiculously high concurrency and low latency but there's no way I would use it for any public facing web site. I'd use it for some low level services that rails connects to.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
03-14-2014 , 08:54 AM
Quote:
Originally Posted by Shoe Lace
Nchabazam,

Not close to changing the world for general web dev. I invested some amount of months with it 18 months ago. Today the state of web dev in Go is about the same as it was back then. There are some slight improvements but not much.

Compared to rails there's like 0.1% community support when it comes to packages.

I could see it being useful for certain things where you require ridiculously high concurrency and low latency but there's no way I would use it for any public facing web site. I'd use it for some low level services that rails connects to.
Oh I'm sure. It just sounded like a lot of big companies (google, sendgrid, etc) are moving over their whole stacks to Go as fast as humanly possible. I'm sure they have their own web frameworks with it, if that's what they're using it for.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m