Archive for the ‘Felhívás’ Category

TDD következő alkalom early bird

Monday, November 16th, 2015

Jövő januárban újra lesz TDD tanfolyam, most ősszel már nem volt időm betervezni egyet.

Aki december 1-ig jelentkezik, azt most 150e-ért csatlakozhat.

TDD akció újra

Friday, February 27th, 2015

Tavaly már volt egy ilyen akcióm, az megtöltötte a termet (150k < 200k). Gyere, ne maradj le róla.

Ha stringeket kell formázni, ez hasznos lehet

Friday, October 10th, 2014

Pl. Format(“{Elso} – {Masodik}”, obj);

Az objből kiszedi az Elso es Masodik property-k értékét, és behelyettesíti.

Íme pár implementáció, nekem a szerzőé bevált (HaackFormatter).

—–

TDDre még van van pár helyem, akit érdekel, vagy ismerősét érdekli, jelentkezzen. Ha a jelentkezéskor a megjegyzésbe beírod a HaackFormatter szót, akkor még él a 150-es kedvezményes ár.

Már csak 2 napig lehet extra kedvezménnyel jelentkezni a TDD tanfolyamra! 200000 -> 150000

Monday, September 29th, 2014

Itt érhető el az online jelentkezési lap.

Már csak 4 napig lehet extra kedvezménnyel jelentkezni a TDD tanfolyamra! 200000 -> 150000

Friday, September 26th, 2014

Gyorsan, gyorsan, ne maradjatok le róla.

TDD tanfolyam újra – extra előfoglalási akcióval

Monday, September 22nd, 2014

Újra lesz TDD tanfolyam novemberben. Aki gyorsan lép, sokkal olcsóbban jöhet most tanulni.

Részletek itt, várok mindenkit szeretettel.

TDD tanfolyam last minute

Monday, April 28th, 2014

Kedves barátaim/olvasóim, még van 2 helyem a jövő heti tanfolyamra, aki még nem szánta el magát, most van az utolsó alkalom, jelentkezzen.
Legközelebb már csak ősszel fogok indítani új kurzust.

Köszi,
soci

Test Driven Development tanfolyam

Thursday, March 6th, 2014

Előadtam a 4 napos Test Driven Development tanfolyamomat 2 nagy csapatnak is egy híres nemzetközi-magyar cégnél. Úgy tűnt sikerült fellelkesíteni a kollégákat, ez a célja egy ilyen oktatásnak. Nagyon jó olyan helyen oktatni, ahol értenek a szakmához és szeretik is azt.
A 4. nap mindig egy egész napos demó, ahol a nulláról összerakunk egy SQL Server és Active Directory között szinkronizáló alkalmazást (fake adapterekkel), TDD módon, sokat refactorolva közben.

Gondolkodom rajta, hogy megnyitom a tanfolyamot nem csak cégeknek, hanem tantermi jelleggel is, így azok a cégek programozói is élvezhetik, akiknek nincs annyi emberük, hogy házon belül rendezzék meg a tanfolyamot.

Ha valakit érdekelne a dolog, kérdem jelezze kommentben vagy emailben, hogy lássam, érdemes-e nekiállni kibérelni egy termet erre a célra.

Témák:
1. Unit tesztelés bevezető
2. Unit tesztelés elmélet
3. Függőségek kiiktatása Fake-ekkel
4. Refactoring
5. Test Driven Development (TDD)

Kulcsszavak a tanfolyamból:
Refactoring
Resharper
NCrunch
Visual Studio 2013
TDD
Triangulation
Unit Test
NSubstitute
Mock
Stub
Visual Studio Fakes
Dependency Injection
AutoFac
Unity
Design Patterns
Code Quality
Design elvek alkalmazása
Code Smells
Integrációs tesztek
FluentAssertions
Cyclomatic Complexity
Code Coverage
Conformance, Ordering, Range, Reference, Existence, Cardinality,Time
Unit Testing antipatterns

SQL prospektus kiküldve

Monday, June 4th, 2012

