CompSciGuy
CompSciGuy
  • 12
  • 200 757
How Radioactive Cows Destroyed Soviet Computer Systems
In 1986 a train station in the middle of Russia had a problem: their computer cargo routing systems were crashing. This stopped the entire train network. But this same problem had occurred before, from radioactive sand in the material chips were made from, to cosmic background radiation. This nearly made Google go bankrupt. All because of radioactivity causing bit flips on memory cells that became (too) small.
My website: compsciguy.me/
มุมมอง: 1 344

วีดีโอ

Why Today's Databases Are Impossible Without GPS
มุมมอง 1.3K8 หลายเดือนก่อน
Linearizable distributed databases were impossible. Instead the entire industry moved to NoSQL (Bigtable, MongoDB). But in 2012, Google showed how to build a distributed database with "Spanner". The item that solved everything was GPS. Instead of using it for positioning, they used it for time. #database #computerscience #softwareengineer
I’ve been using SQL wrong this whole time
มุมมอง 24K11 หลายเดือนก่อน
I've just never not used it to its full potential. Most people have used SQL at some point - but also just stick to the basics. When we need to do something complex, we instead do it in another programming language and send multiple queries. Even though it's very simple to solve in SQL. In this video I show 3 basic building blocks that will really supercharge your SQL usage - and make you an ex...
The Sneaky Way SQL Lies to You and Destroys Your Data
มุมมอง 1.2Kปีที่แล้ว
SQL transactions might seem easy. But most databases have a hidden complexity causing your data to be silently corrupted. If you don't know about it - eventually it will take down your systems and leave you unable to resolve the issues. The problem is that most are not aware of SQL transaction isolation level.
The Only Database Abstraction You Need
มุมมอง 11Kปีที่แล้ว
You are interacting with databases wrong. You shouldn't use ORMs even though they are the default for many instead of SQL. ORMs are bad and constrict you unnecessarily. You should prefer to use SQL and after this video you will. By using SQL you will supercharge the usability of your database. Although there are nice areas to use ORMs - like database migrations. Also, sorry about my voice, I wa...
This is Google's Worst Mistake with Protobuf (it cost them millions!)
มุมมอง 3.7Kปีที่แล้ว
Required fields in protobuf have caused countless outages - sadly we don't have any public postmortems from the outages. Optional fields are what you should use, otherwise you will definitely need to deal with incidents.
The Only External System You Need
มุมมอง 52Kปีที่แล้ว
You are using Postgres wrong. It can be used to vastly simplify your web app architecture. Postgres can replace: Kafka, Redis, MongoDB and any other infrastructure you use. At least it will work for your use case, because you probably don't have millions of users.
Don't Use REST APIs in your Frontend, Use GraphQL
มุมมอง 1.8Kปีที่แล้ว
GraphQL is a query language built to: be flexible and batch efficiently. Facebook built (and open sourced) it to get around shortcomings in REST. If you build any complex web apps with large APIs it should be on your list of things to use. #restapi #softwareengineer
Don't Use REST APIs in your Backend, Use gRPC
มุมมอง 41Kปีที่แล้ว
gRPC let's you specify the request/response/functions and generates the code to do RPC to the API server. It's cheaper and smaller requests. Handles security out of the box. Let's you avoid crazy API migrations.
Protobuf - How Google Changed Data Serialization FOREVER
มุมมอง 58Kปีที่แล้ว
Protobuf is second to JSON as the most common data serialization format. By volume of data stored, it's probably first - as it's created to solve JSON's problems when working "at scale". It allowed Google to scale their code base to levels it would have otherwise. Without it the big tech co, surely would not be where it is today.
Spanner - How Google Changed Databases FOREVER
มุมมอง 2.7Kปีที่แล้ว
Google's Spanner database is one of the first true distributed SQL databases. Scaling basically infinitely, it's a marvel of engineering that few companies can even consider emulating. One being CockroachDB. In this video you will find out how it works.
I Built a Stock Trading AI that Made Me...
มุมมอง 3.3Kปีที่แล้ว
We create an AI algorithm based on encoder/decoders (LSTMs) to trade on the stock market. The AI invested into the stock market in a week and you'll find how good it was in the video. Oh, and we also tried out some "normal" quant strategies.

