March 27, 2013

No Comments

Z-Push Virtual User Support

I’m a fan of push mail. Not having to pull your mail manually or at a given interval is a huge advantage. That’s why I use Z-Push on my private mail server.

Lately I’ve been playing for the second time with the Autodiscovery protocol. Found a neaty little PHP script that does all the magic for me and it seems to work on both iOS 6 and Android 4.2.2. Great! But there was one little problem. Autodiscovery always put the whole email adress as the username. I don’t allow that in my mail configuration. So what now? I couldn’t find a way to persuade Autodiscovery to put the right username as username and I found that this would be too complicated as you can have aliases for mail, so the login part would be wrong anyway.

Fortunately I already use the virtuser_file plugin in RoundCube Mail. Porting it to Z-Push was a piece of cake. Here’s the patch if you’re interested:

--- backend/imap.php.orig	2013-03-27 14:28:03.231378003 +0100
+++ backend/imap.php	2013-03-27 15:01:04.395096310 +0100
@@ -65,6 +65,48 @@
      * default backend methods
      */
 
+    public function email2user($p)
+    {
+            $r = $this->findinvirtual('/^' . preg_quote($p, '/') . '\s/');
+
+            for ($i=0; $i 0) {
+                        $res = trim($arr[count($arr)-1]);
+                        break;
+                }
+            }
+
+            return $res;
+    }
+
+    public function findinvirtual($pattern)
+    {
+	    $file = "/etc/mail/virtual";
+            $result = array();
+            $virtual = null;
+
+            if ($file)
+                $virtual = file($file);
+
+            if (empty($virtual))
+                    return $result;
+
+            // check each line for matches
+            foreach ($virtual as $line) {
+                $line = trim($line);
+                if (empty($line) || $line[0]=='#')
+                    continue;
+
+                if (preg_match($pattern, $line))
+                    $result[] = $line;
+            }
+
+            return $result;
+    }
+
+
     /**
      * Authenticates the user
      *
@@ -84,6 +126,10 @@
         if (!function_exists("imap_open"))
             throw new FatalException("BackendIMAP(): php-imap module is not installed", 0, null, LOGLEVEL_FATAL);
 
+	# if username is a full email, try to find out the real user
+	if (preg_match("/@/", $username))
+		$username = $this->email2user($username);
+
         /* BEGIN fmbiete's contribution r1527, ZP-319 */
         $this->excludedFolders = array();
         if (defined('IMAP_EXCLUDED_FOLDERS')) {
@@ -1804,4 +1850,4 @@
     /* END fmbiete's contribution r1528, ZP-320 */
 };
 
-?>
\ Brak znaku nowej linii na końcu pliku
+?>

This works with Z-Push 2.0.7. My virtual map file looks like this:

email@domain.tld real_username1
email2@anotherdomain.tld real_username1
test@domain.tld real_username2
etc...

If you like it, you can copy&paste the patch or download it from here

Cheers!

December 20, 2012

2 Comments

htaccess: migrate from apache 2.2 to 2.4

If you’ve been postponing your apache httpd upgrade to version 2.4, because changing hundreds of custom .htaccess files is giving you a headache, fear no more for there is a simple perl script that does it for you. I’ve been looking for a similar solution myself for some time now and didn’t find anything, so I’ve written it myself.

It’s nothing fancy, nothing really complicated and it probably doesn’t cover every possible scenario you might have, so if you find something that doesn’t work for you contact me, send me a pull request or whatever.

The usage is fairly simple and the code is published on github.

Usage: ./changeHtaccessStyle.pl htaccess_file

Get it from here.

Cheers!

October 30, 2012

No Comments

DIY: iTunes Sleep

Jako, że z braku laku dobry kit, to zamiast płacić jakieś bajońskie sumy za programy w App Storze, które robią podobną rzecz tylko w ładnym opakowaniu, wolałem sobie napisać sam timer do iTunesa. Nawet nie dla mnie, ale jak by to powiedzieć “na zlecenie”. Dodam tylko, że Apple Script jest mi mniej lub bardziej obcy – dawno robiłem w nim jakieś automatyczne klikanie po różnych programach. Nic szczególnego, dlatego można się tym podzielić za free.

Przetestowane na OS X 10.8.2 i 10.6.8.

property sleepTime : 30

global pauseTime

on getTime()
	repeat
		set res to display dialog "Podaj czas" default answer sleepTime
		try
			set sleepTime to text returned of res as number
			exit repeat
		on error errStr number errNum
			display dialog "Błąd! Podaj czas w minutach"
		end try
	end repeat
	set pauseTime to (current date) + (sleepTime * 60)
