Kamil Szot

PHP, JavaScript - rozwiązywanie problemów. limeline.pl

Wypowiedzi

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    24.08.2009, 10:39

    Maciej Filipiak:
    Kamil Szot:
    Programiści open source robią to co lubią i żeby zrobili coś co wy chcecie musicie sprawić, żeby to polubili, nie wystarczy, że im każecie i dacie coś za fatygę.

    No i odpowiedziałeś sobie - dlaczego linux odpada w przedbiegach.

    Jak już mam płacić i wymagać to lubię wiedzieć komu i za co i od kogo wymagać. I jeszcze kompleksowo.

    No cóż. To tak po prostu nie działa. Ogólnie rzecz biorąc w ten sposób można kupować ziemniaki, albo licencje albo czyjś czas, ale nie wartościowe oprogramowanie.

    Zresztą w w przypadku ustalania nagrody za załatanie konkretnej dziury wiesz dokładnie ile zapłacisz i za co, a komu dowiesz się natychmiast jak ktoś się podejmie.
    A kto tworzy linuxa ?

    OS to tysiące podprogramików, każdy innego autora.

    "Wystarczy wgrać patcha" - super. Ale kto daje gwarancję ?

    Oprogramowanie komercyjne też jest bez gwarancji. Każda EULA to między innymi zgodzenie się na to, że nie możesz niemal niczego od nikogo wymagać nawet jeżeli soft wybuchnie Ci w twarz.

    Soft to po prostu zbyt niepewna rzecz, żeby ktoś Ci dał gwarancję, że będzie działał. Tak samo lekarz nie da Ci gwarancji, że Cię wyleczy. Może tylko dochowywać należytej staranności co może oznaczać bardzo różne rzeczy.

  • Kamil Szot
    Wpis na grupie PHP w temacie Pomocy :)
    24.08.2009, 04:03

    Michał Ławicki:
    Kamil Szot:
    Koniecznie przepuść to co przychodzi z $_GET-a przez mysql_escape_string() albo jeszcze lepiej przez mysql_real_escape_string()
    z tego co widzę to przesyłane wartości zmiennej to inty tak więc nie ma sensu korzystać z mysql_real_escape_string, które jak nazwa wskazuje służy do pracy ze stringami :) wystarczy spr czy zmienna == int albo po prostu rzutowac na inta :)

    mysql_real_escape_string() robi to dokładnie to co powinno niezależnie od typu danych jaki tej funkcji podasz, mianowicie zabezpiecza wartość tak, żeby można ją bezpiecznie wkleić w kwerendę mysql-a

    Nawet jeżeli w tej chwili przekazywany jest akurat int i rzutowanie było by prostsze to znacznie lepiej zastosować mysql_real_escape_string dlatego, że typ przekazywanej danej może się kiedyś zmienić oraz dlatego, że korzystania z tej funkcji w komunikacji z mysql-em powinno wejść w nawyk każdemu phpowcowi.

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    24.08.2009, 00:40

    Sebastian Pienio:
    Kamil Szot:
    W tym sensie oprogramowanie Open Source jest supportowane znacznie lepiej niż oprogramowanie komercyjne więc raczej nie o to w politycznych decyzjach chodzi.

    Nie zgodzę się, tym sensie open source praktycznie nie oferuje niczego porównywalnego. Merge bugfixów z trunka z oczywistych względów nie jest akceptowalne. Patrz też sytuacja z hotfixami poniżej.

    Wystarczy aktualizować. To co MS łata i wypuszcza kanałami supportu w open sourcowym oprogramowaniu staje się po prostu częścią kolejnej rewizji danego releasea. Jeżeli bug jest bardzo świeży i dobrze izolowany wtedy merge rewizji, które go poprawiają z trunka jest jak najbardziej sensowną opcją. Jakie oczywiste względy wg. Ciebie coś takiego skreślają?

    Zdarzało mi się znajdować znane błędy wiszące od lat w oprogramowaniu ze stajni MS. Coś takiego sprawia, że bardzo trudno mi uwierzyć w jakość ich supportu rozumianego jak usuwanie usterek dostrzeżonych w ich oprogramowaniu.
    Parę razy mieliśmy sytuacje, gdzie open sourcowe komponenty miały poważne błędy, a na requesta "zapłacimy za czas, naprawcie" otrzymaliśmy (w 100% przypadków!): "nie jesteśmy waszymi pracownikami, chcecie, naprawcie sami i prześlijcie nam poprawki kodu".

    Proponowaliście może jakieś rozsądne kwoty? Porównywalne z ceną licencji korporacyjnych na produkty MS? Czy chcieliście płacić po 10$ za godzinę? Sądzę, że wasze doświadczenia byłby by zupełnie inne gdybyście sformuowali wasze requesty w postaci "Proponujemy 20000$ nagrody za usunięcie buga #123123123". Programiści open source robią to co lubią i żeby zrobili coś co wy chcecie musicie sprawić, żeby to polubili, nie wystarczy, że im każecie i dacie coś za fatygę.
    Wiesz, jak kiepskiej jakości jest to kod i ile kosztuje realnie jego naprawa? Fortunę!

    I fortunę trzeba za to płacić. MS od open source różni się tylko tym, że trudno Ci się dowiedzieć jak kiepskiej jakości jest ich kod i płacisz nie tylko za jego naprawianie.
    W dużych firmach siedzą całe zespoły analityków, księgowych, którzy sporządzają dziesiątki, setki raportów, podsumowań i wg ich wyliczeń używanie Open Source wcale nie jest tańsze czy prostsze.

    Z open sourcem zabawne jest to, że jego możliwości rosną w czasie więc badania sprzed pięciu lat nie są aktualne dziś, a badania dzisiejsze nie będą aktualne za pięć lat.

    Duże firmy cierpią generalnie na większość przypadłości, na które cierpią urzędy. Danie w prezencie analitykowi zegarka za 2 tys. złotych, żeby pozytywnie zaopiniował zakup jakiegoś softu, nie jest niczym dziwnym. Jeżeli na daną rzecz jest przeznaczonyw budżecie milion złotych to metoda jego wydania jest wybierana ze względu na dwa kryteria: 1. Jak łatwo będzie przeprowadzić całą operację od strony biurokratycznej 2. Jak łatwo uszczknąć coś z tego miliona dla siebie, swoich krewnych, znajomych i protegowanych.
    Wierz mi, że gdyby tak było to już dawno tego by używali.

    Nie. Bo dawno temu open source był znacznie gorszy niż jest teraz. Dziesięć lat temu nie używałem linuksa bo był fatalny. Teraz nie potrafię znaleźć na rynku niczego lepszego.
    Biorą pod uwagę takie rzeczy jak ryzyko technologiczne, dostępność wysokiej klasy programistów, konsultantów, supportu, integracja z innymi technologiami i systemami itepe itede.

    Ehhh... Wyglądasz na bardzo przekonanego. Gdyby tak było to, żadna firma powyżej pewnego poziomu zamożności nie tykała by opensource-a nawet dwumetrowym kijem. Giganci software-u jakoś jednak to robią.
    Możemy bić pianę, ale w większym biznesie rządzi na chwilę obecną Microsoft

    Oczywiście.
    i - z całym sentymentem do Linuxa czy MacOsX - uważam, że nie ma póki co dla niego alternatywy.

    To chyba zależy od konkretnego przypadku. Londyńska giełda np. musi znaleźć alternatywę bo to co oferuje MS jest dla niej zbyt beznadziejne.
    Mała dygresja: zastanawiałem się kiedyś jakie musi być "tło" Linuxa do tego, żeby realnie można było go zaoferować jako alternatywę operacyjną dla firmy.

    Zazwyczaj alternatyw szuka się dopiero wtedy kiedy to co się ma się nie sprawdza. Myślę, że wystarczy, żeby firma nie miała pieniędzy w budżecie na kolejny haracz dla MS. Albo żeby mocno umoczyła posługując się oprogramowaniem, którego jakość okazała się być znacznie niższa niż zapewniał sprzedawca, tak jak to się zdarzyło w przypadku lodnyńskiej giełdy.

    Dopóki są pieniądze i całość działa "jakoś" to nie ma powodu, żeby robić fale.
    Ciekawe jest to, że odpada on w przedbiegach przy konkurencji:
    - Microsoft SBS Server (IIS + exchange + domena lokalna + hosting plików + hosting terminal server + SqlServer)
    - MS Outlook + MS Word + MS Excel + MS Access (integracja z domena, exchange i baza)
    Zastanów się obiektywnie ile z tej funkcjonalności jest dostępne w Linuxie dla człowieka zakładającego małą firmę?

    Zastanów się obiektywnie ile z tej funkcjonalności jest potrzebne człowiekowi zakładającemu firmę. Natomiast pieniądze, które miałby wydać na MS na pewno bardzo mu się przydadzą.

    Jak to jest, że ludzie dostają accessa w pakiecie, a swoje dane trzymają jednak w excellu? Miałem kiedyś przyjemność z pewną fabryczką której cały ERP opierał się na excellowych plikach umieszczonych na dysku dostępnym przez otoczenie sieciowe. W zasadzie to z nawet z dwoma z zupełnie różnych branż. :-)
    Do tego w wizardzie MS możesz to odpalić w dosłownie 30 minut. Serwer Della z tą licencją kupisz za £1200-£1500.
    Mało tego, bo jak firma się rozrasta:
    - SAGE
    - SAP SB
    - MS BizTalk
    - MS CRM
    - redundant Ms Sql
    i ciągle wszystko działa razem i bez problemu integruje się z tym co już masz. Pomyśl sobie, że w średniej czy dużej firmie jest tego 10x tyle.

    Zapewne masz rację.
    No tak, tylko kto napisze porównywalny soft na linuxa (powiedzmy tylko pierwszy etap) za darmochę?

    Wydaje mi się, że nawet po kilka otwartych odpowiedników jest dostępnych dla każdego komponentu który wymieniłeś w "pierwszym etapie". Może nie osiągnęły jeszcze one stopnia interoperacyjności jaki mają produkty microsoftu, ale poprzez nacisk na otwarte protokoły i otwarte standardy dokumentów wszystko idzie w tą stronę.
    Jak będzie dostępny to założę się, że po roku będziemy rozmawiali o tym ILE CZASU jeszcze Windows się utrzyma w firmach, a nie dlaczego jest NIE DLA LINUXA :)

    Heh. Dla mnie to jest od jakiegoś czasu kwestia nie "czy" ale "kiedy". Nieuchronność wynika dla mnie z prostego faktu, że opensource nie zapomina wcześniejszych doświadczeń i wymienia informacje w zasięgu globalnym, a closed source istnieje tylko w ramach jednej firmy i najlepsze co może je czekać to zginięcie bez śladu wraz z nią. Tak więc dla mnie wyparcie oprogramowania closed source przez opensource na rynku powszechnie używanych aplikacji jest nieuchronną konsekwencją ewolucji i wolnego rynku. Oczywiście każdy kto na tym zarabia stara się jak może, żeby to opóźnić, ale nie da się działać przeciw rynkowi bez końca.

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    23.08.2009, 21:10

    Sebastian Pienio:
    Wojciech Sznapka:
    Podaj (ty, Maciej, lub ktokolwiek inny) jakieś przykłady z własnego doświadczenia korzystania z supportu oraz jak częstotliwość takich akcji.

    Support rozumieć należy dwojako:
    1) producent dba o poprawki, bezpieczeństwo technologii i reaguje na zmieniający się rynek, dostosowując swój produkt
    2) dostarcza doraźną pomoc najważniejszym partnerom.

    Support Microsoftu, szczególnie jego Windows Update, jest, wbrew obiegowej opinii, bardzo wysokiej jakości. Daje też duże pole dostosowania instalacji (customization) w zależności od polityki firmy. A wiadomo, że to polityka decyduje o tym, ile $$$ przychodzi co miesiąc na konto.

    Co do (2) to kilka razy w ciągu ostatnich 3ech lat korzystaliśmy w hotfixów Microsoftu dla różnych komponentów (m.in. mshtml, SqlServer, usterki w .net framework). Takie hotfixy po jakimś czasie pojawiały się jako standardowe uaktualnienia, ale ich dostępność tym kanałem kilka razy "nam" uratowała życie.

    W tym sensie oprogramowanie Open Source jest supportowane znacznie lepiej niż oprogramowanie komercyjne więc raczej nie o to w politycznych decyzjach chodzi.
    Istotną informacją jest to, że w tym wszystkim tak naprawdę nie chodziło o nas, małych "żuczków programujących", tylko o problem dla firmy obracającej setkami milionów funtów. Innymi słowy to nasz klient zgłosił się do MS informując o problemie, którego nie mogą ominąć i MS dla nich tego patcha przygotował.

    Założę się, że każdy zespół rozwijający jakiś komponent open source z radością za ułamek ceny jaką kosztuje dużą firmę licencja na n stanowisk naprawiłby dowolny błąd w swoim oprogramowaniu na usunięciu, którego jakiemuś bogatemu użytkownikowi ich oprogramowania szczególnie zależy. I to zapewne w czasie, krótszym niż zajmuje firmie ze względu na brak łańcuszka marketingowo-administracyjnego.
    Na marginesie, głównym bodźcem zmiany systemu w UK jest w tym momencie wycofanie supportu dla technologii (jak np. classic ASP). O czymś to świadczy.

    Tu nie chodzi o to, że ludziom smutno, że MS przestanie odpowiadać na telefony do przyjaciela.

    Wycofanie supportu świadczy o tym, że soft umarł. Żaden nowo odkryty w nim błąd nie będzie już nigdy naprawiony. Żadna dziura w bezpieczeństwie nie będzie już nigdy załatana. Nikt tego nie zrobi ponieważ firma wycofując support oświadcza publicznie, że ma gdzieś swoich użytkowników i ich los jeżeli postanowią dalej używać danego oprogramowania. Ponieważ nie ma zwyczaju, żeby oprogramowanie, którym firma przestaje się interesować miało uwalniany kod źródłowy i przechodziło do domeny publicznej, to program dla, którego firma wycofuje support jest tonącym statkiem, w którym nikt nigdy nie załata dziur. To chyba bardzo dobry powód, żeby się z niego wynosić.

  • Kamil Szot
    Wpis na grupie PHP w temacie Pomocy :)
    23.08.2009, 17:51

    Koniecznie przepuść to co przychodzi z $_GET-a przez mysql_escape_string() albo jeszcze lepiej przez mysql_real_escape_string()

  • Kamil Szot
    Wpis na grupie PHP w temacie Notatnik dla programisty (TiddlyWiki?)
    23.08.2009, 17:46

    Ja używam do tego celu wakka wiki. Bardzo wygodne. Doku wiki też jest ok.

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    22.08.2009, 02:03

    Piotr Likus:
    A taki off do offa:
    Kamil Szot:
    Gdybym próbował używać odpowiednika Kate (np pspad-a) pod Windowsem pewnie nie wytrzymałbym tygodnia
    (ciach)

    A możesz objaśnić dlaczego? Czego Ci najbardziej brakowało w PSPadzie?

    Generalnie w edytorach windowsianych brakuje mi możliwości edytowania zdalnych plików przez ssh. Czasem obsługują ftp, ale sftp już rzadko. Fajnie także jeżeli ta obsługa jest przezroczysta i pliki lokalne i zdalne są obsługiwane w ten sam sposób.

    Dodatkowo brakowało mi podpowiadania, które po wpisaniu pierwszych trzech znaków słowa pokazuje listę słów które już znajdują się w edytowanym dokumencie i zaczynają od tych trzech znaków. Pomysł jest tak banalny, że aż trudno uwierzyć, że użyteczny, a w praktyce sprawdza się często znacznie lepiej niż ciężkie, gubiące się w dociekaniach podpowiadacze składni dla konkretnego języka.

    Przydatną sprawą jest również możliwość stosowania wyrażeń regularnych przy wyszukiwaniu i wymianie tekstu (włącznie z \1 \2 itd.) oraz możliwość złączenia kilku wierszy w jeden.

    Przydałby się też schemat kolorów z ciemnym tłem, ale tego Kate też nie ma na dzieńdobry.
    Pytam bez złośliwości, mam na swoim koncie edytor tekstu, więc jakieś wnioski mile widziane.

    Z mojej strony nie było również złośliwości po adresem PSPada. Kiedy szukałem alternatywy dla Kate to ten edytor pobił wszelkie Notepady (między innymi ze względu na obsługę różnych encodingów). Teraz jednak kiedy jestem pod windowsem to używam jedit-a, do którego jest masa pluginów w tym również takie, które realizują wymienione przeze mnie funkcje. Kiedyś odstręczała mnie jego powolność, ale od którejś wersji javy i jedita nabrał przyzwoitego tempa.

    Dobrze widzę, ze Taditor to Twoje dzieło?Kamil Szot edytował(a) ten post dnia 22.08.09 o godzinie 02:13

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    21.08.2009, 01:06

    Piotr Baranowski:

    Problemow z instalacja nie mam, wiec to w sumie nie argument.
    Problemem jest zawsze przerzucenie danych. I stworzenie systemu ktory dziala tak samo jak ten na ktorym pracowalem.

    Chyba nie tędy droga. Przesiadając się na inny system musisz przewrócić swój świat do góry nogami.

    Miałem taki epizod, kiedy próbowałem przesiąść się z linuksa na windowsa. Akurat windows był na komputerze przed którym mnie posadzono w pracy i nie chciałem marnować czasu na instalację linuksa (to było jeszcze zanim spróbowałem kubuntu, teraz bym się nie zawahał).

    Z linuksianego edytorka tekstowego Kate (który daje wrażenie jak lekki sierp, szybki, łatwy w obsłudze) przesiadłem się na Eclipse PDT, które budziło we mnie skojarzenia z ciężkim hałaśliwym, smrodzącym, psującym się traktorem (proszę bez urazy, to było jakiś czas temu i jestem pewien, że wiele z problemów na jakie się w PDT nadziałem zostało już usunięte).

    Udało mi się na tym pracować parę miesięcy dzięki temu, że narzędzie było tak bardzo inne od tego, którego używałem wcześniej. Gdybym próbował używać odpowiednika Kate (np pspad-a) pod Windowsem pewnie nie wytrzymałbym tygodnia, a tak w pracy kiedy w końcu przesiadłem się na linuksa to było to w zasadzie przy okazji, a nie dlatego, że nie mogłem już wytrzymać bez swoich ulubionych narzędzi.
    Przekonywac mnie do wyprobowania/przeniesienia sie nie trzeba, gorzej z czasem i rzeczywista potrzeba - nie widze zyskow ktore bym od razu mial, ktore zwracaly by mi czas zainwestowany w zmiane systemu.

    Pamiętaj, że oprócz tego, że komputer jest narzędziem pracy to jest także świetną zabawką, a zabawa nie musi być opłacalna. :-)
    Ale i tak, wszystko co robie sprawdzam i pisze na linuxie - na wirtualnej maszynie.

    Zanim z windowsa przesiadłem się na linuksa (dawne dzieje) używałem FoxServ-a (taka paczka apache, php, mysql), ale do pracy wirtualna maszyna z apachem na linuksie, udostępniająca windowsowi katalogi przez sambę to chyba najlepszy pomysł,Kamil Szot edytował(a) ten post dnia 21.08.09 o godzinie 01:10

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    20.08.2009, 19:12

    Piotr Baranowski:
    Ja pewnie, gdybym mial z 1 tydzien "wolnego" to bym wybral jakas dystrybucje i zainstalowal jako drugi system, a potem pewnie jako glowny.

    Polecam Kubuntu. Instalacja duużo prostsza niż windowsa xp.
    Ale jakos nie widze powodow ktore mogly by mocno przemawiac za jednym systemem, a do windy jestem przyzwyczajony :-)

    Sporo fajnego softu baardzo łatwo dostępnego jest na linuksa. Dowiadujesz się, że coś ciekawego istnieje, piszesz apt-get install i już się tym bawisz.Kamil Szot edytował(a) ten post dnia 20.08.09 o godzinie 19:15

  • Kamil Szot
    Wpis na grupie Programiści WWW w temacie Szkolenie zaawansowane programowanie w PHP i C++ nauka od...
    20.08.2009, 16:05

    Piotr Baranowski:
    Sebastian Pienio:
    A ja myślę, że to było serio :) Linux postrzegany jest w firmach jako zabawka dla PHPowców i pasjonatów.

    Nie no? W jakich firmach.
    Jasne, nie spotkalem sie jeszcze z firma, w ktorej pakuja pracownikom Linuxa do pracy.


    A ja się spotkałem z firmą, w której niemal wszyscy siedzieli na linuksach. Copywriterzy, marketerzy i customer support, o większości developerów nie wspominając. Parę windowsów też było ale raczej, żeby uszanować przyzwyczajenia niektórych pracowników.

  • Kamil Szot
    Wpis na grupie PHP w temacie Biblioteka GD - problem z utrzymaniem prześwitu
    20.08.2009, 15:40

    Może spróbuj tej funkcji:

    http://mediumexposure.com/techblog/smart-image-resizin...Kamil Szot edytował(a) ten post dnia 20.08.09 o godzinie 15:41

  • Kamil Szot
    Wpis na grupie PHP w temacie Jak łatwo nauczyć się php
    20.08.2009, 01:55

    Przemysław R.:
    to chyba nie ważne czy w pracy czy w domu
    wyrobisz ~4000 tyś godzin przed PHP z sensownymi projektami to się nauczysz

    Cztery tysiące tysięcy godzin? To jakieś 450 lat, 24 godziny na dobę. Trudne to PHP. ;-)

  • Kamil Szot
    Wpis na grupie PHP w temacie webdeveloperzy poszukiwani
    18.08.2009, 01:12

    Fajny kompozycyjnie layout strony tej firmy, szkoda, że kolory, czcionki, detale i logo psują efekt. :-)

  • Kamil Szot
    Wpis na grupie PHP w temacie PHP i baza sqlite i beznadziejna wymówka
    15.08.2009, 18:53

    Wygląda na to, że się właśnie porządnie zbłaźniłem.

    Po zajrzeniu w źródło php i paru testach okazuje się, że wbrew temu co pisałem wcześniej funkcja sqlite_escape_string konwertuje automatycznie teksty ze znakiem \0 lub zaczynające się od \1. Również funkcja decode jest wywoływana podczas pobierania danych z powrotem przy pomocy różnego rodzaju fetchów (o ile nie zabroni się tego dodatkowym parametrem).

    Funkcje sqlite_udf_encode_binary i sqlite_udf_decode_binary są przeznaczone do użycia we własnych funkcjach pisanych w php, które zamierzamy podłączyć do bazy tak, żeby dało się je wywoływać z poziomu sql-a (sqlite_create_function, sqlite_create_aggregate). Ponieważ te funkcje mogą być wywoływane dość często dla każdego wiersza w tabeli (zwłaszcza te typu aggregate) więc narzut związany z kodowaniem (szukanie zera) mógłby faktycznie być istotny. Żeby zachować symetrię w tych wypadkach również funkcja decode nie jest wywoływana automatycznie. Ponieważ definiowanie własnych funkcji to już wyższa szkoła jazdy niż zwykłe wstawianie/pobieranie danych, wykorzystywana raczej w szczególnych przypadkach to jakoś mi to nie przeszkadza konieczność ręcznej konwersji jeżeli dane mogą zawierać zero.

    Oczywiście PDO->qoute i fetch-e dla drivera sqlite3 tego nie robi dla tekstów co po części było przyczyną mojej pomyłki, bo posługiwałem się PDO::query i PDO::quote, coś mi nie działało i błędnie zintrepretowałem dokumentację funkcji encode.

    POD dostarcza pole BLOB, które można wykorzystać do przechowywania zupełnie dowolnych danych. Żeby tego użyć trzeba posługiwać się PDO::prepare, PDO::bindParam i stałą PDO::PARAM_LOB dla oznaczenia typu parametru.

    Może nic złego by się nie stało gdyby teksty były w PDO/sqlite kodowane i dekodowane w razie potrzeby, ale widząc w dokumentacji sqlite wzmianki o tym, że dla typu TEXT domyślnym kodowaniem jest UTF-8 jestem w stanie zrozumieć, czemu to nie zostało zrobione.

    Krótko mówiąc wina za moje problemy leży całkowicie po mojej stronie i wynika z niezrozumienia.

  • Kamil Szot
    Wpis na grupie PHP w temacie PHP i baza sqlite i beznadziejna wymówka
    14.08.2009, 07:44

    Piotr Likus:
    Kamil, zarówno sqlite jak i interfejs do niego to projekty Open Source, więc nie rozumiem Twojego świętego oburzenia i sformułowania "spodziewałbym się" tak jak byś był na pozycji osoby wymagającej.

    To nie święte oburzenie tylko oburzenie po prostu. Na to, że ktoś wymyślił sobie (bo przecież nie sprawdził), że coś może być powolne i w związku z tym zostawił lukę w funkcjonalności, którą ja teraz muszę obchodzić. Nie prezentuję postawy roszczeniowej tylko złoszczę się ludzką głupotą.
    Jeśli czegoś Ci brakuje w którymś z tych elementów czemu po prostu tego nie dorobisz?

    Gdyby chodziło o kopię softu działającego na moim prywatnym serwerze zapewne bym tak zrobił. Robiłem tak w przypadku bilbiotek w javie, pythonie i php, więc może C/C++ też bym ugryzł.

    Dostawcy hostingu jednak korzystają z wersji php jaka im się podoba. Jeżeli nawet poprawię to w sterowniku PDO, a patch zostanie zaakceptowany przez team php to do miejsca gdzie tego potrzebuję (do dostawców hostingu) mój kod trafi za 5-10 lat.

    Dlatego wolę sobie to obchodzić w mojej własnej klasie php opakowującej dostęp do bazy sqlite, bo dzięki temu mogę mieć poprawnie działający kod już dziś.

    Z tym, że ta cała moja praca nie byłaby potrzebna gdyby, ktoś parę lat temu wyznawał mądre przykazanie "You shall make things work properly before you make them work fast."
    Implementowanie kodowania/dekodowania implicite w locie ma wpływ na wydajność. I to sporą. Nawet każdorazowe sprawdzenie głupiego jednego bajtu przy wstawianiu miliardów rekordów może mieć znaczenie.

    Miliardy rekordów wstawianych z PHP do bazy sqlite? Jak myślisz ile będzie trwało wstawienie miliarda rekordów? A ile będzie trwało sprawdzenie kilku miliardów znaków funkcją C skompilowaną do kodu maszynowego? Jeżeli uważasz, że ważny jest ten drugi czas w porównaniu z tym pierwszym to tak jakbyś uważał, że splunięcie do jeziora ma istotny wpływ na ilość wody w nim.

  • Kamil Szot
    Wpis na grupie Języki Skryptowe w temacie PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Języki Skryptowe

  • Kamil Szot
    Wpis na grupie PHP w temacie Problem z rekordami i kluczami w PostgreSQL
    13.08.2009, 19:32

    Marcin Olichwirowicz:
    No juz bez falszywej propagandy.

    Napewno czasem coś palnę, ale w tym przypadku chyba niewiele się pomyliłem.
    Wydaje mi sie ze w standardzie SQL nie ma array'ow a jakos postgres je obsluguje dosc dobrze ;)

    http://farrago.sourceforge.net/design/CollectionTypes....

  • Kamil Szot
    Wpis na grupie PHP w temacie Problem z rekordami i kluczami w PostgreSQL
    13.08.2009, 17:41

    Mateusz Żeromski:
    Jest to na jeszcze łatwiejszy sposób

    1. Tworzysz index uniq, na pola unikalne (tylko nie id)
    2. Zamiast insert into używasz replace into
    3. Jeżeli w wartościach wpisywanych zostanie znaleziony inny rekord z takimi wartościami - zakutalizują sie pozostałe pola oraz pole autoincrement.
    4. Zero błędów :)

    Ale hmmm, to na pewno działa w mysql a czy w postrge będzie działać to nie wiem jestem pewien, ale powinno. W końcu tu i tu jest sql - jak to zastosujesz i sprawdzić daj znać bo sam jestem ciekaw :)

    Żeby tak jeszcze jeszcze Postgres obsługiwał REPLACE INTO...
    Niestety nie ma tego, w którymś standardzie sql-a, a rzeczy, których tam nie ma twórcy Postgresa boją się tykać nawet dwumetrowym patykiem, choćby nie wiem jak by za nimi płakali ich użytkownicy.

    A dla mysql-a jest po prostu INSERT IGNORE które robi dokładnie to o co pytającemu chodzi.

  • Kamil Szot
    Wpis na grupie PHP w temacie PHP i baza sqlite i beznadziejna wymówka
    13.08.2009, 17:31

    Piotr Likus:
    Tak, masz rację. Teraz widzę w manualu że od PHP4 można traktować PHP-owy string jako tablicę bajtów. Ale przy każdym wyjściu poza język (np. przy wywołaniu funkcji SQL) będziesz miał z tym problem.

    Tym bardziej spodziewałbym się, że funkcje komunikujące się ze światem zewnętrznym zadbają o wykonanie odpowiedniej konwersji kiedy jest dostępna.
    Zero (Null) nie jest poprawnym składnikiem łańcucha zarówno w ASCII, EBCDIC jak i UTF-8 (jest jego końcem)

    W utf-8 znak \0 ma takie samo znacznie jak w ascii. Bajt zero nie pojawia się zapewne w środku innych znaków, żeby aplikacje C/C++ mogły teksty w UTF-8 przepychać jako zwykłe stringi i nie potrzebowały ich rozumieć, żeby wiedzieć, które zero jest faktycznym końcem tekstu.

    W tekście UTF-8 nie można używać znaku 0 tak samo jak nie można tego robić w zwykłym stringu jeżeli działamy w C/C++. W innych środowiskach takie obostrzenie z niczego nie wynika, a już na pewno nie z definicji jakiegoś standardu.
    - jeśli druga strona jest zaimplementowana w C.

    Ano właśnie. W pozostałych wypadkach, jest najzupełniej legalnym znakiem ASCI czy UTF-8
    A akurat sqlite jest napisany w C.

    I zapewne korzysta z konwencji przechowywania stringów jaka jest domyślna dla C. I zapewne dlatego posiada metodę kodowania binarnych danych zawierających \0 jeżeli mają się pojawić w stringu kwerendy.

    Tylko to nijak nie uzasadnia czemu PHP nie dokonuje tej konwersji w sterowniku sqlite kiedy jest potrzebna zamiast pisać bzdury w stylu "severely impact performance".Kamil Szot edytował(a) ten post dnia 13.08.09 o godzinie 17:34

  • Kamil Szot
    Wpis na grupie Języki Skryptowe w temacie PHP VS Ruby VS Python - prosze o wypowiedź zaawansowanych...

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Języki Skryptowe

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do