HNHacker News
TopNewBestAskShowJobs

W0lf

425 karma · joined December 26, 2012

Computer scientist (M.Sc.) with a strong focus on Computer Vision, Image Processing and Machine Learning mainly in the languages C, C++(11,14), Java and Python. http://kai-wolf.me

[ my public key: https://keybase.io/newproggie; my proof: https://keybase.io/newproggie/sigs/IGvw8WxNVmB5OPL1uJCvhQ5H2-8CnTLkMg6Z1efp9mI ]

submissionscomments
W0lf··on How to navigate directories faster with Bash (2015)
Thanks a lot for pointing this out. I will happily fix this now!
W0lf··on How to navigate directories faster with Bash (2015)
For this exact use case I defined the following many years ago in my bash profile:

    # create a new directory and enter it
    function mkd() {
        mkdir -p "$@" && cd "$_";
    }
And use it like: mkd foo
W0lf··on Conan – A package manager for C/C++
This article is pure spam? Every link references back to another article and the whole description is a copy from the official documentation.
W0lf··on The ants and the pheromones
A friend of mine developed a more efficient version of RANSAC and named it ANTSAC [1] which basically follows the same biological motivation (ants that follow similar paths based on pheromone information). In the case of ANTSAC it tries to optimize the next sample guesstimation.

[1] http://www.cogsys.cs.uni-tuebingen.de/forschung/terminiert/A...

W0lf··on New 10 Terapixel Image of the Night Sky Contains 1B Galaxies
Related question: Does anybody know if this sort of zooming behaviour (mapping images onto a grid and dynamically load smaller tiles with higher solutions based on current offset) has a concrete, nameable algorithm behind it? Any link to an Open Source implementation would also be interesting.
W0lf··on Digital sound processing tutorial
I did develop a proof-of-concept for a client recently which involved some digital sound processing on mobile devices and used this[1] book as a reference to refresh some (advanced) basics again. Can recommend this to anybody who is interested in digital signal processing as I really liked the style and density in this book

[1] Discrete-Time Signal Processing: Pearson New International Edition

W0lf··on FreeYourMusic lets users migrate their playlists off Spotify
Same here. I'm canceling my Spotify subscription right now and am moving to iTunes (back again). Spotify doesn't seem to support the newly announced home pods as well, which was another reason to quit my subscription, but mainly the somewhat enforced lock in from Spotify concerned me as well.
W0lf··on Structure and Interpretation of Computer Programs (SICP) Book
If you decide to work through this book, I suggest to follow along this YT channel [1] as the owner of this channel is going through each chapter (and exercises) roughly every week right now (currently at chapter 4.1)

[1] https://www.youtube.com/watch?v=oA-FdE3KV88&list=PLVFrD1dmDd...

W0lf··on Using Vim for C++ Development
Before switching to CLion eventually, I've used my well curated VIM config[1] together with YouCompleteMe and several clang-based tools such as clang-format, clang-rename etc. for several years, working on smaller and large C/C++ codebases with reasonable success.

At some point in time I switched to a full-fledged IDE (CLion) because there are certain refactoring tasks which are probably still possible using this setup but I found them to be mentally too complex to deal with, especially when I am focusing on the task at hand at the same time.

[1] https://github.com/NewProggie/Dev-Utils/blob/master/dotfiles...

W0lf··on Thoughts on 2 Years as a Remote Robotics Consultant
I'd really would encourage you (and other fellow software contractors) to not think in terms of amount of code produced but in terms of solutions brought to the client that helped solving a specific business problem. As I've responded to another comment, there is no correlation between the amount of ASCII chars produced and productivity/net gain for the client.

As for UpWork it doesn't make it any better (for me) if their payment protection is bound to this kind of screenshot surveillance. If they don't offer a payment protection in every* case, I wonder why they exist in the first place other than talking a good cut from your daily rate and making everything more complicated for both the software contractor and the client.

W0lf··on Thoughts on 2 Years as a Remote Robotics Consultant
Thanks for your remarks. Few things come to mind: First I'd never charge by hour but have (at least) daily rates and I'd suggest every other independent software contractor to follow the same principle.

Second, there is no correlation between the amount of ASCII chars outputted per hour and the productivity/net gain for the client (at least for the type of work I'm doing for whatever that matters). Sometimes I do have to think hard about a problem for a longer period of time, maybe executing on a few ideas before finally presenting and motivating a solution I came up with for a given problem. That doesn't mean my computer desktop looked _productive_ the whole time. In fact much of the important work maybe even done on a sheet of paper.

W0lf··on Thoughts on 2 Years as a Remote Robotics Consultant
I cannot fathom how anybody could either come up with the idea of taking screenshots from a computer desktop continuously whilst working for a client (in order to somewhat _prove_ productivity, I assume) or is comfortable to a degree with a contracting company taking screenshots from a computer while working for a client.

Really, I can't grasp the absurdity of some people's mind sometimes and wonder about their morality (UpWorks in this case, not yours. Just to be clear.). Not everything that maybe is technically doable is also ethical. If you comply to such practices, I think it will have an impact on your self-esteem and self-respect. Just try to imagine how other fellow hackers, developers or software engineers you admire would think of the idea getting screenshot'ed every other minute in order to control them.

W0lf··on New Features in Gnuplot 5.4
For a quick and dirty on the spot visualization for some data on the command line, I'd like to plug the following:

    function plot() {
        { echo 'plot "-"' "$@"; cat; } | gnuplot -persist;
    }
For example:

    seq 100 | sed 's/.*/s(&)/' | bc -l | plot linecolor 2
W0lf··on Commodore SX-64 keyboard restoration
Just the other day over on YT the channel retro recipes also did a refurbish on a Commodore SX-64[1] for anyone who's interested.

[1] https://www.youtube.com/watch?v=MlWsR5WN9e4&t=0s

W0lf··on 'Black neutron star' discovery changes astronomy
I bought it this morning based on your suggestion and so far I really like it. Thanks!

Edit: Coincidently, the first chapters of this book play in June 2020. Computers are very expensive devices where there's always hardly any money left to do long operations on it and everybody always prints out screens on large paper rolls :-)

W0lf··on Discovering Dennis Ritchie’s Lost Dissertation
So after reading this, is it correct to say that Ritchie basically showed in his thesis the application of the for loop for recursive prime number computation and also its application to computational complexity? AFAIK for loops where already known at the time since they first appeared in ALGOL a little earlier?
W0lf··on Source code of Germany’s official covid-19 contact tracing app
According to the git log the overall development time was round about 6 weeks. Including some holidays in between, we're looking roughly at 1 Million Euro per development day!
W0lf··on How Google Meet's noise cancellation works
I've worked on my last gig for a startup that did speech-in-noise recognition and there we've used a recurrent neural net approach to separate background noise from speech. This model was trained on many many hours of audio data as well.
W0lf··on GitQlient – a multi-platform GUI-oriented Git client written with Qt
Is anyone aware of a publicly available code base to look into when searching for high quality Qt-based (desktop) applications? Think chromium-quality software quality code base. I am looking for inspiring patterns and also things such as naming schemes as I regularly change my mind when it comes to developing Qt based applications with regard to:

  - naming things (e.g. should signals/slots be prefixed (sigFoo() -> onFooBared())
  - how to deal with signal functions actually not implemented (clang-tidy warnings)
  - how to break up large main window classes in a reasonable manner
and so on. Typically I immerse myself in one of the larger code bases I'm aware of (Android, Firefox, Chromium, Tensorflow, and some others) and regularly discover pretty useful patterns I can make use of. However, I was unlucky to find something for Qt based.
W0lf··on The myth of the developer that can't code
The conclusion that those rejected developers eventually ended up getting a job at another software company and hence they must be able to code properly is false IMHO. In my experience there are a lot of dysfunctional software companies out there where people do get hired for software jobs but they all end up doing whitebox testing or clicking around in some Excel sheets.
W0lf··on Ask HN: What is your blog and why should I read it?
http://kai-wolf.me/pages/blog/

Mostly technical stuff I've discovered or which I find particularly interesting

W0lf··on Cognitive Biases in Software Development
Elaborating a bit more on this, I have made the observation that again those _most people_ don't care much reading (good) code from other people. There are many outstanding examples of code quality out there. For instance, I've found many good patterns and solutions by simply reading the Chromium source code, many of which I can apply directly to similar problems I'm facing myself for any given software project I'm doing.

The same holds true for literature, I think. Surely, there are many people how can read and write a piece of text. However, there surely is a qualitatively difference between a gossip article from the magazine and Shakespeare's Hamlet.

W0lf··on Cognitive Biases in Software Development
Thank you for this insight. I wasn't aware that this was a reasonable name when coming from Ada.
W0lf··on Cognitive Biases in Software Development
My personal observation (and view of course) is that most people simply cannot code. And I am not talking about that reverse-a-binary-tree or traverse-a-linked-list type of coding, but more profoundly they just cannot wrap their head around a problem and are able to create a sufficient solution with respect to the context of the code and its environment at the same time. Good software development is strongly connected with ones ability to think clearly about any given problem and the ability to logically deconstruct it in smaller, more digestible thoughts. If there's confusion in the mind, there probably will be confusion in the code as well.

Also, it just seems as if many are unable to step back and look at the broader side of things when coding. Asking questions like: Are we using the right concepts here? Did we develop sufficient abstractions? Case in point: I was just refactoring a code base for a client where the code was paved with a `MemoryHolder` type, where simply `Buffer` would have been the better name for the same concept.

W0lf··on If the Moon Were Only 1 Pixel (2014)
Right, but I had to first click the mouse wheel to switch to fluid scrolling :)
W0lf··on Ask HN: Best language to share code between an Android and iOS app?
I did one cross iOS/Android platform project using Kotlin/Native with its MPP plugin with reasonable success. However, this was 6 months ago and the JetBrains people surely haven‘t stopped moving forward.
W0lf··on Victor Mono – A free programming font
reminds me a lot of Operator Mono/Book, especially the cursive variant
W0lf··on An introduction to deterministic builds with C/C++
So, it's actually the first time in history of Conan where I personally think it became a useful tool and am using it professionally in several projects for my clients. It still has a lot of quirks though and one can easily get into trouble when setting up dependencies across different platforms.

I've looked more closely into Conan several times in the past and also added bug reports here and there, but it finally became somewhat usable (for me and my projects at least). Also, I'm quite picky when it comes to CMake integration, because I don't want my package manager to interfere with my build system configuration. Conan finally reached a state where one can simply check in a conanfile.txt in the repository and use the `cmake_paths` generator to fetch all dependencies before calling CMake to generate a project for you.

I also decided to setup my own Artifactory server as the official bintray comes with a max. size limitation of 500 MB per artifact which is way too low, considering that Qt5 with Core, Gui and Widgets statically built on Windows (release build) easily outgrows this limit. However, once you have your infrastructure setup, it's easy to add build flavors such as sanitizers etc. for a given set of thirdparty libraries.

W0lf··on Show HN: Inlets 2.0 – expose your local endpoints to the Internet
sounds a lot like smee.io to me?
W0lf··on Richard Feynman and the Connection Machine (1989)
This is probably the most important habit of Feynman, I tried to incorporate into my own life and studying:

"Then he would set to work, scribbling on a pad of paper and staring at the results. While he was in the middle of this kind of puzzle solving he was impossible to interrupt. "Don't bug me. I'm busy," he would say without even looking up. Eventually he would either decide the problem was too hard (in which case he lost interest), or he would find a solution (in which case he spent the next day or two explaining it to anyone who listened). In this way he worked on problems in database searches, geophysical modeling, protein folding, analyzing images, and reading insurance forms."

← PreviousPage 3 of 5Next →