Programistyczne WTF jakie Was spotkały

Programistyczne WTF jakie Was spotkały
UR
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
7

Jak pracowałem w jednej firmie, gdzie dane kontaktowe klienta były najważniejsze, to tam też było na onchange strzał do bazy, a potem płacz, że znikają numery klientów :(
Albo zasłanianie pesela, numeru telefonu za pomocą podmieniania cyfr w środku ciągu iksami, a potem jak ktoś nie miał uprawnień do wyświetlania danych i niechcący edytował dane (tak, mógł, bo nikt nawet nie zrobił inputa disabled), to do bazy leciały pesel i numery z iksami :D

V6
  • Rejestracja:około 7 lat
  • Ostatnio:ponad rok
  • Lokalizacja:<a href="https://megatool.pl">sklep</a>
  • Postów:49
6

Kolega zrobił klasycznego dropa u klienta...
Ale nikt sie w firmie nie śmiał.

Był przekonany że to baza testowa


edytowany 1x, ostatnio: vitz666
PI
Mieli backup?
Koziołek
Było wcześniej – DROPa można odratować. Ja puściłem SELECT DISTINCT, który pod spodem wykonuje sort. Przy czym zrobiłem to na tabeli ~1TB, co w efekcie zatkało serwer (8GB RAM). Aplikacja stanęła, ale nie było widać żadnego błędu.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2
vitz666 napisał(a):

Kolega zrobił klasycznego dropa u klienta...
Ale nikt sie w firmie nie śmiał.

Był przekonany że to baza testowa

Ja w pracy tak dropnąłem tabelkę z danymi klientów. Był to serwer deweloperski, który codziennie jest odświeżany danymi z produkcji, więc nie było problemu. Chciałem po prostu zobaczyć kiedy apka się wysypie. Jakieś dwie godziny później kolega chciał mi coś pokazać i mówił, że mu coś nie działa. Po dziesięciu minutach walki wpadłem na pomysł, żeby spytać go który to serwer. Było ten, który zepsułem. Trochę się zirytował :D .


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
edytowany 1x, ostatnio: PerlMonk
Azarien
U nas popsucie środowiska deweloperskiego jest na porządku dziennym i nikt nie robi scen :) zepsucie produkcji (takie że trzeba było cofać bazę do backupu z poprzedniego dnia) zdarzyło się raz, może dwa.
vpiotr
W FSO kiedyś kolega przypadkiem dropnął tabelkę na produkcji, śmiechu było co niemiara.
Azarien
Dlatego upadło? :D
vpiotr
Nie, ogarnęli się w max 3 godziny
Anna Lisik
@Azarien: masz rację. DROP deva nie jest jeszcze niczym złym, no może poza przypadkiem gdy jest więcej niż jeden dev zalogowany jednocześnie.
chalwa
  • Rejestracja:około 7 lat
  • Ostatnio:około rok
  • Postów:109
9

Jeden z przykładów, dlaczego praca w branży BPO doprowadza do szału :D

Klient, nazwijmy go Pierre, dzwoni, że system nie działa.
Grzebię w logach i dochodzę do wniosku, że brakuje pliku konfiguracyjnego.
Ktoś zdecydował, że konfig ma być wczytywany z OneDrive klienta, w tym samym katalogu co excele z zestawieniami transakcji, no trudno ¯_(ツ)_/¯
Wchodzę do lokalizacji, nic tam nie ma.
Podejrzane.
Sprawdzam "recent changes", a tam: "config.json deleted 3 hours ago by Pierre. xD
Dzwonię do niego i mówię, że naprawiłem. System już działa.
On mi gratuluje, wszystko fajnie i wtedy pytam dlaczego usunął plik na OneDrive?
Zignorował moje pytanie i się pożegnał :D

Riddle
Wysyłaj maile co 30 minut w kolejce do właściciela tego OneDrive'a, że nie ma potrzebnego pliku, i ustaw fallback.
chalwa
To było dawno temu ;) W ogóle bezpieczeństwo u tego klienta wołało o pomstę do nieba. Mieli np. współdzielone konto(powieszone na teams) z uprawnieniami do przeglądania logów i kodu. Albo gość z infrastruktury pytał o moje hasło do Windowsa na videokonferencji z 10 ludźmi xD
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
11

Cyber Folks po przejęciu linuxpl.com przekonwertował nazwy użytkownika w panelu klienta do małych liter i jest wrażliwe na wielkość liter przy ich wpisywaniu. W panelu logowania nie ma nigdzie o tym wzmianki. Przypadkiem odkryłam o co chodzi, tylko dlatego, że zwątpiłam już w to, czy sobie prawidłowo zanotowałam dane jednego klienta, tak samo mam z innymi kontami.


