Programista 5/2020 (92)
Programista 5/2020 (92)
Winget to zaproponowany przez Microsoft menedżer aplikacji z poziomu konsoli systemu. Na łamach tego artykułu zaprojektujemy i stworzymy własny graficzny menedżer aplikacji, który będzie wykorzystywał to narzędzie, a także przyjrzymy się bliżej sposobom na asynchroniczne wywoływanie zadań i funkcji w PowerShellu.
Ludzkość niezmiennie od tysiącleci dąży do pokonywania własnych ograniczeń i udoskonalania się w każdej dziedzinie życia. Chcemy być niezwykle wytrzymali, ale też szybsi, inteligentniejsi czy silniejsi. Nasze ciała mają jednak swoje ograniczenia, które w końcu uniemożliwią nam dalszy rozwój. Wtedy z pomocą ma przyjść technologia, a konkretnie cyberwszczepy i nanomaszyny, które sprawią, że będziemy mogli dalej śrubować rekordy w każdej możliwej dziedzinie.
Retraktor, rozwieracz lub hak chirurgiczny to narzędzie medyczne służące do odsuwania od siebie struktur anatomicznych. Samo narzędzie – tuż po uświadomieniu, do czego służy – potrafi wzbudzić dreszcz emocji. Pojęcie retraktora w szeroko pojętym aspekcie informatyki nie było mi dotychczas znane. Tworząc system, uważałem, że nazwa to rzecz drugorzędna i można ustalić ją na samym końcu. Kiedy już wydawało mi się, że wybrałem odpowiednią i finezyjną – okazało się, że podobną zastrzeżono w urzędzie patentowym. Ponownie pojawił się problem – jak nazwać system, którego podstawową funkcjonalnością jest przetwarzanie serii czasowych?
W kwietniu br., w wieku 82 lat, zmarł John Conway. Ten wyjątkowy angielski matematyk zasłynął przede wszystkim jako twórca słynnej „Gry w Życie” (ang. Game of Life): symulacji kryjącej w sobie szereg tajemnic i od wielu lat inspirującej kolejne pokolenia ludzi ciekawych świata i żądnych wiedzy. Równie fascynujący jak sama gra jest mechanizm jej implementacji: na pierwszy rzut oka banalny, w rzeczywistości jednak bardzo złożony i dotykający szeregu kluczowych zagadnień z zakresu inżynierii oprogramowania – być może dlatego „Gra w Życie” cieszy się od dawien dawna wielkim zainteresowaniem programistów. Poniższy artykuł, stanowiący hołd dla zmarłego matematyka, zaprasza cię w podróż po meandrach implementacji „Gry w Życie” – tam gdzie matematyka, filozofia i informatyka łączą się w intrygujący sposób.
W ostatnich latach podatności bezpieczeństwa komputerowego zaczęły trafiać na pierwsze strony gazet. Czy to poprzez chwytliwie brzmiące nazwy typu Heartbleed lub Spectre, czy to w wyniku ogromnych wycieków danych organizacji rządowych lub mediów społecznościowych. Nawet największe i najbardziej szanowane firmy z branży IT, które mogą sobie pozwolić na własne zespoły specjalistów ds. bezpieczeństwa komputerowego, nie są w stanie poradzić sobie z prostym faktem – nowoczesne oprogramowanie staje się tak duże i tak skomplikowane, że błędy bezpieczeństwa wydają się nieuchronne.
Jesteś liderem technicznym, team leaderem, menedżerem IT, a może senior developerem? Chcesz w końcu raz na zawsze usystematyzować swoją wiedzę na temat Pythona, jego wersjonowania, kompatybilności, dostępnych narzędzi i różnic między nimi? Chcesz zrozumieć, czym są, do czego służą i czym się różnią narzędzia takie jak pip, conda, Anaconda, Jupyter, virtualenv i wiele innych? Jeśli tak, to zapraszam do lektury tego artykułu.
Po sukcesie mikrokomputerów 8-bitowych przyszła pora na przejmowanie przez mikroprocesory obszarów wymagających większej mocy obliczeniowej, zarezerwowanych do tej pory dla tzw. minikomputerów. Do tego potrzebna była, oprócz szybkości, bardziej elastyczna architektura, możliwość obsługi większej pamięci i współpraca z dodatkowymi jednostkami obliczeniowymi. Kolejny krok w ewolucji stał się nieuchronny.
Dobrze opowiedziana historia sprawia, że razem z mówcą doświadczamy czegoś ważnego. Na sali wybuchają salwy śmiechu lub kręci się łza wzruszenia albo przechodzimy przez całą paletę emocji. Ale czy każda historia jest interesująca? Po co komu historia? Na co zwrócić uwagę, budując historię? O czym pamiętać? I wreszcie: czy wiedza techniczna może być również przekazywana w ten sposób?