I have a very strong preference for boost where Qt and boost overlap for two reasons: first, Boost is a proving ground for future C++ standards; second, I avoid UI work like the plague.
I just cannot embrace the mess C++ became anymore. Life is too short to learn C++. Basically I'm using "C with classes" today, without STL, Boost or any of these aberrations.
Out of curiosity, is this desire for self-inflicted misery part of a larger BDSM kinda deal or is it due to willful ignorance of standard practices and idioms that have been well entrenched in the C++ community for the better part of a decade now?
FWIW, I've found code reviews to be particularly effective in this situation as it forces everyone involved to explain themselves and argue on technical merits and helps frame the discussion in risk/benefit terms. It also shifts the tone so that there is an opportunity for a positive outcome for all: if the "kid" is right, you have an opportunity to learn and improve going forward. If the kid is wrong, he's going to get smacked down by the other engineers -- hopefully he's smart enough that he learns his lesson the first time.
Is to achieve this: http://www.joelonsoftware.com/articles/Wrong.html -- make things that are wrong be more obviously wrong. Using discipline and coding standards is just one part of the appropriately paranoid developer's defensive programming toolkit.
You seem to be confused. I did not imply that there is anything wrong (inherently or otherwise) with non-profit work, as a manager or in any other capacity. What I did imply is that in this particular case, "non-profit" is a euphemism for "unemployed".
Until someone offers your boss a compelling case demonstrating the educational value of access to Facebook, you block all of it. The purpose of the computers is to be an aid to the school's educational mission.
I do a lot of work with the Axis cameras, although almost always running my own algorithms on their video. They're nice hardware to work with, but I don't think their algorithms perform all that well (and if I'm not mistaken, they're another example of "ObjectVideo Inside", so it's not really their algorithms). Of course, designing better algorithms for the motion detection and what not is part of how I pay my bills, so YMMV.
"... then you're not doing it right" pretty much summarizes (to the best of my knowledge) state-of-the-art when handling exterior conditions with purely visual sensors, particularly when you're relying on crappy source video with no algorithm-in-the-loop auto-iris control (or worse: analog auto-iris) and god only knows how many layers of crappy A2D, D2A, quantization, etc. steps in between. You need other motion sensors that give you more reliable cues, but even with clever placement, you are always going to face a fundamental trade-off between probability of detect and probability of false alarm.
As for motion sensors + dogs, what is stopping them from aiming the detectors to have a deadzone that ends ~3-4ft off the ground?
You'll discover very quickly that using motion cues to trigger anything other than a light outside is either going to generate a bazillion false alarms or basically be so insensitive as to miss everything. In my opinion, your best bet is to setup two zones: the exterior zone and the interior zone. For the exterior zone, several fake cameras (really just camera-shaped pieces of plastic with a blinking light) plus a few otherwise indistinguishable real ones plus DVR can be had for pretty cheap (Costco, for instance, has kits as low as $250ish). You can use either the built-in motion detection or cue from an external unit (haven't done this myself but I expect it to be pretty straightforward based on how I've triggered similar systems in the past). Key piece: make sure that the storage ends up being put somewhere reasonably secure, away from the DVR and things that look like they're worth stealing.
For the interior zone, I'd use same trick(s) except this time you want to trigger off window opening / door opening sensors as well as motion sensors. The hard part will be to make sure you match up to consistently. I'd want a hysteresis threshold (after x seconds of consistent motion, send a snapshot, after an additional y seconds turn on the sirens).
All in all, it's pretty straight-forward but it's likely to be time consuming, which leads me to: are you sure that what you need is a security system to re-establish your sense of security?
they are surprisingly inexpensive ($500 plus some labor w/ analog video downlink). they are also likely to have been repaired quite frequently (that is if you're lucky and didn't leave a pile of kindle your last encounter with gravity).
on an unrelated note, it's fun to watch confirmation bias in the wild.
yes, the market will ultimately dictate the value of a skill set; however, any organization that sends the message that experience and a demonstrated track record when it comes to building and improving core products is at least 23% less valuable than the flavor of the week, something is broken. alternately, you can see their decision as a wager that risking the morale of their organization so that some kid fresh out of college who claims to know X would, somehow, pay off. neither seems particularly wise to me.
1) approximate randomized algorithms are your friend, especially when we talk about things like (RAN|MAP|MLE|M)SAC in model fitting. for some classes of problems, random approximate algorithms are the *only* attack that we have that are feasible in terms of time/space complexity.
2) your analysis fails to account for the hidden leading constant (otherwise there's no reason to consider quicksort when you have heapsort) and what happens when N gets to be large enough. the fact is that for big enough N or big enough S, the lower order algorithms will start to become dramatically faster, even if repeated applications are necessary to cross-validate results.
3) unless you're using arbitrary precision math, all of these algorithms are approximate anyway and great care must be taken to understand how these systems can be (pre)conditioned to minimize the compounded effects of fixed precision arightmetic.
let me summarize: the same math that drives google's search (spectral graph theory) has been shown to be really useful in solving a very common class of linear equations if you're willing to roll the dice (randomize algorithm).
the method applies to the _general_ (i.e. dense) case of diagonally dominant (i.e. |A_i,i| > |A_i,j| for all i,j) symmetric systems that show up all the time (grammian matrices, for example), not just the sparse case.
I have a very strong preference for boost where Qt and boost overlap for two reasons: first, Boost is a proving ground for future C++ standards; second, I avoid UI work like the plague.
The day you gave up using the wrong tools for the job on a MS platform was a happy one? What a surprise.
I just cannot embrace the mess C++ became anymore. Life is too short to learn C++. Basically I'm using "C with classes" today, without STL, Boost or any of these aberrations.
Out of curiosity, is this desire for self-inflicted misery part of a larger BDSM kinda deal or is it due to willful ignorance of standard practices and idioms that have been well entrenched in the C++ community for the better part of a decade now?
IANAL but Wikipedia thinks there is. It's called barratry ( http://en.wikipedia.org/wiki/Barratry_(common_law) ). There's also http://en.wikipedia.org/wiki/Champerty and http://en.wikipedia.org/wiki/Vexatious_litigation
FWIW, I've found code reviews to be particularly effective in this situation as it forces everyone involved to explain themselves and argue on technical merits and helps frame the discussion in risk/benefit terms. It also shifts the tone so that there is an opportunity for a positive outcome for all: if the "kid" is right, you have an opportunity to learn and improve going forward. If the kid is wrong, he's going to get smacked down by the other engineers -- hopefully he's smart enough that he learns his lesson the first time.
We do this in C++ and Python for all our projects now. All in the repo commit hooks.
Is to achieve this: http://www.joelonsoftware.com/articles/Wrong.html -- make things that are wrong be more obviously wrong. Using discipline and coding standards is just one part of the appropriately paranoid developer's defensive programming toolkit.
You seem to be confused. I did not imply that there is anything wrong (inherently or otherwise) with non-profit work, as a manager or in any other capacity. What I did imply is that in this particular case, "non-profit" is a euphemism for "unemployed".
Why do I feel an overwhelming desire to read "non-profit executive" as "unemployed douche bag with too much access to a thesaurus"?
A great deal of the version wrangling you are facing is best done with a tool like Git.
The bigger problem (development discipline) is much harder to fix.
Until someone offers your boss a compelling case demonstrating the educational value of access to Facebook, you block all of it. The purpose of the computers is to be an aid to the school's educational mission.
I do a lot of work with the Axis cameras, although almost always running my own algorithms on their video. They're nice hardware to work with, but I don't think their algorithms perform all that well (and if I'm not mistaken, they're another example of "ObjectVideo Inside", so it's not really their algorithms). Of course, designing better algorithms for the motion detection and what not is part of how I pay my bills, so YMMV.
"... then you're not doing it right" pretty much summarizes (to the best of my knowledge) state-of-the-art when handling exterior conditions with purely visual sensors, particularly when you're relying on crappy source video with no algorithm-in-the-loop auto-iris control (or worse: analog auto-iris) and god only knows how many layers of crappy A2D, D2A, quantization, etc. steps in between. You need other motion sensors that give you more reliable cues, but even with clever placement, you are always going to face a fundamental trade-off between probability of detect and probability of false alarm.
As for motion sensors + dogs, what is stopping them from aiming the detectors to have a deadzone that ends ~3-4ft off the ground?
Depends on lighting conditions but generally, yes. Which is least partially why I ended with the question that I did.
You'll discover very quickly that using motion cues to trigger anything other than a light outside is either going to generate a bazillion false alarms or basically be so insensitive as to miss everything. In my opinion, your best bet is to setup two zones: the exterior zone and the interior zone. For the exterior zone, several fake cameras (really just camera-shaped pieces of plastic with a blinking light) plus a few otherwise indistinguishable real ones plus DVR can be had for pretty cheap (Costco, for instance, has kits as low as $250ish). You can use either the built-in motion detection or cue from an external unit (haven't done this myself but I expect it to be pretty straightforward based on how I've triggered similar systems in the past). Key piece: make sure that the storage ends up being put somewhere reasonably secure, away from the DVR and things that look like they're worth stealing.
For the interior zone, I'd use same trick(s) except this time you want to trigger off window opening / door opening sensors as well as motion sensors. The hard part will be to make sure you match up to consistently. I'd want a hysteresis threshold (after x seconds of consistent motion, send a snapshot, after an additional y seconds turn on the sirens).
All in all, it's pretty straight-forward but it's likely to be time consuming, which leads me to: are you sure that what you need is a security system to re-establish your sense of security?
SSH != crypto algorithm.
I got bored this afternoon and did the proof a few different ways. Unfortunately, the details won't fit in this comment box.
they are surprisingly inexpensive ($500 plus some labor w/ analog video downlink). they are also likely to have been repaired quite frequently (that is if you're lucky and didn't leave a pile of kindle your last encounter with gravity).
on an unrelated note, it's fun to watch confirmation bias in the wild.
you missed my point.
yes, the market will ultimately dictate the value of a skill set; however, any organization that sends the message that experience and a demonstrated track record when it comes to building and improving core products is at least 23% less valuable than the flavor of the week, something is broken. alternately, you can see their decision as a wager that risking the morale of their organization so that some kid fresh out of college who claims to know X would, somehow, pay off. neither seems particularly wise to me.
i would walk. there is something clearly fundamentally broken with that particular organization and its leadership.
a couple thoughts:
1) approximate randomized algorithms are your friend, especially when we talk about things like (RAN|MAP|MLE|M)SAC in model fitting. for some classes of problems, random approximate algorithms are the *only* attack that we have that are feasible in terms of time/space complexity.
2) your analysis fails to account for the hidden leading constant (otherwise there's no reason to consider quicksort when you have heapsort) and what happens when N gets to be large enough. the fact is that for big enough N or big enough S, the lower order algorithms will start to become dramatically faster, even if repeated applications are necessary to cross-validate results.
3) unless you're using arbitrary precision math, all of these algorithms are approximate anyway and great care must be taken to understand how these systems can be (pre)conditioned to minimize the compounded effects of fixed precision arightmetic.
touche.
how so?
let me summarize: the same math that drives google's search (spectral graph theory) has been shown to be really useful in solving a very common class of linear equations if you're willing to roll the dice (randomize algorithm).
not really.
the method applies to the _general_ (i.e. dense) case of diagonally dominant (i.e. |A_i,i| > |A_i,j| for all i,j) symmetric systems that show up all the time (grammian matrices, for example), not just the sparse case.