Programistyczne WTF jakie Was spotkały

Programistyczne WTF jakie Was spotkały
J3
  • Rejestracja:około 12 lat
  • Ostatnio:4 miesiące
  • Postów:6
1
Kopiuj
 
#include <stdio.h>

using namespace std;

int main()
{
    short int a = 0;
    short int tab[65535];
    for (int j=0;j<100000;j++)
    {

    tab[j] = ++a;
    printf("%i \n",tab[j]);
    }
    return 0;

}

Myślałem że program się wywali, a tymczasem zapętlił się w nieskończoność?

Gdy wypisuję zmienną j okazuje się że j jest short intem?

Ktoś mnie oświeci WTF?

Zobacz pozostałe 6 komentarzy
Azarien
@no_solution_found: ale przekroczenie zakresu liczby unsigned to jest undefined behaviour, więc wcale nie musi przeskoczyć tylko mieć dużo „groźniejsze” konsekwencje, z dziwnym zachowaniem pętli włącznie.
no_solution_found
@Azarien masz rację, dlatego napisałem, że to zależy od tego jak to jest zaimplementowane w konkretnym kompilatorze. W gcc z tego co pamiętam w takim wypadku ucina ostatni bajt dlatego wartość takiej zmiennej zmienia się na najniższą dostępną dla danego typu, w tym przypadku -32768
RE
Ten program można skompilować na sto różnych sposobów - stąd mogą i być te przeróżne zachowania. Musiałbyś podesłać binarkę żebyśmy ci powiedzieli dlaczego akurat u ciebie wchodzi w nieskończoną pętlę. Np. Visual Studio 2015 w trybie release kompiluje ten kod do równoważności: for(int i = 0; i &lt; 100000; i++) printf(&quot;%i \n&quot;, (short int)i);. Tak, nawet tablicy nie ma ;).
Azarien
@Rev: całkiem sensowna optymalizacja..
Azarien
GCC wyświetla warning: iteration 65535u invokes undefined behavior
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:2 minuty
7

Długa dyskusja email, po której w końcu ustalono, że certyfikaty na serwerach testowych muszą być poprawione tak by dostarczały identyfikację serwera.
Gość od serwerów (i od ich bezpieczeństwa) pisze, że nie może zaktualizować certyfikatów bo jego hasło nie działa.
Na czym polega WTF? na tym, że podał hasło które mu nie działa. Wątek nieszyfrowany, liczba dyskutantów duża, większość z firm trzecich :).


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22
Azarien
skoro nie działa.. :) poza tym skoro to testowe, to nie byłoby tragedii.
bogdans
zapewne używa tego samego hasła również w innych miejscach
MarekR22
hasło w stylu: &lt;firma&gt;123 i pisanie o tym haśle w emailu wskazuje na to, że ludzie używają jednego konta do zarządzania certyfikatami :).
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
2

make clean przerywający pracę błędem bo nie znalazł jednego z plików do skasowania.

muszę mu podstawić cokolwiek pod brakującą binarkę (plik tekstowy) żeby mógł ją sobie spokojnie skasować i kontynuować pracę...

edytowany 1x, ostatnio: Azarien
Wibowit
a to nie przez zwalony makefile?
Azarien
@Wibowit: z pewnością, ale wygląda jak wygenerowany i nie wiem co się w nim dzieje. łatwiej było oszukać plikiem tekstowym.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Wrocław
0
Azarien napisał(a):

make clean przerywający pracę błędem bo nie znalazł jednego z plików do skasowania.

Chyba (?) podobne cuda dzieją się przy projekcie w Apache Cordova w Visual Studio. Czasem nie da się zrobić rebuilda, bo brakuje pliku clean.bat. Rozwiązaniem jest przejście do innego commita w historii, clean projektu, a potem powrót do commita, na którym chcieliśmy pracować.


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
hzmzp
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 9 godzin
  • Postów:619
0

Za to kocham PHP

Kopiuj
Catchable fatal error: Argument 1 passed to Model_Stories::getCustomizedFieldByStoryId() must be an instance of integer, integer given, called in /......../application/controllers/StoriesController.php on line 180 and defined in /......../models/Stories.php on line 820
Zobacz pozostałe 12 komentarzy
Azarien
@Shalom: w C# jest int. można go zboksować rzutując na object jeśli już koniecznie trzeba, i z takiego obiektu wyłuskać inta rzutując go na int. nikomu niepotrzebny jest osobny Integer.
Riddle
W c# int na pewno jest typem prostym? Wszak możesz na nim wykonywać metody. Ja bym raczej powiedział że w C# jest obiekt int, a nie ma typu prostego (wiem że przecież ta wartość i tak musi być trzymana gdzieś, ale u know).
Azarien
@TomRiddle: C# nie rozróżnia typów na proste i nieproste tak jak Java. int jest prosty, ma 32-bity i nic więcej. Ale można na nim wykonywać metody, np. (3).ToString();. Może być bezpośrednio parametrem generycznym &lt;int&gt; bez boxingu, np. List&lt;int&gt; przechowuje 32-bitowe inty, a nie obiekty zawierające int. Można inta zboxować w object stosując składnię rzutowania (object)3, i z takiego obiektu wyciągnąć inta rzutując w drugą stronę(int)o co spowoduje unboxing. Osobna klasa zboksowanego integera nie jest po prostu potrzebna.
Sarrus
int w C# jest tylko cukierkiem składniowym. Na dobrą sprawę jest to struktura Int32. Tak więc Int32 i int jest to dokładnie to samo.
Azarien
@Sarrus: tak. int jest prymitywem i jednocześnie pełnoprawnym typem. jest dla mnie niepojęte, że inne języki nie potrafią rozwiązać tego problemu i tworzone są dwa odrębne typy.
Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0

Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
8

Niekoniecznie programistyczne WTF ale nadal:

Skala na "wykresie" w BZ WBK jest logarytmiczna
Oto przykładowy wykres karty kredytowej - zielonkawe słupki to spłaty równe sumie wszystkich czerwonych słupków pomiędzy nimi
bzwbk.png
Bardzo czytelne, nieprawdaż?

Azarien
prawdziwy WTF polega na przeznaczaniu 1/3 wysokości wykresu na kwoty groszowe. przy takiej formie wykresu skala powinna być np. 10/100/1000/10000 i już będzie lepiej.
dzek69
Oj tam WTF, przecież to celowe działanie
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Tuchów
  • Postów:12156
5

Gra 8 Ball Pool na miniclip, gracz z małym levelem:

good.png

i gracz z maksymalnym rankingiem:

bad.png

Chyba ktoś tego nie przewidział.

  • good.png (19 KB) - ściągnięć: 143
  • bad.png (35 KB) - ściągnięć: 163

Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 6 godzin
6

W połowie 2015 roku Objective-C dorobiło się genericsów: http://yourcodesucksexception.blogspot.com/2015/06/whats-new-in-ios9-and-xcode-7-wwdc-2015.html
Niezły zapłon.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Zobacz pozostałe 36 komentarzy
hauleth
@niezdecydowany słyszałem legendy, że istnieje ktoś kto zarabia na życie pisząc w nim (i to nie jest ani Ken Thompson ani Rob Pike)
hauleth
@karolinaa jak się pojawił Macierewicz to przestałem czytać dalej.
KA
no rozumiem jakby tam pojawiły się obelgi albo wyjątki javowe i byś przestał czytać. ale Macierewicz. pfff
somekind
@katelx, imperatywny język pozbawiony wielu ekspresywnych mechanizmów i cukru syntaktycznego. Tu biegły programista nie pomoże, nadal trzeba napisać ileś kodu, który nie służy do rozwiązania problemu, a trzeba go napisać tylko dlatego, że sam język go wymaga.
2
Wibowit napisał(a):

W połowie 2015 roku Objective-C dorobiło się genericsów: http://yourcodesucksexception.blogspot.com/2015/06/whats-new-in-ios9-and-xcode-7-wwdc-2015.html
Niezły zapłon.

A JavaScript po 20 latach dorobił się w końcu iterowania po tablicach.. ;)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

