2010. április 30., péntek

Skype anomália Windows 7-en

A Skype telepítése után észrevettem, hogy az eddigi Vistás működéstől eltérően, amikor bezárom a Skype ablakát, az valahogy nem igazán tűnik el a taskbar-ról. Mivel egy olyan alkalmazásról van szó, amit az ember valószínűleg folyamatosan futtat fölöttéb idegesítő, ha állandóan helyet foglal a taskbar-on (illetve Win7-ben már Smartbar-on). A normál működés eddig az volt, hogy ha a főablakot bezárjuk, akkor a skype eltűnik a taskbar-ról, viszont becsücsül a traybar-ra. Ezt az évek alatt igen-igen meg lehet szokni. A megoldást a kompatibilitási jellemzők szerkesztése jelenti, magyarul a Skype.exe-nek meg kell mondanunk, hogy az bizony ne a natív Win7 módban, hanem pl. Windows Vista módban fusson. Az eljárás a következő:
  • Ki kell lépni a Skype-ból, amit csak és kizárólag a traybar-on található ki ikon, jobb egérgomb, Skype bezárása menüvel lehet elérni, legalábbi én más megoldást nem találtam.
  • Előkeríteni a Skype.exe-t a sajátgépben (általában C:\Program Files (X86)\Skype\Phone\Skype.exe)
  • Jobb egérgomb, Tulajdonságok
  • Kompatibilitás fül
  • Pipa, hogy az alkalmazás kompatibilitási módban fusson és válasszuk alatta a Windows Vista SP2-t

 A skype újbóli elindításakor már jól, kell, hogy működjön!

2010. április 27., kedd

CorelDraw X4 PDF nyomtatás anomália

Elég gyakran nyúlok a CorelDraw-hoz mostanában, de ma belefutottam egy kis turpisságba. Újonnan telepített Windows7-emen, amikor ki szerettem volna publikálni PDF-be egy elkészült művet, az hiba nélkül lefutott, de az elkészült PDF teljesen üres lett. WTF? Nekifutottam párszor, szét állítgattam a PDF publishing opcióit, de az eredmény mindig egy üres kb. 240 kbyte méretű állomány lett. 20 perc után feladtam, és nekifutottam, hogy akkor majd a Bullzip PDF printerével jól elkészítem. Nem sikerült, mert valami GhostScript-es hibát hozott az is. Őrület, google. Mint pár perces fórumozás után kiderült a baj a következő: a telepítéskor az előző oprendszereimtől eltérően a magyar regionális beállítást választottam, aminek az lett az eredménye, hogy az a nyüves Windows be is állított mindent, ahogy kell. Erről viszont a Corel-t nem értesítették, akik a PDF generálásakor az abban található számokat a regionális beállítások alapján formázzák!!!! Eddig úgy gondoltam, hogy a PDF az egy jól dokumentált szabványos formátum, aminek az utolsó bitje is kötelezően betartandó. Egyszóval a megoldás: a Control Panel\Regional Settings-ben állítsuk át a következőket, ezzel megfosztva magunkat a magyar formátumok szépségeitől:
  • Decimal Separator (Tizedesvessző): . (pont)
  • Digit grouping symbol (Ezres csoportosítás): space

Ettől a Bullzip PDF nyomtató is megjavult persze.

2010. április 25., vasárnap

Samba megosztás elérése Windows 7 alól

A Windows 7 telepítése után első dolgom az lett volna, hogy az itthoni Linux szerveremen elérni a Samba megosztásokat, mert rengeteg telepítőm van ott tárolva. Címsorba beír a gép IP címe, semmi. Ping van, samba nincs. Volt már ilyen, hogy 2 évnyi folyamatos működés után leállt a samba, asszony gépe kinyit, samba van. Őrület kezd úrrá lenni rajtam, ezért Google.

A megoldás kézenfekvő: a Win7 alapvetően elvárja, hogy 128 bites titkosítással érje el a hálózati erőforrások egy részét, nem taglalom:

Control Panel - Administrative Tools - Local Security Policy
Local Policies - Security Options

Network security: LAN Manager authentication level
Send LM & NTLM responses

