Jeszcze jeden blog o programowaniu

Radosne twórczości leniwego programisty

Archive for the ‘Ubuntu’ Category

Instalacja fontu Consolas w Ubuntu

leave a comment »

Instalacja fontu Consolas w Ubuntu została bardzo dobrze opisana na kilku stronach, ale dla kompletności pozwolę sobie powtórzyć i skrócić.

Instalujemy odpowiednie pakiety


$ sudo apt-get install font-manager

$ sudo apt-get install cabextract

Do pliku ~/Pulpit/consolas.sh wrzucamy:


#!/bin/sh
set -e
set -x
mkdir temp
cd temp
wget http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe
cabextract -L -F ppviewer.cab PowerPointViewer.exe
cabextract ppviewer.cab

Otwieramy terminal ctrl+alt+t i przechodzimy do katalogu z naszym plikiem (Pulpit). Nadajmy prawo do wykonania chmod +x consolas.sh i uruchamiamy ./consolas.sh.

Chwilę pomieli wyrzucając na ekran wykonywane instrukcje, zaciągnie archiwum CAB z fontami od Microsoftu i zapisze w katalogu temp na Pulpicie.

W terminalu wpisujemy font-manager i uruchomi się niewielkie okienko:

 

 

 

 

 

 

 

Na dole z lewej strony znajdziemy 5 przycisków; pierwszy z prawej strony pozwoli nam zainstalować nowe fonty. Wybierzemy katalog ~/Pulpit/temp gdzie powinien znaleźć kilka – między innymi te z rodziny Consolas. Wybieramy pliki pasujące do CONSOLA*.TTF, pozwalamy Font Manager na przeładowanie biblioteki i już powinniśmy mieć wybrane fonty w systemie.

Po zainstalowaniu wszystko jest niby super, ale gdy wejdziemy np. na StackOverflow zauważymy, że przykładowe źródła przedstawiane są fontem "Consolas Bold Italic" , która wskazuje na plik CONSOLAZ.TTF – mimo, że w CSS określone jest jasno „Consolas”. Nie znam dokładnej przyczyny takiego zachowania, ale rozwiązaniem tego problemu jest po prostu zmiana nazw plików w katalogu /home/USER/.fonts/Library/C/z:


CONSOLAB.TTF
CONSOLAI.TTF
CONSOLA.TTF
CONSOLAZ.TTF

na


CONSOLASB.TTF
CONSOLASI.TTF
CONSOLAS.TTF
CONSOLASZ.TTF

czyli po prostu dodanie literki Sw nazwie.

Written by filipgorczynski

2017.06.16 at 06:33:03

ffmpeg – dzielenie dużego filmu na krótsze kawałki

leave a comment »

Z nieznanych mi do końca przyczyn tańsze odtwarzacze DVD (ale te posiadające port USB) nie radzą sobie za dobrze z systemami plików innymi niż FAT32. Oczywiście, nie byłoby to aż tak problematyczne, gdyby nie fakt, że w takim systemie plików nie da się umieścić pliku większego niż 4 GB. Jak wiadomo filmy w dobrej jakości to dużo gigabajtów. Jedną z alternatyw jest podłączenie do telewizora laptopa lub Raspberry Pi i odtwarzanie bezpośrednio z tego urządzenia – większość ludzi posiada już NTFS lub ext3/ext4, więc większy plik nie będzie problemem.

Gdy jednak mimo wszystkich sprzyjających okoliczności nadal chcielibyśmy podzielić plik z filmem (np. gdybyśmy chcieli go na dyskietkach wysłać do ZUS) z pomocą przyjść może narzędzie ffmpeg i poniższe polecenia:


$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.avi -ss 00:00:00 -t 01:00:00 -async 1 -c copy ~/The.Greatest.Movie.Ever.Sold-part.1.avi
$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.avi -ss 01:00:00 -t 01:55:23 -async 1 -c copy ~/The.Greatest.Movie.Ever.Sold-part.2.avi

Parametr -ss HH:MM:SS określa początek – moment, od którego chcemy zacząć wycinać.

Parametr -t HH:MM:SS określa nam czas, jaki chcemy wyciąć. W przypadku pierwszego polecenia będzie to 1 godzina od początku filmu.

Parametr -async to synchronizacja audio – wartość 1 wg dokumentacji oznacza „wypełnienie i przycinanie” – w praktyce jak to działa – nie mam pojęcia :).

