253 karma · joined October 3, 2009
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!
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!
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.
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.
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).
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. (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"
))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).
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.
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.
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".
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.
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).
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).
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.
error: cannot call constructor ‘Thing::Thing’ directly [-fpermissive]
clang compiles the code without issuing an error.
I read the article, and blz looks interesting. What is it aiming to provide that is missing from HDF5? (Speed?).
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.
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.
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.