#humorinformatykow

25
350

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Pamiętacie pluskwę milenijną? A co powiecie na problem roku...


2137


Daty GPS są wyrażane jako numer tygodnia i numer dnia tygodnia, przy czym początkowo numer tygodnia był zapisywany jako wartość dziesięciobitowa, a w zmodernizowanych komunikatach nawigacyjnych GPS stosuje się pole trzynastobitowe. Systemy dziesięciobitowe resetują się co 1024 tygodnie (około 19,6 roku) od niedzieli 6 stycznia 1980 roku (epoka GPS), natomiast systemy trzynastobitowe resetują się co 8192 tygodnie. Systemy trzynastobitowe zresetują się do zera w roku 2137.


Ciekawe czy za 112 lat nadal będą popularne memy czy inne dowcipy o papieżu polaku z XX wieku? Może akurat do tego wrócą. Czy system gps nadal będzie używany? Tego nikt z nas się nie dowie.


Źródło: https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs#Year_2137


#heheszki #humorinformatykow #2137 #hejtoobrazapapieza

91eda0e8-23c9-4046-8e7f-5e31e4006a8b

Co do używania systemu GPS to raczej marne szanse. Kilku futurystów obliczyło że w okolicach 2050 rozwój technologiczny będzie tak szybki i zaawansowany że ludzie nie będą nadążać umysłami za tym i będzie potrzebna sztuczna inteligencja zeby nam to tłumaczyć xD

@JanPapiez2 te przewidywania nie są oparte na niczym konkretnym. Aktualny rozwój LLM jest nieprzewidywalny, a jest coraz bardziej prawdopodobne, że na tej strukturze nawet nie da się zbudować AGI. Także ten, palcem po wodzie pisane te rozważania.

@Iknifeburncat @JanPawel2 też nie wierzę, że nas LLMy od tego wybawią, ale do 2137 roku to chyba tak jakby się dzisiaj przejmować, że niedługo zabraknie mnichów do przepisywania ksiąg albo kowali do podkuwania koni

Zaloguj się aby komentować

Zaloguj się aby komentować

niestety username musi byc publicznie znanym adresem mailowym zeby mozna bylo potem wymusic 2FA za pomoca platnych SMSow i kroic frajerow przy kazdym zalogowaniu

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

@koszotorobur ale kolego odpowiadasz na "tylko śmieszny obrazek z internetu" Przecież każde nowoczesne IDE do pythona pewnie bedzie na ciebie darło ryja, że indent zrypany, a jakieś kombajny typu PyCharm od Jetbrainsa to jeszcze Ci wpierdolą przy każdej pomyłce jak spacje za dużo dasz xD

@koszotorobur nikt nie mówili że nie ma ( ͡° ͜ʖ ͡°)

ale lintery nie zawsze działają, zwłaszcza przy pisaniu pipelinesów do ADO jest problem

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

@vrkr - za duck.ai:

Oto lista "głupich" rzeczy związanych z operatorami porównywania w JavaScript:


1. **Używanie `==` zamiast `===`**: Operator `==` wykonuje konwersję typów, co może prowadzić do nieoczekiwanych wyników. Zawsze lepiej używać `===`, aby porównywać zarówno wartość, jak i typ.


2. **Porównywanie różnych typów bez zrozumienia**: Porównywanie wartości różnych typów (np. liczby i stringi) może prowadzić do zaskakujących wyników, np. `0 == '0'` zwraca `true`, ale `0 === '0'` zwraca `false`.


3. **Używanie `!=` zamiast `!==`**: Podobnie jak w przypadku `==`, operator `!=` wykonuje konwersję typów, co może prowadzić do błędów. Zawsze lepiej używać `!==`.


4. **Porównywanie obiektów**: Porównywanie obiektów za pomocą operatorów porównania (np. `obj1 == obj2`) porównuje referencje, a nie zawartość obiektów, co może prowadzić do nieporozumień.


5. **Używanie `Object.is()` bez zrozumienia**: `Object.is()` ma swoje specyficzne zasady porównywania (np. `NaN` jest równe `NaN`, a `-0` nie jest równe `+0`), co może być mylące.


6. **Porównywanie wartości `null` i `undefined`**: Używanie `==` do porównania `null` i `undefined` zwraca `true`, co może prowadzić do niejasności, gdy nie jest to zamierzone.


7. **Zbyt skomplikowane wyrażenia porównawcze**: Tworzenie złożonych wyrażeń porównawczych, które są trudne do zrozumienia, może prowadzić do błędów i utrudniać czytelność kodu.


8. **Ignorowanie kontekstu logicznego**: Używanie operatorów porównania w kontekście logicznym (np. w instrukcjach warunkowych) bez zrozumienia, jak działają, może prowadzić do błędnych założeń.


