Darmowy upgrade z Windows 7 do Windows 10

Microsoft zakończył support dla Windows 7 w dniu 14 stycznia 2020. Oznacza to brak aktualizacji, w tym brak poprawek bezpieczeństwa. W idealnym świecie systemy z Windows 7 powinny zniknąć, jako przestarzałe.

W 2016 Microsoft przeprowadzał kampanię promującą darmową aktualizację do Windows 10. Oficjalnie kampania została zakończona, ale mechanizm nadal działa, co oznacza, że technicznie nadal można zaktualizować Windows 7 do Windows 10.

Aby dokonać aktualizacji, wymagany jest oryginalny Windows 7 lub 8 z aktywowaną licencją. Wystarczy pobrać narzędzie ze strony Microsoftu i uruchomić je. Istnieje możliwość stworzenia nośnika, albo aktualizacji bieżącej instalacji, i ta ostatnia możliwość jest najbardziej interesująca. Upgrade’u można dokonać dla dowolnego wariantu systemu (szczegóły w źródle).
Oczywiście przed tak poważną operacją warto zrobić kopię bezpieczeństwa. Na pewno danych, ale na wypadek, gdyby coś poszło źle, warto zrobić także backup systemu, na przykład obraz dysku.

Systemy bez aktualizacji bezpieczeństwa stanowią zagrożenie zarówno dla swoich użytkowników, gdyż może dojść do infekcji i wycieku danych, jak również innych komputerów w sieci, stając się po infekcji częścią botnetu i uczestnicząc w atakach. Z punktu widzenia bezpieczeństwa sprawa jest prosta – trzeba aktualizować.

Czy operacja jest legalna? Nie jestem prawnikiem. Za przemawia fakt, że sam producent udostępnia mechanizm i oferuje możliwość aktualizacji, była nawet specjalna kampania promująca taki upgrade, a system nie różni się od takiego aktualizowanego w roku 2016.

Źródło: https://www.zdnet.com/article/heres-how-you-can-still-get-a-free-windows-10-upgrade/

Wtyczki do WordPressa

Przesiadka na WordPressa była dobrym posunięciem, jednak ku mojemu zdziwieniu goły WordPress nie ma możliwości zrobienia – przynajmniej w prosty, cywilizowany sposób – wielu podstawowych rzeczy. Musiałem doinstalować pewne wtyczki, a po bliższym zapoznaniu się z tematem okazało się, że trafiają się tam naprawdę rewelacyjne narzędzia.

Wtyczki podzieliłem – bardzo subiektywnie – na dwie grupy – trzeba mieć oraz warto mieć. Zwykle będą to najniezbędniejsze narzędzia do podstawowych funkcjonalności, zdrowego SEO oraz narzędzia do optymalizacji bloga, zwł. czasu ładowania strony. Pora na grupę pierwszą, czyli pluginy IMO niezbędne:

BackWPup
Niezależnie od tego, czy masz własny serwer, korzystasz z hostingu który „robi backupy” czy kupujesz gotowca, warto mieć własną kopię zapasową. BackWPup robi robotę, ma sporo opcji konfiguracyjnych co backupować i gdzie przesyłać backup (tu akurat średnio jestem przekonany, lepiej zaciągać backup, niż go wysyłać z backupowanej maszyny). Potrafi działać cyklicznie, bez ingerencji, umie zrobić pełną kopię, wraz ze zdjęciami. Przypadł mi do gustu, więc nie testowałem alternatyw.

Advanced noCaptcha & invisible Captcha
Że spam na blogu może się zdarzyć – wiadomo. Miałem włączoną moderację, więc nic się nie prześlizgnęło, ale spamu wpadała cała masa. W przeciwieństwie do mniej popularnych platform blogowych, blogi oparte o WordPress są narażone na automatyczne znajdowanie przez boty, a wtedy… przychodzi nawet po kilka spamów dziennie. Moderowanie szybko mi się znudziło, różnego rodzaju rozwiązania antyspamowe mnie nie do końca przekonywały, postawiłem na standardowe rozwiązanie od Google. Ujęło mnie tym, że potrafi zabezpieczyć nie tylko formularz komentarzy, ale także logowanie, co znacznie utrudnia atak brute force (chociaż nie powstrzyma zdesperowanego atakującego, są rozwiązania do łamania CAPTCHA od Google). Prosta, standardowa konfiguracja, do wyboru różne warianty captcha, w tym wersja niewidoczna. Spam niemal zniknął, pojedyncze sztuki w miesiącu to raczej robota ludzi.

