243 karma · joined October 28, 2017
More info here if you want to see how regions are structured at a high level of detail: https://youtu.be/AyOAjFNPAbA?t=15m21s
I used the J-Link but I wanted to do it on Linux, so I used the JLink GDB Server along with the GDB build that comes with the Arduino IDE. It probably takes me a good 5 minutes to get everything set up, but the basic stuff works: breakpoints, stack trace, reading and writing memory locations.
The setup is a little convoluted, I'm not sure if there is a better way, but here are my notes:
Procedure for running w/ debugger attached.
1. disconnect debugger's usb
2. connect device via usb
3. arduino IDE program device
4. identify elf, set up gdb with elf.
5. plug in debugger
6. run jlink gdb server
7. attach gdb to jlink server "target remote:2331"
8. "monitor reset", "continue" to re-run target from beginning.
9. observe device is recognized by Arduino IDE
10. open Arduino IDE serial monitor to interact with device.
Now, Ctrl+C in GDB halts device, and stack etc. can be inspected, and
then it can continue running with "cont".
To rerun the device with the same program without redoing everything,
go to step 8 and reset the device. and continue from there.
To find .elf on linux:
==================================================
find /tmp -name sketch_name.ino.elf 2>/dev/null
gdb location:
==================================================
/home/user/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-gdb
JLink setup command:
==================================================
JLinkGDBServer -device ATSAMD21G18A -if SWD -speed 4000
gdb attachment:
==================================================
(gdb) target remote:2331For example, if I'm working on a Python script under 1000 lines I would never use a debugger. I might use wireshark or linux system tools if something was really wrong, but usually the trackback or program output is sufficient.
I've also tried to debug an Arduino project where I had a lot less knowledge of how the system works, and if I wasn't able to attach a debugger I don't want to know how long it would have taken me to find the problem (calling a null function pointer causes an interrupt that didn't have any handler).
I've also tried to debug other people's projects in high level languages, without a debugger where after taking about an hour to figure it out based on pure reason, realizing it would have been very quick and easy to find with a debugger.
I think if you look at what a program is doing, and at that point you can't form a testable hypothesis as to what is happening, at that point a debugger will certainly be faster if you know how to use it.
I think DAG coins could be a lot more efficient, but I'm not totally solid intellectually on how they achieve consensus on conflicting spends so I'm not sure it will work as a general solution. The only one I've used, nano, has I believe no mining reward, and I think consensus is achieved based on a voting process weighted by proof-of-stake among online nodes -- the incentive for participating in the system is that the system has value for you in other ways. I'm not closely following ETH PoS research, but it will be interesting to see what they can accomplish, it could create a huge reduction in energy consumption.
If you're referring to financial markets, I personally learned a lot from Trading and Exchanges: Market Microstructure for Practitioners, although I didn't finish it. But it explains the basic characteristics of financial markets, and why they are set up the way they are. It isn't necessarily going to be obvious and financial markets are based on hundreds of years of accumulated knowledge.
Good product managers focus the team on revenue and customers. Bad product managers focus team on how many features Microsoft is building. Good product managers define good products that can be executed with a strong effort. Bad product managers define good products that can’t be executed or let engineering build whatever they want (i.e. solve the hardest problem).
As an engineer, I want to find the demons that are out there in the problem space and assault them, I want to eliminate all weakness from my precious software. But from the business POV I know we need to provide value to customers quickly and efficiently with the available resources, which is usually not the same thing.
For i.e. the arrow keys, or anything interactive you will probably have to be watching for the response.
For a senior role:
1. Someone who can't write and debug a for-loop and an if-statement isn't going to be able to provide training and support to junior level hires. At all.
2. Making high-level changes and performance improvement both require good process discipline, and the ability to write a lot of code to actually accomplish it.
I think there are high value software management tactics that can be implemented without knowing how to code, for example, change control, or enforcing limits on work in progress via. kanban, but for a role that has either "software" or "developer" I think fizzbuzz is a very low bar.
I personally like binary search as in interview question. The basic principle is simple, but there are enough edge cases and variations to make it interesting.
It seems it will be focused on large scale products out of necessity because of the availability of structured data and public disclosure.
There is one preliminary paper linked in the article, which I haven't read: https://dl.acm.org/citation.cfm?id=3172876
It is really interesting to see ways to establish causality without a randomized controlled trial, since in a lot of circumstances an RCT is impossible or unethical, and because for many decision making purposes you need to evaluate interventions, not just relationships.
(included some other countries to compare, Saudi Arabia is also an interesting one but it messes up the graph.)
- a short trip allows battery needs to not be excessive
- bypass traffic, you don't have to go all that fast to get a huge speedup, and remove the extra buffer time on traffic uncertainty
- radically less infrastructure than roads or rails, reduces the cost of adding more pickup zones
In cites with poor airport to downtown infrastructure you could probably start off as a high-end service and charge i.e. 5x than an airport limo.
I think about half of their 2017 net loss was due to something to do with Convertible Notes, that they're explaining on pages F-43 and F-44.
I'm trying to calculate patio11's "fundamental equation of SAAS" ( https://twitter.com/patio11/status/965985835790184448 ) for the numbers for churn, subscribers, and ARPU on pages 67 to 70ish. Will update if I actually figure it out.
Ok, here is my attempt for their premium service:
pp68, 2017 ARPU = 5.32 EUR/mo.
pp69, 2017 Churn = 5.5%/mo.
pp79, 2017 Customer Acquisition, 48 Million at end of 2016, 71 Million at end of 2017. (71 - 48) / 48 * 100% = 48%. To convert to monthly, if I just divide by 12 it is 4%/month. If I do (1.48)^(1/12) it is 3.3%. I guess this is net of churn, So their fresh acquisition I would estimate at 5.5% + 3.3% = 8.8%.
I'll leave the math as an exercise to the reader, partly because I don't know what is being summed over in the formula.
I'd be curious to know at what number of users do they break-even if their cost of revenue, sales, and marketing are linear to users and their other non-financial costs remain fixed.
#include <stdio.h>
int main() {
int i;
for (i = 1; i < 101; i++) {
int div3 = 0 == i % 3;
int div5 = 0 == i % 5;
if (div3 || div5) {
printf("%s%s\n",
div3 ? "fizz" : "",
div5 ? "buzz" : "");
} else {
printf("%d\n", i);
}
}
return 0;
}
I will admit, it took me 4 tries to get this to compile.My personal favourite is called /Winning Through Intimidation/ , I think it is much more relevant to our capitalistic and legalistic society than military memoirs or the ancients, as much as I enjoy them. https://www.amazon.com/Winning-through-Intimidation-Victor-B... . It is not prescriptive because it is a bit dated and specific to real estate, but the core ideas are rock solid.
Bulgaria nominal GDP is $50 billion PER YEAR.
Two Sigma assets under management is $50 billion. (Not per year).
If your car goes 100km/hour, and Shelbyville is 100km away, your car is not the distance of Shelbyville.
EDIT: pretty impressive though, looking at James Hamilton's criteria for "Automatic Management and Provisioning" here: https://www.usenix.org/legacy/event/lisa07/tech/full_papers/... , I think this addresses everything database related, as long as you are under the maximum capacity of Aurora.
I agree bitcoin is inadequate as a currency. (I think ETH is better as a currency, since it sort of has the "tax base" of executing contracts and enshrining the results on the blockchain.) I view it as a store of value. If your wealth is mostly represented as various numbers in various databases (mine is,) then bitcoin is a robust form of integer storage, or at least vulnerable in ways that are uncorrelated with my other wealth storage providers.
- me-too buyers drawn by the huge 2017 increases
- investors that have a mandate to seek out high-risk investments for a certain %age of their portfolio, and are gradually overcoming technical and regulatory barriers ( https://www.bloomberg.com/news/articles/2017-11-16/bitcoin-e... )
For a decrease
- MtGox style failure of a company holding a lot of coins
- crypto-diversification as other projects get stronger