Technicznie

Sobota, 17 kwietnia roku bezpańskiego MMX
 

Głuchy notebook Fujitsu-Siemens Lifebook i udana amputacja

 

Jak zwykle udaną naprawą wypada się pochwalić. Tym razem poszczęściło się starusieńkiemu Lifebookowi, w którym tajemniczo milczały głośniki.

(more…)

Piątek, 22 stycznia roku bezpańskiego MMX
 

Maszyna do szycia

 

Jak coś nie działa jak powinno, i Sinus to coś dorwie, to najpewniej rozkręci, skręci z powrotem, w sumie nic nie naprawi, ale jakoś potem będzie działało lepiej. Tym razem oberwało się prastarej maszynie do szycia marki Łucznik.

(more…)

Środa, 28 października roku bezpańskiego MMIX
 

Emacsem przez Sendmail, czy raczej Qmailem na Gmaila

 

Gmail mnie nie lubi. Uwziął się, że maile z mojego IP (jakiekolwiek teraz w Netii bym nie dostał) będzie traktował jako spam, i już z SMTPa mnie odsyła precz. No to, pomyślałem, ja cię załatwię, draniu. Wpisałem sobie w /var/qmail/control/smtproutes:
:smtp.gmail.com
Ale nie, figa, to samo. Na jakiejś przydatnej stronce przeczytałem, że to trzeba w pełni poprawnie, przez TLS, z hasłem i w ogóle. Ale tu niespodzianka – goły qmail, z pakietu netqmail-1.05, nie zna sztuczek ze STARTTLS ani podobnych, ba, nie ma nawet łatki “remote-auth”, pozwalającej mu podawać poświadczenia przy przesyłaniu poczty gdzieś dalej! No ale nic to, walczymy. Instaluję netqmail-1.06, łatam netqmail-1.05-tls-smtpauth-20070417.patch, aby nauczyć qmaila TLSa i SMTP-AUTH (poszło pięknie), łatam qmail-remote-auth.patch, aby qmail-remote umiał logować się jak zwykły MUA… I co? I dupa! Patch był do starszego qmaila, albo na innym poziomie patchowania, cokolwiek. Nie pasuje i już.

Cóż było robić… napisałem własnego patcha. Bierzcie i jedzcie z tego wszyscy. Oto mój patch.

Oczywiście jeszcze o /var/qmail/control/smtproutes było trzeba zadbać:
:smtp.gmail.com:587 user@gmail.com password

I teraz działa.

 Here’s the long story cut short: If you’re trying to get qmail to have both TLS, SMTP-AUTH and remote-auth capabilities, just install netqmail-1.06, patch it with the netqmail-1.05-tls-smtpauth-20070417.patch, and then apply my patch instead of the vanilla qmail-remote-auth.patch which doesn’t work with a tls-smtpauth patch under it. Done.

Środa, 12 sierpnia roku bezpańskiego MMIX
 

No to mamy 4 mbit :]

 

Netia sfailowała z wyborem firmy kurierskiej. Wręczyli mój router-AP firmie DPD. Kurier w czwartek (7.08) chciał się umówić na odbiór, ale jeszcze byłem poza Warszawą. Jeszcze zadzwonił w poniedziałek, ale nie zdążyłem odebrać komórki – trzy dzwonki, tak na oko, i dzwoniący się rozłączył, a dzwonił z zastrzeżonego, więc nie mogłem oddzwonić. Dziś się zaś dowiaduję, że firma kurierska już zwróciła przesyłkę nadawcy jako niedostarczoną! Nie minęło jeszcze “przepisowych” 7 dni, i kurier tylko raz tak naprawdę szczerze próbował się umówić na odbiór… Musiałem Netię pogonić, żeby znowu wysłali ustrojstwo, i to już nie firmą DPD, ale to zajmie jeszcze ze 2-3 dni.

Tymczasem – Polak nie cielę, sobie poradzi. Stary neostradowy modem Sagem F@st 800 bardzo ładnie Netię też obsługuje, także sieć już mam. Śliczne 4 mbit / 500 kbit. I to taniej, niż 1 mbit / 256 kbit w neozdradzie ;P

Środa, 12 sierpnia roku bezpańskiego MMIX
 

Pielgrzymka z neostrady do netii

 

Przenoszę się właśnie z neostrady tepsowej na netiowy 4mbit – lecz oto znalazłem się w kuriozalnym punkcie.

1 sierpnia wygasła mi umowa z TPSA na neostradę. Sieć padła szybciutko, livebox się nie łączy, prawidłowo. Tegoż samego dnia, wedle umowy, moje łącze miała przejąć Netia – na mocy jakiejś umowy między operatorami o uwolnienie czegoś tam – nie wiem, pewnie i przejęła.

12 sierpnia mieli mi włączyć usługę sieciową, mój wymarzony 4mbit – ale kurier się spóźnia, na dodatek jeszcze ja zgubiłem dowód i mogą być jaja z legitymowaniem się… Dzwonię zatem na netiową infolinię i potwierdzam, że od biedy można z ich internetu korzystać nawet starym Sagemem od neostrady, bo to też ADSL i nawet na tych samych co neo parametrach.

Sagema nie zmusiłem do pracy, no to odpakowałem już zapakowanego do zwrotu liveboxa.

I tu – niespodzianka. Livebox się zsynchronizował… ZALOGOWAŁ na moje dane neostradowe… i dostałem stary adres IP z puli neostrady!