9. **Porównywanie z `NaN`**: `NaN` nie jest równe żadnej wartości, w tym samemu sobie, co może prowadzić do nieoczekiwanych wyników w porównaniach.


10. **Używanie operatorów porównania w pętlach bez zrozumienia**: Używanie operatorów porównania w pętlach (np. `for`) bez zrozumienia ich działania może prowadzić do nieskończonych pętli lub błędów logicznych.


Unikanie tych pułapek może pomóc w pisaniu bardziej niezawodnego i przewidywalnego kodu w JavaScript.

@vrkr Tak na oko to obstawiłbym C. Myślę, że A zwraca true, B jest ciekawszym przypadkiem bo bez podania argumentów Math.min() będzie infinity, a Math.max() będzie -infinity także również będzie to true. NaN nie jest równy innemu obiektowi NaN i dalej nie muszę myśleć.

@nbzwdsdzbcps ( ͡° ͜ʖ ͡°)


~ $ node

Welcome to Node.js v23.11.1.

Type ".help" for more information.

> Math.min() > Math.max()

true

> Math.min > Math.max

true

131314f5-6432-48f6-81a7-0c5fb9eee364

Metodą wykreślania poprawnych odpowiedzi:

A - w JS prawie wszystko jest obiektem więc to zwróci true

B - funkcja do zwracania najmniejszej wartości z podanych zwróci domyślnie największą możliwą liczbę a ta przeciwna odwrotnie więc też true

D - koncepcja truthy/falsy w JS gdzie przy takim porównywaniu wartości są "konwertowane" na true albo false, zero jest false a pusty string jest falsy więc zwróci true


No i pozostaje to C, gdym rozwiązywał jakiś test i nie miał dostępu od internetu to bym zaznaczył tę odpowiedź. A teraz podczas pisania tego zdania sprawdziłem na internecie dlaczego NaN != NaN i jak się nad tym pomyśli to ma to sens (jak wszystko w JS gdy zna się odpowiednio ten język, ale wtedy wszelkie te memy przestają bawić).


Dla ciekawskich tutaj są odpowiedzi:

https://www.reddit.com/r/ProgrammerHumor/comments/sh1ji1/stop_pretending_nan_nan_was_a_good_idea_it_wasnt/

https://stackoverflow.com/questions/10034149/why-is-nan-not-equal-to-nan

Zaloguj się aby komentować

@vrkr Bool nie ma warunku definicji rozmiaru, ponieważ rozmiary typów całkowitych też nie mają gwarancji być zawsze takie same. Ma tylko następujące wytyczne:


  • wartości boolean są tego samego rozmiaru przy porównywaniu

  • jest prawdą jeśli wartość jest niezerowa


Taka minimalna logika pozwala różnym językom implementować to jak chcą, dając użytkownikowi tryb "tak bardzo wyjebane" ja tylko używam true i false i am w d⁎⁎ie jak kompilator robi.

@wielkaberta ale w praktyce najczęściej zajmuje tego bajta

Jeśli nie robi się w embedded lub nie pracuje się z jakimiś bardzo małymi klockami to w ogóle wszyscy mogą mieć to w dupie xd

@ZohanTSW Znaczy się ewaluacja/kalkulacja tej wartości w rejestrze można zredukować do jednego bajta. Bo jest cwany trick by upchać 8 boolów w bajcie .

A potem ktoś potrzebuje boola wypromować do enuma XDDDD

@TRPEnjoyer Padding to wyrównywanie w strukturze przez dodawanie bajtów w strukturze by łatwiej było dobierać się do zmiennych w kodzie maszynowym..

To co mówisz, to jest "promowanie" i sobie takie rvalue "true" sobie maszynowo zamieni na inta.

@osn_jallr Tak, ale ewaluacja danego boola z bitmaski, na przykład "bitmask & 1<<5" to w rejestrze procesora musi zająć conajmniej jeden bajt. Niżej nie da rady.

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

@kodyak ja bym powiedział, że mają Windowsa, bo był w szkole, na studiach i w pracy. Gdyby Linux się trochę bardziej rozpychał i był w każdej firmie, to byłoby zdecydowanie łatwiej zaanektować domowy rynek.


Pracując w IBMie używałem ThinkPada z RedHatem i był to najlepiej działający laptop służbowy, na jakim miałem przyjemność pracować. Choć miał starą generację i5, to działał szybciej niż mój obecny z nowym AMD, a czas pracy na baterii to była bajka.

@kodyak tutaj wchodzi Gabe cały na biało, dzięki protonowi chyba wszystkie gry niewymagające jakichś antycheatow działają bezproblemowo

Zaloguj się aby komentować