tomaszs

Reputacja

1,834

Głosów ogółem

użytkownik głosował za tyle razy
170
Użytkownik głosował przeciw tyle razy
76
  • Niezła odpowiedź
  • Sławne pytanie
  • Wybitne pytanie
  • Samouk
  • Popularne pytanie
  • Komentator
  • Student
  • Nauczyciel
  • Autobiograf
  • Patrol obywatelski
  • Cofnął głos
  • Krytyk
  • Wsparcie
  • Uczony
  • Redaktor
Prawdziwe imię
Tomasz Smykowski
Członek od
6 miesięcy, 2 tygodnie
Ostatnio widziany
2 tygodnie, 4 dni temu
Witryna
http://flaker.p...
Miejscowość
Polska
Wiek
30

O mnie

Inżynier, programista, prelegent, ćwiczeniowiec, autor artykułów branżowych i researcher. MCDA i MCP, autor tłumaczenia FAQ George'a Shepherda i twórca video kursu programowania.

W chwilach wolnych uczę się grać na gitarze. Powinieneś zacząć mnie śledzić na Flakerze: http://flaker.pl/tomaszs

Pytania: 23

Odpowiedzi: 175

  • 2010-01-15 11:16:39 Jakie języki mają przyszłość? [zamknięte]

    PHP

    Język ten jest już bardzo powszechny. Nie jest to high-endowe rozwiązanie ale okazało się, że jest wystarczająco dobre i zawiera wszystkie potrzebne rzeczy do stworzenia każdego serwisu internetowego nawet Facebooka i Naszą Klasę.

    Erlang

    Wydaje się, że rozwiązania działające w czasie rzeczywistym i wymagające dużej skalowalności dobrze jest pisać w tym języku. Myślę że ten segment rynku będzie się rozwijać, dlatego już teraz warto zainteresować sie językiem w którym stworzono NKTalk na Naszej Klasie.

    Javascript

    Ten język czasem był wyśmiewany jako gorszy, skryptowy. Jednak czas pokazał, że jest on jednym z lepszych. Zyskuje coraz więcej zwolenników i stał się już standardem. Myślę, że wkrótce pojawi się wiele ogłoszeń pt. "Szukamy programisty Javascript". Jak ktoś kiedyś powiedział jeżeli coś ma zostać napisane, zostanie napisane w Javascripcie.

    Actionscript

    Język używany w Adobe Flash. Myślę że ten standard będzie konkurował wkrótce z Javą, która niestety nie przyjmuje się zbyt dobrze na stacjonarnych komputerach.

    Java

    Urządzenia mobilne, przenośne i pisanie dla nich aplikacji wkrótce stanie się popularne. Jeżeli ma zostać wypracowany standard to będzie nim Java. Na razie różni producenci eksperymentują z różnymi sposobami na development aplikacji, ale to niedługo ostygnie.

    C#

    Aplikacje desktopowe i trochę stron webowych (ASP.NET) będzie opartych o C#. Jest to dobrze przygotowany język, jest dużo ofert pracy. Można mieć solidną pracę w przyszłości znając ten język.

    Inne języki

    Poznanie każdego innego języka niszowego powoduje, że w przyszłości możemy trafić na atrakcyjne zlecenia związane właśnie z nim. A ponieważ mało osób będzie go znało i zarobki będą duże. Tak samo niektóre archaiczne języki są ciekawe, dlatego że wiele firm wciąż ma kod napisany w nich i ktoś musi go utrzymywać - tu również zarobki idą w górę ponieważ nie każdy chce uczyć się czegoś co wyszło już z mainstreamu. Do tej kategorii zaliczyłbym: COBOL, TCL, Assembler, C

    Których języków nie warto się uczyć

    Z powodu braku rozwoju, braku ofert pracy i malej liczby projektów nie warto się uczyć następujących języków programowania: Pascal, FoxPro, Delphi i VB.NET.

    Warto uczyć się jednego języka na rok. Nie zajmuje to dużo czasu, ale wymusza wysiłek intelektualny który pozwala człowiekowi spojrzeć na dotychczasowe problemy z nowego punktu widzenia. Przydaje się to nawet jeżeli nie będziemy danego języka używać.

    Jeżeli ten tekst był dla Ciebie przydatny naciśnij chmurkę i kciuk do góry

  • 2010-01-15 13:14:16 Cytaty związane z programowaniem/informatyką

    Wybrałem kilka moich ulubionych cytatów. Oto i one:

    "Dane są wartościowe i przetrwają dłużej niż systemy same w sobie." - Tim Berners-Lee , wynalazca HTML

    "UNIX to w zasadzie prosty system operacyjny, jednak musisz być geniuszem aby zrozumieć prostotę" - twórca C, Dennis Ritchie

    "Ludzie uważają, że bezpieczeństwo to rzeczownik, coś co możesz pójść kupić. W rzeczywistości jest to abstrakcyjna koncepcja jak szczęście. Otwartość jest niewiarygodnie pomocna w zapewnieniu bezpieczeństwa" - ojciec Javy, James Gosling

    "Mogę wydawać się bardzo arogancki, ale to dlatego, że wiem że mam rację. Jestem bardzo, bardzo dobry w pisaniu protokołów. Osiągnąłem więcej pracując sam niż w kiedykolwiek kiedy pracowałem w zespole", twórca P2P, Bram Cohen

    "Ludzie którzy myślą że wiedzą wszystko naprawdę irytują tych z nas, którzy wiedzą że nie wiemy" - twórca C++, Bjarne Stroustrup

    "Zacznę przejmować się standardami kiedy świat ulegnie standardyzacji". - twórca PHP, Rasmus Lerdorf

    "Komputery ze Star Treka nie są wydają się interesujące. Zadają im różne pytania, one przez jakiś czas myślą [nad odpowiedzią]. Myślę, że możemy zrobić to lepiej". Larry Page, twórca Google

    "Każdy program jest tylko na tyle dobry na ile jest przydatny" - twórca Linus Torvalds

    "To jest fajne w komputerach - pamiętają wszystko, nie kłócą się i nie wypijają całego twojego piwa" - Paul Leary

    "Większość oprogramowania dzisiaj jest jak egipskie piramidy z milionami cegieł ułożonych jedne na drugich, bez żadnej integralności strukturalnej, tylko złożone na siłę i przy pomocy tysięcy niewolników." - Alan Kay

    "Wreszcie nauczyłem się czym jest 'zgodność w górę'. Oznacza to, żeby utrzymywać wszystkie stare błędy." - Dannie van Tassel

    Jeżeli cytaty przypadły Ci do gustu naciśnij chmurkę albo kciuk do góry jeżeli nie jesteś autorem pytania.

  • 2010-02-01 13:26:31 Jak dołączyć kod JavaScript do dokumentu HTML?

    Sposobów jest kilka

    1. Możesz osadzić Javascript do testów w kodzie dokumentu np:

      <div>
      costam
      </div>
      <script>
         function pokazHalo()
         {
            alert('Halo!');
         }
      </script>
      <a href='#' onclick='pokazHalo(); return false;'>Pokaż halo!</a>
      
    2. Możesz podać odwołanie do pliku JS z kodem Javascript w ten sposób:

      < SCRIPT TYPE="text/javascript" SRC="adresurlpliku_js.js"></script>

    Dobre praktyki

    Najlepiej trzymać kod Javascript w pliku i stosować metodę 2 jednak czasem do testów wygodniej jest zacząć w kodzie programu. Trzymanie kodu w JS jest dobre ponieważ przeglądarka może sobie zapamiętać ten plik i nie pobierać za każdym razem gdy otwierasz każdą podstronę strony. Poza tym oczywiście możesz korzystać z takiego pliku w wielu stronach i podstronach.

    Odwołanie do pliku skryptu dobrze jest trzymać w nagłówku dokumentu (< HEAD >). Natomiast skrypt wewnątrz html-a(rozw. 1 na końcu pliku HTML, aby strona wczytała się w całości przed przetwarzaniem JS, a po drugie, żeby błędy w JS nie powodowały nieoczekiwanych błędów na stronie.

    Odwołanie do zewnętrznego pliku JS na końcu pliku HTML też ma sens o ile zależy Ci na otrzymaniu ekstremalnej wydajności. Warto pamiętać przy tym o jeszcze jednej ekstremalnie szybkiej metodzie. Aczkolwiek musisz się zastanowić, czy takie zmiany warte są świeczki - czy poświęcony czas na to zagadnienie spowoduje wzrost wydajności, który jest Ci do czegokolwiek potrzebny.

  • 2010-01-15 14:03:14 Jaki jest Twój ulubiony kawał programistyczny?

    Moje ulubione kawały programistyczne to:

    Kawał 1

    Pytanie: Jak odróżnić informatyka ekstrawertycznego od informatyka introwertycznego? Odpowiedź: Informatyk ekstrawertyczny podczas rozmowy z Tobą będzie patrzył na Twoje buty.

    Kawał 2

    Mężczyzna lecący balonem na gorące powietrze niespodziewanie odkrył, że się zgubił. Zmniejszył wysokość i zauważył na dole człowieka. Zleciał jeszcze niżej i zawołał, aby zapytać się o kierunek: “Przepraszam, możesz mi powiedzieć gdzie jestem?”

    Człowiek na dole powiedział: “Tak, jesteś w balonie na gorące powietrze i znajdujesz się 9 metrów nad tym polem.”

    “Musisz pracować w Informatyce,” powiedział balonista.

    “Zgadza się” odpowiedział mężczyzna. “Skąd wiedziałeś?”

    “No cóż,” powiedział balonista, “wszystko co powiedziałeś mi jest ok technicznie, ale nie ma żadnego użytku dla nikogo.”

    Mężczyzna poniżej odpowiedział, “Musisz pracować w zarządzie.”

    “Zgadza się” odpowiedział balonista, “Ale skąd wiesz?”

    “No cóż,” powiedział mężczyzna, “nie wiesz gdzie jesteś, ani gdzie lecisz, oczekujesz że będę w stanie Ci pomóc. Jesteś w tym samym położeniu nim się spotkaliśmy, ale teraz to moja wina.”.

    Kawał 3

    Puk puk Kto tam? bardzo długa przerwa… .NET

    Kawał 4

    Zapytanie SQL wchodzi do baru, podchodzi do dwóch tabel i mówi: “Can I join you?”

    Kawał 5

    Młody programista i jego menadżer projektu wsiadają do pociągu jadącego przez góry do Zakopanego. Nie mogą znaleźć żadnych wolnych miejsc do siedzenia oprócz dwóch miejsc naprzeciwko młodej kobiety i jej babci. Po czasie młodzi zainteresowali się sobą, wymieniając się spojrzeniami. Chwilę później pociąg wjechał do tunelu, zrobiło się całkowicie ciemno. W pewnym momencie było słychać pocałunek i uderzenia w policzek.

    Kiedy pociąg wyjechał z tunelu, wszyscy siedzieli dalej na swoich miejscach bez słowa. Babcia pomyślała sobie, “Młody zachował się niegrzecznie całując moją wnuczkę, ale cieszę się, że wnuczka dała mu w twarz”.

    Menadżer projektu siedział myśląc, “Nie wiedziałem, że młody będzie na tyle odważny, żeby pocałować dziewczynę, ale z pewnością wolałbym, żeby ona nie chybiła, kiedy zamiast uderzyć jego uderzyła mnie.

    Młoda kobieta myślała sobie, “Cieszę się, że ten chłopak mnie pocałował, ale żałuję, że babcia go plasła w twarz”

    Młody programista siedział sobie z zadowoloną miną. Myślał sobie, “Życie jest dobre. Jak często człowiek ma szansę całować piękną dziewczynę i uderzyć swojego menadżera projektu. I to wszystko jednocześnie!

    Kawał 6

    Jeżeli Twoim młotkiem jest C++, wszystko zaczyna wyglądać jak kciuk.

    Kawał 7

    Jest 10 rodzajów ludzi. Ci którzy rozumieją system binarny i ci, którzy uprawiają regularnie seks.

    Kawał 8

    Pytanie: Jaki jest zorientowany obiektowo sposób na zdobycie fortuny? Odpowiedź: dziedziczenie

    Teoria poznania

    Żeby zrozumieć rekurencję musisz najpierw zrozumieć rekurencję

    Kawał 9

    Programista stawia na stoliku przy łóżku zawsze dwie szklanki. Jedną pełną wody – jeżeli będzie spragniony, drugą pustą – jeżeli nie będzie.

    Kawał 10

    Pytanie: Ilu programistów Microsoftu potrzeba do wkręcenia żarówkI? Odpowiedź: Programista Microsoftu powie Ci, że ciemność jest standardem i powie każdemu, że takie zachowanie jest “by design”

    I kilka ulubionych krótkich kawałów:

    1. Jest 10 rodzaje ludzi, ci którzy znają system binarny i go nie znają.
    2. Jest 10 rodzaje ludzi, ci którzy znają system binarny i mają znajomych.
    3. Pytanie: Czy słyszałeś o programiście który utknął w prysznicu na tydzień? Odpowiedź: Instrukcja na jego szamponie brzmiała: spień, wypłucz, powtórz.
    4. 1f u c4n r34d th1s u r34lly n33d t0 g37 l41d.
    5. Jeżeli nie uda Ci się, nazwij to wersją 1.0.
    6. Pytanie: Ilu programistów jest potrzebnych do zmiany żarówki? Odpowiedź: Żadnego. To problem sprzętowy.
    7. Pytanie: How many IBM Processors does it take to execute a job? Odpowiedź: Four. Three to hold it down, and one to rip it’s head off.
    8. Pytanie: jak poznać czy geek jest ekstrawertykiem? Odpowiedź: Patrzy się na Twoje buty.
    9. Windows: Just another pane in the glass.
    10. Porażka nie jest opcją. Jest dołączona do Twojego produktu Microsoftu.

    Jeżeli kawały były dobre, naciśnij chmurkę, albo kciuk do góry jeżeli nie jesteś autorem pytania. Z góry dziękuję.

  • 2010-01-15 16:04:43 Ile średnio godzin dziennie spędzacie przed komputerem? [zamknięte]

    Pracując przy komputerze trzeba robić sobie przerwy, żeby wzrok odpoczął. Według przepisów w Polsce jest to 5 minut / godzinę pracy. To tak na marginesie, ja pracuję przy komputerze jakieś 10 godzin dziennie od kilku lat. Warto przy tej okazji zwrócić uwagę na parę szczegółów, aby móc pracować dalej bez skutków wywołanych tak długim siedzeniem:

    1. Regularnie ćwiczenia codziennie
    2. Monitor na wysokości wzroku, najlepiej LCD
    3. Sprawdzanie co jakiś czas czy monitor się nie wypalił, wzrok się dostosuje, ale ze szkodą
    4. Dobrze dopasowane krzesło, wyprostowane plecy i kark
    5. Zakraplanie oczu sztucznymi łzami jeżeli trzeba
    6. Planowanie wcześniej co chcemy zrobić i w jakich godzinach, bez siedzenia ponad 12 godzin dziennie bo wtedy i tak nic człowiek nie wymyśli, to stracony czas
    7. Spędzanie więcej czasu z rodziną i znajomymi zamiast siedzieć przed komputerem ;)

    To niby oczywiste, ale bez tego można mieć po paru latach przykre dolegliwości.

    Powinieneś nacisnąć kciuk do góry jeżeli ta odpowiedź Ci się podoba. Z góry dziękuję.

  • 2010-01-27 16:33:08 W jaki sposób działają komputery kwantowe?

    Wyobraź sobie, że masz wędrowcę, który przemierza świat. Na każdym zakręcie musi wybrać jedną drogę, którą chce zbadać. Może więc iść naraz tylko jedną ścieżką. Tak działają komputery tradycyjne.

    A teraz wyobraź sobie zjazd niezliczonej ilości harcerzy, którzy rozpoczynają wędrówkę z jednego punktu, ale na każdym zakręcie się rozdzielają. Ostatecznie każda droga jest równolegle badana przez innego harcerza.

    Kto szybciej zbada świat?

    Tak działają komputery kwantowe: zamiast wysyłać jednego harcerza masz ich miliony i to w jednym czasie. Każdy z nich bada inną możliwość, a na końcu możesz na podstawie wyników określić która droga jest najlepsza.

    Problem polega jednak na tym, że naukowcy nie wiedzą jeszcze kogo zatrudnić jako harcerzy?

    Po drugie wśród harcerzy jest dużo dezerterów: uciekają z trasy marszu albo idą z innymi kolegami zamiast swoją drogą.

    A ponadto pojawiają się problemy logistyczne: który harcerz jaką drogą ma iść i zebraniem i zorganizowaniem Gigabajtów raportów jakie otrzymamy na koniec wędrówki.

    Na razie badania nad komputerami kwantowymi idą więc dwoma torami: po pierwsze część naukowców rozwija same urządzenia nazywane komputerami kwantowymi, a druga część obmyśla algorytmy dotyczące tego jak sterować urządzeniem kiedy takie zostanie zbudowane.

    Najlepsze efekty na razie naukowcy osiągnęli w zeszłym roku z jonami berylu zatrudnionymi jako harcerze, a sterowali nimi... laserem.

  • 2010-01-18 13:25:21 Ile zarabiają programiści w Polsce?

    Zarobki programistów różnią się w zależności od kilku czynników:

    • Doświadczenia
    • Wiedzy
    • Zakresu odpowiedzialności i obowiązków
    • Efektywności
    • Wartości tworzonego oprogramowania

    To są podstawy, jednak według nich można też zauważyć duże różnice w zarobkach w zależności od wieku, wykształcenia programistów, szkoleń jakie przeszli, liczby certyfikatów, regionu Polski, firmy dla jakiej pracują, języku jaki używają, czy pracują jako freelancerzy, w startupie czy korporacji.

    Także zarobki te są bardzo różnorodne i trudno wskazać konkretną kwotę. Nie ma nawet badań które by potrafiły określić te zarobki w odniesieniu do zawodu programisty C++, możesz opierać się tylko na pojedynczych przypadkach osób, które takie prace wykonują.

    A te nie będą też jakoś specjalnie wartościowe gdyż liczba zmiennych od których zależy zarobek jest tak duża, że nie da się przyłożyć wyników na swoje zarobki albo kogokolwiek innego.

    Powinieneś nacisnać szary kciuk w górę. Z góry dziękuję!

  • 2010-01-30 12:58:18 Kto ma wykształcenie kierunkowe (programistyczne)?

    Studia pozwalają Ci na zdobycie wiedzy z programowania ale też zagadnień okołoprogramistycznych i inżynieryjnych. Dzięki temu będziesz mógł dogadać się z architektem, mechanikiem, z szefem przedsiębiorstwa itd. Ponieważ to oni mogą być w przyszłości Twoimi klientami. A taka wiedza ułatwi Ci zrozumienie ich potrzeb.

    Oprócz tego zajęcia na studiach rozwijają umiejętności myślenia logicznego i abstrakcyjnego. Są one niezbędne w pracy programisty.

    Jeżeli chodzi o znajomośc konkretnych języków czy środowisk programowania to nie jest to aż tak ważne na początku jeżeli w czasie studiów poświęcisz czas na rozwijanie swojego umysłu i myślenia nauka każdego nowego języka i każdej nowej technologii będzie dla Ciebie rozrywką.

    Studia sa też idealną okazją, żeby poznać innych ludzi, którzy też będą zajmować się podobnymi tematami. Wielu utalentowanych ludzi o których możesz czytać w gazetach zaczęło rozwijanie swoich pomysłów właśnie na studiach. Skupienie w jednym miejscu osób o podobnych zainteresowaniach jest idealne do tworzenia ciekawych rzeczy. Spójrz na przykład na Facebooka, Windowsa czy Linuxa.

    Także studia nie są tylko nauką. Możesz poświęcić je na rozwijanie się i zacząć robić to co będzie Ci sprawiać przyjemność przez resztę życia i będzie przydatne innym ludziom. Albo możesz iść po prostu po papierek. Ale nie sądzę, żeby wśród użytkowników 9fingers była chociaż jedna osoba, która by robiła studia dla papierka.

    Jeżeli chodzi o pracę to chciałbym coś zaznaczyć. Mówi się, że niektóre firmy oczekują 'papierka'. Papierek to nie tylko dyplom ukończenia jakichś studiów ale też przejście pewnego procesu, obycie z ludźmi, zdanie egzaminów, a więc poznanie pewnej wiedzy, wysiłek i upór w dążeniu do celu. Cechy pożądane u potencjalnego pracownika. Dlatego możesz spotkać się z takimi wymaganiami i nic dziwnego, że pracodawcy oczekują 'papierka'.

    Bez studiów też możesz być świetnym programistą. Nikt Ci tego nie odmawia. Aczkolwiek sam musisz wtedy zadbać o swój rozwój nie tylko jako programista, klepacz kodu ale też jako osoba umiejąca rozmawiać , komunikować się i rozwiązywać problemy, mieć dobre obycie z ludźmi.

    Ponadto nie ma co patrzeć na wymagania co do programisty przez pryzmat wymagań firm na rynku. Polska to kraj dużych możliwości i dopóki nie robisz czegoś na odpieprz masz dużą szansę założyć firmę i dostarczać ludziom coś czego potrzebują. A potrzeby na usługi informatyczne są u nas ogromne.

    Poza tym jeżeli firma ma zły sposób rekrutacji pracowników to z tą wiedzą możesz sam naprawić błąd we własnej firmie i w ten sposób zdobyć przewagę konkurencyjną. Nic nie stoi na przeszkodzie, żebyś pokazał, że można zrobić coś lepiej.

  • 2010-01-31 18:50:29 Jak w skrypcie PHP pobrać ilość wybranych rekordów z tabeli bazy

    Jeżeli chcesz pobrać najszybciej liczbę wierszy z jednej tabeli bez warunków to użyj po prostu select(*), możesz też użyć select(nazwapola) itp. jak wolisz.

    Jeżeli chcesz pobrać liczbę wierszy złączonych tabel joinem to lepiej jest pobierać count na kolumnie tabeli bazowej a nie na tabeli powiązanej. W mysql to ma duży wpływ na wydajność, nie wiem jak w innych RDBM.

    Jeżeli Twoje zapytanie ma klauzulę where (na co wskazuje część 'ilość wybranych' Twojego pytania) to musisz nałożyć na tabelę odpowiednie indeksy. Pierwszym podejściem może być nałożenie indeksu na kolumny które masz w klauzuli where w kolejności w jakiej występują. Oczywiście wszystkie kolumny powinny być w jednym indeksie, a nie każda oddzielnie.

    WIęcej rad o nakładaniu indeksów i ich optymalizacji znajdziesz tutaj (w ramach 9fingers).

    Uwaga!

    Oprócz tego czasem jest potrzeba keszowania gdzieś liczby rekordów. Jeżeli masz tabelę sklepy i produkty i każdy z 20 sklepów ma przypisane po około 50 000 produktów to dobrze jest dodać do tabeli sklepy kolumnę produkty_liczba i aktualizować tą liczbę po dodaniu do sklepu/usunięciu produktu. Wtedy baza danych nie będzie musiała za każdym razem wertować milionów rekordów w tabeli produkty, bo wystarczy, że pobierzesz liczbę produktów z tabeli sklepy. Trzeba pamiętać jednak, żeby ta liczba się nie zdesynchronizowała.

    Oprócz tego możesz użyć mysql_num_rows ale po wykonaniu selecta.

  • 2010-02-02 15:47:06 TAG stackoverflow

    Na StackOverflow jest większość pytań i odpowiedzi programistycznych jakie ktokolwiek kiedykolwiek wymyślił popijając swoją kawę. Twoja propozycja dotyczy osób, które dodają z jednego konta pytanie z SO, a następnie z innego albo ktoś inny (tego nie wiemy) odpowiada na nie znając odpowiedź z SO. Oczywiście gdyby nie konkurs takie zjawisko wcale by nie było złe. W końcu wzbogaca się baza wiedzy w j. PL. Ale ponieważ jest konkurs to należałoby sprawdzić w regulamin konkursu i ustalić czy te osoby ten regulamin łamią, a jeżeli tak to zgłosić to przez mejla do admina albo we wpisie przeznaczonym na błędy/uwagi ktory juz jest dostępny na 9fingers. Za takie pytania i odpowiedzi nie dawałbym minusów bo za kilka miesięcy nikt o konkursie nie będzie pamiętał, a ktoś kto wejdzie na stronę moze się zdziwić, że merytorycznie poprawne pytanie jest zaminusowane. Albo że odpowiedź jest zaminusowana. Więc zamiast robić śmietnik lepiej zgłosić to i admin pewnie zajmie się tymi kontami z należytą starannością ;)