edytowany 1x, ostatnio: Freja Draco
MarekR22
jakby hasła były solone nazwą użytkownika, to by była dopiero jazda.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0

Java nie posiada if działającego jako wyrażenie (zwracającego wartość), ale posiada operator trójargumentowy.
Operator trójargumentowy nie może zawierać niestety bloków kodu zwracających wartość, tylko pojedyncze wyrażenia.
W Javie implementacja interfejsu w miejscu jest pojedynczym wyrażeniem. Łącznie z wywołaniem metody.
Stąd już tylko krok do kodu:

Kopiuj
import java.util.function.Supplier;
public class HelloWorld{

     public static void main(String []args){
         final String message = true ? (new Supplier<String>() {
             @Override
             public String get() {
                 String hello = "hello";
                 String world = "world";
                 return hello + " " + world;
             }
         }).get() : "";
        System.out.println(message);
     }
}

Co z tobą jest nie tak Javo?

No dobra trochę nagiąłem rzeczywistość, kod bardziej wygląda tak:

Kopiuj
   someExpression 
     ? new SomeInterface<>() {
       @Override
       public String someMethod() {
         // tutaj długa i skompikowana logika
         String hello = "hello";
         String world = "world";
         return hello + " " + world;
       }
     } 
     : null;

Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 3x, ostatnio: KamilAdam
Zobacz pozostałe 4 komentarze
KamilAdam
@TomRiddle: to że skoro dodają switcha zwracającego wartość to jest nadzieja na ifa zwracającego wartość. Do tego czasu będę narzekać na szpetotę Javy
Riddle
@KamilAdam więc jesteś naiwny i nie rozumiesz tego języka.
Wibowit
@KamilAdam: można bardziej przykombinować: public class MultilineTernary { public static void main(String[] args) { final String message = true ? ((Supplier<String>) () -> { String hello = "hello"; String world = "world"; return hello + " " + world; }).get() : ""; System.out.println(message); } } Ehh, formatowanie się popsuło :(
Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:około 18 godzin
  • Postów:2792
4

Screenshot_2020-10-19-22-08-16-784_com.microsoft.office.outlook.jpg
Takiego maila dostałem.

EDIT:
A oto i FV. I wcale nie jest na 0 zł...
Przechwytywanie.JPG

edytowany 1x, ostatnio: Marcin.Miga
Zobacz pozostałe 28 komentarzy
PA
@Marcin.Miga: teraz wszyscy mozemy ci wyslac kartke na święta ;)
PerlMonk
@Panczo: To co, robimy akcję "zaspamuj Marcina"? :D
Marcin.Miga
Tam jest tylko adres poboru :)
Marooned
A jeszcze jeśli chodzi o Eneę, to niedawno zapłaciłem ponad 2x większy rachunek. Do dziś mi nie odpisali w sprawie tej anomalii.. ale na wykresie jednoznacznie widać jakiś błąd (w domu nic mi się znaczaco nie zmieniło): https://4programmers.net/uploads/attachment/5f/5f903b4185ca9.png
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
0

Przeglądam sobie Tidala na telefonie, gadam z kimś a tu wyskakuje
title
Nosz kur... mało brakowało a bym trafił w OK. Na telefonie jednak łatwo trafić ten chędożony przycisk. Ten głupi komunikat wyskakuje co jakiś czas.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostałe 11 komentarzy
dzek69
Na linuksie w wine chyba odpalisz foo bara? Raczej zbyt popularna appka, żeby nie było supportu dla tego.
dzek69
@PerlMonk: nigdzie nie napisałem, że pirat przestaje być piratem w jakimkolwiek przypadku. Napisałem tylko, że rozumiem ludzi, którzy mogą być sfrustrowani na serwisy streamingowe i wolą piraty (które też mają swoje wady). Ja płacę za serwis streamingowy i korzystając z możliwości jaką daje YTM wgrałem na niego parę własnych mp3. Zazwyczaj kupione (choć i tak nie kolekcjonuję paragonów z bandcampów i innych), ale pewnie znajdą się też lewe co się nie da(ło) kupić. I jak ktoś widzi w tym problem... no to nie mój problem. Do pewnego etapu nawet ekstra wysiłku jestem "legalny"
PerlMonk
@dzek69: Kiedyś ASIO sprawialo problemy a potem nie sprawdzałem.
dzek69
Jakbym miał przeżywać te kilka "ukradniętych" mp3 to równie dobrze mógłbym przeżywać, że gdzieś w projekcie przypadkiem użyłem ikony, na którą licencja mi wygasła (choć kiedyś zapłaciłem) albo że obrazek z "darmowego stocka" może być podkradziony z innego stocka i gdybym tylko użył search-by-image to mógłbym się o tym dowiedzieć! I inne takie problemy pierwszego świata.
PerlMonk
Nie chodzi o przeżywanie czy to, że ktoś widzi problem. Chodzi mi tylko o nazywanie rzeczy po imieniu. Jeśli ktoś piraci to piraci i tyle. Powód to sprawa drugorzędna, choć czasem rozumiem pobudki
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
6

