Zacząłem pracować jako programista w 1998 roku. Napisałem wtedy wewnętrzny program i sterownik na peceta dla urządzenia podobnego do dzisiejszych pendrive’ów: czytnika kart PCMCIA. Karty PCMCIA mieściły „aż” 512 KB danych!
Przez osiem pracowałem w krakowskim oddziale firmy Google. Tam uczyłem się projektować, implementować, testować, wdrażać i utrzymywać systemy, które:
W innych firmach współpracowałem między innymi przy pisaniu programów, które:
Umiem programować w kilku językach. Od kilkunastu lat używam Pythona. Najbardziej lubię język Go.
Na GitHubie można znaleźć moduł mojego autorstwa, który umożliwia korzystanie w języku Go z Morfeusza, analizatora morfologicznego języka polskiego: go-morfeusz (GitHub)
W 2019 roku wziąłem udział w konkursie POLEVAL. Mój program Przetak zajął 2. miejsce wśród 14 programów, które wykrywają mowę nienawiści. Przetak wykrywa teksty z obraźliwymi i wulgarnymi wyrazami. Chociaż Przetak zna wiele brzydkich słów, w kodzie źródłowym ich nie widać: Przetak (Github)
Opracowałem dla firmy planetbuilders.art oprogramowanie, które łączy pliki wektorowe i rastrowe, aby powstały kliny map fizycznych lub politycznych naklejanych na globusy. Użytkownicy mogą ustalać kolory, czcionki, grubość linii i granice tych obszarów, do których roszczą sobie prawa dwa państwa, na przykład Cypr i Cypr Północny. Czy wiesz, że nazwy portów powinny leżeć na morzu?
Jestem doktorem informatyki. Interesuję się algorytmiką, programowaniem gier planszowych i przetwarzaniem języka naturalnego.
Wyniki moich badań nad sortowaniem Shella można znaleźć w III tomie The Art of Computer Programming Donalda Knutha (strony 95 i 623).
Spośród artykułów, których jestem autorem, te mają najwięcej cytowań według Google Scholar:
W Google Scholar można znaleźć wszystkie artykuły, które napisałem.
Pracuję na Uniwersytecie Komisji Edukacji Narodowej w Krakowie.
Prowadziłem na mojej macierzystej uczelni, czyli na Politechnice Śląskiej w Gliwicach:
W 2020 roku prowadziłem na Politechnice Krakowskiej:
W 2023 roku prowadziłem na Akademii Górniczo-Hutniczej laboratorium z systemów operacyjnych. Tu są notatki do zajęć o funkcjach systemowych Linuxa i do krótkiego wykładu o historii Unixa.
W 2024 roku prowadziłem na Akademii Górniczo-Hutniczej wykład i laboratorium z algorytmów tekstowych w języku Go.
Piszę po angielsku bloga o różnych tematach, w tym o wizualizacji danych i o zabawnych zastosowaniach przetwarzania języka naturalnego: marcinciura.wordpress.com
Pisałem po polsku bloga o słowach: oslowach.wordpress.com
Poniżej opisuję kilka programów, które napisałem dla rozrywki.
Program Lajkonik (GitHub) ograł w grę planszową Havannah jej twórcę Christiana Freelinga. Dzięki temu wraz z Piotrem Wieczorkiem wygrałem od Christiana 500 euro. :-)
W Comprehensive TeX Archive Network można znaleźć pakiet makr, które umożliwiają składanie diagramów gier Havannah i Hex w LaTeX‑u: havannah (CTAN)
Program Centonista za każdym razem, kiedy się wykonuje, pisze zupełnie nowy wiersz, na przykład taki:
Wiadomości z Europy, naokoło potopy już korzystał zapewne ojczulek. Splugawiony zaułek, bezimienny przytułek zwierz na ziemi nadzieja że Lulek. Okrucieństwa tyranów, monologu Szamanów. Stały na nich zwrócone na szybę. Rewolucją istotną, pozostała samotną by takiego i całą zeribę. Posłuszeństwo potworny, szampańskiego wybornej grzecznie ale wysoki dragoński. Zasunęła za plecy, przeraźliwy kobiecy młody przyszedł i pan Lanckoroński.
Tutaj można zobaczyć kod źródłowy tego programu: Centonista (Github), a tutaj można uruchomić ten program i przeczytać zupełnie nowy wiersz: Centonista (Wolne Lektury)
Dwa razy byłem laureatem IOCCC. Skrót IOCCC oznacza The International Obfuscated C Code Contest, czyli międzynarodowy konkurs na najmniej czytelny program napisany w C.
Pierwszy z moich programów zaznacza zwroty w stronie biernej w tekstach angielskich, na przykład:
"The Elements of Style" by prof. William Strunk, Jr. and E. B. White [is well known] for its dislike of the passive voice. Direct, vigorous, active constructions [were instead recommended] by the authors. The development of this program has [been driven] by this tenet.
Drugi program znajduje pangramy, czyli zdania,
które zawierają wszystkie litery danego języka, na przykład:
Quartz jinx vs fed kc womb glyph Stróż pchnął kość w quiz gędźb vel fax myjńTutaj można zobaczyć kody źródłowe tych dwóch programów: 2018 Ciura (Github), 2019 Ciura (Github)
mciura@ gmail.com