<?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; Fejlesztői hírek</title>
	<atom:link href="http://lab.symboltech.hu/category/development/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>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>Használat Interneten keresztül &#8211; Biztonságos ez?</title>
		<link>http://lab.symboltech.hu/2011/06/hasznalat-interneten-keresztul-biztonsagos-ez/</link>
		<comments>http://lab.symboltech.hu/2011/06/hasznalat-interneten-keresztul-biztonsagos-ez/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 12:01:25 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[biztonság]]></category>
		<category><![CDATA[internetes elérés]]></category>
		<category><![CDATA[port 3050]]></category>
		<category><![CDATA[távoli használat]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=725</guid>
		<description><![CDATA[Rendszerünk használata az infrastruktúra helye megválasztása miatt távolról is lehetőséges. Számos megoldási mód van még a tarsolyunkban, de a legtriviálisabb a direkt Interneten keresztüli csatlakozás.]]></description>
			<content:encoded><![CDATA[<p>Rendszerünk használata az infrastruktúra helye megválasztása miatt távolról is lehetőséges. Számos megoldási mód van még a tarsolyunkban, de a legtriviálisabb a direkt Interneten keresztüli csatlakozás.</p>
<p><strong>Ingyenes megoldás</strong></p>
<p>Adatbázis műveleteink optimalizáltsága miatt egy 2/2 Mbit-es kapcsolaton működő szerver (amely lehet Linux is) alkalmas a rendszer kiszolgálására 15 munkaállomásig. A munkaállomások számának növekedésével felfelé skálázni kell a kapcsolat sebességét.</p>
<p>A kapcsolat nyilvánvalóan publikus, bárki számára elérhető, emiatt lehet hozzá egyszerűen csatlakozni. De nézzük meg, milyen információkat kell tudnunk ahhoz, hogy a kapcsolat létrejöhessen. Szükség van tehát:</p>
<ul>
<li>IP címre vagy host névre</li>
<li>port számra (alapértelmezett 3050 helyett)</li>
<li>adatbázisfájl fizikai helyének megadására</li>
</ul>
<p>Az első kettő a mai számítógépes teljesítménnyel pár óra alatt kideríthető, ha máshogy nem, próbálkozással. A legutolsó azonban olyan mértékű kombinációs lehetőséget jelent, hogy számítógép legyen a talpán, aki ezt kitalálja. Nézzük, milyen példák lehetnek:</p>
<p>Windows-on: c:\SymbolUgyvitelDB\kiscegem\db1\default.database</p>
<p>Linux-on: /var/lib/database/Symbol/CoMPaNY_1580/default.database</p>
<p>Ez utóbbi még betűnagyság érzékeny is. Matematikus kollégák véleménye szerint a lehetőségek száma elég nagy ahhoz, hogy valaki ezt ne találhassa ki. Konkrétan <strong>26*2+10+5</strong> a <strong>49</strong>-ik hatványon, ami egy <strong>3-as és mögötte 89 (!!!) darab nulla</strong>. Szemléltetve ez ennyi:</p>
<h6 style="text-align: center;">1 :</h6>
<h6 style="text-align: center;">30000000000000000000000000000</h6>
<h6 style="text-align: center;">000000000000000000000000000000</h6>
<h6 style="text-align: center;">0000000000000000000000000000000</h6>
<p>Azaz kicsi az esélye, hogy valaki el tudja találni, hol az adatbázisom. Ezt még egy kicsit erősíteni lehet, ha a helyet havonta cseréljük.</p>
<p><strong>Ingyenes, előkészületet igénylő megoldás</strong></p>
<p>Továbbra is ingyenes, de felkészültséget igénylő megoldás a kézzel kiépített SSL tunnel. Ezt például a putty programmal is megtehetjük. Ilyenkor az előző biztonságot növeljük azzal, hogy titkosított csatornán keresztül közlekednek az adatok. A csatorna kiépítése ilyenkor a felhasználó feladata.</p>
<p><strong>Vállalati meegoldás, VPN</strong></p>
<p>Egy igazi megoldás, amely pénzbe kerül a Virtual Private Network. Ez egy virtuálisan kiépített helyi hálózat, amely a számítógépet úgy emulálja, mintha a számítógép az irodában lenne. Ehhez valamilyen VPN szerverre szükség van.</p>
<p><strong>&#8230;nevet még nem írhatok</strong></p>
<p>Egy nemsokára megszülető megoldásunk &#8211; amelynek van már neve, de nem publikus &#8211; célja ponz az lesz, hogy biztonságos és stabil infrastruktúrális megoldást biztosítsunk ügyfeleinknek. Erről majd később.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2011/06/hasznalat-interneten-keresztul-biztonsagos-ez/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>Mi is követünk el hibákat &#8211; Verzió történet egyik bejegyzése önmagáról</title>
		<link>http://lab.symboltech.hu/2011/01/mi-is-kovetunk-el-hibakat-verzio-tortenet-egyik-bejegyzese-onmagarol/</link>
		<comments>http://lab.symboltech.hu/2011/01/mi-is-kovetunk-el-hibakat-verzio-tortenet-egyik-bejegyzese-onmagarol/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 11:29:23 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[mulasztás]]></category>
		<category><![CDATA[szoftverkiadás]]></category>
		<category><![CDATA[telepítés]]></category>
		<category><![CDATA[verzió]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=688</guid>
		<description><![CDATA[A fenti bejegyzés nem is készülhetett volna el, ha a Symbol Ügyvitel nem tartalmaz havi szinten 20-30 újdonságot, változást. Ennek ez az ára :)]]></description>
			<content:encoded><![CDATA[<p>Sajnos mi is követünk el hibákat. Egyik volt főnököm szerint csak az nem hibázik, aki nem dolgozik. Mi dolgozunk&#8230;</p>
<p><strong>Nem fatális, banális hibát ejtettünk.</strong> A verzió történet azt a célt szolgálná, hogy minden felhasználó információt kapjon a változásokról. Sok partnerünknél a rendszergazda csak akkor telepíti az új verziót (pedig pofon egyszerű az upgrade), ha van benne valami fontos vagy súlyos javítás.</p>
<p>Legutolsó verziónkban a <strong>verzió történet ablak nem jelent meg</strong>. A működése pofon egyszerű, nem is tudtuk mire vélni a hibát, majd 4 perc alatt megláttuk a hiba okát: a kiadás előtt pár perccel, amikor a helyesírást még egyszer megnézzük végső lépésként, egy <strong>&amp;</strong> jelet tettek a kollégák az XML fájlba (Drag&amp;Drop), amely a changelog adatait tartalmazza. Az XML parser működése ismert, de nem programozók szerkesztik a changelog-ot. Fene gondolta volna&#8230;</p>
<p>Új verziónk első hibabejegyzése az lesz, hogy &#8220;Nem jelent meg a verzió történet&#8221;. Addig is partnereink megértését kérjük a hiba miatt &#8211; <img src='http://lab.symboltech.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  és javasoljuk nekik a <a href="http://mit-hogyan.symboltech.hu/2011/01/1-66-48-4030-as-verzio-ujdonsagai/">http://mit-hogyan.symboltech.hu/2011/01/1-66-48-4030-as-verzio-ujdonsagai/</a> linkeket, ahol ugyanazokat az információkat láthatják.</p>
<p><em>A fenti bejegyzés nem is készülhetett volna el, ha a Symbol Ügyvitel nem tartalmaz havi szinten 20-30 újdonságot, változást. Ennek ez az ára <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/01/mi-is-kovetunk-el-hibakat-verzio-tortenet-egyik-bejegyzese-onmagarol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miért van ma a &#8217;4000&#8242;? Hogyan épülnek fel a verziószámok?</title>
		<link>http://lab.symboltech.hu/2010/12/miert-van-ma-a-4000-hogyan-epulnek-fel-a-verzioszamok/</link>
		<comments>http://lab.symboltech.hu/2010/12/miert-van-ma-a-4000-hogyan-epulnek-fel-a-verzioszamok/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 13:25:13 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[frissítés]]></category>
		<category><![CDATA[kiadás]]></category>
		<category><![CDATA[verzió]]></category>
		<category><![CDATA[verziószám]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=686</guid>
		<description><![CDATA[Ha ma kiadnánk a Symbol Ügyvitel új verzióját, akkor a 4000-es számot kapná a verziószám végén: 1.62.44.4000. Hogy miért? Mert ma van az évezred 4000. napra, 4000 nap telt el 2001. január 1-e óta.]]></description>
			<content:encoded><![CDATA[<p>Ha ma kiadnánk a Symbol Ügyvitel új verzióját, akkor a 4000-es számot kapná a verziószám végén: 1.62.44.4000. Hogy miért? Mert ma van az évezred 4000. napra, 4000 nap telt el 2001. január 1-e óta.</p>
<p style="text-align: center;"><strong>Verziószámaink felépítése a következő (<span style="text-decoration: underline;">x.y.z.w</span>)</strong></p>
<p><strong>X: Főverzió száma</strong>, amely jelenleg 1. Nagy szoftver ugrást tervezünk jövő év közepén (bár eddig sem ugrottunk kicsiket), akkor fogjuk kettesre módosítani.</p>
<p><strong>Y: Alverzió</strong>, amely a főverzión belüli újdonságokat tartalmazza. Azok a cégek, akik részt vesznek partnerprogramunkban és már a kiadás előtti verziókat is megkapják, általában kapnak páratlan verziót is, de a hivatalos verzióink mindig párosak (1.60, 1.62, 1.64 nemsokára)</p>
<p><strong>Z: Adatbázis verziószáma</strong>. Amikor olyan jellegű változtatás történik (az utolsó egy évben gyakran), amikor szükség van új adatbázis működésre, a számot változtatva az adatbázis automatikusan frissül.</p>
<p><strong><span style="text-decoration: underline;">W: Ez a cikk fő témája, a 2001. jan.1 óta eltelt napok száma</span></strong>. Ez a szám egyértelműen azonosít egy program kiadást, azaz a kinyomtatott számla alján látható szám alapján tudjuk, hogy melyik napok adtuk ki azt a verziót, amivel a számlát nyomtatták.</p>
<p>4000 napja élünk a 21. században, a Symbol Ügyvitellel pedig lehetősége van arra, hogy 21. századi ügyviteli rendszert használjon.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/12/miert-van-ma-a-4000-hogyan-epulnek-fel-a-verzioszamok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miért jelenik meg 3 hetente frissítés?</title>
		<link>http://lab.symboltech.hu/2010/12/miert-jelenik-meg-3-hetente-frissites/</link>
		<comments>http://lab.symboltech.hu/2010/12/miert-jelenik-meg-3-hetente-frissites/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 07:48:48 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[gyári szám]]></category>
		<category><![CDATA[gyáriszám]]></category>
		<category><![CDATA[kiadás]]></category>
		<category><![CDATA[konkurrencia]]></category>
		<category><![CDATA[szoftver]]></category>
		<category><![CDATA[technológia]]></category>
		<category><![CDATA[új generációs]]></category>
		<category><![CDATA[verseny]]></category>
		<category><![CDATA[versenytárs]]></category>
		<category><![CDATA[verzió]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=678</guid>
		<description><![CDATA[Legutóbbi nyílt napunkon Fehér Péter, több sikeres vállalkozás tulajdonosa kérdezett minket arról, hogy miért jelenik meg három hetente Symbol Ügyvitel frissítés. Elégedett felhasználóként nem is érti, mire föl a frissítési ablak.]]></description>
			<content:encoded><![CDATA[<p><strong>Legutóbbi nyílt napunkon Fehér Péter, több sikeres vállalkozás (<a href="http://www.uzletitervek.hu" target="_blank">www.uzletitervek.hu</a>, stb.) tulajdonosa kérdezett minket arról, hogy miért jelenik meg három hetente Symbol Ügyvitel frissítés. Elégedett felhasználóként nem is érti, mire föl a frissítési ablak.</strong></p>
<p><em>Minden kérdésére készségesen válaszolt Balázs Csaba fejlesztési vezetőnk, aki talán a legkompetensebb a témában.</em></p>
<p><strong>FP: Miért ilyen gyakran?<br />
</strong>BCS: Röviden? Mert képesek vagyunk rá.</p>
<p><strong>FP: És kicsit hosszabban?<br />
</strong>BCS: Van mit és tudjuk, hogy hogyan. Általában 3-4 heti gyakorisággal gyűlik össze annyi újdonság, hogy érdemes legyen egy csomagként megjelentetni. Próbálkoztunk már kéthavi kiadással, de olyan mennyiségű volt az újdonság, hogy két nyílt napon tudtuk csak bemutatni a programot. Pontosítok, a program újdonságait.</p>
<p><strong>FP: Ennyi javítanivaló van?<br />
</strong>BCS: Újdonságokat említettem az előbb is. Újdonságok teszik ki a fejlesztés 75-80%-át. Van benne javítás is, ezek általában apróbb felhasználói visszajelzések, nem komoly hibák. És igen, több, mint 3/4-e újdonság. Ezek vagy a programunk újdonságai, vagy valóban ügyviteli újdonságok.</p>
<p><strong>FP: Valóban folyamatos a fejlesztés?<br />
</strong>BCS: A jó szoftver sosincs kész. Ahhoz a programhoz nem készülnek új fejlesztések, amelyet nem használnak. Nálunk, a folyamatos használatból adódóan mindig merülnek fel igények.</p>
<p><strong>FP: És ezeket a programba beépítitek?<br />
</strong>BCS: Mindig mosolyogni szoktam a felhasználói igényeken, persze nem gúnyosan. Elmondhatjuk, hogy nagyon ritka a valóban új igény. A programunk alapja egy négy generációt megélt ügyviteli rendszer, amelyet cégünk egy akvizíció során már magáénak tudhat. Ezen a négy verzión már nagyon sokat tapasztaltunk. Legyen szó általános igényekről vagy speciális üzleti folyamatról, a nagy részük már tervbe van véve nálunk. Azaz nemsokára a polcról tudjuk kiszolgálni az olyan igényeket is, mint a munkaruha kihordási idő nyilvántartása. Tavaly év végén 2011.decemberéig volt meg a fejlesztéi tervünk, van mit csinálni.</p>
<p><strong>FP: És most?<br />
</strong>BCS: 2012. Karácsonya is munkával fog telni <em>(nevet)</em></p>
<p><strong>FP: Érdemes akkor még várnom 24 hónapot?<br />
</strong>BCS: Dehogy! A termékünk a maga nemében már megjelenése után jól állta a sarat, mert szükség volt valami modern rendszerre. Az akkori rendszerek 6-10 éve készültek, ebből adódóan legalább 7-11 éves technológiával. Felkevertük az állóvizet. A termék egy évvel a megjelenése után jól szerepel, számos funkciójában lekörözte versenytársait.</p>
<p><strong>FP: De ha még nálatok is vannak fejlesztési tervek, akkor más, 6-8 éves termékekben ezek miért nem találhatóak meg?<br />
</strong>BCS: Megtalálhatóak. A maguk módján. Minden rendes ügyviteli szoftver megvalósítja az évek során összegyűlt funkciókat, de azok vagy ügyfél igények alapján készültek &#8211; ügyviteli szakértelem nélkül &#8211; vagy csak fejlesztői gondolatokat figyelembe véve. Ez pedig a valóságtól messze van. De egy még fontosabbat kiemelnék, a precizitást. Minden dolgot több féle módon megvalósíthatunk, de kevés termék van, ami a felhasználói kényelmet és a legapróbb igényt is megvalósítja. Mi erre törekszünk, azaz hogy legyen élmény az ügyvitel!</p>
<p><strong>FP: Mondasz erre egy példát?<br />
</strong>BCS: Jó példa a gyári szám kezelés. Minden szoftverterméknek része, de vajon használható-e? Nálunk nem az a cél, hogy a gyári számok a számlán megjelenjenek, hanem valóban ki tudjam mutatni, hogy milyen gyári szám hányszor és mikor fordult meg nálam. És ezt még Symbol-osan megspékeljük azzal, hogy termékenként a gyári szám bevitele maszkolható. Azaz mobiltelefonoknál nem tudunk nem 15 jegyű IMEI számot beírni, nem tudjuk elgépelni.</p>
<p><strong>FP: Azt hiszem, erre mondjátok, hogy innovatív<br />
</strong>BCS: Meg az egészre, amit itt csinálunk. 80% gondolkodás, 20% munka.</p>
<p><strong>FP: Elején említetted, hogy tudjátok a hogyant is. A konkurencia nem tudja?<br />
</strong>BCS: Pontosítsunk. Nem szeretem a konkurencia szót. Azt sugallja, hogy egy van, aki a legjobb és a végén is csak egy maradhat. Inkább használjuk a versenytárs szót, hiszen verseny azért van.</p>
<p><strong>FP: Szóval, a versenytársak nem ismerik a hogyant?<br />
</strong>BCS: Mindenki ismeri a saját hogyanját. A miénk lehetővé teszi, hogy 3-4 hetente kiadjunk egy verziót, amely az ország több száz számítógépén tökéletesen frissül &#8211; még soha nem volt ezzel kapcsolatban hiba &#8211; és megoldást szállít a problémákra. Sokáig terveztük a saját rendszerünket, a cél pont az volt, hogy könnyen tudjunk hozzáilleszteni, könnyen lehessen bővíteni.</p>
<p><strong>FP: Említetted, hogy problémák vannak&#8230;<br />
</strong>BCS: Mindenkinek, Neked is, ha valami nem működik vagy nem elég hatékony, akkor az probléma. A remek ötleteidet rajtad kívül álló okok miatt nem tudod megvalósítani, a fránya számítógép vagy a számlatömb a szűk keresztmetszet. Ezek a problémák, amikre megoldást nyújtunk. Valódi megoldásokat.</p>
<p><strong>FP: Mik a jövőbeni tervek?<br />
</strong>BCS: Decemberben is marad a 3 heti gyakoriság, sőt egy kicsit bele is húzunk, két kiadás is lesz. Amíg a többiek pihennek, addig mi dolgozunk, mert az ügyvitel a szenvedélyünk. <em>(nevet)</em> Ismét 42 újdonságra jut 13 javítás, módosítás, lesz benne iparági újdonság is, mint amilyen a Symboogle volt. De erről többet majd a szoftverkiadáskor.</p>
<p><strong>FP: 2012 decemberében folytatjuk a beszélgetést?<br />
</strong>BCS: Ismételjük meg gyakrabban! Büszkék vagyunk a munkánkra, ezt kívánjuk továbbra is csinálni. Nagyon jó visszajelzések érkeznek. A kedvencem a: &#8220;<span style="text-decoration: underline;">Hol voltak maguk idáig???</span>&#8220;</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/12/miert-jelenik-meg-3-hetente-frissites/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>Drag&amp;Drop Reloaded</title>
		<link>http://lab.symboltech.hu/2010/10/dragdrop-reloaded/</link>
		<comments>http://lab.symboltech.hu/2010/10/dragdrop-reloaded/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 22:17:52 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[drag and drop]]></category>
		<category><![CDATA[drag&drop]]></category>
		<category><![CDATA[draganddrop]]></category>
		<category><![CDATA[drop]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=668</guid>
		<description><![CDATA[Több mint 180 óra kutatómunka után újraélesztettük a sokak által hanyagolt Drag&#038;Drop technológiát, amely a Windows 2.0 óta van jelen életünkben.]]></description>
			<content:encoded><![CDATA[<p>Több mint 180 óra kutatómunka után újraélesztettük a sokak által hanyagolt Drag&amp;Drop technológiát, amely a Windows 2.0 óta van jelen életünkben.</p>
<p>A Symbol LAB több változat eldobása után egy felhasználói élményekben és főleg operatív használhatóságban élenjáró megoldással örvendezteti meg jelenlegi és jövőbeni ügyfeleit.</p>
<p>A végleges fejlesztés sok munkaórát igényel még, várhatóan jövő év első heteiben jelenik meg, de egy pár képernyőképpel már most is szolgálhatunk, a tervezési fázis állapotáról.</p>
<p><em><a href="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneA.png"><img class="aligncenter size-full wp-image-669" title="dropzoneA" src="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneA.png" alt="" width="647" height="572" /></a></em></p>
<p><a href="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneB.png"><img class="aligncenter size-full wp-image-670" title="dropzoneB" src="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneB.png" alt="" width="579" height="414" /></a></p>
<p><em> </em></p>
<p><em><a href="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneC.png"><img class="aligncenter size-full wp-image-671" title="dropzoneC" src="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneC.png" alt="" width="900" height="650" /></a></em></p>
<p><em> </em></p>
<p><em><a href="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneD.png"><img class="aligncenter size-full wp-image-672" title="dropzoneD" src="http://lab.symboltech.hu/wp-content/uploads/2010/10/dropzoneD.png" alt="" width="900" height="650" /></a></em></p>
<p><em>A képlopó program nem volt képes az egérkurzort a képernyővel együtt menteni, ezért nem látható. De várjuk csak ki a végét! Nem csak sima egérkurzorról lesz szó&#8230; Fogd és vidd újraTÖltve!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/10/dragdrop-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fogd és vidd újraélesztve</title>
		<link>http://lab.symboltech.hu/2010/10/fogd-es-vidd-ujraelesztve/</link>
		<comments>http://lab.symboltech.hu/2010/10/fogd-es-vidd-ujraelesztve/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 20:25:32 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[drop]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=663</guid>
		<description><![CDATA[A Microsoft a DragAndDrop technikát már a Windows korai verzióiban megjelentette. A Win95-től igazi értelmet nyert, aztán valahogy eltűnt...]]></description>
			<content:encoded><![CDATA[<p>A Microsoft a DragAndDrop technikát már a Windows korai verzióiban megjelentette. A Win95-től igazi értelmet nyert, aztán valahogy eltűnt&#8230;</p>
<p>Valljuk be, sok bosszúságot okozott egy fájl drag&amp;drop-pal való mozgatása. vagy lemásolódott vagy átmozgatódott vagy parancsikon készült hozzá a leglehetetlenebb helyeken, az asztalon vagy a dokumentumok mappában. Ezért inkább nem használtuk.</p>
<p><a href="http://lab.symboltech.hu/wp-content/uploads/2010/10/dragdrop.png"><img class="size-full wp-image-666 alignnone" title="dragdrop" src="http://lab.symboltech.hu/wp-content/uploads/2010/10/dragdrop.png" alt="drag and drop" width="546" height="274" /></a></p>
<p>De egy programon belül az adatok mozgatásának kézenfekvő módszere. Lenne. Ha a böngészők nem lehetetlenítették volna el a technikát. Eddig egy logikus használati módját láttam a böngészőben. LogMeIn parancsikont helyezhettem az asztalomra. Persze az Internet Explorer 3 kérdést tett fel előtte, hogy valóban lemondtam-e az életemről, stb.</p>
<p>Külön csoportot hoztunk létre, hogy a drag&amp;drop-ot felélesszük. Még keressük a megfelelően kézreálló és informatív megoldást, hogy a felhasználó tudja, mi fog történni, ha elengedi az adatokat (akarom mondani elengedi az egég bal gombját). Eddig a proof-of-concept tanulmánymunkáink pozitív sikerről számoltak be. Nemsokára be fogjuk vezetni a darg&amp;drop széles körű használat, de a teljes kidolgozottsághoz még idő kell.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/10/fogd-es-vidd-ujraelesztve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Központosított telepítés</title>
		<link>http://lab.symboltech.hu/2010/09/kozpontositott-telepites/</link>
		<comments>http://lab.symboltech.hu/2010/09/kozpontositott-telepites/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 10:25:17 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[parancsikon]]></category>
		<category><![CDATA[telepítés]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=659</guid>
		<description><![CDATA[Sok rendszergazda álma, hogy ne kelljen minden számítógépen frissíteni egy alkalmazást, de ne is veszítsük el a desktop programok kényelmes felületét. Már eddig is volt megoldás arra, hogy a számítógépek automatikusan frissítsék magukat (akár internet kapcsolat nélkül is), de most még egyszerűbb lett a rendszergazdák dolga.
]]></description>
			<content:encoded><![CDATA[<p>Sok rendszergazda álma, hogy ne kelljen minden számítógépen frissíteni egy alkalmazást, de ne is veszítsük el a desktop programok kényelmes felületét. Már eddig is volt megoldás arra, hogy a számítógépek automatikusan frissítsék magukat (akár internet kapcsolat nélkül is), de most még egyszerűbb lett a rendszergazdák dolga.</p>
<p>A <a href="http://lab.symboltech.hu/2010/09/telepites-helyett-parancssori-hasznalat/">http://lab.symboltech.hu/2010/09/telepites-helyett-parancssori-hasznalat/</a> link alatt olvasható cikkben leírtuk, miként lehet telepítés nélkül futtatni hálózaos programunkat. Ezeket az információkat felhasználva egy további telepítési módot mutatunk be.</p>
<p>1. A cikkben szereplő módon csomagoljuk ki az EXE fájlt egy megosztott meghajtóra.</p>
<p>2. Készítsünk egy parancsikont, amely a /server opcióval a megfelelő helyre mutat. A megosztott meghajtóra helyezhetjük a parancsikont is.</p>
<p>2/a. Linux-os megosztás esetén (Samba) az EXE neve kezdődhet ponttal is, így láthatatlan lesz a felhasználók számára.</p>
<p>3. Minden felhasználó a megosztott mappában lévő LNK parancsikon fájlra kattintva elérheti a Symbol Ügyvitel programot.</p>
<p><strong>Előnyök:</strong></p>
<p>A. A rendszergazda központilag tudja cserélni a futtatható állományt (symbolugyvitelsetup.exe /x)</p>
<p>B. Mindenki ugyanarra az adatbázisra fog mutatni.</p>
<p>C. Senki nem fogja &#8220;véletlenül&#8221; frissíteni a rendszert.</p>
<p style="text-align: center;"><strong>További lehetőség, ha a felhasználó azonosítás a Windows bejelentkezéssel történik, akkor mindenki haszálhatja a központi parancsikont, de mégis jelszó beírása nélkül indul a Symbol Ügyvitel (korlátlan felhasználó definiálható!).</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/09/kozpontositott-telepites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Telepítés helyett parancssori használat</title>
		<link>http://lab.symboltech.hu/2010/09/telepites-helyett-parancssori-hasznalat/</link>
		<comments>http://lab.symboltech.hu/2010/09/telepites-helyett-parancssori-hasznalat/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 10:16:53 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[parancssor]]></category>
		<category><![CDATA[telepítés]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=657</guid>
		<description><![CDATA[Új telepítési módokat vezettünk be ügyfeleink kényelme érdekében. Igazából nem is hagyományos telepítési módok, sokkal inkább használati esetek.]]></description>
			<content:encoded><![CDATA[<p>Új telepítési módokat vezettünk be ügyfeleink kényelme érdekében. Igazából nem is hagyományos telepítési módok, sokkal inkább használati esetek.</p>
<p>Cégek rendszergazdái, főleg azok, akik több céget kezelnek vagy több cégben vezető beosztást betöltő személyek kedvence lehet az a telepítési mód, amikor magát a telepítőkészletet nem is telepítjük, csak az EXE-t másoljuk egy megfelelő helyre és parancsikont hozunk létre hozzá kézzel. Ennek előnye, hogy különböző parancsikonok különböző adatbázis szerverekre tudnak mutatni.</p>
<p><strong>1. lépés, a futtatható állomány kicsomagolása.</strong></p>
<p>Telepítőink új változatai (1.58-tól) parancssori paraméterrel is meghívhatóak. A <strong>/x</strong> és <strong>/xv</strong> kapcsolók a telepítés/frissítés helyett az EXE kicsomagolását ajánlják fel (/xv esetén a verziószámmal együtt). Így a felhasználó tetszőleges helyre mentheti az alkalmazást, anélkül, hogy telepítenie kelljen.</p>
<p>A SymbolUgyvitel.EXE önállóan képes hálózatos működésre, nem kell telepíteni, nem szükséges hozzá semmilyen DLL (Firebirdclient.dll sem), alapértelmezetten telepített Windows XP/Vista/7 alkalmas a program futtatására.</p>
<p><strong>2. lépés, a parancsikon létrehozása.</strong></p>
<p>Hozzunk létre egy vagy több parancsikont, amelyeknél a /server=&lt;szervernév&gt;:&lt;mappa&gt; formátumban meg tudjuk adni, hogy hova csatlakozzon. Opcionálisan a /firstonly kapcsoló használatával az első adatbázist használja, nem is keres többet.</p>
<p style="text-align: center;">Például LINUX szerverhez csatlakozva: <strong>symbolugyvitel.exe /server=center.cegnev.hu:/opt/db/symbolugyvitel /firstonly</strong></p>
<p>Mivel ilyen esetben a program nem kerül telepítésre, a telepítő alkalmazás futtatása új telepítésként értelmezi a működését. Érdemes az automatikus frissítést kikapcsolni és az hírlevélből értesülhet a felhasználó arról, hogy új verzió jelent meg.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/09/telepites-helyett-parancssori-hasznalat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symboogle &#8211; a keresési mindenes</title>
		<link>http://lab.symboltech.hu/2010/07/symboogle-a-keresesi-mindenes/</link>
		<comments>http://lab.symboltech.hu/2010/07/symboogle-a-keresesi-mindenes/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 13:18:10 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=652</guid>
		<description><![CDATA[Lassan végső fázisba érkezik az univerzális ügyviteli keresőnk tervezése és fejlesztése.]]></description>
			<content:encoded><![CDATA[<p>Lassan végső fázisba érkezik az univerzális ügyviteli keresőnk tervezése és fejlesztése.</p>
<p>A Google megváltoztatta a világot a mindenre kiterjedő, szavak &#8211; a gyakorlatban szinte gondolatok &#8211; alapján történő kereséssel. Azt is kitalálja, mire is akartunk keresni. Ha nincs sok találat, ajánlást tesz arra is, hogy mire kellene keresnünk. Egyszóval okos.</p>
<p><a href="http://lab.symboltech.hu/wp-content/uploads/2010/07/Symboogle.png"><img class="size-full wp-image-653 alignnone" title="Symboogle" src="http://lab.symboltech.hu/wp-content/uploads/2010/07/Symboogle.png" alt="" width="450" height="80" /></a></p>
<p>A Google az Interneten keresgél, a Symboogle-val ugyanezt tervezzük megvalósítani ügyviteli adataink között. Mindenre, mindenhol. <strong>Symboogle.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/07/symboogle-a-keresesi-mindenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parancssori kapcsolók &#8211; Csak rendszergazdáknak (18+)</title>
		<link>http://lab.symboltech.hu/2010/07/parancssori-kapcsolok-csak-rendszergazdaknak-18/</link>
		<comments>http://lab.symboltech.hu/2010/07/parancssori-kapcsolok-csak-rendszergazdaknak-18/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 11:05:47 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=648</guid>
		<description><![CDATA[Manapság a parancssori kapcsolók az átlag felhasználók számára már nem fontosan. A modern felhasználói felületű operációs rendszerkben nem kell a programokat a nevük begépelésével indítani és működést befolyásoló opciókat megadni. Azonban némely esetben a kapcsolókkal érdemes a működést befolyásolni.]]></description>
			<content:encoded><![CDATA[<p>Manapság a parancssori kapcsolók az átlag felhasználók számára már nem fontosan. A modern felhasználói felületű operációs rendszerkben nem kell a programokat a nevük begépelésével indítani és működést befolyásoló opciókat megadni. Azonban némely esetben a kapcsolókkal érdemes a működést befolyásolni.</p>
<p style="text-align: center;"><strong>Csak rendszergazdáknak!</strong></p>
<p>A Symbol Ügyvitel az alábbi parancssori paraméterekkel rendelkezik:</p>
<p><strong><span style="text-decoration: underline;">/syxmode</span></strong> SyX fejlesztői üzemmód</p>
<p><strong><span style="text-decoration: underline;">/server=&lt;hostname&gt;:&lt;databasefolder&gt;</span></strong> Kiszolgáló felülbírálása hálózatos üzemmódban</p>
<p><strong><span style="text-decoration: underline;">/skipotherconnections</span></strong> Adatbázis frissítés kikényszerítése aktív kapcsolat esetén is</p>
<p><strong><span style="text-decoration: underline;">/firstonly</span></strong> Több céges adatbázis esetén kapcsolódás mindig az első adatbázishoz</p>
<p><strong><span style="text-decoration: underline;">/?</span></strong> Súgó megjelenítése</p>
<p>A parancssori paraméterek beállításai frissítéskor és újratelepítéskor elvesznek, mert az asztali parancsikon is frissítésre kerül! Célszerű a parancsikon egy másolatát ellátni a parancssori paraméterekkel.</p>
<p><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;"></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/07/parancssori-kapcsolok-csak-rendszergazdaknak-18/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>SyX=Symbol eXtension. Már csak pár nap&#8230;</title>
		<link>http://lab.symboltech.hu/2010/02/syxsymbol-extension-mar-csak-par-nap/</link>
		<comments>http://lab.symboltech.hu/2010/02/syxsymbol-extension-mar-csak-par-nap/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 14:45:50 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[syx]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=618</guid>
		<description><![CDATA[A jövő hét folyamán jelenik meg programunk új verziója. Ezzel nem is mondunk újdonságot. Partnereink megszokhatták, hogy minden két hétben előrukkolunk valamivel. Ha kérik, ha nem. Mert van még a tarsolyunkban. Amivel a jövő héten megjelenünk, azt nem kérték. Mert ezidáig még senki nem csinált ilyet. Talán nem is gondolták volna az ügyfelek, hogy lehet [...]]]></description>
			<content:encoded><![CDATA[<p>A jövő hét folyamán jelenik meg programunk új verziója. Ezzel nem is mondunk újdonságot. Partnereink megszokhatták, hogy minden két hétben előrukkolunk valamivel. Ha kérik, ha nem. Mert van még a tarsolyunkban.</p>
<p>Amivel a jövő héten megjelenünk, azt nem kérték. Mert ezidáig még senki nem csinált ilyet. Talán nem is gondolták volna az ügyfelek, hogy lehet ilyet is. Mottó: &#8220;<strong>Egyedi fejlesztés, ingyen.</strong>&#8221;</p>
<p><strong>Mi a helyzet az egyedi igényekkel?</strong></p>
<p>Általában a felhasználók kérik, cégük működéséhez akarván igazítani a dobozos ügyvitel megoldást. Ez így helyén is van, ők a megrendelők.</p>
<p><strong>Mi a baj az egyedi igényekkel?</strong></p>
<p>Ez már fogósabb kérdés. A problémát az okozhatja, <strong>ha szót fogadunk</strong> és a fejlesztőcsapat beleépíti a kívánt funkciót a programba. Az ügyfél boldog, majd megkapja a számlát. Akkor már csak félig örül. (Valljuk be, minden egyedi fejlesztés pénzbe kerül. A nyomott árú piacon sajnos a termék árának többszöröse is lehet egy-egy új lista vagy export fájl.) De a funkciót megkapta, cége működése rendben van. A fejlesztőcsapat viszont évek múltán is kell, hogy emlékezzen valamilyen egyedi igényre, amely a programban valahol drótozottan jelen van. Nem kell messze mennünk (és sok karaktert sem beütni a böngésző címsorába), hogy példát hozzunk erre.</p>
<p>Képzeletbeli nagy cég, sok egyedi fejlesztés. Évek múltán is ott virít a &#8220;<strong>IF dubaj_mukodes</strong>&#8221; feltétel a programban, mert valamikor az őskorban eladtak egy programpéldányt a <a href="http://hu.wikipedia.org/wiki/Dubaj" target="_blank">sejkeknek</a>. A tizedik egyedi fejlesztésnél már egy külön ember kell arra, hogy fejben tartsa, mit kinek és miért építettünk bele. Szomorú tesztelők.</p>
<p><strong>Mi még a baj a felhasználói kérésekkel?</strong></p>
<p><strong>Az, ha nem tudjuk megvalósítani</strong>. Technológiailag képzettek lehetnének a szakemberek, de Zsiguli típusú személygépjárművel már csak a Bamakó rally-n indulhatunk. Ne legyenek Forma-1-es terveink és ígéreteink.</p>
<p><strong>Amit mi ígérünk&#8230;</strong></p>
<p>Mi nem ígérünk semmit, lehetőséget biztosítunk. Hogy mire? Ez ki fog derülni a jövő héten&#8230;</p>
<p style="text-align: right;"><strong><em>Türelmüket megköszönve, a Symbol Tech Kft. csapata.</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/02/syxsymbol-extension-mar-csak-par-nap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A fejlesztő gépek teljesítménye &#8211; néha ez is véges</title>
		<link>http://lab.symboltech.hu/2010/01/a-fejleszto-gepek-teljesitmenye-neha-ez-is-veges/</link>
		<comments>http://lab.symboltech.hu/2010/01/a-fejleszto-gepek-teljesitmenye-neha-ez-is-veges/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 18:38:25 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[17coll]]></category>
		<category><![CDATA[2GB]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=616</guid>
		<description><![CDATA[A szoftverfejlesztő cégek kell, hogy erősebb számítógépekkel fejlesszenek, mint a felhasználói számítógépek, de nem csak a GHz-ek számítanak. Egy kis betekintés, hogy min dolgoznak kollégáink.]]></description>
			<content:encoded><![CDATA[<p>A szoftverfejlesztő cégek kell, hogy erősebb számítógépekkel fejlesszenek, mint a felhasználói számítógépek, de nem csak a GHz-ek számítanak. Egy kis betekintés, hogy min dolgoznak kollégáink.</p>
<p><strong>Dell notebook-ok</strong>: A fejlesztők számítógépei mind notebook-ok, ebből is természetesen minőségi gépet kell választanunk, a leállás sokkal nagyobb hátrány, mint pár tízezer Ft. Ezért is választottuk a DELL számítógépeket. 2.4GHz, Core2Duo. Windows Vista.</p>
<p><strong>17&#8221;-es display, 1440&#215;900-as felbontás</strong>: sokmindennek ki kell férnie az asztalra. De nem lehet sokkal nagyobb, mint a felhasználók (kijelzőjének) felbontása, mert a kollégák hirtelen túl nagy ablakokat hoznának létre.</p>
<p><strong>2-3GB memória</strong>: A hordozható számítógépek hátránya, hogy hordozzák őket. Emiatt nem mindenki az irodában tölti a munkaidejét. Ezért a teljes infrastruktúra kis méretű változata rendelkezésre kell, hogy álljon a számítógépeken. Adatbázis szerver, fejlesztőeszköz, Symbol Ügyvitel alkalmazás. Ez mind egy gépen is kell, hogy fusson. Ezért kell minimum 2GB.</p>
<p><strong>Központi fejlesztői szerver</strong>: Master adatbázisunk, amely a fejlesztés magja ezen a számítógépen helyezkedik el. Ehhez csatlakoznak a kollégák, a forráskódok is ezen kerülnek tárolásra.</p>
<p><strong>Adatmentés</strong>: Folyamatos adatmentés, amelynek részei: adatbázisok, forráskódok, grafikai fejlesztések (portál, wordpress, stb.) munkafájljai.</p>
<p><strong>Céges adatok</strong>: Természetesen mi is a Symbol Ügyvitelt használjuk. Ehhez egy külön szervert állítottunk be, amely LINUX és fájlszerverként is szolgál. Ez egy jó tesztkörnyezet is.</p>
<p><strong>VMware</strong>: Tesztelést végző kollégáink külön erre a célra lecsupaszított virtuális számítógépeken tesztelik programjainkat. Két fontos szempont van, amit mindig ellenőrízni kell:</p>
<ol>
<li><span style="text-decoration: underline;">Üres operációs rendszer</span>. Frissen telepített operációs rendszereken is futnia kell a programnak, nem elég ha fel tudunk mutatni egy számítógépet, amin elindul. Hiszen az ügyfélnek általában nem fejlesztői számítógépe van.</li>
<li><span style="text-decoration: underline;">Változatos operációs rendszerek</span>.WindowsXP, Windows Vista, Windows7. Ez utóbbi kettőből x86 és x64-es változat, magyar, angol és német nyelvi beállítás. Ez is egy komoly és fontos feladat.</li>
</ol>
<p><em>Néha még így is elfogy a memória&#8230; A Microsoft-os fejlesztőkörnyezetünk átlag heti egy alkalommal memória &#8220;elfogyásra&#8221; panaszkodik. Ilyenkor újra kell indítani. No, ez belefér. Jó munkát!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2010/01/a-fejleszto-gepek-teljesitmenye-neha-ez-is-veges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Számlázóprogramok problémája WIFI hálózaton</title>
		<link>http://lab.symboltech.hu/2009/12/szamlazoprogramok-problemaja-wifi-halozaton/</link>
		<comments>http://lab.symboltech.hu/2009/12/szamlazoprogramok-problemaja-wifi-halozaton/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 10:02:12 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[clipper]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[hálózat]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=606</guid>
		<description><![CDATA[Mindannyian találkoztunk azokkal az esetekkel, amikor egy WIFI hálózat kicsit leterheltebb és még a 10%-át sem hozza annak, ami rá van írva a routerre. Nagy cégeknél a hálózat komolyabb ugyan, de a többi cég az irodaházban ugyanúgy bezavarhat. És be is zavar.]]></description>
			<content:encoded><![CDATA[<p>Mindannyian találkoztunk azokkal az esetekkel, amikor egy WIFI hálózat kicsit leterheltebb és még a 10%-át sem hozza annak, ami rá van írva a routerre. Nagy cégeknél a hálózat komolyabb ugyan, de a többi cég az irodaházban ugyanúgy bezavarhat. És be is zavar.</p>
<p>Azok az ügyviteli rendszerek, amelyek a megszokott, összekattintgatós módszerrel készültek (&#8220;Programozzunk könnyen gyorsan Clipperben/Delphiben&#8221;), egy számítógépen tökéletesen futnak. A hálózatos működés is megvalósult, bár itt, amig valaki számlát állít ki, addig a többiek néha várakoznak. 2-3 éves fejlesztés után (miközben az ügyfelek jelezék, hogy mi hol nem megy hálózatban) minden flottul ment. A Windows7 hálózati kezelése kicsit felboríthatja a terveket, de ha XP-t használnak, akkor működik a dolog. <strong>Amig van kábel a szerver és a gép között.</strong> WIFI-n a programok nem működnek, mert annyira gyakran és olyan sok adat utazik (utazna) a hálózaton.</p>
<p><strong>Cégünk egy emberévig</strong> (fejlesztés mértékegysége), gyakorlatban 3 ember, 4 hónapig fejlesztette azt az adatbáziskezelési technológiát, amely WIFI hálózaton is alkalmas a program működtetésére. Az unalmas részleteket nélkülözve annyit érdemes tudni, hogy a bizonylatok kiállításakor szinte minden információ rendelkezésre áll, hogy a munkát elvégezhessük, nincs szükség állandó kapcsolatra.</p>
<p>Emiatt Symbol Ügyvitel termékünk dobozos változatának csomagolásán is ott virít a felirat:</p>
<p style="text-align: center;">&#8220;<strong>Vezeték nélküli hálózaton is használható</strong>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/12/szamlazoprogramok-problemaja-wifi-halozaton/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 Vista adatbázis is szép csendben készülget</title>
		<link>http://lab.symboltech.hu/2009/12/a-vista-adatbazis-is-szep-csendben-keszulget/</link>
		<comments>http://lab.symboltech.hu/2009/12/a-vista-adatbazis-is-szep-csendben-keszulget/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 20:53:20 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[vistadb]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=586</guid>
		<description><![CDATA[Az adatbázis megoldásokat szállító cégek  régen beleülhettek a kényelmes fotelükbe, nem nagyon volt újdonság. MySQL ha ingyenes kell, ha kis tranzakció kell, akkor InnoDB. Ha Delphi/MicroSoft-os vagy, akkor MsSQL/MSDE. Ha bankod van, akkor úgyis van Oracle. Ha nagyon Delphi-s vagy, akkor Interbase/Firebird. (Symbol Ügyvitel is FB 2.1 alapokon fut, ennek architektúrális okai vannak, a Delphi-s [...]]]></description>
			<content:encoded><![CDATA[<p>Az adatbázis megoldásokat szállító cégek  régen beleülhettek a kényelmes fotelükbe, nem nagyon volt újdonság. MySQL ha ingyenes kell, ha kis tranzakció kell, akkor InnoDB. Ha Delphi/MicroSoft-os vagy, akkor MsSQL/MSDE. Ha bankod van, akkor úgyis van Oracle. Ha nagyon Delphi-s vagy, akkor Interbase/Firebird.</p>
<p style="text-align: center;">(<em>Symbol Ügyvitel is FB 2.1 alapokon fut, ennek architektúrális okai vannak, a Delphi-s indíttatás elenyésző &#8211; a szerk.</em>)</p>
<h3 style="text-align: center;">És közben magát nagyon jól pozicionálva megjelent a VistaDB4. <a href="http://www.vistadb.net/vistadb">http://www.vistadb.net/vistadb</a></h3>
<p style="text-align: center;"><em>Talán régebben választották neki a nevet, mint ahogy a Microsoft operációs rendszere megszületett.</em></p>
<p><strong> </strong></p>
<p><strong>Mit is tud általában?</strong></p>
<p><span style="text-decoration: underline;">Beépített.</span> Ez azt jelenti, hogy nem kell szervert telepíteni, minden művelet, megoldás az applikációban kap helyet.</p>
<p><span style="text-decoration: underline;">T-SQL-t érti.</span> Az MsSQL tárolt eljárás nyelvét egy az egyben futattni képes, sőt a CLR-t is fel tudja használni.</p>
<p><span style="text-decoration: underline;">MSSQL funkciók.</span> Számos olyan funkció beépítésre került, amely a &#8220;nagy&#8221; MsSQL-nek része, de a CE (compact edition) változat nem tatalmazza: triggerek, tárolt eljárások. Így alternatívája lehet az MSDE/MsSQL-CE-nek.</p>
<p><strong> </strong></p>
<p><strong>Mi egyebet kapunk?</strong></p>
<ul>
<li>Visual Studio integráció</li>
<li>Adatmodellező eszköz</li>
<li>.NET framework teljes integráció</li>
</ul>
<p><strong> </strong><strong>Mibe kerül ez nekünk?</strong></p>
<ul>
<li>Természetesen ára van, mert semmi nincs ingyen.</li>
<li>$59 az alapértelmezett, Light csomag, ebben sajnos kevés a funkcionalitás.</li>
<li>$359 az ideális választás /fejlesztő.</li>
<li>A runtime komponensek felhasználókhoz való eljuttatása természetesen ingyenes.</li>
</ul>
<p>Jó választás, jó a verseny, egy kiforrott alternatíva lehetősége a korábbiak mellett, amelyek már kinövik saját méretüket. Lásd MsSQL 200MB-os telepítő!</p>
<div class="wp-caption aligncenter" style="width: 498px"><img class=" " title="VistaDB" src="http://www.vistadb.net/images/screenshotsXP/vistadb3/db3_06.jpg" alt="VistaDB" width="488" height="350" /><p class="wp-caption-text">VistaDB</p></div>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/12/a-vista-adatbazis-is-szep-csendben-keszulget/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>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>Hány táblád van? &#8211; Fejlesztési statisztika</title>
		<link>http://lab.symboltech.hu/2009/09/hany-tablad-van-fejlesztesi-statisztika/</link>
		<comments>http://lab.symboltech.hu/2009/09/hany-tablad-van-fejlesztesi-statisztika/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 10:33:16 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[constraint]]></category>
		<category><![CDATA[index]]></category>
		<category><![CDATA[kivétel]]></category>
		<category><![CDATA[kód]]></category>
		<category><![CDATA[mező]]></category>
		<category><![CDATA[sorok száma]]></category>
		<category><![CDATA[tábla]]></category>
		<category><![CDATA[tárolt eljárás]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[unique]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=529</guid>
		<description><![CDATA[Az adatbázis programozás kezdetén a szakértelmet és a munkát a táblák számával tudták mérni. Programozók egymás között és a megrendelők a programozók felé is. Lássunk egy ilyen statisztikát nálunk: Táblák: 73 Mezők: 842 Indexek: 103 Egyediségi megszorítások: 24 Idegen kulcsok: 221 Tárolt eljárások: 26 Triggerek: 23 Kivételek: 9 &#8220;És ez még csak az egyik projektünk&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Az adatbázis programozás kezdetén a szakértelmet és a munkát a táblák számával tudták mérni. Programozók egymás között és a megrendelők a programozók felé is.</p>
<p>Lássunk egy ilyen statisztikát nálunk:</p>
<ul>
<li>Táblák: <strong>73</strong></li>
<li>Mezők: <strong>842</strong></li>
<li>Indexek: <strong>103</strong></li>
<li>Egyediségi megszorítások: <strong>24</strong></li>
<li>Idegen kulcsok: <strong>221</strong></li>
<li>Tárolt eljárások: <strong>26</strong></li>
<li>Triggerek: <strong>23</strong></li>
<li>Kivételek: <strong>9</strong></li>
</ul>
<p>&#8220;<strong>És ez még csak az egyik projektünk</strong>&#8221; lehetne hallani 10 évvel ezelőtt. Az adatbázisok normalizálása miatt a táblák száma már nem releváns információ. Persze (m)értéket képvisel két olyan rendszer összehasonlításakor, amikor egy 5 táblás és egy 470 táblás adatbázis találkozik.</p>
<p>De mi lehet akkor a modern kori mérőszám az üzleti logika mértékére? Nálunk a generált kód mennyisége az. Lássuk, mi mennyi:</p>
<ul>
<li>Sorok száma: <strong>171.591 sor</strong></li>
<li>Karakterek száma: <strong>5.784.477 betű</strong></li>
<li>Fájl bájtok: <strong>13.779.968 bájt</strong></li>
</ul>
<p>Persze nem kézzel gépeltük ezt be. A kód generált, a saját üzleti logika erre épül. Annak mérete pedig titok&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/09/hany-tablad-van-fejlesztesi-statisztika/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vajon az ok/mégse koncepciót a lusta programozók találták ki?</title>
		<link>http://lab.symboltech.hu/2009/09/vajon-az-okmegse-koncepciot-a-lusta-programozok-talaltak-ki/</link>
		<comments>http://lab.symboltech.hu/2009/09/vajon-az-okmegse-koncepciot-a-lusta-programozok-talaltak-ki/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 07:19:30 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[beállítások]]></category>
		<category><![CDATA[koncepció]]></category>
		<category><![CDATA[mégse]]></category>
		<category><![CDATA[ok]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[űrlap]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=518</guid>
		<description><![CDATA[Vajon az ok/mégse koncepciót a lusta programozók találták ki?]]></description>
			<content:encoded><![CDATA[<p><em>Belső üzenőfalunkon jelent meg az alábbi elmélkedés:</em></p>
<p><strong>Vajon az ok/mégse</strong><strong> koncepciót a lusta programozók találták ki?</strong><br />
Mert miről is szól ez a dolog?! Az ember kitölt egy űrlapot, ami mondjuk az alkalmazottak adatait tartalmazza. Miután ezt kitöltöttük bezárjuk az űrlapot (Mentés/Ok gomb). Na most ha meg akarjuk nézni az adatlapot, akkor megnyitjuk a listából egy kivetítő ablakon, amit módosítani nem lehet. Bezárni a jól ismert X gombbal lehet. Ha módosítani szeretnénk, akkor megnyitjuk szerkesztésre. Majd bezárjuk a módosított űrlapot (Mentés/Ok gomb).</p>
<p>Tehát, ha új alkalmazottat veszünk fel és nincs Mentés vagy Ok gomb, akkor bezáráskor csak is akkor mentjük el, ha ki lett valami töltve. (Így nem kell Ok vagy Mentés gomb) Ha megnézésre nyitjuk meg, akkor kivetítő ablak. (csak x gombunk van úgyis) Ha módosítani szeretnénk, akkor megnyitjuk szerkesztésre az űrlapot és bezáráskor csak akkor mentjük el, ha változott. (Így sem kell Mentés vagy Ok gomb)</p>
<p>Viszont van egy hatalmas probléma, amit ezzel a módszerrel nem lehet kivédeni: az emberi tényező! Mert az ember egy olyan fajta, aki tévedni szokott. Ezért, megnyithat és beleszerkeszthet egy másik alkalmazott adatlapjába és csak módosítás közben jön rá -&gt; Mégse gomb. Vagy rosszabb esetben kitöröl egy olyan mezőt, amit nem kellett volna, és nem emlékszik mi volt benne -&gt; Mégse gomb, majd újra megnyit.</p>
<p>És mi volt ennek a gondolat mentenek a kiindulópontja? A Safari nevű böngésző beállítások &#8220;űrlapja&#8221;:</p>
<p><img class="aligncenter size-full wp-image-519" title="safarisettings" src="http://lab.symboltech.hu/wp-content/uploads/2009/09/safarisettings.png" alt="safarisettings" width="473" height="549" /></p>
<p><em>A kérdéssel és a koncepció elgondolásával jövőben projektjeinkben foglalkozni fogunk.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/09/vajon-az-okmegse-koncepciot-a-lusta-programozok-talaltak-ki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ha Önnek linuxos szervere van, akkor is használhat Symbol Ügyvitelt</title>
		<link>http://lab.symboltech.hu/2009/09/ha-onnek-linuxos-szervere-van-akkor-is-hasznalhat-symbol-ugyvitelt/</link>
		<comments>http://lab.symboltech.hu/2009/09/ha-onnek-linuxos-szervere-van-akkor-is-hasznalhat-symbol-ugyvitelt/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 05:35:43 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[számlázó]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ügyvitel]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=496</guid>
		<description><![CDATA[Az ügyviteli piac dobozos termékeire szinte kivétel nélkül jellemző, hogy Microsft SQL szervert használnak, hiszen elterjedt és viszonylat korán megjelent az ingyenes változata. A működtetésükhöz Windows operációs rendszerre van szükség. Mi szembementünk az árral, válünk kihasználhatja Linux szerverét is.]]></description>
			<content:encoded><![CDATA[<p>Az ügyviteli piac dobozos termékeire szinte kivétel nélkül jellemző, hogy Microsoft SQL szervert használnak, hiszen elterjedt és viszonylat korán megjelent az ingyenes változata. A működtetésükhöz Windows operációs rendszerre van szükség. Mi szembementünk az árral, velünk felhasználhatja Linux szerverét is.</p>
<p>Kb. 10 évvel ezelőtt jelentek meg azok az ügyviteli alkalmazások, amelyek hálózatban is működtek és kihasználták az adatbázis szerverek adta lehetőségeket. (Sajnos még jelenleg is eladósorban vannak olyan termékek, amelyek hálózatosak ugyan, de a működésük sokkal inkább hasonlít egy közös mappában megosztott, egyszerre egy felhasználó által írható Excel fájlra!). A fejlesztőcsapatok szinte mindegyike az MsSql szervert választotta, akkor még a 7.0-s változatot. Azóta előreléptek és az egyik legnagyobb (árbevétel szempontból, hála a magas követési díjaknak) ügyviteli gyártó is nemrég tért ár MsSql 2005-re. Még 10 évvel ezelőtt indultak el ezen az úton.</p>
<p>Korábban plusz költséget jelentett, hogy egy cég Windows alapú szervert állítson be ügyvitele és egyéb rendszere működtetéséhez. Gyakran ajánlották, hogy inkább valamelyik kliens munkaállomáson kerüljön telepítésre a szerver. Gondolom, nem kell mondani, hogy ezáltal annak a munkaállomásnak állandóan bekapcsolva kell lennie (vagy reggel és este kötött sorrendben kell a számítógépeket elindítani) és az adatvesztés veszélye többszörösen jelentkezik, hiszen egy felhasználói számítógép könnyebben fertőződik meg vírussal vagy megy tönkre, mint egy szerver célokat szolgáló számítógép.</p>
<p>Akkor is és most is jellemző, hogy &#8220;<strong>Úgyis van egy Windows szerveretek, hiszen most alapítottátok a céget!</strong>&#8221; jellegű mondatok hangzanak el, előfeltétellel élnek arra vonatkozóan, hogy milyen egy cég informatikai felépítése.</p>
<p>Az ilyen jellegű architektúrális kiépítés közel kétszeresése növelheti a bevezetés költségét, hiszen külön számítógépen, speciális szerver operációs rendszert kell üzemeltetni. (Itt ismét felejtsük el azt a félmegoldást, mely szerint valamelyik munkaállomás lesz a szerver!) Ilyen magas bevezetési költségek szembeötlőek, ha az ügyviteli piac dobozos termékeit 5 (esetleg 6) számjegyű összegekből kívánjuk megvásárolni.</p>
<p><img class="aligncenter size-medium wp-image-500" title="linux" src="http://lab.symboltech.hu/wp-content/uploads/2009/09/Linux_Logo-254x300.png" alt="linux" width="254" height="300" /></p>
<p>Akkor is és most is jellemző, hogy valamilyen ingyenes megoldással valósítják meg a szerver számítógépek szoftveres szintjét. Komplett megoldások vannak fájlrendszer, domain-controller, levelező szolgáltatások megvalósítására Linux operációs rendszerrel.</p>
<p>De ezen nem futnak az eddigi ügyviteli rendszerekhez szükséges szerver komponensek!</p>
<p>A <strong>Symbol Ügyvitel</strong> a pendrive-on való egygépes működéstől kezdve, az egygépes, de telepített verzión át, a hálózatos működésig olyan adatbázis szervert használ, amely Windows-on kívül számos operációs rendszerre engedi telepíteni az adatbázis kiszolgálót. A következő operációs rendszereken van Önnek lehetősége kialakítani az adatbázis-környezetet:</p>
<ul>
<li>Linux x86</li>
<li>Linux x86 (+NPTL)</li>
<li>Linux AMD64</li>
<li>MacOSX Intelx86</li>
<li>MacOSX Intelx64</li>
<li>MacOSX Motorola PowerPC</li>
<li>Solaris 10 i386</li>
<li>Solaris 10 AMD64+EMT64</li>
<li>Windows x86</li>
<li>Windows x64 </li>
</ul>
<p>Linux esetében az ajánlott disztribúciók:</p>
<ul>
<li>Red Hat Enterprise Linux</li>
<li>Suse Linux</li>
<li>Mandrake and Mandriva</li>
<li>Ubuntu Server</li>
<li>Debian</li>
<li>Slackware</li>
<li>CentOS</li>
<li>Gentoo</li>
</ul>
<p>Windows esetében az ajánlott generációk:</p>
<ul>
<li>Windows XP 32/64</li>
<li>Windows Vista 32/64</li>
<li>Windows 7</li>
<li>Windows Server 2003</li>
<li>Windows Server 2008</li>
<li>Windows Server 2010</li>
</ul>
<p><em>A lehetőségek sokszínűségével Ön időt és pénzt takaríthat meg!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/09/ha-onnek-linuxos-szervere-van-akkor-is-hasznalhat-symbol-ugyvitelt/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>Amikor a szoftver gyártója írja és terjeszti a vírust &#8211; Win32/Induc</title>
		<link>http://lab.symboltech.hu/2009/08/amikor-a-szoftver-gyartoja-irja-es-terjeszti-a-virust-win32induc/</link>
		<comments>http://lab.symboltech.hu/2009/08/amikor-a-szoftver-gyartoja-irja-es-terjeszti-a-virust-win32induc/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 13:57:39 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[exe]]></category>
		<category><![CDATA[koncepció]]></category>
		<category><![CDATA[vírus]]></category>
		<category><![CDATA[Win32/Induc]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=418</guid>
		<description><![CDATA[Egy érdekes koncepció jelent meg a vírusok egyébként is kacifántos világában. Amikor a szoftver gyártója írja, fordítja és terjeszti a vírust. Terjedési módja nem hagyományos, de be kell látni, hogy működik. A virusok világában egyensúlyi állapot nincs. A fertőzött egyedek száma vagy nő vagy csökken. Ebben az esetben nőtt, de a terjedés módja annyira profán, hogy májusi megjelenése óta csak a héten derült rá fény.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Egy érdekes koncepció jelent meg a vírusok egyébként is kacifántos világában. Amikor a szoftver gyártója írja, fordítja és terjeszti a vírust. Terjedési módja nem hagyományos, de be kell látni, hogy működik. A vírusok világában egyensúlyi állapot nincs. A fertőzött egyedek száma vagy nő vagy csökken. Ebben az esetben nőtt, de a terjedés módja annyira profán, hogy májusi megjelenése óta csak a héten derült rá fény.</p>
<h5>Hogy is működik?</h5>
<p>A Delphi, mint fordítóprogram tartalmazza a fordításkor felhasznált bináris részek (ami miatt egy üres Delphi alkalmazás kb. 320kB) forráskódját is. (Ezt gyakran a programozók ki is szokták használni, például amikor az Igen/Nem kérdést feltevő ablakon nem a YES/NO feliratokat akarják látni). A vírus ezen forrásfájlok közül a SysConst.pas fájlt átírja, kibővíti, majd rögtön le is fordítja a gépen lévő Delphi-vel és .DCU állományt állít elő belőle. Bármilyen lefordított EXE, akár egy piaci termék, akár egy cég belső használatára szánt terméke tartalmazza a vírust és annak terjedéséhez minden rendelkezésre áll. Ha van a gépen Delphi.</p>
<h5 style="text-align: center;"><img class="aligncenter size-full wp-image-420" title="Delphi6" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/Delphi6.jpg" alt="Delphi6" width="450" height="300" /></h5>
<h5>Vesézzük ki egy kicsit, hogy is tud ténylegesen terjedni?</h5>
<p>Valamelyik Delphi-vel foglalkozó szoftverfejlesztő cég (Magyarországon sok ilyen van) feltelepíti a konkurrens cég termékét, amely vírusos. Ezek után az ő termékei is vírusosak lesznek. Ilyen pofon egyszerű?</p>
<h5>Mikor nem tud terjedni a vírus?</h5>
<p>A fenti példa azonban túl speciális. Cégen belül általában a vírus terjedése meg kell, hogy álljon a fejlesztői gépeken, sőt azok között sem tud könnyen terjedni. Általában a fejlesztett programokat forrásfájlokból fordítja le egy fejlesztő. Így az EXE-k nem cserélődnek fejlesztők között. A cég többi munkatársa, akik EXE-ket kap (telepítő készlet, tesztelés, értékesítés, terméktámogatás) pedig általában nem birtokol Delphi-t a gépén.</p>
<h5>Ahogy mi gondoljuk&#8230;</h5>
<p>A korábban írtak szerint a terjedés egyik módja a kis szoftverfejelsztő cégek, akik egymás konkurrens termékeit a fejlesztőkkel próbáltatják ki, táptalajd adva a vírusnak. A másik terjedési mód, ha a Delphi-t gyártó cég teszi közzé a fejlesztőeszköz egy vírusos példányát. A legvalószínübb azonban, hogy valamilyen &#8220;Harmadik gyártó (3rd party)&#8221; eszközének telepítése során kerül rá a fejlesztői gépre a vírusos tool. De a terjedésnek itt is meg kellene szakadnia. Mégsem így történik.</p>
<h5 style="text-align: center;"><img class="aligncenter size-medium wp-image-421" title="veszelyesvirus" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/veszelyesvirus-300x225.jpg" alt="veszelyesvirus" width="300" height="225" /></h5>
<h5>Néhány technikai adat, félelemkeltés helyett</h5>
<p><strong>Szükséges Delphi verziók:</strong> D4, D5, D6 vagy D7. BDS vagy Delphi for .NET nem alkalmas erre.</p>
<p><strong>Csak koncepció: </strong>A vírus kárt nem okoz, a terjedés módszerének igazolására készült.</p>
<p><strong>Magyarországon csak egy:</strong> Hazákban állítólag csak egy helyen jelent meg, és mivel terjedése lassú, nem várható nagy fertőzés.</p>
<p><strong>Víruskeresők már ismerik:</strong> Pár napja a víruskeresők már felismerik a kártékony kódot. Mindezt abban a pillanatban, amikor a fejlesztő az EXE-t előállítja. Pontosabban amikor nem állítja elő, mert a víruskereső karanténba zárja azt.</p>
<p><strong>Microsoft .NET:</strong> A .NET-re a vírus veszélytelen, a közös kódrészletek mind az operációs rendszer részei (illetve a futtatókörnyezet részei), ilyen jellegű kódelhelyezésre nincs lehetőség.</p>
<p><em>Cégünk termékei a fenti jellemzők miatt nem tartalmazhatják a vírust</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/08/amikor-a-szoftver-gyartoja-irja-es-terjeszti-a-virust-win32induc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A külcsín is fontos egy ügyviteli rendszernél &#8211; MacOS skin és társai</title>
		<link>http://lab.symboltech.hu/2009/08/a-kulcsin-is-fontos-egy-ugyviteli-rendszernel-macos-skin-es-tarsai/</link>
		<comments>http://lab.symboltech.hu/2009/08/a-kulcsin-is-fontos-egy-ugyviteli-rendszernel-macos-skin-es-tarsai/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 09:12:41 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[bőr]]></category>
		<category><![CDATA[fekete]]></category>
		<category><![CDATA[kék]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[skin]]></category>
		<category><![CDATA[ügyvitel]]></category>
		<category><![CDATA[új hullám]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=393</guid>
		<description><![CDATA[Nagy figyelmet fordítunk arra, hogy az általunk fejlesztett ügyviteli rendszer ne csak működésében, de kinézetében is munkára ösztönző legyen, kedvet kapjon az ember a napi feladatai elvégzéséhez. Egy irodai alkalmazás nem a szórakozást szolgálja, legyen az ablakoknak sarka! De mégis varázsolhasson egy kicsit a felhasználó!]]></description>
			<content:encoded><![CDATA[<p>Nagy figyelmet fordítunk arra, hogy az általunk fejlesztett ügyviteli rendszer ne csak működésében, de kinézetében is munkára ösztönző legyen, kedvet kapjon az ember a napi feladatai elvégzéséhez. Egy irodai alkalmazás nem a szórakozást szolgálja, legyen az ablakoknak sarka! De mégis varázsolhasson egy kicsit a felhasználó!</p>
<p>Évekkel ezelőtt nem értettük, hogy miért &#8220;éri meg&#8221; egy nem operációs rendszerbeli programmal elváltoztatni azt a kinézetet, amit nagy cégek verejtékes munkával összeraktak. <strong>De már tudjuk, hogy mindenki egy kicsit egyedit szeretne, kicsit szeretné a sajátjának érezni a számítógépet abban a 8 órában, amig előtte ül.</strong></p>
<p>Pár hónappal ezelőtt ezért határoztuk el, hogy minden rendszerünkben a felhasználó testreszabhatja a kinézetet. Kicserélheti a háttérképet, beillesztheti a háttérbe gyermekét, kutyáját vagy akár ellenségét&#8230;</p>
<p style="text-align: center;"><a href="http://www.symboltech.hu/ugyvitel/kepernyo/" target="_blank">További képernyőket nézhetünk meg ide kattintva!</a></p>
<p> </p>
<p>Ezen kívül pedig választhat számos előredefiniált kinézet közül. Lássuk, mit láthatunk!</p>
<p><strong>MacOS</strong></p>
<p> 
<a href="http://lab.symboltech.hu/wp-content/gallery/skins/macosskin.png" title="" class="shutterset_singlepic7" >
	<img class="ngg-singlepic" src="http://lab.symboltech.hu/wp-content/gallery/cache/7_web20_640x480_macosskin.png" alt="macosskin" title="macosskin" />
</a>
</p>
<p><strong>&#8220;Új hullám&#8221;</strong></p>

<a href="http://lab.symboltech.hu/wp-content/gallery/skins/newwaveskin_0.png" title="" class="shutterset_singlepic10" >
	<img class="ngg-singlepic" src="http://lab.symboltech.hu/wp-content/gallery/cache/10_web20_640x550_newwaveskin_0.png" alt="newwaveskin_0" title="newwaveskin_0" />
</a>

<p><strong>A Sötét iroda bűvöletében</strong></p>

<a href="http://lab.symboltech.hu/wp-content/gallery/skins/blackofficeskin.png" title="" class="shutterset_singlepic6" >
	<img class="ngg-singlepic" src="http://lab.symboltech.hu/wp-content/gallery/cache/6_web20_640x550_blackofficeskin.png" alt="blackofficeskin" title="blackofficeskin" />
</a>

<p><strong>Mi mindenből lehet választani&#8230;</strong></p>

<a href="http://lab.symboltech.hu/wp-content/gallery/skins/selectskin.png" title="" class="shutterset_singlepic9" >
	<img class="ngg-singlepic" src="http://lab.symboltech.hu/wp-content/gallery/cache/9_web20_640x550_selectskin.png" alt="selectskin" title="selectskin" />
</a>

<p><em>Nemsokára megjelenik Windows7 (seven) operációs rendszert idéző kinézetünk is&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/08/a-kulcsin-is-fontos-egy-ugyviteli-rendszernel-macos-skin-es-tarsai/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenOffice is ribbonra vált, Microsoft már a Ribbon 2.0-t készíti</title>
		<link>http://lab.symboltech.hu/2009/08/openoffice-is-ribbonra-valt-microsoft-mar-a-ribbon-2-0-t-kesziti/</link>
		<comments>http://lab.symboltech.hu/2009/08/openoffice-is-ribbonra-valt-microsoft-mar-a-ribbon-2-0-t-kesziti/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 10:57:31 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[openoffice]]></category>
		<category><![CDATA[ribbon]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=376</guid>
		<description><![CDATA[Nemrég jelent meg egy hír arról, hogy az OpenOffice-t fejlesztő Sun is egy olyan műveletgombokat tartalmazó eszköztárat készít, mint évekkel ezelőtt a Microsoft.]]></description>
			<content:encoded><![CDATA[<p>Nemrég jelent meg egy hír arról, hogy az OpenOffice-t fejlesztő Sun is egy olyan műveletgombokat tartalmazó eszköztárat készít, mint évekkel ezelőtt a Microsoft.</p>
<p><a href="http://blogs.sun.com/GullFOSS/entry/prototyping_a_new_ui_july">http://blogs.sun.com/GullFOSS/entry/prototyping_a_new_ui_july</a></p>
<p><img class="aligncenter size-medium wp-image-377" title="OpenOffice GUI" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/778px-Prototype-300x231.jpg" alt="OpenOffice GUI" width="300" height="231" /></p>
<p>Ez csak prototípus, nem végleges, ebben a formájában még nem felhasználóbarát. De emlékeztet az MS Office hasonló célú eszköztárára. Számos felhasználó már aggályát fejezte ki, hogy &#8220;ez egy gyilkos tulajdonság&#8221;. De ha a Sun is belemegy a GUI játékba, akkor nem lehet annyira rossz az elképzelés. Mivel a funkció csak 6-os JAVA verzióval érhető el, nem tudjuk, hogy mennyire lesz a Java keretrendszer része a ribbon. Ha a Java része lesz, akkor minden Microsoft alkalmazás felkötheti a gatyáját, hiszen robbanásszerűen fognak elterjedni az ilyen Java-s alkalmazások. Már ha a felhasználók nem aggályoskodnak tovább&#8230;</p>
<p>Közben a Microsoft az Office 2010 termékismertetőjében már a Ribbon továbbfejlesztéséről beszélt, néhány képpel szeretnénk is bemutatni, mire is gondoltak és milyen lesz a Ribbon v2.0.</p>
<p><img class="aligncenter size-medium wp-image-379" title="msribbon2" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/msribbon2-300x217.png" alt="msribbon2" width="300" height="217" /></p>
<p><img class="aligncenter size-medium wp-image-378" title="msribbon1" src="http://lab.symboltech.hu/wp-content/uploads/2009/08/msribbon1-300x154.jpg" alt="msribbon1" width="300" height="154" /></p>
<p><em>Felhasználóink már értesülhettek róla, hogy cégünk is adoptálja a v2.0-ás ribbon funkciókat és termékeink ősszel megjelenő verzióiban követjük a trendet, amit elkezdtünk: </em><a href="http://www.symboltech.hu/features/szalag/"><em>http://www.symboltech.hu/features/szalag/</em></a><em> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/08/openoffice-is-ribbonra-valt-microsoft-mar-a-ribbon-2-0-t-kesziti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Még mindig nagyon gyenge a .NET Entity Framework 4.0 béta</title>
		<link>http://lab.symboltech.hu/2009/08/meg-mindig-nagyon-gyenge-a-net-entity-framework-4-0-beta/</link>
		<comments>http://lab.symboltech.hu/2009/08/meg-mindig-nagyon-gyenge-a-net-entity-framework-4-0-beta/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 06:45:52 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[adatbázis]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[entity]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=371</guid>
		<description><![CDATA[Találós kérdéssel indítok. Tehát mire gondoltam? ]]></description>
			<content:encoded><![CDATA[<p>Találós kérdéssel indítok. Tehát mire gondoltam?</p>
<p>Mindenki nagyon várja. Marketingre sokat költ a Microsoft. A fejlesztői portálok tele vannak vele, mert remek eszköz. Nem a megjelenítést szolgálja, azaz nem GUI. Mindenki használja. Mindenki meg van vele elégedve. Mindenki szidja. Mindenki mondja, hogy nem baj, a következő releaseben megoldják. Nagyon gyorsan, akár félévente jön ki belőle új release. Adatbázissal kapcsolatos. Adatbázist érünk el vele.</p>
<p> </p>
<p>Igen, kitalálhattátok, hogy <strong>EntityFramework</strong>. Témánál vagyunk.</p>
<p>Megjelent a 4.0 béta és az alábbi bejegyzést döbbenten olvastam. Itt kell tartani egy termék 4.0-s verziójával? Ezek a nagy előrelépések a 3.0-hoz képest? A cikk<a href="http://blogs.msdn.com/adonet/archive/2009/08/05/improvements-to-the-generated-sql-in-net-4-0-beta1.aspx" target="_blank"> itt olvasható</a>.</p>
<p>Nézzük megy egy kicsit jobban, mire is gondoltam, amikor a döbbenet szót használtam. Kollégáim már tudják mire gondolok, de tudja meg más is!</p>
<ul>
<li>Egy ilyen készültségi szinten lévő projektben kell olyan optimalizációs lépéseket megtenni, minthogy nem hoz le minden oszlopot egy subselect, csak ami kell nekünk?</li>
<li>COUNT(1) nyelvi elem direkt használata, amikor az a célszerű.</li>
<li>A legnagyobb, az IN SELECT. Komolyan gondolja valaki, hogy a 4.0-ig kell várni egy kliens oldalon is jelenlévő adatstruktúra (tömb) és SQL oldalon is elérhető nyelvi konstrukció (WHERE xx IN (x,y,z&#8230;)) összekapcsolására?</li>
</ul>
<p>Igen, emiatt van tele minden fejlesztői portál olyan jellegű kérdésekkel, hogy &#8220;Hogy tudok két táblát összekapcsolni LINQ-ban, EntityFramework-kel?&#8221; Ezek szerint nem segítség, hanem csak egy hozzászoktató eszköz, ami függőséget okoz és ha függő lettél, akkor minden fejlesztéshez a megrendelővel vetetni fogsz MsSQL Server 2010-et, supporttal, majd kell még 5 profi kolléga, aki natív SQL-hez nem ért, de kiválóan függő EntityFramework-kel.</p>
<p><em>A saját, fentihez hasonlító dolgokat megvalósító keretrendszserünk első bétája ennél sokkal több dolgot valósított meg. Mert a való életre próbáltuk alkalmazni és a tervezéskor használt use-case-ek a tapasztalatból táplálkoztak.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/08/meg-mindig-nagyon-gyenge-a-net-entity-framework-4-0-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adatkötés .NET módra &#8211; nem eléggé rugalmas</title>
		<link>http://lab.symboltech.hu/2009/07/adatkotes-net-modra-nem-elegge-rugalmas/</link>
		<comments>http://lab.symboltech.hu/2009/07/adatkotes-net-modra-nem-elegge-rugalmas/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 10:05:42 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[currencymanager]]></category>
		<category><![CDATA[databinding]]></category>
		<category><![CDATA[gyűjtemény]]></category>
		<category><![CDATA[property]]></category>
		<category><![CDATA[propertymanager]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=326</guid>
		<description><![CDATA[Azt nem kell senkinek ecsetelnem, hogy a .NET-et adatkötés, a DataBinding mennyire nagy szolgálatot tesz, mennyire megkönnyíti az objektumok és felhasználói felületek összekötését, a kapcsolat tipusos kezelését. De mégis belefutottunk tegnap egy hiányosságba és 4 munkaórányi problémamegoldás után el kellett vetnünk tervünket, más megoldást kellett keresni.]]></description>
			<content:encoded><![CDATA[<p>Azt nem kell senkinek ecsetelnem, hogy a .NET-et adatkötés, a DataBinding mennyire nagy szolgálatot tesz, mennyire megkönnyíti az objektumok és felhasználói felületek összekötését, a kapcsolat tipusos kezelését. De mégis belefutottunk tegnap egy hiányosságba és 4 munkaórányi problémamegoldás után el kellett vetnünk tervünket, más megoldást kellett keresni.</p>
<p>Az adatkötésben van egy kis automatizmus, mégpedig az, hogy a rendszer egy vezérlőhöz (UI elem) történő adatkötés során megpróbálja kitalálni, hogy melyik adatkötési mechanizmust akarjuk használni. Egészen pontosan, ha egy <code>TextEdit</code>-hez szeretnénk egy property-t kötni, akkor két dolog történhet.</p>
<ol>
<li><strong>Amennyiben a forrás objektum egy &#8220;sima&#8221; objektum</strong>, úgy az adatkötés a megnevezett (stringként átadott) property-hez megtörténik. Ha jól paramétereztük fel az adatkötést, akkor a beviteli mező változása a property-ben rögtön megjelenik és vica-versa.</li>
<li><strong>Ha a forrás objektum valamilyen gyűjtemény</strong> (<code>IList, IBindingList, Array</code>), akkor a megnevezett property, amihez kötni szeretnénk a gyűjtemény elemeiben kell, hogy létezzen. És az adatkötés is ide történik. List&lt;Customer&gt;-hez való adatkötésnél például a &#8220;<code>Name</code>&#8221; propertynek a <code>Customer </code>osztályban kell léteznie. Ilyenkor (gyűjtemény esetén) a gyűjtemény elemét vizsgálja a databinding és ott keresi a property-t.</li>
</ol>
<p>Ez utóbbi teljesen kézenfekvő, hiszen ha egy listát akarunk valahova kötni, akkor a lista egy oszlopát akarjuk valahova kötni. Első esetben egy <code>PropertyManager </code>jön létre, utóbbi esetben pedig egy <code>CurrencyManager</code>. Mindkettőn értelmezett a lépkedés, de az elsőn nincs nagyon értelme.</p>
<p><img class="aligncenter size-full wp-image-329" title="binding" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/simple_binding.jpg" alt="binding" width="262" height="250" /></p>
<p><strong>A mi problémánk viszont a következő.</strong> Nem tudjuk befolyásolni, nem tudjuk elérni, hogy egy gyűjtemény típusú forrás objektum adott property-jéhez kössünk vezérlőt. Egy listának is van <code>Count</code>-ja. Ehhez nem tudtunk hozzákötni mondjuk egy Label-t, mert az adatkötés problémaként adta vissza nekünk, hogy a <code>Customer </code>objektumnak nincs <code>Count</code>-ja. De nem is oda akartunk kötni!!!</p>
<p>A probléma megoldása abban rejlik, hogy a property nevét nem szabad kitölteni. Ez már amolyan vicces dolog, hogy egy &#8220;változó&#8221; megadok a rá való hivatkozással, majd/és opcionálisan még stringként is hozzáírhatom a metódushoz a &#8220;változó&#8221; nevét.</p>
<p><span style="color: #339966;"><strong>Jó megoldás: <code>label.DataBindigs.Add("Text", list.Count, "")</code></strong></span><br />
<span style="color: #ff0000;"><em>Nem jó megoldás: <code>label.DataBindigs.Add("Text", list, "Count")</code></em></span></p>
<p>Hmm, állítólag WPF-ben az adatkötés jobb. Nemsokára úgyis indul egy WPF-es koncepció-projektünk, majd kiderül&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/adatkotes-net-modra-nem-elegge-rugalmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RTF normalizálás &#8211; vissza-visszatérő fájlformátumok</title>
		<link>http://lab.symboltech.hu/2009/07/rtf-normalizalas-vissza-visszatero-fajlformatumok/</link>
		<comments>http://lab.symboltech.hu/2009/07/rtf-normalizalas-vissza-visszatero-fajlformatumok/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 07:14:44 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[maszk]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[rtf]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=313</guid>
		<description><![CDATA[Régen elfeledett formátumok térnek vissza néha-néha. Mekkora találmány volt régen (állítólag 1987-ben) az RTF formátum. Elfeledtük azóta, mindenhol a HTML, XHTML, XML a divat. Most újra elővettük egy projektünk erejéig és bele is futottunk egy feladatba. De pont ezért dolgozunk itt, kihívásokra várunk.]]></description>
			<content:encoded><![CDATA[<p>Régen elfeledett formátumok térnek vissza néha-néha. Mekkora találmány volt régen (állítólag 1987-ben) az RTF formátum. Elfeledtük azóta, mindenhol a HTML, XHTML, XML a divat. Most újra elővettük egy projektünk erejéig és bele is futottunk egy feladatba. De pont ezért dolgozunk itt, kihívásokra várunk.</p>
<p>Ügyfelünk dokumentumokat szeretne készíteni úgy, hogy azokat dolgozóadatokkal tölti fel. Ne kelljen az újonnan belépő dolgozónak word-ben megszerkeszteni a belépőkártya igénylő lapját, a munkaidőnyilvántartó lapját. És még sorolhatnánk&#8230;</p>
<p>Office dokumentumok kicsit nehézkesen kezelhetőek, célunk volt, hogy az adatok behelyettesítése után a lapok elküdhetőek legyenek a nyomtatón kívül PDF-be, vágólapra, stb. Ezért jött az ötlet, legyen RTF. Van jól használható RTF editorunk, abban a felhasználó a dokumentumait elkészíti, adatbázisban tárolhatja. Persze elhelyez benne helyettesítő maszkokat: #NEV#, #SZULDATUM#. (Ezek formátuma a régi rendszerről való átállás miatt kötött volt).</p>
<p><img class="aligncenter size-medium wp-image-324" title="document" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/document-300x174.jpg" alt="document" width="300" height="174" /></p>
<p>A projekt ezen része elkészült, az adatok a megfelelő algoritmus szerint cserélődtek, a #NEV# helyére bekerült a dolgozó neve és így tovább. A tesztek során kiderült, hogy átlagos felhasználás (nem programozói, azaz laboratóriumi környezetben) a maszkok kicserélése nem is megy olyan szépen, mint azt hittük. Kiderült a turpisság: Ahogy a felhasználó szerkeszti a szöveget és néha-néha visszatöröl, újra beleír, az RTF szerkesztő új szekciót nyit neki az RTF forrásban. A megjelenítést ez nem befolyásolja, de a cserénél előfordul, hogy a szöveget nem tudjuk cserélni, mert a #NEV# maszk 3 részre bomlott és <strong>#N</strong>, <strong>EV</strong> és <strong>#</strong> lett belőle. String.Replace() pedig csak nevetett rajtunk.</p>
<p>Normalizálnunk kellett az RTF-et. Egy teljes RTF értelmezőt (szétbontó, építő) írni nem lett vona kivitelezhető, tekintve a projekt ezen moduljának költségvetését. Azonban egy minimális korrekciós algoritmus belefért, amely az egymás után következő, egyformán formázott elemeket összevonja eggyé:</p>
<p><code>{\f1\cf0 <strong><span style="text-decoration: underline;">Ar</span></strong>}{\f1\cf0 <span style="text-decoration: underline;"><strong>ra</strong> <strong>szeretnék</strong></span>}{\f1\cf0 <strong><span style="text-decoration: underline;">rámuta</span></strong>}{\f1\cf0 <strong><span style="text-decoration: underline;">tni</span></strong>}</code></p>
<p>Tervezésünket siker koronázta, végre megmozgattuk SQL parancsokban ellaposodott, algoritmikus &#8220;agyféltekénket&#8221; is.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/rtf-normalizalas-vissza-visszatero-fajlformatumok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Office 2010 &#8211; felkészülés</title>
		<link>http://lab.symboltech.hu/2009/07/office-2010-felkeszules/</link>
		<comments>http://lab.symboltech.hu/2009/07/office-2010-felkeszules/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 16:37:11 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[sharepoint]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=308</guid>
		<description><![CDATA[Cégünk megkezdte az Office 2010 rendszerrel való együttműködésre való felkészülést.]]></description>
			<content:encoded><![CDATA[<p>Cégünk megkezdte az Office 2010 rendszerrel való együttműködésre való felkészülést.</p>
<p>Sok energiát fektetünk abba, hogy minél jobban kiismerjük a rendszer újdonságait és ezeket a jövőben ki is tudjuk használni. Rendszereink kompatibilisek maradnak a korábbi Office verziókkal is, de terveink szerint számos új lehetőséget fogunk felhasználni következő programverzióinkban.</p>
<p><img class="aligncenter size-medium wp-image-309" title="office2010" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/office2010-300x198.png" alt="office2010" width="300" height="198" /></p>
<p>Egy nagyon jó marketing film (úgynevezett trailer) érhető el <a href="http://www.office2010themovie.com/" target="_blank">itt</a>.</p>
<p>Felhasználói szintű információkat tett közzé a Microsoft az <a href="http://www.microsoft.com/office/2010/" target="_blank">alábbi oldalon</a>.</p>
<p>Sharepoint 2010 sokkal szakmaibb szemmel (úgynevezett sneak videón) az <a href="http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/default.aspx" target="_blank">alábbi linken</a>.</p>
<p>Igazán nagy kihívás lesz számunkra, hogy ezeket az eszközöket a hazai környezetbe illesszük, tekintettel az itthoni cégek finanszírozási kérdéseire és nem utolsó sorban az újdonságtól való &#8220;félelem&#8221; leküzdésére.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/office-2010-felkeszules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ha várni kell a Windowsban &#8211; A jó öreg homokóra</title>
		<link>http://lab.symboltech.hu/2009/07/ha-varni-kell-a-windowsban-a-jo-oreg-homokora/</link>
		<comments>http://lab.symboltech.hu/2009/07/ha-varni-kell-a-windowsban-a-jo-oreg-homokora/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 08:13:56 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[forráskód]]></category>
		<category><![CDATA[homokóra]]></category>
		<category><![CDATA[hourglass]]></category>
		<category><![CDATA[idisposable]]></category>
		<category><![CDATA[várakozás]]></category>
		<category><![CDATA[waitcursor]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=293</guid>
		<description><![CDATA[Gyakran fordul elő, hogy homokórát kell megjelenítenünk, mert valamilyen művelet hosszabb időt vehet igénybe. A felhasználó pedig várakozzon, ahelyett, hogy a beviteli mezőket próbálja szerkeszteni vagy a gombokat működésre bírni.]]></description>
			<content:encoded><![CDATA[<p>Gyakran fordul elő, hogy homokórát kell megjelenítenünk, mert valamilyen művelet hosszabb időt vehet igénybe. A felhasználó pedig várakozzon, ahelyett, hogy a beviteli mezőket próbálja szerkeszteni vagy a gombokat működésre bírni.</p>
<p>Régebbi programozási nyelvekben (Delphi, FoxPro) a hosszú műveletek automatikusan beállították a homokóra üzemmódot. Viszont nem kezelték jól a beágyazott műveleteket, azaz 10 darab SELECT végrehajtása egymás után 10 homokórás villogást eredményezett. Ez a mai világban inkább szégyenletes, mint felhasználóbarát.</p>
<p> </p>
<p>Ezt a problémát oldottuk meg az alábbi kódrészlettel:</p>
<pre>using System;
using System.Windows.Forms;</pre>
<pre>namespace SymbolTech.Common
{
    public class WaitCursor : IDisposable
    {
        private static int waitcursorlevel = 0;

        public WaitCursor()
        {
            waitcursorlevel++;
            if (waitcursorlevel &gt; 0)
                Cursor.Current = Cursors.WaitCursor;
        }

        public void Dispose()
        {
            waitcursorlevel--;
            if (waitcursorlevel == 0)
                Cursor.Current = Cursors.Default;
        }
    }
}</pre>
<p>Minden (hosszabb) műveletet beágyazunk egy <code>using(new WaitCursor()) </code>blokkba. Ezzel a következő előnyöket érjük el:</p>
<ol>
<li>A műveletek minden esetben &#8220;homokórázni&#8221; fognak.</li>
<li>A beágyazott műveletek (külső blokk már homokórában dolgozik, a belső, mondjuk 100 iteráció is bekapcsolja a homkórát) nem fogják villogtatni a kurzort.</li>
<li>Véletlenül sem felejtjük el visszakapcsolni az alapértelmezett kurzort, amennyiben a műveletek végrehajtásra kerültek.</li>
</ol>
<p> </p>
<p>Lássunk egy példát, a használatára:</p>
<pre>        private void DummyMethod()
        {
            using (new WaitCursor())
            {
                Thread.Sleep(100);
            }
        }</pre>
<pre>        private void button1_Click(object sender, EventArgs e)
        {
            using (new WaitCursor())
            {
                Thread.Sleep(500);
                for (int i = 0; i &lt; 10; i++)
                    DummyMethod();
            }
        }</pre>
<p>A példában egy beágyazott, többször (10x) végrehajtott műveletet látunk, amelyek összességében 1.5mp-re átkapcsolnak homokórára, de közben nem villog a kurzor.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/ha-varni-kell-a-windowsban-a-jo-oreg-homokora/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TabCsapda &#8211; hol a kurzor?</title>
		<link>http://lab.symboltech.hu/2009/07/tabcsapda-hol-a-kurzor/</link>
		<comments>http://lab.symboltech.hu/2009/07/tabcsapda-hol-a-kurzor/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 18:35:55 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[szoftverkiadás]]></category>
		<category><![CDATA[taborder]]></category>
		<category><![CDATA[tesztelés]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=291</guid>
		<description><![CDATA[Tesztelő csapatunk fura hibával állt elő, nemsokára megjelenő program release-ünk áttekintésekor. A TAB-bal való navigáció - amely a Win95 környékén jelenhetett meg és minden felhasználó hozzászokott az elmúlt 15 évben - valahol elveszti működését és megáll.]]></description>
			<content:encoded><![CDATA[<p>Tesztelő csapatunk fura hibával állt elő, nemsokára megjelenő program release-ünk áttekintésekor. A TAB-bal való navigáció &#8211; amely a Win95 környékén jelenhetett meg és minden felhasználó hozzászokott az elmúlt 15 évben &#8211; valahol elveszti működését és megáll.</p>
<p>A GridControl volt a hibás, ugyanis furcsa működéséből adódóan egy táblázatban is lehet tabbal lépkedni, vagy a sorok vagy a cellák között és amikor a végére érünk, nem tudunk merre menni. Nem is tudom, hogy miért ez az alapértelmezett működés, de kikapcsoltuk. Sok dolgunk nem volt, 2 (!!!) sort kellett a megfelelő helyen adaptálni és az összes termékünk következő kiadásában megjelenik a TabCsapda elleni megoldás.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/tabcsapda-hol-a-kurzor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kivételek típusai &#8211; melyiket dobjam?</title>
		<link>http://lab.symboltech.hu/2009/07/kivetelek-tipusai-melyiket-dobjam/</link>
		<comments>http://lab.symboltech.hu/2009/07/kivetelek-tipusai-melyiket-dobjam/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 09:49:55 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[fejlesztés]]></category>
		<category><![CDATA[forráskód]]></category>
		<category><![CDATA[kivétel]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=275</guid>
		<description><![CDATA[A kivételkezelés alatt sok fejlesztő a catch ág megvalósítását gondolja, de ugyanolyan fontos a kivételek eldobása is. Nem szabad azzal megelégedni, hogy dobunk egy ApplicationException-t, sokkal precízebb, ha a típusos esetekben (rossz paraméter, nem jó képformátum) a beépített kivételosztályokat használjuk.]]></description>
			<content:encoded><![CDATA[<p>A kivételkezelés alatt sok fejlesztő a catch ág megvalósítását gondolja, de ugyanolyan fontos a kivételek eldobása is. Nem szabad azzal megelégedni, hogy dobunk egy ApplicationException-t, sokkal precízebb, ha a típusos esetekben (rossz paraméter, nem jó képformátum) a beépített kivételosztályokat használjuk.</p>
<p>Lássuk, mik ezek:</p>
<table border="0" width="100%" bgcolor="#ffffff" bordercolor="#c0c0c0">
<tbody>
<tr bgcolor="#f0f0f0">
<td width="319"><strong>Kivétel osztály</strong></td>
<td width="528"><strong>Kiváltás oka</strong></td>
</tr>
<tr>
<td width="319"><strong>SystemException </strong></td>
<td width="528">Futásidejű hiba, a kivételes ősosztálya</td>
</tr>
<tr>
<td width="319"><strong>AccessException </strong></td>
<td width="528">Egy típus elemeléréseinek hibája (metódus, mező, property)</td>
</tr>
<tr>
<td width="319"><strong>ArgumentException </strong></td>
<td width="528">Metódushívás esetén hibás paraméter</td>
</tr>
<tr>
<td width="319"><strong>ArgumentNullException </strong></td>
<td width="528">Metódushívás esetén null paraméter, ha azt a metódus nem tudja kezelni</td>
</tr>
<tr>
<td width="319"><strong>ArgumentOutOfRangeException </strong></td>
<td width="528">Paraméter értéke adott határokon kívül esik</td>
</tr>
<tr>
<td width="319"><strong>ArithmeticException </strong></td>
<td width="528">&#8220;Matematikai&#8221; hiba</td>
</tr>
<tr>
<td width="319"><strong>ArrayTypeMismatchException </strong></td>
<td width="528">Típusos tömbön végzett művelet egy idegen típussal</td>
</tr>
<tr>
<td width="319"><strong>BadImageFormatException </strong></td>
<td width="528">Rossz képformátum</td>
</tr>
<tr>
<td width="319"><strong>CoreException </strong></td>
<td width="528">Futásidejű kivételes ősosztálya</td>
</tr>
<tr>
<td width="319"><strong>DivideByZeroException</strong></td>
<td width="528">Nullával való osztás</td>
</tr>
<tr>
<td width="319"><strong>FormatException </strong></td>
<td width="528">Argumentum formátuma nem helyes (pl: String.Format)</td>
</tr>
<tr>
<td width="319"><strong>IndexOutOfRangeException</strong></td>
<td width="528">Tömb indexelése túlmutat a határokon</td>
</tr>
<tr>
<td width="319"><strong>InvalidCastExpression </strong></td>
<td width="528">Futásidejű Cast művelet nem hajtható végre</td>
</tr>
<tr>
<td width="319"><strong>InvalidOperationException </strong></td>
<td width="528">Nem megfelelő (idejű?) művelet hívása</td>
</tr>
<tr>
<td width="319"><strong>MissingMemberException </strong></td>
<td width="528">DLL verziószám ütközés, eltérés metódushívás közben</td>
</tr>
<tr>
<td width="319"><strong>NotFiniteNumberException </strong></td>
<td width="528">Nem valós szám (decimal, float; NaN, Infinity)</td>
</tr>
<tr>
<td width="319"><strong>NotSupportedException </strong></td>
<td width="528">Nem létező metódus hívása (reflection?)</td>
</tr>
<tr>
<td width="319"><strong>NullReferenceException </strong></td>
<td width="528">NULL értékű változó által hivatkozott objektum elérése</td>
</tr>
<tr>
<td width="319"><strong>OutOfMemoryException </strong></td>
<td width="528">Memória elfogyás</td>
</tr>
<tr>
<td width="319"><strong>StackOverflowException </strong></td>
<td width="528">Verem műveletek memória elfogyása (rekurízió)</td>
</tr>
</tbody>
</table>
<p>A fenti lista számos lehetőséget kínál a fejlesztőknek a megfelelő kivétel eldobásában. Ezek használata nagyban megkönnyíti a hibakezelést és hibakeresést, a metódus írója pedig publikálhatja, hogy mit várt és mit kapott.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/kivetelek-tipusai-melyiket-dobjam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Egyedi sorosítás &#8211; IXMLSerializable megvalósítás</title>
		<link>http://lab.symboltech.hu/2009/07/egyedi-sorositas-ixmlserializable-megvalositas/</link>
		<comments>http://lab.symboltech.hu/2009/07/egyedi-sorositas-ixmlserializable-megvalositas/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 09:30:14 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[dictionary]]></category>
		<category><![CDATA[forráskód]]></category>
		<category><![CDATA[ixmlserializable]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[sorosítás]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=268</guid>
		<description><![CDATA[C#, remek nyelv. Szinte mindent lehet sorosítani, XML-be menteni. Nem is kell kézzel ezeket megírni, összerakni. De egy pár dolog kimaradt. Talán oka is van, hogy miért, de ez nem lényeg. A lényeg, hogy meg lehet valósítani.]]></description>
			<content:encoded><![CDATA[<p><strong>C#, remek nyelv.</strong> Szinte mindent lehet sorosítani, XML-be menteni. Nem is kell kézzel ezeket megírni, összerakni. De egy pár dolog kimaradt. Talán oka is van, hogy miért, de ez nem lényeg. A lényeg, hogy meg lehet valósítani.</p>
<p>A generic List&lt;&gt;-et lehet sorosítani, de előtte kell egy plusz származtatási szinten készíteni. Dictionary&lt;T,U&gt;-t nem lehet. De van megoldás. Csináljunk egy sorosítható Dictionary-t.</p>
<pre>    [XmlRoot("Dictionary")]
    public class SerializableDictionary&lt;TKey, TValue&gt; : IXmlSerializable
    {
        public XmlSchema GetSchema()
        {
            return null;
        }</pre>
<pre>        public void ReadXml(XmlReader reader)
        {
            XmlSerializer keySerializer = new XmlSerializer(typeof(TKey));
            XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue));</pre>
<pre>            bool wasEmpty = reader.IsEmptyElement;</pre>
<pre>            reader.Read();</pre>
<pre>            if (wasEmpty)
                return;</pre>
<pre>            while (reader.NodeType != XmlNodeType.EndElement)
                try
                {
                    reader.ReadStartElement("Item");
                    reader.ReadStartElement("Key");
                    TKey key = (TKey)keySerializer.Deserialize(reader);
                    reader.ReadEndElement();</pre>
<pre>                    reader.ReadStartElement("Value");
                    TValue value = (TValue)valueSerializer.Deserialize(reader);
                    reader.ReadEndElement();</pre>
<pre>                    reader.ReadEndElement();</pre>
<pre>                    reader.MoveToContent();</pre>
<pre>                    this.Add(key, value);
                }
                catch { }
            reader.ReadEndElement();
        }</pre>
<pre>        public void WriteXml(XmlWriter writer)
        {
            XmlSerializer keySerializer = new XmlSerializer(typeof(TKey));
            XmlSerializer valueSerializer = new XmlSerializer(typeof(TValue));</pre>
<pre>            foreach (TKey key in this.Keys)
            {
                writer.WriteStartElement("Item");
                writer.WriteStartElement("Key");
                keySerializer.Serialize(writer, key);
                writer.WriteEndElement();</pre>
<pre>                writer.WriteStartElement("Value");
                TValue value = this[key];
                valueSerializer.Serialize(writer, value);
                writer.WriteEndElement();</pre>
<pre>                writer.WriteEndElement();
            }
        }
    }</pre>
<p>Ahogy látható, csak a saját szintünket kell megvalósítani, a TKey és TValue elemek sorosításával már a saját osztályuk foglalkozik. Extrém eset ha a TValue is egy sorosítható Dictionary (valós példát nem tudunk jelenleg mondani), ilyenkor ennek az objektumnak a sorosításakor szintén a fenti algoritmus fog lefutni.</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/egyedi-sorositas-ixmlserializable-megvalositas/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>
		<item>
		<title>Windows 7 tálca újdonságai &#8211; fejlesztői szemmel</title>
		<link>http://lab.symboltech.hu/2009/07/windows-7-talca-ujdonsagai-fejlesztoi-szemmel/</link>
		<comments>http://lab.symboltech.hu/2009/07/windows-7-talca-ujdonsagai-fejlesztoi-szemmel/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 12:43:02 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[folyamatjelző]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[tálca]]></category>
		<category><![CDATA[windows7]]></category>
		<category><![CDATA[WindowsApiCodecPack]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=200</guid>
		<description><![CDATA[Napvilágot látott (le is tölthető, meg is vásárolható lassan) a Microsoft új operációs rendszere, amely felhasználói szemmel újdonság, fejlesztői szemmel kihívás.]]></description>
			<content:encoded><![CDATA[<p>Napvilágot látott (le is tölthető, meg is vásárolható lassan) a Microsoft új operációs rendszere, amely felhasználói szemmel újdonság, fejlesztői szemmel kihívás.</p>
<p>Az alábbi <a href="http://windows.microsoft.com/en-US/windows7/products/features" target="_blank">linken</a> pár információval szolgálnak arról, mik is ezek az újítások. Én csak a tálca újdonságait emelném ki. Ezidáig a felhasználót a jobb alsó sarokban lévő úgynevezett értesítési területen lehetett informáli dolgokról. Milyen folyamatok futnak, mennyi ideig tart még a DVD megírása, a fájl letöltése.</p>
<p>Ezt most egy kicsit megbolondították és elérhetővé tették folyamatjelzők és ikonok megjelenítését a tálcán, ahol eddig a program főablakának címe szerepelt és jobb esetben az alkalmazás ikonja (számos fejlesztő felejt el ikont adni). A lehetőségek között szerepel:</p>
<ul>
<li>Véges folyamatjelző</li>
<li>Végtelen folyamatjelző (nem kiszámítható befejezési idővel)</li>
<li>Hibajelző (piros)</li>
</ul>
<p><img class="aligncenter size-full wp-image-206" title="taskbarwithprogressandoverlays" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/taskbarwithprogressandoverlays.jpg" alt="taskbarwithprogressandoverlays" width="600" height="323" /></p>
<h3>És ehhez elég lesz a .Net framework 4.0?</h3>
<p>Elég, sőt 3.5-tel is működni fog, le kell hozzá tölteni a <a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank">WindowsApiCodecPack</a>-et (4MB, súgóval együtt 19MB), amely forrásfájlokat szolgáltat számunkra, hogy a Windows7 fenti szolgáltatásait elérjük. <em>DirectX is kell hozzá a leírás szerint, de ez valószinüleg akkor szükséges, ha a CodecPack DirectX-es szolgáltatásait is szeretnénk használni.</em></p>
<p>Lehetőségünk lesz elérni a <code>ITaskBarList3</code> interfész <code>SetOverlayIcon</code>, <code>SetProgressState</code> és <code>SetProgressValue</code> metódusait, amivel lehetőségünk van a felhasználóinkat informálni egy hosszabb programfolyamat állapotáról.</p>
<p>Referenciaként a Core és Shell szerelvényeket kell a projekthez hozzáadni, ezen névterekben pedig megtalálhatóak a szükséges osztályok:</p>
<ul>
<li><code>Microsoft.WindowsAPICodePack.Shell.<strong>Taskbar</strong></code></li>
<li><code><code>Microsoft.WindowsAPICodePack.Shell.Taskbar.<strong>ProgressBar</strong></code></code></li>
<li><code><code><code>Microsoft.WindowsAPICodePack.Shell.Taskbar.<strong>OverlayIcon</strong></code></code></code></li>
</ul>
<p>Ezen kívül a <code>ProgressBarExt </code>és <code>OverlayIconExt </code>osztályok segítségével a Windows XP óta, a sok ablak megjelenítésekor összecsoportosuló programablakok mindegyike külön folyamatjelzővel látható el.</p>
<p>Tesztelés folyamatban&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/windows-7-talca-ujdonsagai-fejlesztoi-szemmel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

