HNHacker News
TopNewBestAskShowJobs

monk_the_dog

253 karma · joined October 3, 2009

I love working on computer vision problems. email: monk (dot) scott (at) google's mail.
submissionscomments
monk_the_dog··on Kagi search reached 20k paying members
I am a happy customer, and recently discovered their URL rewrite rules: https://help.kagi.com/kagi/features/redirects.html. This lets me automatically rewrite urls so reddit automatically opens in "old" reddit and boost docs open with the latest version of boost. Really feels like this search engine was built for people like me.
monk_the_dog··on Ask HN: Who is hiring? (March 2022)
Ripple | REMOTE or ONSITE | full-time

Hi, I'm a C++ software engineer at Ripple. I work on the XRP Ledger, a peer-to-peer decentralized payment server (see https://github.com/ripple/rippled).

If you like working with C++, you'll be very happy here. We use `17 and intend to move to `20 soon.

Our software is cross platform, and you're welcome to use your preferred tools. The team is split pretty evenly across Windows, Linux, and Mac.

We're a "remote first" team, spread across the U.S. Almost all communication is done through slack/email.

Ripple is growing fast. We've got great funding, and a great team. Feel free to email me with any questions: determan at ripple.com (My name is Scott).

Our open jobs are listed here: https://boards.greenhouse.io/ripple/ and we're looking to hire many roles, not just C++ roles (although I have less visibility into the non-C++ roles).

I truly like the people I work with - we're a great place to work. Come join us!

monk_the_dog··on Ask HN: Who is hiring? (February 2022)
Ripple | REMOTE or ONSITE | full-time

Hi, I'm a C++ software engineer at Ripple. I work on the XRP Ledger, a peer-to-peer decentralized payment server (see https://github.com/ripple/rippled).

If you like working with C++, you'll be very happy here. We use `17 and intend to move to `20 soon.

Our software is cross platform, and you're welcome to use your preferred tools. The team is split pretty evenly across Windows, Linux, and Mac.

We're a "remote first" team, spread across the U.S. Almost all communication is done through slack/email.

Ripple is growing fast. We've got great funding, and a great team. Feel free to email me with any questions: determan at ripple.com (My name is Scott).

Our open jobs are listed here: https://boards.greenhouse.io/ripple/ and we're looking to hire many roles, not just C++ roles (although I have less visibility into the non-C++ roles).

I truly like the people I work with - we're a great place to work. Come join us!

monk_the_dog··on Show HN: Nyxt Browser 2.0.0
Just tried it and my first impression is: "this was built for me! I love it!". One bit of friction: I'm in vi mode. I hit 'f' to follow links. Apparently I need to hit 'i' before it will accept input. It would be better if it started in insert mode. Example: 'f' followed by 'g' just prints 'pressed key g'.
monk_the_dog··on Ask HN: Computer Science/History Books?
Two lesser known books that I enjoyed: 1) "Colossus: The secrets of Bletchley Park's code-breaking computers", and 2) "The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal".

One thing I learned from the "Colossus" book was the contribution of British engineers to early computers (Tommy Flowers in particular). They didn't get the credit they deserved because their work was kept secret for so long.

