<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Soci blog</title>
	<atom:link href="http://soci.hu/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://soci.hu/blog</link>
	<description>Az ember kivételével minden állat tudja, hogy a legfontosabb dolgunk az életben: élvezni azt.</description>
	<pubDate>Mon, 27 May 2013 17:35:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Windows 8 WinSxs takarítás</title>
		<link>http://soci.hu/blog/index.php/2013/05/27/windows-8-winsxs-takaritas/</link>
		<comments>http://soci.hu/blog/index.php/2013/05/27/windows-8-winsxs-takaritas/#comments</comments>
		<pubDate>Mon, 27 May 2013 17:35:28 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1387</guid>
		<description><![CDATA[dism.exe /online /cleanup-image /startcomponentcleanup
Meglepő eredményeket hoz.
]]></description>
			<content:encoded><![CDATA[<p>dism.exe /online /cleanup-image /startcomponentcleanup</p>
<p>Meglepő eredményeket hoz.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/05/27/windows-8-winsxs-takaritas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WCF perf</title>
		<link>http://soci.hu/blog/index.php/2013/02/14/wcf-perf/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/14/wcf-perf/#comments</comments>
		<pubDate>Thu, 14 Feb 2013 21:11:12 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[.NET 4.5]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1384</guid>
		<description><![CDATA[Ma sikerült 700 MBits/seccel adatokat átvinni titkosítva, tömörítve WCF-fel egy erős pc és egy szerver között. :)
Ehhez egyszerre 3 szerverre uploadoltunk fájlokat párhuzamosan, netTcpBindinggel, SSL-lel, a csatornán Deflate tömörítéssel (.NET 4.5).
]]></description>
			<content:encoded><![CDATA[<p>Ma sikerült 700 MBits/seccel adatokat átvinni titkosítva, tömörítve WCF-fel egy erős pc és egy szerver között. :)<br />
Ehhez egyszerre 3 szerverre uploadoltunk fájlokat párhuzamosan, netTcpBindinggel, SSL-lel, a csatornán Deflate tömörítéssel (.NET 4.5).</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/14/wcf-perf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HashSet.Add végtelen ciklus oka és megoldása</title>
		<link>http://soci.hu/blog/index.php/2013/02/10/hashsetadd-vegtelen-ciklus-oka-es-megoldasa/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/10/hashsetadd-vegtelen-ciklus-oka-es-megoldasa/#comments</comments>
		<pubDate>Sun, 10 Feb 2013 11:32:17 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1380</guid>
		<description><![CDATA[Alapszabály, hogy HashSet, Dictionary vagy bármi más asszociatív kollekciókban kulcsként csak immutable objektumokat lehet használni. Ennek az az oka, hogy amikor berakunk egy elemet, akkor a kollekció meghívja az objektumon a GetHashCode-ot, és az azonos hashkódú objektumokat listába szervezi. Ha két objektum egyenlőnek tekintendő (az Equals alapján), akkor a hascodejuknak azonosnak kell lenni. Ha ez [...]]]></description>
			<content:encoded><![CDATA[<p>Alapszabály, hogy HashSet, Dictionary vagy bármi más asszociatív kollekciókban kulcsként csak immutable objektumokat lehet használni. Ennek az az oka, hogy amikor berakunk egy elemet, akkor a kollekció meghívja az objektumon a GetHashCode-ot, és az azonos hashkódú objektumokat listába szervezi. Ha két objektum egyenlőnek tekintendő (az Equals alapján), akkor a hascodejuknak azonosnak kell lenni. Ha ez nem teljesül, vagy idővariáns, azaz később már nem igaz, akkor ezek a kollekciók meghülyülnek.<br />
A példám így nézett ki:</p>
<pre name="code" class="c#">

public virtual bool Equals(EntityBase other)
		{
			if (other == null)
			{
				return false;
			}
			if (Id == 0)
			{
				//Transient object
				return ReferenceEquals(this, other);
			}
			return other.Id == Id;
		}

		public override bool Equals(object obj)
		{
            if (!(obj is EntityBase))
            {
                return false;
            }
			return Equals((EntityBase)obj);
		}

		public override int GetHashCode()
		{
			return Id;
		}
</pre>
<p>Eleve látszik, a GetHashCode és az Equals nem azonos logika szerint működik. A GetHashCode akkor ad vissza azonos hascodeot, ha az idk azonosak. Az Equals viszont az idtől függően vagy az idkat hasonlítja össze, vagy referenciális komparálást csinál. Ez már kapásból bug.</p>
<p>A másik bug, hogy ez az objektum nem immutable, az Id változik, amikor adatbázisba beszúrjuk az entitást, és kap egy idt. Emiatt az egész koncepció beteg.</p>
<p>A HashSet.Add meghívja a HashSet.AddIfNotPresetet, amiben van egy ciklus:</p>
<pre name="code" class="c#">

for (int i = this.m_buckets[num % this.m_buckets.Length] - 1; i &gt;= 0; i = this.m_slots[i].next)
	{
		if (this.m_slots[i].hashCode == num &amp;&amp; this.m_comparer.Equals(this.m_slots[i].value, value))
		{
			return false;
		}
		num3++;
	}
</pre>
<p>Ez az ciklus akadt be. Az if feltétele sose teljesült, így sose lépett kis a ciklusból, mivel idt kapott az entitás, így megváltozott az Equals logikája.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/10/hashsetadd-vegtelen-ciklus-oka-es-megoldasa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IOC containerből példányosított WCF szerviz ojjektumok</title>
		<link>http://soci.hu/blog/index.php/2013/02/02/ioc-containerbol-peldanyositott-wcf-szerviz-ojjektumok/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/02/ioc-containerbol-peldanyositott-wcf-szerviz-ojjektumok/#comments</comments>
		<pubDate>Sat, 02 Feb 2013 20:07:30 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1378</guid>
		<description><![CDATA[Ilyet még nem csináltam, percall alapú szervizeknél félnék is a DI framework sebességétől, de ezzel a módszerrel be lehet vezetni a DI-t a szerviz infrastruktúra tövénél. Még kevesebb Service Locator antipattern lesz a kódban.
]]></description>
			<content:encoded><![CDATA[<p>Ilyet még nem csináltam, percall alapú szervizeknél félnék is a DI framework sebességétől, de <a href="http://burcakcakiroglu.com/?p=2148">ezzel a módszerrel</a> be lehet vezetni a DI-t a szerviz infrastruktúra tövénél. Még kevesebb Service Locator antipattern lesz a kódban.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/02/ioc-containerbol-peldanyositott-wcf-szerviz-ojjektumok/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WCF and SSL Processing Load Balancers</title>
		<link>http://soci.hu/blog/index.php/2013/02/02/wcf-and-ssl-processing-load-balancers/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/02/wcf-and-ssl-processing-load-balancers/#comments</comments>
		<pubDate>Sat, 02 Feb 2013 19:40:08 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1376</guid>
		<description><![CDATA[Hogyan bízzuk az sslt a load balancerre, és használjunk sima httpt mögötte, a wcf szervizekig?
A bemutatott trükkös megoldás jól jött volna tavaly, amikor az OEP TAJ ellenőrző szervizét nem tudtuk WCF-fel meghívni, mert nem SSL-en kér auth adatokat. Alapban a WCF ezt nem nyeli le, de a cikk megmutatja, hogy lehet átvágni.
]]></description>
			<content:encoded><![CDATA[<p>Hogyan bízzuk az sslt a load balancerre, és használjunk sima httpt mögötte, a wcf szervizekig?<br />
A bemutatott <a href="http://www.devproconnections.com/article/net-framework2/wcf-and-ssl-processing-load-balancers-122238">trükkös megoldás</a> jól jött volna tavaly, amikor az OEP TAJ ellenőrző szervizét nem tudtuk WCF-fel meghívni, mert nem SSL-en kér auth adatokat. Alapban a WCF ezt nem nyeli le, de a cikk megmutatja, hogy lehet átvágni.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/02/wcf-and-ssl-processing-load-balancers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WAS alatt hoszolt WCF szerviz</title>
		<link>http://soci.hu/blog/index.php/2013/02/02/was-alatt-hoszolt-wcf-szerviz/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/02/was-alatt-hoszolt-wcf-szerviz/#comments</comments>
		<pubDate>Sat, 02 Feb 2013 14:46:06 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[.NET 4]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1374</guid>
		<description><![CDATA[Pár órám elment az életemből, mivel véletlenül abszolút elérési utat írtam be endpoint addressnek egy WAS (IIS) alatt hoszolt WCF szervizbe. Jó szokásától eltérően nem jött semmi világos hibaüzenet, mi a baja a WCF-nek.
]]></description>
			<content:encoded><![CDATA[<p>Pár órám elment az életemből, mivel véletlenül abszolút elérési utat írtam be endpoint addressnek egy WAS (IIS) alatt hoszolt WCF szervizbe. Jó szokásától eltérően nem jött semmi világos hibaüzenet, mi a baja a WCF-nek.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/02/was-alatt-hoszolt-wcf-szerviz/feed/</wfw:commentRss>
		</item>
		<item>
		<title>REST evolúció</title>
		<link>http://soci.hu/blog/index.php/2013/02/01/rest-evolucio/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/01/rest-evolucio/#comments</comments>
		<pubDate>Fri, 01 Feb 2013 13:37:59 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[Architektúra]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1372</guid>
		<description><![CDATA[Érdekes írás Fowlertől, hogyan alakult ki a REST, ami ma már inkább Hypermedia API. Nekem a vége kicsit fura, amikor már kezd beszivárogni valami interfészleírás-szerű valami, így pont az eddig egyszerűség kezd elveszni.
]]></description>
			<content:encoded><![CDATA[<p>Érdekes <a href="http://martinfowler.com/articles/richardsonMaturityModel.html">írás</a> Fowlertől, hogyan alakult ki a REST, ami ma már inkább Hypermedia API. Nekem a vége kicsit fura, amikor már kezd beszivárogni valami interfészleírás-szerű valami, így pont az eddig egyszerűség kezd elveszni.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/01/rest-evolucio/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WCF REST támogatás vagy ASP.NET WepAPI?</title>
		<link>http://soci.hu/blog/index.php/2013/02/01/wcf-rest-tamogatas-vagy-aspnet-wepapi/</link>
		<comments>http://soci.hu/blog/index.php/2013/02/01/wcf-rest-tamogatas-vagy-aspnet-wepapi/#comments</comments>
		<pubDate>Fri, 01 Feb 2013 13:21:13 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1370</guid>
		<description><![CDATA[Jó kis összefoglaló a témáról, miért kellett ASP.NET-be újra megcsinálni a dolgokat.
]]></description>
			<content:encoded><![CDATA[<p>Jó kis <a href="http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/05/wcf-or-asp-net-web-apis-my-two-cents-on-the-subject.aspx">összefoglaló</a> a témáról, miért kellett ASP.NET-be újra megcsinálni a dolgokat.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/02/01/wcf-rest-tamogatas-vagy-aspnet-wepapi/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Compression a 4.5-ös WCF-ben</title>
		<link>http://soci.hu/blog/index.php/2013/01/25/compression-a-45-os-wcf-ben/</link>
		<comments>http://soci.hu/blog/index.php/2013/01/25/compression-a-45-os-wcf-ben/#comments</comments>
		<pubDate>Thu, 24 Jan 2013 23:28:00 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[.NET 4.5]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1368</guid>
		<description><![CDATA[Hoppá, már nem házilag kell megoldani. Jövő héten kipróbáljuk.
]]></description>
			<content:encoded><![CDATA[<p>Hoppá, már nem házilag kell <a href="http://msdn.microsoft.com/en-us/library/aa751889.aspx">megoldani</a>. Jövő héten kipróbáljuk.</p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/01/25/compression-a-45-os-wcf-ben/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WCF Proxies: To Cache or Not to Cache?</title>
		<link>http://soci.hu/blog/index.php/2013/01/24/wcf-proxies-to-cache-or-not-to-cache/</link>
		<comments>http://soci.hu/blog/index.php/2013/01/24/wcf-proxies-to-cache-or-not-to-cache/#comments</comments>
		<pubDate>Thu, 24 Jan 2013 22:23:51 +0000</pubDate>
		<dc:creator>Soczó Zsolt</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Szakmai élet]]></category>

		<guid isPermaLink="false">http://soci.hu/blog/?p=1366</guid>
		<description><![CDATA[Tömör konklúzió: ha küldünk át credentialokat, akkor a beépített ChannelFactory cache nem működik, kézzel kell cachelni. Ha nem (ez a ritkább), akkor megy magától.
Részletek itt.
]]></description>
			<content:encoded><![CDATA[<p>Tömör konklúzió: ha küldünk át credentialokat, akkor a beépített ChannelFactory cache nem működik, kézzel kell cachelni. Ha nem (ez a ritkább), akkor megy magától.<br />
<a href="http://www.devproconnections.com/article/net-framework2/wcf-proxies-to-cache-or-not-to-cache-122368">Részletek itt.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://soci.hu/blog/index.php/2013/01/24/wcf-proxies-to-cache-or-not-to-cache/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
