Praca mgr w LaTeX’u

Jeżeli chcesz pisać w wordzie czy openoffice bo je znasz, lub jesteś humanistą i boisz sie że nie ogarniesz niczego ponad worda, to tkwisz w błędzie. Polecam wszystkim ścisłym humanistom i humanistycznym ścisłowcom pisać jakie kolwiek formy prac dyplomowych w LaTeX'u (to nie wymawia sie lateks, tylko latech od greckiej litery CHI). Najprościej (jeżeli uczelnia go nie oferuje) dorwać jakiś szablon na podstawie którego szybko idzie zrozumieć filozofię całego systemu i skupić się wyłącznie na treści pracy, tym samym będąc odciążonym od reszty upierdliwych edytorskich czynności takich jak rozmiary czcionek. Spis treści, rysunków, tabel, równań robi się sam, a ty pisząc magisterkę jesteś tak zachwycony że rozważasz napisanie doktoratu.

facebook

Popularność facebooka wzrosła do tego stopnia, że sporo blogów można by rzec straciło sens bycia, skoro każdy w spósob dziecinnie prosty może sobie pozwolić na własny kątek w sieci o funkcjonalności zbliżonej do bloga i w dodatku z gwarantowanymi odwiedzinami 100 znajomych dziennie... Myślę w ten sposób czasami, i choć ostatnio piszę tu tyle co nic, to wciąż jakoś bardziej temu miejscu ufam jako bardziej pseudo 'prywatnym' niż Facebook. Żeby było śmieszniej stany melancholijne mnie tu sprowadzają i nakłaniają do pisania najczęściej, tak jakbym tu coś zgubił...

Krematorium

Taki oto film powstał na potrzebę pracy magisterskiej kolegi i koleżanki pt ''Dźwięk w produkcjach filmowych". Powstała wersja z dźwiękiem 5.1. Poniżej filmik w wersji stereo. Ja odgrywam rolę kierowcy Fiata i Leona Zawodowca :)

Interpolcja 3D

Płaszczyznę wyznaczają dowolne 3 nieliniowe punkty w przestrzeni. Co jeżeli chcemy mieć 4 ? Będzie to wtedy płat przestrzenny. Przed takim problemem stają sterowniki zapłonu w silnikach benzynowych gdy mają mape zapłonów z rozdzielczością powiedzmy co 1000 obr/min, a zależy nam na płynnym, a nie skokowym przejściu między powiedzmy 1000 a 2000 obr/min.

Z =

10  18    26    30    29    33    34    34
8    17    22    27    29    32    33    34
5    16    19    22    28    30    33    34
5    15    18    19    25    27    32    34
4    14    17    18    23    24    31    33
4    13    16    16    21    23    31    33
3    11    15    15    20    22    30    32
2    10    14    14    17    21    29    30

Z pomocą przychodzi interpolacja trójwymiarowa. Celem jest wyznaczenie płata który interpoluje 4 punkty na płaszczyźnie dwuwymiarowej, tworzące kwadrat. Podszedłem do zagadnienia w sposób następujący

Niech punkty nazywają się a1 a2 a3 a4, numerując po obwodzie kwadratu w dowolną stronę

Zobrazujmy to powiedzmy tak
a4 a3
a1 a2

AVR i gentoo

Temat jest z grubsza stary jak świat, ale podzielę się kilkoma pomysłami i doświadczeniami. Po 1 jak szybko z konsoli jednym ruchem ręki skompilować i wgrać do pamięci EPROM nasz program. Ja załatwiam to takim skryptem. Nazwałem plik po prostu 'avr' :

avr-gcc -mmcu=atmega32 $1.c -o $1
avr-objcopy -O ihex $1 $1.hex
avrdude -c usbasp -p atmega32 -U flash:w:$1.hex

Tak wygląda to w przypadku powszechnie znanego programatora usbasp oraz układu Atmega32.
zakładając że nasz program mieści się w pliku timer2.c użycie będzie wyglądać następująco :

kapec cpp # ./avr timer2
In file included from timer2.c:3:
/usr/lib/gcc/avr/4.1.2/../../../../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete.  Use ."
timer2.c: In function 'main':
timer2.c:99: warning: passing argument 1 of 'lcd_puts' makes pointer from integer without a cast
timer2.c:104: warning: passing argument 1 of 'lcd_puts' makes pointer from integer without a cast
timer2.c:113: warning: passing argument 1 of 'lcd_puts' makes pointer from integer without a cast
timer2.c:133: warning: passing argument 1 of 'lcd_puts' makes pointer from integer without a cast

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9502
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "timer2.hex"
avrdude: input file timer2.hex auto detected as Intel Hex
avrdude: writing flash (3594 bytes):

