Windows 8.1 telepítése kis SSD-re

A windows 8.1 rendszerkövetelményei között az szerepel, hogy a telepítéshez nem kevesebb mint 20 Gb helyre van szükségünk… Annak idején elkövettem azt a hibát, hogy azt mondtam, 16gb mindenre elég lesz, és a set-top boxomba egy 16gb méretű ssd-t vettem. Ellenben most került a gépbe új alaplap, egy ASUS J1900-C ami kívánná a windows 8.1-et.

Kis olvasgatás után szembe jött velem egy microsoft oldal, ami a WIMBoot előnyeit taglalta. Az egész WIMBoot-nak a lényege, hogy a windows minden esetben ment a lemezünkre egy recovery partíciót, ami tartalmaz egy install.wim fájlt, aztán kitömöríti ennek a tartalmát. Amennyiben a windowst WIMBoot-al használjuk, akkor a windows fájlokat nem tömöríti ki, hanem pointerek segítségével az install.wim-ből használja közvetlenül. Ennek eredményeképp a windows a merevlemezből kb. 3 gb-ot fog használni, nem 20-at.

A WIMBootnak vannak követelményei, mégpedig:

  • Windows 8.1 Update 1 (6.3.9600.17031 vagy ennél újabb)
  • UEFI bios
  • SSD vagy eMMC meghajtó

Ha ezek megvannak, akkor kezdődhet is a móka. A telepítéshez az alábbi szoftverekre lesz szükségünk:

  • GParted
  • QuickPE
  • Rufus
  • Windows 8.1 Update 1 iso (en_windows_8.1_with_update_x64_dvd_4065090.iso)
  • Egy telepített, megfelelő verziójú Windows 8

Első körben be kell szereznünk egy install.wim-et, mert ebből fogjuk tudni telepíteni az új rendszert (ebbe a fájlba fognak belemutatni a fájl pointerek). Ezt a meglévő működő windows 8-unkból tudjuk kimenteni. Hogy ezt meg tudjuk tenni, létre kell hozunk a QuickPE segítségével egy pici 200mb-os bootolható windowst, ami alól menteni tudunk.

A QuickPE könyvtárból futtassuk le a “make_re_from_iso_x64.cmd” parancsot, majd válasszuk ki azt a könyvtárat, ahova a windows iso-t  (en_windows_8.1_with_update_x64_dvd_4065090.iso) tettük.

Sikeres futás után látnunk kellene az alábbi fájlt: QuickPE\x64\winre.iso

Aki nem szeretné a fenti lépéseket végigcsinálni, az letöltheti a kész iso fájlt (x64): winre.iso

A winre.iso-t írjuk ki pendrive-ra, a Rufus segítségével. Ez egy nagyon apró windows, ami sok mindent nem tud, de a mentéshez pont elég lesz.

Miután bootoltunk a pendrive-ról, adjuk ki a következő parancsot:

dism /capture-image /imagefile:e:\install.wim /capturedir:c:\ /name:install /wimboot

Itt az e:\install.wim a pendrive, ide menti az install wim-et, amit később még felhasználunk.

Ha ez megvan, mentsük le a pendrive tartalmát, és rakjuk rá (vagy egy másik pendrivera) a GParted-et. Ezzel fogunk egy új ntfs partíciót csinálni, amit még aktívvá kel tenni, és ntfs-re formázni.

Amikor ezzel is megvagyunk, az újonnan létrehozott partíciónkra, másoljuk rá az install.wim-et, majd indítsuk el a windows telepítést:

dism /apply-image /imagefile:c:\install.wim /index:1 /applydir:c:\ /wimboot

A bootloáshoz már csak egy boot bejegyzést kell készítenünk:

bcdboot c:\windows

 

 

Postfix + google apps

Google apps-ban van lehetőség SMTP Relay szerver engedélyezésére. Ez akkor jó, ha például olyan helyről szeretnénk levelet küldeni, ami nem rendelkezik Google Apps felhasználóval, például szerverekről.

Ezt a Google Apps adminisztrátori felületén lehet megtenni:

Google Apps -> Settings for Gmail -> Advanced Settings -> General Settings

SMTP relay service

Itt érdemes bekapcsolni az alábbi két opciót:

Only accept mail from the specified IP addresses – csak megadott helyekről fogadjon el leveleket

Allowed senders: Any addresses (not recommended) – onnan viszont bármilyen címről

 

Be is állítottam mindent, de a google SMTP szervere folyamatosan eldobálta a levelet, mert valamiért a postfix mindig csak a szerver nevét (pl. root@server) rakta bele a feladó mezőbe, amit a google annak ellenére sem szeret, hogy beállítottuk, hogy szeresse…

A végső megoldást az alábbi hack jelentette:

A /etc/postfix könyvtár alá létrehoztam egy sender_canonical nevű fájlt, aminek a tartalma:

/^(.*@).*$/     ${1}server.voji.hu

Módosítottam továbbá a /etc/postfix/main.cf-et:

sender_canonical_maps = regexp:/etc/postfix/sender_canonical
relayhost = smtp-relay.gmail.com:25

Ezek után már csak ki kellett generálni a sender_canonical-hoz tartozó .db fájlt:

postmap sender_canonical

valamint újrarúgni a postfix-et:

sudo postfix reload

 

És már csak egy gyors teszt volt hátra:

echo "Test mail from postfix" | mail -s "Postfix test" voji@voji.hu

 

Mindeközben a /var/log/mail.log fájlban:

Sep 10 14:44:20 server postfix/smtp[11752]: 98D866567C3: to=<voji@voji.hu>, relay=smtp-relay.gmail.com[173.194.65.28]:25, delay=0.7, delays=0.34/0/0.26/0.09, dsn=2.0.0, status=sent (250 2.0.0 OK 1410353060 q15sm45749wij.3 – gsmtp)

Sep 10 14:44:20 adsrv2 postfix/qmgr[11744]: 98D866567C3: removed


Tadaaam.

 

Ui: azt, hogy a postfix által küldött levelek normális feladóval rendelkezzenek biztos el lehet érni ennél kultúráltabb módon  is, de egyenlőre ennél jobb megoldást nem találtam (pedig próbálkoztam midnenféle myorigin = /etc/mailname-el és társaival is)

 

 

HTML alapú pdf riporting engine

Úgy látszik mások is gondolkoztak már azon amin én mostanában, hogy milyen jó lenne NodeJS-el szerver oldalon generált html-ekből PDF riportokat generálni (először grafikonok rajzolásán gondolkoztam, csak utána tovább gondoltam).

Az alábbi cikk elég jó a témában: http://www.feedhenry.com/server-side-pdf-generation-node-js/

Sajnos a sejtésem beigazolódni látszik, bár technológiailag egy működő, jó megoldás, erőforrás kell egy ilyen rendszer alá, és elsőre úgy tűnik nem is kicsi…

AdBlock Plus on android

Az AdBlock Plus böngésző bővítmény minden telepítés során az elsők között van nálam, a mobil alkalmazásokért pedig inkább fizetek, semmint reklámokat nézzek. Viszont amikor már iOS-en és Androidon is fizetnem kellene a reklámok letiltásáért egyazon alkalmazáson belül, akkor elszomorodok…

Egy ilyen elszomorodásom alkalmával gondoltam rákeresek, hogy van e megoldás androidon belül arra, hogy kikapcsoljam a kéretlen reklámokat. Meglepődtem, amikor az AdBlock Plus for Android volt az első találat. Maga a koncepció zseniális, a mobil verzió ugyanis egy lokális proxy, ami a reklámokat szolgáltató szerverek felé egyszerűen nem engedi át a forgalmat. Így gyakorlatilag minden böngésző, és alkalmazás alatt működik.

Telepítés után az egyetlen dolog, hogy a rendszer életre kelljen az az internet elérésre használt kapcsolatok módosítása, hogy a forgalmat az AdBlock Plus által.