monk_the_dog··on Ravens parallel great apes in flexible planning for tool-use, bartering (2017)
Thanks for giving me an excuse to recommend "A Deepness in the Sky", by far my favorite science fiction book with a planet of sentient spiders. It's the second in a series, but the first two book can be read out of order. https://www.amazon.com/Deepness-Sky-Zones-Thought/dp/0812536... (The first book is good too; The third one was OK, but not as great as the first two.)
monk_the_dog··on Grim C++ Tales from the Crypt: The Visitor Pattern (2017)
Pattern matching is on many people's radar, including the "Direction Group" (See: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p093...). This proposal was discussed at the committee meeting last month: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p137... I'd love to see it standardized in 23, but I have no idea how likely that is. (It definately won't be in c++-20, which is now closed except for tweaks).
monk_the_dog··on Ask HN: Who is hiring? (May 2018)
I first heard the term "remote first" from a stack overflow blog post: https://stackoverflow.blog/2017/02/08/means-remote-first-com...

The key takeaway for me was: Remote-first means working remote is the default. It means making sure your remote employees are as much a part of the team as those in the office.

The team I work with - the rippled team - is 100% remote. Other teams within ripple work mostly onsite.

monk_the_dog··on Ask HN: Who is hiring? (May 2018)
Ripple | San Francisco, CA or REMOTE | full-time

Hi, I'm a C++ software engineer at Ripple. I work on the Ripple XRP Ledger, a peer-to-peer decentralized payment server (see https://github.com/ripple/rippled).

We're looking to hire a Senior C++ Software Engineer. The official ad is here: https://ripple.com/company/careers/all-jobs/#senior-software...

The team knows the C++ language well. Two members regularly attend committee meetings and one member has made substantial contributions to the language. If you like working with C++, you'll be very happy here. We use `14 and intend to move to `17 soon.

Our software is cross platform, and you're welcome to use your preferred tools. The team is split pretty evenly across Windows, Linux, and Mac.

We're a "remote first" team, spread across the U.S. Almost all communication is done through slack/email/skype.

Ripple is growing fast. We've got great funding, and a great team. Feel free to email me with any questions: determan at ripple.com (My name is Scott).

monk_the_dog··on Rr 5.0 Released
rr is my goto debugger. It opens up new super-powers for debugging scripts. Consider this gdb script:

  b broken_1_in_1000_times_at_random.cpp:1
  c
  b usually_runs_normally.cpp:1
  reverse-continue
And now step through forward to figure out what went wrong. This tool is worth your time to learn. There are a couple of minor annoyances (you can't re-use existing gdb scripts that contain the "run" command because the inferior is already running, but there are workarounds. Here's what I use:

  python
  import gdb
  class MyRunOrContinue (gdb.Command):
      """Run inferior if not already running, otherwise continue (useful for rr)."""

      def __init__ (self):
          super (MyRunOrContinue, self).__init__ ("just-go", gdb.COMMAND_USER)

      def invoke (self, arg, from_tty):
          if gdb.selected_inferior().pid != 0:
              gdb.execute('continue')
          else:
              gdb.execute('run')

  MyRunOrContinue()
  end
There are a few other minor annoyances, but all in all a great tool.
monk_the_dog··on Quotes
I'll have to add some of these to my list of quotes that emacs greets me with. Current list:

  (defvar scratch-quotes
  (list
   "Everybody has a plan until they get punched in the mouth. - Mike Tyson"
   "Look, I made a hat...where there never was a hat. - Finishing the hat, Sondheim"
   "Just fucking figure it out."
   "The universe is not here to please you. - Charles Murtaugh"
   "Your life is your life. The gods await to delight in you. - Bukowski"
   "Join the force and get a pension. - Salesman"
   "Beware of things that are fun to argue. - Eliezer Yudkowsky"
   "However beautiful the strategy, you should occasionally look at the result. - Winston Churchill"
   "Truth is much too complicated to allow anything but approximations. - John Von Neumann"
   "Writing program code is a good way of debugging your thinking. - Bill Venables"
   "Don't tell me what you value. Show me your budget, and I'll tell you what you value. - Joe Biden quoting his father"
   "Most haystacks do not even have a needle. - Lorenzo"
   "Experiment and theory often show remarkable agreement when performed in the same laboratory. - Daniel Bershader"
   "The important work of moving the world forward does not wait to be done by perfect men. - George Eliot"
   "It is astonishing what foolish things a man thinking alone can come temporarily to believe. - Keynes"
   "The purpose of computing is Insight, not numbers. - Richard Hamming"
   "Work on stuff that matters. - Tim O'Reilly"
   "Sometimes magic is just someone spending more time on something than anyone else might reasonably expect. - Teller"
   "You have to say something. It can't all be technique. - Woody Allen (on great actors)"
   ;; Paraphrased from a HN comment
   "Perfectionism is a failure to optimize across a complex goal space, settling, instead, on ignoring the difficult prioritisation problem in favor of over-optimizing a limited set of tangible and easily-defined goals over longer-run priorities" 
   ))
monk_the_dog··on Should you be scared of Unix signals?
Oodbs used a similar technique to translate addresses from a large "global" address space into smaller "local" one. Here is a paper if you're interested (ftp://ftp.cs.utexas.edu/pub/garbage/swizz.ps). Did you discover this technique on your own? At any rate, very cool.
monk_the_dog··on Ask HN: Who is hiring? (May 2016)
Ripple | San Francisco, CA or REMOTE | full-time

Hi, I'm a C++ software engineer at Ripple. I work on the Ripple Protocol, a peer-to-peer decentralized payment server (see https://github.com/ripple/rippled).

We're looking to hire a Senior C++ Software Engineer. The official ad is here: https://ripple.com/company/careers/all-jobs/#senior-software...

The team knows the C++ language well. One member is on the committee and I believe three have submitted proposals. If you like working with C++, you'll be very happy here (we use `14).

Our software is cross platform, and you're welcome to use your preferred tools. The team is split pretty evenly across Windows, Linux, and Mac.

We're a "remote first" team, spread across the U.S. Almost all communication is done through slack/email/skype.

Ripple is growing fast. We've got great funding (inc. Google Ventures & Andreessen Horowitz), and a great team. Feel free to email me with any questions: monk.scott at google's mail (My name is Scott).

monk_the_dog··on Perfect forwarding and universal references in C++
Maybe you're confusing reference collapsing with universal references?

In your example, replace bar<int&&>(6) to bar<int&&>(i).

It won't compile because i is not an r value. bar(i) will compile, because the template parameter is a universal reverence that will become an lvalue (not an rvalue) through reference collapsing.

monk_the_dog··on Perfect forwarding and universal references in C++
| but a more technical understanding requires the knowledge that rvalue references can bind to any l- or rvalue

I don't think that's true. rvalue references can only bind to rvalues.

Here's a complete program. foo(i) won't compile bacause i is not an rvalue. bar(i) will compile, and foo(1) will compile.

#include <iostream>

using namespace std;

int foo(int&& i){ return i; }

template<class T> T bar(T&& i){ return i; }

int main() { int i=0; cout << foo(i) << endl;

   return 0;
}

edit: I am replying humbly. C++ is a complex language and I might very well be wrong.

monk_the_dog··on The C++14 Standard: What You Need to Know
Eric Neibler is working on bring a range library into the standard. His blog is a good source of info on his approach: http://ericniebler.com/
monk_the_dog··on CLion, the new C/C++ IDE from JetBrains
> There was also another company selling a similar product, that used to sell Lisp Machine software, but I don't recall the name any longer.

Are you thinking of Lucid and their "Energize" environment? If you're interested, Richard Gabriel (founder of Lucid) published a set of essays about the failure of Lucid. You can get them here (linked from the author's site): http://dreamsongs.com/Files/PatternsOfSoftware.pdf The section on Lucid is called "Into the Ground".

monk_the_dog··on XVim – Xcode plugin for Vim keybindings
VsVim is OK, but I don't find it good enough to replace my usual emacs/evil. I did find it useful to define a gdb-like single key debugging mode. This lets me use keys like the space-bar, s, and f keys to step over/into/out of instead of F10, F11, S-F11. I mostly use the following keys:

s StepInto <Space> StepOver f StepOut b ToggleBreakpoint c Start K StopDebugging u (Move up the stack) d (Move down the stack) B BuildSolution C Compile <M-'> GoToNextLocation

I also remapped C-d/C-u to enter/exit this debugging mode, but since I never use VS for editing I mostly just keep the keys remapped to debugging keys.

monk_the_dog··on Needy robotic toaster sells itself if neglected
Is "needy" exercise equipment a thing? That could be a cool product. Or, instead of the bike needing attention, how about the bike feeds/walks/plays with a cute dog. If you don't use it you have an app of your dog begging you to exercise.

We'll put a social aspect in there too. If you sign up with a friend, your pet will start asking for food from your friend if you don't exercise enough (to your embarrassment).

monk_the_dog··on A birthday present from Broadcom
I'm building an environment for computer vision, and I recently made a client that can run on the rpi (two minute video if you're interested: http://www.youtube.com/watch?v=qSigkvbpb_Q). I'm not exactly sure what possibilities this opens up, but I'm definitely going to dig into it and find out.
monk_the_dog··on Ask HN: What is your development setup?
1) Easy access to good vision libraries (in particular OpenCV and ITK)