Minimum session security for NTLM SSP
Disable Require 128-bit encryption 

Ennyi. Fejből is mehetett volna...

Windows 7 telepítés

Úgy történt, hogy egyik reggel a notebook-omban a merevlemez nem pörgött föl. Most nem szeretném leírni azt a pszichés állapotot, amely úgy egy ezredmásodperc alatt kialakult bennem, de rég ijedtem meg ennyire. Becsületes redundáns adatmentő emberke vagyok, de mentésből visszahozni mindent az kb. olyan mint körömreszelővel fát vágni. Nem lehetetlen, de az ember kihagyja, ha lehet. Laptop vérmes ki-be kapcsolgatása meghozta a várt eredményt, merevlemez felpörög, hangja nincs, de az ijedtség maradt. Teljes merevelmez backup legyártása (természetesen és ezt mindenkinek tudom ajánlani - ilyenkor, ha külső winyóra mentünk NE írjuk felül az előzőt, nem tudhatjuk, hogy ez, az utolsó lefut-e normálisan, és nem dönti-e romba az előzőt.)

Elérkezettnek láttam az időt, egy új operációs rendszer telepítéséhez az alábbi okok miatt:
  • Vista 32 bit - nem látja a 4 GB memóriát, illetve látja, de csak 3 GB-ot hajlandó használni
  • csak ki kellene próbálni azt a Windows 7-et, mert ódákat zengenek róla és a munkatársaim lényegesen gyengébb hardverű gépein is vidáman cikáznak
  • kb. 2 tonnányi szoftver újratelepítésével járó élmény - priceless
Szóval Windows 7 Pro EN 64 bit rendelése. Igen rendelése, miután nem találtam Budapesten olyan boltot, ami emberi áron készleten tartana egy angol 64 bitest. Az angolhoz ragaszkodom, sajnos vannak olyan alkalmazásaim (köszi IBM), amik fumigálják a magyar verziót. Na meg meg is szoktam már, a magyarban néha úgy eltévedek, hogy az hihetetlen. (Ja és itt említeném meg azt, hogy van egy ismerősöm, aki ismeri azt az embert, aki a Cancel gombot "Mégse"-re fordította "Mégsem" helyett). Természetesen új merevlemezt is beszereztem, a régi 120 GB-os helyett egy izmosabb 320 GB-osat. (A vista 47 GB-t foglalt a régin, a többi cuccom további 40-et.)

Volt egy extrém elképzelésem: felrakom az új Windows-t az új winyóra, a régi merevlemezből csinálok egy virtuális gépet (a Vista már vhd-ba backupol) és amíg a több napos áttelepítés zajlik, mindent tudok használni a régi gépről, csak elindítom azt. Az elképzelés szép volt és megvalósíthatatlan. Kipróbáltam mindent. A vhd elkezdett boot-olni, de Vista megfagy. Ezt kipróbáltam Microsoft Virtual PC 2007, a Win7 beépített Virtual PC-jével, a Sun VirtualBox-ával. Bootoltam recovery CD-ről, Linux alól, csesztettem a MBR-t, de az a nyüves csak nem volt hajlandó elindulni.

Ha valaki már migrált úgy oprendszert, hogy a másik gép nem elérhető, csak, mint merevlemez, az tudja, hogy az minden, csak nem mókás. Első nekifutásként a következőt javaslom, ha sikerül felbootolni a régi merevlemezzel (nekem sikerült):
  • a registry-t kiexportálni egy szöveges file-ba. Nekem a következő méretű fileokat készítette:
    • HKEY_CURRENT_USER/Software - 28 MB
    • HKEY_CURRENT_USER - 135 MB
    • HKEY_LOCAL_MACHINE - 244 MB
  •  ha fut adatbáziskezelő, akkor full export file-ba
  • ne törölj semmit, hagyd úgy, ahogy van, nem tudhatod mire lesz szükséged
Én a migráció alatt kb. 15-ször nyitottam ki text editorban (Notepad++) a 28 MB-os registry backup-ot, ami még ezen a hardveren sem pár másodperc, viszont ezzel a módszerrel megúsztam a további bootolást a régi rendszerbe.

