2013. október havi bejegyzések

12GB-os NVIDIA driver csomag

A Windows Update-en feltűnt ma egy opcionális frissítés NVIDIA driver update for NVIDIA Quadro NVS 150M néven és én elkövettem azt a hibát, hogy engedélyeztem a telepítését.

nvidia-update

Ott kezdtem el gyanakodni, hogy ebből gond lesz, amikor megjelent az üzenet, hogy elindult a 300MB-nyi telepítő letöltése. Gondoltam naivan, hogy majd kiszedi belőle azt a pár megabájtnyi fájlt, amire tényleg szükség van, de aztán legnagyobb meglepetésemre pár perccel később 12 gigabájtnyi szabad helyem tűnt el a C: meghajtóról. Ez már önmagában is idegesítő, de ha ez volt az ember utolsó 12GB-ja, akkor különösen.

A WinDirStat szépen kirajzolta, hogy a C:\Windows\System32\DriverStore\FileRepository mappa foglal sok helyet, azon belül is a sok friss dátumú, nv-vel kezdődő nevű, egyenként 300MB-os könyvtárak. Jó lenne megnézni, mik ezek. Ezt lehet parancssorból is, így:

dism /online /get-drivers /format:table

Nekem azonban jobban bejön a CodePlexről letölthető DriverStore Explorer, ami mindezt grafikus felületen tudja, valahogy így (ez már a pucolás utáni állapot):

driverstore-explorer

Ha csak 1 NVIDIA driver lett volna a listában, akkor a Delete Package gombbal vidáman kitakarítottam volna, de az én listámban volt vagy 30. Akkor most melyiket töröljem?

Eszembe jutott, hogy a Windows 8.1 Disk Cleanup eszközében már van opció a felesleges driverek törlésére is:

driver-cleanup

Sajnos ez pont nulla bájtnyival segített, nem voltam előrébb.

A Programs and Features ablakból megtudtam, hogy a 327.02 verziót sikerült telepítenem a Windows Update-ről, majd ezek után elmentem az NVIDIA Drivers Download oldalára, ahol örömmel láttam, hogy van frissebb verzió, most éppen 331.65. Ugyan ennek a letöltése is 214MB, de a manuális telepítésnél legalább a kezünkben van az irányítás.

A sikeres letöltés után eltávolítottam a korábbi verziót és végignyomogatva a telepítő varázslót feltettem a frisset. Így nem csak olyan opciót kaptam, hogy akarok-e nView-t, de a Perform a clean installation pipa bebillentésével a telepítő szépen kitakarította  a korábbi eszközmeghajtót:

clean-install

A telepítés simán ment, visszakaptam a tárhelyemet, és ráadásul frissebb eszközmeghajtóm is van (szerencsére ez is WHQL tesztelt).

Azt hiszem ez volt az utolsó alkalom, hogy Windows Update-ről telepítettem NVIDIA drivert.

 

Technorati-címkék: ,,

Mi lesz veled SQL Server Compact Edition?

Aki próbálta már az SQL Server Compact Editiont, az tudja, hogy nagyon jó dolog. Persze nem mindenre, de amikor egy kicsi, beágyazható, Entity Frameworkkel elérhető SQL adatbázisra van szükség, akkor jó szolgálatot tesz. Hogy mennyire kicsi? Az x86 változata 1.72 MB, az x64 egy kicsit nagyobb, de az is mindössze 2.84 MB:

sqlce-files

Az ember a DLL-jeit odacsapja a projekthez és már megy is, nem kell telepíteni, nem kell hozzá admin jog, nem fut a háttérben service-ként stb. A 4.0 verzió már egészen megérett, működik a több felhasználós elérés, sőt az ASP.NET is támogatja.

Ehhez képest szomorúan tapasztaltam, hogy az SQL Server 2012 Management Studioban nem találtam a szokásos helyen:

sqlce-ssms

Ilyenkor az ember előveszi a Discontinued Management Tools Features in SQL Server 2012 doksit, ahol nyíltan ez áll:

“The SQL Server Compact Edition code editor has been removed from SQL Server Management Studio. Support for SQL Server Compact Edition has also been removed from Object Explorer, Solution Explorer, and Template Explorer. Use the Transact-SQL editors in Microsoft Visual Studio 2010 Service Pack 1 or Webmatrix instead.”