2) Fairly easy to parallize algorithms w/ OpenMP or Intel's TBB.

3) Compilers (well, Intel C++ anyway) are good at vectorizing code.

4) No garbage collection. I can work with fairly large images and I don't worry about g.c. (This may be a conservative hangup of mine. As of a couple years ago anyway g.c. would run out of memory when crunching though a set of large images).

5) Decent GUI libraries for cross platform interactive GUIs (wxwidgets and QT in particular).

(And, to be honest, it's also the language I know best and I'm most comfortable in).

monk_the_dog··on Ask HN: What is your development setup?
Main Development Hardware: * i7-3930 @ 3.2 GHz/16 GB Ram/240 GB SSD/1 TB HD * NVidia GeForce GTX 680 (For CUDA programming) * 24" 1900x1200 Dell monitor on LCD Arm * Quickfire Keyboard * KVM Switch (for linux/mac secondary systems)

Software: * emacs (in evil mode/development wiki in org-mode) * zsh/tmux/git/cmake * 99% of time programming C++. Compilers: Visual Studio 2013 (main)/Clang (secondary)/gcc (secondary) * Windows 7 (main)/Linux (secondarily)/Mac (secondarily)

If I could change one thing? Faster compile times!!!! Anything that would improve turnaround time would be a huge productivity boost for me. I still think C++ is the right language for my project (vision related), but sometimes I dream about using a language with blazing fast compiles.

