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

04-23-2017 , 10:39 PM
Quote:
Originally Posted by candybar
Interface inheritance ('implements' relationship) is useful and should be used all the time. Implementation inheritance ('extends' relationship) is occasionally useful but should generally be avoided by application developers in most cases. If you're developing frameworks/libraries though, avoiding implementation inheritance can be difficult at times though it depends on the range of meta-programming facilities available in the language. My experience is that generally code reuse is code reuse and most of the problems with implementation inheritance isn't with OOP or inheritance, but with code reuse in general - junior and mid-level engineers in general try too hard to reuse code when it's inadvisable and result with abstractions that are fragile and lack meaningful boundaries.
+1 to all this, although i think having such a terrible tool pushed constantly in the face of junior and mid-level programmers makes matters much worse. ie, a culture where inheritance is "normal" is harmful. if you put someone just learning into a situation where they have better paradigms to follow and even to imitate by rote (at first), they'll have a big advantage imo.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-23-2017 , 10:45 PM
Quote:
Originally Posted by suzzer99
The scary part to me is that this is even possible. I though Apple completely sandboxed all apps?
I did too. i'm curious how they managed this...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-23-2017 , 10:59 PM
Sounds like they were finding a unique way to identify the phones that was no longer supported by Apple.

Quote:
Apple previously allowed developers to track their users with a Unique Device Identifier, or UDID. This kind of tracking was persistent across installs, but as Apple became more concerned with user privacy, it deprecated UDIDs in 2013. Apple replaced UDIDs with other variants of trackers that are designed to be less intrusive, including vendor IDs and advertising IDs. It’s not clear how Uber fingerprinted the devices in 2015 that led to the meeting between Kalanick and Cook.
Quote:
“They were dynamically loading IOKit.framework (a private framework), then dynamically loading some symbols from it to iterate through the device registry (also very much forbidden). They have code to nab a few things from the registry, but the only persistent identifier they actually use appears to be the device Serial Number,” Strafach told TechCrunch in an email. “I believe that in iOS 9 and beyond, this is blocked by the iOS sandbox. Just to clarify, this also shows the initial concern of ‘tracking after uninstall’ was bad phrasing. The case here is tracking between uninstall/reinstall, which is still a privacy violation as Apple forbids this kind of tracking (that is why they removed the APIs for getting device UDID).”
https://techcrunch.com/2017/04/23/ub...leted-its-app/
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-23-2017 , 11:03 PM
Quote:
Originally Posted by gaming_mouse
+1 to all this, although i think having such a terrible tool pushed constantly in the face of junior and mid-level programmers makes matters much worse. ie, a culture where inheritance is "normal" is harmful. if you put someone just learning into a situation where they have better paradigms to follow and even to imitate by rote (at first), they'll have a big advantage imo.
Yeah, with implementation inheritance, you get this wholesale code reuse by default without anyone thinking through the implications, which is quite disastrious in an application-development context where requirements change all the time. I don't have a huge problem with common library/framework patterns where you extend a base class, whether Window/Component/Controller/Control/ApiControler/View, as to easily facilitate IoC-style programming though strictly speaking you don't need that at all in dynamically-typed languages and you could probably use some combination of generics and annotations to support this without implementation inheritance in statically-typed languages.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-23-2017 , 11:04 PM
Quote:
Originally Posted by kerowo
Sounds like they were finding a unique way to identify the phones that was no longer supported by Apple.

https://techcrunch.com/2017/04/23/ub...leted-its-app/
Yeah that was some really bad phrasing.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-23-2017 , 11:34 PM
Quote:
Originally Posted by suzzer99
Which begs the question - how long does it normally take to boot an Open SSH server? Ugh.
I think this is some pretty bad phrasing also. They mean 10 minutes to download the tools, use them to configure and build a bootable .iso file (or other format) and then boot it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 07:27 AM
Quote:
Originally Posted by daveT
Definitely break the title / description into it's own table if you can. Those nulls are a lot of memory and likely causing a lot of speed issues.

I know it's counter to conventional wisdom, but I've found normalizing as aggressively as possible will help a lot with speed. I basically like 4nf and k->v tables, then denormalize after that. Table width has a large impact, IME.
I would say optimising on table width is premature optimisation. Not heard of table width being a factor before but looked it up and apparently it is.

Overnormalisation is a thing, even though I suppose you could normalise things like title and description I would never do it unless qualities of the data make it appropriate (bulk of titles/descriptions are repeating). It overly complicates something that should be simple - if you want to update the description now you have a much longer process.

