Skip to main content

blog.dsinf.net

2013

22 lata jądra Linuksa – wypowiedzi Linusa z początku historii systemu, który zmienił świat
·778 words·4 mins
blog.dsinf.net historia linux
17 września 1991 Linus wypuścił pierwszą wersję systemu, który zmienił świat - Linux 0.01
Witaj WP!
·124 words·1 min
blog.dsinf.net
No i przyszedł czas na narzekanie na nowy CMS 😉 Przy okazji nowej domeny postanowiłem odświeżyć nieco mojego bloga i zmienić lekko jego formułę. Drupal odszedł, gdyż był zbyt duży. Nadal pozostaje najlepszym CMSem - po prostu potrzebowałem czegoś prostszego. Oczywiście podzielę się z Wami sprytną (ale lekko brutalną) kwerendą SQL migrującą wpisy z Drupala do WordPressa. INSERT INTO WORDPRESS_posts (id, post_author, post_date, post_content, post_title, post_excerpt, post_name, post_modified, post_type, `post_status`) SELECT DISTINCT n.
Absolutne centrowanie pionowe w HTML (nawet bez CSS)
·131 words·1 min
blog.dsinf.net html
Długo można szukać w sieci odpowiedzi na pytanie “jak wycentrować tekst w pionie?”. A rezultat? Mijaki na statyczny tekst, super skrypty korzystające z jQuery do zmiany marginesów, nieładne cosie oparte na table-cell ( http://stackoverflow.com/questions/4180594/vertical-centering-of-a-horizontal-scrolling-div), top: 50%; ( http://www.werockyourweb.com/css-vertically-horizontally-center)… podczas gdy istnieje rozwiązanie, może mniej eleganckie ale zato skuteczne i działające nawet w IE - tabelka. Brzmi jak wstęp do starożytnej szkoły HTMLa (no dobra - średniowiecznej, bo w starożytności uczono frame’ów), czyż nie?
Szybki gotowiec na ochronę przed SQL Injection w PHP
·115 words·1 min
blog.dsinf.net php zabezpieczenia
Kod krótki, ale jakże niezbędny. Podstawowa wersja podmienia wszystkie zmienne przekazane przez GET i POST: foreach ($_GET as &$z) $z = preg_replace('/[^a-zA-Z0-9_ \[\]\.\(\)\{\}\^\@\#\?\!.,&]/s', '', $z); foreach ($_POST as &$z) $z = preg_replace('/[^a-zA-Z0-9_ \[\]\.\(\)\{\}\^\@\#\?\!.,&-]/s', '', $z); Regexa (pomiędzy ukośnikami) można dostroić do naszych potrzeb i pokusić się o ładną funkcję, która będzie zależna od typu danych - coś w rodzaju function make_string_safe($string, $type){ $regex_inters = array ( 'unsigned_int' => '0-9', 'float' => '0-9-,.
Skrypt do zmiany domyślnego interpetera Pythona
·270 words·2 mins
blog.dsinf.net bash linux python
Python w 2008 roku doczekał się kamienia milowego - wersji 3.0 (Py3K), która jest kompletnie wstecznie-niezgodna z 2.x. Obecnie w użyciu stabilnym jest 3.3. Warty przeczytania dokument znajduje się na oficjlalnej Wiki - http://wiki.python.org/moin/Python2orPython3. Najprościej wskazać różnicę w echo - w 2.7 była to niemal dyrektywa, teraz echo stał się funkcją - stąd: echo "witaj świecie w Pythonie 2.7 - działam bez nawiasów"; echo("witaj świecie w Pythonie 3.0 - potrzebuję nawiasów"); Dwa lata temu deweloperzy Arch Linuxa postanowilicalowicie przejść na v3 ( https://www.
Ostateczne ominięcie Program Compatibility Assistant w Windows 8.1
·312 words·2 mins
blog.dsinf.net program compatibility assistant windows windows 8.1
W najnowszej wersji beta Windowsa - 8.1 i 2012 R2 Program Compatibility Assistant stał się jeszcze bardziej denerwujący, uniemożliwiając uruchomienie niezgodnych aplikacji. Ponadto nie da się go wyłączyć przez rejestr ani edytor zasad grupy. Wszystko za sprawą przyjęcia nowego modelu obsługi zgodności ( http://msdn.microsoft.com/en-us/library/dn302074%28v=vs.85%29.aspx). Można na siłę zmieniać ustawienia w gpedit.msc - Computer configuration -> Administrative Templates -> Windows Components -> Application Compatibility - tam Turn off App Compatibility Engine i Turn off Program Compatibility Assistant w siódemce wystarczyło przestawić na Enabled.
syntax error : missing ’;’ before 'type’ //C w MSVC
·112 words·1 min
blog.dsinf.net c++ msvc visual studio
MS Visual C obecny w Visual Studio (nawet w 2013!) jako kompilator czystego C z bliżej nieznanych powodów używa wersji języka z 1990, w której niedozwolone było definiowanie z deklaracją w jednej linii, czyli int zmienna = 0; zwróci błąd w czasie kompilacji syntax error : missing ';' before 'type' To, co wydaje się normalne zostało wciągnięte w wersję C z 1999. Zatem trzeba po prostu wpisać dziwnie wyglądające dla programisty C++
Przekierowanie z HTTP na HTTPS (mod_rewrite)
·107 words·1 min
blog.dsinf.net apache2 webserver
Często chcielibyśmy, żeby użytkownik nie miał szans wysłać danych w plain-text. Można to zrobić dzięki mod_rewrite - pluginowi Apache’a domyślnie zitegrowanego z większością instalacji. Zmiany możemy wprowadzić w głównym konfigu - /etc/apache2/http.conf - wówczas docelowe linie wprowadzamy w znaczniku <Directory /nasz/katalog/z/witryną> jakieś dyrektywy </Directory> Alternatywnie konfig można wprowadzić do pliku .htaccess umieszczonego w interesującym nas katalogu - jedyna opcja przy hostingu. Typowo przekierowanie powinno wyglądać tak: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.
C++: Konwersja systemów liczenia
·293 words·2 mins
blog.dsinf.net c++ matematyka systemy liczenia
Jak nauczył mnie tegoroczny konkurs o dziką kartę NMC trzeba zawsze mieć konwerter wszystkich możliwych systemów liczenia, bowiem liczenie zadania na 5 konwersji kilkucyfrowych liczb i jednego XORa to wystarczający powód by się lekko zdenerowować 😉 Zadanie brzmiało: 7. Wybierz poprawny wynik operacji 3A995(11) XOR 153262(7) a. 799A(17) b. 13BB3(13) c. B024(15) Cóż, nie ma co się załamywać, tylko trzeba pisać program i mieć go potem cały czas przy sobie. Kod, który jakiś czas temu powstał
NTFS: Odzyskiwanie uprawnień po innej instancji systemu
·166 words·1 min
blog.dsinf.net ntfs windows
Po reinstalacji Windowsa może nas przywitać smutna niespodzianka - pliki na dysku z danymi mają prawa własności na poprzednią instancję i z jakichś powodów reszta świata ma readonly. Oczywiście - można pod Linuksem pliki skopiować, oryginały usunąć i wgrać z powrotem, ale dziś rozwiązanie mniej brutalne i dodatkowo “server friendly”, czyli bez restartu. Oto lista kroków niezbędnych do odzyskania pełnej kontroli nad plikami (oczywiście najlepiej byłoby mieć uprawnienia administratora na naszym systemie):