Download External Images In Posts
Znalazłem go poszukując sposobu na zaimportowanie obrazków podczas migracji z Blox i w sumie zrobił mi dzień. Działa w ten sposób, że pobiera zdalne obrazki i zapisuje je lokalnie, następnie serwuje z naszego serwera. Dzięki temu blog ładuje się szybciej (brak odwołań do wielu domen), mamy pełną kontrolę nad treścią i gwarancję jej niezmienności. Warto tu przypomnieć, że należy podawać źródło, skąd pochodzi dany obrazek na naszym blogu. Jeśli mamy ten plugin to odwiedzający nie może nawet „po prostu” zajrzeć w źródło, żeby to sprawdzić. Drobną wadą jest to, że nasz blog zajmuje nieco więcej miejsca – w końcu wszystkie zasoby są przechowywane u nas, ale przy dzisiejszych pojemnościach i cenach hostingu nie powinien być to żaden problem.

Najważniejsze wtyczki za nami, pora na mniej istotne.

Insert Headers and Footers
Potrzebowałem dodać statystyki Matomo (dawniej Piwik) i… okazało się, że w gołym WordPressie nie bardzo można to zrobić. Oczywiście do wszystkiego są dedykowane pluginy, ale jeśli ktoś – podobnie jak ja – przywykł do tego, że sam robi odpowiednie wklejki w stopce, to jest to plugin w sam raz dla niego. Nie szukałem alternatyw.

Cache Enabler
Z tym pluginem jest śmieszna historia. Tak naprawdę nie chodziło mi o cache czy różnego rodzaju funkcje optymalizacyjne (to już miałem zrobione, czy to natywnie w serwerze WWW, czy ręcznie), tylko o funkcję ukrytą pod nazwą create an additional cached version for WebP image support. Okazało się, że jest to – a przynajmniej był – najprostszy sposób, by zmusić WordPressa do serwowania grafik w formacie WebP przeglądarkom, które ten format umieją.

EWWW Image Optimizer
Narzędzie do optymalizacji grafik przechowywanych lokalnie. Mocno konfigurowalne, klikalne, potrafi bezstratnie (oraz stratnie, jeśli ktoś woli i wybierze taką opcję) optymalizować rozmiar zdjęć, dzięki czemu blog zajmuje mniej miejsca i wczytuje się szybciej. Potrafi też dokonywać przeskalowania grafik, dzięki czemu wysyłana jest nie tylko zoptymalizowana, ale najbliższa danemu rozmiarowi ekranu wersja. Domyślnie korzysta z zainstalowanych dodatkowych programów, więc nie jestem przekonany, czy będzie działał na shared hostingach. Jeśli ktoś ma swój VPS – polecam.

Google XML Sitemaps
Goły WordPress posiadał szczątkową sitemapę, albo wręcz jej nie posiadał. Plugin załatwia sprawę generowania sitemapy, która ułatwia poprawne zaindeksowanie treści. Jest sporo alternatyw w różnych wtyczkach do SEO, ten plugin spodobał mi się, bo nie jest kombajnem, robi tylko sitemapę.

Subscribe to Comments Reloaded
Chciałem dać czytelnikom często spotykaną na innych blogach i często przeze mnie wykorzystywaną możliwość subskrypcji komentarzy do danego wpisu, stąd jego obecność. Zachwalana funkcjonalność nie spotkała się z szerszym zainteresowaniem, ale samo rozwiązanie wydaje się działać OK. Na niedziałanie nikt się nie skarżył, alternatyw nie szukałem.

Tyle o pluginach, jeśli znasz inne ciekawe, podziel się nimi w komentarzach. Jeśli potrzebujesz pomocy z konfiguracją WordPressa – zapraszam do działu kontakt.

Porządki

Od jakiegoś czasu noszę się – niezbyt intensywnie, ale jednak – z zamiarem zmiany dostawcy internetu u rodziców, czyli rezygnacji ze starego, wolnego łącza ADSL, ale taniego w wartościach bezwzględnych, będącego zaszłością na rzecz czegoś nowego, szybszego i przede wszystkim tańszego. Bo 1 Mbps ssie coraz bardziej. Klasyczne radiówki-osiedlówki odpadały zawsze w przedbiegach. Prędkość OK, ale za dobrze znam realia, więc wiem, że ze stabilnością może być… różnie, a na prędkości aż tak mi nie zależy. Do tego dochodzi jednak konieczność montażu anteny i to, plus brak istotnych różnic w cenie przeważa szalę. Żeby był sens cokolwiek zmieniać, to cena musiałaby spaść do jakichś 25 zł/m-c.