end getTime

on pauseMusic()
	tell application "Finder"
		if process "iTunes" exists then
			tell application "iTunes"
				if player state is playing then
					pause
				end if
			end tell
		end if
	end tell
end pauseMusic

on idle
	set curTime to current date
	if (curTime ≥ pauseTime) then
		my pauseMusic()
		quit me
	end if
end idle

on run
	try
		getTime()
	on error number -128
		quit me
	end try
end run

February 15, 2012

2 Comments

Push Mail, Z-Push: czyli ActiveSync dla biednych (PHP jako CGI)

Z-Push

Nastały ciekawe czasy. Co trzeci, sprzedany w 2011 roku, telefon to smartphone. Ludzie chcą sprawdzać maile na telefonie, surfować po internecie i w ogóle robić dziwne rzeczy, których wcześniej nie mogli robić będąc poza domem. Google Mail oraz inne duże portale mailowe wspierają ActiveSync, ale co jeśli w swoim prywatnym grajdole też chcemy mieć fancy push maila zamiast co jakiś czas sprawdzać czy dostaliśmy maila (czy to automatycznie czy ręcznie). Można kupić ActiveSync i postawić serwer na Windowsie. Można też skorzystać z Z-Push, darmowej implementacji ActiveSync w PHP.

Konfiguracja

Jeśli mamy PHP odpalone jako moduł Apache, to skonfigurowanie stabilnej wersji Z-Push 1.5.7 sprowadza się do edycji pliku config.php. Jeśli natomiast, tak jak ja, mamy PHP jako CGI, to rzeźby jest troszkę więcej.

Na początek trzeba w .htaccess przesłać do PHP zmienną HTTP_AUTHORIZATION:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Następnie musimy nauczyć PHP funkcji apache_request_headers() (ta funkcja jest dostępna w PHP jako moduł), ja dopisałem do index.php:

if (!function_exists('apache_request_headers')) {
function apache_request_headers() {
$header = array();
$header['Ms-Asprotocolversion'] = $_SERVER['HTTP_MS_ASPROTOCOLVERSION'];
$header['X-Ms-Policykey'] = $_SERVER['HTTP_X_MS_POLICYKEY'];
$header['User-Agent'] = $_SERVER['HTTP_USER_AGENT'];

return $header;
}

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
}

Następnie edytujemy config.php i ustawiamy backend na BackendIMAP i odpowiedni port. Jeśli chcemy możemy tam ustawić jeszcze parę opcji.

Kolejna bardzo ważna rzecz, to ustawienie aliasów w konfiguracji Apache:

Alias /Microsoft-Server-ActiveSync /path/to/z-push/index.php

Aby sprawdzić czy wszystko działa wchodzimy na adres http://mojadomena/Microsoft-Server-ActiveSync. Powinno spytać nas o login i hasło. Podajemy nasze dane do poczty. Jeśli wszystko jest ok, powinno nas wpuścić i napisać gdzieś na grubo: GET not supported. Znaczy, że działa.

Teraz można już skonfigurować smartphone’a by korzystał z Microsoft Exchange i wpisać dane swojego serwera mailowego. Testowałem na iPhone 4s i Samsung Galaxy S – na obu urządzeniach nie było problemów.

Możliwe jest włączenie autodetekcji ustawień serwera. Nie różni się to w przypadku PHP jako CGI niczym jak w przypadku modułu, dlatego nie będę o tym pisał. Zaciekawionych zachęcam do poszperania w Google. Ułatwia to mniej obeznanym użytkownikom konfigurację, ponieważ wypełnia pole serwera automatycznie.

Bijcie!

July 27, 2011

No Comments

OrbBlast Free – już w App Store

OrbBlast Free Icon

OrbBlast Free – strategiczna gra puzzlowa, za darmo

OrbBlast Free jest darmową wersją gry OrbBlast. OrbBlast jest strategiczną grą puzzlowa dla iPhone’a, iPada oraz iPoda Touch. Gra polega na usunięciu z planszy wszystkich kulek. Kulki są różnych rozmiarów oraz kolorów. Niebieska (najmniejsza) po dotknięciu (lub postrzale) zmienia się w zieloną (troszkę większą), która zamienia się w żółtą (jeszcze większą), a ta zmienia się w czerwoną (największą), która po dotyku (lub postrzale) wybucha i zmienia sąsiadujące kulki. Możliwe są skomplikowane reakcje, które likwidują wszystkie kulki za pierwszym razem. Swoje ruchy należy planować z rozwagą, gdyż do dyspozycji mamy tylko określoną liczbę dotknięć. W razie utknięcia na którymś levelu dostępne są podpowiedzi (3 dziennie, tylko w wersji płatnej), które w wizualny sposób ukazują, które kulki należy dotknąć, by jednak nie było zbyt łatwo, nie jest podana kolejność w której trzeba owe kulki dotknąć.