Feladtam postára az eddig beérkezett igényeket, aki szerencsés, már holnap megkapja, aki nem, az soha, ismerve a minőségéről híres postát. Ha valaki nem kapja meg két héten belül jelezze, elküldöm még egyszer.

Jó olvasgatást. :)

SQL brossúra akció

Monday, May 21st, 2012

Kővári Attilával és Bitemo Erikkel közösen írtunk egy SQL Server 2012 anyagot, amelyet a termékbemutató konferencián kaptak meg a résztvevők. Ebben tömören összefoglaltuk a szerintünk legfontosabb újdonságokat, mindenki a saját területén.

Attilával meghirdetünk egy akciót: aki 2012. június 15-ig ír nekem vagy neki, hogy szeretne egy példányt kapni az anyagból, annak ingyen, mindenféle kötelezettség nélkül elküldjük azt.
Értelemszerűen a levélben legyen benne a név és cím.

Az akciót nem az MS szervezi, tehát a kérések hozzám és Attilához futnak be, nem kaptok majd office ajánlatokat az MS-től akció után. :)

Az akció miértjéről Attila bővebben írt, érdemes szétnézni nála. Nálam is hasonló a helyzet, csak annyi a különbség, hogy a borítékot nem a gyerekek fogják felcímezni, mert akkor senki nem kapná meg, max. a postás a szívinfarktust. :)

A várakozás vége

Wednesday, March 28th, 2012

Kedves Blogolvasóim!

Örömmel jelentem, hogy vége a hallgatásnak. :) Március elején véget ért az a munka, amely minden erőmet és időmet elvitt, így újra lesz időm blogolni. Ami miatt ez most bizonyosabb, hogy áprilisban lesz egy konferencia, amin az SQL Server 2012-ről fogok beszélni (az, hogy ezt elvállaltam is jelzi, hogy lett újra időm élni), és ehhez írtam 22 oldalnyi anyagot és sok példakódot, amelyet apránként bedolgozok ide a blogba is. Az elsőt ma tolom is be.

Jó tanulást, köszönöm a kitartást. :)

SQL Server – Oracle könyv

Wednesday, April 27th, 2011

Meglegyintett a sötét oldal, ezért kénytelen leszek kicsit érteni az Oracle-höz is. :)

Tud valaki jó könyvet, ami valamiféle SQL Server – Oracle turbó átképzésről szól? Nem akarom a create table-nél kezdeni, ikább valami diff könyv kellene.
Persze, lehet ez nem ilyen egyszerű, el kell kezdeni valami Essential Oracle könyvvel.

.NET fejlesztői álláslehetőség

Monday, April 4th, 2011

Kb. egy hónap múlva elkezdek dolgozni egy igen komplex nagyvállalati enterprise app prototípusán. Ebben pár hónapon keresztül fogok részt venni, viszont valakinek ebből kész terméket is kellene készíteni. Ehhez nyitott meg a megrendelő cég 2 állást, amelyeket alább részletezek.
Ha kedvet érzel .NET-tel, a legmodernebb technológiákkal dolgozni és emberileg is passzol rád amit a követelményekben leírnak, akkor várunk szeretettel.
Az állások már most nyitottak, mivel a velem együtt dolgozzuk ki a prototípust, a cél az, hogy a tartósan a projekten dolgozó emberek mélységében tisztában legyenek azzal, amit tervezek.
Ha érdekel a dolog, az email címemen keresztül jelentkezhetsz.

A két állás:

Termékfejlesztési vezető

Több, mint 10 éve eredményesen működő, nemzetközi háttérrel rendelkező szoftverfejlesztő cég .NET és Oracle technológián alapuló, integrált vállalatirányítási rendszer fejlesztési projektjéhez termékfejlesztési vezető keres főállásban.

Feladat:
• Folyamatban lévő termékfejlesztési projekt vezetésének átvétele, újraszervezése;
• A termék specifikációjának áttekintése és teljessé tétele, a rendszerterv elkészítése;
• A fejlesztési csapat munkájának összehangolása , a termékfejlesztési projekt különböző fázisaiban a projekt céljainak elérése érdekében a megfelelő, felelős szakmai és vezetői döntések meghozatala;
• A projekttel kapcsolatos erőforrás-menedzsment, felelős becslések elkészítése , feladatok kiosztása, megoldások ellenőrzése;
• Fejlesztői csapat vezetése, együttműködés más szakmai vezetőkkel.