Kicsit féltem, hogy mind a migrációkor, mind a telepítésekkor össze fog akadni a 64 bites Win7 és a régi 32 bites alkalmazások, de ezen félelmem alaptalannak bizonyult. Minden korrekten futott és mindent sikerült áthoznom a régi gépről. Egy hasznos tanács, szinte minden szoftverre találtam megoldást némi google-zéssel. A legbonyolultabb természetesen az Outlook áthozása volt, mivel kb. 6 mailboxom van benne, RSS-ek, stb. Ami kellemes meglepetés volt az a Firefox. 1 perc alatt áthúztam plugin-estül, bookmarkostul, mindenestül a régi gépről és mindenféle probléma nélkül elindult a megszokott környezetem.

És itt hadd ejtsek szót a Windows 7-ről. Tényleg sokkal "simább", mint a Vista. Minden 64 bites drivert megtaláltam hozzá (HP 8510w), és most, hogy a szoftverek kb 80%-a fel van telepítve 1 perc alatt bootol. Azért volt vele egy-két trükk, de ezeket egy következő post-ban fogom megosztani.

Virtualizációs kálváriám 2.

Új windows-om telepítése után úgy döntöttem, hogy bizonyos ritkán használt alkalmazásaimat virtuális gépre fogom telepíteni. Az első problémát a virtuális gép kiválasztása okozta, de erről részletesen egy másik, hosszabb írásban kívánok értekezni. A lényeg, hogy jelenleg a Sun (most már ORACLE) VirtualBox alkalmazását használom.Az elképzelés a következő volt:
  • létrehozok egy Windows XP SP3 HU 32 bit rendszerrel egy virtuális gépet
  • ha feltelepítettem rá minden létező service pack-ot és a virtuális gépben is nélkülözhetetlen alkalmazást (junction, total commander, stb.) az adott gépről csinálok egy másolatot, hogy mindig legyen egy "szűz" rendszerem
  • feltelepítem rá az abban a gépben szükséges szoftvereket
Nem tűnt bonyolultnak a feladat, mégis sikerült belefutnom egy pár problémába. Csináltam egy virtuális drive-ot rutinosan 4,63 GB mérettel, hogy backupolni lehessen ha kell DVD-re is és feldobtam rá az XP-t. Örömöm teljes volt, szabad helyként kb. 1.5 GB maradt a lemezen. Itt hadd jegyezzem meg, hogy én még soha az életben nem láttam ennyi helyre felférő XP-t, de úgy gondoltam, hogy az alkalmazásokat, amiket fel szeretnék telepíteni egy külön drive-ra fogom rakni, amit NTFS-ként egy alkönyvtárba fogok mount-olni, úgyhogy a rendszer diszken csak az XP és a virtuális memória marad. A 1.5 GB üres hely 512 MByte virtuális memória beállítással (1.5GB fizikai RAM-ot kapott a host rendszer alól és egy komplett processzort, úgyhogy ennek elégnek kell lennie) kicsit meg is lepett, de ahelyett, hogy gyanút fogtam volna csendesen mosolyogtam. Aztán elkezdtem felpakolni a Windows Update-ről a kellő cuccokat. Mivel egy szép kerek, komplett windows-t akartam magamnak, a multimédiás csicsák kivételével mident letöltöttem és telepítettem. A mindenbe sajnos beleértettem a .NET 1-3.5 verzióját, ami feltelepítve kb. 1 GByte merevlemezt vitt el. Kezdtem megőrülni, de diszk még mindig volt elég és úgy gondoltam, hogy innen már nagy meglepetés nem érhet. Tévedtem.