Ezt úgy tudjuk megtenni, ha az aktuális wifi kapcsolatra hosszan klikkelünk, majd a felugró menüben kiválasztjuk a modify connection opciót, és ott megadjuk a proxy szervert (alapból a címe localhost és a port 2020).

A mobil adatkapcsolat esetén is hasonlóan kell eljárnunk, csak ott Settings -> More… -> Mobile networks -> Access Point Names -> (alapértelmezett AP ami ki van pipálva) -> Proxy és Port beállítások

Selenium headless test

A selenium egy zseniális eszköz, én személy szerint nem csak tesztelésre, hanem folyamat automatizálásra is egyre többet használom. Néha egyszerűen x nélkül szeretném használni, hogy csinálja meg amit szeretnék, a többi dolog nem is érdekel.

Ehhez az alábbi dolgok szükségesek:

  • firefox (apt-get install firefox)
  • java (apt-get install default-jre)
  • selenium, és selenium RC (lásd később)
  • egy két csomag, hogy fusson a firefox x nélkül (apt-get -y install xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic libstdc++5 xserver-xorg-core xauth dbus-x11)

Első lépésként bármilyen gépen el kell készíteni magát a teszt esetet. Ehhez a firefox alá fel kell telepíteni a selenium plugint, amiben a record-al felvehetjük amit csinálunk, majd menthetjük. Fontos, hogy nekünk nem csak egy teszt esetre (test case), hanem egy test suite-ra is szükségünk lesz. Tehát először mentsük a tesztesetet (File – Save Test Case) majd a hozzá tartozó Test Sutie-ot is (File – Save Test Suite).

Ezek után irány a linux, ahol az alábbi script-el tudjuk elrúgni a tesztet:

#!/bin/sh
Xvfb -fp /usr/share/fonts/X11/misc/ :22 -screen 0 1024x768x16 2>&1 &
export DISPLAY=:22
java -jar selenium-server-standalone-2.42.2.jar -htmlSuite "*firefox" "http://192.168.2.1" "rrestart_suite.html" "results.html"

A fenti példában:

  • “http://192.168.2.1” – az oldal címe, amint a tesztesetet le fogja futtatni
  • “rrestart_suite.html” – a test suite neve
  • “results.html” – ebbe a fájlba kerülnek naplózásra futási eredmények

Egyébként a seleniumot meg lehet hajtani java programból is, ami egy sokkal érdekesebb téma(ez által lehet pl. excel adatforrás alapú tömeges tesztelést végezni). Ha lesz időm, talán arról is készül majd egy rövid cikk.

Hello Spotify

Szeretem a Google-t, hiszen sok mindent köszönhetünk nekik. Gondoljunk csak a keresésre, gmail-ra vagy a maps-ra, esetleg az androidra. Ezek nélkül lehet még mindig létezne symbian, nokia maps, és emberek tömegei hinnék azt, hogy ez normális.

Elég sokat hallgatok zenét (munka közben, és munka után is), és szeretném azt hinni, hogy Magyarországon is van már akkora bérszínvonal, hogy megengedhetem magamnak az online zene streaming-et, legálisan, egyszerűen már nem volt kedvem mp3-ak letöltésével, másolgatásával foglalkozni.

Adott volt a google play all access, működött a keresztértékesítés, elő is fizettem rá, úgy bő fél éve. Jól elvoltunk, bár voltak komoly hiányosságok. Pl. előadókra nem lehetett feliratkozni rss feed szerűen, hogy ha csinált valamit, akkor azt meg tudjam hallgatni. Mi tagadás ez picit zavart, de ezen még túlemelkedtem. Sokkal jobban zavart, hogy ipad-ra nem sikerült fél év alatt kiadni a normális klienst… Értem én, hogy google, android, stb, de meguntam.

Ma töröltem az előfizetést, és előfizettem a spotify-ra. Van ipad kliens, lehet albumra feliratkozni, és sokkal több zenét érek el, vannak mindenféle social vonatkozásai, újra él a last fm profilom, szóval öröm boldogság. Ja és véletlenül az előfizetés is pont annyiba kerül mint a google-nél az all access.