Writing | ################################################## | 100% 1.98s

avrdude: 3594 bytes of flash written
avrdude: verifying flash memory against timer2.hex:
avrdude: load data flash data from input file timer2.hex:
avrdude: input file timer2.hex auto detected as Intel Hex
avrdude: input file timer2.hex contains 3594 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.07s

avrdude: verifying ...
avrdude: 3594 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

kapec cpp #

Może być tak, że mimo posiadania wszystkiego co wydaje się że jest potrzebne jeżeli chodzi o pakiet avr-libc, zamiast kompilacji otrzymamy komunikat :

Error: Cannot open linker script file ldscripts/avr5.x: No such file or directory

Niezbędny będzie jeden 'myk' z dowiązaniem symbolicznym. U mnie na gentoo takie coś załatwiło sprawę na amen :

ln -s /usr/i686-pc-linux-gnu/avr/lib/ldscripts /usr/i686-pc-linux-gnu/avr/binutils-bin/2.20/ldscripts

Zima

Strzelanka



Fluxbox i zautomatyzowanie ustawiania tapety

Nic w zasadzie odkrywczego ale podziele się ze światem tym, jaki jestem mądry. Fluxbox jak wiadomo jest małożernym środowiskiem graficznym linuxa. Z tej całej małożerności wynika toporność pewnych rozwiązań, które na windowsie rozwiązuje się zwykle dwuklikiem. Postaram się tu opisać swoje rozwiązanie, jak dwuklikiem, w troche mniej topornym menedżerze plików, jakim jest gnome-commander, rozwiązać kwestię pt. 'ustawienie tapety', tak aby uruchamiała się za każdym następnym startem systemu. Jak może już wiadomo, fluxbox odpala podczas swojego startu wszystko co znajduje się w jego pliku

~/.fluxbox/startup

Tam zwykle mieściły się wpisy na kształt

fbsetbg -c tapeta.jpeg &

co ustalało nam tapetę. Teraz powyższy wpis zastąpimy takim oto

sh ~/.fluxbox/wallpaper.sh

Samego pliku wallpaper.sh nie ruszamy, gdyż będzie się to działo samo. Ha!
Tworzymy za to drugi plik, który ja osobiście wymyśliłem sobie, aby nazywał się:

tapeta.sh

W nim ląduje takie coś:

echo "fbsetbg -c $1" > ~/.fluxbox/wallpaper.sh
fbsetbg -c $1

$1 jest tu zmienną która jest argumentem skryptu tapeta.sh, a konkretniej ścieżką do obrazka, który ma być tapetą.
Pierwsza linijka wysyła to co w cudzysłowiach do pliku wallpaper.sh, który wywoływany jest na każdym starcie fluxboxa, dzieki czemu tapeta będzie ustawiana za każdym następnym startem. Żeby jednak nie czekać na następny start, a już teraz zobaczyć efekty zmiany tapety, druga linijka ustawia ją w także w tej chwili. Teraz tylko wystarczy w swoim menedżerze plików skojarzyć akcję ustawiania tapety z typem obrazków, a konkretnie jej polecenie wyglądać będzie tak:

 ~/.fluxbox/tapeta.sh

Domyślnie po ścieżce do programu argumentem jest ścieżka do obrazka więc jakby dodać 2+2 to okazuje się, że wszystko jest jasne i super logiczne, i oczywiste. Tym samym można sobie już zmieniać beztrosko tapety. Rozwiązanie to nie toleruje spacji w nazwach plików, więc posiadania takich nie polecam.

Wspomaganie w 125p

Po roku gadania zamiast robienia zacząłem robić zamiast gadać. Prawie uciałem fleksą przewody paliwowe a samemu sobie ręke, ale w końcu wszystko zostało posadzone na swoim miejscu. Zadziałało z pierwszego kopa! Drugi fiat 125p w mieście (o którym wiem) ze wspomaganiem kierownicy.

img_1094.jpgimg_1095.jpgimg_1096.jpgimg_1097.jpgimg_2012.jpgimg_2013.jpgimg_2014.jpgimg_2016.jpg

Każdy cygan ma pięknego…