ความคิดเห็น

  • @monad_tcp
    @monad_tcp 8 วันที่ผ่านมา

    oh yes, the perils of breaking binary compatibility

  • @monad_tcp
    @monad_tcp 8 วันที่ผ่านมา

    The only ORM that didn't suffer from the N+1 and select all problem I ever saw was "Linq to SQL", not the EntityFramework, the original one that only worked with SQL-Server, that was the thing, its translation of the LINQ from C# to SQL was almost perfect.

  • @monad_tcp
    @monad_tcp 8 วันที่ผ่านมา

    oh yes, "WONTFIX" is a solution, and get out of the soviet union.

  • @sabihhasan3262
    @sabihhasan3262 20 วันที่ผ่านมา

    Too biased.

  • @PaulSebastianM
    @PaulSebastianM 29 วันที่ผ่านมา

    My God! We never seem to stop misunderstanding and misusing technology! GRPC does not fix your performance problems, poor abstractions and bad knowledge of the basics. In fact it's just another can of worms.

  • @youtubegarbage4u
    @youtubegarbage4u หลายเดือนก่อน

    imagine working on same team with this guy and you still using rest. man good luck to you defending your choice!

  • @shayshay8295
    @shayshay8295 หลายเดือนก่อน

    thanks got I read the comments before watching the vid.

  • @IngersollMaria-z9s
    @IngersollMaria-z9s หลายเดือนก่อน

    Robinson Kenneth Perez Scott Harris Lisa

  • @MuslimaAhamed-w8q
    @MuslimaAhamed-w8q หลายเดือนก่อน

    Thomas Charles Jackson Larry Davis Jessica

  • @elalemanpaisa
    @elalemanpaisa หลายเดือนก่อน

    he talks about performance and uses python as the server.. oh yea.. i love it already

  • @sanjayrajsoni
    @sanjayrajsoni 2 หลายเดือนก่อน

    Incomplete - He needs to slow down and give more details. What about float double etc.

  • @markovujanic
    @markovujanic 2 หลายเดือนก่อน

    3:05 is ridicules now that I learn SQL, it's nuts in fact. Thing is I never really cared about it before when I knew only how to use ORM.

  • @HemitPatel-s3f
    @HemitPatel-s3f 2 หลายเดือนก่อน

    this is perfect! im creating an ai mircoservice for my app and this technology would be perfect as the ai mircoservice is called upon by my main api to get the closest coordinates based on a list.

  • @slavaslutsker7223
    @slavaslutsker7223 3 หลายเดือนก่อน

    Although this maybe useful in some projects please also research the tradeoffs that Protobuf introducing

  • @henrikflamm4843
    @henrikflamm4843 3 หลายเดือนก่อน

    Very interesting, thank you!

  • @Сандетрап
    @Сандетрап 3 หลายเดือนก่อน

    маладес

  • @Koroistro
    @Koroistro 3 หลายเดือนก่อน

    That assumes that management would allow it, but management believes that REST is the way to go. You don't buy Gucci bags because you need and handbag do you?

  • @typograf62
    @typograf62 3 หลายเดือนก่อน

    This would need very hot cows to (not) work.

  • @jamesharmer9293
    @jamesharmer9293 3 หลายเดือนก่อน

    So they were sending the radioactive cows eastwards so that they could mix them with the non radioactive ones so that the meat, on average, was not contaminated ? How's the steak Sergei ?

  • @RynaxAlien
    @RynaxAlien 3 หลายเดือนก่อน

    Go vegan

    • @monad_tcp
      @monad_tcp 8 วันที่ผ่านมา

      no, go capitalist

  • @Kerojey
    @Kerojey 3 หลายเดือนก่อน

    Protobuff dosent's "change" anything about serialization, real programmers used Binary formats since 90s. It's sad that web devs are so ignorant

    • @1zui
      @1zui 3 หลายเดือนก่อน

      Seems like you are the ignorant one here...

    • @yayz_
      @yayz_ 3 หลายเดือนก่อน

      you sound like you use arch btw

    • @Kerojey
      @Kerojey 3 หลายเดือนก่อน

      @@yayz_ I use windows 11 pro btw.

  • @shreyaspatange8653
    @shreyaspatange8653 3 หลายเดือนก่อน

    name one thing prisma cant do i will switch to raw dog

  • @cbxgang
    @cbxgang 3 หลายเดือนก่อน

    how do i know this guy is german, when he said 99.9 nein nein nein NEIN NEIN

  • @rikeshkarki7014
    @rikeshkarki7014 3 หลายเดือนก่อน

    during CompSciGuy , 172 views , 16 hours - Raw

  • @falconmesa2809
    @falconmesa2809 3 หลายเดือนก่อน

    thats a wild story man

  • @KangoV
    @KangoV 4 หลายเดือนก่อน

    Probuf best practices: "Don't Add a Required Field", "Don’t Change the Type of a Field", "Rarely Use an Integer Field for an ID"

  • @Ryan-xq3kl
    @Ryan-xq3kl 4 หลายเดือนก่อน

    ill never take advice from people who use windows software willingly

  • @cat-.-
    @cat-.- 5 หลายเดือนก่อน

    if we just had a ProtobufMessage.safeParse(blob).as__AllRequiredFieldsPopulated(), without the parsing error, then everything would have been fine

  • @michael_ibeh
    @michael_ibeh 5 หลายเดือนก่อน

    too much code for this gRPC thingy, i'm stickig to REST all day.

  • @RasmusFrederiksen169
    @RasmusFrederiksen169 5 หลายเดือนก่อน

    Honestly having been forced to use ORMs at work, and also having to migrate between databases (for bad reasons, don't ask); when moving between databases, you WILL find inconsistencies in ORMs where they handle a migration set just fine in one db, but utterly fail on another engine

  • @ajcgpol
    @ajcgpol 5 หลายเดือนก่อน

    making rest api requests from DATABASE ? hard pass...

    • @MrCompSciGuy
      @MrCompSciGuy 5 หลายเดือนก่อน

      Heh, yeah I wouldn't recommend it, just couldn't come up with a use-case that fit neatly with the rest of the topic I was talking about

  • @bnssoftware3292
    @bnssoftware3292 6 หลายเดือนก่อน

    It seems that by the comments people are generally opposed to this. I personally like the idea of a "jack of all trades" database like postgresql because it keeps everything in one place. No need to orchestrate a bunch of different services. Ome good example is saving a record from the front end and not having to then call a separate message queue. The database takes care of it for you. It also ensures that no matter what or who saves something to the database the message always gets cued on the database side.

  • @maksymkoiev8824
    @maksymkoiev8824 6 หลายเดือนก่อน

    Such code throws error on my side TypeError: Cannot read properties of undefined > const message = proto.mypackage.

  • @premkumarsr4021
    @premkumarsr4021 7 หลายเดือนก่อน

    Super

  • @gregf3021
    @gregf3021 7 หลายเดือนก่อน

    Bunch of butt hurt ORM users in the comments.

  • @dasstraat
    @dasstraat 8 หลายเดือนก่อน

    There are more fundamental problems: int8, int16 are not there anymore so it will surely waste network resources. Also in C++ editors, finding the names for get is not easy. You better look in the .proto files, since the .h file from protobuf is a horrible file to find your way. For simple things, just create a socket to communicate in 5 minutes for complicated things with many messages then protobuf or mosquitto is the better option. for communicating to many devices, protobuf is wrong and you need mqtt wit mosquitto.

  • @negart7744
    @negart7744 8 หลายเดือนก่อน

    Thanks. I'm struggling to understand how to use the google protobuf. This was very helpful. There is a way to have an auto-generated code from the proto right?

  • @Siao222
    @Siao222 8 หลายเดือนก่อน

    Love the conclusion. I have spent so much time convincing people they don't need a distributed SQL and just a highly available setup or NoSQL (speed related). There are so many ways to resolve most client requirements other than distributed SQL.

  • @lozyodella4178
    @lozyodella4178 8 หลายเดือนก่อน

    Keep doing this video they are very good, thanks

  • @huveja9799
    @huveja9799 8 หลายเดือนก่อน

    Great video, thanks!

  • @clusterdriven
    @clusterdriven 8 หลายเดือนก่อน

    A backend in python will never be fast anyways 😂. Just teasing. Thank you for this grpc lesson

  • @herozero777
    @herozero777 8 หลายเดือนก่อน

    Thanks for this video. You raised very good points which has benefitted me immensely. Your video also led to a follow-up video by thePrimeGeon netflix guy. So thanks 😊

  • @gosnooky
    @gosnooky 9 หลายเดือนก่อน

    I do something similar with currency conversion. My application periodically queries conversion rates on all the currencies we support and caches the data, then we just calculate the exchange and inject the values into the SQL query. No need for adding functions to PG/My or anything fancy. A caveat for this method is wildly fluctuating currencies like Zimbabwe or Venezuela that may become outdated very quickly, but our use case only requires major currencies like USD, CAD, AUD, GBP, EUR, CNY, JPY, THB, and other European ones, so mileage may vary. Sometimes the simple option is the best, like now NASA spent millions developing a pen that can write in zero-G, whilst the Soviets used pencils.

  • @brazenbull36
    @brazenbull36 9 หลายเดือนก่อน

    wtf are you talking about. most of the arguments are silly.

  • @jongxina3595
    @jongxina3595 9 หลายเดือนก่อน

    Dont use grpc in your backend. Use graphql.

  • @mti2fw
    @mti2fw 10 หลายเดือนก่อน

    Nice! Flatbuffers have the same problem?

  • @vahanmkrtchyan2504
    @vahanmkrtchyan2504 10 หลายเดือนก่อน

    You need to know sql anyways .Orm is great tool , if u have complex queries you will debug thus anyways and put some optimisation , ORM does not matter here. SQL != ORM . SQL BUILDER != Object Relational Mapping . Author lacks understanding this. You can write sql and use ORM to populate items.

  • @XCanG
    @XCanG 10 หลายเดือนก่อน

    If that would be me, in case of currency on the backend I would rather pull conversion rates first (with possibility of caching it if this endpoint call frequently), then during request I would use CTE like: WITH "conversion_rates" ("currency_from", "currency_to", "rate") AS ( VALUES ('USD', 'EUR', 123), (...) ) and then use it in expression in other CTE/subquery

  • @drygordspellweaver8761
    @drygordspellweaver8761 10 หลายเดือนก่อน

    subliminal messaging worked. I subbed

  • @gdwe1831
    @gdwe1831 10 หลายเดือนก่อน

    Absolute bullshit. Everything you have stated here can easily be mitigated by a modern ORM and a developer whos IQ is above room temperature.