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 ;) ...
Programowanie w Pythonie, C, itp. + trochę astrofizyki, elektroniki i mojej skromnej osoby.
piątek, 17 kwietnia 2020
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.
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.
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.
poniedziałek, 14 września 2015
Pomocnik gracza RPG - wielokrotne rzucanie kością.
Jak dotąd wpisy na tej stronie były niezbyt częste. Istnieje pewna szansa, że to się zmieni na lepsze, gdyż mam kilka nadających się na to pomysłów. Muszę też pomyśleć nad lepszym stylem dla wklejek z kodem, bo sam nie mogę na to patrzeć.
W ramach małej rozgrzewki napisałem sobie w C prosty program, który może być pomocny przy rozgrywkach RPG. Ustawia się w nim liczbę ścian, kości i kolejek rzutu. Program podaje sumy wyników każdej z kolejek.
Kod:
W ramach małej rozgrzewki napisałem sobie w C prosty program, który może być pomocny przy rozgrywkach RPG. Ustawia się w nim liczbę ścian, kości i kolejek rzutu. Program podaje sumy wyników każdej z kolejek.
Kod:
poniedziałek, 18 sierpnia 2014
Skrypt diagnostyczny - kontrola_syntezerow
Ponownie prosty skrypt bashowy. Tym razem jest to skrypt diagnostyczny, który uruchamia komendy zwracające jakieś informacje w stringu, a następnie interpretuje je pod względem poprawności, porównując ze stringiem odpowiedniej wartości. Przykład użycia kolorów w terminalu.
Napisany na potrzeby kontrolerów radioteleskopu RT4.
Kod:
Napisany na potrzeby kontrolerów radioteleskopu RT4.
Kod:
czwartek, 29 maja 2014
Film Powiewowy
Miałem okazję brać udział w Projekcie POWIEW współpracując z Poznańskim Centrum Superkomputerowo Sieciowym nad Interferometrem Bałtyckim.
O mojej pracy pewnie kiedyś coś opowiem, a tymczasem zamieszczam film, który przy okazji odkopałem przy okazji konferencji, na której właśnie się znajduję ;)
Film:
O mojej pracy pewnie kiedyś coś opowiem, a tymczasem zamieszczam film, który przy okazji odkopałem przy okazji konferencji, na której właśnie się znajduję ;)
Film:
Subskrybuj:
Posty (Atom)