2009. október 29., csütörtök

Fejezetcímeket a fejlécbe

Ha a fejezetcímeket szeretnénk megjeleníteni a dokumentumunk fejlécében, akkor a következők teendőek. Nagy anyagban a fejezet címére hivatkozás:
Az első lépés az, hogy könyvjelzővel megjelöljük a fejezet címét, amire hivatkozni szeretnénk. Ezt a következő képen érdemes megtenni.
  1. Jelöljük ki a fejezet cím teljes szövegét. A bekezdés vége jelet hagyjuk ki!
  2. Nevezzük el a kijelölt szöveget könyvjelzővel.
  • Beszúrás > Könyvjelző parancs
  • Adjuk meg a könyvjelző nevét. Szóköz ne legyen benne, mert azt nem fogadja el.
  • OK gomb klikk!
Nos eddig meg is volnánk. Most álljunk oda a doksiban, ahova a hivatkozást szeretnénk beszúrni. Ha most a bekezdés címét szeretnénk megjeleníteni a hivatkozásban, akkor a következő a teendő:
  1. Beszúrás > Mező parancsot hajtsuk végre.
  2. A megjelenő párbeszédpanelben keressük meg a Ref mezőt.
  3. Ha megtaláltuk ott fog ránk várni a könyvjelző neve, amit az előbb hoztunk létre.
  4. Jelöljük meg a könyvjelzőt és kattints az OK gombra.
Ha oldalszámmal szeretnénk hivatkozni, akkor pont ugyanezt kell tennünk csak a PageRef mezővel.

2009. október 28., szerda

Juventus–Maccabbi Haifa (1-0) 2009

A Juventus Giorgio Chiellini második félidő elején fejelt góljával 1–0-ra legyőzte a Maccabbi Haifát, és a második helyen áll a Bordeaux mögött.
Az Öreg Hölgy francia támadója, David Trezeguet elégedetten nyugtázta a három pont begyűjtését, de csapata játékában talált kivetnivalót. „Nem vagyunk teljesen elégedettek azzal, amit támadásban nyújtunk – értékelt Trezeguet. – Még mindig nem szerzünk elég gólt, túl sokat foglalkozunk a védekezéssel."
„Ennek ellenére nagyon örülünk a győzelemnek, hiszen fontos három pontot gyűjtöttünk be, és az ellenfél nagyon megnehezítette a dolgunkat – folytatta a 32 éves csatár. – Ismétlem, nagyon sok munka vár még ránk, de tudunk hová fejlődni."

2009. október 16., péntek

Magyarország világbajnoki bronzérmes!

A magyar válogatott 1–1-es rendes játékidő után tizenegyesekkel legyőzte Costa Ricát az Egyiptomban zajló U20-as világbajnokság bronzmérkőzésén, így hatalmas sikert elérve legjobb európai csapatként a harmadik helyen zárta a tornát. Urena a 81. percben szerzett vezetést a közép-amerikaiaknak, Koman Vladimir büntetőből tíz perccel később egyenlített. A tizenegyespárbajban Gulácsi Péternek nem lehetett gólt lőni, tőlünk azonban Németh Krisztián és Varga Roland is betalált, így következhetett a magyar ünneplés…

Örömszavak

"A saját teljesítményemet nem szeretném értékelni, a csapat viszont egy nagyon jó világbajnokságon van túl. Remélem, hogy a felnőttek között is sokra viszi ez a társaság" – nyilatkozta a 91. percben sorsdöntő büntetőt értékesítő Koman Vladimir a Magyar Televíziónak a lefújás után.

Határtalan magyar öröm: miénk a bronzérem! (fotó: Reuters)

"Ezt a sikert közösen értük el. Az egész stáb rengeteget tett érte, és azok is, akik ma nem jutottak szóhoz" – szerénykedett Gulácsi Péter, akinek a Costa Rica-iak nem tudtak túljárni az eszén a tizenegyespárbajban.

One, Two, Tao

Eredetileg a TAO Framework beüzemeléséről szerettem volna írni, de mint mindenben itt is megelőztek és egy nagyon profil leírást találtam róla magyar nyelven MaNiAc tollából! Mivel jobbat nemigen tudnék írni ezért egyszerűen plagizálom a bejegyzést. Ne felejtsük a plágium a szakmai elismerés és a hízelgés legmagasabb foka! :)