Potem pojawił się internet od operatorów GSM. Początkowo drogi, ale ceny już spadły, transfery i opóźniania są niższe, niż na obecnym rozwiązaniu. Jedynym problemem, który pozostał, są pakiety ruchu. Na routerze mam odpalonych trochę własnych gratów (backupy, wykrywanie spamu na Blox itp. itd.), do tego dochodzi ruch generowany przez komputery. Z logów pppd wynika, że wysyłane dane to 50-100 MB/dobę, a pobierane to 500-1000 MB. Gdyby któryś operator dawał 30 czy 50 GB w pakiecie za grosze, to nie byłoby problemu, ale niczego takiego nie znalazłem (TBH nie szukałem jakoś intensywnie).

Zatem do tej pory głównym blokerem było ustalenie, co generuje transfer. O ile ustalenie, czy ruch powstał lokalnie, czy pochodzi z końcówek nie jest problemem (wystarczy sprawdzić liczniki na interfejsach), o tyle totalnie odbiłem się od możliwości ustalenia, które procesy generują ruch sieciowy w Linuksie. Tzn. problemu nie ma, jeśli są to działające cały czas demony, ale jeśli mamy – jak w tym przypadku – wiele skryptów uruchamianych z crona, w dodatku korzystających z zewnętrznych poleceń to jest… ciężko. Wyszło mi, że można albo zrobić wrapper, podpiąć go pod wszystkie skrypty i zliczać ruch przy wywołaniu, albo – jeśli uruchomione procesy działają dłużej – uruchamianie z crona skryptu, który sprawdzi dane dla aktualnie uruchomionych procesów w /proc. Tak czy inaczej, trochę za dużo pracy w stosunku do potencjalnego zysku, bo ostateczne i tak nie wszystkie skrypty chcę wynieść na obcą infrastrukturę.

Dziś siadłem, rzuciłem okiem w crona i odpowiedziałem sobie na zajebiście ważne pytanie: co jest tak naprawdę niezbędne? Zbieranie danych o Blox i spamie – z tego nic się nie urodzi. Backupy blogów – przeniesienie w inne miejsce jest trywialne. Więc nie będę zliczał ruchu, tylko wyłączę rzeczy, które raczej generują spory transfer, a które były kiedyś fajne i zajmujące, ale są już nieprzydatne i działają z rozpędu. Za tydzień zaś po prostu sprawdzę, ile jest wygenerowanego ruchu i jak to się ma do pakietów danych w GSM.

I tu pytanie do czytelników. Jakie rozwiązania (operatorzy, pakiety) do transmisji danych po GSM polecacie? Warunki brzegowe: cena oraz brak abonamentu (dokładniej: lojalki). Na razie na oku mam:

  • Aero2 z pakietami 30 GB za 30 zł (to na wypasie, starczyłoby i teraz, ale jak mówiłem, bez sensu zmiana cenowo) oraz 3 GB za 5 zł (brzmi bdb i jest spora szansa, że po porządkach dwa czy trzy takie wystarczą w zupełności)
  • Virgin Mobile z pakietami 3 GB za 15 zł oraz 10 GB za 25 zł (gdybym mieścił się w odpowiednio dwóch i jednym pakiecie). Niby drożej, ale jest szansa, że opędzę wszystko na kodach USSD plus dochodzi normalny numer głosowy, co może nie być głupie.

Porządki z telefonem

Nie przepadam za smartfonami do dzwonienia. Zdecydowanie lepiej w tej roli sprawdza się wg mnie dumbphone typu Nokia 3110c (z dostępem do netu od biedy, zresztą). No ale koniec końców trzeba było po parunastu latach zmigrować – tu operatorzy powinni się zastanowić nad tworzeniem grafów powiązań userów i co oznacza naprawdę przeniesienie danego numeru do innej sieci. W każdym razie wylądowałem w Virgin Mobile. Przy tej okazji ściągawka wybranych krótkich kodów w Virgin Mobile. Z fajnych rzeczy – mają pakiety Freemium, które nieźle nadają się do nawigacji samochodowej (300MB internetu) i pozwalają bez stresu sprawdzić w praktyce zasięg, jakość rozmów itp. Znaczy przynajmniej kiedyś, nie wiem jak to wygląda teraz, jak jest obowiązek rejestracji kart SIM…

W każdym razie największym wyzwaniem okazała się synchronizacja kontaktów. Coś miałem w starej Nokii na telefonie, większość na karcie SIM, poza tym nowy telefon też zdążył dorobić się osobnej bazy kontaktów. Wpadłem na pomysł sczytania wszystkiego na komputer (od razu backup by się zrobił…), przejrzenia, posortowania i wczytania na telefon. Na szczęście nie bawiłem się w sczytywanie z Nokii 3110c, choć kiedyś to opisywałem, tylko stwierdziłem, że zrobię eksport do pliku, następnie przełożę kartę SIM i zrobię kolejny eksport. Trochę z dmuchaniem na zimne, bo jeszcze musiałem skopiować kontakty z telefonu na kartę, a pewności nie miałem, czy telefon realizuje to przez złączenie, czy nadpisanie.