monk_the_dog··on C++ compiler accepts explicit constructor call
Just for fun, I checked that code with gcc 4.6 and clang 3.2. gcc gives the error:

error: cannot call constructor ‘Thing::Thing’ directly [-fpermissive]

clang compiles the code without issuing an error.

monk_the_dog··on BLZ: A data format leveraging the hierarchical memory model
I use hdf5 as the file format for my project. I'm not at all a hdf5 expert, but I know it supports: partial reads/writes, extending data sets, and transparent compression. It's a nice file format and it's very easy to use from python (and matlab, C++, R, and others).

I read the article, and blz looks interesting. What is it aiming to provide that is missing from HDF5? (Speed?).

monk_the_dog··on Nate Silver correctly called 50 out of 50 states
If the predictions are independent, then I agree with you. I can think of reason why they would not be independent (trying to account for non-random polling samples, for example).
monk_the_dog··on Selfspy - Tool for Personal Data Analytics
I recently wrote a similar utility. I'll definitively take a closer look at this.

I don't know if you have these features, but here's couple of features I have in mine that you might find useful:

1) I can upload a timeline into Google calendar. I do this by chunking my day into half-hour increments, and whatever I spent the most time on in that half-hour get assigned to the half-hour. (Hey, Google, please let me set the task color through the API - thanks)

2) I also sample the title window of the foreground app, but I can override this. For example, if I go running, or do the dishes, that time will be properly tracked.

3) I assign tasks to categories. For example, emacs, shell, my IDE, are all "Development". Dishes, cooking, etc are all "Chores". I'd rather track time by these larger categories.

I wrote this utility a week ago, so I haven't been using it that long. But I am liking it. One more thing: Python absolutely ROCKS! This utility is less than 700 LOC and was a pleasure to write.

monk_the_dog··on PyCon 2013 Launches - March 13-21, Santa Clara
That's great news! Thanks. Looking forward to the conference.
monk_the_dog··on PyCon 2013 Launches - March 13-21, Santa Clara
I'm working on an environment for computer vision that integrates python really well. It will be free to use, but closed-source - at least at first. Are PyCon talks only for open source projects or could I potentially give a talk?
monk_the_dog··on Everything you need to know about Machine Learning in 30 minutes or less
If you already have a little exposure to machine learing, let me recomend an interesting review paper [1] on random forests: http://research.microsoft.com/pubs/155552/decisionForests_MS...

It isn't everything you need know in 30 minutes, but it's a concrete coverage of lots of topics in machine learning in under 150 pages. Here's why I'm recomending this paper:

* The algoritm is easy to understand.

* It can handle classification, regression, semi-supervised learning, manifold learning, and density estimation. The paper gives an introduction to each of these topics as well as a unified framework to implement each algorithm.

* It can handle categorical data and missing data [2]

* It gives as good results as other state of the art algorithms.

* The paper is well-written and easy to understand for someone without a deep background in machine learning.

[1] It's mostly a review paper. Using random forests for density estimation is new.

[2] This review paper doesn't cover categorical data or missing data.

monk_the_dog··on Pandas (Python data analysis tookit) version 0.8.0 released
Pandas is outstanding, I love it.

This may not be the place for this, but...

I just built pandas 0.8.0 and it would not build with MinGW 0.5. The problem is -mno-cygwin is no longer recognized by MinGW's gcc. My solution was to edit distutils/cygwincompiler.py and remove references to -mno-cygwin. THIS IS NOT PANDAS'S FAULT! I just thought I'd point it out in case other people run into the same problem.

Page 1 of 3Next →