2010. július 30., péntek

Join Me!

Gizmodo úgy definiálja, hogy "hihetetlenül egyszerű, biztonságos online kollaborációs tool". Magam se mondhatnám szebben.
Ha gyorsan össze kell rántani egy gyors meetinget a szomszéd városban / országban / földrészen tartózkodó kollégával, vagy egyszerűen csak anyu gépét kéne hirtelen megadminisztrálni, mindemellett nincs szakértelem / lehetőség / kedv portot nyitogatni, installálgatni, mondd csak egyszerűen, hogy "join.me", és kész.

2010. július 29., csütörtök

A kommentelés művészete

http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered

2010. július 9., péntek

TechNet magazin archívum

Egy régebbi poszt hozzászólásaiban merült fel, hogy elérhetők-e a TechNet magazin régebbi számai valahol. Van ugye a hivatalos oldal, ahol az újabb (értsd: 2005-2008 közötti) számok elérhetők.

Többnyire.

A régebbiek viszont (megint csak többnyire) nem működnek, sajnos. Pedig ezekben a számokban is sok olyan cikk van, amit ma is szívesen a kezébe venne az ember - vagy azért, mert a tartalma ma is releváns (mint a fent említett posztban kivesézett garbage collector, de a T-SQL, vagy az XML technológiák alapjai se sokat változtak 2000 óta), vagy mert egyszerűen nosztalgikus érzés az IIS 5 finomhangolásáról, vagy a .NET 1.0-ról olvasgatni. Nosztalgiázni pedig szeretünk.

Mit gondolt Bill Gates a .NET technológiáról 2000 októberében? Érdekel, mi? Hát innen nem tudod meg, az biztos.

Így most Szolgálati közlemény következik: elő az !archive könyvtárakkal, foszladozó szélű írott CD-kkel, 2GB-os IDE33-as merevlemezekkel! Akinek megvannak ezek a régi számok, kérem, jelentkezzék!

2010. június 29., kedd

IIS Express

Mi mást is mondhatnék: http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx

2010. június 23., szerda

Stílusrendőrség

A különbőző névadási, kódolási konvenciók betartása létfontosságú, ha ugyanazon a codebase-en többen is dolgoznak. Más kódjának megértése amúgy se tartozik a legtriviálisab feladatok közé, ha pedig még a "közös nyelv" sincs meg, akkor igazi PITA. Egy baj van a dologgal, hogy a betartatása igazi robotmunka - akkor viszont nosza, csináltassuk robotokkal!

Több tool is elérhető a témakörben, például az FxCop, ami a már lefordított assembly-t elemezve ömleszti ránk a jótanácsokat, de ma nem róla lesz szó, hanem a testvéréről, a StyleCop-ról. Ő a forráskódot analizálja, ennélfogva némileg más szempontok szerint tudja segíteni a munkánkat.

Csináltam egy gyors teszet: letöltöttem az install .msi-t, a Visual Studio-ban csináltam egy új konzol alkalmazást, és az automatikusan legenerált alkalmazás-vázat egy magas színvonalú "Hello, World!" applikációvá bővítettem ki:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StyleCopTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, StyleCop!");
        }
    }
}
Ezután elindítottam a Tools menübe beépülő StyleCop-ot (Run StyleCop), ami megvizsgálta a kódot, és a standard Error list ablakban (amiben a fordításkor az Error-ok, Warningok jelennek meg), néhány Warning képépben materializálódott a végeredmény.




Ezután átszabtam úgy a kódot, hogy megfeleljek az alapból beállított szabályok mindegyikének.

Ezek között voltak olyanok, amikkel nagyon egyetértettem (pl. minden osztályon, metóduson legyen XML komment), valamire azt mondtam, hogy hát végülis jó, legyen (mindenképp legyen kiírva az access modifier az class-ok elé), valamit kimondottam furcsálltam (a using-okat hozzuk be a namespace alá).

A file elejére egy copyright note-ot reklamált, amit saját kútfőből nem is tudtam összehozni, szerencsére az adott warning kódja (SA1634) alapján a SyleCop doksiból kiderült, hogy pontosan milyenre vágyik. Végül ez lett a "Hello, StyleCop!" alkalmazásból:

// <copyright file="Program.cs" company="Öt Perc DotNet">
//      Copyright (C) 2010 http://otperc.net
// </copyright>

namespace StyleCopTest
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// A summary for the Program class.
    /// </summary>
    internal class Program
    {
        /// <summary>
        /// A comment for the Main method.
        /// </summary>
        /// <param name="args">A comment for the args parameter.</param>
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello, StyleCop!");
        }
    }
}

Szerencsére ott, ahol nem értünk egyet beépített stílusrendőrünkkel, ott lehetőség van a konfigurálásra, vagy akár új szabály létrehozására. A StyleCop a build folyamatba is bepíthető, így akár automatikus visszajelzést kaphatunk, ha valaki a csapatunkból partizánakciókba kezd kódolási stílus terén.

2010. június 15., kedd

Kínzó kérdés

Az miért van, hogy lézernyomtatóból tudnak csinálni

  • fekete-fehéret,
  • színeset,
  • fénymásolósat,
  • scannelőset,
  • faxgépeset,
  • egyoldalas-nyomtatósat,
  • kétoldalas-nyomtatósat,
  • n-oldalas-nyomtatósat,
  • összefűzőset,
  • szétvágósat,
  • dokumentum-megőrzőset,
  • dokumentum-megsemmisítőset,
  • százezer forintosat,
  • egymillió forintosat,
  • tízmillió forintosat,
csak olyat nem, aminek ne kéne a papírtálcát minden második nyomtatás előtt ki-be rángatva a tudtára adni, hogy "nem, nem barátom, higyjed el, hogy van még papír abban az átkozott adagolóban, esküszök!".

2010. június 11., péntek

Olvasóink küldték rovat

"Névtelen" olvasónk kommentjében érkezett a következő "mit ír ki" rejtvény:

Console.WriteLine("{0}");
Console.WriteLine("{0}", "{0}");

Én ezt még ennyivel megfejelném:

Console.WriteLine(string.Format("{0}"));
Console.WriteLine(string.Format("{0}", "{0}"));

A kérdést már fel se teszem


object o1 = true;
object o2 = true;
Console.WriteLine(o1 == o2);

2010. június 10., csütörtök

GMail "plusszos címzés"

Tudják mi az email címem?

Hát gerely+1@mail.com. Vagy gerely+2@gmail.com. Vagy gerely+akarmi@gmail.com.

A gmail ugyanis figyelmen kívül hagyja a usernévben a "+" jel mögötti rész, a levél így is megérkezik a postafiókba. A "figyelmen kívül hagyja" nem is teljesen pontos, mert cízett (To:) mezőben ott lesz, tehát ez alapján tudunk címkézni, filterezni.

Akkor is nagyon jól tud jönni ez a feature, ha pl. egy regisztrációs folyamatot tesztelünk, ahol mindig egyedi email címeket kell megadni, de érthető okokból nem szeretnénk 1000 postafiókot létrehozni...

További trükközésre nyílik lehetőseg a névben elhelyezett pont karakterrel.

Részletek a GMail Blog-on: http://gmailblog.blogspot.com/2008/03/2-hidden-ways-to-get-more-from-your.html