Zobacz pozostałe 2 komentarze
WhiteLightning
Ze nie ma nromalnej petli for tylko trzeba rekurencyjnie wyolywac template wolajacy inny template, co przy przekyzywaniu kilku parametrow strasznie komplikuje kod.
LukeJL
jak? podaj próbkę kodu z takim czymś.
WhiteLightning
@LukeJL: np tu: http://stackoverflow.com/questions/3802235/how-i-can-repeat-an-action-x-times-with-xslt przy czym tu masz bez zadnych parametrow, a dodaj 5-6 parametrow przy skomplikowanym xmlu i zaczyna to ciekawie wygladac.
kate87
Oj tam oj tam, prawie rok dziubałam w xsl i jakoś dało się wszystko zrobić. :)
LukeJL
myslalem, ze to jest madrzejsze skoro ponoć jest to wyspecjalizowany jezyk do transformacji XML. Ale jak to jest takie glupie, to nie rozumiem czemu sie ludzie tak bawia, skoro pewnie latwiej byloby wziac dowolny parser XMLa i samemu sobie przetransformować XMLa wg jakichs tam regul.
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Stacktrace
  • Postów:6821
5

Excel, kodowanie i podobne...

Generalnie pracuję obecnie z apką, która dostaje dane z BPM-a. jeden z serwisów przyjmuje pliki, ale że nie można ich przesłać bezpośrednio do nas to BPM używając javascriptowego FileReader tworzy z pliku string zakodowany w base64 i wysyła nam go jsonem.

W pewnych warunkach ma to sens i działa całkiem nieźle. Całość posypała się w momencie gdy zaczęliśmy używać plików CSV.

Rzecz polega na tym, że użytkownik pobiera taki plik od nas (bezpośrednio) po czym otwiera w Excelu, edytuje, zapisuje jako CSV i nam go odsyła (przez kodowany string).

Teraz mięsko

W bazie lądują "krzaki". Wielka awantura, task idzie tydzień wniosek jaki przedstawiłem managerowi - nie możemy tego naprawić, bo:

  1. Jak się plik CSV w kodowaniu UTF-8 otwiera w excelu to wszystko jest OK.
  2. Jak się go edytuje to nadal jest nieźle
  3. Jak zapisujesz jako CSV to excel zamienia kodowanie pliku na ANSI, czyli domyślną stronę kodową systemu zapisaną w rejestrze.
  4. Jak wywołujesz FileReader.readAsDataUrl to plik jest zapisywany jako base64 i wysyłany do nas, ale po naszej stronie dekodujemy go jako UTF-8 (i nie chcemy inaczej, bo nie mamy informacji o kodowaniu).
  5. Wrzucamy crap do bazy.

Właściwy WTF to sposób w jaki excel zapisuje pliki zmieniając po drodze kodowanie. Okazuje się, że nie można zmienić w żaden sposób.

// edit (z rozwiązaniem):