Gra jest idealna dla ludzi, którzy lubią trochę pogłówkować i rozwiązywać różnego typu łamigłówki. Gra jest całkowicie darmowa, w czasie gry wyświetlane są jednak reklamy.

Jako jeden z autorów, serdecznie polecam!

Główne atuty gry

  • 240 leveli (wersja 1.02, więcej leveli w wersji płatnej)
  • grafika HD (stworzona dla Retina Display)
  • macierz 8×6 kulek
  • integracja OpenFeint, dla rywalizacji multiplayer’owej
  • gra jest za darmo

Dodatkowe funkcje wersji płatnej

  • więcej leveli
  • wizualne podpowiedzi (nie trzeba liczyć kolumn i wierszy)
  • brak reklam

July 17, 2011

5 Comments

OrbBlast – już w App Store

OrbBlast Icon

OrbBlast – strategiczna gra puzzlowa

OrbBlast jest strategiczną grą puzzlowa dla iPhone’a, iPada oraz iPoda Touch. Napisaliśmy ją razem z Danielem w wolnym czasie i jesteśmy dumni, że bez problemu dostała się do App Store. Gra polega na usunięciu z planszy wszystkich kulek. Kulki są różnych rozmiarów oraz kolorów. Niebieska (najmniejsza) po dotknięciu (lub postrzale) zmienia się w zieloną (troszkę większą), która zamienia się w żółtą (jeszcze większą), a ta zmienia się w czerwoną (największą), która po dotyku (lub postrzale) wybucha i zmienia sąsiadujące kulki. Możliwe są skomplikowane reakcje, które likwidują wszystkie kulki za pierwszym razem. Swoje ruchy należy planować z rozwagą, gdyż do dyspozycji mamy tylko określoną liczbę dotknięć. W razie utknięcia na którymś levelu dostępne są podpowiedzi (3 dziennie), które w wizualny sposób ukazują, które kulki należy dotknąć, by jednak nie było zbyt łatwo, nie jest podana kolejność w której trzeba owe kulki dotknąć.

Gra jest idealna dla ludzi, którzy lubią trochę pogłówkować i rozwiązywać różnego typu łamigłówki. Niska cena zachęca do zakupu.

Jako jeden z autorów, serdecznie polecam!

Główne atuty gry

  • 480 leveli (wersja 1.0-1.01, w kolejnych wersjach dochodzić będą kolejne, po 240)
  • grafika HD (stworzona dla Retina Display)
  • wizualne podpowiedzi (nie trzeba liczyć kolumn i wierszy)
  • macierz 8×6 kulek
  • integracja OpenFeint, dla rywalizacji multiplayer’owej
  • niska cena: tylko 1,59€ ($1,99)
  • żadne dodatkowe opłaty za kolejne levele

Zrzuty





May 27, 2011

5 Comments

OS X 10.6 64 vs. 32 bit kernel

Ojj, troszkę się zdziwiłem, jak po przeinstalowaniu systemu na nowy dysk odkryłem, że mimo iż aplikacje są 64 bitowe, to kernel jednak działał tylko w 32 bitach. Szczególnie, że na poprzednim dysku kernel był odpalony w 64 bitach. Jakieś machlojki, ale z drugiej strony, normalka, ponieważ OS X 10.6 dopiero od wersji 10.6.4 włącza per default 64 bit kernel na sprzęcie, który to obsługuje, a ja przecież instalowałem 10.6.0 i upgradowałem.

Czy mój Mac umie 64bity?

Dość łatwo to sprawdzić. To czy nasz kernel jest już odpalony w 64bitach widać wykonując polecenie uname -m. Jeśli wynikiem będzie i386 to mamy odpalony 32 bitowy kernel, a jeśli natomiast x86_64 to 64 bitowy kernel (PPC pomijam).

Ale jak w ogóle sprawdzić czy Mac potrafi odpalić 64 bitowy kernel? Też nie jest to trudne. Interesuje nas bowiem wersja firmware’u EFI. Sprawdzimy ją poleceniem:

ioreg -l -p IODeviceTree | grep firmware-abi

U mnie sprawa wygląda następująco:

$ ioreg -l -p IODeviceTree | grep firmware-abi
    | |   "firmware-abi" = <"EFI64">

Czyli wszystko w porządku. Możemy odpalać 64bitowy kernel.

Metoda jednorazowa

Dla czystego testu czy system w ogóle się uruchomi, należy po uruchomieniu Mac’a wcisnąć i trzymać jednocześnie klawisz ‘6’ i ‘4’, zanim pojawi się szare jabłko. Proste i intuitywne intuicyjne, prawda?

Po udanym boocie systemu, polecenie uname -m powinno pokazać już x86_64.

Teraz wypadałoby nauczyć system by już zawsze uruchamiał system z 64 bitowym kernelem, ponieważ teraz po reboocie system wróci w tryb 32 bitowego kernela.

Metody na stałe

W sumie istnieją trzy metody by na stałe nauczyć system bootować w konkretnej konfiguracji, czy to 64 czy 32 bit kernel.

Metoda sugerowana przez Apple

Ta metoda sprowadza się do uruchomienia polecenia:

sudo systemsetup -setkernelbootarchitecture x86_64

w Terminalu.

Metoda nadpisania PRAMu

Ponoć nie wiadomo co może się stać jeśli użyje się tej metody, a hardware nie wspiera 64bitów. Można jednak system odratować. Polecenie do nadpisania PRAMu wygląda tak:

sudo nvram boot-args="arch=x86_64"

Jeśli system nie wstanie po tej komendzie, można zresetować PRAM do ustawień fabrycznych trzymając przy uruchomieniu komputera jednocześnie klawisze ALT CMD P R.

Metoda edycji pliku konfiguracyjnego

Nie polecam. Dlatego też tylko krótko wspomnę który plik i co do niego wpisać.

Edytujemy plik /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

a w nim dopisujemy arch=x86_64 w sekcji Kernel Flags.

Opłaca się przejść na 64bitowy kernel?

Nie zawsze. Należy sprawdzić czy cokolwiek się poprawiło i czy wszystkie sterowniki i moduły kernela poprawnie działają – niektóre third party moduły są bowiem tylko 32 bitowe, mimo że Snow Leopard wymaga od Developerów by dostarczali 64 bitowe binarki. Kernel 32 bitowy w OS X bez problemu obsługuje aż do 32GB RAM, także jeśli masz więcej, to powinieneś włączyć 64 bitowy kernel. Tyle.

Bijcie!

May 12, 2011

2 Comments

OS X 10.6.7 i Intel SSD 320

Intel, a nie OCZ

Napaliłem się na OCZ Vertex 2 EX, jak rak płuc na Marlboro Country. Długo zwlekałem czekając na tzw. “lepsze czasy”, bo dyski SSD jednak drogie są. Nie żałuję, że czekałem. OCZ okazał się jakiś felerny, przynajmniej Arkadiusz Miśkiewicz z PLDówka opowiadał o swoich nieprzyjemnych doświadczeniach. Ale również na forum OCZ można było przeczytać zniechęcające informacje. Coś o gubieniu danych itd. Mniej więcej w tym samym czasie Intel ogłosił jakąś totalną rewolucję w SSD. Wielkiej rewolucji nie było, za to ceny troszkę spadły i tak właśnie stałem się posiadaczem Intel SSD 320 160GB. Czy będę szczęśliwy to się jeszcze okaże (wszystko na to jednak wskazuje).

OS X tips and tricks

Po zainstalowaniu nowego dysku konieczna była reinstalacja systemu. Początkujący nie powinni panikować jeśli dysk nie będzie widoczny w instalatorze – należy go bowiem najpierw sformatować, dopiero wtedy instalator wskaże go jako jedną z możliwych opcji instalacji. Po instalacji “golasa” z pewnością przyda się też Time Machine Backup. Całość trwała u mnie ~2h (zgrywałem ~60GB z TM). Następnie (tak było u mnie) zostaje update systemu (posiadam płytkę instalacyjną 10.6.0).

Wyłączenie zapisu Access Time

Znana i lubiana wśród linuksowców (ale nie tylko) opcja noatime przyda się też w Mac OS X – szczególnie w przypadku SSD. Aby wyłaczyć atime należy stworzyć mały plik XML o nazwie com.my.noatime.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.my.noatime</string>
	<key>ProgramArguments</key>
	<array>
		<string>mount</string>
		<string>-vuwo</string>
		<string>noatime</string>
		<string>/</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>

