<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Symbol LABoratory &#187; Hírek</title>
	<atom:link href="http://lab.symboltech.hu/category/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://lab.symboltech.hu</link>
	<description>Kreativitás és Innováció a szoftveriparban</description>
	<lastBuildDate>Tue, 03 Jan 2012 14:24:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Ritkán működő 413-as HTTP hiba</title>
		<link>http://lab.symboltech.hu/2012/01/ritkan-mukodo-413-as-http-hiba/</link>
		<comments>http://lab.symboltech.hu/2012/01/ritkan-mukodo-413-as-http-hiba/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 13:04:51 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[http 413]]></category>
		<category><![CDATA[http error]]></category>
		<category><![CDATA[syx]]></category>
		<category><![CDATA[websyx]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=745</guid>
		<description><![CDATA[A HTTP szabvány szerint a HTTP hibakódoknak működniük kellene (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). Sok esetben - főleg tárhely szolgáltatónál működtetett PHP kiszolgálón - nem működik minden hibaüzenet. Ilyen hibaüzenet a 413-as hiba is. Ez akkor jelentkezik (jelentkezne), ha a beállított, fogadható adatmennyiségnél többet akarunk ráerőltetni, feltölteni a szerverre.]]></description>
			<content:encoded><![CDATA[<p>A HTTP szabvány szerint a HTTP hibakódoknak <strong>működniük kellene</strong> (<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html</a>). Sok esetben &#8211; főleg tárhely szolgáltatónál működtetett PHP kiszolgálón &#8211; nem működik minden hibaüzenet. Ilyen hibaüzenet a<strong> 413-as hiba</strong> is. Ez akkor jelentkezik (jelentkezne), ha a beállított, fogadható adatmennyiségnél <strong>többet</strong> akarunk ráerőltetni, <strong>feltölteni</strong> a szerverre.</p>
<p>A hiba <strong>az esetek 90%-ban elfedésre kerül</strong>, azaz a válasz üzenetben nem érkezik semmi, a böngésző egy üres ablakot jelenít meg. Helyette a 413-as hibát kellene visszaadnia. Így sajnos azok az eszközök, amelyek webrendszeren küldenek adatot, nem értesülnek arról, hogy hiba történt.</p>
<p>WebSyX-ünkben is megvalósítottunk egy <strong>hibakezelő réteget</strong>, amely az elfedett 413-as hibát megkerüli és precízen kezeli. Amennyiben a hibakezelést bekapcsoljuk, úgy a POST adatfelküldésnél <strong>választ kell adni a feltöltésre</strong>. A WebSyX esetében ez egy <strong>OK</strong> szó kell, hogy legyen. Amennyiben nem kapunk választ (a csomag a nagy méret miatt elveszett) úgy hibának érzékeljük. Amennyiben az <strong>OK</strong>-tól eltérő választ ad vissza a szerver, úgy azt a szöveget is hibaüzenetként kezeljük. Ezzel egyéb, szerver oldalon bekövetkező hibákat is jelezni tudunk (MySQL error, PHP error, out of disk space, stb.)</p>
<p style="text-align: center;"><em>WebSyX-ünk új változata letölthető a</em></p>
<p style="text-align: center;"><em><a href="http://syx.symboltech.hu/tanusitott-syx-beepulok/websyx-webaruhaz-kapcsolat/">http://syx.symboltech.hu/tanusitott-syx-beepulok/websyx-webaruhaz-kapcsolat/</a> linkről.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2012/01/ritkan-mukodo-413-as-http-hiba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fontos PDO módosítások</title>
		<link>http://lab.symboltech.hu/2011/12/fontos-pdo-modositasok/</link>
		<comments>http://lab.symboltech.hu/2011/12/fontos-pdo-modositasok/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 14:43:59 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[módosítások]]></category>
		<category><![CDATA[PDO]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=741</guid>
		<description><![CDATA[Ezúton (is) felhívjuk partnereink figyelmét, hogy adatbázis kezelő rendszerünkben módosításokat hajtottunk végre. Felhasználóinkat ez nem érinti, ők nem vesznek észre semmit, de fontos, hogy azok a partnerek, akik a mi PDO-nkkal dolgoznak, olvassák el figyelmesen a bejegyzést!]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>Ezúton (is) felhívjuk partnereink figyelmét, hogy adatbázis kezelő rendszerünkben módosításokat hajtottunk végre. Felhasználóinkat ez nem érinti, ők nem vesznek észre semmit, de fontos, hogy azok a partnerek, akik a mi PDO-nkkal dolgoznak, olvassák el figyelmesen a bejegyzést!</strong></p>
<p><strong>Text és Binary külön.</strong> A nagy mennyiségű adatok betöltését a rendszer automatikusan késlelteti, de ezen belül is ketté kellett választani a bináris és szöveges jellegű adatok betöltését. Egy olyan adathalmazban, ahol képek és szövegek is vannak, egy-egy szöveg mező tömeges módosítása az összes termék képének betöltését hozta magával. Ez így nem (volt) jó. A módosítás tesztelése folyamatban van.</p>
<p><strong>Adatmódosulás feliratkozások.</strong> Az adatok módosulása esetén a feliratkozott más adatok feleslegesen kaptak nagyon sok értesítést (delegates and events), amely általában csak a kód minőségét rontotta, némely esetben &#8211; komoly &#8211; erőforrás problémákat is okozhatott.</p>
<p><strong>Adatok trimmelése.</strong> Akár ügyviteli, akár egyéb adattárolási oldalról nézzük, logikus lépés az adatok trimmelésének (kezdő szóközök és szöveg közbeni többes szóközök kezelése) beállítása. Felhívjuk partnereink figyelmét, hogy ez az adatátadásban körültekintést igényel, emiatt konzultációt biztosítunk.</p>
<p><em>Hazánkban már több, mint 10 cég használja keretrendszerünket szoftvereinek egyszerűbb és gyorsabb fejlesztésére.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/12/fontos-pdo-modositasok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hangok a Symbol Ügyvitelben</title>
		<link>http://lab.symboltech.hu/2011/08/hangok-a-symbol-ugyvitelben/</link>
		<comments>http://lab.symboltech.hu/2011/08/hangok-a-symbol-ugyvitelben/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 07:35:05 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[ccs]]></category>
		<category><![CDATA[hang]]></category>
		<category><![CDATA[malév]]></category>
		<category><![CDATA[repülőtér]]></category>
		<category><![CDATA[sípolás]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=736</guid>
		<description><![CDATA[A kezdetek kezdetén elhatároztuk, hogy nem lesznek hangok a Symbol Ügyvitelben, de most eljött ez a pillanat is. Elmesélek egy történetet, ami megvilágítja, hogy miért félek a hangoktól. Pályafutásom kezdetén, a CCS Hungary Kft-nél szoftverrendszert fejlesztettünk, amely a légitársaságokat és a Malév-ot szolgálta ki. Egyik funkciója volt a csomagok gépre rakása. Ha a gép indulása előtt [...]]]></description>
			<content:encoded><![CDATA[<p>A kezdetek kezdetén elhatároztuk, hogy nem lesznek hangok a Symbol Ügyvitelben, de most eljött ez a pillanat is. Elmesélek egy történetet, ami megvilágítja, hogy miért félek a hangoktól.</p>
<p><em>Pályafutásom kezdetén, a CCS Hungary Kft-nél szoftverrendszert fejlesztettünk, amely a légitársaságokat és a Malév-ot szolgálta ki. Egyik funkciója volt a csomagok gépre rakása. Ha a gép indulása előtt negyed órával volt még függőben lévő csomag, akkor különleges figyelmeztetést kellett megjeleníteni.</em></p>
<p><em>Jött a korszakalkotó ötlet, hogy ne csak vizuális, hanem &#8220;audiális&#8221; is legyen a figyelmeztetés. A villogó piros mellett 5mp-enként hangot is adott. Kis sípolós kattanás. A szoftver rendben volt, vittük telepíteni.</em></p>
<p><em>A telepítésnél ott voltam, ezért én kaptam az első &#8220;pofont&#8221;. Az automatikus frissítő rendszer kb. 30 gépre lerántotta az alkalmazást és a felhasználó tényleges feladatától függetlenül minden gépen jelzett a csipogó. 5mp-enként szólalt meg ugyan, de 30 számítógép esetén ez <span style="text-decoration: underline;"><strong>6csipogás/mp</strong></span>-es ütemezést jelentett. Egy nagy terem, ami csipog. A csipogás mellett már sikítottak is a kollégák. Nagy zűrzavart okoztunk <img src='http://lab.symboltech.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>Szóval ezért nem szeretjük a hangokat. De az üzleti felhasználás most megkövetelte. A felugró emlékeztető (Partnerkapcsolat modul) és az átküldött jegyzet (Sticky-note) hangot ad, amikor megjelenik. Reméljük, nem lesz belőle hangorkán.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/08/hangok-a-symbol-ugyvitelben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SaaS &#8211; Akkor ez most a Symbol Ügyvitel API?</title>
		<link>http://lab.symboltech.hu/2011/06/saas-akkor-ez-most-a-symbol-ugyvitel-api/</link>
		<comments>http://lab.symboltech.hu/2011/06/saas-akkor-ez-most-a-symbol-ugyvitel-api/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 09:36:43 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[intranet]]></category>
		<category><![CDATA[saas]]></category>
		<category><![CDATA[software as a service]]></category>
		<category><![CDATA[symbol api]]></category>
		<category><![CDATA[syx]]></category>
		<category><![CDATA[syx platform]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=732</guid>
		<description><![CDATA[SaaS működésünk megjelenlése előtt számos céggel beszélgettünk róla, hogy ez a működés, akkor most mennyire van kész, ez most akkor gyakorlatilag egy API? A válasz az, hogy ez egy DynamicAPI.]]></description>
			<content:encoded><![CDATA[<p>SaaS működésünk megjelenése előtt számos céggel beszélgettünk róla, hogy ez a működés, akkor most mennyire van kész, ez most akkor gyakorlatilag egy API? A válasz az, hogy <strong>ez egy DynamicAPI</strong>. Teljes API-t nem lehet csinálni, de bármely része percek/órák alatt implementálható.</p>
<p><strong>Mi is az API?</strong></p>
<p>Az API egy függvénytár, amely egy rendszer kívülről elérhető funkcióit engedi megszólítani. Kis vagy közepes funkcionalitás esetén az API annyi megszólítható &#8220;dolgot&#8221; tartalmaz, amennyit két kezünkön meg tudunk számolni. Példaképpen említhetjük a <strong>POP3 </strong>vagy <strong>IMAP </strong>parancsokat, amelyek a levelek letöltését, üzenettörzs letöltését, üzenetek törlését valósítja meg. Nem is kell többet.</p>
<p>Ugyanilyen a <strong>Google Docs </strong>API, amely dokumentumok tárolását szolgálja. A műveleteknél nem is vágyunk többre, mint dokumentum feltöltése, letöltése, törlése, áthelyezése és egy gyors keresőszolgáltatás a dokumentumok tartalmában (ez utóbbi nem is biztos, hogy része a rendszernek, de ha már Google, akkor talán igen)</p>
<p><strong><a href="http://lab.symboltech.hu/wp-content/uploads/2011/06/saas.jpg"><img class="aligncenter size-medium wp-image-733" title="saas" src="http://lab.symboltech.hu/wp-content/uploads/2011/06/saas-300x195.jpg" alt="" width="300" height="195" /></a></strong></p>
<p><strong>SaaS</strong></p>
<p>Egy összetett (nem bonyolult, hanem komplex) rendszer esetében egy teljes API legalább annyi műveletet tartalmaz, mint ahány főmenüpontja van, a paraméterek száma is több tízre tehető. Ez <strong>nyilvánvalóan nem valósítható meg</strong>, pontosabban olyan mértékű ráfordítást igényel, amely nem térül meg.</p>
<p>Ehelyett a dolog méregfogát úgy húztuk ki, hogy egy <strong>önálló programozási platformmal </strong>lehetővé tettük bármilyen API megírását. És mindezt ingyenes eszközökkel. Egy SaaS kompatibilis SyX megírása ahhoz hasonlítható, mintha a Google Docs adatbázisához hozzáférünk (saját adataimat nem rejtsék el előlem) és saját lekérdezéseket írhatunk. A lekérdezéseket egy <strong>szabványos hozzáférési rétegen </strong>(HTTP) kivezetjük, hogy az azt felhasználó kollégáknak ne kelljen valami újat megtanulniuk.</p>
<p><strong>Nézzünk erre egy példát!</strong></p>
<p>Szükségünk lenne egy <strong>termékhez tartozó készletinformációra</strong>. Ezt egy külső program (amely a weboldalt frissíti) fogja felhasználni. Programozási nyelve lehet PHP, Delphi, C++ vagy C# is. Triviális megoldás, ha az adatbázisból közvetlenül lekérdezzük ezeket az információkat. (Ügyfélszolgálatunk támogatást nyújt a szükséges adatok helyének megismerésében). Ez a megoldás azonban közvetlen adatbázis kapcsolat igényel, amely közepes méretű cégeknél nem megoldható. Emellett külön kell azzal foglalkozni, hogy a fent jelölt programozási nyelvek miként kapcsolódnak az adatbázishoz. Helyette valósítsuk meg a dolgot két lépésben!</p>
<p><strong>1. lépés: </strong>SaaS funkció <em>létrehozása</em>.</p>
<p>Hozzunk létre ingyenes fejlesztőeszközzel egy SyX-et, amely SaaS működésre alkalmas. A fenti művelet kiszolgálására készítsünk egy metódust, amely egy termékkódot vár és egy opcionális dátum paraméterrel hívható meg. A metódus &#8220;magja&#8221; kb. 8-12 programsor segítségével a beérkezett kérést ki tudja szolgálni a megfelelő táblákból történő lekérdezéssel. Végeredményként visszaadja az összes raktárt és benne a készletet, ahol a termék eddig megfordult. Fontos megjegyezni, hogy a bemenő URL feldolgozását nem nekünk kell elvégezni, sőt az eredmény formátumát sem nekünk kell meghatározni, azokat a SaaS definiálja (XML lesz).</p>
<p><strong>2. lépés:</strong> SaaS funkció <em>hívása</em>.</p>
<p>Következő lépésben a Symbol Ügyvitel által használt webszervertől le tudjuk kérni a <a href="http://localhost/GetWarehouseBalance">http://localhost/GetWarehouseBalance</a> meghívásával a raktárkészlet információkat. Az URL meghívása szinte programozási nyelv függetlenül megtehető, minden nyelv tartalmaz weboldalról való letöltést megvalósító funkciókat. A visszaadott érték lehet XML formátumú, esetleg JSON, sőt teljes HTML weboldal is, ha az URL-t böngészőn keresztül kívánjuk elérni.</p>
<p>A fenti példán keresztül jól látható, hogy miért nem egy teljes API-t valósítottunk meg, mennyire szerteágazó lenne az ügyfelek minden igényét egy API-ban kielégíteni. Helyette azt a megoldást választottuk, hogy szabványos platformot hoztunk létre, amelyben mindenki a saját API-ját elkészítheti a saját adatai feletti rétegben.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/06/saas-akkor-ez-most-a-symbol-ugyvitel-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APEH nyomtatványok &#8211; Valaki ezeket is megtervezte&#8230;</title>
		<link>http://lab.symboltech.hu/2011/04/apeh-nyomtatvanyok-valaki-ezeket-is-megtervezte/</link>
		<comments>http://lab.symboltech.hu/2011/04/apeh-nyomtatvanyok-valaki-ezeket-is-megtervezte/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 13:39:03 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[APEH]]></category>
		<category><![CDATA[ESZGI nyomtatvény]]></category>
		<category><![CDATA[ESZIG]]></category>
		<category><![CDATA[IMP fájl]]></category>
		<category><![CDATA[NAV]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=718</guid>
		<description><![CDATA[Már eddig is sokat hallottunk róla, hogy az ABEV nevű program itt-ott botladozik. Főleg akkor, amikor SZJA bevallás van és az átlag polgár (aki alap informatikai ismeretekkel rendelkezik) nem találja felhasználóbarátnak. Informatikus szemmel furcsa, hogy ott az a Console ablak, amiben a JAVA JRM ír ki nekem információkat. Felhasználói szemmel még furcsább, hogy egy kitöltött [...]]]></description>
			<content:encoded><![CDATA[<p>Már eddig is sokat hallottunk róla, hogy az ABEV nevű program itt-ott botladozik. Főleg akkor, amikor SZJA bevallás van és az átlag polgár (aki alap informatikai ismeretekkel rendelkezik) nem találja felhasználóbarátnak. Informatikus szemmel furcsa, hogy ott az a Console ablak, amiben a JAVA JRM ír ki nekem információkat. Felhasználói szemmel még furcsább, hogy egy kitöltött mező értékébe nem tudok belemódosítani, csak az egész törlésével.</p>
<p>A biztosítékot az csapta ki, hogy az ESZIG nyomtatvány mezőnevei az IMP/XML fájlban ugyanolyan véletlenszerűen vannak, mintha egy jó véletlenszám generátort készítenének az adóhatóságnál. (Bocs, helyesen NAV). Néha láttunk benne szabályszerűséget, de a végén nem sikerült semmilyen elvet ráhúzni. Maradt a kódtáblázat, azaz sor+oszlop-hoz hozzárendeltünk egy számot, ami az azonosítója lett a mezőnek.</p>
<p><a href="http://lab.symboltech.hu/wp-content/uploads/2011/04/naveszig.jpg"><img class="aligncenter size-full wp-image-719" title="naveszig" src="http://lab.symboltech.hu/wp-content/uploads/2011/04/naveszig.jpg" alt="" width="313" height="205" /></a></p>
<p>Kérdésem az, hogy milyen szabályok alapján határozták meg a mezők azonosítóját. Esetleg több lépcsős módosítás során álltak elő a számok? A lényeg, hogy egyelőre sikerül megvalósítanunk a dolgot, de egy publikus API ennél okosabb/logikusabb is lehetne&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/04/apeh-nyomtatvanyok-valaki-ezeket-is-megtervezte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adatbázisunk felhasználása web-es célokra</title>
		<link>http://lab.symboltech.hu/2011/03/adatbazisunk-felhasznalasa-web-es-celokra/</link>
		<comments>http://lab.symboltech.hu/2011/03/adatbazisunk-felhasznalasa-web-es-celokra/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 10:21:30 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[illesztés]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webáruház]]></category>
		<category><![CDATA[webshop]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=714</guid>
		<description><![CDATA[A Symbol Ügyvitel adatbázisa egy sokat próbált, ingyenesen diszributálható, de fizetős változattal is rendelkező Firebird 2.1 adatbázis motor. Ez egy SQL adatbázis motor, bár sokan azt gondolják, hogy csak a Microsoft-nak van SQL-je, pedig az alábbiak is SQL motorok (Firebird, PostgreSQL, Oracle, MySQL).]]></description>
			<content:encoded><![CDATA[<p>A Symbol Ügyvitel adatbázisa egy sokat próbált, ingyenesen diszributálható, de fizetős változattal is rendelkező Firebird 2.1 adatbázis motor. Ez egy SQL adatbázis motor, bár sokan azt gondolják, hogy csak a Microsoft-nak van SQL-je, pedig az alábbiak is SQL motorok: Firebird, PostgreSQL, Oracle, MySQL.</p>
<p><strong>Felhasználható-e a Firebird web célokra?</strong></p>
<p>Mivel a Firebird szervernek létezik Linux-os változata (ez is kompatibilis a termékünkkel), telepíthető olyan számítógépre, ahol egy web kiszolgáló (Apache 2.2) is telepítésre került. A két komponens PHP-n keresztük jól megérti egymást. A web-es adatokat lehet Firebird adatbázisban tárolni és onnan kiszolgálni, de nem célszerű.</p>
<p><strong>Alkalmas-e a Symbol Ügyvitel adatbázisa web célokra?</strong></p>
<p>Amennyiben WEB célok alatt olyan működési módot értünk, ami néhány felhasználó számára az összes adat irányába elérhetőséget biztosít, akkor a válasz IGEN. Példa lehet erre egy Ticketing rendszer, ahol cégének ügyfelei belépnek a web-es felületre, ahol azonosítják magukat, majd megnézhetik, hol tart a rendelésük vagy a kért javításuk. Ennek kiszolgálására rendszerünk alkalmas.</p>
<p style="text-align: center;"><em>Természetesen UTF8/Unicode üzemmódban tároljuk a szöveges adatokat,<br />
</em><em>így web-es környezetben sem merülhetnek fel ékezet problémák.</em></p>
<p style="text-align: left;"><strong>Alkalmas-e a Symbol Ügyvitel adatbázis portál célokra?</strong></p>
<p>Ha portál célokra használnák a Symbol Ügyvitel terméktörzsét, NEM javasoljuk a használatot. Egy portál egyetlen oldalának felépítése során sok (&gt;10) lekérdezés fut le. Köztük termékképek, termékcsoportok, készletinformációk, stb. Ezek kiszolgálására nem elég a Firebird adatbázis kezelő. <strong>Nem erre találták ki.</strong> Pláne, ha 10-20 konkurens felhasználót feltételezünk az oldalon, akik eszeveszetten kattintgatnak egy termék után kutatva.</p>
<p><strong>Az adatbázis állandó?</strong></p>
<p>Külön ki kell térni arra, hogy a Symbol Ügyvitel adatbázisa NEM állandó. Fenntartjuk magunknak a jogot, hogy adatbázisunk formátumát átalakítsuk. Általában bővíteni szoktuk a tárolandó adatok körét, ritkán használunk új mezőként valami olyat, amit kötelező kitölteni (NOT NULL), illetve kivételes esetben szüntetünk csak meg mezőket. A fentiek figyelembe vételével kicsi az esély, hogy egy jól megírt lekérdezés egy új verzióban ne fusson le, de elképzelhető.</p>
<p style="text-align: center;"><em>Az adatbázis formátumáért külső felhasználási célból felelősséget nem tudunk vállalni,<br />
</em><em>még akkor sem ha adatbázisunk nyitott, a felhasználók adatait nem rejtjük el.</em></p>
<p style="text-align: left;"><strong>Akkor mi a megoldás?</strong></p>
<p>Sok helyen (&gt;50) jó megoldást jelent egy saját webáruház működtetése saját adatbázis motorral és ehhez egy illesztőfelület megvalósítása. Mikből lehet választani?</p>
<ul>
<li>osCommerce</li>
<li>Joomla + VirtuaMart webáruház motor</li>
<li>Saját fejlesztés (PHP, Java, stb.)</li>
</ul>
<p>Az illesztőfelületre nemsokára elkészül az általános megvalósításunk, aminek segítségével minden webfejlesztő saját webes megoldását (vagy valamilyen ingyenes megoldást) hozzáilleszthet a Symbol Ügyvitelhez. Ehhez cégünk közreműködésére nincs szükség. Szabadon letölthető WebSyX beépülőnk (nemsokára elérhető) szabadon tesztelhető, az általa küldött XML fájlok nyílt formában elérhetőek.</p>
<p style="text-align: center;"><strong>További információk: <a title="syx.symboltech.hu" href="http://syx.symboltech.hu" target="_blank">syx.symboltech.hu</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/03/adatbazisunk-felhasznalasa-web-es-celokra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuickSort &#8211; ismét felfedeztük</title>
		<link>http://lab.symboltech.hu/2011/03/quicksort-ismet-felfedeztuk/</link>
		<comments>http://lab.symboltech.hu/2011/03/quicksort-ismet-felfedeztuk/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 20:51:43 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[qsort]]></category>
		<category><![CDATA[quick sort]]></category>
		<category><![CDATA[rendezés]]></category>
		<category><![CDATA[sort]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=709</guid>
		<description><![CDATA[Elméleti szinten oktatják a rendező algoritmusokat. Sok geek (megszállott) ennek jelentősséget is tulajdonít, pedig már nincs nagy jelentőssége. Gondoltuk a múlt hétig.]]></description>
			<content:encoded><![CDATA[<p>Elméleti szinten oktatják a rendező algoritmusokat. Sok geek (megszállott) ennek jelentősséget is tulajdonít, pedig már nem számít. Gondoltuk a múlt hétig.</p>
<p>Elmúltak azok az idők, amikor 64kB RAM állt rendelkezésre és nagyon hatékony, gyakorlatilag kihegyezett algoritmust kellett írni mondjuk 200 dolgozó bérszámfejtési adatainak kezelésére. És nem mindenki tudta ezt megcsinálni.<br />
Jelenleg az igazán sok adatot <strong>adatbázisokban </strong>kezeljük, <strong>nem számít a memória</strong>, a szerverben legyen sok.</p>
<p>A fejlesztők pedig 4-6 éve (Java-sok régebben) már túlléptek azon, hogy a numerikus analízisben megismert elveket kelljen ismerniük, hogy használható programot készítsenek. <strong>Mert beköszöntött a keretrendszerek kora. </strong>Ebben minden általánosan használt funkció már megírásra került, sőt eszközök is vannak arra, hogy a hiányzó részeket se tudjuk rosszul megírni (Generics, Interface, etc.)</p>
<p>Jó lenne ha emlékeznék, de nem fog menni. Valamikor a keretrendszer által támogatott rendező algoritmusok (Generic List Sort()) helyett sajátot készítettünk. <em>(Ennek oka, hogy a BindingList-ben nincs sort, de ez mellékes). </em>A saját pedig &#8211; minden bizonnyal &#8211; &#8220;<strong>pár napig jó lesz kipróbálni</strong>&#8221; szemlélet alapján egy gyors buborék rendezés lett. 4 sor, lehetetlen tévedni. Működött is. <strong>Majd a pár napból egy év lett.</strong></p>
<p>Nem is lett volna baj, minden szépen működött, az SQL szerver rendesen kezelte a 80.000 terméket ügyfelünknél. Egészen addig, míg a 80.000 termék több, mint <strong>5000 (!!!) gyártó</strong> alá került besorolásra. Ekkor a termékkiválasztó ablak megnyitása 30-50mp-et vett igénybe. A konzulens kollégák jelezték, hogy ez nem fatális hiba, emiatt nem kell azonnali verziót közzétenni, de minket mégis izgatott a dolog&#8230;</p>
<p><img class="aligncenter" title="QSort" src="http://ozark.hendrix.edu/~burch/cs/151/test/ch04-bigo/qsort-recur2.png" alt="Quick Sort" width="250" height="226" /></p>
<p>És kb. egy órába telt, mire kiderült, hogy nem az adatbázis műveletek lassúak, nem is az 5000 gyártó combobox-ba feltöltése <em>(valóságban más felületi elem, de példaképpen legyen combobox)</em>, hanem valahol belül egy adatátadás. És ekkor jött a homlokhoz csapás. A bubble-sort 5000 elem esetén statisztikailag <strong>5000 x 2500 = 12.5M </strong>összehasonlítást végez és ennyi cserét is, ha kell. Ennek pedig ideje van. Egész számok helyett objektumok esetén még inkább.</p>
<p>A dolog sikerrel zárult, mert 3 órányi munka után a<strong> keretrendszerünk egy operáción esett át </strong>és a gyomor <em>(körülbelül ez felel meg a rendező algoritmusoknak) </em>újra egészségesen viselkedik. Persze újra felidézve tanulmányainkat rájöttünk, hogy a már rendezett adatokat a QSort nem is rendezi be újra, azaz még hatékonyabb lesz a működés.</p>
<p>Kis adatmennyiségek esetén nincs szerepe a fentieknek, de ott sem árt egy kis performancia-tuning.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/03/quicksort-ismet-felfedeztuk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konkurencia elemzés &#8211; Ki honnan veszi az ötleteket?</title>
		<link>http://lab.symboltech.hu/2011/02/konkurencia-elemzes-ki-honnan-veszi-az-otleteket/</link>
		<comments>http://lab.symboltech.hu/2011/02/konkurencia-elemzes-ki-honnan-veszi-az-otleteket/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 21:24:12 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[konkurencia]]></category>
		<category><![CDATA[másolás]]></category>
		<category><![CDATA[verseny]]></category>
		<category><![CDATA[versenytárs]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=696</guid>
		<description><![CDATA[Van, aki kíváncsiságból és van aki tudatosan pásztázza a konkurenciát. Pontosabban hívjuk versenytársnak! A végére kiderül, hogy miért inkább azzal a jelzővel illetjük, ami egy futóversenyre jellemző.]]></description>
			<content:encoded><![CDATA[<p>Van, aki kíváncsiságból és van aki tudatosan pásztázza a konkurenciát. Pontosabban hívjuk versenytársnak! A végén kiderül, hogy miért inkább ezzel a jelzővel illetjük őket. Mi is néha napján körbenézünk.</p>
<p><strong> </strong></p>
<p><strong>És, hogy mit látunk?</strong></p>
<ul>
<li>Van olyan cég, amely 2009. év közepe óta nem jelentetett meg hírt magáról. A saját weboldalán! <strong>Leszálló ág</strong>, vélelmezhető, hogy csökkenő Incoming Cash-sel rendelkeznek&#8230;</li>
<li>Van, aki szépen csendben fejleszt, 2 havonta kiad egy új verziót, benne apróbb gombok, kis kényelmi funkciók. Lelkes csapat, <strong>Csendes folyó</strong>, 1-et fizet x-et kap (x&gt;=3) akcióval&#8230;</li>
<li>Van régi motoros, régi V12-es. Sokat fogyaszt (termékkövetés), már nem annyira hatékony és a kasztni is itt-ott kopott. <strong>Slussz</strong>kulcsának pörgetésével, kapuzárás előtti sofőrjével még bejön néhány hölgynek&#8230;</li>
<li>Van, aki újként indult, rögtön v3.0-ként jelzi rendszerét. Szépen felépített koncepció, egyszerű kezelhetőség, 4 számjegyű árak. (És valahol máshol már látott működési modell, ismerős MsSQL instance név, ablakok) <strong>Naturalisztikus bulvártermék</strong>, csak bírja ügyfélszolgálattal&#8230; szurkolunk.</li>
<li>És még sokan mások&#8230;</li>
</ul>
<p><strong> </strong></p>
<p><strong>Ki mutat újat?</strong></p>
<p>Örömmel tölt el minket az a fellelhető irányvonal, hogy tudunk még nekik is újat mutatni. Több megvalósult fejlesztésünk köszön vissza a versenytársak termékeiben. A maguk módján. Biztos, hogy nem napi szinten foglalkoznak velünk. Ez nem is lenne jó. De néha észreveszik, hogy mit csináltunk és ötletet merítenek belőle/belőlünk.</p>
<p>Több forrásból értesültünk, hogy fejlesztéseinket elemzik is. Tudjuk, hogy az egyik cég a Symboogle és a Symbol Suggest megoldásainkat nem tartja jó ötletnek. Mások a jelenlegi CRM+ rendszerünkre ráharaptak, jelenleg 12 hónapos fejlesztési feladatként még kicsit halogatják. (Nemsokára CRM+ rendszerünk még nagyobb tudású lesz)</p>
<p>Fontos megjegyezni, hogy <strong>ez nem tilos</strong>, sőt jó. Mert <strong>előre viszi a világot.</strong> És két dolgot bizonyít számunkra:</p>
<ol>
<li>Jó úton haladunk, ötleteink <strong>nem csak számunkra</strong> bírnak értékkel.</li>
<li>Többedik alkalommal elemezve azt, ahogy minket követnek, azaz <strong><span style="text-decoration: underline;">INNOVATÍV PIACVEZETŐK</span></strong> vagyunk.</li>
</ol>
<p><strong> </strong></p>
<p><strong>Mitől versenytárs?</strong></p>
<p>Itt álljon egy kis magyarázat arra vonatkozóan, hogy mitől <strong>versenytársak</strong>. A konkurens ugyanazt adja <strong>más köntösben</strong>, talán apróbb paramétereiben eltérően (nagyobb internet sávszélesség, nagyobb GB, +25% a samponos flakonban, ugyanaz a mobiltelefon olcsóbban WiFi nélkül), de <strong>végeredményben ugyanarra jó</strong>. Itt azonban versenytársakról beszélünk, akik egy pályán haladnak, versenyeznek. De <span style="text-decoration: underline;">nem ugyanazzal a járművel mennek</span>, sőt valaki tankkal tör előre, van aki versenybiciklivel hagyja le a tankot a kanyarban.</p>
<p style="text-align: center;"><strong>De nincs célszalag, nincs győztes, nincs a legjobb. Ez egy folyamatos verseny&#8230;</strong></p>
<p>Van, aki 100m után hagyja abba, van, aki fut még 3 kört és valaki lefutja a fél-maratont. Mert mást akar elérni a pályán, a piacon.</p>
<p>Emiatt nem a megtett körök (=megszerzett ügyfelek) száma a fontos, sokkal inkább a futás stílusa és főleg az, hogy ki fut legelöl, kit követnek a többiek. Mi ezek szeretnénk lenni, sőt mi ezek vagyunk. Jelenleg. Lehet, hogy jön egy új versenyző, tele erővel és ötletekkel. De addig maradunk elöl. Köszönjük a megtisztelő figyelmet!</p>
<p><strong><a href="http://lab.symboltech.hu/wp-content/uploads/2011/02/FollowMeRear400.jpg"><img class="aligncenter size-full wp-image-697" title="FollowMeRear400" src="http://lab.symboltech.hu/wp-content/uploads/2011/02/FollowMeRear400.jpg" alt="" width="400" height="266" /></a></strong></p>
<p><strong>Kérem kövessenek!</strong></p>
<p style="text-align: center;"><em> </em></p>
<p style="text-align: center;"><em>ps: régi feladvány a &#8217;80-as évekből</em></p>
<p style="text-align: center;"><em>&#8220;<strong>Hányadik leszel, ha futóversenyen megelőzöd a második helyezettet?</strong>&#8221;<br />
Általános válasz, hogy első, de a helyes válasz a második <img src='http://lab.symboltech.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/02/konkurencia-elemzes-ki-honnan-veszi-az-otleteket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Típus létrehozása futásidőben &#8211; RuntimeTypeFactory</title>
		<link>http://lab.symboltech.hu/2010/11/tipus-letrehozasa-futasidoben-runtimetypefactory/</link>
		<comments>http://lab.symboltech.hu/2010/11/tipus-letrehozasa-futasidoben-runtimetypefactory/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 23:49:03 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[IL]]></category>
		<category><![CDATA[MSIL]]></category>
		<category><![CDATA[property]]></category>
		<category><![CDATA[RuntimeTypeFactory]]></category>
		<category><![CDATA[TypeFactory]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=675</guid>
		<description><![CDATA["Azok a programozók, akik a régen "szabványos", úgynevezett procedurális programozáson nevelkedtek egy évtizede megtanulták az objektumorientált programozást. Mert meg kellett." - graffity 2004-ből.
]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Azok a programozók, akik a régen &#8220;szabványos&#8221;, úgynevezett procedurális programozáson nevelkedtek egy évtizede megtanulták az objektumorientált programozást. Mert meg kellett.&#8221;</em> - graffity 2004-ből.</p>
<p>Aztán, amikor a Java 1.1 beköszöntött és hozta a java.lang.reflect névteret, akkor néztünk nagyokat, hogy mi értelme van egy osztályt felderíteni futásidőben? Pláne, amikor programozás közben ott vannak a property-k és metódusok. Aztán csak-csak hasznát vettük, de a címben említett megoldásra még rémálmunkban sem gondoltunk volna. De a Symbol LAB összefogott és megoldotta ezt is&#8230;</p>
<p><strong>1. Keretrendszer</strong></p>
<p>Adott a keretrendszerünk, amiben sok helyen használjuk a reflection-t. Például listáink szűrőablakai nem léteznek önállóan, hanem szűrőosztályokat definiálunk (közös ősből interfésszel). Az osztályok feltérképezésével pedig létre tudjuk hozni a szűrőablakokat. Ha találunk egy property-t, aminek DateInterval a típusa, akkor kikerül két dátumválasztó, amelyek a property-be írnak, onnan olvasnak (DataBinding). A property-k attributumokkal rendelkeznek, amik magyar nevet adnak a mezőknek.<br />
Szép, kidolgozott technológia, meg is számolom&#8230; (2 perc eltelik itt) &#8230; a Symbol Ügyvitelben jelenleg 103 szűrőobjektum van.</p>
<p><strong>2. Probléma</strong></p>
<p>A feni technológiát kényelmes használni, nem is akarunk letérni az útról, de egyedi fejlesztéseink (SyX) esetén külső fájlból jönnek az osztályok, amelyek nem az 1-es pontban említett ősosztályból származnak. Mi tévők legyünk? Az ügyfél várja a megoldást, ki kell valamit találni&#8230;</p>
<p><strong>3. (Egyelőre még nem elégséges) Megoldás</strong></p>
<p>Fejlesztési vezetőnk pénteken már említett valamit, de csak hétfőn állt elő az ötlettel. Ha fel lehet térképezni egy osztályt, akkor miért ne CSINÁLNÁNK egyet, csak úgy futásidőben. Még jó, hogy van Google, mert volt honnan információt meríteni, de hideg zuhanyként ért minket a találatok listája.<br />
Létre lehet hozni típust futásidőben, de a következő lépéseket kell végiggondolni:</p>
<ol>
<li>Minden property-nek van egy lokális változója</li>
<li>Kell, hogy legyen egy GET és egy SET metódus, amely a property értékét olvassa és írja a lokális változóba/változóból.</li>
<li>A GET és SET metódusok törzse, lényegi része nem C#-ban írandó, hanem a köztes MSIL/IL nyelven, ami a .NET-ben megvalósított Assembly nyelv, azaz szinte gépi kód.</li>
</ol>
<p>Itt egy kis szomorúság jött, mert ilyet nem oktatnak az egyetemen, nem hétköznapi a felhasználási módja és nincs róla még &#8220;MSIL 21 nap alatt&#8221; könyv sem.<br />
Viszont a fejlesztési vezetőnk ellentmondást nem tűrve a megoldás útjára lépett és saját maga valósította meg. Ilyenkor kis csendet szokott kérni, de ez most 4 órán át tartott. Megszületett egy már működő megoldás. De ez még nem volt elég jó a felhasználásra.</p>
<p><strong>4. Jó megoldás</strong></p>
<p>További 2 órába telt, hogy megoldjuk a problmát, ugyanis az újonnan létrehozott osztálynak van egy őse, amelynek van egy két paraméteres konstruktora. MSIL nyelven kellett megoldani a base konstruktor hívását és a paraméterek átadását.</p>
<p><strong>5. Összefoglalás</strong></p>
<p>Keretrendszerünk már ezt is tudja, általános osztályt csináltunk belőle, amelyet alant közzéteszünk. Hogy izgalmasabb legyen, egy hibát rejtettünk el benne a 32-33. sor környékén. Aki a hibát kijavítja, +1 pontot kap önéletrajza leadásakor a HR osztálytól. <img src='http://lab.symboltech.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection.Emit;
using System.Reflection;</pre>
<pre>namespace SymbolTech.BaseProject.FrameWork.Common
{
    public class RuntimeTypeFactory
    {
        private TypeBuilder tb;</pre>
<pre>        public RuntimeTypeFactory(string assemblyname, string typename, Type baseclass)
        {
            AssemblyName assname = new AssemblyName(assemblyname);
            AssemblyBuilder assbuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assname, AssemblyBuilderAccess.RunAndSave);
            ModuleBuilder mb = assbuilder.DefineDynamicModule(assname.Name, assname.Name + ".dll");</pre>
<pre>            tb = mb.DefineType(typename, TypeAttributes.Public, baseclass);</pre>
<pre>            //Override base constructors
            if (baseclass != null)
                foreach (ConstructorInfo ci in baseclass.GetConstructors())
                {
                    List&lt;Type&gt; types = new List&lt;Type&gt;();
                    foreach (ParameterInfo pari in ci.GetParameters())
                        types.Add(pari.ParameterType);</pre>
<pre>                    ConstructorBuilder ctor = tb.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, types.ToArray());</pre>
<pre>                    ILGenerator ctorIL = ctor.GetILGenerator();
                    for (byte i = 0; i &lt; types.Count; i++)
                        ctorIL.Emit(OpCodes.Ldarg_0, i);
                    ctorIL.Emit(OpCodes.Call, ci);
                    ctorIL.Emit(OpCodes.Ret);
                }
        }</pre>
<pre>        public static CustomAttributeBuilder CreateCustomAttributeItem(Type attributetype, Type[] constructorparametertypes, object[] constructorparameters)
        {
            return new CustomAttributeBuilder(attributetype.GetConstructor(constructorparametertypes), constructorparameters);
        }</pre>
<pre>        public void AddProperty(string name, Type type)
        {
            AddProperty(name, type, null);
        }</pre>
<pre>        public void AddProperty(string name, Type type, params CustomAttributeBuilder[] customattributes)
        {
            if (String.IsNullOrEmpty(name) || type == null)
                return;</pre>
<pre>            PropertyBuilder newprop = tb.DefineProperty(name, System.Reflection.PropertyAttributes.HasDefault, type, null);
            if (customattributes != null)
                foreach (CustomAttributeBuilder cab in customattributes)
                    if (cab != null)
                        newprop.SetCustomAttribute(cab);</pre>
<pre>            FieldBuilder newfield = tb.DefineField(name.ToLower(), type, FieldAttributes.Private);
            MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig;</pre>
<pre>            MethodBuilder methodget = tb.DefineMethod(String.Format("get_{0}", name), getSetAttr, type, Type.EmptyTypes);
            ILGenerator methodgetil = methodget.GetILGenerator();
            methodgetil.Emit(OpCodes.Ldarg_0);
            methodgetil.Emit(OpCodes.Ldfld, newfield);
            methodgetil.Emit(OpCodes.Ret);</pre>
<pre>            MethodBuilder methodset = tb.DefineMethod(String.Format("set_{0}", name), getSetAttr, null, new Type[] { type });
            ILGenerator methodsetil = methodset.GetILGenerator();
            methodsetil.Emit(OpCodes.Ldarg_0);
            methodsetil.Emit(OpCodes.Ldarg_1);
            methodsetil.Emit(OpCodes.Stfld, newfield);
            methodsetil.Emit(OpCodes.Ret);</pre>
<pre>            newprop.SetGetMethod(methodget);
            newprop.SetSetMethod(methodset);
        }</pre>
<pre>        public Type CreateType()
        {
            return tb.CreateType();
        }
    }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/11/tipus-letrehozasa-futasidoben-runtimetypefactory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A 64bit mára már természetes</title>
		<link>http://lab.symboltech.hu/2010/07/a-64bit-mara-mar-termeszetes/</link>
		<comments>http://lab.symboltech.hu/2010/07/a-64bit-mara-mar-termeszetes/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 06:40:59 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=644</guid>
		<description><![CDATA[Brandom LeBlanc összefoglaló értekezése világosan megmutatja, hogy terjednek a 64bites Windows operációs rendszerek. Ennek oka lehet a tudatosság, de ismerve a honi és külhoni társadalom hozzáállását, inkább az OEM-nek köszönhető a terjedés.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://windowsteamblog.com/windows/b/bloggingwindows/archive/2010/07/08/64-bit-momentum-surges-with-windows-7.aspx" target="_blank">Brandom LeBlanc összefoglaló értekezése</a> világosan szemlélteti, hogyan terjednek a 64bites Windows operációs rendszerek. Ennek oka lehet a tudatosság. De ismerve a honi és külhoni társadalom hozzáállását, inkább az OEM-nek köszönhető a terjedés.</p>
<p><a href="http://lab.symboltech.hu/wp-content/uploads/2010/07/2287_image_1DCE517A.png"><img class="aligncenter size-full wp-image-645" title="64bitX" src="http://lab.symboltech.hu/wp-content/uploads/2010/07/2287_image_1DCE517A.png" alt="" width="582" height="288" /></a></p>
<p>Ezek szerint az új számítógépet vásárlók már nem biztos, hogy tisztában vannak vele, mit is vásárolnak. A népszerű programok futnak a számítógépükön, de mi lesz az ügyvitellel?</p>
<p>A Symbol Ügyvitel minden változata alkalmas 64bites operiációs rendszeren való futattásra:</p>
<ul>
<li>Windows XP 64</li>
<li>Windows Vista 64</li>
<li>Windows 7 64</li>
<li>Windows 2008 x64</li>
</ul>
<p>És természetesen Linux kiszolgálót választva minden 64bites Linux disztribúciót támogatunk, ami fut a Firebird adatbázis-kiszolgáló.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/07/a-64bit-mara-mar-termeszetes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A LAB folyamatosan hegyezi a terméket</title>
		<link>http://lab.symboltech.hu/2010/07/a-lab-folyamatosan-hegyezi-a-termeket/</link>
		<comments>http://lab.symboltech.hu/2010/07/a-lab-folyamatosan-hegyezi-a-termeket/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 21:22:45 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[adatmennyiség]]></category>
		<category><![CDATA[adatok]]></category>
		<category><![CDATA[performancia]]></category>
		<category><![CDATA[sebesség]]></category>
		<category><![CDATA[teljesítmény]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=636</guid>
		<description><![CDATA[LAB csapatunk 12 emberhónapig készítette a keretrendszert, de időről-időre újra előveszik azt. Az összegyűjtött tapasztalatok alapján minden alkalommal találnak a rendszerben valamilyen gyorsítási lehetőséget.]]></description>
			<content:encoded><![CDATA[<p>LAB csapatunk 12 emberhónapig készítette a keretrendszert, de időről-időre újra előveszik azt. Az összegyűjtött tapasztalatok alapján minden alkalommal találnak a rendszerben valamilyen gyorsítási lehetőséget.</p>
<p style="text-align: center;"><a href="http://lab.symboltech.hu/wp-content/uploads/2010/07/FastTram.jpg"><img class="size-medium wp-image-638  aligncenter" title="sebesség" src="http://lab.symboltech.hu/wp-content/uploads/2010/07/FastTram-300x207.jpg" alt="" width="300" height="207" /></a></p>
<p><strong>A. Rendszerünk jelenleg több, mint 130 adatbázis táblában tárolja az adatokat</strong> (1347 mezőt számoltunk össze, persze nem kézzel kockás papíron). Adatbázis műveleteink központosítottak, bármilyen adatkezelési/adatelérési változás a módosítás után a programunk minden pontján megjelenik.</p>
<p>Számos alkalommal finomítottunk:</p>
<ul>
<li>a nagy mennyiségű adatok lekérésének módján</li>
<li>a megszakítható lekérdezéseken (pl: véletlenül rosszul beállított szűrőfeltétel)</li>
<li>Large Object (BLOB = maximum 2GB-os adat, például video vagy tárol PDF) mezők lekérdezésein</li>
</ul>
<p><strong>B. Javítottuk a felesleges adathozzáféréseket.</strong> Többször előfordult, hogy egy-egy rendelkezésre álló adatot újból elértünk, újból áthoztuk a hálózaton. Ezen hibák kiküszöbölésére a LAB a fejlesztők rendelkezésére bocsátott egy SQL napló felületet, ahol a fejlesztő kolléga már munka közben látja, hogy az általa megvalósított funkció (pl: számla stornózás) hány alkalommal fordul a kiszolgálóhoz és milyen válaszidőkkel kell számolnia. Így a tesztelésre kerülő alkalmazás nem vagy csak ritkán küzd sebesség problémákkal. A tesztelőknek pedig nem ezzel kell foglalkozniuk.</p>
<p><strong>C. Az SQL napló mintájára</strong> a fejlesztők figyelemmel kísérhetik, hogy a program adott állapotban milyen memóriafoglalási mérőszámokkal fut. Konkrétan hozzáférnek a betöltött (és betöltve maradt) például 43 vevőhöz, amelyek mindegyikéről minden adat lekérdehező és látható az is, hogy mikor és hol került betöltésre. És főleg miért maradt bent, mi használja?</p>
<p><strong>D. Az architektúrából adódóan eddig is volt egy ún. &#8220;felpörgési ideje&#8221; a rendszernek.</strong> Az ablakok első megnyitása &#8211; &#8220;hála&#8221; a Microsoft-nak &#8211; az inicializálás (runtime compiler) miatt kicsivel lassabb volt. Mostantól azonban a ritkán változó adatok állandóan memóriában tartása miatt a felpörgési időt sikerült csökkenteni. A törzsadatok és egyéb statikus információk a változási valószínűségük alapján egyre ritkábban töltődnek újra. Kb. 30 percnyi programhasználat után már csak a ténylegesen változó adatok elérésekor van szükség hálózati forgalomra.</p>
<p style="text-align: center;"><strong>Konklúzió.</strong></p>
<p>A sikeres, gyakran két embernek is több napos, hetes munkát jelentő mögöttes fejlesztések során eljutottunk odáig, hogy az alkalmazott technológia képes kiszolgálni a következő felépítésű céget. Gyakorlatból állítjuk, hogy:</p>
<ul>
<li>50 helyi felhasználó, call-center (gyakori, rövid műveletekkel)</li>
<li>5-15 távoli felhasználó 2Mbit up/down bérelt vonalon</li>
<li>5 <span style="text-decoration: underline;">nagyon</span> távoli (külföldi) felhasználó a fent említett bérelt vonalon</li>
<li>átlagos, szerver célokra tervezett, de nem több milliós számítógép, 64bites Fedora Linux operációs rendszert futtatva.</li>
</ul>
<p><strong><em>Büszkék vagyunk a teljes egészében általunk tervezett és épített keretrendszerre, amely az elmúlt egy évben sok-sok felhasználónál, különböző platformokon is jól teljesített. Hajrá LAB!</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/07/a-lab-folyamatosan-hegyezi-a-termeket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Karácsony, 64 bites számítógép &#8211; De a számlázóm nem fut rajta</title>
		<link>http://lab.symboltech.hu/2009/12/karacsony-64-bites-szamitogep-de-a-szamlazom-nem-fut-rajta/</link>
		<comments>http://lab.symboltech.hu/2009/12/karacsony-64-bites-szamitogep-de-a-szamlazom-nem-fut-rajta/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 09:46:36 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[symbol]]></category>
		<category><![CDATA[számlázó]]></category>
		<category><![CDATA[ügyvitel]]></category>
		<category><![CDATA[x64]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=604</guid>
		<description><![CDATA[Itt a Karácsony. És még válság is van. Ilyenkor az emberek nem költenek egymásra, sajnos. Mindenki bezippzározza a pénztárcát. Aki költ, az magának vesz. Mondjuk egy notebook-ot. 64biteset, Windows 7-tel. És otthon kiderül, hogy nem fut már a Delphi-s számlázóprogramja, pláne nem MsSQL szerverrel.

Mi ilyenkor a teendő?]]></description>
			<content:encoded><![CDATA[<p>Itt a Karácsony. És még válság is van. Ilyenkor az emberek nem költenek egymásra, sajnos. Mindenki bezippzározza a pénztárcát. Aki költ, az magának vesz. Mondjuk egy notebook-ot. 64biteset, Windows 7-tel. És otthon kiderül, hogy nem fut már a Delphi-s számlázóprogramja, pláne nem MsSQL szerverrel.</p>
<p style="text-align: center;"><strong>Mi ilyenkor a teendő?</strong></p>
<p>Vannak félmegoldások arra vonatkozólag, hogy hogy lehet életet lehelni a betegbe. Telepítsd ide, majd másold át oda, majd indítsd újra és kattints oda. Utána nézd meg, hogy elindult-e. Ha nem, akkor az ünnepek után hívd az ügyfélszolgálatot&#8230; van ennél jobb megoldás is: Symbol Ügyvitel!</p>
<p>Már a tervezésnél nagy hangsúlyt fektettünk arra, hogy rendszrrünk 64bites operációs rendszeren is fusson és Önnek ne kelljen bonyolult telepítési módokat végigkattintgatnia. A telepítőkészlet méretét nem szerettük volna növelni a 64bites csomagokkal. Ezt a telepítő alternatív tükörszerverekről tölti le, amennyiben szükség van rá.</p>
<ul>
<li>64bites <strong>.NET framework</strong> letöltésre kerül, ha szükség van rá. Ez a Windows7-nek része, de a 64bites XP-nek még nem.</li>
<li>A 64bites <strong>adatbáziskezelő</strong> is jobban kihasználja a gépekbe rakott 4GB (vagy több) RAM-ot, sőt csak ez használja ki. 32bites operációs rendszer nem fogja ezt kezelni. Nálunk erre is van lehetőség, sőt automatikusan ez települ, ha szükség van rá.</li>
<li>A<strong> Symbol Ügyvitel</strong> alkalmazás pedig elkészültekor is már 32/64 bites operácisó rendszeren is futtatható formában valósult meg.</li>
</ul>
<p>És mivel jövőre jönnek a 128 bites szerverek, elkezdtük ennek a technológiának a feltérképezését is.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/12/karacsony-64-bites-szamitogep-de-a-szamlazom-nem-fut-rajta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Csekknyomtatás, de csak az első példányon</title>
		<link>http://lab.symboltech.hu/2009/12/csekknyomtatas-de-csak-az-elso-peldanyon/</link>
		<comments>http://lab.symboltech.hu/2009/12/csekknyomtatas-de-csak-az-elso-peldanyon/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 11:59:33 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[csekk]]></category>
		<category><![CDATA[nyomtatás]]></category>
		<category><![CDATA[példány]]></category>
		<category><![CDATA[számla]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=600</guid>
		<description><![CDATA[Ügyviteli rendszerek pár éve tudnak csekkes számlaformátumot nyomtatni, mert a vevő könnyen szeretné befizetni pár ezer Forint-os tételeit. Ehhez nem a banki átutalást választja. De probléma volt, hogy a három példányos számlánál hogy tárazzuk be a nyomtatóba a papírokat. Ennek a megoldása született meg.]]></description>
			<content:encoded><![CDATA[<p>Ügyviteli rendszerek pár éve tudnak csekkes számlaformátumot nyomtatni, mert a vevő könnyen szeretné befizetni pár ezer Forint-os tételeit. Ehhez nem a banki átutalást választja. De probléma volt, hogy a három példányos számlánál hogy tárazzuk be a nyomtatóba a papírokat. <strong>Ennek a megoldása született meg.</strong></p>
<p>A Symbol Ügyvitel új verziójában egyszerre jelent meg a csekkes számlaformátum és a példányok külön nyomtatása, természetesen tömegesen is.</p>
<p><strong>A csekkes számlaformátum</strong> külön bizonylattömbbe szervezhető, amely praktikus is, hiszen egyik vevőm csekkes, másik nagy összegű, átutalásos. Minden bizonylatnál a tömeges nyomtatási lehetőségnél választhatunk az első példány, a nem első példány és a minden példány között.</p>
<p><em>Természetesen nem csak számla, hanem az ÁFA spóroló díjbekérő is nyomtatható csekkes formátumban.</em></p>
<p><strong>Tipikus felhasználási mód</strong> a tömeges számlakiállítás nyomtatás nélkül, napi 7.5 órában. Majd a munkaidő előtti fél óra felhasználható a nap folyamán kiállított számlák első példányának csekkes nyomtatására, majd a 2./3. példányok normál papírra való nyomtatására.</p>
<p><strong>És a fél óra alatt csak kettőt kell kattintanunk, azaz még két bögre tea is belefér&#8230;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/12/csekknyomtatas-de-csak-az-elso-peldanyon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vonalkódolvasás bevezető karakterrel</title>
		<link>http://lab.symboltech.hu/2009/12/vonalkodolvasas-bevezeto-karakterrel/</link>
		<comments>http://lab.symboltech.hu/2009/12/vonalkodolvasas-bevezeto-karakterrel/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 11:53:07 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[csippantás]]></category>
		<category><![CDATA[F9]]></category>
		<category><![CDATA[vonalkód]]></category>
		<category><![CDATA[vonalkódolvasó]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=597</guid>
		<description><![CDATA[Régi beidegződés, hogy a vonalkódolvasó egy virtuális billentyűzet, amely az olvasás végén küld egy ENTER-t. Tíz éve ez volt, mára változnak az idők...]]></description>
			<content:encoded><![CDATA[<p>Régi beidegződés, hogy a vonalkódolvasó egy virtuális billentyűzet, amely az olvasás végén küld egy ENTER-t. <strong>Tíz éve ez volt, mára változnak az idők&#8230;</strong></p>
<p>Régóta működik a bevezető karakter is. A vonalkódolvasó az olvasás megkezdésekor is tud küldeni egy karaktert. Rendszerünk &#8211; amennyiben ez az általában is elfogadott F9 billenytű &#8211; támogatja a bevezető karaktereket is. Bizonylatok tételei automatikus kitöltésre kerülnek az F9 hatására, a főablakon pedig gyors termékinformációk jeleníthetők meg egyetlen csippantással.</p>
<p>Információ: <a href="http://www.symboltech.hu/features/vonalkod/">http://www.symboltech.hu/features/vonalkod/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/12/vonalkodolvasas-bevezeto-karakterrel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A beépített szövegszerkesztő &#8211; Ügyviteli Újdonság</title>
		<link>http://lab.symboltech.hu/2009/12/a-beepitett-szovegszerkeszto-ugyviteli-ujdonsag/</link>
		<comments>http://lab.symboltech.hu/2009/12/a-beepitett-szovegszerkeszto-ugyviteli-ujdonsag/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 11:48:38 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[rtf]]></category>
		<category><![CDATA[szövegszerkesztő]]></category>
		<category><![CDATA[word]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=593</guid>
		<description><![CDATA[Mi az, amit már nem lehet egy régi technológiával megvalósított ügyviteli rendszerrel megoldani? A kérdésre nagyon sok válasz adható. Mi életjárunk az új megoldások megálmodásában és megvalósításában.
Mert amiről nem tudunk, arra nem is vágyhatunk!]]></description>
			<content:encoded><![CDATA[<p>Mi az, amit már nem lehet egy régi technológiával megvalósított ügyviteli rendszerrel megoldani? A kérdésre nagyon sok válasz adható. Mi élenjárunk az új megoldások megálmodásában és megvalósításában.</p>
<p><strong>Mert amiről nem tudunk, arra nem is vágyhatunk!</strong></p>
<p>Évek óta problémát jelent, hogy ügyfélkapcsolati oldalon kultúrált, formázható szöveges dokumentumokat állítsunk elő és ezeket ügyfeleinknek ki tudjuk küldeni. Az eddigi megoldások hátrányai:</p>
<ul>
<li>Word-ben megírt dokumentumban kézzel kell elhelyezni a vevőinformációkat.</li>
<li>Az ügyviteli rendszerbe integrált word-illesztés érzékeny arra, hogy milyen verziójú Office rendszer van a gépünkön. Az ingyenes OpenOffice-nak semmilyen verzióját sem támogatják a mai rendszerek.</li>
<li>Dokumentum előállító és iktató rendszerek nem illeszthetőek ügyviteli rendszerhez, illetve külön támogatást igényelnek, azaz nem dobozosak.</li>
</ul>
<p>A Symbol Tech csapata előállt egy beépített szövegszerkesztővel. Ennek felhasználásával Ön a fizetési felszólításokat és egyenlegközlőket sablon szerűen szerkesztheti, formázhatja és ügyfél/egyéb mezőket helyezhet el benne. Hasonlóan a Word körlevél funkciójához. De nem szükséges a word-öt a számítógépre telepíteni.</p>
<p>További információ: <a href="http://www.symboltech.hu/features/fizetesifelszolitas/">http://www.symboltech.hu/features/fizetesifelszolitas/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/12/a-beepitett-szovegszerkeszto-ugyviteli-ujdonsag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Újabb apró innovációk ügyviteli rendszerünkben</title>
		<link>http://lab.symboltech.hu/2009/11/ujabb-apro-innovaciok-ugyviteli-rendszerunkben/</link>
		<comments>http://lab.symboltech.hu/2009/11/ujabb-apro-innovaciok-ugyviteli-rendszerunkben/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 17:56:55 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[eszköztár]]></category>
		<category><![CDATA[iroda]]></category>
		<category><![CDATA[készlet]]></category>
		<category><![CDATA[számla]]></category>
		<category><![CDATA[villáminformáció]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=574</guid>
		<description><![CDATA[Nagy várakozás előzte meg, fontos mérföldkő a cég számára a Készletkezelő rendszer elkészülte. De ez a marketinges kollégáknak feladat. A mi feladatunk az volt, hogy - mint minden kiadásba, ebben is - valami újdonsággal szolgáljunk.]]></description>
			<content:encoded><![CDATA[<p>Nagy várakozás előzte meg, fontos mérföldkő a cég számára a Készletkezelő rendszer elkészülte. De ez a marketinges kollégáknak feladat. A mi feladatunk az volt, hogy &#8211; mint minden kiadásba, ebben is &#8211; valami újdonsággal szolgáljunk.</p>
<p>Az automatikus adatbázisfrissítés többször bizonyított, minden ügyfelünk frissítette a rendszerét. Ez &#8220;szokott menni&#8221;.  Ami ennél izgalmasabb: <strong>Villáminformációk</strong> és <strong>Eszköztár</strong>.</p>
<p>A főablakon a legfontosabb <strong>céges villáminformációk</strong> megjelennek, ezeke duplakattintással működésre is lehet bírni. Mire jók ezek? Nem arra, hogy elfogyasszuk az ott lévő elemeket. Nem lehet minden nyitott árajánlatot lezárni, mert az ügyfél még gondolkodási időt kér. A rendezetlen számlákat nem lehet egy nap alatt behajtani. De arra jó, hogy az ember a reggeli munkakezdéskor kicsit összeszedettebb lesz, mert tudja, hogy egyáltalán hány feladata van, amivel foglalkoznia kell. Nem lehet kifogás, hogy elfelejtettem megnézni a függőben lévő ajánlatokat!</p>
<p>A másik a <strong>Symbol Ügyvitel Eszköztár</strong>. Egy ügyviteli és egyéb irodai szoftvert egész nap használunk, bámuljuk, jobb esetben berakjuk a gyermekünk képét háttérképnek. De ott van, nézni kell. Ha lecsukom, akkor meg nem látok semmit. Ezt hivatott az eszköztár első, béta verziója megoldani. Kis méretben az ablakon egy kis helyet foglal el, de mégis elérhetőek róla a legfontosabb funkciók, amikkel új számlát, rendelést, stb. vehetünk fel. És nem zavar a böngésző használatában sem, mert a pozíciója egérrel változtatható (elmozdítható &#8211; a szerk.).</p>
<p>Várjuk a felhasználók visszajelzéseit a fenti funkciókkal kapcsolatban!</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/11/ujabb-apro-innovaciok-ugyviteli-rendszerunkben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL szerver már nem lesz dobozos</title>
		<link>http://lab.symboltech.hu/2009/11/sql-szerver-mar-nem-lesz-dobozos/</link>
		<comments>http://lab.symboltech.hu/2009/11/sql-szerver-mar-nem-lesz-dobozos/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 16:09:04 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[express]]></category>
		<category><![CDATA[msde]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[mssqlce]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=568</guid>
		<description><![CDATA[A Microsoft végre meglépte azt, amit már régóta várhattunk. Nem adja olcsón az SQLServer-t! Mindez már a 2008-as verziótól.]]></description>
			<content:encoded><![CDATA[<p>A Microsoft végre meglépte azt, amit már régóta várhattunk. Nem adja olcsón az SQLServer-t! Mindez már a 2008-as verziótól.</p>
<p>Bonyolultságát tekintve már évek óta (SQL2000/MSDE) olyan tudású volt az adatbázis szerver, hogy ahhoz rendszergazdára volt szükség. A 2005/2008 telepítése pedig már több időt vett igénybe, mint egy Windows7 telepítés. Az adatbázis szerver bizonyított nagy rendszerek esetében is. A lépés, hogy az Oracle-lel konkuráljon, logikus volt.</p>
<p>De mi lesz a kis felhasználókkal? Számukra továbbra is lehetőség nyílik az Express változatra, de azt sajnos el kell felejteni, hogy egy 50MB-os telepítőbe belezsúfolva, csak úgy mellékesen a gépre települ a DBserver.</p>
<p>A Microsoft-nak erre is van megoldása:</p>
<ol>
<li>MsSQL CE néven fut a kicsit butácska SQL server, amelyben nincs trigger, tárolt eljárás. Viszont egy gépen fut.</li>
<li>Másik megoldás a rendszergazdával ellátott céges számítógépes rendszer. Végy egy rendszergazdát (hiszen ki tartja karban a licenszkulcsokat, ki frissíti a gépeket, ki szerzi be a tonert, stb.), aki feltelepíti az SQL szervert, beállítja a jogosultságokat és telepíti az ügyviteli rendszert.</li>
</ol>
<p><strong><em>Lassan ideje elgondolkozni, hogy milyen dobozos alternatívái vannak az MsSQL servernek!</em></strong></p>
<p>Addig is az újdonságok: <a href="http://www.microsoft.com/sqlserver/2008/en/us/whats-new.aspx">http://www.microsoft.com/sqlserver/2008/en/us/whats-new.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/11/sql-szerver-mar-nem-lesz-dobozos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Találd meg a céget a térképen és vágd ki a monitoron található kupont</title>
		<link>http://lab.symboltech.hu/2009/10/talald-meg-a-ceget-a-terkepen-es-vagd-ki-a-monitoron-talalhato-kupont/</link>
		<comments>http://lab.symboltech.hu/2009/10/talald-meg-a-ceget-a-terkepen-es-vagd-ki-a-monitoron-talalhato-kupont/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 14:20:24 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[kedvezmény]]></category>
		<category><![CDATA[kupon]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=559</guid>
		<description><![CDATA[Nem, nem a Google AdWords-ös kuponokról van szó, amit boldog, boldogtalan osztogat, hanem a vállalkozásokat összefogó Google "Local" nevű kezdeményezésről. Ez eddig csak a tengerentúlon volt elérhető, de ettől a hónaptól már Európában is. És rögtön van egy monitorról kivágható kupon is.]]></description>
			<content:encoded><![CDATA[<p>Nem, nem a Google AdWords-ös kuponokról van szó, amit boldog, boldogtalan osztogat, hanem a vállalkozásokat összefogó Google &#8220;Local&#8221; nevű kezdeményezésről. Ez eddig csak a tengerentúlon volt elérhető, de ettől a hónaptól már Európában is. És rögtön van egy monitorról kivágható kupon is.</p>
<p>Persze nem kell kivágni, elég felírni a promóciós kódot és nálunk például a Symbol Ügyvitel vásárlásánál beváltható a kedvezmény.</p>
<p>A Symbol Ügyvitel kupon itt elérhető: <a href="http://maps.google.com/coupons/page?oi=lbc&amp;did=0_11992209354192365986&amp;hl=en-US&amp;gl=US" target="_blank">Symbol Ügyvitel kupon</a></p>
<p>Egyébként ezt integrálták a Google Maps szolgáltatásba, azaz gyakorlati haszna a cég üzletének térképen való megjelenítése és a térképes találat meghálálása egy kuponnal.</p>
<p>Persze tartozik hozzá Google API is, azaz programozottan is elérhető, nem kell a cégvezetőnek egész nap a google weboldalán kattintgatnia: <a href="http://code.google.com/intl/hu/apis/coupons/">http://code.google.com/intl/hu/apis/coupons/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/10/talald-meg-a-ceget-a-terkepen-es-vagd-ki-a-monitoron-talalhato-kupont/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dobozos számlázók kontra Windows 7</title>
		<link>http://lab.symboltech.hu/2009/10/dobozos-szamlazok-kontra-windows-7/</link>
		<comments>http://lab.symboltech.hu/2009/10/dobozos-szamlazok-kontra-windows-7/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 20:19:54 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[conflict]]></category>
		<category><![CDATA[dobozos]]></category>
		<category><![CDATA[számlázó]]></category>
		<category><![CDATA[ügyvitel]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=554</guid>
		<description><![CDATA[Mindenkit lázba hoz egy új operációs rendszer megjelenése (Minket is, mondjuk egy kicsit más aspektusól) Pláne akkor, ha 2-3 évet kell rá várni. Az XP óta pedig 8 év telt el. Érdemes szólni egy kicsit a szoftver kultúráról, amely évente változik. Mi a helyzet a dobozos szoftverek területén?]]></description>
			<content:encoded><![CDATA[<p>Mindenkit lázba hoz egy új operációs rendszer megjelenése (Minket is, mondjuk egy kicsit más aspektusól) Pláne akkor, ha 2-3 évet kell rá várni. Az XP óta pedig 8 év telt el. Érdemes szólni egy kicsit a szoftver kultúráról, amely évente változik. Mi a helyzet a dobozos szoftverek területén?</p>
<p>Kezdjük egy kicsit távolabbról. Évente jelennek meg újabb és újabb felhasználói élményt fokozó és a háttérben technológiai előrelépést jelentő fejlesztések. Gondoljunk csak (időrendben) a Java WebStart-ra, a Web2-re, az IWIW web-es átalakítására, amikor is nem HTTP POST-ok szaladgálnak a hálózaton, hanem AJAX-os kérések. Tovább is gondolhatjuk az ötletfolyamot! Vegyük észre a SilverLight előretörését, nem beszélve a web-es számlázókról, amelyek nem használhatóak ugyan nagy mennyiségű ügyfél gyors kiszolgálására, de megvan a maguk előnye hordozhatóság szempontjából. Nézzük csak meg a Vista widget-es megoldását, a hordozható miniszámítógépeken, PDA-kon megjelenő minialkalmazásokat, amelyek web-en mindent összekötnek. Nem utolsóként pedig a Google fejlesztéseit se felejtsük el, a GSM adótorony információkból meghatározott GPS koordináták kérdéskörét.</p>
<p>Ezek mind a felhasználókért vannak, az adatok valahol az interneten keringenek. A felhasználó a @google.com email címe alapján kerül azonosításra és a levelei mellett rögtön beszélgethet a barátaival, twitter-en hozzászólhat valamihez. Mindehhez 3 perc számítógép előtt eltöltött idő elég.</p>
<p>Vannak a nagy, céges rendszerek, a maguk 5-10 fős rendszergazda csapatával, adatbázis klasztereivel, központosított telepítési szabályaival. Nagy pénzintézeket, közmű szolgáltatók nem is tudnának másképp működni.</p>
<p>És vannak az otthon telepíthető, de mégis céges viszonyokat emuláló rendszerek. Ezek a dobozos ügyviteli rendszerek, amelyek közül már szinte csak a számlázórendszerek hálózatosak. A könyvelőprogramokat egy személy használja. (Általában &#8211; szerk.) Na ez MsSQL szrverrel olyan, mintha a webes google levelező helyett SmallBusiness szervert telepítenénk és csak Exchange szolgáltatáson keresztül levelezhetnénk. És mindezt a nagymamámnak kellene telepítenie. Fura, nem?</p>
<p>A cégek jelentős része MsSQL Express-t használ. Ingyenes, belefér a telepítőkészletbe, parancssorból telepíthető, gondozást nem igényel. De ez szerintem csak véletlen. Ez nem oda való! Ne gondoljuk, hogy azért mert laboratóriumi körülmények között működik, kiadható 100-1000, esetleg még több ügyfélnek és felelősséget lehet érte vállalni. Ehhez rendszergazda kell!</p>
<p>A Microsoft is határozottan jelzi, hogy van a nagyvállalati MsSQL szerver, annak a kis méretű kiadása hobbi informatikusoknak, 4GB terjedelemig. (De nem a nagymamámnak való!) És van az egygépes, telepítést és gondozást nem igénylő MsSQL compact (3.5) Ebben sajnos nincsenek meg a nagyvállalati működést támogató komponensek (triggerek, tárolt eljárások, stb.). De a célja nem is az, hogy dobozban áruljunk egy vállalatirányítási rendszert!</p>
<p>Az idő múlásával a fenti gondolat beigazolódni látszik. Már a .NET 3.5 is 1.5 órán át (!!!) települ, hozzá az SQL szerver még egy fél óra. Ez nem a dobozos kategória!</p>
<p>A Windows 7-tel ugyanez a probléma. A biztonsági házirend már nem engedi meg, hogy a felhasználó a webről bármit letöltsöm, majd az gyorsan telepítse. Annyi a kéretlen program, hogy már bizalmi elven nem telepítünk semmit. Azok a dobozos alkalmazások, amelyek még építenek arra, hogy &#8220;Úgyis lehet írni a program files-ba&#8221;, jobb esetben nem indulnak el, rosszabb esetben nem megfelelő működést eredményeznek. Erre példa a program files-ba telepített DBF-es számlázó Vista-n. Más-más felhasználóval belépve a Virtualizációnak &#8220;köszönhetően&#8221; ugyanyolyan sorszámú számlákat lehetett kiállítani és virtuálisan két számlázórendszer futott egymás mellett. Ez aztán az ügyvitel!</p>
<p>Kicsit hosszúra sikerült írásomat hadd zárjam egy élménnyel, amely egy Vista/Win7-re telepített ügyviteli rendszer indításakor ért. Egy MsSQL szerver-t használó programot telepítettem, de mégis további két alkalmazás kérte, hogy engedjem meg nekik publikus portok kinyitását. WTF? Az egyik alkalmazás egy MySQL szerver volt, a másik pedig egy Apache böngésző. A számlázóprogramom egy nem telepített, hanem csak odamásolt, tudja az ég milyen verziószámú szolgáltatást indított el és webszerverré tette a gépem. Abba már bele se merek gondolni, hogy mi lett volna, ha már van egy webszerver a gépen, amire telepítem (mert például az a cégünk belső intranetjének kiszolgálója)?</p>
<p>2009-ben már kevés, ha azt mondjuk, hogy működik ez, csak X, Y és Z gombot kell egyszerre megnyomni és valami valahonnan valahova kell másolni! <strong>A technológia és innováció legyen Veletek! </strong>Az MySQL és Apache párost hagyjátok meg másnak!</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/10/dobozos-szamlazok-kontra-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Új számológép a Windows7-ben</title>
		<link>http://lab.symboltech.hu/2009/10/uj-szamologep-a-windows7-ben/</link>
		<comments>http://lab.symboltech.hu/2009/10/uj-szamologep-a-windows7-ben/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 20:09:03 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[calc.exe]]></category>
		<category><![CDATA[jump list]]></category>
		<category><![CDATA[stickynotes]]></category>
		<category><![CDATA[tálca]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=546</guid>
		<description><![CDATA[Számos újítás és innováció (ami nálunk is kulcsfogalom) mellett régebbről is ismert komponensek is megváltoztak a Windows7-ben. Pár dolog, ami eddig kiderült.]]></description>
			<content:encoded><![CDATA[<p>Számos újítás és innováció (ami nálunk is kulcsfogalom) mellett régebbről is ismert komponensek is megváltoztak a Windows7-ben. Pár dolog, ami eddig kiderült:</p>
<p><strong>Új számológép.</strong> A calc.exe megújult. Tud dátumok közt különbséget számolni, autólizing maradványértékben gondolkodni. És közben az adatokat programozói módban megjeleníteni, ha jól láttam 128bites adatok formájában is.</p>
<p><img class="aligncenter size-medium wp-image-547" title="calcexe" src="http://lab.symboltech.hu/wp-content/uploads/2009/10/calcexe-300x154.png" alt="calcexe" width="300" height="154" /></p>
<p><strong>Beépített Sticky-notes</strong>. Soha nem bíztam a 3rd party alkalmazásokban, ezért nem volt ilyen alkalmazásom. De most lehet, hogy a saját asztalomra teszem az eddig notebookra ragasztott sárga kis cetliket. Arról nem beszélve, hogy a színét is tudom változtatni, nem számít, hogy milyet lehet kapni az OfficeDepot-ban.</p>
<p><strong>Letölthető HUN</strong>. Igen, végre elékeztünk oda, hogy a Windows7 nem kerül kiadásra EN, majd HU nyelven, hanem egy-egy 40MB-os letölthető csomag segítségével a felhasználói felület magyarítható. Ki/bejelentkezés kell hozzá és a Welcome szüveg nem lesz magyar a login-kor, de minden program nyelve megváltozik. Újratelepítés nélkül. 2009-ben már ideje volt.</p>
<p><strong>Pasziánsz is új</strong>. Ez is megváltozott. Félek leírni, de tényleg elhihetitek, hogy csak azért indítottam el, hogy kipróbáljam hátha a számológéppel ez is megújult. És igen.</p>
<p><strong>Shield-ikon</strong>. Shield ikon kék-sárga lett. Az eddigi színes jobban tetszett, de majd ezt is megszokom.</p>
<p><strong>Vezérlőpult</strong>. ControlPanel lenne a neve, de ugye a 40MB-os HUN csomag. Méginkább böngészős (vissza gomb, URL mező) lett. Tetszik.</p>
<p><strong>Alkalmazások visszajelzése.</strong> Az alkalmazások az eddigieknél sokkal több információt tudnak visszaadni az operációs rendszernek. A folyamataikat jelezhetik a taskbar-on (bocsánat a tálcán, 40MB!), korábbi tevékenységeikről információt adhatnak vissza, jump list. (böngészési előzmények a Start Menüben, stb.)</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/10/uj-szamologep-a-windows7-ben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Értékesítési partnerünk az Ügyvitelbázis</title>
		<link>http://lab.symboltech.hu/2009/09/ertekesitesi-partnerunk-az-ugyvitelbazis/</link>
		<comments>http://lab.symboltech.hu/2009/09/ertekesitesi-partnerunk-az-ugyvitelbazis/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 10:31:33 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[symbol]]></category>
		<category><![CDATA[számla]]></category>
		<category><![CDATA[ügyvitel]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=507</guid>
		<description><![CDATA[A 2006-ban indult Ügyvitelbázis Magyarország egyetlen mértékadó, ügyviteli programokat értékelő portálja. A mai nappal az Ügyvitelbázis is forgalmazza termékünket, a Symbol Ügyvitelt.]]></description>
			<content:encoded><![CDATA[<p>A 2006-ban indult Ügyvitelbázis Magyarország egyetlen mértékadó, ügyviteli programokat értékelő portálja. A mai nappal az Ügyvitelbázis is forgalmazza termékünket, a Symbol Ügyvitelt.</p>
<p>A cikk bevezetője:</p>
<p>&#8220;<span style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt">A Symbol Ügyvitel sok funkcióval rendelkező, nagy tudású, professzionális számlázó program. Alkalmas forintos- és devizás számlák kiállítására, szállítólevelek, díjbekérők (pro forma) készítésére, vevői megrendelések nyilvántartására, projektek kezelésére. A részletes terméknyilvántartás korlátlan számú eladási árat, akciót, időszaki kedvezményt, terméktulajdonság megadását támogatja. Felár ellenében árajánlat készítéssel, házipénztár- és bank modullal, valamint szerződések kezelésével is kibővíthető. A Symbol Ügyvitel könnyen telepíthető, pendrive-on is hordozható, bárhol használható, mobilis szoftver. Kezelőfelülete nem csak a lehető legkorszerűbb, hanem számtalan kényelmi funkciója miatt kifejezetten felhasználóbarát is. </span>&#8221;</p>
<p><a href="http://www.ugyvitelbazis.hu/index.php?menupont=szoftverteszt.php&amp;cikkid=344" target="_blank">Symbol Ügyvitel-ról szóló cikk teljes változata</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/09/ertekesitesi-partnerunk-az-ugyvitelbazis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ügyvitel és számlázás 64 bites operációs rendszeren</title>
		<link>http://lab.symboltech.hu/2009/09/ugyvitel-es-szamlazas-64-bites-operacios-rendszeren/</link>
		<comments>http://lab.symboltech.hu/2009/09/ugyvitel-es-szamlazas-64-bites-operacios-rendszeren/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 14:22:44 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[4GB]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[FoxPro]]></category>
		<category><![CDATA[operációs rendszer]]></category>
		<category><![CDATA[processzor]]></category>
		<category><![CDATA[számla]]></category>
		<category><![CDATA[számlázó]]></category>
		<category><![CDATA[Windows XP]]></category>
		<category><![CDATA[x64]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=479</guid>
		<description><![CDATA[Ma már nehéz nem 64bites processzort vásárolni, mégis elvétve találkoztunk csak 64bites operációs rendszerrel Magyarországon és ők sem az ügyvitel miatt választották ezt a technológiát. Mi mégis fontosnak tartottuk, hogy az x64-es operációs rendszereken is működjön a termékünk.]]></description>
			<content:encoded><![CDATA[<p>Ma már nehéz nem 64bites processzort vásárolni, mégis elvétve találkoztunk csak 64bites operációs rendszerrel Magyarországon. És ők sem az ügyvitel vagy a számlázás miatt választották ezt a technológiát. Mi mégis fontosnak tartottuk, hogy az x64-es operációs rendszereken is működjön a termékünk.</p>
<p>Jópár hónapja, aki számítógépet vásárol és a neves gyártók termékét választja vagy egyszerűen saját maga rakja össze a számítógépét, nehezen tud olyan processzort választani, amely ne lenne 64bites üzemmódra képes. A 32bit és 64bit közti átállás még jónéhány évig el fog tartani, jelenleg az a trend bizonyult tartósnak, mely szerint a processzorok belső felépítése 64bites, de a rajtuk futó operációs rendszer 32bites.</p>
<p><strong>Miért így használjuk?</strong></p>
<p>A számítógépek gyártói, akik OEM operációs rendszerrel telepítve értékesítik termékeiket, nem véletlenül választották ezt a kombinációt. A 64bit kihasználásához legalább 4GB ram vagy több szükséges és a teljes funkcionalitást csak olyan szerverekben lehet kihasználni, ahol 1-nél (sőt 8-nál is) több processzor végzi a dolgát. Ez egyelőre nem jellemző az asztali munkaállomásokra vagy notebookokra.</p>
<p>A Microsoft a Windows XP 64bites változatát nem is jelentette meg magyarul, ezzel is jelezve, hogy úgysem érdemes az operációs rendszereket egyelőre ennyire átalakítani. A szoftverek sincsenek még felkészítve rá (Office, Photoshop, Nero, stb.) Használjon mindenki 32bites XP-t, Vista-t a számítógépén, legyen az akárhány bites processzorral felszerelve.</p>
<p><strong>A régi ügyviteli és számlázó rendszeremmel mi lesz?</strong></p>
<p>A korábbi fejlesztőeszközökkel készült termékek (Delphi, FoxPro) hallgatólagosan működnek a Windows XP 64bites változatán is, hála a processzorok azon kiegészítésének, amely a 32 bites programok működését támogatja. Ezek az alkalmazások egy 32 bites számítógépet látnak, maximum 2GB rammal. Ezen kívül számos probléma adódik abból, hogy a szükséges szoftverkomponensek (Jet driver, ActiveX könyvtárak) nem állnak rendelkezésre 64bites verzióban.</p>
<p><strong>Mi a helyzet a Symbol Ügyvitellel?</strong></p>
<p>A Symbol Ügyvitel már a tervezésekor arra készült, hogy futtatható legyen 64bites operációs rendszeren is, sőt a program futtatható állományai ilyen esetben 64bites működésre optimalizáltak. Minden összetevőjének (adatbázis szerver, kliens könyvtárak) létezik 64bites változata. A telepítő a környezetnek megfelelő komponenseket telepíti és ha kell, kihasználhatja a 4GB-nál több memóriát is.</p>
<p><img class="aligncenter size-full wp-image-488" title="cdsmall" src="http://lab.symboltech.hu/wp-content/uploads/2009/09/cdsmall.png" alt="cdsmall" width="300" height="300" /></p>
<p>Hogy a telepítőkészlet méretét minimalizáljuk, a ritkán használt, 64bites összetevők telepítéskor az internetről töltődnek le.</p>
<p>A 64bites processzorokról olvasható egy részletes leírás itt: <a href="http://en.wikipedia.org/wiki/X86-64">http://en.wikipedia.org/wiki/X86-64</a></p>
<p>További 64bites információk magyarul: <a href="http://www.start64.hu">http://www.start64.hu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/09/ugyvitel-es-szamlazas-64-bites-operacios-rendszeren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web2, Twitter, kövess minket Te is!</title>
		<link>http://lab.symboltech.hu/2009/08/web2-twitter-kovess-minket-te-is/</link>
		<comments>http://lab.symboltech.hu/2009/08/web2-twitter-kovess-minket-te-is/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 08:08:57 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web2]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=390</guid>
		<description><![CDATA[Kihasználva a Web 2.0 előnyeit, megjelentünk a Twitteren.]]></description>
			<content:encoded><![CDATA[<p>Kihasználva a Web 2.0 előnyeit, megjelentünk a Twitteren: <a href="http://twitter.com/symboltech" target="_blank">SymbolTech on Twitter</a></p>
<p>A LAB oldalon megjelenő információknál több, kevésbé szakmai hirdetményeket jelenítünk meg.</p>
<p><img title="twitter" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/mm_twitter-300x200.jpg" alt="twitter" width="300" height="200" /></p>
<p><strong>Kövess minket Te is itt: <a href="http://twitter.com/symboltech" target="_blank">SymbolTech on Twitter</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/08/web2-twitter-kovess-minket-te-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerCommands &#8211; azaz ne hiányozzon semmi a VS2008-ból</title>
		<link>http://lab.symboltech.hu/2009/08/powercommands-azaz-ne-hianyozzon-semmi-a-vs2008-bol/</link>
		<comments>http://lab.symboltech.hu/2009/08/powercommands-azaz-ne-hianyozzon-semmi-a-vs2008-bol/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 11:34:48 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[forráskód]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=363</guid>
		<description><![CDATA[Visual Studio 2008 remek eszköz. Számunkra egy dolog hiányzik belőle, mégpedig az, hogy a szépen, névterekben elhelyezett osztályok, ablakok, usercontrol-ok ugyanilyen szép mélységű könyvtárfát hoznak létre, amit ha egyszer kinyitottunk, sok kattintással tudjuk összecsukni.]]></description>
			<content:encoded><![CDATA[<p><strong>Visual Studio 2008 remek eszköz.</strong> Számunkra egy dolog hiányzik belőle, mégpedig az, hogy a szépen, névterekben elhelyezett osztályok, ablakok, usercontrol-ok ugyanilyen szép mélységű könyvtárfát hoznak létre, amit ha egyszer kinyitottunk, sok kattintással tudjuk összecsukni.</p>
<p>Ettől még jól használható, pláne, ha már a VS2005-höz is létezett VB-ben írt makró, ami becsukja a fát. Ennek volt kezdetleges változata, amely csak 1-1 szintet csukott be. És volt, ami már rekurzívan is működött. A tegnapi napig&#8230;</p>
<p> </p>
<p><img class="aligncenter size-medium wp-image-364" title="collapseproject" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/collapseproject-289x300.jpg" alt="collapseproject" width="289" height="300" /></p>
<p style="text-align: left;">Egy VS2008 biztonsági frissítés feltelepítése óta nem működik. Lenne erőforrásunk debugolni, de csak-csak van más megoldás is, mondjuk egy ingyenes Microsoft tool!</p>
<p style="text-align: left; padding-left: 90px;"><em>A szoftverfejlesztő cégek mindegyike pénzért adja a termékeit. Bizonyos &#8220;kultúrákban&#8221; a termék ingyenes, a támogatás, ami által a tényleges előnyt szerzed, viszont fizetős, lásd Apache, Linux, MySql. Ebből kiindulva nem is keresgéltünk nagy tudású, de mégis ingyenes, &#8220;<strong>5 éve fejlesztjük, nagyon jó</strong>&#8221; termékek irányába, hiszen semmi nincs ingyen.</em></p>
<p>És találtunk egy tool-t, amely megfelel a céljainknak, hivatalos Microsoft termék, ingyenes, gyakorlatilag egy extension, amelyet minden bizonnyal a Microsoft is használ saját berkein belül. Talán a létrejötte is annak köszönhető, hogy valamelyik fejlesztő majdnem fellázadt a saját eszközük ellen.</p>
<p>Letölthető <a href="http://code.msdn.microsoft.com/PowerCommands" target="_self">erről az oldalról</a>.</p>
<p><strong>PowerCommands for Visual Studio 2008</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/08/powercommands-azaz-ne-hianyozzon-semmi-a-vs2008-bol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HashList &#8211; Dictionary többszörös kulccsal</title>
		<link>http://lab.symboltech.hu/2009/07/hashlist-dictionary-tobbszoros-kulccsal/</link>
		<comments>http://lab.symboltech.hu/2009/07/hashlist-dictionary-tobbszoros-kulccsal/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 14:39:09 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Hírek]]></category>
		<category><![CDATA[dictionary]]></category>
		<category><![CDATA[fejlesztés]]></category>
		<category><![CDATA[generikus]]></category>
		<category><![CDATA[ngenerics]]></category>
		<category><![CDATA[típus]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=300</guid>
		<description><![CDATA[A pascal-os időszámításhoz képest a modern framework-ökben számos segédeszköz rendelkezésre áll, sok adattároló szerkezetet használhatunk, sőt a nagy ugrás, a generikus adattípusokra az ember úgy gondol, mint a netovábbra, a végtelenre. De volt, amit nem találtunk meg...]]></description>
			<content:encoded><![CDATA[<p>A pascal-os időszámításhoz képest a modern framework-ökben számos segédeszköz rendelkezésre áll, sok adattároló szerkezetet használhatunk, sőt a nagy ugrás, a generikus adattípusokra az ember úgy gondol, mint a netovábbra, a végtelenre. De volt, amit nem találtunk meg&#8230;</p>
<p>KeyValue párokat szerettünk volna tárolni, Key szerint keresni, Value-kat kinyerni. Jött az ötlet Dictionary&lt;Key, Value&gt;. Specifikáció szerint viszont ennek egy Key-je egyszer szerepelhet a gyűjteményben, minden további értékeadás felülírja az előzőt. Azaz a Key-eknek egyedinek kell lenniük. Pár éve már sejtettük ezt.</p>
<p>Nekünk viszont irányítószámokat kell tárolnunk és hála a magyar közigazgatásnak nem minden település kap saját számot, előfordul, hogy egynél több település fut ugyanolyan &#8220;kód&#8221; (irányítószám) alatt. Az ötlet, mely szerint Dictionary&lt;int, List&lt;string&gt;&gt; adatszerkezetbe rakjuk az információkat, jónak tűnt, de hátha ezt már valaki kidolgozta.</p>
<p>És ekkor találtuk meg többedszerre az <a href="http://www.codeplex.com/NGenerics">NGenerics</a> családot, amely számos, C#-ból kimaradt, bonyolultságuk és sokrétűségük miatt speciális tudást igénylő generikus típussal engedi bővíteni a készletet. Ennek HashList osztályát használtuk, amely az alábbi nyelvi konstrukcióban engedte feltölteni ZIP (IRSZ) törzsünket.</p>
<p> </p>
<pre>citylist.Add(2066, "Szár");
citylist.Add(2066, "Újbarok");</pre>
<p> </p>
<p>Az osztálygyűjtemény nagyon nagy. Szerettük volna kerülni az irányítószám kezelés miatt akár 30-40 másodperccel is megnövekedett fordítási időt. Ezért csak bizonyos részeket használtunk fel belőle. Matematikusok tervezték, tele van interfésszel, látogató termintával és minden szépséggel, emiatt az általunk használt osztályhoz a következő fájlok mindegyikére szükség volt:</p>
<p> </p>
<pre>HashList.cs
IVisitable.cs
IVisitableCollection.cs
IVisitableDictionary.cs
IVisitor.cs
VisitableHashtable.cs</pre>
<p> </p>
<p>Projektünk sikeresen kiadásra került, a projektben résztvevő személyek mindegyike sikeresnek értékelte a megoldást. Köszönjük NGenerics!</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/hashlist-dictionary-tobbszoros-kulccsal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diagram engine &#8211; miért C#</title>
		<link>http://lab.symboltech.hu/2009/07/diagram-engine-miert-c/</link>
		<comments>http://lab.symboltech.hu/2009/07/diagram-engine-miert-c/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 05:50:38 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[customcontrol]]></category>
		<category><![CDATA[diagram]]></category>
		<category><![CDATA[fejlesztés]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[paint]]></category>
		<category><![CDATA[szoftver]]></category>
		<category><![CDATA[zorder]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=151</guid>
		<description><![CDATA[Ügyviteli rendszereknél ritka, hogy diagramot jelenítünk meg valamit, hiszen minden adat táblákban van, azok megjelenítéséhez pedig ideális valamiféle grid.]]></description>
			<content:encoded><![CDATA[<p>Ügyviteli rendszereknél ritka, hogy diagramot jelenítünk meg valamit, hiszen minden adat táblákban van, azok megjelenítéséhez pedig ideális valamiféle grid. Néha szoktak beépített grafikon segítségével felhasználókat elképráztatni, de az egyedi rajzolásos digram nem mindennapos.</p>
<p>Az üzletkötőink, ügyviteli szakembereink sem értették, hogy mit akarunk ezzel, miért nem jó szerintünk a sima kis lista. Csak a végén értették meg, hogy mit is akartunk.</p>
<p><strong>Ezt:</strong></p>
<p><img class="aligncenter size-full wp-image-252" title="voucherdiagram" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/voucherdiagram.jpg" alt="voucherdiagram" width="700" height="495" /></p>
<p>Hogyan is jött létre ez a &#8211; <em>joggal innovációnak nevezhető</em> &#8211; modul, amely minden ügyviteli termékünkben megjelenik és sok pozitív felhasználói visszajelzést indukált? A bizonylatok és egyéb adatelemek közti reláció, adatkapcsolat adott, erre épül maga az alkalmazás. No de ezt hogy jelenítsük meg egy gráfban, hogy  felhasználó is kedvet kapjon és használja?</p>
<p>Csapatunk 3 napon keresztül tervezett, brainstormingolt. Számos ötlet jelent meg a fejekben és a nagy prezentációs falon, ezen ötletek kb. 50% bele is került a megvalósult rendszerbe. Az elvárások tisztázása után kezdődött a fejlesztés. Programnyelv C#, ennek GDI és GDI+ lehetőségei kiváló kiaknázásra való területet jelentettek számunkra.</p>
<p><strong>Lépések:</strong></p>
<ul>
<li>Építsünk egy saját controlt.</li>
<li>Bármilyen megjelenni kívánó objektum feleljen megy egy <code>IDiagramDrawItem </code>interfésznek, amely egy metódust definiál <code>void Draw()</code> és információt szolgáltat arról, hogy melyik rétegben jelenik meg a kirajzolandó adatelem <code>int ZOrder { get; }</code>.</li>
<li>Rajzolás megvalósítása
<ul>
<li><code>override Paint()</code></li>
<li><code>void ClearAndDrawBackground()</code></li>
<li><code>void SortByZOrder()</code></li>
<li><code>foreach(... item.Draw()...)</code></li>
</ul>
</li>
</ul>
<p>Már a tervezési fázisban is láthatóvá vált, hogy lesznek optimalizálási kérdések, problémák, amelyek a témakör izgalmasabb részét jelentik.</p>
<p><strong>Repository, hogy ne szaggasson a kép.</strong> Egyedileg rajzoló eljárások rákfenéje a sok GDI objektum, amely memóriában és időben is költséges. A memóriabeli költségeket, mivel IDisposasble, meg lehet oldani, de sokáig tart minden OnPaintben Font-os, Pen-t és Brush-t létrehozni. Erre született megoldásként, hogy a diagram ezeket publikálja, tárolja, elérhetővé teszi eg példányban, egy alkalommal való létrehozással a rajzolni képes objektumok felé. Performancia mérést végeztünk, egy átlagos diagram 740 alkalommal tud kirajzolódni egy másodperc alatt. Nem rossz, megfelel.</p>
<p><strong>GraphicsPath, hogy lekerekített sarkú legyen a doboz.</strong> A C# GDI+ lehetőséget kínál arra, hogy vonalak és görbék segítségével egy &#8220;utat&#8221; hozzunk létre, amely felhasználható rajzolásra és kitöltésre egyaránt. Megvalósítottuk. Mivel ez is költséges, minden objektum a mérete alapján (amely nem állítható megjelenítés közben) első felhasználáskor (late-init) létrehozza a GraphicsPath objektumot.</p>
<p><strong>LinearGradientBrush, hogy átmenetes legyen a dobozok háttere.</strong> A legnagyobb kihívás a színátmenetes doboz volt, amely egy pontoktól függő GradientBrush lett. Ennek szintén elég egy példányban léteznie, de a doboz pozíciójának függvényében kell felparaméterezni. A (rendszer által) mozgatható dobozok pedig ezen tulajdonságukat gyakran változtatják, de erre is született megoldás: late-init és re-init-by-move.</p>
<p><em>És ekkor még nem ért véget a gondolkodás, a dobozok esztétikus elhelyezésének algoritmusa felér egy komolyabb diplomamunka témakörével, erről egy következő cikkben.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/diagram-engine-miert-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