Snippet Compiler: pehelysúlyú Visual Studio alternatíva

Egy fantasztikus és jópofa bejegyzés Molnár Gergő tollából. Kötelező darab! VS Kuka! :)

Előfordult már, hogy valamilyen kódot, kód-részletet ki szerettünk volna próbálni? Nyilván igen (ha nem, fölösleges is tovább olvasni). Ilyenkor egy új Visual Studio megnyit... krrr, krr... New Project... krrrrr rrr, konzolos alkalmazás, rrrrkrrrr...
Szóval zseniális IDE a Visual Studio, de az ilyen ötsoros alkalmazásokhoz az ionágyúval verébre kategória. Felmerül a lehetőség, hogy egyszerűen Notepad-ben megírjuk a kódot, aztán jöhet a csc.exe, de az meg a másik véglet: enni ugyan alig kér, viszont adni se ad sokkal többet. Intellisense, syntax highlight nélkül mit érek én? Akkor már ennyi erővel lehetne edlin is... (Az megvan, hogy ez az MS-DOS 5.0 óta minden Microsoft oprendszerben ott van? A hetesben is. Nem, nem az MS-DOS 7.0-ban, az ablakos hetesben.)
Mindent összevetve, egyik sem jó megoldás. Kellene egy lightweight Visual Studio, amire az ember csak rábök, és már írhatja is a kódot.
Mit ad isten: van ilyen, úgy hívják, hogy Snippet Compiler. Egyszerű, mint Kiszel Tünde, de a legszükségesebb dolgokat tudja. Az installja 1 MB és egy .zip kibontását jelenti, szemvillanás alatt indul.
Ja, és a legjobb, hogy az "Add Reference..." ablak (itt Tools -> References) körülbelül 0.05 sec alatt ugrik föl. Na ezt csinálja utána a Studio!

2009. október 15., csütörtök

SharpZipLib

Ugyan a C#-nak van beépített tömörítő függvénye, de én mégis jobban preferálom a sharpdevelop SharpZipLib könyvtárának függvényeit. Állandó probléma a tömörítő könyvtárak API-jával hogy körülményesek, és ritkán vannak olyan függvények hogy "itt az adat tömörítsd". Ez különösen igaz a BZIP2-re, amit eredetileg stream észrevétlen tömörítésére terveztek de nagy ereje miatt általánosan használt lett. Ezért írtam két függvényt bináris adat ki és betömörítésére BZIP2-vel. Ahhoz hogy használjuk az alábbi függvényeket, hozzunk létre egy hivatkozást (project menü > add reference) az ICSharpCode.SharpZipLib.dll-re (a Visual Studio majd bemásolja az exe mellé). És itt a kód:
   using System;
using System.IO;
using System.Text;
using ICSharpCode;

namespace Ird_ide_a_programod_namespace_et
{
class BZip2
{
///
/// Adat tömörítése BZip2-vel.
///

/// Tömörítendő adat.
/// Tömörített adat.
public static byte[] Compress(byte[] data)
{
try
{
MemoryStream output = new MemoryStream();
ICSharpCode.SharpZipLib.BZip2.BZip2OutputStream bout =
new ICSharpCode.SharpZipLib.BZip2.BZip2OutputStream(output);
bout.Write(data, 0, Convert.ToInt32(data.Length));
bout.Close();
output.Close();
return output.ToArray();
}
catch (Exception e)
{
throw (e);
}
}

///
/// BZip2-vel tömörített adat kitömörítése.
///

/// Tömörített adat.
/// A memóriában foglalható max. hely. (byte)
/// Kitömörített adat.
public static byte[] Decompress(byte[] data, int MaxData)
{
try
{
MemoryStream input = new MemoryStream(data);
ICSharpCode.SharpZipLib.BZip2.BZip2InputStream b_in =
new ICSharpCode.SharpZipLib.BZip2.BZip2InputStream(input);
byte[] output = new byte[MaxData];
b_in.Read(output, 0, MaxData);
b_in.Close();
input.Close();
return output;
}
catch (Exception e)
{
throw (e);
}
}
}
}

C# teljesítménymérés

