Czy można nadać zmiennej nazwę taką samą jak któreś ze słów kluczowych używanego języka programowania? Zapewne większość z osób, słysząc takie pytanie, odpowie nań przecząco. W końcu niezależnie czy piszesz w Pythonie i spróbujesz napisać for = 42, czy może jesteś programistą C++ i w swoim kodzie umieścisz int if = 1.0; albo posługujesz się na […]
Read MoreNiech się stanie kod, czyli rzecz o programowaniu głosem
Co jakiś czas można natrafić na artykuły wieszczące zmierzch stacji roboczych i laptopów oraz zwrot większości ich dotychczasowych użytkowników ku tabletom i innym urządzeniom dotykowym, pozbawionym takich zbędnych dodatków jak np. klawiatura i mysz. Zawsze gdy czytam tego rodzaju wiadomości, myślę sobie: „hola, hola, ale przecież grono osób intensywnie wykorzystujących standardowe klawiatury jest całkiem spore, […]
Read MoreBash – 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 MoreJak 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 MoreFakty 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 MoreOCaml: 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 MoreCzy 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 MoreOCaml: 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