Dostałam spama z ofertą wykonania strony internetowej. No to zajrzałam:
varto.pl
Pozwól, że stworzymy Ci profesjonalną stronę internetową

Zdjęcie pani konsultantki na 400px szerokości waży prawie 1 MB. Nie ono jedyne z resztą.
Cała strona waży ponad 10 MB. Widywałam już takie na 3-5 i zawsze jak mi się wydaje, że widziałam już wszystko, ktoś mnie jednak zaskoczy :]


dzek69
Przynajmniej masz dopasowane pod ekran :) https://i.imgur.com/5GVWSOB.png
Marooned
Kiedyś w firmie ktoś po mnie przejął wewnętrzny projekt. Po tygodniu byłem ciekaw jak tam postępy, odpaliłem aktualizację gita i idzie.. i idzie.. odpaliłem, a tam w tle strony do logowania 10MB filmik z chmurami.....
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
1

nie do końca WTF chociaz...

we flutterze w kodzie mozesz miec emoji i normalnie wyswietlaja sie! :D

screenshot-20201023120901.png

Zobacz pozostałe 11 komentarzy
Marooned
2020 wiek? To będzie coś koło 202000 roku
hauleth
@Marooned: 202001, 202000 to dalej 2019 wiek (lub MMIX w.)
purrll
Kurła. Miał być rok. Ciężki temat dzisiaj.
Marooned
Skorzystałem z https://www.dcode.fr/centuries bo mi się liczyć nie chciało i dla 202000 podał MMXX, nie wnikałem dalej
MarekR22
Jak działa tu: https://godbolt.org/z/sfxcG6 to czemu nie we flutter?
chalwa
  • Rejestracja:około 7 lat
  • Ostatnio:około rok
  • Postów:109
2

Konferencja na .NET developers days: "Frontend in F#? Hold my beer!"
Myślałem, że to jakiś żart, ale faktycznie jest do tego biblioteka :D
Chyba ta sama prezentacja tylko z innej konferencji:

Zobacz pozostały 1 komentarz
chalwa
Jaka nienawiść? Chyba do frontendu?
PerlMonk
Żartowałem, że musiało się stać coś dziwnego, żeby kodzić w tym strony.
chalwa
Aaa :D Akurat zamiana F# na CSS jest genialna. Potrafię zrozumieć backendowca próbującego ustawić layout strony, że był sfrustrowany, ale aż tak? :D
chalwa
Mem na 17:25 też jest dobry.
renderme
Pisałem, potwierdzam - działa, ale "trochę" frontendu trzeba znać. Dla mnie bez sensu:) Niby fajnie, że od razu WASM.
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:2 minuty
2

Dziś rano patrzę na swojego Smartwatch Amazfit a on pokazuje 10:15 czyli czas letni zamiast zimowy.
Myślę: "ale sprzęt do d...y jeśli nie obsługuję zmiany czasu, dobra przestawię ręcznie".
Ten model ma ekran dotykowy, więc trzeba go odblokować guzikiem. Robię to i na ekranie pojawia się 9:15.
Pierwszy wniosek, że moja interakcja wywołała aktualizację czasu, wiec nic nie muszę robić.
Mija chwila, ekran się blokuje podświetlenie gaśnie (LCD) i na ekranie widać 10:16, czyli znowu czas letni.
Odblokowuję ekran i znowu 9:16, mija chwila wraca 10:16 WTF.
I tak powtarzało się w kółko, aż faktycznie nastąpiła godzina 10:00 i zegarek zaczął pokazywać czas zimowy zarówno, w uśpieniu jak i z odblokowanym ekranem.

Tak się zastanawiam jaki to bug powoduje? Bo jakoś nie wyobrażam tego sobie jako celową funkcjonalność.

