Rafał Toboła

Razor s.c. - współwłaściciel

Wypowiedzi

  • Rafał Toboła
    Wpis na grupie Bazy Danych w temacie postgreSQL i indeksy
    10.08.2012, 11:50

    Aha zapomniałbym, jak zobaczyć jakie są dostępne operatory masz napisane tutaj:
    http://www.postgresql.org/docs/9.1/interactive/indexes...

  • Rafał Toboła
    Wpis na grupie Bazy Danych w temacie postgreSQL i indeksy
    10.08.2012, 11:43


    # CREATE TABLE cokolwiek(id serial, cokolwiek text);

    # CREATE INDEX cokolwiek_postgres_specific_index
    ON cokolwiek
    USING btree
    (lower(substr(cokolwiek, 1, 5)) varchar_pattern_ops);;
    CREATE INDEX
    # EXPLAIN ANALYZE SELECT * FROM cokolwiek WHERE lower(substr(cokolwiek, 1, 5)) LIKE 'testo%';
    QUERY PLAN
    ----------------------------------------------------------------------------------------------------------------------------------------------
    Bitmap Heap Scan on cokolwiek (cost=90.94..4979.02 rows=4155 width=15) (actual time=0.084..0.085 rows=1 loops=1)
    Filter: (lower(substr(cokolwiek, 1, 5)) ~~ 'testo%'::text)
    -> Bitmap Index Scan on cokolwiek_postgres_specific_index (cost=0.00..89.90 rows=4155 width=0) (actual time=0.058..0.058 rows=1 loops=1)
    Index Cond: ((lower(substr(cokolwiek, 1, 5)) ~>=~ 'testo'::text) AND (lower(substr(cokolwiek, 1, 5)) ~<~ 'testp'::text))
    Total runtime: 0.123 ms
    (5 wierszy)


    Jeżeli zrobiłbyś tylko:
    CREATE INDEX cokolwiek_idx ON cokolwiek(lower(substr(cokolwiek, 1, 5))


    to by z indeksu nie skorzystało... A raczej skorzystało by, ale tylko w przypadku " LIKE 'testo' " lub " = 'testo' ", czyli bez wildcardów. Ogólnie to chyba potrzebujesz oba indeksy, na 99% potrzebujesz taki ,,normalny'' do ,,=''.

    W tabelce jest trochę danych wygenerowanych losowo:


    # SELECT count(*) FROM cokolwiek;
    count
    --------
    831027
    (1 wiersz)


    Jakby nadal nie działało, to pamiętaj o takich poleceniach jak VACUUM, VACUUM ANALYZE, ANALYZE.

    Jakby co to pisz, w postgresie spotkałem się już z taką ilością ,,losowych'' zdarzeń, że pewnie będę w stanie pomóc ;-).

  • Rafał Toboła
    Wpis na grupie Bazy Danych w temacie Data Warehouse - Co polecacie?
    10.08.2012, 10:40

    Tomasz B.:
    Teraz to tak jest że w programie mam pętle gdzie sobie czytam w kółko z każdej z osobna dane, analizuję podejmuję działania. Lipa jest taka że te bazy danych mają różną strukturę i dla jednej mam zapytanie select a,b from z a na innej mam select b,a from d.

    Jeżeli to jest największy problem, to może po prostu naklikaj w każdej z baz widoki, które ujednolicą nazwy i kolejności kolumn, wtedy będziesz miał zawsze te same zapytania a łączył się do różnych baz.

  • Rafał Toboła
    Wpis na grupie PostgreSQL w temacie projekt z PostgreSQL
    7.03.2012, 08:36

    Jak już przeparsujesz sobie pliki konfiguracyjne, to możesz to po prostu zrobić przez psql:


    psql -U user baza -c 'INSERT INTO ....'

  • Rafał Toboła
    Wpis na grupie Symfony w temacie [sf 1.4] admin generator i uprawnienia dla sekcji 'edit'...
    7.03.2012, 08:30

    Możesz przesłonić odpowiednio po prostu metodę linkToDelete w nazwa_modułuGeneratorHelper. Jest trochę takich rzeczy, których chyba ,,niedokończyli'' ;-), albo po prostu zapomnieli, np. jak ustawisz na konkretne pole credentialsa, to na liście się schowa, w formularzu ukryje i nikt nie wie o co chodzi :-). Przy okazji

     title: <?php echo $i18n->__("Edycja artykułu - %%title%%")."\n"; ?> 
    zdaje się ze tytuły tak czy siak lecą w i18n, także bez sensu że to 2x odpalasz.

    Ogólnie to polecam zrobić sobie własny theme do admin-generatora na podstawie istniejącego i poprawić po prostu takie rzeczy.

  • Rafał Toboła
    Wpis na grupie PHP w temacie Pomysł na serwer
    7.03.2012, 08:16

    Polecam jeszcze zerknąć na ofertę statnet.pl, sam korzystam od ponad roku i jestem zadowolony.

  • Rafał Toboła
    Wpis na grupie PHP w temacie Jak zrobić przekierowanie .htaccess 301 www.domena.pl/pl...
    8.12.2011, 10:14

    Do analizowania tego co się dzieje, warto sobie włączyć RewriteLog.
    http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#...

  • Rafał Toboła
    Wpis na grupie PHP w temacie Jak zrobić przekierowanie .htaccess 301 www.domena.pl/pl...
    4.12.2011, 22:02

    Musisz skorzystać z RewriteCond, coś w stylu:


    <IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} !^admin/
    RewriteRule ^pl/(.*)$ /$1 [R=301,L]
    </IfModule>

  • Rafał Toboła
    Wpis na grupie jQuery w temacie jquery.live - load?
    15.11.2010, 22:37

    Jeżeli są wgrywane później, to pewnie przez AJAX? Może skorzystać z ajaxStop?

  • Rafał Toboła
    Wpis na grupie C and C plus plus w temacie [Zagadka] - odwracanie C-stringa w jednym przebiegu
    3.09.2010, 16:54

    Skoro z rekurencją, to może tak:


    void reverse(char *str) {
    if ((*str)!='\0')
    reverse(str+1);
    printf("%c", str[0]);
    }

    Taki żart oczywiście :-).

  • Rafał Toboła
    Wpis na grupie jQuery w temacie Accordian z UI - nie działa po przeładowaniu AJAX-em
    3.09.2010, 15:26

    Najprościej zrób tak, w tej funkcji co ajax-em coś pobiera.


    jQuery('#accordion').accordion('destroy');
    jQuery.get( ... );
    jQuery('#accordion').accordion();

    W skrócie: wywalasz stary, pobierasz nowy content i robisz nowy.

  • Rafał Toboła
    Wpis na grupie Programiści WWW w temacie Hosting 1&1 wchodzi do Polski - 2 lata za darmo
    31.08.2010, 22:52

    Jak masz funkcję


    function a() {
    echo 'hello';
    }

    i napiszesz

    echo a();

    zamiast

    a();

    to faktycznie zadziała, ale ja też nie uznałbym tego za poprawne ;-).

  • Rafał Toboła
    Wpis na grupie Programiści WWW w temacie Przeglądarka PDF na stronę internetową
    31.08.2010, 18:29

    To samo co powyżej można też zrobić tak:


    <?php
    $file = new Imagick();
    $file->readImage('file.pdf');
    $file->writeImage('file.jpg');
    $file->clear();
    $file->destroy();

    Jeżeli mamy na serwerze w php.ini włączoną obsługe image magick-a.

  • Rafał Toboła
  • Rafał Toboła
    Wpis na grupie jQuery w temacie wielowykonywalność
    13.08.2010, 02:11

    Zauważyłem jeszcze jedną rzecz:


    // to
    $("input[id ^= 'sk']").click(
    // chyba miało być tak:
    $("input[id ^= 'sk']").click(function(){


    Ale mniejsza o to, coś się pewnie wycięło. Wywołanie tego JS może być albo powtarzalne, albo nie, w zależności od tego czy poprzez ,,$("input[id ^= 'sk']")'' dopasowujesz jednego inputa czy wiele. Sytuacja którą opisałeś wygląda tak jakbyś dał:


    <input id='sk1'/>
    <script>$("input[id ^= 'sk']").click( ... );</script>
    <input id='sk2'/>
    <script>$("input[id ^= 'sk']").click( ... );</script>
    <input id='sk3'/>
    <script>$("input[id ^= 'sk']").click( ... );</script>


    co spowoduje że po kliknięciu każdego z tych trzech inputów funkcja w click(...) wywoła się trzy razy.

    a powinno być albo:


    <input id='sk1'/>
    <input id='sk2'/>
    <input id='sk3'/>
    <script>$("input[id ^= 'sk']").click( ... );</script>


    co daje jednorazowe podpięcie ,,click'' pod wszystkie inputy na raz, albo:


    <input id='sk1'/>
    <script>$("#sk1").click( ... );</script>
    <input id='sk2'/>
    <script>$("#sk2").click( ... );</script>
    <input id='sk3'/>
    <script>$("#sk3").click( ... );</script>


    co daje podpięcie pojedynczo jednego wywołania funkcji pod jeden konkretny input.

  • Rafał Toboła
    Wpis na grupie jQuery w temacie wielowykonywalność
    12.08.2010, 13:13

    Opisana przez Ciebie sytuacja wygląda tak, jakbyś ten kod JS który podałeś wstawił w jakiegoś foreach-a w którym tworzysz wszystkie wiadomości i powstaje coś w stylu:

    wiadomość1
    js
    wiadomość2
    js

    Wtedy na zdarzenie wywoła się tyle razy ile razy zostało podpięte :-).

  • Rafał Toboła
    Wpis na grupie Bazy Danych w temacie Dane geograficzne a czysty Postgres
    11.08.2010, 00:15

    Skoro czysty Postgres, to może typy geometryczne, np. POINT:

    http://www.postgresql.org/docs/8.4/interactive/datatyp...
    +
    http://www.postgresql.org/docs/8.4/interactive/functio...

    Przykład:


    CREATE TABLE test(id serial, latlng POINT);
    INSERT INTO test(latlng) VALUES ('(10.0,20.0)'), ('(100.0,200.0)');
    SELECT id, latlng, latlng<->'(0.0,0.0)' AS distance from test WHERE (latlng<->'(0.0,0.0)')<23;
    id | latlng | distance
    ----+---------+------------------
    1 | (10,20) | 22.3606797749979

  • Rafał Toboła
    Wpis na grupie PHP w temacie Budowa Frameworków
    24.05.2010, 12:12

    http://www.phppatterns.com/docs/?idx=design - beznadziejna grafika, ale warto zajrzeć. Szczególnie ciekawe jest: http://www.phppatterns.com/docs/design/hello_world_in_... :-).

  • Rafał Toboła
    Wpis na grupie Django w temacie Hosting dla django
    5.05.2010, 05:55

    Też polecam vipserv.org. Nie próbowałem w prawdzie z Django, ale ruby on rails śmiga bez problemu. Jakbyś miał problemy, czegoś by brakowało, to administratorzy na pewno posłużą pomocą :-).

  • Rafał Toboła
    Wpis na grupie Adobe Flash w temacie [as 3.0] dynamiczna galeria problem z preloaderami
    18.04.2010, 21:11

    Nie wiem czy dobrze zrozumiałem pytanie, ale event przekazany do metody progress ma takie pole jak currentTarget. Możesz wrzucać loadery do jakiejś tablicy jednocześnie do drugiej wpisywać zera, a w metodzie progress(event:ProgressEvent) dać
    var idx:Number = tablica.indexOf(event.currentTarget);
    i teraz
    druga_tabilca[idx] = event.bytesLoaded*100/event.bytesTotal;
    W drugiej tablicy masz chyba to o co pytasz :-).

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do