Mai napon le akartam mérni, hogy egy módszer mennyi idő alatt old meg egy feladatot és elkezdtem keresgélni, hogy mivel lehet pontosan mérni a sebességet. A DateTime.Now.Ticks-es módszerről azt olvastam, hogy nem ad pontos eredményt. De ráleltem egy egyszerű és pontos megoldásra: a System.Diagnostics.Stopwatch osztályra! A használata:
namespace StopWatch
{
class Program
{
static void Main(string[] args)
{
List outs = new List();

// Létrehozunk egy példányt az osztályból
Stopwatch s = new Stopwatch();

// Elindítjuk
s.Start();

for (int i = 0; i < nums.Count; i++)
{
if (i % 2 == 0) outs.Add(i);
}

// Majd megállítjuk
s.Stop();

// Kiírjuk a futás idejét milliszekundumban
Console.WriteLine("For: {0} ms", s.ElapsedMilliseconds)
}
}
}
Remélem sokan megismertetek egy jó módszert a kódok futási sebességének mérésére!

2009. október 4., vasárnap

EA Games vs Documents Folder

Az ember szívesen lazít videojátékokkal. Főleg akkor, ha azok színvonalasok, mint az EA játékai. Személyes kedvencem a FIFA és a Need for Speed sorozat. Nemrégiben le is töltöttem a FIFA és az NFS legújabb részeit: FIFA 10 és NFS Shift. A kifejezetten hosszú telepítés után remegő kézzel klikkeltem play ikonra és vártam … vártam … hogy elém táruljon egy szép új izgalmas világ. De ezzel szemben csak egy hatalmas ERROR-t kaptam egy kis ablakba bekeretezve. Ilyen ritkán van, mindig minden pöccre indul a masinán. Gondoltam akkor majd az NFS fog megvigasztalni, klikk and play! Yes! A játék felpörög az intro lepadlóz, minden nagyon zsír. Készítem a profilom és ekkor közli velem ez a dög, hogy nem képes menteni a profilt! Árhhhhh! Kettőből semmi. Akkor majd a SIMS 3 fog boldog perceket szerezni nekem, szóval: download, install, click and play és … szerintetek? Elindult? Naná, hogy nem! Fatal Error és társai…szóval egy EA Games sem indult el a gépemen. Ekkor beindultam és becsületbeli ügynek éreztem a hiba kinyomozását.
  1. Első körben a legújabb VGA driver-t telepítettem. Semmi hatás.
  2. 10 GB szabad helyet hoztam létre a merevlemezen. Semmi hatás.
  3. Leszedtem minden CodecPack-ot. Semmi hatás.
  4. Kilőttem minden háttérben futó folyamatot. Semmi hatás.
Ekkor, mint derült égből a villámcsapás, jött a NAGY ötlet! Mit is mondott az NFS Shift? A profil mentése sikertelen (unable to save profile). Hmmm. Hova is szoktak menteni a játékok? Csak nem a… Dokumentumok mappába? De igen! Gyorsan meg is lestem a jogokat és annak ellenére, hogy rendszergazda voltam a gépemen nem tudtam létrehozni új mappát benne! Basszus!

Megoldás

Jobb klikk a Dokumentumok mappán és klikk a Tulajdonságok feliraton. Ekkor a következő ablak tárul elénk:
Válasszuk a Biztonság fület, ezen az oldalon válasszuk ki a szerkeszteni kívánt felhasználót és a Szerkesztés nyomógomb segítségével adjuk meg magunknak azt ami jár: Teljes hozzáférés. A beállítások után az NFS Shift képes volt már elmenteni a profilt, a FIFA 10 is elindult, mert létre tudta hozni a FIFA 10 mappát a Dokumentumok könyvtárban és ez nem volt máshogy a SIMS 3 esetében sem. Szóval 4-5 óra játék helyett ezzel lazítottam.
Érdekes, hogy az EA programozók nem készültek fel erre a hibára. Nem is feltételezték, hogy a Dokumentumok mappa írásvédett lehet. Pedig lehet! Ez olyan amatőr programozói hiba, de tényleg! Csak ennyit kellet volna tenniük: Try { Fájl létrehozása } Catch { Windows(”IO Error”) } avagy a Windows jogosultságkezelése kicsit faramucika és nem csak őket, hanem engem is igen megszívatott.
Összefoglalva: az EA játékok szeretnek a Dokumentumok mappába mindenféle csudadolgot létrehozni ezért legyen jogosultságunk az íráshoz/olvasáshoz valamint jó ha tudjuk, hogy azon a meghajtón keresi a Dokumentumok mappát amelyre magát a játékot telepítettük! Ha a Dokumentumok mappa a C meghajtón van de a játék mondjuk az F meghajtón akkor az még cifra lehet. Erről ennyit.

