Soci (Soczó Zsolt) szakmai blogja

2015.11.16.

TDD következő alkalom early bird

Filed under: .NET,Felhívás,Szakmai élet,Test Driven Development,Testing — Soczó Zsolt @ 23:19

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.

2015.02.27.

TDD akció újra

Filed under: .NET,Felhívás,Szakmai élet,Test Driven Development,Unit Test — Soczó Zsolt @ 13:30

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

2014.10.10.

Ha stringeket kell formázni, ez hasznos lehet

Filed under: .NET,Felhívás,Szakmai élet — Soczó Zsolt @ 17:04

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.

2014.09.29.

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

Filed under: Felhívás,Szakmai élet — Soczó Zsolt @ 09:12

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

2014.09.26.

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

Filed under: Felhívás,Szakmai élet,Test Driven Development — Soczó Zsolt @ 08:14

Gyorsan, gyorsan, ne maradjatok le róla.

2014.09.22.

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

Filed under: .NET,Design,Felhívás,Szakmai élet,TDD,Test Driven Development — Soczó Zsolt @ 16:43

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

Részletek itt, várok mindenkit szeretettel.

2014.04.28.

TDD tanfolyam last minute

Filed under: Felhívás,Szakmai élet — Soczó Zsolt @ 18:09

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

2014.03.06.

Test Driven Development tanfolyam

Filed under: .NET,Felhívás,Szakmai élet — Soczó Zsolt @ 18:20

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

2012.06.04.

SQL prospektus kiküldve

Filed under: Adatbázisok,Felhívás,SQL Server,SQL Server 2012,Szakmai élet — Soczó Zsolt @ 11:50

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. :)

2012.05.21.

SQL brossúra akció

Filed under: Adatbázisok,Felhívás,SQL Server,SQL Server 2012,Szakmai élet — Soczó Zsolt @ 07:22

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. :)

2012.03.28.

A várakozás vége

Filed under: Felhívás,Szakmai élet — Soczó Zsolt @ 13:05

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. :)

2011.04.27.

SQL Server – Oracle könyv

Filed under: Adatbázisok,Felhívás — Soczó Zsolt @ 18:18

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.

2011.04.04.

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

Filed under: .NET,Felhívás,Szakmai élet — Soczó Zsolt @ 07:50

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

2010.10.23.

Na, újra működök

Filed under: Élet,Felhívás — Soczó Zsolt @ 19:34

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

2010.03.22.

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

Filed under: .NET,.NET 4,Architektúra,Design,Felhívás,Szakmai élet — Soczó Zsolt @ 18:43

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”);
}
}

2009.09.15.

Hacktivity előadásom

Filed under: Architektúra,Design,Felhívás,Security,Szakmai élet — Soczó Zsolt @ 12:58

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.

2009.05.14.

Windows 7 és Windows 2008 R2 konferencia jelentkezés

Filed under: Felhívás,Szakmai élet,Windows,Windows 2008 R2,Windows 7 — Soczó Zsolt @ 08:29

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ő.

2009.04.12.

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

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.

2009.02.12.

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

Filed under: Architektúra,Design,Felhívás,Szakmai élet — Soczó Zsolt @ 13:05

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.

2009.01.20.

Amikor egy metódus nem a helyén lakik

Filed under: .NET,Design,Élet,Felhívás,Szakmai élet,Tőzsde — Soczó Zsolt @ 12:52

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).

Newer Posts »

Powered by WordPress