“A good book gets better at the second reading. A great book at the third. Any book not worth rereading isn’t worth reading.”, says Nassim Nicholas Taleb.
He is the author of the Incerto, a five-volume philosophical essay on uncertainty.
25 books recommended by @nntaleb 🧵
Modeling the world for action by generating pixel is as wasteful and doomed to failure as the largely-abandoned idea of "analysis by synthesis".
Decades ago, there was a big debate in ML about the relative advantages of generative methods vs discriminative methods for classification.
Learning theorists, such as Vapnik, argued against generative methods, pointing out that training a generative modeling was a way more difficult than classification (from the sample complexity standpoint).
Regardless, a whole community in computer vision was arguing that recognition should work by generating pixels from explanatory latent variables. At inference time, one would infer the configuration of latent variables that generated the observed pixels.
The inference method would use optimization: e.g. use a 3D model of an object and try to find the pose parameters that reproduce the image.
This never quite worked, and it was very slow.
Later, some people converted to the Bayesian religion and tried to use Bayesian inference for the latent (e.g. using variational approximations and/or sampling).
At some point, when Non-Parametric Bayes and Latent Dirichlet Allocation became the rage in text modeling, some folks heroically attempted to apply that to object recognition from images.
>>> THIS WAS A COMPLETE AND UTTER FAILURE <<<
If your goal is to train a world model for recognition or planning, using pixel-level prediction is a terrible idea.
Generation happens to work for text because text is discrete with a finite number of symbols. Dealing with uncertainty in the prediction is easy in such settings. Dealing with prediction uncertainty in high-dimension continuous sensory inputs is simply intractable.
That's why generative models for sensory inputs are doomed to failure.
My first manager at Uber started a GitHub page back at the time with resources to become a more proficient developer - ones he personally found helpful (he did not have a CS degree).
I realized he is *still* updating it, 7 years later! A neat list: https://t.co/QtWeltMDWz
Microsoft released their annual Future of Work report and this time around it’s not about remote work, it’s about AI. (slide numbers in brackets)
- Knowledge workers with ChatGPT are 37% faster, 40% higher quality but ~20% less accurate. Simple UX solutions to solve this are possible. (6)
- From a survey of enterprise users of Microsoft Copilot 365 (7):
- 73% agree that Copilot makes them faster.
- 85% said it would help them get to a good first draft faster.
- 72% agreed about spending less mental effort on mundane or repetitive tasks.
- Most early studies have found that new or low-skilled workers benefit the most from LLMs. Less skilled workers improved by 43% vs more skilled who improved by about 17%. (8)
- Assistant needs to be paired with provacators i.e. LLM-based tools that challenge assumptions, encourage evaluation, and offer counterarguments. (9)
- AI can help with breaking down simple commands into micro-moments and microtasks, improving overall quality and efficiency. (10)
- Analyzing and integrating AI-generated information may become more important than searching and creating information. Skills not directly related to content production (leading, social interactions, trust issues, or emotional awareness) may be more valuable. (11)
- Prompting is hard, but people are getting good at it. Fine-tuning/using LLMs to generate prompts is making it easier as well. Prompt templates are helpful for end users. (12-14)
- Highlighting errors/uncertainty percentages can help balance reliance on LLMs. Prompting can be complemented with co-audit tools to check LLM outputs. (17-18)
- Generative AI requires self-awareness and well-calibrated confidence. At the same time, it can help in getting there too. (19)
- Creative activities are a process and LLMs can help across different parts. (21) 69% of Bing Chat conversations are in domains oriented toward professional tasks. (22)
- A larger chunk of LLM-based searches is complex (36% of them) than traditional searches (13% are complex). (22)
- In a study of 69 students, the use of Codex improved their performance in learning Python, but it did not impact their manual code-modification abilities. (24)
- LLMs can rapidly analyze data from humans and generate synthetic data. That’ll change how social science research is done. (27)
- LLMs in meeting can solve different problems like equal participation (instant feedback) and better interactions (retrospective feedback) (28-29).
- AI can help in delegating management responsibilities, freeing execs to focus on team vision. (30)
- Modern office knowledge is in chats, not documents but applying AI over employee chats is tricky. (31-32)
- Approx. 80% of the US workforce could have at least 10% of their work tasks affected by GPTs. Around 19% of workers may have 50% of their tasks impacted. (38)
- “Innovation vs. automation” is often a better framework to use than “substitution vs. augmentation”. Augmentation can still mean job loss. It is important to try to track whether and where human labour is being used in innovative new ways. (39)
- Instead of “How will AI affect work?”, the question should be “How do we want AI to affect work?” (40)
Uber processes 35 petabytes of data each day, or 405 GB/s... 🤯
How do you architect a system to support such an insane scale?
The answer, in 2 minutes: 👇
Each day, Uber processes TRILLIONS of messages.
Why?
To serve use cases that require a lot of data to be answered in a timely manner.
How else would you be able to do things like:
• match a rider and a driver? 🤝
• optimize the route in real-time? ✅
• provide a real-time adjusted ETA on when the driver will arrive & when you'll get there? ⌚️
• know what's happening in your global business? 🌎
These are simple, first order questions.
But once you provide engineers with access to real-time data, a lot of ideas start to flourish.
Soon, you find yourself swamped with use cases that product managers want to try out, and later productionize.
So. How do you scale & model your infra then?
According to the use cases!
A naive approach would build a new data pipeline each time a new use case pops up - but that doesn’t scale - neither in cost nor maintainability. ❌
Thankfully, technologies today allow us to get the best of both worlds.
And since companies like Uber are typically ahead of the curve (in the amount of data that they collect and the way they use it) – chances are you will hit this soon enough in your company too. 😬
🤔How did Uber do it?
They stacked a bunch of technologies on top of one another, in a logical way.
💡 Interestingly, they shared that the stack grew chronologically in the same manner too – i.e. they started with the basic storage layer, then streaming, then compute, etc.
Here are 4 vastly different examples from Uber & their solution 🧵
“Read enough, and you become a connoisseur. Then you naturally gravitate more towards theory, concepts, non-fiction”, says Naval Ravikant.
The genuine love for reading itself, when cultivated, is a superpower.
25 books recommended by @naval 🧵
𝗜𝗘𝘅𝗰𝗲𝗽𝘁𝗶𝗼𝗻𝗛𝗮𝗻𝗱𝗹𝗲𝗿 𝗶𝘀 𝗮 𝗻𝗲𝘄 𝗳𝗲𝗮𝘁𝘂𝗿𝗲 𝗶𝗻 𝗔𝗦𝗣 .𝗡𝗘𝗧 𝗖𝗼𝗿𝗲 𝟴.
I'm not a fan of exceptions, but I think this is an excellent feature.
Exceptions are for exceptional situations.
But you have to handle exceptions regardless.
The IExceptionHandler lets you implement a global exception handler.
It implements the "try pattern", so you can pick which exceptions to handle.
If you return `true` from `TryHandleAsync`, the exception is handled successfully.
You can also chain multiple exception handlers that will run sequentially.
The first one to handle the exception successfully breaks the chain.
Previously, I would implement this using a custom middleware.
Wrap the API request in a try-catch and return an error response.
But it's simple to migrate to IExceptionHandler if you want to.
If you liked this, consider joining The .NET Weekly - my newsletter with 31,000+ engineers.
Join free here → https://t.co/xip45XpWuB
Do you like this new way of exception handling in ASP .NET Core?
How To Release A Mobile App
The mobile app release process differs from conventional methods. This illustration simplifies the journey to help you understand.
Typical Stages in a Mobile App Release Process:
1. Registration & Development (iOS & Android):
- Enroll in Apple's Developer Program and Google Play Console as iOS and Android developer
- Code using platform-specific tools: Swift/Obj-C for iOS, and Java/Kotlin for Android
2. Build & Test (iOS & Android):
Compile the app's binary, run extensive tests on both platforms to ensure functionality and performance. Create a release candidate build.
3. QA:
- Internally test the app for issue identification (dogfooding)
- Beta test with external users to collect feedback
- Conduct regression testing to maintain feature stability
4. Internal Approvals:
- Obtain approval from stakeholders and key team members.
- Comply with app store guidelines and industry regulations
- Obtain security approvals to safeguard user data and privacy
5. App Store Optimization (ASO):
- Optimize metadata, including titles, descriptions, and keywords, for better search visibility
- Design captivating screenshots and icons to entice users
- Prepare engaging release notes to inform users about new features and updates
6. App Submission To Store:
- Submit the iOS app via App Store Connect following Apple's guidelines
- Submit the Android app via Google Play Console, adhering to Google's policies
- Both platforms may request issues resolution for approval
7. Release:
- Upon approval, set a release date to coordinate the launch on both iOS and Android platforms
Over to you:
What's the most challenging phase you've encountered in the mobile app release process?
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
I wrote a 2D game, entirely in type-level Typescript.
Yes, you read that right. This is flappy bird, written only in Typescript types.
How did I do it? It involves a lot of type magic, and a new type-level Typescript runtime I made in Rust + Zig.
Let me walk you through it:
Backend projects will take you to a Senior position.
Design and Improve a Relational Database
- Design a Database
- Apply Normalization
- Improve Indexing
- Do Query optimization
Build a RESTful API with Authentication & Authorization
- HTTP Methods (GET, POST, PUT, and DELETE)
- System modeling and design
- Data Protection
- User management
- Tests with Postman
Implement a Caching Layer
Caching helps reduce the load on databases and improves response times.
The cache will show how you optimize performance and handle high-traffic loads.
Microservices Architecture
If you land in a large company, you have to deal with Microservices.
- Design a Distributed System
- Handle communication between services
- Learn about Fault Tolerance
DevOps and Infrastructure
Understanding how to deploy applications:
- CI/CD
- Docker
- Kubernetes
- IaC tools like Terraform or CloudFormation, ARM
Also, technical expertise is only part of the equation.
A Senior role demands:
- Leadership
- Mentorship
- Effective communication
The theory will help, but what will make the difference is the hands-on experience.
How do companies ship code to production? The method to download the high-resolution PDF is available at the end.
The diagram below illustrates the typical workflow.
Step 1: The process starts with a product owner creating user stories based on requirements.
Step 2: The dev team picks up the user stories from the backlog and puts them into a sprint for a two-week dev cycle.
Step 3: The developers commit source code into the code repository Git.
Step 4: A build is triggered in Jenkins. The source code must pass unit tests, code coverage threshold, and gates in SonarQube.
Step 5: Once the build is successful, the build is stored in artifactory. Then the build is deployed into the dev environment.
Step 6: There might be multiple dev teams working on different features. The features need to be tested independently, so they are deployed to QA1 and QA2.
Step 7: The QA team picks up the new QA environments and performs QA testing, regression testing, and performance testing.
Steps 8: Once the QA builds pass the QA team’s verification, they are deployed to the UAT environment, where the QA team, dev team, and even the product owner perform UAT testing.
Step 9: If the UAT testing is successful, the builds become release candidates and will be deployed to the production environment on schedule. Here we might not want to deploy to all the users in one go to mitigate the change risks, so some techniques like feature toggle, canary deployment can be used.
Step 10: SRE (Site Reliability Engineering) team is responsible for prod monitoring. They leverage a bunch of log-analyzing tools and process-tracing tools like ELK stack, Prometheus, and Skywalking. They report production issues to QA and dev teams, and teams need to fix them based on defined priority.
–
Subscribe to our newsletter to download the 𝐡𝐢𝐠𝐡-𝐫𝐞𝐬𝐨𝐥𝐮𝐭𝐢𝐨𝐧 𝐏𝐃𝐅. After signing up, find the download link on the success page: https://t.co/0v29X0VLNt
.@RamblingCameron, a Level Designer at Respawn Entertainment, has taken part in this year's #Blocktober by sharing blockouts for the two levels designed in Star Wars Jedi: Survivor, Dredger Gorge, and Stone Spires.
More: https://t.co/hJg3GE8cNM
#leveldesign#leveldesigner
Blogged: Should you use the .NET 8 Identity API endpoints?
In this post I discuss the new Identity API endpoints and talk about some of the security and architectural issues they may introduce
https://t.co/nMed6q2HMK
#aspnetcore#dotnetcore#dotnet
Notre cours sur l'apprentissage profond est disponible gratuitement en français.
Un grand merci à Loïck @BdsLoick Bourdois pour son merveilleux travail de traduction!
Building and operating a pretty big storage system called S3 – A unique perspective by #AWS Distinguished Engineer @andywarfield on what it means to scale systems, yourself and others. #allthingsdistributed#S3 https://t.co/C3CE2iOJ0o