Sajnos a Visual Studioval sem jobb a helyzet, a Visual Studio 2013 Compatibility oldalon ezt olvashatjuk:

“Visual Studio 2013 doesn’t support SQL Server Compact Edition.”

Egyelőre nem tudom, hogy mi az SQL Compact roadmapje, de addig a következő lehetőségeket látom:

  • ErikEj blogjában számos okosság található az SQL Compacttal kapcsolatban, sőt ő készített egy SQL Server Compact Toolbox nevű bővítményt is, ami eddig is jó szolgálatot tett.
  • Lehetne használni LocalDB-t, de itt sem látok nagy mozgást, mióta az első verziója megjelent.
  • Át lehetne térni más adatbázis kezelőre. Ti mit használtok?

 

Visual Studio 2013: CodeLens

Aki már legalább egy C# vagy VB projektet megnyitott Visual Studio 2013-ban, annak feltűnhetett, hogy a típusok, metódusok, indexerek és tulajdonságok előtti sorban plusz információk jelennek meg. Egyszerűbb esetben csak ennyi:

codelens-references

De tud ott több is lenni:

codelens-multiple

A funkciót úgy hívják, hogy CodeLens, ez volt a kódneve és végül ezen a néven került be az RTM változatba is (bár az RTM előtt egy darabig a Code Information Indicators elnevezés is forgalomban volt).

Bár sok hasznos információt pakol közvetlenül az ember orra elé (heads-up display), nem biztos, hogy mindenki úgy kedveli, ahogy van. Engem például zavar, hogy a fájl megnyitása után eltelik pár másodperc, mire ezek a kijelzések frissülnek, ráadásul elvágja a kommentet a kódtól, ami nekem éppen nem tetszik. Ezzel együtt a funkció tetszik, csak kicsit testre kell szabni.

A legdrasztikusabb testreszabás a kikapcsolás. Szerencsére nem csak egy ki-be kapcsoló van, hanem be tudjuk állítani, hogy mit szeretnénk látni:

codelens-enable

A másik lehetőség a szöveg színének beállítása:

codelens-colors

Itt bátran választhatunk kevésbé zavaró színt, hiszen a szövegre kattintva egy felugró, de dokkolható ablakban bármikor részletesebb információkat kaphatunk.

 

Technorati-címkék: ,

Lync Web App indítása a kliens helyett

Sokadszorra kapok külső Lynces meeting meghívót URL formájában, amire azonban hiába kattintok, mert a gépemre telepített Lync kliens nem tud csatlakozni az URL-ben lévő SIP tartományhoz. Ilyenkor a legegyszerűbb lenne a Lync Web App elindítása, ami azonban nem megy, ha már van Lync kliens telepítve a gépre.

A megoldás: query stringben oda kell írni az URL végére, hogy ?sl=1.

Például: https://FQDN/organizerID/meetingID?sl=1

Bővebben a belső logikáról itt: Launching Lync Web App.

Nem vagyok benne biztos, hogy 2013-ban ez egy követendő gyakorlat lenne.

 

Technorati-címkék: ,

Szerepelsz a Google reklámjaiban

Szeretnél híres lenni? A Google azzá tesz! A cég egy általa “minor update”-nek titulált frissítésben november 11-től bevezeti, hogy a felhasználók személyes adatait megjelenítheti a Google oldalakon feltűnő reklámok mellett.

Ha ezt nem szeretnéd, itt tilthatod le: Megosztott ajánlások

 

Technorati-címkék: ,,

Run as Administrator érdekesség Windows 8.1-en

Négy hete használom a Windows 8.1 RTM változatát, természetesen szokás szerint nem admin felhasználóként. Amikor mégis kell valamihez admin jog, akkor a jól bevált Run as Administrator opcióval indítom. Például az IIS Managert:

RunAs-1

Erre feljön a szokásos jelszó bekérő ablak:

RunAs-2

Ahova beírom a felhasználónevemet és a helyes jelszavamat:

RunAs-3

Majd Enterre nem történik semmi. Micsoda, ez már sok éve hibátlanul működött?!

Hetekig bosszankodtam miatta, mert ez volt az egyetlen napi problémám a Windows 8-cal (ugyanez történik az UAC promptnál is), de aztán véletlenül rájöttem, hogy én voltam a béna, hiszen nem olvastam el a használati utasítást.