Cégünk számára az ideális jelölt:
Informatikai vagy műszaki felsőfokú végzettséggel rendelkezik, tapasztalata van, sikeres .NET-es termékfejlesztési projektekben vezető fejlesztőként/tervezőként, továbbá projektvezetésre alkalmas vezetői készségekkel rendelkezik. Határozott, céltudatos személyiség képes gyors döntések foganatosítására. Stratégiai, üzleti szemlélet jellemzi, képes ’big picture’-ben gondolkodni. Munkája magabiztos elvégzéshez Oracle ismerettel és közép szintű angol nyelvismerettel rendelkezik.

Munkavégzés helye: Budapest

Jelentkezés:
Hosszú távú, kölcsönös együttműködésre alapuló munkakapcsolat kialakítása érdekében várjuk jelentkezését.
Jelentkezését csatolt fényképes magyar és angol nyelvű szakmai önéletrajzzal, motivációs levéllel, referencia megjelölésével az alábbi címen várjuk: zsolt.soczo@gmail.com

A másik:

.NET vezetőfejlesztő

Több, mint 10 éve eredményesen működő, nemzetközi háttérrel rendelkező szoftverfejlesztő cég .NET és Oracle technológián alapuló, integrált vállalatirányítási rendszer fejlesztési projektjéhez vezetőfejlesztőt keres főállásban.

Feladat:
• A senior és junior fejlesztők szakmai irányítása, modultervezés, a feladatok megvalósítása a fejlesztőkkel és riportálás.
• A hozzá rendelt fejlesztők munkájának szakmai irányítása, számukra feladatok szabása és értékelése.
• Termék moduljainak tervezése a fejlesztési munka feladatokra bontása, kiosztása, visszavétele. A specifikációt végző konzulenssel való együttműködés a tervezés érdekében az ügyfél igény pontosítása ügyféllel szükség esetén.
• Döntés a tesztelési feladatokról, együttműködés a tesztelési csoporttal.
• Erőforrásbecslés, a megadott becslések visszaellenőrzése, a becslési folyamat pontosítása.

Cégünk számára az ideális jelölt:
Informatikai vagy műszaki felsőfokú végzettséggel rendelkezik, tapasztalata van, sikeres .NET-es termékfejlesztési projektekben vezető fejlesztőként. Pontos, precíz összehangolt munkavégzésre képes, munkája magabiztos elvégzéshez Oracle ismerettel és közép szintű angol nyelvismerettel rendelkezik.

Munkavégzés helye: Budapest

Jelentkezés:
Hosszú távú, kölcsönös együttműködésre alapuló munkakapcsolat kialakítása érdekében várjuk jelentkezését.
Jelentkezését csatolt fényképes magyar és angol nyelvű szakmai önéletrajzzal, motivációs levéllel, referencia megjelölésével az alábbi címen várjuk: zsolt.soczo@gmail.com

Na, újra működök

Saturday, October 23rd, 2010

Az elmúlt napokban hardver csere volt a site mögött, emiatt nem volt elérhető. Most már lassan újra talpra állok. :)

Modernizált Design Patterns tanfolyam – 2010. május 4-7

Monday, March 22nd, 2010

Szétestem az utóbbi két hónapban, annyi munkám volt (elnézést kis családomtól így nyilvánosan is), de most végre kicsit fellélegzek. Most sok időm lesz, elvégre a munkák mellé csak 6 MCP vizsgát raktam be áprilisra (.NET 4 béták). :)

Májusban viszont újra lesz Design Patterns tanfolyam, ahol az eddigi a Gof patternek mellett Unityről és általában a Dependency Injection frameworkökről, ViewModelről, Composite Application Block for WPF-ről, T4 template alapú kódgenerálásról, partial method alapú kibővíthetőségről és Entity Framework Portable Extensible Metadatáról (egyfajta DSL) is szó lesz.
Várok mindenkit szeretettel.