Quote:
I know it's counter to conventional wisdom, but I've found normalizing as aggressively as possible will help a lot with speed.
I don't think that's anti conventional wisdom at all, normalisation will of course help with query performance. Denormalisation is always used to increase performance.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 09:42 AM
I've never dealt with ads or ad networks before, but as a developer is there any way to strip out all JavaScript from ads that flow through your site, or are you kind of out of the loop when it comes to ads?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 09:52 AM
Quote:
Originally Posted by Gullanian
I don't think that's anti conventional wisdom at all, normalisation will of course help with query performance. Denormalisation is always used to increase performance.
Normalization and denormalization are opposite things, they can't BOTH improve performance
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 09:59 AM
Quote:
Originally Posted by Noodle Wazlib
I've never dealt with ads or ad networks before, but as a developer is there any way to strip out all JavaScript from ads that flow through your site, or are you kind of out of the loop when it comes to ads?
What is the goal here? You could do whatever you want I suppose but if you strip out JavaScript, you don't have an ad and you're certainly not getting paid as a site owner.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 10:06 AM
Quote:
Originally Posted by RustyBrooks
Normalization and denormalization are opposite things, they can't BOTH improve performance
They can and they do. Denormalisation is de-facto for performance improvements.

Normalisation will often improve performance (but I believe is query dependant).

Design pattern I use is adding denormalisation as a last step when query performance isn't as fast as I require it to be. No idea if that's convention, but makes most sense to me as denormalising as part as a start design can sometimes be premature optimisation and will complicate implementation and interaction.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 10:13 AM
Thinking about what you're saying, perhaps we're talking about different aspects of denormalisation. I'm talking about introduction of more data, I think we're getting our wires crossed because perhaps you think I mean denormalisation is the reversal of normalisation? I think those are both two valid ways of denormalising.

My most common usage of denormalisation is:

Code:
Users
=======
ID (PK)

Emails
=======
ID (PK)
FromUserID (FK)

TotalEmailsUserHasSent => SELECT Count(*) FROM Emails WHERE FromUserID = {0}
Denormalised:

Code:
Users
=======
ID (PK)
TotalEmailsSent (int)

Emails
=======
ID (PK)
FromUserID (FK)

TotalEmailsUserHasSent => SELECT TotalEmailsSent FROM Users WHERE ID = {0}
Denormalised has the advantage that no index is required in this example on Emails, and the query I would expect to basically be as fast as possible.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 11:48 AM
Quote:
Originally Posted by Noodle Wazlib
I've never dealt with ads or ad networks before, but as a developer is there any way to strip out all JavaScript from ads that flow through your site, or are you kind of out of the loop when it comes to ads?
Ads are delivered via JS and developers put that in so the website gets paid.

Ad blockers strip out the ads at the browser level so they never get displayed.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 02:01 PM
Quote:
Originally Posted by candybar
What is the goal here?
Allow an ad to be displayed, but prevent the ad itself from running any javascript that could potentially be malicious.

Probably not any way to do this without routing all the ad traffic through your own servers, I would guess.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 03:35 PM
Quote:
Originally Posted by Noodle Wazlib
Allow an ad to be displayed, but prevent the ad itself from running any javascript that could potentially be malicious.

Probably not any way to do this without routing all the ad traffic through your own servers, I would guess.
If you don't trust an ad network, you should run a different network. They aren't going to pay you if you aren't showing the whole ad.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 04:34 PM
Trying to figure out if I'm the idiot or the candidates I'm finding are idiots. The two engineers working for me blasted through this, finishing in 5-10 minutes. They are both in their 20's and have been coding professionally for a few years. I just interviewed two 30+ year old's with over 10 years experience coding and it went horribly, with neither finishing in 45 minutes.

We're hiring for a front end engineer, to get to this interview you go through a phone screening where I ask a bunch of questions to make sure they are very familiar with html/css/js/angular.

If you went into an interview and they sat you in front of a computer and told you:

-here's a browser and a text editor
-create an html page with two big divs
-in the first div make 3 smaller divs, label them a,b,c
-make the smaller divs draggable from one big div to the other.
-feel free to use google
-feel free to use any libraries/modules/plugins/frameworks you'd like

what would you do?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 04:41 PM
Quote:
Originally Posted by blacklab
Trying to figure out if I'm the idiot or the candidates I'm finding are idiots. The two engineers working for me blasted through this, finishing in 5-10 minutes. They are both in their 20's and have been coding professionally for a few years. I just interviewed two 30+ year old's with over 10 years experience coding and it went horribly, with neither finishing in 45 minutes.

We're hiring for a front end engineer, to get to this interview you go through a phone screening where I ask a bunch of questions to make sure they are very familiar with html/css/js/angular.

If you went into an interview and they sat you in front of a computer and told you:

-here's a browser and a text editor
-create an html page with two big divs
-in the first div make 3 smaller divs, label them a,b,c
-make the smaller divs draggable from one big div to the other.
-feel free to use google
-feel free to use any libraries/modules/plugins/frameworks you'd like

what would you do?
First, sample size. You only had 2 misses? Maybe ask more detailed phone screen questions.

Second, are they stumbling on the drag/drop part? I feel like someone could easily work on quite a few projects where that was never required.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 04:50 PM
yes, 2 but I have 3-4 more interviews this week and we're figuring out if we want to change the test up.