Strzelam, że inny kod obsługuje wyświetlanie czasu w trybie bezczynności i gdy ekran jest odblokowany (wrażliwy na dotyk).


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
Zobacz pozostałe 8 komentarzy
Azarien
@Sarrus: prawidłowy (obarczony mniejszym błędem) jest ten który jest bliższy czasowi lokalnemu. na 90% powierzchni Polski jest to czas zimowy. @Marooned: weź pod uwagę że przy braku zmiany czasu (niezależnie od tego który to czas będzie) ludzie będą mieli całe miesiące by się przyzwyczaić do zimowego krótszego dnia, i być może zmienią się lekko dobowe zwyczaje (przykładowo może np. pojawi się presja by typową godzinę rozpoczęcia nauki w szkole zmienić z 8 na 7, albo z 8 na 9 - zależy od kierunku zmiany...). teraz mamy to zaburzone szokiem raz na pół roku.
Marooned
Łatwiej zmienić czas w zegarku niż przyzwyczajenia i zwyczaje typu godziny pracy. Zdecydowanie wolę mieć światło o 22 niż o 5 rano.
Marooned
Z resztą, na powyższej mapie widać, że świat preferuje jaśniejsze wieczory (czerwień) od jaśniejszych poranków (zieleń).
Azarien
raczej: świat woli wyższe cyferki na zegarku przy danej porze doby słonecznej od niższych :)
Marooned
😕🤷‍♂️
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
4
Kopiuj
if (someObject.getSomeValue().isPresent()) {
  SomeValue someValue = someObject.getSomeValue().get();
  //some other logic
}   

Co tu według mnie jest WTF? po pierwsze isPresent/get, ale to już klasyk. Według mnie WTF jest tu dwukrotne wywołanie getSomeValue(). Ktoś powie że to tylko getter. No ale przecież mamy OOP czyli abstrakcję, hermetyzację, ukrywanie implementacji i nikt nam nie da żadnej gwarancji że ten getSomeValue nie jest wyliczany w chory pokrętny sposób. Tak jak w tym wypadku :(


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
Zobacz pozostałe 29 komentarzy
PerlMonk
@Afish: No i właśnie o takie konstrukcje mi chodzi, żeby dało się zrobić w miarę czytelnie.
AF
To musisz zdefiniować "czytelnie". Zasadniczo musisz wyznaczyć granice transakcji i opakować ją w jakieś środowisko, czy zrobisz to monadami, adnotacjami, pamięcią transakcyjną, synchronized gdzieś wysoko, czy czymś innym, to już kwestia preferencji i możliwości technicznych.
Miang
@PerlMonk: ale w zmiennej wewnętrznej funkcji inny wątek nie namiesza, na obiekcie że jeszcze coś się dzieje to bardziej prawdopodobne. Na gettery mam spojrzenie wzięte z Delphi i tam się cuda potrafiły dziać, ale jak przyszli "javovcy" i zaczęli mieszać w kodach to dopiero człowiek docenił że praktyki Delphi nie są złe ;)
PerlMonk
@Miang: To trochę psuje mój światopogląd o pięknej i nieskazitelnej Javie, bo to by oznaczało, że od początku coś jest tam skopane :]
vpiotr
Ktoś może powiedzieć że to myślenie rodem z C/C++, ale IMO tutaj WTF to nie-przypisanie someObject.getSomeValue() do zmiennej lokalnej.
crejk
  • Rejestracja:ponad 6 lat
  • Ostatnio:około godziny
  • Postów:46
7
Kopiuj
public class Recipe {

    public static List<Recipe> getRecipes = new ArrayList<>();

    private String name;
    private List<String> requirements;
    private String output;
    private double craftTime;

    public void remove(){
        //remove from memory
        getRecipes.remove(this);
        setName(null);
        setRequirements(null);
        setOutput(null);
        setCraftTime(0);
    }
}
jarekr000000
Nie ufaj nikomu, a już na pewno nie śmieciarzowi.
DA
Statyczna lista zwracająca listę tego samego obiektu co klasa to tez niezły WTF ;)
Sarrus
@dargenn: raczej to że obiekt sam się usuwa z jakiejś listy. Pomieszanie z poplątaniem odpowiedzialności.
UR
Na architekta go. W jednej firmie co pracowałem, też jeden koleś podobne głupoty robił, co nie przeszkadzało mu dumnie na LinkedIn pozycję wpisać chief software architect.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
3

Nie tyle programistycznie co dokumentacja- bełkot https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/Service.html
Najpierw odniesienie do książki, potem biznesowy opis... a na koniec

The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an autodetected component.

"Wartość może wskazywać na sugestię"... genialne!


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
1
Kopiuj
class FooBar{
private String value;
}
Kopiuj
result = 31 * result + value == null ? 0 : value.hashCode();

to będzie to

Kopiuj
result = (31 * result + value == null) ? 0 : value.hashCode();

czy może to

Kopiuj
result = 31 * result + (value == null ? 0 : value.hashCode());