Már csak egy feature hiányzik mindkét rendszerből. Az előadók csv export és import képessége… Ez azért jól jönne, ha mondjuk a kedvenc előadóim listáját mozgatni szeretném a rendszerek között, de gondolom ezt nem véletlenül nem csinálják meg… Ha már a windows preinstalled böngészőkből ekkora botrány lehet, akkor nem tudom online szolgáltatások között miért nem teszik kötelezővé az átjárhatóságot, legalább ilyen alap szinten…

OSX telepítés virtualbox alá

Ha az ember olyan programot ír, ami több platformon is működik, akkor jó eséllyel hibákat is fog kapni ezen platformokról. Kedvenc hobbi projektem miatt égetően szükségem lett egy osx-re, hogy egy két dolgot meg tudjak nézni. Már egy ideje virtualbox-ban használom a linuxot, gondoltam próbát teszek az OS X-el is, hátha.

Találtam egy cikket a lifehacker-en, ami alapján úgy tűnt, hogy van esély működésre bírni egy OS X-et a virtuális gépben… Ezen felbuzdulva le is töltöttem egy jónak tűnő OS X telepítőt, aminek a leírásában szerepelt a hacked, meg a virtualbox szó… 🙂

Első próbálkozásom hatalmas kernel pánikok, fagyások jellemezték… Itt kétségbeestem, és próbálkoztam mindenfélével, pl. az iBoot-al amivel el is indult a telepítő, hogy a végén jól szétfagyjon.

Aztán ráakadtam egy blog bejegyzésre, ami alapján úgy tűnt, hogy életre lehet kelteni a mac-at iBoot nélkül is, csak el kell hitetni az OS X-el, hogy amin fut, az egy mac. Ezt azért egy virtuális gépen nem is olyan nehéz megtenni, a 6. pont a lényeg.

<ExtraDataItem name="VBoxInternal2/SmcDeviceKey"
   value="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"/>
<ExtraDataItem name="VBoxInternal2/EfiGopMode" value="2"/>

Valamint még a <Firmware type=”EFI”/> átírtam  <Firmware type=”EFI64″/> -re.

Szerencsére a virtualbox konfigurációs fájl egy xml (csak a kiterjesztése .vbox), szóval nem is variáltam, beleírtam mindent, és láss csodát:

Screenshot 2014-05-26 13.53.41

 

 

Virtuális gépen picit lassúak az animációk, azokat érdemes kikapcsolni. Erre található ehhez egy jó leírás, ami alapján én az alábbi dolgokat kapcsoltam ki:

sudo defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO
sudo defaults write com.apple.dock expose-animation-duration -int 0
sudo defaults write com.apple.dock springboard-show-duration -int 0
sudo defaults write com.apple.dock springboard-hide-duration -int 0

És már csak a hálózati kapcsolat volt hátra… Ehhez a default gateway-t kellett megtudni:

route -n get default

ami a gazda gép ip címe a natolt hálózaton. Ehhez csatlakozva már elérhetőek a windows megosztások:

Finder -> Go -> Connect to server: smb://10.0.2.2

Öröm boldogság…

 

Ui: XCode 5-höz OS X 10.8.4 kell, nekem pedig 10.8.0 van, nem akartam szenvedni az upgrade-el, maradtam a 4.6.3 verziónál, de ez az apróság már csak a letöltés, és a telepítés után derül ki…

A a java fejlesztéshez szükséges eszközök terén is volt egy kis kavar, de ezen már meg se lepődök, viszont ennek kapcsán elég sokat futott az osx (böngészés, futtatás, konfigurálgatás), és eddig hibátlanul működik.

Rar fájlok kitömörítése

find . -name "*.rar" -exec unrar x '{}' \;

Let me explain what this does. 
"find ." - will find files within the current directory and any subdirectories
"-name "*.rar" - will only find *.rar files
"-exec " - will perform an external command on the results found by the "find" command. 
"unrar x" - is the command to extract the rar archives
"'{}'" - tells find to append the found result to the end of the exec'd command.
"\;" - signifies the end of the exec'd command.  forrás