HNHacker News
TopNewBestAskShowJobs

superbatfish

521 karma · joined June 11, 2014

submissionscomments
superbatfish··on Bryan Caplan on Learning Across Disciplines
Tyler Cowen may be the best interviewer on any podcast. He digs deep into each guest's corpus of work, and finds an interesting lens to frame their work for the conversation. I can't recommend his podcast highly enough.
superbatfish··on Joint 3D Face Reconstruction
The shortened HN title here is nonsensical.

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".

superbatfish··on Hydrofluoric Acid: An Invisible Fire (1996)
That's interesting. Thanks very much for the correction, and the link!
superbatfish··on Hydrofluoric Acid: An Invisible Fire (1996)
This stuff is the active ingredient in glass "etching cream". Amazingly, many DIY craft videos on YouTube demonstrate it WITHOUT USING GLOVES!
superbatfish··on Newer C++ features can create a lot of system yak shaving
FWIW, I highly recommend using conda as a package manager for your own pure C++ packages. You can compile everything with the compilers they ship, and the only external dependency from your own system will be glibc.

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.

superbatfish··on Building an AlphaZero AI using Python and Keras
In 1989, Victor Allis "solved" the game of Connect 4, proving (apparently) that the first player can always force a win, even if both sides play perfectly.

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.

superbatfish··on U.S. Wildfire Causes 1980-2016
This is a very cool visualization. Weirdly, though, the visually apparent proportion of natural vs. human causes seems to change depending on my zoom level.

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".

superbatfish··on Exercism – Level up your programming skills
This looks useful for learning the basic syntax of a new language, but the exercises look to be somewhat generic. Most of the exercises seem to be duplicated across languages.

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.

superbatfish··on Interactive workflows for C++ with Jupyter
Good tip! IMHO, I always recommend the Miniconda installer over the full Anaconda installer, except for absolute beginners who would struggle to understand basic concepts like environments or the PATH environment variable, etc.
superbatfish··on Interactive workflows for C++ with Jupyter
Yes, that's of course a potential issue with any distribution. The good news is that's relatively easy to tweak their recipe to build your own version.

  $ 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.
superbatfish··on Interactive workflows for C++ with Jupyter
Yeah, that's what I do also. conda-build makes it easier to use your code downstream, but doesn't obviate the need for build scripts in general.

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.)

superbatfish··on Interactive workflows for C++ with Jupyter
Yes, numba is great; I've had a good experience with it for some functions.

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).

superbatfish··on Interactive workflows for C++ with Jupyter
The conda package manager and it's subproject conda-build are fantastic tools to solve this problem. I write scientific software (primarily a mix of C++ and Python), and I use conda for literally every dependency I need, including pure C or C++ dependencies. Most of them are already available via the conda-forge project, and the ones that aren't are easily integrated by writing my own recipes to package with conda-build.
superbatfish··on Apple internal music video – I Think We're a Clone Now (1994) [video]
You're right -- that's amazing.
superbatfish··on Cling – An interactive C++ interpreter built on top of LLVM and Clang
One easy way to see it in action is to try it in your browser via the xeus-cling project. [1]

The live demo is here: https://mybinder.org/v2/gh/QuantStack/xeus-cling/0.0.7?filep...

[1]: https://github.com/QuantStack/xeus-cling

superbatfish··on Wrapping C with Python: 3D image segmentation with region growing
If you don't need GPU support, vigra is a great option for ND image processing.

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.

superbatfish··on I cannot consistently write safe C/C++ code
I don't know what the Dunning-Kruger effect is, but I can tell you for a fact I'm too smart for it to affect me.
superbatfish··on CRISPR eliminates HIV-1 infection in live animals
If one is familiar with the term 'CRISPR' in the first place, then the intended meaning is pretty clear.
superbatfish··on Is the F-35 a Trillion-Dollar Mistake?
This article violates Betteridge's law of headlines.
superbatfish··on GitHub lets staff own IP developed for personal projects using company resources
>This isn't really the _reason_ that companies have these kinds of policies though

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...

superbatfish··on GitHub lets staff own IP developed for personal projects using company resources
If the company wants all of your ideas, even the ones you come up with on the weekends, then they should offer you a higher salary than the companies that don't demand that time.

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.

superbatfish··on GitHub lets staff own IP developed for personal projects using company resources
Look, this is nice for github employees, but it's worth noting that this is not an easy decision for all companies to make.

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.

superbatfish··on GitHub lets staff own IP developed for personal projects using company resources
The question here isn't whether your should work on side projects at all. It's about who owns the side project when you're done.
superbatfish··on GitHub lets staff own IP developed for personal projects using company resources
As developers, we're biased towards one view of this issue, but it's intellectually lazy of us to just say "Yeah, we deserve it! Because... fairness!"

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).

superbatfish··on An animated GIF that shows its own MD5
This sentence has forty-five (45) characters.
superbatfish··on Amazon's Antitrust Paradox
You are mistaken. For example:

- 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.

superbatfish··on Guide to NumPy (2006) [pdf]
The 2nd edition was published in 2015: https://www.amazon.com/Guide-NumPy-Travis-Oliphant-PhD/dp/15...
superbatfish··on Children exploitation via YouTube
This might sound weird, but I think the primary "victim" here might be parents, not the children.

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.

superbatfish··on Children exploitation via YouTube
Sure, I was even a little worried that it would be perceived that way immediately after I posted it. (Although my concerns weren't articulated to myself as well as your point.)

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.

superbatfish··on Children exploitation via YouTube
>More so, this is another Satanists/Rock and Roll converting our kids issue

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.

← PreviousPage 3 of 5Next →