Mielőtt nekiálltam volna az alkalmazások telepítésének csináltam egy gyors mentést a VDI file-ról, létrehoztam egy másik virtuális gépet és megpróbáltam csatolni az új diszket hozzá. A VirtualBox szemrebbenés nélkül közölte, hogy bizony-bizony, de egy hasonló UUID-dal rendelkező diszk már regisztrálva van, úgyhogy ezt bizony én hozzá nem adom a media-k listájához. Google. Mint kiderült a hiba nem hiba, hanem feature (innen is látszik, hogy amikor még nem is tudták, hogy az ORACLE megveszi a SUN-t, már akkor tudat alatt olyan szoftvereket gyártottak, amely beillik az ORACLE globális filozófiájába: this is not a bug, this is a feature :) ) és egyszerűen kezelhető. Parancssorból be kell csattogni a VirtualBox alkönyvtárába és egy egyszerű "VBoxManage.exe internalcommands sethduuid HdImageName.vdi" paranccsal lehet új UUID-et generálni az image-nek. (Forrás: http://forums.virtualbox.org/viewtopic.php?t=674) Így már valóban tökéletesen működik az új gép létrehozása.

Boldogan nekiálltam feltelepíteni a Borland (akkor éppen CodeGear) Delphi 2007-et, ami azzal kezdi, hogy a szükséges alapszoftvereket feltelepíti. Pontosan nem tudom mi az a kettő, de az biztos, hogy valami .NET csomag (amiről azt hittem, hogy már minden létező verzióját feltelepítettem) és természetesen nem kérdezi meg, hogy hova telepítse, beleömleszti a Program Files-ba. Illetve ömlesztette volna, ha felénél nem közli velem, hogy bizony a hely elfogyott a merevlemezen. Na ez király, gondoltam. Ismerem a standard eljárást: NTFS drive, ami ráadásul virtuális, ez szívás kategória. Google. A megoldás egy kb. 15 lépésből elvégezhető feladat amelynek a lépései:
  • új VDI létrehozása, csatolása a rendszerhez
  • Linuxos cél CD letöltése (GParted)
  • volume klónozása az új diszkre
  • volume méret megváltoztatása
  • régi diszk törlése, új használata
A pontos leírást a my-guides.net-en találjátok, nagyon szépen, képernyőképekkel, természetesen angolul. Végignyomtam, sikerült. Egy ponton hibádzott csak a leírás, addig nem bírtam beilleszteni a régi partíciót, amíg meg nem mondtam az újnak, hogy az bizony egy MSDOS volume. A többi hibátlan.

Innen már nem ütköztem problémába, a szűz XP-m a dinamikus virtuális diszk kezelésnek köszönhetően még mindig felfér egy DVD-re, a Delphi is vidáman fut egy plusz diszk hozzáadásával.

Képletek szerkesztése a weben

Egyik jelenlegi projektem keretében olyan Word dokumentumokat kellett előállítanom, amely nem nélkülözte a bonyolultabb matematikai képleteket sem. Aki már dolgozott képletszerkesztővel, az tudja, milyen rafináltak is tudnak ezek lenni. Én például a Word-ét ki nem állhatom, mert grafikusan összekattintgatni képleteket szerintem igen-igen macerás, főleg akkor ha az ember már hozzászokott valamely más matematikai rendszer "nyelvéhez". Én eddigi pályafutásom és tanulmányaim alatt a legtöbbször a Derive alkalmazást használtam a dokumentálásra pedig a LaTex-et. Jelenleg egyiket sem használom és nem is kívántam feltelepíteni a gépemre, ezért néztem körül a neten. A legvalószerűtlenebb helyen bukkantam rá a megfelelő alkalmazásra, az iGoogle moduljai között. Konkrétan a www.sitmo.com oldal készített egy olyan iGoogle beépulő modult, amely közel LaTex kompatibilis. Az elkészült képleteket letölthetjük grafikaként és beillszthetjük word-be.

Weboldal tesztelése több böngészőben

A probléma valószínűleg minden webfejlesztőnek, tesztelőnek ismert, de érdemes a megrendelői oldalon elgondolkodni ilyen irányú tevékenységen. Ha az ember weboldalt fejleszt azt valószínűleg HTML+CSS+Javascript combo felhasználásával teszi (esetleg flash-ben, de az egy más ügy). Ezen nyelveknek az a sajátosságuk, hogy a különböző böngészők más és más módon értelmezik, jelenítik meg őket. Egy tapasztalt és minőségi munkát végző fejlesztőnek kötelessége (amennyiben a megrendelői igények nem mondanak mást) letesztelni az elkészült produktumot a legelterjedtebb böngészőtípusokban.

Hogy melyek ezek így 2010. elején? A listák itt találhatók:
Mint ezekből jól látható a leggyakoribb böngészők a Microsoft Internet Explorer, a Mozilla Firefox és feljövőben a Google Chrome. Ha csak ez a három lenne nem is lenne gond a tesztelés, hiszen ezek simán megférnek egymás mellett. Viszont sajnos ezen böngészők különböző verziói is másként jelentítik a weboldalakat. Jelen állás szerint egy komoly weboldalnak az alábbi böngészőtípusokon kell jól működnie:
  • Internet Explorer 6 (IE6) - a legrégebbi verzió, de sajnos rengeteg céges és régi gépen még mindig ezt a verziót használják
  • Internet Explorer 7 (IE7) - lényegesen újabb verzió a Windows XP 1-es service packjától már a legtöbb windowson ez az alapértelmezett
  • Internet Explorer 8 (IE8) - a legújabb és ezzel együtt legfejletteb Internet Explorer
  • Firefox 3.5
  • Firefox 3.6
  • Chrome 4
A fenti listából én személy szerint az IE6-s böngészőkre már nem szoktam tesztelni, mert lassan lehetetlen olyan fejlett kódot írni, ami értelmes mennyiségű munkával IE6 alatt is életképes. De ez most nem is lényeges.

A feladat, hogy megoldjuk azt, hogy egy weboldalt a fenti lista mindegyik verziójával leteszteljük. A megoldáshoz számos út vezet:
  • beköltözünk valamelyik magyarországi minisztériumba, ahol saját tapasztalatom szerint a világ összes verziójú böngészőjével, gépével, operációs rendszerével találkozhatunk
  • valamilyen virtualizációs technológiával virtuális gépeket telepítünk és azokban teszteljük a weboldalunkat
  • keresünk valamilyen alternatív megoldást
Az első értelemszerűen nem járható. A második már lényegesen kiforrottabb. Az IE különböző verziói alatti teszteléshez a Microsoft is ezt ajánlja, olyannyira, hogy letölthetővé tesz időkorlátos és lebutított virtuális meghajtóra telepített windows-okat. A leírása és a VHD-k letöltése "Internet Explorer Application Compatibility VPC Image" néven található.

Az alternatív megoldás: elég sokat keresgettem a neten ezügyben, de egy befutót találtam, amely azt tudja, hogy egy böngésző plugin segítségével létrehoz egy virtualizációs sandbox-ot, amiben a weboldalról kiválasztott több mint száz alkalmazás közül futtathatunk egyet. Ez a weboldal nem más, mint a spoon.net, ezen belül a különböző browser típusok a Internet/Browsers kategóriában találhatók.

A plugin mind Firefox 3.6, mind IE8-X64-ben tökéletesen futott (Windows 7 X64 EN).


Azt hiszem ennél maradok, egészen addig, amíg nem ütközöm valami olyan bug-ba, ami miatt újat kell keresnem.

Nyitány

Mint webfejlesztő, rendszerszervező nap mint nap találkozok olyan informatikai problémával, amely, hogy úgy mondjam "leküzdendő". Ezen problémák megoldása általában erős guglizással megoldható. Ezt a blogot azért nyitottam, hogy egyrészt összegyűjtsem ezen irányú tevékenységeimet, másrészt, hogy segíthessek a hasonló cipőben járó kollégáimnak, akik talán-talán ráakadnak erre a blogra, harmadrészt pedig azért, hogy ha ezt a blogot esetleg az adott téma szakértői is olvassák, akkor hozzászólás formájában pontosítsák az elképzeléseimet.

A problémák elég sokszínűek lesznek az adatbáziskezelőktől elkezdve a virtualizációig, mindenféle összefüggés nélkül, ahogy az élet hozza. Jó pár problémát előrángatok az "archívumból" is, hiszen ezek megoldása sem volt triviális és valószínűleg még mindig aktuális.

Nem célom más oldalakról fordításokat közölni, így a legtöbb cikk számtalan linkket fog tartalmazni, remélhetőleg a final solution linkjével együtt.

A felhozott témáknak sem szakértője nem vagyok, de talán a lelkes amatőrnek - így 15 évnyi fejlesztői munkával a hátam mögött - sem nevezném magam.