Zamiana formatu z csv na xlsx. Co okazało się stosunkowo szybkie, ale tylko dlatego, że połowa systemu pracuje na plikach excela.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
edytowany 1x, ostatnio: Koziołek
Zobacz pozostałe 4 komentarze
flowCRANE
To faktycznie kicha... :(
Olamagato
Rozumiem, że opisujesz działanie najnowszej edycji Excela? Jeżeli tak, to bardzo smutne.
Koziołek
2010 bodajże, ale co ciekawe da bi'korpo jest w trakcie zmiany wersji (co oznacza, m.in. że mam IE 8)
Koziołek
I najciekawsze. W Libre Office 2015 można spokojne eksportować z zachowaniem kodowania.
HI
" Libre Office 2015" ?
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
1

sortowanie wojewódtsw po nazwie:

Kopiuj
Collections.sort(wojewodztwa, new Comparator<WojewodztwoMapCmt>() {
	@Override
	public int compare(WojewodztwoMapCmt o1, WojewodztwoMapCmt o2) {
		String o1Name = o1.name().replace("Ś", "S").replace("Ł","L");
		String o2Name = o2.name().replace("Ś","S").replace("Ł","L");
		return o1Name.compareTo(o2Name);
	}
});

(gwt, client side). ładne i moje


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
Zobacz pozostałe 9 komentarzy
KA
rosół? nie no wiem @niezdecydowany . ale to trzeba mieć odwagę i wgl żeby tak co chwila zmieniać
KA
dobra wygrałeś. :c
dzek69
Czyli sortowanie będzie Las Vegas, Łódź, Lublin. Lol.
Trebuh
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:okolice Łodzi
2

KAWASAKI KMX 125 to pojazd zaliczany do kategorii Motocykle. KAWASAKI KMX 125 posiada nadwozie typu 0.0. Ten model samochodu jest sprowadzany do Polski od roku 1996.0. Jego moc maksymalna to 11.0 KW, a liczac w koniach mechanicznych, moc modelu KAWASAKI KMX 125 wynosi 15.0 KM. Silnik KAWASAKI KMX 125 o pojemnosci 125.0 cm3, to typ Cylinder stojacy, posiadajacy 1.0 cylindry. Na kazdy cylinder w silniku KAWASAKI KMX 125 przypadaja 0.0 zawory. Manualna skrzynia biegów posiada 6.0 biegów do przodu. Caly uklad napedowy KAWASAKI KMX 125 osiaga moment obrotowy w wysokosci 0.0 NM. KAWASAKI KMX 125 posiada 0.0, a typ paliwa na jakie jezdzi KAWASAKI to Benzyna . Wracajac do opisu nadwozia warto nadmienic, ze KAWASAKI KMX 125 posiada 0.0 drzwi, 0.0 siedzenia, a bagaznik ma maksymalna pojemnosc wynoszaca 0.0 litry. Wymiary samochodu to: 0.0mm dlugosci, 0.0mm szerokosci, i 0.0mm wysokosci.

Ilość zaworów itp. wyświetlają ze zmiennej (zmiennoprzecinkowa) ;p


GG: 10101100010110000100011101 (BIN)
"Nie wszystko napisane w internecie jest prawdą" - Józef Piłsudski.
flowCRANE
Tu chyba wszystko jest ze zmiennych, pacz ile razy widnieje model KAWASAKI KMX 125 i jak nie po polsku jest to wszystko napisane; Ogólnie tragedia - już tłumacz Google'a lepszy wynik by wypluł...
Trebuh
@furious programming Pomijając te WTF'y dowiedziałem się czego chciałem ;)
flowCRANE
To zależy czego chciałeś się dowiedzieć :)
Azarien
a wystarczyłaby tabelka.
Marooned
liczba nie ilość, zawory są policzalne :P
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
9

1b.PNG

  • 1b.PNG (3 KB) - ściągnięć: 220
21

2015-11-14.png
Jednostka to jednostka - wynik oczywiście w dolarach kwadratowych
Dopisując na końcu "N" możemy uzyskać dolarokilogramy kwadratowe * metr na sekundę kwadrat

dzek69
to są metrodolarokilogramy kwadratowe dzielić na sekundę kwadrat
Azarien
bo N to niuton, czyli niuton razy dolar kwadratowy.
KW
@Azarien: dziękujemy, kapitanie oczywisty :)
S4
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:13
8

user image
Rozmowa programistów.

Zobacz pozostały 1 komentarz
vertoi
takich dyskusji można znaleźć więcej, żadna nowość :D
Sopelek
Dlatego nie mam facebooka, bo znając życie korciło by mnie żeby tracić czas na prostowanie takich beznadziejnych dyskusji.
vertoi
@Sopelek przynajmniej można się pośmiać z nich czasem, a nie tylko na fb się takie posty spotyka ;)
somekind
Oby nigdy nie odkryli naszego forum.
SW
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:426
15

Trafiłem do projektu gdzie jest wielu Hindusów. Nie wiem czy każdy tak pisze ale to jeden z przykładów. Chyba chciał być bardzo pewny tego Stringa...

Kopiuj
(String) (String) rs.getString("nazwa_kolumny");
edytowany 2x, ostatnio: Swr
KA
piękne! jak takich linijek jest mało to potrafi rozweselić ;]
Shalom
Dziwi mnie brak .toString() jeszcze :P
somekind
To pewno ma być tuple string -&gt; string tylko jeszcze nikt tego w kompilatorze nie zaimplementował.
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:2 dni
  • Lokalizacja:Rzeszów
16

Poniższe kody pochodzą z webowego panelu kontroli nad systemem NVR (aka "nagrywacz" obrazu z kamer IP).

Chińska jakość kodu :)