i skopiować go do /Library/LaunchDaemons/. W razie potrzeby poprawić właściciela na root:wheel. Reboot.

Wyłączyć SMS (i tak jest zbędne przy SSD)

SMS, czyli Sudden Motion Sensor, przydaję się tylko w przypadku zwykłych dysków z głowicami. W przypadku SSD jest zbędny i można go wyłączyć z roota:


pmset -a sms 0

Dodatkowo opcja -g pokaże czy faktycznie się wyłączyło.

TRIMować, czy nie TRIMować, oto jest pytanie

Nie! Przynajmniej nie w przypadku Intela. OS X 10.6.7 nie ma wbudowanej opcji TRIM dla Third Party SSD, uruchamia to jedynie w niektórych modelach, które rozprowadza Apple.

Z ciekawości jednak włączyłem u siebie TRIM (służy do tego TRIMEnabler, pogooglajcie) i performance spadł mi parokrotnie.

TRIM Disabled – boot time: 11,5s
TRIM Enabled – boot time: 28s

Dla mnie to duża różnica.

Konkluzja

Wiem, że Intel nie jest najszybszym dyskiem dostępnym na rynku. Jest jednak jednym z najsolidniejszych – a na tym mi głównie zależy. Różnica między dyskiem 5400RPM czy 7200RPM jest tak ogromna i zauważalna, że nie ma co płakać o to, że przy zapisie mamy “tylko” 165MB (odczyt 270MB).

Zdecydowanie zatem, polecam Intel SSD 320.

Bijcie!

May 10, 2011

6 Comments

Natywne IPv6 w TLD-Linux

Flaki z olejem na początek

Notka głównie do mnie, bo jak wiadomo, skleroza nie boli. Przy okazji, dzięki Andrzej za podpowiedzi.

Po co mi w ogóle IPv6? A tak jakoś mnie wzięło po przeczytaniu artykułu o World IPv6 Day, który odbędzie się 8 czerwca i wszystkie wielkie firmy internetowe tego dnia ustawią sobie rekord AAAA, to dlaczego ja nie? Was też zachęcam, jeśli macie możliwość.

Na zabawę w 6to4 nie miałem najmniejszej ochoty, bo dobrze pamiętam te cyrki za czasów kiedy mnie to jeszcze interesowało (rok 2001), więc ważnym aspektem, że mi się chciało było to że mój provider udostępnia IPv6 natywnie. Fajnie.

Konfiguracja TLD-Linux

Konfiguracja tego ustrojstwa w TLD (czyli stare PLD Titanium) sprowadza się do wyedytowania paru plików.

Do /etc/sysconfig/interfaces/ifcfg-eth0 dodajemy adresy z naszego przedziału. Np. IPADDR8="2a01:4f8:120:8244::2/59". Prefix /59 mimo, że pulę mam /64 z tego względu, że Gateway mam w innej podsieci.

Następnie do /etc/sysconfig/static-routes dodajemy wpis o routingu, czyli dla mnie jest to eth0 2000::/3 via 2a01:4f8:120:8240::1. Andrzej podpowiedział, że w przypadku IPv6, nie daje się nazwy “default” dla domyślnego routingu tylko właśnie “2000::/3”, co jest jakimś Global Unicastem.

Następnie wywołujemy service network restart i wszystko powinno działać.

Uczenie usług słuchania po IPv6

W apache trzeba taki adres podać w kwadratowych nawiasach + port np. [2a01:4f8:120:8244::2]:80.

W pureFTPd, dla odmiany, trzeba podać hosta, który jest IPv6 ready. Próba zbindowania go zarówno na IPv4 jak i IPv6 kończyła się u mnie bindem tylko na ostatnio podanym adresie. W kolejności od góry do dołu.

Dla amatorów IRCa, ważny będzie Oidentd. Tam ustawią się to w /etc/sysconfig/oidentd (pod warunkiem, że ma się oidentd-standalone). Do zmiennej OIDENT_OPTIONS dodajemy argumenty -a ::. To zbinduje nas na wszystkich adresach.

SSH jest mało ciekawe, bo tam nie trzeba wiele robić, dopisuje się IP i po prostu działa. Innych usług jeszcze nie przestawiałem i jak na razie nie będę tego robił.

That’s all folks. Bijcie!

January 20, 2011

4 Comments

PLD Live Installer – wersja 0.24