Aki a NetAcademiánál jelentkezéskor az alábbi C# kód által kiírt stringet bemutatja, 50e Ft kedvezményt kap az árból.

using System;

class Program
{
static void Main(string[] args)
{
Allat a = new Emlos();
a.Mozog();
}
}

class Allat
{
public virtual void Mozog()
{
Console.WriteLine(“Állat vagyok, és mozgok”);
}
}

class Emlos : Allat
{
public virtual void Mozog()
{
Console.WriteLine(“Emlős vagyok, és mozgok”);
}
}

Hacktivity előadásom

Tuesday, September 15th, 2009

Hétvégén lesz a Hacktivity konferencia, ahol NEM arról fogok beszélni, ami ki van írva.
Gál Tamással ketten kaptunk 45 percet, amiben GT a VPN Windows7/R2 új alternatíváiról beszél, én pedig arról, hogy egy akkora cég, mint az MS hogyan képes felzárkózni a hekkerek generálta biztonsági kihíváshoz. Az előadásom fele érdekességekkel, történetekkel lesz tele, belső infók, mit tesz az ms a jobb kódminőség érdekében, a másik felében pedig konkrét példákat mutatok be, amelyek demonstrálják, hogy a különböző támadási típusok esetén (privilege escalation, stb.) hogyan zárkóztak fel a termékek, mint a Windowsok vagy az IIS.
Szeretettel várok mindenkit, aki ráér hétvégén hekkerkedni.

Windows 7 és Windows 2008 R2 konferencia jelentkezés

Thursday, May 14th, 2009

Kikerült a webre a jelentkezési felület, akit érdekel gyorsan jelentkezzen, mert a tegnap délutáni meghirdetés után elképesztő számban kezdtek el beömleni a jelentkezések, és 2 Lurdy terembe sajnos nem fog beférni minden jelentkező.

Előadásom az Architect Akadémián – SQL Server architect szemmel

Sunday, April 12th, 2009

Kicsit későn szólok, de ha valakit érdekel, még jelentkezhet, április 15-én lesz.
3×1 órában beszélek arról, hogyan lehet bevetni az SQL Serverek (2000-2008) okosságait egy új alkalmazásarchitektúra kidolgozása során. A cél nem annyira mélységi, mint szélességi bemutatása annak, mit lehet kihozni az SQL Serverből. Igyekszek olyan dolgokról is beszélni, amiről ritkán esik szó (pl. Query Notification, Service Broker), világnézet tágítás végett. Szeretném megmutatni, hogy az SQL Server nem egy egyszerű CRUD adatbázismotor, ahogy sajnos nagyon sokan használják.

Design Patterns tanfolyam – újra, kibővítve .NET 3.5-tel

Thursday, February 12th, 2009

Marcival újra összeállunk pár akcióra, ennek első megnyilvánulása, hogy újra lesz Design Patterns tanfolyam.
Már írom át az anyagot, a 3.5-ös .NET Fw. tele van szebbnél-szebb design példákkal, illetve az utóbbi 2 év gyakorlati programozása során jó pár dolog tovább formálódott, tisztult a fejemben, ezeket is beépítem az anyagba.

A referenciáim között megtekinthető, hogy volt, amikor cégek szinte összes programozója részt vett a tanfolyamon, felismerve a dolog hasznát a fejlesztési folyamatok minőségére.

És végül, aki bemásolja a következő kódot a jelentkezési lapjára, 20% kedvezményt kap a tanfolyam árából:

public class DP: Course, ISupportDiscount
{
public HappyStudent GiveMeThisDirtyGoodCourseCheaply() { }
public string Author { get { return “soci”; } }
public string Trainer { get { return “soci”; } }
public DateTime ActionTime { get { return DateTime.Parse(“2009.03.09”); } }
}

Szeretettel várok mindenkit.

Amikor egy metódus nem a helyén lakik

Tuesday, January 20th, 2009

