Preskoči na sadržaj
Korištenjem servisa na Twitteru pristajete na korištenje kolačića. Twitter i partneri rade globalno te koriste kolačiće za analize, personalizaciju i oglase.

Za najbolje sučelje na Twitteru koristite Microsoft Edge ili instalirajte aplikaciju Twitter iz trgovine Microsoft Store.

  • Naslovnica Naslovnica Naslovnica, trenutna stranica.
  • O Twitteru

Spremljena pretraživanja

  • obriši
  • U ovom razgovoru
    Ovjeren akauntZaštićeni tweetovi @
Predloženi korisnici
  • Ovjeren akauntZaštićeni tweetovi @
  • Ovjeren akauntZaštićeni tweetovi @
  • Jezik: Hrvatski
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English
    • English UK
    • Español
    • Filipino
    • Français
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Български език
    • Русский
    • Српски
    • Українська мова
    • Ελληνικά
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Imate račun? Prijava
    Imate račun?
    · Zaboravili ste lozinku?

    Novi ste na Twitteru?
    Registrirajte se
Profil korisnika/ce garybernhardt
Gary Bernhardt
Gary Bernhardt
Gary Bernhardt
@garybernhardt

Tweets

Gary Bernhardt

@garybernhardt

Execute Program (learn programming tools quickly); Destroy All Software (dense programming screencasts); Deconstruct (independent programming conference).

Seattle, WA
destroyallsoftware.com
Vrijeme pridruživanja: ožujak 2007.

Tweets

  • © 2020 Twitter
  • O Twitteru
  • Centar za pomoć
  • Uvjeti
  • Pravila o privatnosti
  • Imprint
  • Kolačići
  • Informacije o oglasima
Odbaci
Prethodni
Sljedeće

Idite na profil osobe

Spremljena pretraživanja

  • obriši
  • U ovom razgovoru
    Ovjeren akauntZaštićeni tweetovi @
Predloženi korisnici
  • Ovjeren akauntZaštićeni tweetovi @
  • Ovjeren akauntZaštićeni tweetovi @

Odjava