SonarLint czuwa, i dobrze, że czuwa.
Kto pamięta jak zachłanny jest ? i wychwytuje to w lot patrząc na sam kod?


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 5x, ostatnio: BraVolt
Zobacz pozostałe 6 komentarzy
jarekr000000
Dlatego nie warto pisać w językach, gdzie (31*cośtam+cośinnego) może hipotetycznie stać się nullem. To się nie powinno kompilować.
Marooned
To już niezależna kwestia ;-)
BraVolt
@jarekr000000: tu na value może lecieć wywołanie metody na null, stąd ternary operator, arbitralnie 0 kiedy null albo policzona metoda kiedy not null.
Sarrus
@BraVolt: nie powiesz chyba mi że się zastanawiałeś kiedykolwiek nad priorytetem operatorów w przypadku a == b ? c : d
MarekR22
To jest dobry przykład na to, że lepiej pisać kod, w którym nie wartości null.
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1

Pisałem już o tym ale ciągle mnie to zadziwia.

Budżet w AWS, który po przekroczeniu... uwaga: wysyła maila (i na tym poprzestaje).
https://tenor.com/Foxb.gif

Ludzie nawet piszą poradniki jak sobie tego maila ustawić, to tak jakby się rozpisywać o tym jak szybko trzeba przechodzić przez autostradę.
https://dzone.com/articles/how-to-protect-yourself-from-unexpectedly-high-aws

hzmzp
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 9 godzin
  • Postów:619
2
vpiotr napisał(a):

Budżet w AWS, który po przekroczeniu... uwaga: wysyła maila (i na tym poprzestaje).

Co w tym dziwnego? Co mają zrobić? Wysłać specjalną delegacje? Zblokować? I np biznes ci staje bo się requesty skończyły?
Według mnie to na devie spoczywa obowiązek by sobie pilnował zużycia!

Co innego że ustawianie całego tego szajsu to patologia podobnie jak upload na google play czy adwordsy?

superdurszlak
Limit to limit, jak go ustawiasz to po to by działał, a nie łaskawie informował o przekroczeniu
vpiotr
Oczywiście zblokować a przynajmniej nie generować nowych kosztów powyżej budżetu (w linku który podałem gość przez przypadek sobie wyklikał dodatkowe $14k).
ZI
@vpiotr: @superdurszlak to nie ma sensu z większością serwisów. Jak macie jakiegoś RDSa to ma wam wyrypać całkowicie i permanentnie zawartość bazy? Usunąć snapshoty i zawartość kubełków na S3? (sorry za archeologię)
superdurszlak
@Zing: jeśli jestem indywidualnym devem który bawi się AWSem, to tak, prawdopodobnie mniej zaboli mnie utrata snapshotów bazy "sklepiku cioci Frani" niż rachunek na 100k. Wiele dostawców softu / usług ma odrębne oferty dla użytkowników indywidualnych, małych zespołów, korporacji itd. Nie widzę powodu, dlaczego billing AWS miałby koniecznie traktować kogoś kto chce postawić pet project na równi z korporacją, która przepali milion dolców w miesiąc i ledwo to zauważy.
superdurszlak
Żeby nie być gołosłownym, dokopałem się do tematu właśnie o takiej wpadce, tyle że na GCP: Heh, dzisiaj przeczytałem o... https://www.wykop.pl/wpis/53036207/ups-https-www-facebook-com-176141556820-posts-1015/ pewnie, że gość pewnie sam sobie zrobił kuku, ale nie zmienia to faktu że bez ustawionych twardych limitów nietrudno zrobić sobie krzywdę. Z limitami, które nazywają się limitami ale nic nie robią zapewne jeszcze łatwiej.
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
5
hzmzp napisał(a):
vpiotr napisał(a):

Budżet w AWS, który po przekroczeniu... uwaga: wysyła maila (i na tym poprzestaje).

Co w tym dziwnego? Co mają zrobić? Wysłać specjalną delegacje? Zblokować? I np biznes ci staje bo się requesty skończyły?
Według mnie to na devie spoczywa obowiązek by sobie pilnował zużycia!

Co innego że ustawianie całego tego szajsu to patologia podobnie jak upload na google play czy adwordsy?

No jak ustawiasz limit no to znaczy, ze chcesz zeby nie byl przekroczony.
A powiadomienie powinno byc wyslane odpowiednio wczesniej i wtedy najwyzej sobie limit zwiekszasz.


λλλ
KE
AWS nie ma twardych limitów kosztów. Można ustawić tzw. "Budget", po przekroczeniu którego dostaje się maila albo powiadomienie przez ich serwis do powiadomień (SNS), ale kasa nadal leci. Więc np. ja ustawiam sobie alert na >$5 (tyle mniej więcej kosztuje mnie zabawa przez miesiąc) i jak przekroczy, to wiem że coś zepsułem.
vpiotr
@kelog: tyle że maile nie dochodzą, a dodatkowe koszty mogą nie być wygenerowane od razu. Jak sobie stawiasz serwis na 5 minut to nie ma problemu, gorzej jak w międzyczasie chcesz np. pójść spać lub odwiedzić WC.
KE
Dokładnie. To jest imo największa wada AWS dzisiaj. Może nas na reinvencie zaskoczą :)
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Aż trudno w to uwierzyć, ale nowy Facebook jest jeszcze głupszy od poprzedniego i jeszcze bardziej obciąża przeglądarkę.