eval bez evala (pewnie szef zabrania):
(warto też zaznaczyć, że takie parsowanie JSONa nie jest uznawane za bezpieczne (chyba, że jesteśmy 100% pewni źródła stringa, który dekodujemy) - i co ciekawe - Chińczyk do projektu ostatecznie dorzucił jakiś open sourcowy parser JSONa (tak, wszyscy wiemy, że teraz obsługa JSON jest wbudowana, ale panel ma obsługiwać też stare przeglądarki)), ale chyba z niego nie korzysta, albo korzysta tylko w niektórych miejscach w kodzie

Kopiuj
ParseJSON:function(str){
    return (new Function("","return "+str))();
},

Obsługa błędów oczywiście TODO - choć akurat to popularne i u nas, żeby nie robić obsługi błędów, przecież na pewno zadziała:

Kopiuj
error: function(XMLHttpRequest, textStatus, errorThrown){
//TODO: 处理status, http status code,超时 408
// 注意:如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能
//是"timeout", "error", "notmodified" 和 "parsererror"。
}, 

Choć widać, też, że Chińczyk odbył wewnętrzną walkę, żeby może jednak ten handler błędu zrobić:
user image

Chiński font, na wypadek gdyby Ariala nie było:

Kopiuj
font-family: Song, Arial, "宋体";

Chińczyk gubi się w ifach:
user image

Dwa zestawy funkcji do obsługi ciastek, bo jeden chyba sprawiał problemy:
user image


edytowany 1x, ostatnio: dzek69
no_solution_found
a myślałem, że to co widziałem u hindusów to już jest szczyt
SW
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:426
8

WTF!???????!!!!!!!!!!!????????

Kopiuj
public static boolean isCurrentTimeBetween(Date startTime, Date endTime)
	{
		boolean result = false;		
		
		Date currentTime = new Date();
		
		SimpleDateFormat dateFormatter =  new SimpleDateFormat(LONG_DATE_FORMAT);
		SimpleDateFormat timeFormatter =  new SimpleDateFormat(TIME_FORMAT);
		
		String formattedTime =  dateFormatter.format(currentTime);
		String [] values = formattedTime.split(":");
		
		int currentDay = Integer.parseInt(values[0]);
		int currentMonth = Integer.parseInt(values[1])-1; 
		int currentYear = Integer.parseInt(values[2]);  
		
		int currentHour = Integer.parseInt(values[3]);
		int currentMins = Integer.parseInt(values[4]);
		int currentSecs = Integer.parseInt(values[5]);
		
		int startHour = 0;
		int startMins = 0;
		int startSecs = 0;
		
		int endHour = 0;
		int endMins = 0;
		int endSecs = 0;
		
	
		if(startTime!=null && endTime != null)
		{
			formattedTime = timeFormatter.format(startTime);
			values = formattedTime.split(":");
			startHour = Integer.parseInt(values[0]);
			startMins = Integer.parseInt(values[1]);
			startSecs = Integer.parseInt(values[2]);
			
			formattedTime = timeFormatter.format(endTime);
			values = formattedTime.split(":");
			endHour = Integer.parseInt(values[0]);
			endMins = Integer.parseInt(values[1]);
			endSecs = Integer.parseInt(values[2]);
			
		}
		else
		{
			/*
			 * If start end time not specified, use current date as start and end time
			 */
			startHour = Integer.parseInt(values[3]);
			startMins = Integer.parseInt(values[4]);
			startSecs = Integer.parseInt(values[5]);
			
			endHour = Integer.parseInt(values[3]);
			endMins = Integer.parseInt(values[4]);
			endSecs = Integer.parseInt(values[5]);
		}
		
		GregorianCalendar startCal = new GregorianCalendar(currentYear, currentMonth, currentDay, startHour, startMins, startSecs);
		GregorianCalendar endCal = new GregorianCalendar(currentYear, currentMonth, currentDay, endHour, endMins, endSecs);
		GregorianCalendar currentCal = new GregorianCalendar(currentYear, currentMonth, currentDay, currentHour, currentMins, currentSecs);
		result = (currentCal.compareTo(startCal)>=0) && (currentCal.compareTo(endCal)<=0);
		return result;
	}