Czyli – mam cały czas neostradę, choć łącze już jest pod kontrolą Netii i z TPSA nie wiąże mnie już zupełnie nic. Hm, to może ja ten internet netiowy zawieszę i będę miał neo za darmo, skoro TPSA o mnie zapomniała? Albo co?

Ale jajo, co? :D

Poniedziałek, 20 lipca roku bezpańskiego MMIX
 

Naprawiłem klejownicę

 

Popsuła mi się klejownica – najtańsza tandeta, to się nie dziwię, że się wzięła i uszkodziła. Ot, drucik się wziął i urwał od elementu grzewczego, który – oczywiście – rozłożyłem, zacisnąłem na nowo, i złożyłem. Tenże element jednakże mnie zdumiał: otóż całe “serce” klejowniczki stanowią dwie miedziane blaszki, przypięte wprost do kabla od 220V, przedzielone (pękniętym, u mnie) kawałkiem jakiegoś kamieniopodobnego materiału.
Tu moje pytanie do kogokolwiek, kto się zna: cóż to za ledwie przewodzące, grzejące się ładnie, pieroństwo?

Czwartek, 16 lipca roku bezpańskiego MMIX
 

Szlakiem automatów nadmorskich – edycja 2

 

No i się stało – pojechałem znowu, popedałowałem trochę, i wróciłem. Przejechałem, zgodnie z planem, wybrzeże (tym razem) od zachodu – Międzyzdroje – po wschód – Hel. Wszelkie napotkane automaty do gier muzycznych zostały skrupulatnie spisane, wedle założeń wycieczki, i zostaną równolegle na Krokmanię oraz DDR Poland wywieszone, wraz z mapką rozmieszczenia maszyn.

Uwaga: długie, szczegółowe i pełne anegdotek z podróży. Tak, żebym więcej nie zapomniał, komu o czym opowiadałem… ;P
(more…)

Środa, 25 lutego roku bezpańskiego MMIX
 

Programistom urywam rączki. Tanio.

 

Właśnie na nowo odkrywam uroki poprawiania kodu po kimś. Ot, typowa robota – coś nie działa, weź napraw. Cóż można jednak znaleźć w cudzym kodzie? Panie i panowie, scyzoryki w kieszeń, zaraz będą się same otwierać.

Eksponat pierwszy – pole formularza typu checkbox, zaznaczone, jeśli formularz już był raz wypełniany i wrócił po poprawki:

<?php
$tmp="serwis2";
if ($_POST[$tmp] == "on") {
?>
<td><input type="checkbox" name="serwis2" checked="yes"/>opcja</td>
<?php
} else {
?>
<td><input type="checkbox" name="serwis2"/>opcja</td>
<?php
}
?>

Rozumiem, że

<td><input type="checkbox" name="serwis2" <?php if ($_POST["serwis2"]=="on") { ?/>checked="yes" < ?php } ?>>opcja</td>

… było za skomplikowane. Trzeba było tę zmienną $tmp koniecznie. Co to jest, do licha, jakiś auto-generator PHP?

Eksponat drugi. Zwracanie błędów z funkcji najlepiej robić o tak:

return "brr";

Będzie informatywnie i wyczerpująco.

Eksponat trzeci. Sprawdzanie poprawności formularza. Oczywiście, jest kilka metod – client-side czyli javascriptem i odmówimy przesłania niepoprawnego formularza, albo server-side czyli sprawdzamy jakimś PHPem i odsyłamy do poprawek, albo łącząc te dwie techniki AJAXem. Tu geniusz wynalazł sposób czwarty. Otóż formularz jest – po kolei – sprawdzany javascriptem, generowane są komunikaty o błędach, a następnie… formularz, z tymi komunikatami i statusem błędu przy pomocy javascriptu wmontowanymi w ukryte pola, zostaje i tak posłany na serwer. Tylko po to, by się od niego odbić na pierwszym ifie (no bo jest niepoprawny przecież, jako w nim samym stoi wyraźnie, <input type=”hidden” name=”error” value=”cośtam”> – no i to pole error zostaje wyświetlone użytkownikowi, wraz z formularzem do poprawki. Tylko po kiego czorta w ten sposób?

Poprawka – w przypadku formularz prawidłowo wypełnionego, o zgrozo, nie zostaje on zaakceptowany. Zostaje znów “odrzucony” tylko tym razem zaopatrzony w kawałek javascriptu, który zmienia mu adres docelowy na innego PHPa, po czym formularz automatycznie podsyła.

Ratunku.

Piątek, 10 października roku bezpańskiego MMVIII
 

Migrating WordPress while changing table prefix

 

I’ve lost over an hour today on a macabre discovery: WordPress uses the configurable “table prefix” not only for table names, but for some key names in the user meta-data tables!

In a nutshell: when migrating WordPress with changing the table prefix, say, from the default “wp_” to “blabla_”, your user rights are going out the window – even your administrator user will be helpless like a newborn kitten. That’s because WordPress, when installing its tables, used the prefix to create a “wp_user_roles” entry in the wp_options table, and some similar entries in the wp_usermeta table. Yup, that’s basically a prefix-in-a-prefix scenario, quite ridiculous. To get everything running again, you’ll need to change all the “wp_*” entries in your new blabla_options and blabla_usermeta tables into “blabla_*” entries.

I cannot fathom why this was done in such a crazy manner…