Zobacz pozostałe 3 komentarze
somekind
Ale Wy mówicie o jakimś update UI, tak? :P Bo Facebook to generalnie portal, który ciągle istnieje i nie miał poprzednika. :P
Freja Draco
Freja Draco
@somekind: No o UI. Jak to nie miał poprzednika? A Nasza Klasa i Grono? :P
somekind
Raczej ciężko, aby poprzednikiem było coś, co powstało później. ;]
Freja Draco
Freja Draco
@somekind: Z mojego punktu widzenia było poprzednikiem.
somekind
To nie jest miejsce na punkt widzenia.
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
5

Właśnie rozkminiam opis skryptu w Lotusie. Jest tam funkcja o nazwie fTestRekImportSiteZglosz. Oczy mnie bolą, głowa mnie boli, wszystko mnie boli od patrzenia :D


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostały 1 komentarz
PerlMonk
O tym samym pomyślałem. Tu i tu jest polska spółka, tyle że ja w prywatnej pracuje.
somekind
Ciekawe, co zrobiłeś w poprzednim życiu, że teraz musisz w Lotusie pracować.
PerlMonk
Widocznie musiałem być śliczną szatynką, która uwodziła dwunastoletnich chłopców. Żałuję, że się zgodziłem :(
PerlMonk
@cerrato: Żebyś wiedział. Właśnie znalazłem funkcję fGetPoczta :D
ĆK
W następnym życiu będziesz dwunastoletnim chłopcem
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 11 godzin
  • Lokalizacja:Poznań
17

https://hub.docker.com/r/diginc/pi-hole-multiarch/tags
Obczajcie pole do filtrowania - podwójny WTF:

wpisanie każdego znaku odświeża widok wraz z polem do filtrowania, co gubi focus - trzeba klikać w nie po każdym znaku

wpiszcie coś, czego nie ma (asd), znika input, trzeba kliknąć w zakładkę Tags by zacząć od zera


Zobacz pozostałe 6 komentarzy
MarekR22
da się wpisać więcej niż jedną literę na raz, wystarczy pisać bardzo szybko, zanim strona się odświeży :)
Marooned
No tak tak, jest jakiś debounce rzędu 0,2s
obscurity
udało mi się przepisać cały tag "debian_armel_prerelease" za 10 razem. Dobre ćwiczenie na szybkość pisania
wasiu
chyba naprawili :(
Marooned
Ano, naprawili.
GS
  • Rejestracja:ponad 8 lat
  • Ostatnio:8 dni
  • Postów:1265
7

Pierwszy WTF z pracy.
Analizujemy sobie przebiegi tras naszych samochodów testowych - są to ciągi lokalizacji geograficznych z GPSa. Każdy punkt ma współrzędne wyrażone w lokalnym układzie Gaussa-Krugera (czyli po prostu metryczne x, y, z). Sprawdzamy sobie czy kolejne punkty zbytnio nie skręcają względem poprzednich, czyli czy taka trasa nie jest zbytnio "połamana". Takie przypadki oznaczamy jako anomalie. Kod który je wykrywa wygląda mniej więcej tak:

Kopiuj
boolean isAnomaly(Point firstVector, Point secondVector) {
        Preconditions.checkArgument(firstVector.x != 0.0D || firstVector.y != 0.0D || secondVector.x != 0.0D || secondVector.y != 0.0D, "Cannot calculate angle for the same point");
        double dotProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;
        double crossProduct = firstVector.x * secondVector.y - firstVector.y * secondVector.x;
        double angle = Math.atan2(crossProduct, dotProduct);
        return angle < -1.0D || angle > 1.0D;
    }

Wartością graniczną złamania jak widać jest 1 radian.

Na produkcji wychodzi, że trasy się nie procesują, gdzieś coś wybucha. Tydzień analiz, przekopywania się przez różne miejsca, reverse engineeringu na nieudokumentowanych algorytmach. W końcu wniosek - trasy za bardzo się łamią, o wartość PI (czyli 180 stopni jakby ktoś nie pamiętał). Pytanie, czemu nie wykryto ich jako anomalie? Odpowiedź, bo analizowane współrzędne tych punktów były NaN! Algorytm radośnie sprawdzał sobie czy NaN nie jest równy 0.0, potem wyliczał iloczyny wektorowe i skalarne z NaNów, wyznaczał z nich atan2 a na końcu porównywał z liczbą. Tyle, że okazuje się, że wyrażenie NaN > 1.0D (czy jakakolwiek inna liczba) to false, czyli anomalii nie ma :)

