WinDirStat

Régen egy barátomnál láttam egy programot, ami megmutatta, hogy a merevlemezen mi mennyit helyet is foglal. Égre-földre kerestem az alkalmazást annak idején. Most teljesen véletlenül találtam rá, érdemes vetni rá egy pillantást, mindenkinek aki szereti.
WinDirStat

Windows Service

Mai kis írásom a windows szolgáltatásokról fog szólni, mégpedig a .Net és a Windows Services kapcsolatáról. Mint tudjuk lehet .Netben szolgáltatást csinálni, nem nagy trükk.
Amit nem reklámoznak, hogy lehet olyan szolgáltatást is csinálni, ami ha szolgáltatás módban indul az alkalmazás akkor szolgáltatás módban indul el, ha pedig csak úgy elindítják akkor normális windows gui alkalmazásként. Ez hasznos lehet pl. ha fejlesztünk és normális teszt környezetet szeretnénk kialakítani, vagy logot, vagy bármi mást.
Ezt az alábbi módon tudjuk megvalósítani:

static void Main()
{
if (System.Environment.UserInteractive)
{
System.Windows.Forms.Application.Run(new Form1());
}
else
{
ServiceBase[] ServicesToRun = new ServiceBase[] { new Service1() };
ServiceBase.Run(ServicesToRun);
}

}

Ahol Service1 a szolgáltatás osztály, és Form1 a windows formunk.
Természetesen a szolgáltatás nem indul el magától ha a formot indítjuk el, de a szolgáltatás elindítása triviális:
Service1 service=new Service1();
service.OnStart(null);

Rex fájlok használata Cubase 4 alatt

Szemfülesek észrevehették, hogy megjelent a Cubase 4 kategória is, gondoltam ennek örömére írok is egy rövid cikket a témával kapcsolatban.
A rex fájl nem más, mint a Propellerhead cég Reason programjában debütáló olyan hang fájl, ami tartalmazza a hangmintához tartozó alap lejátszási sebességet (BPM) valamint fel van osztva részekre (slices).
A lejátszás úgy történik, hogy a megfelelő időpillanatban elindítják az aktuális rész lejátszását. Ebből következik, hogy ha egy kicsit állítunk a lejátszás ütemén, akkor a hangminta (például dob) még teljesen élvezhető. Természetesen ha túl gyorsra állítjuk a lejátszást a slice-ok összelapolódnak, és még mielőtt az előző véget érne, elkezdődik a következő, ha túl lassú a tempó, akkor pedig szünetek keletkeznek. Azt lehet mondani, hogy az alap sebességtől függően olyan 30-80 bpm sebességkülönbséget még át lehet hidalni rex fájlok használata során.

De mi is a probléma, ha mindezt Cubase 4 alatt szeretnénk használni. A legfőbb probléma az, hogy a Propellerhead az másik cég, mint a Steinberg.
A Rex fájlok használatának jogát a birtokló cég elég rendesen visszatartotta. Mostmár elértük azt, hogy a Cubase tud importálni rex fájlokat. Ellenben a tempó adatokat nem veszi figyelembe. Két dolgot tehetünk.
Elmentjük a Rex fájlt wav fájlként (ezt tudja a Cubase is ha audio mixdownt mondunk neki a rex fájlra), majd a Cubase által adott Hitpoint funkcióval újra felosztjuk a fájlt, és onnantól kezdve teljes értékű loopként tudjuk használni. Ez egy működőképes megoldás, speciel én annyira nem szeretem.

Második lehetőség, hogy használjuk a Propellerhead Recycle programját, ami azért is előnyös, mert segítségével könnyedén tudunk válogatni a meglévő rex állományaink közül, továbbá ki tudja a kiválasztott rex fájl lejátszási tempóját menteni midi-be (Ezt a funkciót használta a Reason alatt a Dr Rex is). Ehhez az alábbit kell tenni a Recycle programban: File menü -> Export -> és ott „.mid” formátumban mentjük a fájlt. (Én a rex fájlok mellé azonos névvel mentem a mid fájlokat is, mondván bármikor jól jöhet a rex-hez tartozó midi :).
Ezek után Cubase alá egy hang sávra ráhúzzuk a rex fájlt, majd egy midi sávra a midi fájlt. Kijelöljük a midi részt, majd:
Midi menü -> Advanced Quantize -> Part to Groove
Ezzel létrehoztunk egy olyan Quantizálást ami a midi részen alapul. Nincs is más dolgunk, csak alkalmaznunk kell ezt a Quantizálást a Rex fájlunkon. Ezután a midi törölhető a projektből.
Duplaklikk az importált Rex fájlon, majd az előjövő hangszerkesztő ablakon a Quantize értékét állítsuk át az importáltra. Ha a midi fájl neve 064.mid volt, akkor a hozzá tartozó kvantálási érték: >>>064.mid…
Ezek után már teljesen jól lejátszhatóak a rex fájlaink.
Amennyiben szeretnénk a részek lejátszását midi alapján összekeverni, a rex fájlt egy VSTI-be kell tölteni (például: NI Battery, NI Kontakt) majd ezt kell vezérelni a Rex-hez tartozó már importált midi fájlal.