They both have a deep knowledge of html/css/js, in fact maybe too good.

yes, on the drag/drop part. I'll let a few others answer what they'd do before I talk about what they did.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 04:56 PM
Quote:
Originally Posted by blacklab
Trying to figure out if I'm the idiot or the candidates I'm finding are idiots. The two engineers working for me blasted through this, finishing in 5-10 minutes. They are both in their 20's and have been coding professionally for a few years. I just interviewed two 30+ year old's with over 10 years experience coding and it went horribly, with neither finishing in 45 minutes.

We're hiring for a front end engineer, to get to this interview you go through a phone screening where I ask a bunch of questions to make sure they are very familiar with html/css/js/angular.

If you went into an interview and they sat you in front of a computer and told you:

-here's a browser and a text editor
-create an html page with two big divs
-in the first div make 3 smaller divs, label them a,b,c
-make the smaller divs draggable from one big div to the other.
-feel free to use google
-feel free to use any libraries/modules/plugins/frameworks you'd like

what would you do?
this took me under 10m and i'm old: http://jsbin.com/racigi/edit?html,css,js,output

anyone who can't do that quickly doesn't have front-end experience. they may have lots of years doing something else, but if you're not hiring for that, so what?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 04:59 PM
Quote:
Originally Posted by blacklab
They both have a deep knowledge of html/css/js, in fact maybe too good.
this seems impossible
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 04:59 PM
I'd probably first try to clarify what "big div" and "label" mean in the instructions. I've never implemented any drag and drop but I'd probably be inclined to jam some jquery, but hopefully I'd end up here first: https://www.w3schools.com/html/html5_draganddrop.asp and do that.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 05:09 PM
Quote:
Originally Posted by gaming_mouse
this took me under 10m and i'm old: http://jsbin.com/racigi/edit?html,css,js,output

anyone who can't do that quickly doesn't have front-end experience. they may have lots of years doing something else, but if you're not hiring for that, so what?
this is the correct answer, you did exactly what one of my coders did, used dragula. We actually use dragula in our product.

Quote:
Originally Posted by gaming_mouse
this seems impossible
They both started down the path of mouse events and other ****. Never googled a thing. One was an idiot who really didn't know what he was doing, the other got it to the point where you could click on the smaller divs and they'd move to the other div, but didn't get to the dragging part and admitted he didn't know what to do.

We did get in a long discussion of plugins/libraries/modules and he's had it beat out of him not to use them. He found dragula after we stopped him and said they'd never let him use something like this at his current work.

Quote:
Originally Posted by da_fume
I'd probably first try to clarify what "big div" and "label" mean in the instructions. I've never implemented any drag and drop but I'd probably be inclined to jam some jquery, but hopefully I'd end up here first: https://www.w3schools.com/html/html5_draganddrop.asp and do that.
this is very similar to what I would probably do. My first google query would be "html drag and drop" and this page is near the top of that search.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 05:14 PM
Quote:
Originally Posted by blacklab

They both started down the path of mouse events and other ****. Never googled a thing. One was an idiot who really didn't know what he was doing, the other got it to the point where you could click on the smaller divs and they'd move to the other div, but didn't get to the dragging part and admitted he didn't know what to do.
being generous, you could say that they ignored the intended interpretation, assuming that it was too easy. however, the way you phrased the question makes that implausible to me. i suppose you could add, "it should take beetwen 5 and 20 minutes to complete." that should rule out going down a low-level rabbit hole in which you attempt to implement your own draggable library.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 05:20 PM
Quote:
Originally Posted by blacklab
If you went into an interview and they sat you in front of a computer and told you:

-here's a browser and a text editor
-create an html page with two big divs
-in the first div make 3 smaller divs, label them a,b,c
-make the smaller divs draggable from one big div to the other.
-feel free to use google
-feel free to use any libraries/modules/plugins/frameworks you'd like

what would you do?
I'm a low 30 something with <6 months paid experience.

After googling "draggable js" to search for a library, I found https://www.w3schools.com/html/html5_draganddrop.asp as the third link and pretty much followed it, adding in the elements you were talking about (2 outer divs, 3 inner divs). https://codepen.io/anon/pen/qmayXa Took me about 10 minutes too.

ETA: slow pony, but it at least it's a reliable pony.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-24-2017 , 05:27 PM
Quote:
Originally Posted by gaming_mouse
being generous, you could say that they ignored the intended interpretation, assuming that it was too easy. however, the way you phrased the question makes that implausible to me. i suppose you could add, "it should take beetwen 5 and 20 minutes to complete." that should rule out going down a low-level rabbit hole in which you attempt to implement your own draggable library.
Yeah, that may have been the case on the first. After watching the first guy struggle we told the second he has 30 minutes to which he replied "that's impossible"

For those that do it in 5 minutes with something like dragula we then tell them to make it so you can't drag from the second div to the first and/or add second divs below the first and show a bullet list of the div names of the divs in the div above it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m