Perfidne jest jeszcze to, skąd się tam w ogóle wzięły NaNy. Otóż analizowane punkty są reprezentowane w różnych postaciach i potem rekonstruowane z jednej reprezentacji do innej. Fakt że kąt między 3ma punktami wynosił 180 stopni powodował potem dzielenie przez 0 przy parametrach rekonstrukcyjnych. Niestety anomalii szukaliśmy za późno, bo po rekonstrukcji. Innymi słowy bug był inteligentny, nie tylko wprowadził błąd do danych, ale też udało mu się oszukać metodę, która miała go wykryć.

stryku
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:607
13

Bardzo ważna dla klienta informacja! ^.-
screenshot-20201106214257.png

Zobacz pozostałe 5 komentarzy
somekind
Powinni napisać, że odpytują API do DDD na AWSie w kubernetesie, żeby brzmiało mądrzej i profesjonalniej.
BraVolt
Ale w końcu odczytał jakieś API czy dalej sprawdza? Może cały czas API szuka kierowców z własnym samochodem i 4 zł za kurs (w 4 zł brutto jest zwrot za paliwo).
Azarien
brak polskich liter w komunikacie - co to, 1992 rok?
somekind
W 1992 roku były już polskie litery. Widziałem nawet książkę z połowy XIX wieku i miała polskie litery. ;)
Azarien
ale były na tyle nieustandardyzowane komputerowo że pisanie bez polskich znaków mogło mieć jakieś tam uzasadnienie. pamiętam konsolowe programiki do konwersji plików tekstowych (np. cbrkon) które obsługiwały po kilkanaście "standardów".
Kubuś Puchatek
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 miesiące
  • Postów:235
17

KUL
heheszki xD

Kopiuj
if(ognisko.IsWygaszone()) {
Amen();
}

Lubię miodek :)
edytowany 4x, ostatnio: cerrato
Zobacz pozostałe 3 komentarze
gk1982
Jak katar i nie miał covida to już ma
PI
Oj tam... skoro powstało w kilkadziesiąt godzin i ma pomagać, to można wybaczyć brzydki kod ;) chociaż używanie angielskich nazw chyba nie wydłużyłoby developmentu...
KamilAdam
@Kubuś Puchatek: nie odróżniasz Javy od Javy M$. Powinno być if(ognisko.IsWygaszone()) { Amen(); }
Kubuś Puchatek
mea culpa nie zauważyłem legendarnych winformsów :)
several
"Naukowiec z KUL" to dla mnie WTF sam w sobie.
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
4

Zlecenie na Useme:

Motylek wyciągnięty z logo firmy i ożywiony jako reprezentant w korespondencji mailowej i na banerach
Chcielibyśmy komunikować się z klientami naszego sklepu przez motylka wyciągniętego z naszego logo


ĆK
odpisz, że dla lewaków nie pracujesz
BraVolt
To 'coś' co się ogłasza jest z branży porno? WTF ?
Freja Draco
Freja Draco
Ogłoszenie mnie rozbawiło. Ale po waszych komentarzach to normalnie czuję się głupa teraz ;)
PerlMonk
@Freja Draco: Jesteś mądrą dziewczynką 😅
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
15