Przy okazji – nie wiem kto projektował eksport kontaktów na kartę w Androidzie, ale… skopał. Znacznie prościej wysłać mailem, niż zapisywać na kartę, bo eksport następuje – jak informuje telefon – do uroczo intuicyjnej lokalizacji /mnt/sdcard/System/PIM/PIM00001.vcf. Nielinuksiarzy pewnie wystraszy już pewnie /mnt, a po przełożeniu karty do komputera można się lekko naszukać. No bo po co zrobić ten eksport w głównym katalogu karty SD… U mnie skończyło się kolejnym eksportem, żeby doczytać komunikat o lokalizacji.

Okazało się, że kontakty zarówno na Nokii, jak i Androidzie są łączone, ale… powtarzające się kontakty tworzą duplikaty. Nawet jeśli są identyczne. Bardzo user friendly. W każdym razie zerknąłem na strukturę pliku z eksportem z Androida (vCard) i stwierdziłem, że szybciej będzie mi zrobić skrypt, który usunie duplikaty, niż szukać czegoś, co się tym zajmie. I tak powstał vCardUniq.

Skrypt robi tylko jedną rzecz – czyta ze STDIN vcardy, eliminuje identyczne (muszą być obecne i zgadzać się wszystkie dane, by były identyczne) i wypluwa na STDOUT wynik, który można wczytać do telefonu. Może się komuś przyda…

Obudź sobie Linuksa

Mało kto wie, ale komputer może się sam włączyć o zadanej godzinie. Zupełnie sam, bez pomocy zewnętrznych źródeł, magic packet i Wake-On-LAN. Można to wykorzystać do oszczędzania energii (i zużycia sprzętu), a przy tym nie musieć włączać komputera ręcznie, nie czekać na jego uruchomienie, ogólnie – mieć wrażenie, że działa on cały czas.

W szczególności można zrobić z komputera budzik (włączy się o zadanej godzinie i np. odtworzy zadany utwór albo stację radiową) czy też do maszynki przyjmującej backupy (nie musi być włączona cały czas, wystarczy włączyć ją na czas transferu backupu i wyłączyć po ich przesłaniu). Automagiczne włączanie przydać się może także w firmie, gdzie Linux pełni rolę serwera NAS i wydruku – nic nie stoi na przeszkodzie, by wyłączał się po pracy (np. 18:00), a uruchamiał przed przyjściem pierwszych pracowników (np. 7:00).

Wszystko to można osiągnąć za pomocą programu rtcwake będącego częścią util-linux z odpowiednimi parametrami.

Na początek warto jednak pamiętać, że wyłączenie wyłączeniu nierówne. Program rtcwake obsługuje m.in. następujące tryby wyłączenia (wybierane przełącznikiem -m):

  • standby – stan ACPI S1. Minimalne oszczędności energii, błyskawiczny powrót do działającego systemu. Tryb domyślny.
  • mem – stan ACPI S3 (Suspend-to-RAM). Wyłączone jest wszystko, poza pamięcią RAM. Duże oszczędności energii, bardzo szybkie wybudzanie.
  • disk – ACPI state S4 (Suspend-to-disk). Wyłączenie wszystkiego, stan maszyny zapisywany jest na dysku. Stosunkowo wolne wybudzanie z uwagi na konieczność odczytu zawartości pamięci RAM z dysku.
  • off -ACPI state S5 (Poweroff). Wyłączenie systemu. Nie jest oficjalnie wspierane prze ACPI, ale zwykle działa.

Niestety, rtcwake posiada jedną poważną wadę – nie pozwala na podanie czasu wybudzenia w „ludzki” sposób. Można jedynie podać za ile sekund ma nastąpić wybudzenie albo czas w postaci Unix time. Mało wygodne. Oczywiście można to obejść przy pomocy skryptów (patrz linki).

Ja chwalę sobie tryb mem i używam często wieczorem, żeby rano mieć włączony komputer. Przy okazji często budzę się dźwiękiem włączanego komputera (nie, nie ustawiam muzyki). Skryptów nie używam, po prostu usypiam kompa na ten sam okres czasu, osiem godzin, przy pomocy polecenia:

rtcwake -s 28800 -m mem

Da się oczywiście zrobić więcej/lepiej ale… jakoś nie mam potrzeby.

Więcej o rtcwake AKA warto przeczytać:

  1. http://czytelnia.ubuntu.pl/index.php/2012/05/23/automatycznie-wybudzanie-z-hibernacji-budzik/ – dobry opis po polsku, dobry skrypt
  2. http://blog.loleksy.pl/2014/01/28/reuse-an-old-laptop-or-netbook-as-a-vps-backup-solution/ – skrypt do backupu z wykorzystaniem rtcwake