Zobacz pozostałe 3 komentarze
SW
w projekcie do ktorego trafilem z wieloma Hindusami gdzie probka kodu byla juz 2 posty wyzej... jestem nowy w projekcie i nawet tych kwiatkow nie szukam, wystarczy otworzyc jakakalwiek klase...
merlinnot
Ej może oni to robią dla żartu, dla nowych w projekcie, a tak na poważnie mają jakieś drugie repo? Bo przecież żaden człowiek nie może być aż tak...
SW
To by im się żart udał... :P
katelx
spotkalam kiedys cos bardzo podobnego, ale dodatkowo parametry funkcji byly typu String :)
datdata
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 7 lat
  • Postów:957
7

Praca w Azji.


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:10 miesięcy
  • Postów:1788
2
Kopiuj
    /**
     * @deprecated use setDocumentID() instead
     * @param int $id the document ID
     * @return fluent interface
     */
    public function setId($id)
    {
        $this->_id = $id;
        return $this;
    }

// Ok ....

// exception 'BV_Exception' with message 'Call to undefined method setDocumentID

Ktoś chyba próbował refactoringu ale się poddał

edytowany 3x, ostatnio: Desu
0

user image

DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:10 miesięcy
  • Postów:1788
0

WTF

Kopiuj
/**
    * Closes dialog and adds response function
    * 
    * @param        string [$eval]
    */
    public function dialogResponseClose($eval = null){
        $this->dialogResponse($eval);
        $this->dialogRefresh('ok'); 
    }
Sarrus
Czy tylko ja nie wiem o co chodzi?
DE
$eval to nic innego jak string 'function(){dialogRegistry.get(0).dialog(&quot;refreshDialog&quot;);}'. Poza tym czy parametr ok Ci coś mówi? To jest $url=null. Jak takie coś pojawia się co 2 kroki, to zaczynam się zastanawiać kto to pisał.
dzek69
Zwracanie kodu JS z serwera do eval-owania po stronie klienta to popularna rzecz (trochę jak JSONP). Nie wiem gdzie tu jakiś WTF, może kontekstu brakuje do zrozumienia o co Ci chodzi.
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
3

albo ze mna jest cos zle, albo to jest duzy WTF :D

Mam za zadanie zrobic przycisk ktory czysci dane ze wszystkich tabel. Baza danych to influxDB. Oczywiscie dokumentacja/google nie pomaga. Jest jedno rozwiazanie.

show MEASUREMENTS i w zaleznosci to co zwroci zrobic
drop measurment from (...) gdzie ... jest nazwa measurments (a mam ja z pierwszego polecenia) (bo nie ma delete, trzeba po prostu zdropowac)

co uslyszalem?
Wez zrob drop database

przez chwile myslalem, ze ze mnie robia zarty, ale nie! Mam zrobic Drop database

I w sumie drop database mam zrobic dla sql servera takze :D

A... rozwiazanie wydaje sie dzialac... jednak czuje, ze beda duze konsekwencje z tym.

Zobacz pozostałe 2 komentarze
kate87
@EroSanin +1 naprostsze rozwiązania są najlepsze ;)
fasadin
@Koziołek rozwiazanie dziala, poniewaz influxdb posiada swoj obraz bazy i moge ja zdropowac a on sam zbuduje wszystko od poczatku. Problem pojawia sie gdy beda jakies "wlasne" tabele. Wtedy influxdb ich nie odtworzy. na razie ich nie mamy ale cholera go wie czy za 2-3 lata ich nie bedzie... wtedy bedzie bug :D i dosc ciezki do wykrycia
Koziołek
@fasadin, no to jeszcze jakiś liqubase czy insze coś do zarządzania bazą by robiło update za każdym startem tzn. dopisywało brakujące tabele.
fasadin
znajac ich powiedza ze nie jest potrzebne i nie ma sensu tego robic bo za duzo czasu zajmie ;)
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

A nie mozesz zrobić truncate na każdej tabeli skoro nie chcesz dropować bazy? Ale jeśli faktycznie masz skasować wszystkie dane to nie widzę problemu ze zrobieniem dropa, ale taki guzik opatrzyłbym 3 dialogami "czy jesteś pewien", koniecznością wpisania 70-znakowego kodu i przekręceniem jednocześnie 2 kluczyków. Bo jak klient przypadkiem kliknie to wiesz :D


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
Zobacz pozostałe 2 komentarze
fasadin
influxdb nie posiada truncate z tego co widze
fasadin
ah i klient nie bedzie mial do tego dostepu. Serwisanci beda mieli do tego dostep. Nadal... drop database wydaje sie... dziwne
Shalom
@fasadin czekaj na pierwsze zgłoszenie z serii Jak odwócić działanie tego guzika bo właśnie skasowaliśmy klientowi bazę. Jak to sie NIE DA?! ;)
fasadin
a to przeciez wiem, ale... co ja tam bede sie klocil... ;)
somekind
Truncate chyba nie działa (a przynajmniej nie powinien), jeśli ma się, tak popularne na naszym forum, "relacje między tabelami". ;)
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:10 miesięcy
  • Postów:1788
2

Myślałem, że po zobaczeniu kolumny w tabeli pod tytułem is_wielka_plyta i molested unmolested jako zatruty nic mnie już nie zdziwi, a tu proszę:

Kopiuj
public function getRodzajFromView() {

// ...

return $rodajs // nawet odmienił
}
caer
język polski w projekcie domen jest niestety dość często używany, ale rodzajs to już faktycznie przegięcie
Sarrus
Brzmi jak zapytania z pierwszego roku studiów: SELECT wódka FROM lodówka :D
flowCRANE
Tam jest literówka - $rodajs - brakuje z
3

Duże korpo. W projekcie mamy politykę zero warningów. Jak ominąć warning kompilatora deprecated conversion from string constant to 'char'* i stworzyć tablicę 10 elementów. Nie pisane przez hindusa ani praktykanta...

Kopiuj
const std::string account = user + "@" + hostname;
std::vector<char *> commandVector;
commandVector.push_back(const_char<char*>("ssh"));
commandVector.push_back(const_char<char*>(account.c_str());
commandVector.push_back(const_char<char*>("-oBatchMode=no"));
commandVector.push_back(const_char<char*>("-oPubkeyAuthentication=no"));
commandVector.push_back(const_char<char*>("-oStrictHostKeyChecking=no"));
commandVector.push_back(const_char<char*>("-oNumberOfPasswordPrompts=1"));
commandVector.push_back(const_char<char*>("-oConnectTimeout=2"));
commandVector.push_back(const_char<char*>("-oUserKnownHostsFile=/dev/null"));
commandVector.push_back(const_char<char*>("version"));
commandVector.push_back(NULL);
char **command = &commandVector[0];
execvp(command[0], command); //should return here if everything fine
exit(-1); //something went wrong
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
2

zawsze sprawdzaj w dokumentacji mowili...

http://advosol.com/manuals/opcdanet/topic314.html

mowili ze All oznacza wszystko...

spedz 3 godziny prywatnego czasu (niewazne dlaczego) na zrobieniu paginacji zeby nie pobieralo 100k rekordow na raz...

okazuje sie ze All pobieraje jedynie dzieci od Parenta (ale nie dzieci dzieci...)

okazuje sie, ze teraz mozna zrobic lazy loading i to bardzo latwo...

okazuje sie, ze deadline jest dzisiaj :D

Sarrus
Innych definicji All jest więcej: https://msdn.microsoft.com/pl-pl/library/wdka673a(v=vs.110).aspx - usuwa wszystkie, ale spełniające kryteria ;D
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Wrocław
4

user image


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
Zobacz pozostałe 7 komentarzy
xeo545x39
Toż to jest Int32.Max
somekind
@Koziołek, właściwie to ja mam już licencję. Chociaż po tych ich zmianach, nie wiem w końcu, czy ona jest wieczna, czy nie.
dzek69
Jest ona na rok. Jeżeli jej nie przedłużysz to będzie ważna na wieczność, ale tylko na wersję, która dostępna była w momencie zakupienia licencji, nie jej zakończenia (niestety).
Azarien
no jest, ale jak popełnić takiego buga? chyba że to miała być magiczna wartość, a potem ktoś o tym zapomniał.
somekind
Obsługa błędów magicznymi kodami, a potem odjęcie wartości kodu (-1) od faktycznej liczby dni do końca triala?
satirev
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 4 lata
1

Na PS4 inet_ntoa to funkcja o nazwie *Aton, a inet_aton to *Ntoa ; >

edytowany 2x, ostatnio: satirev
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)