Z serii pracuje z dzbanami.
Była dziś w pracy prezentacja na temat one python to rule them all. Generalnie chodzi o to, że udostępniamy użytkownikom sporo bibliotek i narzędzi opartych o pythona, a sami użytkownicy też bardzo często z pythona korzystają. Problem oczywiście jest taki, że z jednej strony py2 / py3, z drugiej strony jakieś stare nieaktualizowane biblioteki, z trzeciej strony niekompatybilne ze sobą biblioteki itd. No i ziomek generalnie miał wyjaśnić w czym problem i co można z tym zrobić, ale cała jego narracja była mniej wiecej no trudne, cienszko, może trzeba by jakoś odgórnie ustalić na poziomie organizacji z czego korzystamy.... Na koniec ktoś zdziwiony (nie mniej niż ja xD) pyta go, czemu nie wspomniał nic o virtualenv albo dockerze, które generalnie całkiem nieźle radzą sobie z tymi problemami, a gość z rozbrajającą szczerością mówi, że on przygodę z wirtualizacja zakończył na vmware i nie lubi tych maszyn wirtualnych bo wolno działają...
Kurtyna.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Zobacz pozostałe 9 komentarzy
superdurszlak
@wloochacz: to nawet nie chodzi o szybkość / wolność z ORMem lub bez. Tam poprzeczka wisiała naprawdę nisko, jeśli chodzi o wydajność i to już był stan zastany przez owego architekta. Mówię o bluźnierstwach na poziomie wypychania danych do filtrowania na froncie i to w takich ilościach, że niektóre przeglądarki klękały :)
somekind
@wloochacz: to nie wzorce projektowe degradują wydajność tylko ludzie.
Marooned
Docker jest fajny na papierze.. a potem się okazuje, że jak chcesz użyć, to kontenery nie wspierają Twojej architektury i wracasz z podkulonym ogonem do apt-get.
several
Gość na ewaluacji dostał od menago, że ma się więcej udzielać dla całego zespołu więc zrobił g*wno prezentację na oczywisty temat żeby móc odznaczyć sobie zadanie na kolejnej ewaluacji. Problemu nie zamierzał rozwiązywać, ale może chociaż jakiś pożądny graf/rozpiskę zrobił co gdzie jaka biblioteka u jakiego klienta w jakiej wersji?
MarekR22
@Marooned: każde fajne narzędzie jest nadużywane lub źle używane. Z mojej obserwacji wynika, że ludzie dzielą się Dockerfile zamiast samymi gotowymi obrazami. Raz dobrze skonfigurowany obraz działa zawsze. Obrazy generowane osobno przez każdego użytkownika niekoniecznie. Ostatnio nawet miałem taką jazdę, że obraz utworzony z miesiąc wcześniej działał super, a ktoś kto utworzył obraz tydzień temu (z tego samego pliku Dockerfile) miał jakieś dziwne błędy (relacje między nowymi paczkami Debian'owymi się zmieniły).
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
2

Apfel nie umi w polskie telefony.

a.png

No co ja niby mam podać w "Area co[de]"?

  • a.png (44 KB) - ściągnięć: 5
Zobacz pozostałe 11 komentarzy
AF
@obscurity: W teorii, w praktyce możesz wybrać "obcy" numer bez problemu.
hauleth
Gdzie tak? Bo ja na razie nigdzie takiego problemu nie miałem jak potrzebowałem gdzieś w Apple podać numer.
Azarien
Tworzenie nowego Apple ID. Swoją drogą musiałem z 5 razy „potwierdzać konto” kodem na maila i na telefon zanim pozwoliło mi Xcode ściągnąć. Może potem jest już dobrze ale jak dla nowego użytkownika to “ekspirjens” beznadziejny.
Azarien
@hauleth w Polsce pierwsze dwie cyfry numeru stacjonarnego to "strefa numeracyjna" czyli w praktyce (z wyjątkami) stare województwo.
Berylo
"co ja mam niby podać" - spróbuj: Azarien'); DROP TABLE USERS; --
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2

VBA to zuuuoooo. Chcąc rozbić długą linię na kilka, trzeba dodać na końcu linii _, tj. spacja, podkreślnik (kładka, wichajster, jak zwał tak zwał)
Mam kawałek kodu

Kopiuj
Class Myszykiszki
	Private s As NotesSession
	
	Public Sub New
		Set Me.s = New NotesSession
	End Sub

Nie dało się wymyślić normalnego konstruktora?! Brrr, już nawet C# wygląda lepiej.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostałe 3 komentarze
B1
VBA powinno iść do Flame
Sarrus
Czy to jest do makro czy coś do office? Czy nie da się też tego pisać w C#?
Silv
@PerlMonk: Ale co jest nie tak z tym konstruktorem?
PerlMonk
@Sarrus: Jeśli już to w Javie. Ale wtedy całą bibliotekę musiałbym przepisać. W sumie to nie taki zły pomysł.
obscurity
C# to tylko udoskonalony fork javy, dopiero w późniejszych wersjach przestał być tak samo paskudny
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
0

Siedmioletni Google Earth 7.1.2.2041 przestał działać, bo coś tam się pozmieniało w formatach na serwerze.
I to jeszcze jakoś jestem w stanie zrozumieć, ale upośledziło też interfejs, nie ma dostępu do zapisanych lokacji itp. Przyjdzie mi pewnie z plików konfiguracyjnych je wydłubywać.


edytowany 1x, ostatnio: Freja Draco
Zobacz pozostałe 2 komentarze
Koziołek
@dzek69: assety ważą b.dużo. To nie są już śmieszne bitmapki 100 na 100 px, ale krótkie filmiki w hd. Minuta filmu HD, to ~100MB. W grze masz setkę krótkich animacji, to i waga rośnie.
dzek69
zależy w jakiej grze, w tej nie, to jest gra o składaniu literek w słowa z obrazkami w tle ;)
dzek69
zresztą to tylko przykład, puchnięcie aplikacji jest od dawna, już nawet pomijam appki na electronie, gdzie hello world ma 50+MB (nie mówiąc już ilości procesów i ramie) :D
Koziołek
A z Javy tak się śmiali
Marooned
No ale to właśnie java, czyż nie? ;)
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)