Emlékeztető magamnak: RTFM!

 

Technorati-címkék: ,

Így varázsolsz biztonsági rést ASP.NET-ben

Az ASP.NET WebForms egyik óriási előnye, hogy villámgyorsan lehet vele adatelérési kódot varázsolni. Példaként vegyük a Northwind adatbázist, és legyen az a feladat, hogy csak az amerikai beszállítókat kell megjelenítenünk.

Dobjunk a Default.aspx-re egy GridView vezérlőt, majd állítsuk be szépen a Configure Data Source varázslóban, hogy a Suppliers táblából adja vissza… (kattints a teljes méretű képért)

PK-in-URL-1

… az USA-hoz tartozó beszállítókat:

PK-in-URL-2

Pofozzunk még annyit a GridView beállításain, hogy dobjuk le a SupplierID és a CompanyName oszlopokat, majd az utóbbit tegyük vissza, ám ezúttal HyperLinkField formájában. A link vezessen a (még nem létező) View.aspx oldalra, és query string paraméterben adjuk át neki a beszállító azonosítóját:

PK-in-URL-3

Készen is vagyunk, bátran ki lehet próbálni, íme az amerikai beszállítók listája:

PK-in-URL-4

Készítsük el a View.aspx oldalt, amire dobjunk egy DetailsView vezérlőt. Indítsuk el a Configure Data Source varázslót és kérjük le a Supplier rekord összes oszlopát…

PK-in-URL-5

…de csak abból a rekordból, amire a query stringben hivatkozunk, hiszen így kapcsoljuk össze a két oldalt:

PK-in-URL-6

Kitt és katt (Next és Finish) és máris készen van a működő oldalunk, amin a kiválasztott beszállító összes adatát át tudjuk tekinteni:

PK-in-URL-7

Működik? Igen, kiválóan lehet vele böngészni az USA-beli beszállítókat. Hurrá!

Hány sor kódot írtunk? Egyet sem, mert mindet a varázslók írták meg nekünk. Hurrá!

Van benne biztonsági rés? Van bizony! Elég átírni az URL végén lévő számot 2-ről mondjuk 4-re és máris hozzáférünk egy japán beszállító adataihoz, miközben nekünk csak az USA-ban lévőket szabadna látnunk:

PK-in-URL-8

Sőt, ha 1-től szép sorban minden számot kipróbálunk, akkor pillanatok alatt letölthetjük magunknak az összes beszállító adatait, azaz elvihetjük a teljes beszállítói kapcsolat adatbázist, az pedig már érték! Hurrá?

Ez történhet, ha az ember vakon megbízik egy varázslóban, vagy vakon követi valamelyik “hú-de-egyszerű-ez” demó lépéseit.

Most persze mondhatod, hogy a profik ilyet nem csinálnak. Pedig de, mondok is rögtön két példát.

Pár évvel ez előtt 114.000 iPad tulajdonos személyes adatait vitték el pillanatok alatt úgy, hogy egy URL-ben egyszerűen végigpróbálták a lehetséges eszköz azonosítókat (ICC ID – integrated circuit card identifier). Mindössze egy fél képernyőnyi szkript kellett hozzá és így került a címlapokra:

PK-in-URL-9

A biztonságcentrikus fejlesztéssel foglalkozók pedig így reagáltak rá:

PK-in-URL-facepalm-1

Ugyanezt a hibát később egy bank is elkövette. A Citibanktól – igen, egy banktól! – 200.000 ügyfél személyes-, folyószámla- és bankkártya adatait vitték el pont ugyanígy: csak átírták az ügyfél azonosítót az URL-ben. Erre aztán már nem csak a biztonsági szakemberek reagáltak így:

PK-in-URL-facepalm-2

Két rövid tanulság a fentiekből:

  • Ne tégy kitalálható azonosítót az URL-be!
  • Az eltitkolt URL nem védelem!

A varázslók a produktivitásban segítenek, de nem gondolkodnak. Egy biztonságtudatosan gondolkodó és a biztonságos programozás gyakorlatát követő fejlesztő bár valószínűleg lassabban kódol, hosszabb távon mégis kifizetődőbb.

 

Technorati-címkék: ,,,