Vpn szerver beállítás

Először is, tekintsük át, mire is jó a vpn. A VPN mint olyan a Virtual Private Network rövidítésből ered. A dolgot a legkönnyebben úgy lehet elképzelni, hogy a vpn olyan mint egy hálózati kábel. Bedugja az ember a belső kis hálózatába a kábelét, látja a megosztott nyomtatókat, fájlokat, gépeket.
Ha felcsatlakozunk a VPN szerverre, ott is ez történik, csak annyi különbséggel, hogy a kábel nem létezik, és a kapcsolat az interneten keresztül történik. Egyszóval bárhonnan csatlakozhatunk a belső védett hálózatunkhoz, és elérhetjük rajta a megosztott erőforrásainkat, persze csak akkor, ha használunk VPN-t.
Na de vágjunk is bele. Az általam említett parancsokat érdemes lehet root jogokkal rendelkezve kiadni.
A vpn telepítés első lépése letölteni a szervert.

apt-get install pptpd

Ezek után nézzük meg, hogy a vpn-hez szükséges kernel modulok be vannak e töltve. Ez a lépés elileg kihagyható, de valamiért nekem nem volt betöltve 1 és nem kevés ideig kerestem, vajon miért nem működik.

A betöltött modulokat az lsmod-al listázhatjuk ki, minket az alábbiak érdekelnek:

lsmod | grep ppp

Az alábbi modulokat kellene mindenképpen látni a kapott listában:

ppp_generic
ppp_async
ppp_mppe

Ha valamelyik modul hiányzik, azt a modprobe parancsal tudjuk berakni az alábbi módon:

modprobe ppp_mppe

Ha ezzel megvagyunk, már csak a konfigurációs fájlokat kell beállítani amik több helyen találhatóak. Első lépésben tekintsük át az álltalános konfigurációs beállításokat.

nano /etc/ppp/pptpd.conf

A fájlban pár nagyon fontos beállítás található:

bcrelay eth1
localip 192.168.1.2
remoteip 192.168.1.200-238

A bcrelay az a hálózati eszköz, ami ahhoz a hálózathoz csatlakozik, amire rá szeretnénk engedni a felhasználókat.

A localip az az ip (vagy ip tartomány) amit a kliens felcsatlakozáskor a szerver ip-jének látni fog (ez lehet egyenlő mondjuk a szerver tényleges ip-jével)

A remoteip az az ip cím, amit a kliensek kaphatnak. Célszerű ezt a tartományt úgy választani, hogy ne ütközhessen, a belső hálózaton található gépek ip-jével.

Aztán magával a ppp kapcsolattal kapcsolatos beállításokat szabhatjuk testre:

nano /etc/ppp/pptpd-options

Itt érdemes módosítani a name mezőt, ezzel kell ugyanis szerepeltetni a felhasználókat a hozzáférést leíró fájlban (lásd lentebb)

Második lépésben szerkesszük a vpn használatára jogosult felhasználókat tartalmazó fájlt.

nano /etc/ppp/chap-secrets

Miután ezt a fájlt szerkesztettük, csak a root-nak adjunk rá olvasási jogot, az alábbi módon.

chown root:root /etc/ppp/chap-secrets

Korlátozzuk a hozzáférést:

chmod 400 /etc/ppp/chap-secrets

Ellenőrizzük mit is csináltunk:

ls -l /etc/ppp

valami ilyesmit kellene látnunk

-r——– 1 root root 232 2007-06-04 22:56 chap-secrets

A kapcsolatot már windows alól is tesztelhetjük.

Ha minden tökéletesen működik, akkor egy saját vpn hálózat boldog tulajdonosai vagyunk, ha nem, akkor el lehet kezdeni bekapcsolni a konfigurációs fájlokban a debug módot, és találgatni, hogy mi a hiba.

Végezetül az én működő beállításaim letölthetőek innen.

Remélem nem felejtettem ki semmit. Mindenkinek további jó csatlakozást.