521 karma · joined June 11, 2014
In this context, "joint" means "together" or "at the same time". The work's title, "Joint 3D Face Reconstruction and Dense Alignment", essentially means "Face Reconstruction with simultaneous Dense Alignment". The HN title should mention both parts, or remove the word "joint".
Yes, it means you're using your own "mini-me environment", but you can share that environment across all of your C++ projects. As long as you build with:
LDFLAGS="-Wl,-rpath,${PREFIX}/lib -L${PREFIX}/lib"
... then everything you compile ends up in the self-contained environment. Furthermore, distributing your build products to another user (or another machine) is as simple as:
tar -czf mystuff.tar.gz ${PREFIX}
Then your friends can take your tarball and unzip it in any directory of their choosing. The whole prefix (environment) is self contained (except glibc, which must be at least as new as the version on your build machine). It just works.
In 1996, Giuliano Bertoletti implemented Victor Allis's strategy in a program named Velena:
http://www.ce.unipr.it/~gbe/velena.html
It's written in C. If someone can get it to compile on a modern system, it would be interesting to see how well the AlphaZero approach fares against a supposedly perfect AI.
Plotting this much data presents several challenges. I recently discovered a good guide on the subject of "Plotting Pitfalls" from the Bokeh project:
https://bokeh.github.io/datashader-docs/user_guide/1_Plottin...
I think this visualization suffers a bit from "overplotting".
Once you've mastered the basic syntax and control constructs of a language, it probably isn't worth your time to try a dozen different string manipulation exercises.
Perhaps this is beyond the scope of what this site is aiming for, but, I would hope for some exercises that help me understand what each language is commonly used for.
Potential examples:
- Swift: Learn to display and manipulate a GUI
- Ruby: Learn to write a web application
- Python/Julia/R: Learn to fit some data to a model
- Javascript: Learn to use a web framework
- Go: Learn to handle some network connections, concurrently. (I see they have one exercise that emphasizes concurrency, which is a step in the right direction.)
- Perl/PHP/Bash: Learn to cry bitter, sorrowful tears.
$ conda install conda-build # prerequisite...
$ https://github.com/conda-forge/fftw-feedstock && cd fftw-feedstock
$ emacs recipe/build.sh # Add --enable-openmp
$ conda build recipe
$ anaconda upload -u mychannel ${CONDA_PREFIX}/conda-bld/*-64/fftw-*.tar.bz2
Now you can install your custom-built version of fftw and easily share it with your friends by telling them the name of your channel on anaconda.org.However, if you're using conda, you might be able to at least simplify your build scripts, even though you can't eliminate them.
If you are okay with requiring your users to have conda, then you can exploit that fact to simplify your CMakeLists.txt in some ways. For instance, find_library, etc.. can be replaced with hard-coded links to ${CONDA_PREFIX}/lib/...
(I'm not saying that's necessarily "best practice" for all projects, but it's a nice option to consider, especially in the early phases of development.)
Some problems aren't suited well for it though, especially those that involve Python dictionaries or sets. For those problems, switching to C++ results in MUCH faster code (std::unordered_map is way faster than Python's dict, especially for small elements).
The live demo is here: https://mybinder.org/v2/gh/QuantStack/xeus-cling/0.0.7?filep...
conda install -c conda-forge vigra
python -c 'import vigra; help(vigra.analysis.watersheds)'
scikit-image ain't bad, and has more functions, but the functions vigra is faster if it has the function you're looking for.
Next on my list of ND array libraries to learn is xtensor.
I think it's fair to say that there are multiple reasons. The one you listed is definitely one of them. Joel Spolsky wrote about this a few months ago:
https://www.joelonsoftware.com/2016/12/09/developers-side-pr...
As it turns out, many companies do exactly this. And (apparently) their developers decided it was a fair deal. But if you don't like that deal, that's an entirely reasonable choice. In that case, just don't work for such a company, even if they offer better salaries.
It would be unfair to say "don't take the job if you don't like the deal" if there weren't other options, but the fact is that there are lots of other options. There are plenty of software jobs that don't include such clauses, especially in the non-profit and academic sector.
We (developers) aren't like factory workers cranking out widgets by the hour. We're paid to think deeply about challenging problems. For me, that means chewing on a problem for a long time, often when I'm not at work. Honestly, when a problem is challenging, I can't get it out of my mind. I'm thinking about it, at least a little bit, on the weekends -- heck, maybe even while I'm sleeping. And those are the problems I enjoy the most.
When a savvy software company hires someone, they understand that this is how developers operate. They will offer handsome compensation because they expect this.
Ultimately, competition for your thinking time is a zero-sum game. If you're working on a hard problem at work, you might think about it at home. Similarly, if you're working on an interesting side project you might think about it at work. You can't help it.
That doesn't mean companies should never allow side projects at all. There should be room for negotiation. But if we don't acknowledge the basic facts of the situation, then we aren't negotiating in good faith.
Last December, Joel Spolsky wrote about developer side projects, and honestly, he's right.
https://www.joelonsoftware.com/2016/12/09/developers-side-pr...
My view: In some companies, depending on their business model, it might be reasonable to ask to own your own work on side projects. But it would be reasonable of them to expect you to give up something in exchange (e.g. smaller salary).
- He wrote Slate's economics column, "MoneyBox," for a number of years.
- He wrote a book about the economics of the housing market.
- He co-founded Vox.com, which -- presumably -- reinvests its profits to grow the business.
Here's an (admittedly imperfect) analogy: There are a lot of reasons to oppose constant government surveillance, even if you're not a criminal. But one of those reasons is just the simple fact that, as human beings, we are psychologically stressed out by the fact that someone might be watching us at any moment. Even if I'll probably live my entire life without feeling any tangible effects of the surveillance, believing that it's out would be a legitimate harm to my quality of life.
Parents are entitled to be legitimately troubled by the fact that pedophiles are thinking of their children in their sexual fantasies. That's not "imagined" harm; it's real. After all, psychology is what it is, and it's not changing any time soon.
Of course, enforcing any rules/laws against such behavior will be tricky, but probably not impossible.
But at the time that I left my comment, this thread had very few votes and only 2 comments. It looked like it was just about to fall off the bottom of the front page.
I figured a simple "dude, wtf" comment for the (very) few of us who were participating in this thread at the time would be interpreted as: "If you don't know what to make of this, but you know you don't like it, I'm with you."
As it turns out, at least some of downvoting was due to some people's serious misunderstanding of the original article. See for example, aaron695's misguided comment below about "gay sex".
Anyway, sorry for the meta-meta discussion.
No offense, but your post makes it sound like might have missed the point of the article. This isn't about "converting" kids to anything. (In fact, thankfully, the kids in this case seem totally oblivious to the role they're playing here.)
The issue is that a few jerkwads are sneakily tricking kids into saying -- or sometimes acting out -- things that titillate the jerkwads' sexual fantasies. It's troubling because someone is using kids as unwitting pawns in a sex game.
If we agree on the point of the article, then comparing it to "gay sex" -- which exploits no one, let alone children -- is, frankly, offensive.