Blokiraj

  • Objavi Tweet s lokacijom

    U tweetove putem weba ili aplikacija drugih proizvođača možete dodati podatke o lokaciji, kao što su grad ili točna lokacija. Povijest lokacija tweetova uvijek možete izbrisati. Saznajte više

    Vaši popisi

    Izradi novi popis


    Manje od 100 znakova, neobavezno

    Privatnost

    Kopiraj vezu u tweet

    Ugradi ovaj Tweet

    Embed this Video

    Dodajte ovaj Tweet na svoje web-mjesto kopiranjem koda u nastavku. Saznajte više

    Dodajte ovaj videozapis na svoje web-mjesto kopiranjem koda u nastavku. Saznajte više

    Hm, došlo je do problema prilikom povezivanja s poslužiteljem.

    Integracijom Twitterova sadržaja u svoje web-mjesto ili aplikaciju prihvaćate Twitterov Ugovor za programere i Pravila za programere.

    Pregled

    Razlog prikaza oglasa

    Prijavi se na Twitter

    · Zaboravili ste lozinku?
    Nemate račun? Registrirajte se »

    Prijavite se na Twitter

    Niste na Twitteru? Registrirajte se, uključite se u stvari koje vas zanimaju, i dobivajte promjene čim se dogode.

    Registrirajte se
    Imate račun? Prijava »

    Dvosmjerni (slanje i primanje) kratki kodovi:

    Država Kod Samo za korisnike
    Sjedinjene Američke Države 40404 (bilo koje)
    Kanada 21212 (bilo koje)
    Ujedinjeno Kraljevstvo 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Irska 51210 Vodafone, O2
    Indija 53000 Bharti Airtel, Videocon, Reliance
    Indonezija 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italija 4880804 Wind
    3424486444 Vodafone
    » Pogledajte SMS kratke šifre za druge zemlje

    Potvrda

     

    Dobro došli kući!

    Vremenska crta mjesto je na kojem ćete provesti najviše vremena i bez odgode dobivati novosti o svemu što vam je važno.

    Tweetovi vam ne valjaju?

    Prijeđite pokazivačem preko slike profila pa kliknite gumb Pratim da biste prestali pratiti neki račun.

    Kažite mnogo uz malo riječi

    Kada vidite Tweet koji volite, dodirnite srce – to osobi koja ga je napisala daje do znanja da vam se sviđa.

    Proširite glas

    Najbolji je način da podijelite nečiji Tweet s osobama koje vas prate prosljeđivanje. Dodirnite ikonu da biste smjesta poslali.

    Pridruži se razgovoru

    Pomoću odgovora dodajte sve što mislite o nekom tweetu. Pronađite temu koja vam je važna i uključite se.

    Saznajte najnovije vijesti

    Bez odgode pogledajte o čemu ljudi razgovaraju.

    Pratite više onoga što vam se sviđa

    Pratite više računa da biste dobivali novosti o temama do kojih vam je stalo.

    Saznajte što se događa

    Bez odgode pogledajte najnovije razgovore o bilo kojoj temi.

    Ne propustite nijedan aktualni događaj

    Bez odgode pratite kako se razvijaju događaji koje pratite.

    Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
    • Prijavi Tweet

    I just got the first big TypeScript port payoff. All API communication is statically checked on both the server and the client. I tested it by renaming ~100 identifiers at once. 3,914 lines of total diff. Once I got it to typecheck, it worked the first time. It took ~30 minutes.

    13:20 - 18. ožu 2019.
    • 78 proslijeđenih tweetova
    • 477 oznaka „sviđa mi se”
    • etnan razh Bazyli Brzóska gonçalo Daniel Perez Alvarez Faiez Hares Andrea Mocci schrepfler Ansy Pants
    18 replies 78 proslijeđenih tweetova 477 korisnika označava da im se sviđa
      1. Novi razgovor
      2. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        The idea of doing a huge identifier switch like this in Ruby fills me with fear. Without the huge effort of getting to 100% test coverage, it would cause so many bugs in obscure corners of the system. OTOH, the function I wrote to define checked server routes is 34 lines long.

        1 reply 9 proslijeđenih tweetova 57 korisnika označava da im se sviđa
        Prikaži ovu nit
      3. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        (You can substitute JavaScript or any other dynamic language in place of Ruby in this tweet if you like; there's no difference in this case.)

        2 proslijeđena tweeta 22 korisnika označavaju da im se sviđa
        Prikaži ovu nit
      4. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        I was worried that I was missing something huge and obvious – "why aren't people doing this?!" But I wasn't missing anything. If you're using TypeScript without static checking of API communication on both sides of the app then you're wasting much of its value.

        3 proslijeđena tweeta 72 korisnika označavaju da im se sviđa
        Prikaži ovu nit
      5. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        Statically typed API communication is what made me finally do this port. The client was already in TypeScript; the server worked fine in Ruby. But keeping the two sides of the API in sync took so much effort. I had to write a lot of my own tools, but now I'm here and it's good.

        1 proslijeđeni tweet 39 korisnika označava da im se sviđa
        Prikaži ovu nit
      6. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        Yes, I'm sharing type definitions between the backend and frontend. The server also does runtime validation of incoming API data. That validation and the static types come from a single type definition. And I have static checking that those runtime checks match the static types.

        3 proslijeđena tweeta 42 korisnika označavaju da im se sviđa
        Prikaži ovu nit
      7. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        (How it works: the definition of the API is done via io-ts. Static types are extracted from io-ts validators with the usual `t.TypeOf<typeof validator>`. When you define a route, you mention the validator. The static API types are inferred for free from that validator.)

        6 replies 4 proslijeđena tweeta 38 korisnika označava da im se sviđa
        Prikaži ovu nit
      8. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        This adds minimal API definition overhead. Here's the smallest handler: post("/api/feedback.json", http://requests.feedback , requireUser( async ({user, input}) => { await mailer.sendFeedbackEmail(http://user.email , input.userComments) return {} } ) )

        3 proslijeđena tweeta 15 korisnika označava da im se sviđa
        Prikaži ovu nit
      9. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        http://requests.feedback  is the io-ts validator. requireUser pulls the user out of the session and redirects if they're not logged in. It wraps the handler because it adds the user key to that `{user, input}` object that you see the handler taking. Zero types named explicitly.

        1 proslijeđeni tweet 9 korisnika označava da im se sviđa
        Prikaži ovu nit
      10. Gary Bernhardt‏ @garybernhardt 18. ožu 2019.
        • Prijavi Tweet

        All of this has zero cost in terms of runtime speed or bundle size. The client-side bundle is 121 bytes smaller than when I started (because many of those identifier renames that I did were switching underscore_case to camelCase). All of the types are erased at runtime.

        5 replies 0 proslijeđenih tweetova 15 korisnika označava da im se sviđa
        Prikaži ovu nit
      11. Kraj razgovora
      1. Novi razgovor
      2. Ⓐlex‏ @alexkyllo 18. ožu 2019.
        • Prijavi Tweet
        Odgovor korisniku/ci @garybernhardt

        Very cool, is this stuff on GitHub? Or is it proprietary code?

        0 proslijeđenih tweetova 0 korisnika označava da im se sviđa
      3. Steven‏ @styfle 21. ožu 2019.
        • Prijavi Tweet
        Odgovor korisnicima @alexkyllo @garybernhardt

        Take a look at this code from a couple years ago. The dependencies are mostly up to date and the client side is smallhttps://github.com/styfle/react-server-example-tsx …

        1 reply 0 proslijeđenih tweetova 2 korisnika označavaju da im se sviđa
      4. Još 3 druga odgovora

    Čini se da učitavanje traje već neko vrijeme.

    Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.

      Sponzorirani tweet

      false

      • © 2020 Twitter
      • O Twitteru
      • Centar za pomoć
      • Uvjeti
      • Pravila o privatnosti
      • Imprint
      • Kolačići
      • Informacije o oglasima