Programistka Grace Hopper przy komputerze UNIVAC I

Kobiety i ich języki, czyli historie znanych programistek

Trudno nie zgodzić się ze stwierdzeniem, że informatyka to branża zdominowana przez mężczyzn. Jeśli jesteś przedstawicielką płci pięknej, to być może istniejący w społeczeństwie stereotyp programisty oraz liczne żarty o kodujących kobietach zniechęcają Cię do spróbowania swoich sił w tej dziedzinie, nawet jeśli stwierdzasz u siebie silne predyspozycje w tym kierunku. W kwestii kobiet w […]

Read More

MySQL: 7 praktycznych porad

Podstawowa znajomość języka SQL jest umiejętnością wystarczającą, aby tworzyć aplikacje z wykorzystaniem baz danych. Aby jednak aplikacje te były naprawdę solidne, konieczne jest pogłębienie swojej wiedzy z zakresu używanej technologii bazodanowej. W tym wpisie przedstawię kilka porad dotyczących pracy z bazą MySQL (niektóre z nich są bardziej ogólne, ale w przykładach będę używał właśnie tego […]

Read More

Bash – wykrywanie wklejanego tekstu

Bracketed paste mode to dosyć mało znana funkcjonalność oferowana przez wiele emulatorów terminala. Przez lata korzystania z Linuksa, używania różnych powłok systemowych i terminali nie miałem o niej pojęcia i zapewne wciąż nie wiedziałbym o jej istnieniu, gdyby nie przypadek – bug w którymś z używanych przeze mnie programów, który ujawnił mi tę ciekawą opcję. […]

Read More

Jak napisać korektor pisowni

Całkiem niedawno natknąłem się na ciekawy artykuł Petera Norviga zatytułowany How to Write a Spelling Corrector. Przedstawiony w nim program urzeka swoją prostotą i sądzę, że jest znakomitym wprowadzeniem do tematu korekty tekstu jako zagadnienia wchodzącego w skład przetwarzania języka naturalnego. Rezultaty działania zaledwie 30-linijkowego dość łatwego do zrozumienia pythonowego kodu są zdumiewające – wprowadzane […]

Read More

Fakty i mity o COBOLu

COBOL to język, o którym słyszał prawie każdy, kto miał jakąkolwiek styczność z programowaniem. Obecnie znany jest przede wszystkim z żartów na jego temat i powtarzanych wciąż mitów. Niemal każde wrzucone w przestrzeń portali społecznościowych ogłoszenie o pracę w tej technologii skwitowane zostaje dowcipnym komentarzem, że zapewne posada zwolniła się z powodu śmierci któregoś z […]

Read More

OCaml: funkcje i ich sygnatury

Dla osób przybywających ze świata programowania imperatywnego zobaczenie jak wyglądają typy, które OCaml dedukuje dla definiowanych przez programistę funkcji, często rodzi pewne pytania i niejasności. Zawierająca strzałki notacja na pierwszy rzut oka nie wydaje się najbardziej oczywistym sposobem na wyrażenie np. faktu, że funkcja przyjmuje trzy argumenty typu int i zwraca zmienną tego samego typu. […]

Read More

Czy w Pythonie może wyciekać pamięć?

Niedawno ktoś zadał mi pytanie: „czy w Pythonie może w ogóle wystąpić memory leak?„. Postanowiłem nieco przyjrzeć się temu tematowi i sprawdzić jak dużo pułapek dotyczących zużycia pamięci czeka na nas w tym języku. Wiele osób jest przekonanych, że wbudowane w Pythona mechanizmy są w stanie zawsze ustrzec programistę przed wyciekaniem pamięci. Czy jest tak […]

Read More

OCaml: kompilatorowy zawrót głowy

W językach, których implementacje wyposażone są w tryb interaktywny (REPL), zazwyczaj podstawowe funkcjonalności danej technologii poznaje się właśnie w tym środowisku. Jest to po prostu najszybszy i najłatwiejszy sposób kontaktu z nowym językiem. Nie inaczej jest z OCamlem – odpalamy utop i już jesteśmy gotowi zgłębiać tajniki programowania funkcyjnego. Jednak w miarę jak pisane skrypty stają się […]

Read More

OCaml: kłopotliwe średniki

Jednym z bardziej charakterystycznych elementów, na które natyka się każdy, kto ma okazję pisać swoje pierwsze linijki w OCamlu są średniki, które występują w dwóch odmianach: zwykłej oraz podwójnej. Kiedy kompilator sieje błędami niekiedy można uspokoić go dopisując gdzieś w kodzie naszego programu podwójny średnik (lub zastępując takowym pojedynczy), ale czy jest to odpowiedni sposób rozwiązywania problemów? W tym wpisie opowiemy […]

Read More

OCaml: początek przygody

Jakiś czas temu postanowiłem rozpocząć naukę kolejnego języka programowania. Tym razem padło na OCamla, będącego reprezentantem rodziny języków funkcyjnych (ściślej mówiąc, jest to język wieloparadygmatowy, a paradygmat funkcyjny jest jednym ze wspieranych). Dlaczego akurat OCaml, skoro istnieją inne, popularniejsze technologie z tej samej grupy? Mój wybór wynika z niezwykle dużej użyteczności OCamla na gruncie tworzenia […]

Read More