Amazon’s New Customer – Stratechery by Ben Thompson: "I suspect Amazon’s ambitions stretch further, though: Amazon Grocery Services will be well-placed to start supplying restaurants too, gaining Amazon access to another big cut of economic activity. It is the AWS model, which is to say it is the Amazon model, but like AWS, the key to profitability is having a first-and-best customer able to utilize the massive investment necessary to build the service out in the first place."
'via Blog this'
Be warned that this is mostly just a collection of links to articles and demos by smarter people than I. Areas of interest include Java, C++, Scala, Go, Rust, Python, Networking, Cloud, Containers, Machine Learning, the Web, Visualization, Linux, System Performance, Software Architecture, Microservices, Functional Programming....
Wednesday, 21 June 2017
Tuesday, 20 June 2017
C/C++: Beginner's Guide to Linkers
Beginner's Guide to Linkers: "This article is intended to help C & C++ programmers understand the essentials of what the linker does. I've explained this to a number of colleagues over the years, so I decided it was time to write it down so that it's more widely available (and so that I don't have to explain it again)"
'via Blog this'
'via Blog this'
web: API Best Practices: Hypermedia (Part 4.1) | MuleSoft Blog
API Best Practices: Hypermedia (Part 4.1) | MuleSoft Blog: "Hypermedia is often misunderstood in regards to APIs, but essentially it functions exactly like links on a webpage. And while the technology is both praised and criticized, it does provide an array of short and long-term gains. These gains, I believe, become more and more noticeable the larger and more complex your API becomes. However, the best features of utilizing HATEOAS, in my opinion, are yet to be seen as technology and API exploration tools continue to advance."
'via Blog this'
'via Blog this'
Thursday, 15 June 2017
System programming in Rust: beyond safety | the morning paper
System programming in Rust: beyond safety | the morning paper: "About 2/3 of the 2017 CVEs relating to the Linux kernel can be attributed to the use of an unsafe language, and pervasive use of pointer aliasing, pointer arithmetic and unsafe type casts defeat the use of software verification tools.
So why are we still using C? Because safe languages have overheads that are too high for many use cases argue the authors. (And because of familiarity, and large existing C codebases, I would add)."
'via Blog this'
So why are we still using C? Because safe languages have overheads that are too high for many use cases argue the authors. (And because of familiarity, and large existing C codebases, I would add)."
'via Blog this'
Sunday, 11 June 2017
You Are Not Google – Bradfield
You Are Not Google – Bradfield:
"Cool Tech? UNPHAT.
Next time you find yourself Googling some cool new technology to (re)build your architecture around, I urge you to stop and follow UNPHAT instead:
Don’t even start considering solutions until you
Understand the problem. Your goal should be to “solve” the problem mostly within the problem domain, not the solution domain.
eNumerate multiple candidate solutions. Don’t just start prodding at your favorite!
Consider a candidate solution, then read the Paper if there is one.
Determine the Historical context in which the candidate solution was designed or developed.
Weigh Advantages against disadvantages.
Determine what was de-prioritized to achieve what was prioritized.
Think! Soberly and humbly ponder how well this solution fits your problem. What fact would need to be different for you to change your mind? For instance, how much smaller would the data need to be before you’d elect not to use Hadoop?"
'via Blog this'
"Cool Tech? UNPHAT.
Next time you find yourself Googling some cool new technology to (re)build your architecture around, I urge you to stop and follow UNPHAT instead:
Don’t even start considering solutions until you
Understand the problem. Your goal should be to “solve” the problem mostly within the problem domain, not the solution domain.
eNumerate multiple candidate solutions. Don’t just start prodding at your favorite!
Consider a candidate solution, then read the Paper if there is one.
Determine the Historical context in which the candidate solution was designed or developed.
Weigh Advantages against disadvantages.
Determine what was de-prioritized to achieve what was prioritized.
Think! Soberly and humbly ponder how well this solution fits your problem. What fact would need to be different for you to change your mind? For instance, how much smaller would the data need to be before you’d elect not to use Hadoop?"
'via Blog this'
Tuesday, 6 June 2017
Ask HN: What language-agnostic programming books should I read? | Hacker News
Ask HN: What language-agnostic programming books should I read? | Hacker News: " What language-agnostic programming books should I read?"
'via Blog this'
'via Blog this'
Python version of "Structure and Interpretation of Computer Programs "
CS61A, Spring 2012 Online Textbook: "This book is derived from the classic textbook Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman. John Denero originally modified if for Python for the Fall 2011 semester. It is licensed under the Creative Commons Attribution-ShareAlike 3.0 license."
'via Blog this'
'via Blog this'
Friday, 2 June 2017
Networking Protocols – Programmer's Compendium Programmer's Compendium
Network Protocols – Programmer's Compendium Programmer's Compendium:
The network stack does several seemingly-impossible things. It does reliable transmission over our unreliable networks, usually without any detectable hiccups. It adapts smoothly to network congestion. It provides addressing to billions of active nodes. It routes packets around damaged network infrastructure, reassembling them in the correct order on the other side even if they arrived out of order. It accommodates esoteric analog hardware needs, like balancing the charge on the two ends of an Ethernet cable. This all works so well that users never hear of it, and even most programmers don't know how it works.
'via Blog this'
The network stack does several seemingly-impossible things. It does reliable transmission over our unreliable networks, usually without any detectable hiccups. It adapts smoothly to network congestion. It provides addressing to billions of active nodes. It routes packets around damaged network infrastructure, reassembling them in the correct order on the other side even if they arrived out of order. It accommodates esoteric analog hardware needs, like balancing the charge on the two ends of an Ethernet cable. This all works so well that users never hear of it, and even most programmers don't know how it works.
'via Blog this'
Subscribe to:
Posts (Atom)