Witam,
Znalazłem jeszcze jeden WTF w powyższym kodzie. Stosowałeś tam "var" zamiast wpisać normalnie zmienną "Visit".
Czemu tak zrobiłeś?
Pozdrawiam
Taaa... a potem podczas analizy kodu, zastanawiać się co artysta miał na myśli. Po to sa nazwy klas by z nich korzystać, a nie wymyślać sobie uniwersalne nazwy nic nie mówiące.
Visit cycki = Srutututu()
to podanie nazwy typu nic nie daje.
PanPytaPanNieBladzi napisał(a):
Taaa... a potem podczas analizy kodu, zastanawiać się co artysta miał na myśli. Po to sa nazwy klas by z nich korzystać, a nie wymyślać sobie uniwersalne nazwy nic nie mówiące.
Po to jest inferencja typów, by z niej korzystać. Wiesz, że w niektórych językach w ogóle nie deklaruje się typów zmiennych?
I która nazwa nic Ci nie mówi? Zmienna visit
zdefiniowana jako new Visit
? W takim razie problem analizy kodu Ciebie nie dotyczy, bo żadnego nie jesteś w stanie przeanalizować.
var
jest dobre, używam często. Ale ostatnio w systemie w którym pracuję coraz szerze rozprzestrzenia się takie coś var plugin = GetPlugin()
Gdy jest tego za dużo, czytanie robi się irytujące, trzeba wtedy dodatkowej akcji żeby poznać typ zmiennej, gdzie w przypadku mojego systemu (pluginami poganianego) często jest to ważna informacja. Wszystko z głową.
IPlugin
?
var availableTextPlugins = GetAvailableTextPlugins()
, var visitsForUserFromLastMonth = GetVisitsByUserAndDateRange(int userId, Date startDate, Date endDate)
, itp. Ważne jest to, co jest w zmiennej, a nie jaki ma typ. Typ jest istotny dla kompilatora.
Zrobiłem wpłatę (prawdziwych) pieniędzy na konto i otrzymałem mejla o tytule: "TEST - Potwierdzenie otrzymania wpłaty."
Brzmi groźnie.
Nie tyle stricte programistyczne, ale generalnie wymyślili to chłopcy z M$. Otóż outlook blokuje załączniki. Bywa. Blokuje pliki z rozszerzeniem XML. Bywa. Nie udostępnia opcji "pobierz mimo wszystko". Delikwent, który wymyślił takie podejście powinien zawisnąć... zabawniejsze jest jednak rozwiązanie.
Sam M$ proponuje wysłanie pliku z innym rozszerzeniem. Ja wiem jak je zmienić. Pani Basia w urzędzie w Wilkowyjach niekoniecznie. Względnie wysłać plik skompresowany... który też zostanie zablokowany...
Najzabawniejsze jest jednak ostatnie rozwiązanie podane na ich stronie... prośba do admina serwera exchange i przegrzebka w rejestrze....
Zamawiałem właśnie obiad online. Dostawca korzysta z usługi pyszne.pl.
W komentarzu napisałem, że firma znajduje się na dwóch piętrach, wiec można dostarczyć jedzenie pod jeden z dwóch adresów.
Dostałem maila potwierdzającego, ale estymowany czas wykonania zamówienia wskazywał na 2 minuty do tyłu, więc zadzwoniłem do dostawcy.
On twierdzi, że nic mu na drukarce nie wyszło, więc złożyłem zamówienie telefonicznie (z zastrzeżeniem, by uważał na duplikację zamówienia), tak na wszelki wypadek.
5-10 minut potem dzwoni telefon z Łodzi (siedzę w Krakowie), gość się dopytuje o ten komentarz.
WTF serwis internetowy zatrudnia żywych ludzi do przetwarzania zamówień. Ten komentarz powinien wyjść na drukarce u dostawcy, automatem, a wszelkie wątpliwości powinie rozstrzygać z klientem dostawca.
oj jest tego full.... kiedyś jak instalowałem klientowi PS-a, instalator wywalił komunikat całkowicie pusty (żadnej treści, nagłówka tylko wykrzyknik)....
Dwa lata temu dostałem od klienta dysk 1TB z odłamanym ramieniem hta..... na potwierdzeniu przyjęcia notatka o "soraya FUCKS".....
Kiedyś gnojek z helpdesku jednej z firm ft koniecznie wcisnąć mi chciał że on wie lepiej na jakim ja sprzęcie pracuje. Nawet podał mi jego (oczywiście wymyśloną) konfigurację...... jeszcze kilka razy im odwalało aż dostali bana ISP......
https://www.imperialviolet.org/2014/02/22/applebug.html
Kiepskie są te standardy kodowania w Apple, ten błąd dowodzi, że:
goto
które przechodzi code reviewVisual Studio 2010 na Win8. Non stop używany przez mnie podgląd wartości zmiennej stringowej w oknie modalnym z doinstalowanym formatowaniem JSONa, z jakiegoś powodu przy zamknięciu często (choć nie zawsze) powoduje reset explorera, a przynajmniej przerysowanie wszystkich okien łącznie z pulpitem w systemie. Dzieje się to bardzo szybko i nie próbuję nawet tego naprawić. Biorąc pod uwagę czas jaki bym zmarnował na znalezienie przyczyny, to nie warto. WTF jednak się pojawił kiedy zauważyłem, że czasem podczas przerysowania pojawia się na chwilę to menu, które się rozwija po najechaniu na prawy brzeg ekranu w Win8. Powoduje ono zawsze pojawienie się także zegara w lewym dolnym rogu. Gdzie WTF? Otóż w trakcie tych losowych przerysowań zegar pokazuje godzinę niemającą nic wspólnego z aktualną, co więcej na obu monitorach jest ona różna.
Teraz parskam śmiechem w pracy za każdym razem jak ot zobaczę.
Defraggler od paru godzin pokazuje "Pozostały czas: 1 minuta".
Jak można wydać 50 milionów?
https://empatia.mpips.gov.pl/
Parę słów na temat pozyższego: http://biznes.interia.pl/wiadomosci/news/mpips-uruchamia-portal-informacyjno-uslugowy-emptia,1973602,4199
"koszt projektu to ok. 50 mln zł"
window.onload = function(){document.readyState!="complete" && (document.readyState = "complete");}
:). Zajrzałem do skryptów js : function WyborSposobuOdpowiedzi()
. To już mi dużo mówi o poziomie firmy która to robiła. Chociaż po przemyśleniu to jest patriotyczny kod :D
Hardwarowy WTF:
Facet wszczepiajacy sobie komputer wielkosci paczki papierosow do reki.
http://www.vice.com/motherboard/diy-cyborg?utm_medium=cpc&utm_source=gravity&utm_campaign=gravity
the implant can record data from Cannon's body and transfer it to any Android-powered mobile device
gościu był zbyt leniwy, by przesyłać dane "tradycyjnie", i kazał sobie z tego powodu wszczepić implant, który tak paskudnie wygląda? (zwłaszcza z tatuażem, wszami i "dlaczego coś kanciastego wystaje ci z ręki?")
Jak powszechnie wiadomo produkty dużych korporacji są dziwne... DB2 by IBM.
W schemacie tworzę sobie tabelę:
id:INTEGER
kraj:VARCHAR(20)
typ:VARCHAR(20)
licznosc:INTEGER
następnie robię insert:
insert into raport_storeX (kraj, typ, licznosc) values ("POL", "T111", 1);
Wali błędem error -206 niepoprawny identyfikator WOJEWODZTWO.
WTF?
Okazuje się, że DB2 jest case-sensitive w zapytaniach, ale... DB2 robi upperase dla wszystkich identyfikatorów w parsowanym zapytani... mało tego... tylko w przypadku gdy zapytaniem jest INSTER.
Praca z klientem jest zawsze źródłem wtf-ów...
Wysyłam sqlkę do weryfikacji z pytaniem czy jest poprawna z ich punktu widzenia. Chodzi przede wszystkim o to czy jeden z warunków działa prawidłowo (IMO, tak ale niech oni za to odpowiadają)...
Odpowiedź klienta
Nie mam jak tego przetestować ani zweryfikować.
Jeżeli zapytanie zwraca wartości i realizuje potrzeby biznesowe raportu, jest poprawne
Czy zapytanie spełnia warunki?
Nie wiem, ale jeżeli spełnia to spełnia...
shit...
Mój operator kablówki ma fajne podejście do bezpieczeństwa.
WTF #1: Router zainstalowany przez operatora ma interfejs administracyjny dostępny z zewnątrz.
WTF #2: Nie da się zablokować WTF #1.
WTF #3: Router przychodzi z domyślnym loginem i łatwym hasłem (coś w stylu admin/123), a wszystkie routery mają taki sam login i hasło.
WTF #4: Nie da się zmienić loginu ani hasła.
WTF #5: Wszystkie routery w bloku są w jednej sieci lokalnej, bez jakiegokolwiek firewalla pomiędzy.
WTF #6: Na jednym IP jest więcej niż jeden router. I nie, nie chodzi o NAT. Jak wpiszę adres IP swojego routera, to wcale nie jest gwarantowane, że zgłosi się mój router. Może się zgłosić router sąsiada. Odświeżę stronę i zgłasza się router innego sąsiada. Właściwie nawet nie wiem nawet jak to jest możliwe.
WTF #7: Aby mieć gwarancję, że się modyfikuje ustawienia swojego routera, a nie routera sąsiada, operator radzi wypiąć z niego kabelek przychodzący z klatki schodowej.
WTF #8: Interfejs administracyjny routera udostępnia hasło do WiFi jawnym tekstem. Wystarczy podejrzeć źródło strony.
WTF #9: Ludzie mają strasznie słabe hasła do WiFi (ale to jest akurat znana rzecz).
WTF #10: Routery w ogóle nie zapewniają NAT ani firewalla. Znając IP w sieci lokalnej bez problemu można pingować komputer sąsiada podłączony do innego routera.
WTF #11: W ogóle magiczne rzeczy się dzieją - np. jak podłączę się do ich routerka przez wifi, to Internetu nie mam, jak podłączę się przez Ethernet to Internet jest. A miesiąc temu było na odwrót. Bardzo możliwe, że rozmnażanie IP poprzez strategię "wiele urządzeń na jednym IP" ma z tym coś wspólnego, albo jest jeszcze jakiś inny WTF.
BTW: Operator obiecał zająć się tą sprawą, ale nie potrafi określić, kiedy to naprawią.
mongo[mDB.DB['PLAYER']].find({id_user: id_user}, { _id: 0 }, function(err, result) {
if (err || !result)
callback(false);
else if (!mFn.validateJSON(result[0]))
callback("null");
else
callback(true);
});
Na dobry początek coś takiego. Dalej jest jeszcze gorzej. Ciekawostka: validateJSON
sprawdza, czy dany obiekt da się sprowadzić do JSON, czyli... czy istnieje :|
<!--[if IE 8]>
<html class="no-js ie ie8 lt-ie9" lang="pl">
<![endif]-->
<!--[if IE 9]>
<html class="no-js ie ie9" lang="pl">
<![endif]-->
<!--[if gt IE 9]>
<html class="no-js" lang="pl">
<![endif]-->
<!--[if !IE]>
<html lang="pl">
<![endif]-->
Ostatni warunek... strona za 100 milionów... bank... WTF????
Serio programistom PHP tak słabo płacą? 5zł na godzinę?
Poszukiwany PHP Developer
Ostatnio grzebie się w iOSie i regularnie natrafiam na dziwactwa tej platformy.
UIToolbar
(ten element na górze z buttonami do nawigacji) ma właściwość tintColor
.
W wersji iOS mniejszej niż 7.0 tintColor
miał wpływ na kolorystykę samego UIToolbar
nie miał wpływu na guziki.
Od wersji 7.0 Apple jednak wymyśliło, że zmieni znaczenie tintColor
, od teraz ten kolor ma wpływ na kolor ikonek w buttonach, a poprzednią funkcjonalność przejął barTintColor
.
To już jest niezły WTF, ale najlepsze jest właśnie z barwieniem ikonek, tintColor
powoduje, że wyświetlane ikonki są przerabiane tak, że wszystkie nieprzezroczyste piksele dostają ten właśnie kolor, więc ikonka zachowuje jedynie kształt, a tak staje się cała jednobarwna (domyślnie niebieska).
Przez ostatnie parę dni szukałem jak obejść tą wspaniałą "funkcjonalność". Ustawienie tintColor
na nil
nic nie daje (przywraca domyślną wartość, a właściwie dziedziczy ją po widokach rodzicach).
Potem próbowałem kolor o nazwie "clearColor" , ale ikonka znikła.
Po długich poszukiwaniach w końcu znalazłem rozwiązanie:
UIImage *icon = [[UIImage imageNamed: @"iconName.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];
barItem.image = icon;
https://developer.apple.com/library/ios/documentation/uikit/reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/instm/UIImage/imageWithRenderingMode
https://developer.apple.com/library/ios/documentation/uikit/reference/UIImage_Class/Reference/Reference.html#//apple_ref/doc/c_ref/UIImageRenderingMode
Dla tych co nie znają Objective C, to najpierw jest tworzony obiekt z ikoną, a następnie na jego podstawie tworzony jest jego kopia, z drobną modyfikacją, która zapewni normalny rendering, a nie ten zmodyfikowany przez tintColor
. Szkoda, że nie dodali linka w tintColor
do tego API w UIImage
oszczędzili by ludziom choć troszkę nerwów.
Takiego WTF w API to w życiu nie widziałem.
Skoro takie cuda potrafią wymyślać, to aż strach pomyśleć jak wygląda kod odpowiedzialny za bezpieczeństwo. Niektórzy tak narzekają, na bezpieczeństwo Androida, ale gdyby wyciekł kod iOS-a to okazało by się, że ma kilka razy więcej dziur niż Android.
Nokia HERE Maps.
Żeby nie można było palcem na mapie wskazać: STĄD - DOTĄD?
Żeby nie można jako początku trasy albo celu wybrać pozycji z ulubionych? (to po co one są, jako pasywne gwiazdki na mapie?)
Pała z funkcjonalności.
Współczuję wszystkim programistom PHP, naprawdę...
Programista www / php / haxe
15zł/h brutto umowa o dzieło albo 15/h netto na b2b? Rly? Jeszcze wymagają doświadczenia... Co prawda to tylko jakieś wizytówki, CMS-y, sklepy ale mimo wszystko... chyba panie w Biedronce podobnie zarabiają i jeszcze mają ciepłą posadkę na umowę o pracę...
Getin Online nie przestaje mnie zadziwiać. Podczas logowania przy niewypełnionym polu hasła można wcisnąć enter i następuje próba zalogowania. Bardzo wygodne.
Gorsze jest to, że gdy np. po zerwaniu lokaty spróbujemy wykonać przelew ze swojego konta, to pojawi się komunikat o braku wystarczającej ilości środków na koncie. Czyżby ktoś u nich nie ogarniał transakcji i wyświetlał losowe komunikaty?
Duży bank na M....
Wchodzimy na konto oszczędnościowe, przełączamy widok historii na wersję z poprzedniej wersji serwisu, bo tylko tam mam eksport do CSV. Robię eksport
Wchodzę na konto główne próbuję zrobić to samo dostaję historię oszczędnościowego...
Pomaga twarde przeładowanie strony (ctrl+f5) oraz oczywiście przelogowanie się.
Klasa...3.4k linijek, w każdej metodzie taki kod:
$db = NewADOConnection(database_type);
$db->Connect(host, user, password, database);
I tak klas jest kilka....
Nigdy więcej freelancerki.
W kodzie pewnego systemu finansowego.
public Typ nazwa(argumenty){
return (Typ) wywołanie_funkcji(6 argumentów z czego 4 wywołania funkcji{
public void funkcja1(argumenty){logika}
.
.
.
public void funkcja7(argumenty){logika}
)};
}
Lekcja z dzisiaj. W ubezpieczeniach mówimy o trzech stronach Ubezpieczycielu, Ubezpieczonym i Ubezpieczającym. Pytanie co robi ten kod:
ubezpieczony.getDaneUbezpieczeniowe().getIdOsobyUbezpieczonej()
Odpowiedź: zwraca ID ubezpieczającego. Takie to oczywiste...
To chyba też się załapie na "wtf"...
Kolos z algorytmów w Delphi/Pascal bo to jedyny język który Pani Dr. była w stanie nauczać.
Dostaję do napisania Fibonacciego rekurencyjnie więc piszę. Delphi nie chce ze mną współpracować (wywaliłem {$APPTYPE CONSOLE} i dlatego) więc przerzucam się szybko na Free Pascala gdzie wszystko działa. Oddaję i dostaję 3+ (pomijam, że max można było dostać 4, a przydzielanie zadań o różnym poziomie trudności na różne oceny było na zasadzie - Ty dostaniesz takie, a Ty takie.). Dociekam więc dlaczego tylko 3+ (po sprzeczce o podział ocenowy rozdawanych zadań o którym nikt nie wiedział) IMHO całość działała jak należy. Pada odpowiedź:
Oracle wersja 10.0.2 XE, czyli darmowa. Proste zapytanie w stylu:
SELECT pole1, Sum(pole2) pole2, pole3 WHERE pole4 IN ('Wart1') AND pole5='Wart2' HAVING Sum(pole2) > 0 Group By pole1, pole3 ORDER BY pole1
w SQLTools przechodzi bez problemu i zwraca kilka wierszy. W .NET CF przy użyciu komponentu dotConnect for Oracle firmy devart, który pozwala na bezpośrednie połączenie z urządzeń z windowsem ce/mobile do oracle, wysypuje się z komunikatem ORA-00600 internal error code
. Pierwsza odpowiedz jaką można znaleźć/dostać na temat takiego błędu to "daj sobie spokój z szukaniem - dzwoń do supportu". Po głębszym przegrzebaniu googla trafiłem na wskazówkę - dodaj na końcu warunku OR 0=1
. Po zastosowaniu całe zapytanie wygląda tak:
SELECT pole1, Sum(pole2) pole2, pole3 WHERE (pole4 IN ('Wart1') AND pole5='Wart2') OR 0=1 HAVING Sum(pole2) > 0 Group By pole1, pole3 ORDER BY pole1
i o dziwo działa :/. Ma to związek z innym planem zapytania. Przyjąłem do wiadomości, pogodziłem się z tym faktem i tak zostało z komentarzem, żeby nie usuwać bezsensownego warunku.
var
?