Parametr -c określa kodek, w przypadku podania wartości copy zostanie on skopiowany z pliku źródłowego. O ile dobrze kojarzę, możemy to zamienić na odpowiednie –vcodec i –acodec.

Inna sprawa, że nie każdy odtwarzacz DVD radzi sobie z różnymi formatami plików (np. mkv, mp4) i aby skonwertować plik z filmem z formatu MP4 do AVI może się przydać polecenie:


$ ffmpeg -i ~/The.Greatest.Movie.Ever.Sold.mp4 -qscale 0 -vcodec mpeg4 -acodec ac3 ~/The.Greatest.Movie.Ever.Sold.avi

gdzie parametr -i określa nasz plik wejściowy, -qscale 0 to ewentualna utrata jakości – nas interesuje konwersja bezstratna. -vcodec mpeg4 to kodek wideo i -acodec ac3 to kodek audio. Nie możemy podać wartości copy jak w poprzednich poleceniach ponieważ konwertujemy na inny format pliku, a przez to interesują nas inne kodeki. Na końcu podajemy nazwę pliku wyjściowego, którego docelowy rozmiar zapewne będzie trochę większy od pliku wejściowego.

Samo ffmpeg to nie tylko cięcie czy konwersja filmów, dlatego po więcej możliwości warto skierować się do pomocy tego narzędzia: ffmpeg -h full lub stronę projektu ffmpeg.org

Written by filipgorczynski

2017.06.14 at 07:57:44

Wymuszenie zatrzymania wbudowanego serwera Django na konkretnym porcie

with one comment

Djanglo LogoKorzystając z wbudowanego serwera Django oraz debuggera pdb doprowadziłem do sytuacji, w której w żadnej konsoli ten serwer nie był uruchomiony – próba jego ponownego odpalenia skutkowała komunikatem:

Performing system checks...

System check identified no issues (0 silenced).
September 29, 2015 - 07:47:36
Django version 1.8, using settings 'project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Error: That port is already in use.

Próba otwierania strony w przeglądarce nic nie dawała, reagowało to tak, jak by zatrzymywało się grzecznie na pdb – przy czym żadnych informacji nigdzie o tym nie było.

Przydało się polecenie:

fuser -n tcp -k 8000

Written by filipgorczynski

2015.10.01 at 07:36:28

Ubuntu + Apache2 + symfony framework + wirtualne hosty

with one comment

Postanowiłem spróbować swoich sił z frameworkiem symfony i jadąc po kolei wg zaleceń z kursu Jobeet natrafiłem na problem w konfiguracji serwera Apache2. Wymiataczem Ubuntu też nie jestem, a Jobeet zapomniał chyba wspomnieć o modyfikacji /etc/hosts – w moim przypadku tylko dzięki temu zadziałało. Zawartości moich plików:

Zawartość pliku /etc/hosts

127.0.0.1	localhost
127.0.0.1	www.jobeet.local
127.0.1.1	laptop

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Zawartość pliku httpd.conf

ServerName www.jobeet.local

Zawartość pliku /etc/apache2/sites-available/default

<VirtualHost www.jobeet.local:80>
	ServerAdmin filip.gorczynski@gmail.com
	DocumentRoot /var/www/sfproject/web
	DirectoryIndex index.php
	<Directory "/var/www/sfproject/web">
		AllowOverride All
		Allow from All
	</Directory>
	Alias /sf /var/www/sfproject/data/web/sf
	<Directory "/var/www/sfproject/data/web/sf">
		AllowOverride All
		Allow from All
	</Directory>
</VirtualHost>

<VirtualHost *:80>
	ServerAdmin filip.gorczynski@gmail.com

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride All
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
		Allow from 127.0.0.0/255.0.0.0 ::1/128
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Po tych zmianach i

sudo /etc/init.d/apache2 restart

wszystko śmiga jak należy. Wpisując w przeglądarkę http://www.jobeet.local odwołuje mi się bez problemu do projektu symfony. Wpisanie localhost działa jak poprzednio – czyli póki co wyświetla słodko brzmiące „It works!”.
Jeśli chodzi o strukturę moich katalogów, to ściągniętą paczkę symfony rozpakowałem do /var/www/sfproject/.

Written by filipgorczynski

2010.07.29 at 09:36:11

%d blogerów lubi to: