Błędne wartości pól przy UNION w mysql

Gdy w mysqlu używasz union w zapytaniu, pamiętaj, by pola we wszystkich selectach były w tej samej kolejności nawet, gdy używasz AS.

SELECT 1 AS foo, 2 AS bar UNION SELECT 3 AS bar, 4 AS foo

Drugie „foo” będzie miało wartość 3, a nie, jak można by oczekiwać, 4.

55[1]

Więcej...

Usuwanie widoków po zakończeniu animacji

Aby usunąć View z jego ojca po zakończeniu animacji, wykonaj post do jego ojca by funkcja wykonana została w wątku UI:

@Override
public void onAnimationEnd(Animation a) {
    final RelativeLayout view= (RelativeLayout) findViewById(R.id.view);
    ((RelativeLayout) view.getParent()).post(new Runnable() {
        public void run() {
            ((RelativeLayout) view.getParent()).removeView(view);
        }
    });
}
Więcej...

w3c trolluje webmasterów

Jest sobie api w html5, które służy do obsługi elementów multimedialnych, „media elements api”. Spróbujcie zapytać przeglądarkę, czy jest w stanie odtworzyć dowolny rodzaj pliku wideo. Służy do tego metoda canPlayType(type). Zwraca ona jedną z trzech wartości. Pusty ciąg znaków („”), możliwe („maybe”) i prawdopodobne („probably”). Cytując Chrisa Heilmanna z Mozilli, „albo webmasterzy zostali strollowani przez w3c na bardzo wysokim poziomie, albo dlaczego to w ogóle tam jest? To jest marnowanie mojego czasu, niepotrzebne mi api, które na pytanie „czy to działa?” odpowie „możliwe” – to nie jest api”. Dla wszystkich żyjących w czasach true / false to nie do pomyślenia.

Więcej...

Porównywanie stringów w Javie

Pierwszą rzeczą, której należy się oduczyć, ucząc się programowania na platformę Android, to porównywanie ciągów znaków za pomocą ==. Na przykład:

String test = "foo"; 
return test.substring(0,1) == "f";

– zwróci false.

return test.substring(0,1).equals("f");

zwróci natomiast true.
Tak, Panie i Panowie, porównujemy ciągi znaków w Javie.

Więcej...

Recycling w programowaniu

Bądź ekologiczny, używaj puli obiektów!

Jeśli podejrzewasz, że użyjesz obiektu danego typu w niedalekiej przyszłości, nie usuwaj go, schowaj go to tablicy i w razie potrzeby wyciągnij go stamtąd zamiast tworzyć nowy obiekt i wyresetuj jego właściwości.

activeParticles = new Array(); 
particlePool = new Array(); 
 
if (particlePool.length == 0) { 
    particle = new Particle(); 
} else { 
    particle = particlePool.pop(); 
} 
activeParticles.push(particle); 
animateParticle(particle); 
activeParticles.remove(particle); 
particlePool.push(particle);
Więcej...

Jak widzieć w ciemnościach?

Jeśli w nocy budzisz się i idziesz do toalety, gdzie zapalasz światło, pozostaw jedno oko cały czas zamknięte (lub zasłoń je ręką). Gdy zgasisz światło, odsłoń oko.

Nie odzwyczai się ono od ciemności, więc będziesz lepiej widzieć.

Więcej...

Notice: Undefined variable

W PHP korzystaj z if($zmienna) {} TYLKO gdy masz pewność, że $zmienna została wcześniej zdefiniowana.

Na niektórych serwerach (ustawienie Apache a przykład: error_reporting: E_ALL) interpreter wywali Notice: Undefined variable.

Gdy nie masz pewności, czy $zmienna jest zdefiniowana a sprawdzasz ją pod kątem TRUE / FALSE, użyj if(!empty($zmienna)) {}. Pamiętaj, że jeśli $zmienna == 0 to $zmienna jest empty(), więc nie sprawdzaj tym sposobem, czy zmienna została zdefiniowana. Użyj do tego if(isset($zmienna)) {}.

Więcej...

Eksport osadzonych grafik z illustratora

Illustrator nie umożliwia edycji ani eksportu osadzonych grafik w pliku ai / pdf. Istnieje jednak banalna sztuczka, by wyeksportować wszystkie grafiki z pliku. Wystarczy otworzyć plik w Illustratorze i zapisać go jako format SVG, zaznaczając opcję „Łącze” w opcjach eksportu dla grafik.

Więcej...

Wybór warstwy pod pikselem w Photoshopie

Prawdopodobnie jedno z rzadziej używanych przez osoby korzystające ze skrótów klawiaturowych narzędzi w Photoshopie, „Przesunięcie” (skrót: V), gdy w belce opcji narzędzia wybierzemy „Auto-zaznaczanie: Warstwa” staje się jednym z najczęściej używanych, w szczególności, gdy projekt otrzymaliśmy od osoby, która nie ma w zwyczaju grupować ani nazywać warstw. Wystarczy kliknąć lewym na wybrany piksel, a warstwa wierzchnia zostanie automatycznie wybrana!

Więcej...
< >