Híd a Java és a .NET között

A Microsoft támogatásával hidat vert a Java és a .NET közé egy francia cég. A Noelios által gondozott Restlet nyílt forrású REST (Representational State Transfer) framework legújabb változata már képes együttműködni az Ado.NET Data Servicessel.
Bodnár Ádám, 2009. szeptember 29.

Mindez azt jelenti, hogy a Restlet kiterjesztése segítségével Java alkalmazásokból is könnyen elérhetők az Ado.NET szolgáltatások. A legfontosabb problémát az Ado.NET esetében az autentikáció jelenti, ugyanis az Ado.NET adatszolgáltatások rendkívül sok metaadatot használnak az azonosításhoz, amelyeket fel kell dolgozni. A Microsoft saját kliensein (.NET és Silverlight) kívül eddig csak PHP-ból voltak könnyen elérhetők az Ado.NET szolgáltatások, a Restlet továbbfejlesztésének köszönhetően ez most már a Java nyelven írt alkalmazások számára sem jelent akadályt.
A Restlet lényegében Java-osztállyá alakítja ezeket a metaadatokat és így a Java alkalmazásokból ugyanúgy elérhetők a távoli Ado.NET szolgáltatások mint a lokális entitások, a többiről a Restlet futásidejű komponense gondoskodik. A fejlesztők a lehető legtöbb gyakori felhasználási modellt lefedték már, de a funkcionalitás még nem teljes.
Az Ado.NET Data Services viszonylag új kezdeményezés a Microsoftnál. A korábban Astroria projekt néven ismert technológia URL-eken keresztül teszi lehetővé adatok lekérdezését, írását, felülírását vagy törlését egy adatforrásban, legyen az adatbázis, XML vagy bármilyen fájl. A Restlet használatával a Java-programok is csatlakozhatnak a Microsoft adatbázisaihoz, a Windows Azure cloud platformon futó adatszolgáltatásokhoz, vagy bármilyen .NET platformhoz.
A Restletről és a működésről további információ a Noelios weboldalán, valamint a Microsoft Interoperability blogban lehet olvasni. A Reslet letölthető a Noelios oldaláról.

2009. október 1., csütörtök

Nem bírt egymással a Bayern és a Juve (0:0)

Tapogatózó játékkal indult a szerdai játéknap rangadója, amelyet két korábbi BL-győztes vívott: a Juventus látogatott Münchenbe. Az első percekben legalább veszélyben forogtak a kapuk – elsősorban a torinóiaké –, ezt követően azonban negyedórányi eseménytelen mezőnyjáték következett. Először Diego unta rá erre, aki egy percen belül kétszer is távoli lövéssel vétette magát észre, a túloldalon viszont Ribéry csapott be két védőt is parádés cselekkel, majd közelről centikkel emelt a kapu fölé.
Ezek után egyértelműen a hazaiak kerültek fölénybe, s ők vezettek veszélyesebb támadásokat is. A túloldalon csak egy, igaz, annál veszélyesebb esemény történt, amikor Camoranesi lövését kellett hárítania Buttnak. Ekkor már sokkal látványosabb játék folyt a pályán. A hazaiak számára azonban nem jött jól, hogy Robben megsérült, a félidő végén le is kellett cserélni.
Ha lehet, a második félidő még visszafogottabban kezdődött, mint az első. Nem csoda, hogy a játékrész közepén már a hazai szurkolók is hangos füttyszóval illették kedvenceik passzolgatását. Izgalmat legfeljebb Ribéry elfutásai okoztak, de beadásairól rendre lemaradtak a hazai támadók. A túloldalon még ennyit sem produkáltak, s legfeljebb akkor emelkedett a drukkerek vérnyomása, amikor Van Buyten „bénázása” után Iaquinta lőtte el estében a labdát – az érkező csapattárs, Trezeguet elől.
Az utolsó negyedórában egyes-egyedül Iaquinta újabb lövése érdemel még említést az unalomba fulladó találkozón. A döntetlennek a vendégek örülhetnek jobban, hiszen legfőbb riválisuk otthonából sikerült ponttal távozniuk, igaz, jelenleg így sem állnak továbbjutó helyen.