poniedziałek, 5 lutego 2024

Skrypt do automatycznego tworzenia linków symbolicznych do plików csv

Nikt nie lubi robić rzeczy powtarzalnych...

Potrzebowałem dziś w repo dać dostęp do plików z danymi dostępnymi z innego. Oczywiście nic nie będziemy kopiować, ale zrobienie parunastu linków symbolicznych...przecież można skryptem. A oto on:

czwartek, 25 marca 2021

PIRek + python - ekeltroniczna niania z zegarem - #tataprogramuje

Rozwijamy dalej PIRka :)
W poprzednim poście opisałem w pełni jak możemy stworzyć samemu elektroniczną nianię przy pomocy Raspberry PI Zero W i kamery dedykowanej do układów Raspberry PI (tu kamery IR). Tym razem zamiast używać raspivid i vlc do strumieniowania, wykorzystamy program napisany w pythonie. Dodamy też widok zegara na strumieniu wideo.

wtorek, 23 marca 2021

PIRek - czyli jak samemu zrobić elektroniczną nianię - #tataprogramuje


Ostatnio sporo się zadziało :)
Narodziny dziecka obfitują w różnego rodzaju motywacje do tworzenia najróżniejszych pomocy, stąd może dzięki temu trochę więcej pojawi się na tym blogu. Powiedzmy, że rozpoczynam cykl #tataprogramuje ;)
Do tego jakiś czas temu wyposażyłem się w Snapmakera 2 - urządzenie 3 in 1, w tym drukarkę 3d - więc wyobraźnia szaleje.
Pierwszym opisanym projektem będzie stworzenie elektronicznej niani, której komponenty po okresie użyteczności przy dziecku, będzie można wykorzystać do czegokolwiek innego.
Na początek stworzymy elektroniczną nianię bez dźwięku (choć i mikrofon można do tej wersji projektu dodać - może potem). Potrzebne będą nam przede wszystkim: 

piątek, 17 kwietnia 2020

#Zostanwdomu, ale przeglądaj strony internetowe jak mistrz - tunelowanie przeglądarki

Ostatnie czasy zmuszają większość pracujących przy komputerze do pracy zdalnej. Będąc jednak w zakładzie mamy zazwyczaj zasoby, które są ekskluzywnie dostępne tylko dla komputerów w danej sieci. Możemy to obejść i zalogować się do sieci przez vpn albo istnieją też inne sposoby, których konfiguracja może trwać, lub są zasobożerne (uruchamianie po "iksach" przez ssh, pulpity zdalne itp.).

Ale załóżmy, że jesteś naukowcem i potrzebujesz publikacji, która normalnie jest dostępna przez przeglądarkę w pracy, a z domu nie...albo po prostu do jakiejkolwiek strony www wewnętrznej w pracy...muszę uruchamiać przeglądarkę zdalnie?

Nie. Wystarczy otworzyć sobie tunel i poprosić swoją przeglądarkę na własnym komputerze, by skorzystała z niego. Jest to całkiem proste - pod warunkiem, że używasz linuxa ;) ...

czwartek, 9 maja 2019

Cykl życia kodu

Cykl rozwoju kodu programu wykazuje znaczące zbieżności z cyklem życia gwiazd.
Na początku jest chmura pomysłów i różnych fragmentów kodu porozrzucanych w najróżniejszych skryptach.
W pewnym momencie, gdy ciśnienie zewnętrznej potrzeby jest wystarczająco duże, programista decyduje się utworzyć projekt - jednoplikowy rdzeń programu, do którego zachodzi akrecja pomysłów na nowe funkcjonalności i dawniej stworzone fragmenty kodu. Gdy funkcjonalność kodu osiąga odpowiednią gęstość, zaczyna się go używać. To pierwsza wersja programu i początek jego życia.
Jeśli ciśnienie potrzeby i gęstość idei wokół tematu nie jest zbyt wielka, kod zaczyna stabilne życie. Zachodzi w nim kontrakcja objętości kodu - kod mniej efektywny/napisany na szybko zostaje zamieniany na bardziej efektywny/przemyślany, który jest zazwyczaj krótszy. Po pewnym czasie już nic nie jest dodawane. Program działa siłą rozpędu, zależną od zgromadzonej funkcjonalności.
Są jednak sytuacje w których chmura idei jest bardzo gęsta, i towarzyszy jej wielkie ciśnienie potrzeby. Po uformowaniu projektu i pierwszego pliku, a później pierwszej wersji użytkowej, akrecja kodu nie zatrzymuje się. Towarzyszy mu powstawanie kolejnych plików z funkcjami programu. Czas mija, a projekt rozrasta się. Zachodzi w nim wiele zmian i koncentracji kodu z gorszego do lepszego, ale kod ciągle wymaga dołączania nowych funkcji. Plik główny jest bardzo masywny i silne wiatry odprogramowe powodują uwalnianie kodu do mniejszych plików, tworząc barwną otoczkę wokół programu głównego.
W pewnym momencie jednak ciśnienie kodu jest już tak duże, że przerasta granicę cierpliwości programisty i dochodzi do kolapsu kodu.
W trakcie tego dramatycznego i gwałtownego wydarzenia plik głównych wybucha, tworząc w projekcie zrestrukturyzowane biblioteki klas i funkcji, których kod jest zwarty i najczęściej dobrze napisany. W centrum programu pozostaje jedynie mały rdzeń - importujący wszystkie biblioteki, posiadający (jeśli jest to program z GUI) jedynie rdzenną, zwartą klasę. Efektem tego dramatycznego eventu może być powstanie wielu mniejszych projektów, które będą korzystać z tak powstałego, kodu bibliotek o większej efektywności.
Jednakże może zajść jeszcze inna sytuacja, w której akrecja kodu jest na tyle silna, że program przekracza finalną granicę, za którą nie ma już powrotu.
Dochodzi do utworzenia osobliwości - kodu tak rozległego i niepodzielonego, że nawet twórca projektu nie wie co dzieje się za granicą horyzontu działań programu.

Takie moje nerd-przemyślenie na dziś :P
Nie mam czasu na prowadzenie tego bloga, to może od czasu do czasu coś takiego tu wrzucę :)

środa, 4 maja 2016

Wysyłanie pliku lub katalogu do listy adresów przez scp w pythonie

Czasem świetnie byłoby robić synchroniczne wysyłanie jakiś danych do całej listy adresów - np. aby zrobić kopię danych, tak by nie zginęły, bądź np. wysłać coś na komputery każdego studenta na zajęciach ;)
Dziś dzielę się napisanym na szybko programikiem, który właśnie to robi.

czwartek, 10 grudnia 2015

Obliczanie czasu gwiazdowego LST

Poniżej znajduje się pythonowa funkcja przeliczająca datę podaną jako dzień roku 2015, wraz z odpowiednią godziną podaną jako ułamek tego dnia w UT, na lokalny czas gwiazdowy. Wewnątrz funkcji znajduje się definicja współrzędnych geograficznych radioteleskopu RT4, ale można bez problemu to zmienić na jakieś inne, bądź zrobić tak, by funkcja przyjmowała współrzędne w argumentach wejściowych.