Minęły jakieś cztery miesiące od wydania wersji 0.1 instalatora wersji Live systemu PLD Linux Titanium (dystrybucji znanej z bycia nieznaną, zaściankową i niepopularną, taką jak kraj z której się wywodzi). Muszę przyznać, że mimo tej niepopularności samego PLD Linux, instalator odniósł wymierny sukces. Było bardzo wiele miłych komentarzy, jeszcze więcej krytyki i ogromna ilość bug reportów i feature requestów – tylko dzięki tym reakcjom (szczególnie tym złym) instalator jest ciągle rozwijany i jak się nieskromnie przyznam, nabiera coraz ciekawszej formy. Wydaje się nawet troszkę bardziej dojrzały.

Wybierz medium

Nowości

Jak już wspomniałem, zaszło wiele zmian od wydania pierwszej wersji. Wiele z nich opisanych jest w ChangeLogu oficjalnej strony projektu, jednak chciałbym opisać co ciekawsze z nich tutaj na moim blogu.

  • ekran startowy informuje użytkownika o jego preferowanych wymaganiach. Pomysł skradziony z instalatora Ubuntu 10.10. Nie mogłem się za to zabrać, aż w końcu niedawno dostałem E-Maila od Kamila Mroczkowskiego z podobnym pomysłem. Przy starcie instalator sprawdza zatem czy mamy co najmniej 1GB RAMu, skanuje dyski i sprawdza czy wśród nich jest choć jeden większy niż 3GB oraz czy jesteśmy podłączeni do źródła prądu. Ta ostatnia opcja odświeżana jest w czasie rzeczywistym w momencie wyciągnięcia kabelka zasilającego. Oczywiście są systemy i dyski, które niepoprawnie pokazują swój stan zasilania oraz które nie są poprawnie wykrywane przez Solid framework
  • Wybierz medium

  • autopartycjonowanie – w 0.24 mamy do wyboru jeden defaultowy schemat partycji, 2GB na Swap i reszta to Linux. W kolejnych wersjach powinny dojść różne inne schematy autopartycjonowania. Jak na pierwszą wersję z tą opcją, wydawało mi się trochę przerostem dodawanie innych. Ten pomysł podrzucił mi Piotr Budny, jeden z najgłośniejszych krzykaczy i również developer PLD
  • dla bardziej zaawansowanych, mamy znany z wersji 0.1 system wyboru partycji. Wyrzuciłem niedziałający KPart partitionmanagera i zastąpiłem go przyciskiem uruchamiającym partitionmanagera – to również pomysł Piotrka. Miłym efektem ubocznym tego rozwiązania, jest jego łatwa konserwacja. Do tego sprawdzanie czy partycja jest odpowiednio duża by zainstalować na niej system wykonywane jest w tle w czasie rzeczywistym, a nie jak poprzednio po kliknięciu w Next – to na życzenie Pawła Gołaszewskiego
  • Wybierz medium

  • w ekranie użytkownika doszła opcja sprawdzania siły wybranego hasła – w sumie fajny ficzer, muszę przyznać. Kredyt za pomysł należy się Adamowi Karczewskiemu
  • instalator dorobił się funkcji automatycznego uaktualniania. Oznacza to, że jeżeli wkradnie się jakiś mały lecz uciążliwy błąd, nie trzeba będzie ściągać nowego ISO z poprawionym instalatorem, lecz przy uruchomieniu instalator poinformuje nas, że jest dostępna nowsza wersja i że można się uaktualnić. Jeśli zmiany są zbyt duże jednak, taka aktualizacja nie będzie zbawieniem. Użytkownicy wersji 0.22 nie powinni zatem czekać na update, bo go nie będzie
  • nowości jest więcej, ale większość to kosmetyka, jak np. możliwość wyboru czy chce się formatować partycję albo instalować bootloadera czy skorzystać z istniejącego, i nie będę się z nich spowiadał

Poprawki

  • chyba najczęściej zgłaszanym błędem był niedziałający przycisk restartu systemu po udanej instalacji – oznajmiam zatem, że jest już przeszłością
  • dzięki Bartłomiejowi Zimoniowi udało się też ograniczyć żarłoczność RAMu
  • ustawianie hasła dla roota i dopisywanie użytkownika do grupy wheel również było pożądaną opcją

Podziękowania

Osobiście chciałbym podziękować wszystkim zaangażowanym w rozwój instalatora, za wytrwałość w testowaniu i upór w zgłaszaniu błędów (bo ja lubię zapominać). Szczególnie upartym testerem był Sajmon z forum.pld-linux.org. Dzięki.

Bijcie! i do kolejnej wersji!