Az utóbbi pár hétben rendkívül intenzíven egy programot írok – egy Automated Trading System-et, így mondják ezeket angolul. Azaz egy olyan programot, amely real-time tőzsdei adatok alapján automatikusan döntéseket hoz, ad-vesz. Persze a dolog a valóságban elképesztően bonyolult tud lenni, de programozási gyakorlatnak mindenképpen érdekes.

A rendszer részleteiről egyelőre nem akarok írni, majd ha működik, beszélek róla – bár lehet, hogy pont akkor nem kellene, mi? :)

No, a lényeg, hogy az ilyen rendszereket az ember csak akkor indít el, ha nagyon hosszú múltbeli adatokon végigpróbálva elég jó a nyereség/veszteség aránya, és nem csinál zsinórban annyi veszteséget, ami már pszichológialiag fáj, vagy akár le is nullázza az erre szánt pénzt.
Ezt a tesztelést hívják backtest-nek. Ehhez adatok kellenek, amit persze pénzért adnak, de ez már csak ilyen, ha ez ember pénzt akar keresni, ahhoz be is kell fektetni.
Nekem most már van több mint 10 évnyi perces adatom a legnagyobb likviditású futures-ökhöz (S&P 500 E-Mini, Nasdaq E-Mini, stb.).
Jöhet a szakma. A backtest írásakor kialakult a következő kódrészlet:

class BackTestSession
{

for (int i = 0; i < bars.Count; i++) { foreach (TradingAlgorithm alg in algs) { StepOne(alg, i); } } private void StepOne(TradingAlgorithm alg, int i) { if (!alg.InLong && !alg.InShort) { decimal entryPrice; TradeActionReason reason = alg.WantToBuyLong(i, out entryPrice); if (reason != TradeActionReason.None) { return; } reason = alg.WantToSellShort(i, out entryPrice); if (reason != TradeActionReason.None) { return; } return; } if (alg.InLong) { TradeActionReason reason = alg.WantToSellLong(i); if (reason != TradeActionReason.None) { return; } } if (alg.InShort) { TradeActionReason reason = alg.WantToCoverShort(i); if (reason != TradeActionReason.None) { return; } } return; } ... } [/source] Ez a kód messziről bűzlik. Mi a gond vele? Nem jó helyen lakik. Figyeljük meg, hogy egyfolytában egy másik típuson (TradingAlgorithm) végez műveleteket, átnyúlkál oda adatokért és műveleteket végezve rajta. Ez egy code smell a refactoringok házatáján, amire megoldás, ha elköltöztetjük a metódust a helyére. Move method refactoring. [source='C#'] class BackTestSession { for (int i = 0; i < bars.Count; i++) { foreach (TradingAlgorithm alg in algs) { alg.StepOne(i); } } } class TradingAlgorithm { public void StepOne(int i) { if (!InLong && !InShort) { decimal entryPrice; TradeActionReason reason = WantToBuyLong(i, out entryPrice); if (reason != TradeActionReason.None) { return; } reason = WantToSellShort(i, out entryPrice); if (reason != TradeActionReason.None) { return; } return; } if (InLong) { TradeActionReason reason = WantToSellLong(i); if (reason != TradeActionReason.None) { return; } } if (InShort) { TradeActionReason reason = WantToCoverShort(i); if (reason != TradeActionReason.None) { return; } } return; } } [/source] Látható a különbség? Sokkal direktebb lett a kód, oda került a metódus, ahová való. Erről szól az első GRASP pattern, az Information Expert.

Következő refactoring lenne az out paraméterek kiirtása, lecserélése member változóra. Erre még a VS is ad refactoring támogatást.

És most jön a shameless plug (bár nem ezért kezdem el írni a cikket, de ki nem hagynám a lehetőséget :): A Netacademiában márciusban lesz újra Design Patterns tanfolyamom, ahol az objektumorientált programozás praktikáit mutatom meg 4 napban, ilyen egyszerűeket mint a fenti, és sokkal bonyolultabbakat is. A régi tananyagot átírom a következő hetekben, kiegészítve .NET Fw. 3.5-ös példákkal (WCF-ben és WPF-ben nagyon szép példákat látni a patternekre).