<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35709118</id><updated>2012-02-16T10:44:13.203+02:00</updated><category term='Python'/><category term='Lineaaralgebra'/><category term='kood'/><category term='SciPy'/><category term='Markovi ahel'/><category term='Google AI'/><category term='Silmad olgu teil avatud.'/><category term='vabavara'/><category term='Tehnoloogia'/><category term='graphs'/><category term='Special Folders'/><category term='Statistika'/><category term='kool'/><category term='Tips'/><category term='Windows'/><category term='SQLite'/><category term='Win7'/><category term='Artificial intelligence'/><category term='Gnome'/><category term='Plot'/><category term='võistlus'/><category term='Andmekaeve'/><category term='C#'/><category term='Sülearvuti'/><category term='Weekend project'/><category term='Ülikool'/><category term='Control Panel'/><category term='Graphics'/><category term='MATLAB'/><category term='Algoritmid'/><category term='AI'/><category term='sess'/><category term='Linux'/><category term='Masinõpe'/><category term='Lifehacker'/><category term='Ubuntu'/><category term='University of Waterloo'/><category term='Varia'/><category term='Tricks'/><category term='R'/><category term='Windows 7'/><title type='text'>Tehnoloogilised avastused</title><subtitle type='html'>Siia maanduvad minu isiklikud pikemad mõtteavaldused, mis eeldatavasti hakkavad koonduma kategooriatesse python, masinõppe, andmekaeve, tehisintelligents ja idufirmad.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default?start-index=101&amp;max-results=100'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>150</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35709118.post-867748994199721515</id><published>2010-02-21T14:13:00.003+02:00</published><updated>2010-02-21T14:20:50.740+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plot'/><category scheme='http://www.blogger.com/atom/ns#' term='Statistika'/><category scheme='http://www.blogger.com/atom/ns#' term='MATLAB'/><category scheme='http://www.blogger.com/atom/ns#' term='graphs'/><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='Andmekaeve'/><category scheme='http://www.blogger.com/atom/ns#' term='SciPy'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>[R] Minu esimesed sammud R-s</title><content type='html'>&lt;div&gt;&lt;h1&gt;&lt;small&gt;Sissejuhatus&lt;/small&gt;&lt;/h1&gt;&lt;h1&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;span class="Apple-style-span"  style="font-size:16px;"&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(veel täiendamisel ... blogi editori rike )&lt;/span&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/span&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;br /&gt;&lt;/h1&gt;&lt;/div&gt;&lt;div&gt;&lt;small&gt;       Mitmesuguste asjaolude kokkusattumisel jõudsin ma ülesannetega sellisele tasemele, et nad osutusid, kas seniste vahenditega keeruliselt teostatavaks või antud keskkonnas pole võimalik endisi vahendeid kasutada, nt andmeridu rohkem kui Excelisse mahub ja hard-coded versioon pole dünaamiline. Mul oli valida, kas minu jaoks kallis &lt;a class="zem_slink" href="http://en.wikipedia.org/wiki/MATLAB" title="MATLAB" rel="wikipedia"&gt;Matlab&lt;/a&gt;, &lt;a target="_blank" href="http://www.scipy.org/"&gt;Python SciPy&lt;/a&gt; (vägagi super library) või&lt;span style="font-weight: bold;"&gt; R&lt;/span&gt;.  Seni kasutatud C# jäi nimistust välja, kuna on prototüüpimiseks  ikkagi liigagi kommerstlik ja kohmakas keel.&lt;br /&gt;      Valisin &lt;span style="font-weight: bold;"&gt;R&lt;/span&gt;, sest seda on mul kõige lihtsam integreerida olemasolevatesse lahendustesse ning kaastöötajate seas on samuti R kasutajaid.  Antud statistika töövahendist võid lähemalt lugeda juba lehelt &lt;a href="http://www.r-project.org/"&gt;http://www.r-project.org/&lt;/a&gt; .&lt;/small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;span class="Apple-style-span"  style="font-weight: normal;font-size:16px;"&gt;&lt;small&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;         Tegu on väga lihtsa ja võimaluste rohke keelega, kusjuures on vabalt lingitav teiste olemasolevate keeltega, nt&lt;a target="_blank" href="http://www.swig.org/"&gt; SWIG projekt&lt;/a&gt;i abil.  Ühesõnaga supervahend statistika ülesanneteks, andmekaeveks ja visuaalse info kuvamiseks, ning netist leiab  lihtsalt vajalikud käsiraamatud ja juhendid.&lt;/span&gt;&lt;/strong&gt;&lt;/small&gt;&lt;/small&gt;&lt;/span&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;br /&gt;&lt;div&gt;&lt;small&gt;           Et R-iga kiiremini sinapeale saada, siis lahendasin täna paar näidisülesannet, mis kasutaks treemap-i, R-s dünaamiliselt muudetavat kaarti ja GoogleMapi kaarti, kusjuures andmed loetaks sisse netis olevast failist, antud juhul kasutasin selleks Google Doci võimalusi.&lt;/small&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;&lt;small&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;small&gt;Eelarve näide&lt;/small&gt;&lt;/span&gt;&lt;/small&gt;&lt;/h2&gt;&lt;small&gt;    Treemapi suureks plussiks on tema suurepärane võime kuvada hierharhilisi suurusi ning värvi ja kuju muutmisega saab lisada veel lisamuutujaid ehk sujuvalt kuvada mitmemõõtmelisi andmeid.&lt;br /&gt;   Üheks hierharhilisemaks ja segasemaks andmekoguks, millele on igal kodanikul võimalus ligipääseda on Eesti Vabariigi eelarve, mille leiab &lt;a href="http://www.fin.ee/index.php?id=233"&gt;majandusministeeriumi kodulehelt&lt;/a&gt;.&lt;br /&gt;    Nagu väikse katsetamise tulemusena on näha, et Treemap ei sobi eriti hästi, kui max väärtuse ja min väärtuse suhe osutub liiga suureks, sest antud juhul muutuks min.väärtusega väli lihtsalt punktiks. Teatud statistiliste meetoditega on ka see ülesanne lahendatav.&lt;br /&gt;&lt;/small&gt;&lt;/div&gt;&lt;div&gt;&lt;small&gt;Graafilised tulemused:&lt;/small&gt;&lt;small&gt;        &lt;/small&gt;&lt;small&gt;  &lt;/small&gt;&lt;small&gt;  &lt;/small&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;small&gt;&lt;strong&gt;TULUD &lt;/strong&gt; &lt;/small&gt;&lt;/td&gt;&lt;td&gt;&lt;small&gt; &lt;strong&gt; KULUD&lt;br /&gt;&lt;/strong&gt; &lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;small&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_80sAoSXiYeA/S4C87voFp0I/AAAAAAAAAjY/IpedGzNw-nE/s1600-h/treemap_tulud.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 193px;" src="http://2.bp.blogspot.com/_80sAoSXiYeA/S4C87voFp0I/AAAAAAAAAjY/IpedGzNw-nE/s320/treemap_tulud.png" alt="" id="BLOGGER_PHOTO_ID_5440556084446472002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/small&gt;&lt;/td&gt;&lt;td&gt;&lt;small&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_80sAoSXiYeA/S4C9Y-9Ci8I/AAAAAAAAAjg/W8cayt5ia6Y/s1600-h/treemap_kulud.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 191px;" src="http://4.bp.blogspot.com/_80sAoSXiYeA/S4C9Y-9Ci8I/AAAAAAAAAjg/W8cayt5ia6Y/s320/treemap_kulud.png" alt="" id="BLOGGER_PHOTO_ID_5440556586777086914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" style="background: none repeat scroll 0% 0% rgb(255, 255, 204);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# build treemap example &lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;library&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;portfolio&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# read input data&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#dt &amp;lt;- read.csv("./R/eelarve.r")&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#get data from shared google docs&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;read.csv&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"http://spreadsheets.google.com/pub?key=tLlSPFaSH5siZWHT-9vwJeA&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=csv"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;sep&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="string"&gt;","&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;#do some calculations&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;ratio&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;floor&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_planeeritud&lt;/span&gt;&lt;span class="keyword"&gt;-&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;/&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_planeeritud&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;*&lt;/span&gt;&lt;span class="number"&gt;100&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt; &lt;span class="comment"&gt;#differences from planned estimates&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;diff&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;floor&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;-&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2008_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;/&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2008_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;*&lt;/span&gt;&lt;span class="number"&gt;100&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;          &lt;span class="comment"&gt;# differences from last years&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;tulud&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;id&lt;/span&gt; &lt;span class="keyword"&gt;!=&lt;/span&gt; &lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="keyword"&gt;]&lt;/span&gt; &lt;span class="comment"&gt;#select incomes&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;kulud&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;id&lt;/span&gt; == &lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="keyword"&gt;]&lt;/span&gt; &lt;span class="comment"&gt;#select outcomes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# build some graphs&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;map.market&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="argument"&gt;id&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;id&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;area&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;  &lt;span class="argument"&gt;group&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;kategooria&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;br /&gt;          &lt;span class="argument"&gt;color&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;ratio&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;main&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"Eesti eelarve planeeritud tulud vs tegelik"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;map.market&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="argument"&gt;id&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;id&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;area&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;  &lt;span class="argument"&gt;group&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;kategooria&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;br /&gt;          &lt;span class="argument"&gt;color&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;tulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;diff&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;main&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"Eesti eelarve planeeritud tulud 2008 vs 2009"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;map.market&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="argument"&gt;id&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;kulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;id&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;area&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="symbol"&gt;kulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;X2009_tegelik&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;br /&gt;          &lt;span class="argument"&gt;group&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;kulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;kategooria&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;color&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;kulud&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;ratio&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;br /&gt;          &lt;span class="argument"&gt;main&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"Eesti eelarve kulude jaotuvus ministeeriumite kaupa"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;small&gt;&lt;br /&gt;&lt;big&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Töötusemäär&lt;/span&gt;&lt;/span&gt;&lt;/big&gt;&lt;/small&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;small&gt;       Antud ülesande korral kasutasin Töötuameti kodulehel olevat statistika-faile, mida pidin natuke muutma, sest originaalfaili struktuur raskendab andmete sisselugemist-  kergem on  korra korralik algfail koostada ning siis siirduda edasi töötlema. Antud graafikult on kergelt näha töötute regionaalset jaotust (mida suurem ristküliku pindala, seda suurem on töötute armee)  ning värvierksuse määrab  ära kui palju see aasta töötusemäär tõusnud on. &lt;/small&gt;&lt;/div&gt;&lt;div&gt;&lt;small&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_80sAoSXiYeA/S4DADLAmcEI/AAAAAAAAAjo/8MZV8ZFkWsI/s1600-h/treemap_unemployee.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 226px;" src="http://1.bp.blogspot.com/_80sAoSXiYeA/S4DADLAmcEI/AAAAAAAAAjo/8MZV8ZFkWsI/s320/treemap_unemployee.png" alt="" id="BLOGGER_PHOTO_ID_5440559510591008834" border="0" /&gt;&lt;/a&gt;Lähtekoodis võid näha, et asi on natuke poolikuks läinud, sest plaanisin juurde lisada Eesti geograafilise kaardi ning uurida ajajadade tsüklisust, ehk kas R õpikus toodud töötusemäära sessoonsus on sarnane hetke olukorraga Eestis.&lt;/small&gt;&lt;/div&gt;&lt;div&gt;&lt;small&gt;       Kõrval oleval graafikul paneb hämmastama just Narva kasti suurus, mis ületab tunduvalt suurema linna kasti. Lähem andmeteanalüüs ja põhjuste-ja oletuste kinnitamine ei olnud käesoleva ülesande eesmärgiks, siis siirdusin sujuvalt edasi uurima R võimalusi:&lt;/small&gt;&lt;/div&gt;&lt;div&gt;&lt;small&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/small&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Töötusemäära aastane muutus Tallinnas:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;Regionaalse graafiku kasutamine:(hetkel infohulk = 0)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;small&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_80sAoSXiYeA/S4DFJU5BxII/AAAAAAAAAjw/cU7qcVYYHdI/s1600-h/plot_unemployee.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 187px;" src="http://1.bp.blogspot.com/_80sAoSXiYeA/S4DFJU5BxII/AAAAAAAAAjw/cU7qcVYYHdI/s320/plot_unemployee.png" alt="" id="BLOGGER_PHOTO_ID_5440565113880953986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/small&gt;&lt;/td&gt;&lt;td&gt;&lt;small&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_80sAoSXiYeA/S4DFpjhu82I/AAAAAAAAAj4/LN1B77m2i-E/s1600-h/eesti_map.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 159px;" src="http://3.bp.blogspot.com/_80sAoSXiYeA/S4DFpjhu82I/AAAAAAAAAj4/LN1B77m2i-E/s320/eesti_map.png" alt="" id="BLOGGER_PHOTO_ID_5440565667565597538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2" style="background: none repeat scroll 0% 0% rgb(255, 255, 204);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# do some spatial graphs too&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#map location: http://gadm.org/data/rda/EST_adm1.RData&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;library&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;sp&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;library&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;portfolio&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="symbol"&gt;url&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="string"&gt;"http://spreadsheets.google.com/pub?key=tZNWDwHp1JaQgJNfsP0BN9g&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=csv"&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#disk_path &amp;lt;- "./R/tootud_kov.csv"&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;read.csv&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;url&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;sep&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;","&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;names&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="symbol"&gt;con&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;url&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"http://gadm.org/data/rda/EST_adm1.RData"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt; &lt;span class="comment"&gt;#download map data&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;print&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="functioncall"&gt;load&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;con&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;        &lt;span class="comment"&gt;#load map&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;close&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;con&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;# do some calcs and build some plots&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;diff&lt;/span&gt;&lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="keyword"&gt;-&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="functioncall"&gt;floor&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;Dec&lt;/span&gt;&lt;span class="keyword"&gt;-&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;Jan&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;/&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;Jan&lt;/span&gt; &lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;*&lt;/span&gt;&lt;span class="number"&gt;100&lt;/span&gt; &lt;span class="keyword"&gt;)&lt;/span&gt;  &lt;span class="comment"&gt;#changes from start of year--&amp;gt; how much bigger, scary :C&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;cbind&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;diff&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;map.market&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="argument"&gt;id&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;id&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;area&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;Nov&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;group&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;ov_nimi&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;color&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;diff&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;main&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"Recession of work places"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;#plot  uneployment level of Tallinn&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;tln&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;ov_nimi&lt;/span&gt;== &lt;span class="string"&gt;"Tallinn"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="keyword"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;tln.ts&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;t&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="functioncall"&gt;ts&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;tln&lt;/span&gt;&lt;span class="keyword"&gt;[&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="keyword"&gt;:&lt;/span&gt;&lt;span class="number"&gt;16&lt;/span&gt;&lt;span class="keyword"&gt;]&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;start&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="functioncall"&gt;c&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="number"&gt;2009&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt; &lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;freq&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="number"&gt;12&lt;/span&gt; &lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;plot.ts&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;tln.ts&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;col&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"blue"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;type&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"b"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="comment"&gt;#TODO: SUm by counties ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;c&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"1"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="string"&gt;"1"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"1"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"1"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"1"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"2"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"2"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"2"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;br /&gt;      &lt;span class="string"&gt;"2"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"3"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"3"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"3"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"3"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"4"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"4"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;gadm&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;language&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="functioncall"&gt;as.factor&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;dt&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="symbol"&gt;col&lt;/span&gt; &lt;span class="assignement"&gt;=&lt;/span&gt; &lt;span class="functioncall"&gt;rainbow&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="functioncall"&gt;length&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="functioncall"&gt;levels&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;gadm&lt;/span&gt;&lt;span class="keyword"&gt;$&lt;/span&gt;&lt;span class="symbol"&gt;language&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;spplot&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;gadm&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="string"&gt;"language"&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;col.regions&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="symbol"&gt;col&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;main&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;"Recession"&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;str&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;gadm&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;max.level&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="keyword"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;small&gt;&lt;br /&gt;&lt;/small&gt;&lt;/div&gt;&lt;div&gt;&lt;small&gt;&lt;small&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-weight: bold;font-size:24px;"&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;Google Maps staatiline põhi&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/span&gt;&lt;/small&gt;&lt;br /&gt;&lt;/small&gt;&lt;br /&gt;Antud ülesande eesmärgiks oli kasutada Google Mapsi veebiteenust , lisades  vajalikud koordinaadi lipikud ning laadida valmiskaart  pildina alla,  mida võib hiljem lisada mõne graafiku taustaks.&lt;br /&gt;&lt;div&gt;&lt;small&gt;&lt;br /&gt;&lt;/small&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img style="max-width: 800px; width: 255px; height: 255px;" src="http://lh6.ggpht.com/_80sAoSXiYeA/S4EHf9VJoUI/AAAAAAAAAkI/1MYeviGpSf4/%5BUNSET%5D.png?imgmax=800" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="background: none repeat scroll 0% 0% rgb(255, 255, 204);"&gt;&lt;br /&gt;&lt;span class="comment"&gt;#do some google maps&lt;/span&gt;&lt;br /&gt;&lt;span class="comment"&gt;#get our own google API code: http://code.google.com/apis/maps/signup.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="symbol"&gt;key&lt;/span&gt; &lt;span class="assignement"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="string"&gt;"ABQIA#get our own google API code:  http://code.google.com/apis/maps/signup.html6uqg"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="functioncall"&gt;GetMap&lt;/span&gt;&lt;span class="keyword"&gt;(&lt;/span&gt; &lt;span class="symbol"&gt;key&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt; &lt;span class="argument"&gt;markers&lt;/span&gt; &lt;span class="argument"&gt;=&lt;/span&gt; &lt;span class="string"&gt;'59.39595,24.66740,blues%7C59.39359,24.67890,greeng'&lt;/span&gt;&lt;span class="keyword"&gt;,&lt;/span&gt;&lt;span class="argument"&gt;destfile&lt;/span&gt;&lt;span class="argument"&gt;=&lt;/span&gt;&lt;span class="string"&gt;"./R/MyTile.png"&lt;/span&gt; &lt;span class="keyword"&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-weight: bold;font-size:24px;"&gt;&lt;br /&gt;&lt;div&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;----------------------------------------------------------------------------------------------------------------&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a target="_blank" href="http://www.blogger.com/102%20T%C3%83%C2%B6%C3%83%C2%B6tukassa%20statistika:%20%20%09%20http://www.tootukassa.ee/index.php?id=11328"&gt;Töötukassa statistika:&lt;br /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://www.blogger.com/102%20T%C3%83%C2%B6%C3%83%C2%B6tukassa%20statistika:%20%20%09%20http://www.tootukassa.ee/index.php?id=11328"&gt;&lt;/a&gt;&lt;a target="_blank" href="http://www.tootukassa.ee/index.php?id=11328"&gt;http://www.tootukassa.ee/index.php?id=11328&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Google Docist CSV faili lugemise õpetus:&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://blog.revolution-computing.com/2009/09/how-to-use-a-google-spreadsheet-as-data-in-r.html"&gt;http://blog.revolution-computing.com/2009/09/how-to-use-a-google-spreadsheet-as-data-in-r.html&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lihtne treemapi tegemine:&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://flowingdata.com/2010/02/11/an-easy-way-to-make-a-treemap/"&gt;http://flowingdata.com/2010/02/11/an-easy-way-to-make-a-treemap/&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Otsi R funkstiooni:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://www.rseek.org/"&gt;http://www.rseek.org/&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;R-i juhendid ja käsiraamatud:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://en.wikibooks.org/wiki/R_Programming/Data"&gt;http://en.wikibooks.org/wiki/R_Programming/Data&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Treemapi rakendus:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.smartmoney.com/fundmap/%20"&gt;http://www.smartmoney.com/fundmap/ &lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.zerohedge.com/article/mapping-credit-performance-wtd-and-mtd-cds"&gt;http://www.zerohedge.com/article/mapping-credit-performance-wtd-and-mtd-cds&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Globaalsed omavalitsuste kaardiandmed&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://www.zerohedge.com/article/mapping-credit-performance-wtd-and-mtd-cds"&gt;http://gadm.org/Estonia&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GADM kasutamise lühiülevaade:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a target="_blank" href="http://www.stanford.edu/~cengel/cgi-bin/anthrospace/download-global-administrative-areas-as-rdata-files"&gt;http://www.stanford.edu/~cengel/cgi-bin/anthrospace/download-global-administrative-areas-as-rdata-files&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SP paketi juhend:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://docs.google.com/viewer?url=http://cran.r-project.org/web/packages/sp/sp.pdf"&gt;http://docs.google.com/viewer?url=http://cran.r-project.org/web/packages/sp/sp.pdf&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;Google mapi kasutamine&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://www.iq.harvard.edu/blog/sss/archives/2008/04/google_charts_f_1.shtml"&gt;http://www.iq.harvard.edu/blog/sss/archives/2008/04/google_charts_f_1.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://cran.r-project.org/web/packages/RgoogleMaps/index.html"&gt;http://cran.r-project.org/web/packages/RgoogleMaps/index.html&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Massachusettsi kuberneri valimistulemuste näidis:&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;a target="_blank" href="http://www.r-bloggers.com/mapping-ma-election-results/"&gt;http://www.r-bloggers.com/mapping-ma-election-results/&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie" style="margin-top:10px;height:15px"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/b4817790-2570-840a-a124-bf10438972f5/" title="Reblog this post [with Zemanta]"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=b4817790-2570-840a-a124-bf10438972f5" alt="Reblog this post [with Zemanta]" style="border:none;float:right" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-867748994199721515?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/867748994199721515/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2010/02/r-minu-esimesed-sammud-r-s_21.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/867748994199721515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/867748994199721515'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2010/02/r-minu-esimesed-sammud-r-s_21.html' title='[R] Minu esimesed sammud R-s'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_80sAoSXiYeA/S4C87voFp0I/AAAAAAAAAjY/IpedGzNw-nE/s72-c/treemap_tulud.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5896091784747018515</id><published>2010-02-09T07:25:00.009+02:00</published><updated>2010-02-09T09:52:04.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='Algoritmid'/><category scheme='http://www.blogger.com/atom/ns#' term='võistlus'/><category scheme='http://www.blogger.com/atom/ns#' term='University of Waterloo'/><category scheme='http://www.blogger.com/atom/ns#' term='Google AI'/><category scheme='http://www.blogger.com/atom/ns#' term='kood'/><category scheme='http://www.blogger.com/atom/ns#' term='Markovi ahel'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Weekend project'/><category scheme='http://www.blogger.com/atom/ns#' term='Artificial intelligence'/><title type='text'>[C#] Google AI võistlus</title><content type='html'>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kanada &lt;span style="font-weight: bold;"&gt;Waterloo Ülikooli&lt;/span&gt; teadusklubi korraldab põnevat algoritmi koostamise &lt;a href="http://csclub.uwaterloo.ca/contest"&gt;võistlust Google AI&lt;/a&gt;,  kus võistleja ülesandeks on leida parem nö ussimängu algoritm (nn lihtsustatud Troni mäng), mis suudaks tasandil läbida võimalikult punkte, samas ka vastase elu raskeks teha. Ülesande lahendamiseks on aega veel 26.veebruarini. Minu arust väga lõbus ja hariv  ettevõtmine ja näha oma väikest Troni-boti teistega heitlemas. Väike võistluse demo on näha ka populaarsest videoleviportaalist :&lt;a href="http://www.youtube.com/watch?v=mwDKMiAfxFE&amp;amp;feature=player_embedded"&gt; http://www.youtube.com/watch?v=mwDKMiAfxFE&amp;amp;feature=player_embedded&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;         Kuna rõhk on algoritmi koostamisel, siis valmiskomponendid on enamlevinud keeltes olemas ja sinu ülesandeks jääb vaid koostada algoritm, seda testida ning viia lahingusse. Võitu on sealt on raske loota, sest üle maailma on kahurvägi kohal, kuid sa saad väga lõbusa ja hariva kogemuse .&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Võistluse peakorraldaja &lt;a href="http://jpcameron.com/blog/"&gt;Jeff Cameroni&lt;/a&gt;  blogist võid lugeda, kuidas võistluse populaarsus üle öö kasvas, just eriti siis kui uudis leidis kajastamist reddit.com ja &lt;a href="http://news.ycombinator.com/"&gt;HackerNewsi&lt;/a&gt; portaalides.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;   Kui pähe ei tule mitte ühtegi head ideed, siis järgnevatelt lehtedelt võib leida natuke abinfot:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;võistluse pealeh&lt;/span&gt;t:&lt;a href="http://csclub.uwaterloo.ca/contest/strategy.php"&gt; http://csclub.uwaterloo.ca/contest/strategy.php&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;ExperimentGarden&lt;/span&gt; blogi - üks liidritest:&lt;a href="http://experimentgarden.blogspot.com/2010/02/google-university-of-waterloo-ai.html"&gt;http://experimentgarden.blogspot.com/2010/02/google-university-of-waterloo-ai.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Siffles blog&lt;/span&gt;:    &lt;a href="http://www.sifflez.org/misc/tronbot/index.html"&gt;http://www.sifflez.org/misc/tronbot/index.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;            Ise osalen võistlusel C# botiga ja proovin juhtimisloogikat juhtida  Markovi ahelatega, mis on enamvähem sarnane Sifflez blogi õpetusega, kuid keerulisemas variandis proovin juba arvestada vastase liikumist.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      Kui esimesed tulemused kirja saan , siis kavatsen kohe siia kirjutada ka väikse ülevaate oma lahendusest. ps: Markovi ahelatest on paar postitust tagasi väike ülevaade.  &lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=2581e725-5007-4240-b11c-2cbb90bb13ad" alt="Enhanced by Zemanta" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5896091784747018515?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5896091784747018515/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2010/02/c-google-ai-voistlus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5896091784747018515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5896091784747018515'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2010/02/c-google-ai-voistlus.html' title='[C#] Google AI võistlus'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5053683811310342379</id><published>2010-01-07T15:00:00.004+02:00</published><updated>2010-01-07T15:22:07.327+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ülikool'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Varia'/><category scheme='http://www.blogger.com/atom/ns#' term='Tehnoloogia'/><category scheme='http://www.blogger.com/atom/ns#' term='Sülearvuti'/><category scheme='http://www.blogger.com/atom/ns#' term='Lifehacker'/><title type='text'>[Varia] 2010 olen parem tudeng - kasutan töövahendeid õigesti.</title><content type='html'>Vana-aastal rääkisin, kuidas ma plaanin vähese aja ning koguneva teadmisekoguga  säästa oma elukvaliteeti. Nüüd on mu lemmik uudistekanalisse ilmunud artikkel,  kus autor annab väikseid nippe, et  arvuti poleks pelgalt kallis trükimasin ja muusikamängija ja  igaüks suudaks oma arvuti panna rohkem enda kasuks tööle.&lt;div&gt;     Nagu ka artikli autor kirjeldab: "igal aastal saabub uus armee rebaseid. Kõik nad on  varustatud võimsate sülearvutitega - enamus neist kasutavad neid vaid trükimasina ja msn-terminalina, istudes tehnoloogia-arengu redelil ikka 1960aastate pulgal, ainsa vahena: nüüd on trükimasin süles". &lt;div&gt;&lt;br /&gt;&lt;b&gt;Lühiülevaade: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;a) ära tee masina tööd .&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Kui  töö tundub üksluine, siis teed midagi valesti . Kunagi ära lahenda keerulist ülesannet, kui pole mõelnud kas leidub mõni lihtsam lahendus! &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Kui üksi ei leia, kasuta abi, nt sõbrad, kursakaaslased, otsingumootorid, foorumid, kasutajagrupid, raamatukogu . &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Levinumad juhtumid:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;      *) failide ümbernimetamine - utiliidid&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;      *) teksti asendamine - kiirklahvid&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;      *) märkmete haldus, konspektid&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;b) kasuta võrku&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Võrk on loodud eesmärgiga parandada teadmistevahetust ning koostööd.&lt;/div&gt;&lt;div&gt;Facebooking on lihtsalt selle üks positiivseid kõrvalnähtusi, kuid jäetakse kasutamata võimalus jagada loengu, praktikumide märkmeid. &lt;/div&gt;&lt;div&gt;Levinumad juhtumid:&lt;/div&gt;&lt;div&gt;      *) isiklike märkmete, konspektide jagamine &lt;/div&gt;&lt;div&gt;      *) kontaktvõrgustik, &lt;/div&gt;&lt;div&gt;      &lt;/div&gt;&lt;div&gt;&lt;b&gt;c) andmete varundamine&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Murphy seadus: enne olulist eksamit läheb arvuti katki.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;NB! List pole lõplik, vaid viisakaks sissejuhatuseks . Antud uudise järel leidub samuti asjalikke kommentaare.&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;------------------------------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cache-foo.gawkerassets.com/gawker/assets/g4.lifehacker.com/img/logo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 284px; height: 84px;" src="http://cache-foo.gawkerassets.com/gawker/assets/g4.lifehacker.com/img/logo.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cache-foo.gawkerassets.com/gawker/assets/g4.lifehacker.com/img/logo.png"&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="color:#551A8B;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt; Loe lähemalt:&lt;br /&gt;&lt;a href="http://lifehacker.com/5441531/use-better-tools-to-be-a-better-student-in-2010?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+lifehacker%2Ffull+%28Lifehacker%29&amp;amp;utm_content=Google+Reader"&gt;Use Better Tools to Be a Better Student in 2010 - Note Taking - Lifehacker&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5053683811310342379?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5053683811310342379/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2010/01/varia-2010-olen-parem-tudeng-kasutan.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5053683811310342379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5053683811310342379'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2010/01/varia-2010-olen-parem-tudeng-kasutan.html' title='[Varia] 2010 olen parem tudeng - kasutan töövahendeid õigesti.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2391284764331943415</id><published>2010-01-05T11:23:00.004+02:00</published><updated>2010-01-10T05:14:55.804+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Special Folders'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Win7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='Control Panel'/><title type='text'>[MS] GodMode</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_80sAoSXiYeA/S0MFb8yFBJI/AAAAAAAAAio/1QcIOgk8-7U/s1600-h/GodMode.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 178px;" src="http://2.bp.blogspot.com/_80sAoSXiYeA/S0MFb8yFBJI/AAAAAAAAAio/1QcIOgk8-7U/s200/GodMode.jpg" alt="" id="BLOGGER_PHOTO_ID_5423184354014987410" border="0" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; Windowsi-sõprade ringkonnas on viimasel ajal furoori tekitanud &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;GodMod&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;e, ehk tühja kataloogi ümbernimetamine koos võtmesõnaga moodustab süsteemkataloogi, kus saad muuta suurel hulgal Windowsi seadeid, ilma kontrollpaneeli,  registrit või spetsiaaltarkvara kasutamata.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Kuidas saada endale GodMode?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;a) loo tühikataloog&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;b) nimeta see &lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;c) &lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;enter ja olemas .&lt;br /&gt;&lt;/span&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Töötab Windows Vista, Windows 7 ja Server08 peal . Osad allikad mainivad, et 64bitise süsteemi korral tasub olla ettevaatlik, kipub hanguma.&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;PS: Katalooginimi ei pea olema just GodMode – oluline on järgnev kood.&lt;br /&gt;Täiendus: &lt;/span&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Üks asjalik windowsi admin on asja kommenteerinud:  nothing special &lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;This is nothing new.This has been around since Windows 95.  &lt;/span&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;If you have an old copy still running live on in a VM just do a search for tips.txt. &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Or just go to the support article here:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/135893"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;http://support.microsoft.com/kb/135893&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;[Special Folders]&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;You can put the contents of Control Panel or other special folders on your Start menu (or in any folder). Create a folder by clicking New on the File menu, and then clicking Folder. Then, paste in the appropriate name as shown below:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;For Use This Name:&lt;br /&gt;&lt;br /&gt;Control Panel Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}&lt;br /&gt;Dial Up Network Dial Up Net.{992CFFA0-F557-101A-88EC-00DD010CCC48}&lt;br /&gt;Printers Printers.{2227A280-3AEA-1069-A2DE-08002B30309D}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;etc:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="color: rgb(53, 53, 53);  font-size:12px;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p   style="margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border- font-weight: inherit; font-style: inherit;  text-align: left; vertical-align: baseline; line-height: 17px; font-size:12px;color:initial;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Here's the list of strings:&lt;/span&gt;&lt;/p&gt;&lt;p   style="margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border- font-weight: inherit; font-style: inherit;  text-align: left; vertical-align: baseline; line-height: 17px; font-size:12px;color:initial;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;{00C6D95F-329C-409a-81D7-C46C66EA7F33}&lt;br /&gt;{0142e4d0-fb7a-11dc-ba4a-000ffe7ab428}&lt;br /&gt;{025A5937-A6BE-4686-A844-36FE4BEC8B6D}&lt;br /&gt;{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}&lt;br /&gt;{1206F5F1-0569-412C-8FEC-3204630DFB70}&lt;br /&gt;{15eae92e-f17a-4431-9f28-805e482dafd4}&lt;br /&gt;{17cd9488-1228-4b2f-88ce-4298e93e0966}&lt;br /&gt;{1D2680C9-0E2A-469d-B787-065558BC7D43}&lt;br /&gt;{1FA9085F-25A2-489B-85D4-86326EEDCD87}&lt;br /&gt;{208D2C60-3AEA-1069-A2D7-08002B30309D}&lt;br /&gt;{20D04FE0-3AEA-1069-A2D8-08002B30309D}&lt;br /&gt;{2227A280-3AEA-1069-A2DE-08002B30309D}&lt;br /&gt;{241D7C96-F8BF-4F85-B01F-E2B043341A4B}&lt;br /&gt;{4026492F-2F69-46B8-B9BF-5654FC07E423}&lt;br /&gt;{62D8ED13-C9D0-4CE8-A914-47DD628FB1B0}&lt;br /&gt;{78F3955E-3B90-4184-BD14-5397C15F1EFC}&lt;/span&gt;&lt;/p&gt;&lt;p   style="margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border- font-weight: inherit; font-style: inherit;  text-align: left; vertical-align: baseline; line-height: 17px; font-size:12px;color:initial;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;And, as a reminder, to create the Godmode folder itself, use this string:&lt;/span&gt;&lt;/p&gt;&lt;p   style="margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border- font-weight: inherit; font-style: inherit;  text-align: left; vertical-align: baseline; line-height: 17px; font-size:12px;color:initial;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;{ED7BA470-8E54-465E-825C-99712043E01C}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;-----------------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Loe lisa: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="http://gizmodo.com/5440159/understanding-windows-7s-godmode" href="http://gizmodo.com/5440159/understanding-windows-7s-godmode"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;http://gizmodo.com/5440159/understanding-windows-7s-godmode&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;a title="http://news.cnet.com/8301-13860_3-10423985-56.html" href="http://news.cnet.com/8301-13860_3-10423985-56.html"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;http://news.cnet.com/8301-13860_3-10423985-56.html&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a title="http://brandonlive.com/2010/01/04/the-so-called-god-mode/" href="http://brandonlive.com/2010/01/04/the-so-called-god-mode/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;http://brandonlive.com/2010/01/04/the-so-called-god-mode/&lt;/span&gt;&lt;/a&gt;  &lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/d431c63a-88db-472e-ad44-bdd86e35dc5f/" title="Reblog this post [with Zemanta]"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=d431c63a-88db-472e-ad44-bdd86e35dc5f" alt="Reblog this post [with Zemanta]" /&gt;&lt;/a&gt;&lt;span class="zem-script more-related pretty-attribution"&gt;&lt;script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2391284764331943415?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2391284764331943415/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2010/01/ms-godmode_05.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2391284764331943415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2391284764331943415'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2010/01/ms-godmode_05.html' title='[MS] GodMode'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_80sAoSXiYeA/S0MFb8yFBJI/AAAAAAAAAio/1QcIOgk8-7U/s72-c/GodMode.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3415219816922007145</id><published>2009-12-27T07:15:00.003+02:00</published><updated>2009-12-27T15:52:41.549+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vabavara'/><category scheme='http://www.blogger.com/atom/ns#' term='kool'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='sess'/><title type='text'>[Varia] Teadmistehaldus ja ettevalmistus sessiks.</title><content type='html'>&lt;p&gt;       Aastalõppudele on omane ajas tagasi vaatamine – mis on läinud hästi, mis kehvasti - ning tehakse  oma järeldused uueks aastaks.  Mina vaatasin oma aastale tagasi,  pean tõdema – sellist pingelist ja aja defitsiidis aastat pole mul kunagi olnud. Täisrindel rabamine tööl, koolis ja trennis olid viinud sinnamaani, kus ajakulust ja läbitöötatud materjalide suhtes puudus igassugune ülevaade – näiteks läbitöötatud tekst muutus segaseks – struktuur oli ununemas ja mõistete definitsioonid hägunemas. &lt;/p&gt;  &lt;p&gt;    Tavaline oli nähtus, kui avastasin nädal on läbi, juba Esmaspäev,  kell 3öösel ja mul asjad veel pooleli –eelnevasse nädalasse planeeritud asjad ajasid vägisi üle , kuid samas puudus mul selge ülevaade kuhu mu nädalake kadus. Samas kui meenutan, siis käisin tööl, koolis, peale seda trennis, lugesin, nokitsesin x-projekti , koolitööd, no jah sinna see läks, kuid 4tunni pärast tuleb juba tööle minna.&lt;/p&gt;  &lt;p&gt;     Meenutab olukorda  kus kuu lõpus pole raha ja kui meenutama hakkata - siis suuri väljaminekuid nagu polnud, natuke sinna poodi ja natuke arveteks ning otsas ta ongi. Kuid väikse raamatupidamisega saab  kuludest, tuludest selgema ülevaade ning lihtne on  teha järeldused tühistest kuludest . &lt;/p&gt;  &lt;p&gt;    Just pereraamatupidamise näitest tuletasin endale aja- ja teadmishalduse. Kuna viibin enamus ajast ekraani taga, siis on ilmselge et antud halduskeskkonnad tulevad elektroonsel kujul, mis on samas kergemini hallatavad ja töödeldavad.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Väikse guugeldamise ja proovimiste tulemusena sai arvutisse installitud:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;&lt;a href="http://projecthamster.wordpress.com/" target="_blank"&gt;Gnome vidin Hamster ajahaldamiseks&lt;/a&gt; – mõnus ja lihtne ajajälgimise süsteem, kuvab graafiliselt ja tabelis tegevuse ning sellele kulutatud aja . Paari nädalase kasutamise järel on vähenenud nn kõrvale hüpped projektist, nt mingi video vaatamine vahelduseks, uudiste meilide tsekkamine – nüüd selleks oma aeg. &lt;/li&gt;      &lt;li&gt;&lt;a href="http://zim-wiki.org/" target="_blank"&gt;Zim-Wiki teadmiste halduseks&lt;/a&gt;.  - tekstifaili põhine wiki süsteem, kus on võimalik lihtsalt oma vahel võtmesõnu, mõisteid linkida, kuid samas on võimalik tekste korrastada hierharhiliselt ja siduda  ajateljega.   Paari nädalase kasutamise järel on välja kujunenud paikne struktuur ning vaikselt töö käigus on paberkonspektidelt info liikunud wikisse. Jah, mate loengus on raske sinna midagi juurde konspekteerida, kuid olemas on LaTex tugi, seega saab  valemid hiljem juurde kirjutada. Topelt –läbikirjutamine tuleb kasuks, juhul kui ei too kaasa liigselt ajakulu –alati  võib võib kopeerida ekraanitõmmisena (ka see plugin on seal olemas).  Programmilooja on mõelnud ka versioonihalduste peale, nii 0n näiteks võimalik tagasivõtta eelmised versioonid ning talletada hetke versioon kogumikku.  Igavesti vahva programmike ja vabalt endapoolt täiendatav.&lt;/li&gt;      &lt;li&gt;Kui juba teadmiste juures olen, siis mõistete ja fakti õppimiseks, kordamiseks  olen viimaste nädalate &lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="left" src="http://richgrad.com/wp-content/uploads/2007/08/rat-race.gif" width="190" height="242" /&gt;jooksul kasutanud ka &lt;a href="http://ichi2.net/anki/" target="_blank"&gt;Anki FlashCardi&lt;/a&gt; süsteemi. &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;     Mida veel hoian teadmiste wikist:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt; koodi-snippeteid – lihtne lisada ja muuta–&amp;gt; samas lihtne hiljem ülesleida. &lt;/li&gt;      &lt;li&gt;Ideede kaart ja TODO list – mis idee pähe tuli, kas on ära tehtud, või mida peab veel ära tegemiseks tegema, mida edasi uurida jne.&lt;/li&gt;      &lt;li&gt;e-loengute, raamatute konspektid,kommentaarid&lt;/li&gt;      &lt;li&gt;lingid, ekraani pisitõmmised&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;      Samas kõik on omavahel lingitud ja kindla struktuuriga.Soovi korral võin eksportida veebileheks või CHM failiks. Kui igav on,  siis võin  uurida oma teadmiste graafi. &lt;/p&gt;    &lt;p&gt;      Nende 2 tööriista abil kavatsen järgmine aasta jõuda eesmärkidele lähemale ning samas juurde võita vabaaega ja kaotada ära olukord: jooksed ringid; pidevalt tunne, et teed midagi ; järele mõeldes- ei teinud midagi. &lt;/p&gt;    &lt;p&gt;PS: Zim-Wikile peaks varsti kättesaadav olema  ka eesti keel – vähemalt tõlke saatsin ära.&lt;/p&gt;&lt;p&gt;Järelsõna: Just ilmus Lifehacker.com'is artikkel, kuidas kodukontor paremaks muut a  : &lt;a href="http://lifehacker.com/5433475/top-10-end+of+year-office-upgrades-you-can-probably-write-off"&gt;http://lifehacker.com/5433475/top-10-end+of+year-office-upgrades-you-can-probably-write-off&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Lõbusat vana ja head uut!&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3415219816922007145?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3415219816922007145/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/12/varia-teadmistehaldus-ja-ettevalmistus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3415219816922007145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3415219816922007145'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/12/varia-teadmistehaldus-ja-ettevalmistus.html' title='[Varia] Teadmistehaldus ja ettevalmistus sessiks.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8168131074713931539</id><published>2009-12-27T05:24:00.003+02:00</published><updated>2010-02-10T14:22:32.521+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Statistika'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Markovi ahel'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Weekend project'/><category scheme='http://www.blogger.com/atom/ns#' term='Masinõpe'/><category scheme='http://www.blogger.com/atom/ns#' term='Lineaaralgebra'/><title type='text'>[C#]Weekend project: gossipGenerator</title><content type='html'>&lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;     Kuna kõik puhkavad siis pole netist leida värskeid uudiseid ja telkust jooksevad ürgvanad Soome-Tv aegsed filmid. Uudiseid pole mittekuskil ja tekib hapukurgi hooaja tunne. &lt;/p&gt;    &lt;p&gt;      Egas midagi - tuleb ise uudiseid genereerida, aga käsitsi  ei jõua niipalju genereerida kui lugeda jõuan. Kuna äsja olin tutvunud &lt;a href="http://en.wikipedia.org/wiki/Markov_chain" target="_blank"&gt;Markovi ahelaga&lt;/a&gt;, siis mõtlesin et teeks ühe hoogtöö käigus noLife24 generaatori, mis suudaks veel rohkem  uudiseid genereerida kui pärdikud Elu24 kontroris.  &lt;/p&gt;    &lt;h3&gt;Sissejuhatus.&lt;/h3&gt;    &lt;p&gt;Projekti tuuma juurde lähenemise eel  tasuks korrata markovi ahela mõistet:&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Markovi ahel on olekutegraaf, mille kaarte kaaluks on  olekusiirde tõenäosus.&lt;/em&gt; &lt;/p&gt;    &lt;p&gt;Teaduslikuma definitsiooni pakkub &lt;a href="http://www.ioc.ee/" target="_blank"&gt;Küberneetika Instituuti&lt;/a&gt; kodulehel asuv &lt;a href="http://www.cc.ioc.ee/jus/gtglossary/gtglos_m_mh.htm" target="_blank"&gt;Graafi teooria sõnastik&lt;/a&gt;:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;table width="740" border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="738"&gt;           &lt;p align="left"&gt;&lt;/p&gt;           &lt;dl&gt;&lt;dt&gt;&lt;b&gt;Markovi ahel&lt;/b&gt; &lt;/dt&gt;&lt;dt&gt;&lt;em&gt;Lõplik automaat üleminekutõenäosustega, st tõenäosusega, et antud oleku s&lt;sub&gt;i &lt;/sub&gt;korral on järgmine üleminek s&lt;sub&gt;j &lt;/sub&gt;. Teiste sõnadega, kaalutud orienteeritud graaf, kus kaaludeks on ülemineku tõenäosused. Kaalud on mittenegatiivsed ja väljuvate servade kogukaal on positiivne. Kaalude normaliseerimisel on kogukaal koos silmustega 1. &lt;/em&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt;     Markovi ahel on tänu oma lihtsusele leidnud rakendamist kõikjal -  valdavalt protsesside simuleerimises ning protsessi ahelate tõenäosuste hindamisel – aitab hinnata kui suure tõenäosusega olek Z järgneb protsessile A ja mitme hüpe järel see võiks toimuda. Reaalelulised rakenduste näited:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/Music" target="_blank"&gt;tehisintellekt&lt;/a&gt; (masinõppes – valdavalt MonteCarlo ja &lt;a href="http://en.wikipedia.org/wiki/Hidden_Markov_Model" target="_blank"&gt;peidetud kihi mudelina&lt;/a&gt;) &lt;/li&gt;      &lt;li&gt;&lt;a href="http://peabody.sapp.org/class/dmp2/lab/markov1/" target="_blank"&gt;muusika genereerimine&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;viiruste simuleerimine, modeleerimine &lt;/li&gt;      &lt;li&gt;piltide genereerimine (&lt;a href="http://code.google.com/p/alsing/downloads/list" target="_blank"&gt;Mona Lisa&lt;/a&gt;) &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.teacherlink.org/content/math/interactive/probability/problembank/problems/markov.html" target="_blank"&gt;labürindi läbimin&lt;/a&gt;e &lt;/li&gt;&lt;li&gt;hiir ja läburindi õpetus   &lt;a href="http://www.math.cornell.edu/~mec/Summer2008/youssef/markov/mouse_and_maze.html"&gt;http://www.math.cornell.edu/~mec/Summer2008/youssef/markov/mouse_and_maze.html&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://apocryph.org/2006/06/23/weekend_project_parody_generator_using_rss_pos_tagging_markov_text_generation/" target="_blank"&gt;tehisteksti genereerimine (parody text generation)&lt;/a&gt; (antud teemast sai Markovi ahelad alguse, kuid tänapäeval on spämmerite seas populaarne vahend) &lt;/li&gt;      &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Examples_of_Markov_chains" target="_blank"&gt;jne …&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Kui lähem huvi Markovi ahelate vastu, siis jagan lahkelt mõningaid kasulikke linke:&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.dartmouth.edu/%7Echance/teaching_aids/books_articles/probability_book/book.html" target="_blank"&gt;Lihtsalt loetav Statistika ja Tõenäosusteooria õpik&lt;/a&gt; (Mõnus lugeda ning raamatus on palju näiteid ja ülesandeid koos vastustega, mis paneb kaasa mõtlema.) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://academicearth.org/lectures/markov-matrices-fourier-series" target="_blank"&gt;Gilbert Strangi Lineaaralgebra loeng, MIT&lt;/a&gt; (Super loengud, soovitan samuti tema õpikut :  &lt;a href="http://www.amazon.com/Introduction-Linear-Algebra-Fourth-Gilbert/dp/0980232716/ref=pd_sim_b_2" target="_blank"&gt;Sissejuhatus Lineaaralgebrasse&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://academicearth.org/lectures/markov-chain-example" target="_blank"&gt;Stanfordi juhtimissüsteemide loeng&lt;/a&gt; – advanced tasemele lähenemine &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.mth.kcl.ac.uk/%7Etcoolen/allnotes/" target="_blank"&gt;Lühike ja ülevaatlik Markovi ahelate konspekt&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.math.uah.edu/stat/applets/MarkovChainExperiment.xhtml" target="_blank"&gt;Markovi Java simulator Mänguteooria kodulehel&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://mamchenkov.net/wordpress/2007/11/01/learning-about-markov-chain/" target="_blank"&gt;Väike nädalalõpu blogi..&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;* Aga otseloomulikult otsingumootorid annavad miljoneid vasteid.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Projektist endast&lt;/h3&gt;  &lt;p&gt;      Nagu eelnevalt mainisin oli eesmärk panna Markovi ahelate teadmised proovile ning nädalaprojekti raames kirjutada  töötav rakendus, mille töö põhineks markovi ahelal. Kuna varem olen sõpradega arutanud tänapäeva meedia tasemest ning alati jõudnud tõdemusele, et inimmõistus ei suuda sellist jama genereerida - selleks on vaja mingit masinlikku genereerimist . Ehk kui lugeda kollast meediat, siis võib tõdeda – tänapäeva uudis on lihtlause, millel pole mingit sisu. Kõige tobedam, mis meelde on jäänud:  Keanu Reeves tänkis autot :D Ahaa, kes meist pole kunagi autot tankinud. Ning üks põhjus miks sai valitud Eesti juhtivaim saasta-edastaja – see on keskendunud kõige tuntum kliki-põhisel ärimudelil töötav leht, siis müüvad sõnad on juba väljatoonitatud ja absurdist on lihtsam absurdust genereerida kui Epl.ee arvamuslugudest.&lt;/p&gt;  &lt;p&gt;Tööpõhimõte on lihtne ja jaguneb valdavalt 2ks:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;A. Andmete manipuleerimine (täiendamine, loendus)&lt;/strong&gt;&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Loe viimased uudised &lt;/li&gt;      &lt;li&gt;Loe sõna ja järgneva sõna paari esinemissagedus. &lt;/li&gt;      &lt;li&gt;Uuenda andmebaasi infot (&lt;a href="http://timgluz.blogspot.com/search?q=sqlite" target="_blank"&gt;SQLite&lt;/a&gt;). &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;strong&gt;B. Juhuteksti genereerimine&lt;/strong&gt;&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Vali juhuslikult esimene sõna . &lt;/li&gt;      &lt;li&gt;Hangi esimesele sõnale järgnevate sõnade loendist järgmine juhuslik sõna. &lt;/li&gt;      &lt;li&gt;Korda sammu 1 ja 2 kuni saabub kirjavahesümbol või läheneb twitterliku uudise piirile (~240märki). &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt; &lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_80sAoSXiYeA/SzbTWW2yufI/AAAAAAAAAh8/v3cNpKpbZrg/s1600-h/gossiPGenerator%5B3%5D.jpg"&gt;&lt;img style="border-width: 0px; display: inline;" title="gossiPGenerator" alt="gossiPGenerator" src="http://lh3.ggpht.com/_80sAoSXiYeA/SzbTWz8tOOI/AAAAAAAAAiA/_ThIyQ23bHI/gossiPGenerator_thumb%5B1%5D.jpg?imgmax=800" height="332" width="543" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;        Hetkel tekst meenutab mängu, kus inimesed on ketis ja igaüks kirjutab juhuslikult ühe sõna paberile ja lõpuks moodustub mingi absuridkomöödia . Jah, tegu väga naiivse lähenemisega, mis eeldab korraliku infovaramu olemasolu, et tekiks erinevaid ja põnevaid seoseid.  Silp-jaotuse, sõnade segmenteerimisega või transition-maatriksi astmetega saaks effekte juurde punuda. Juba väike täiendus andmebaasi – Juba lausealguse indeks annaks tulemusele juba kaubandusliku välimuse. Kuid kõik see jääb nädalavahetus eesmärkidest väljapoole.&lt;/p&gt;    &lt;p&gt;        Kuid nn sissejuhatavaks ülesandeks oli  teema päris hea – natuke progemist ja natuke teooriat. Ideelehele kirjutasin muidu ka lotonumbrite järjestuse hindamise programmi, kus saaks kasutada natuke rohkem Markovi ahelate teooriat – transitioni-maatriksite astmeid ja sammude aja- ja korduste analüüsi, kuid antud juhul tundus just nn “vanaprobleem” rohkem lahendamist  väärt. &lt;/p&gt;    &lt;p&gt;        Tänu &lt;a href="http://projecthamster.wordpress.com/" target="_blank"&gt;Gnome ajajälgimise vidinale Hamster&lt;/a&gt;  võin nüüd väga täpselt öelda ka ajakulu:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Raamatute peatükkide lugemine 2.5 H &lt;/li&gt;      &lt;li&gt;Raamatute ülesannete lahendamine (Matlabis) 2H &lt;/li&gt;      &lt;li&gt;E-loengud 3.5 tundi &lt;/li&gt;      &lt;li&gt;Programmeerimine kokku: 12H &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;       Sessi järgseks  lahendamiseks  sai ideelehele märgitud ka TSP geneetilise lahenduse ja Markovi simulatsiooni võrdlus ja analüüs.&lt;/p&gt;    &lt;p&gt;Tehistekstigeneraatori kood:&lt;/p&gt; &lt;/blockquote&gt; &lt;iframe style="padding: 0px; background-color: rgb(252, 252, 252); width: 98px; height: 115px;" title="Preview" marginheight="0" src="http://cid-d54e662c18499fdf.skydrive.live.com/embedicon.aspx/sorts/gossipGenerator" marginwidth="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8168131074713931539?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8168131074713931539/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/12/cweekend-project-gossipgenerator.html#comment-form' title='2 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8168131074713931539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8168131074713931539'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/12/cweekend-project-gossipgenerator.html' title='[C#]Weekend project: gossipGenerator'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_80sAoSXiYeA/SzbTWz8tOOI/AAAAAAAAAiA/_ThIyQ23bHI/s72-c/gossiPGenerator_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6998908956667897830</id><published>2009-12-23T19:19:00.004+02:00</published><updated>2009-12-27T05:29:32.598+02:00</updated><title type='text'>[MS] WIN7 vali mitu faili linnukesega?</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Surfates, leidsin huvitava lingi, kus samm-samm haaval õpetatakse kuidas kataloogist faile valida ilma Ctrl+Shift abita.&lt;/div&gt;&lt;div&gt;Enam ei pea põdema juhusliku hiirekliki pärast, mis valiku ära kaotab. &lt;/div&gt;&lt;div&gt;PS: Antud lingil võib leida palju muud Windows 7 nippe ja trikke - nt Win7 jõulurüüse panemine jne...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_80sAoSXiYeA/SzbUd3Gc2yI/AAAAAAAAAiE/XPxVc0bm2Fg/s1600-h/win7_Selection.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 451px; height: 254px;" src="http://4.bp.blogspot.com/_80sAoSXiYeA/SzbUd3Gc2yI/AAAAAAAAAiE/XPxVc0bm2Fg/s200/win7_Selection.jpg" alt="" id="BLOGGER_PHOTO_ID_5419752811059272482" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Allikas:&lt;/div&gt;&lt;a href="http://www.howtogeek.com/howto/7888/how-to-enable-check-boxes-in-explorer-in-windows-7/"&gt;How To Enable Check Boxes for Items In Windows 7 :: the How-To Geek&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6998908956667897830?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6998908956667897830/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/12/ms-win7-vali-mitu-faili-linnukesega.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6998908956667897830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6998908956667897830'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/12/ms-win7-vali-mitu-faili-linnukesega.html' title='[MS] WIN7 vali mitu faili linnukesega?'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_80sAoSXiYeA/SzbUd3Gc2yI/AAAAAAAAAiE/XPxVc0bm2Fg/s72-c/win7_Selection.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2426996315162751587</id><published>2009-12-23T17:39:00.000+02:00</published><updated>2009-12-23T17:39:25.106+02:00</updated><title type='text'>[DM]Singulaarsus: Andmekogumise ja andmekaitse piirid</title><content type='html'>&lt;div&gt;      Seekord arutleb Tom M. Mitchell (Carnegie Mellon ML õppetooli juht) andmekogumise ja andmetekaevandamise eetilisusest. Seda eelkõige kaevandamise eesmärkide ning isikuandmete väärkasutamise oht on antud uurimisvaldkondade areng on jõudnud tasemele, et on jõukohased juba laiemale seltskonnale kui teadusringkond.&lt;/div&gt;&lt;div&gt;      Kui varem olid andmekaeve põhivaldkondateks teaduslikke andmete analüüs või krediitkaardi analüüs, siis nüüd on fookus siirdunud inimeste geolokaalsete liikumiste ja huvide analüüsiks. Jah, neid on andud kasulikke tulemusi ummikute ja saaste vähendamisel ning võimaldanud vähendada viirushaiguste levikut, aga selliste andmete koondamisega kaasneb privaatsuserisk, millega me pole veel kokkupuutunud. (google: Singularity  wiki:  &lt;a href="http://en.wikipedia.org/wiki/Technological_singularity"&gt;Technological singularity&lt;/a&gt; )&lt;/div&gt;&lt;div&gt;       Just hiljuti H1N1/Seapaanika ajal kasutasid teadurid nutifoonide asukoha infot ja google otsingustatistikat, et &lt;/div&gt;&lt;div&gt;uurida viirushaiguse levikut.  &lt;/div&gt;&lt;div&gt;       Asjaolu, et andmeallikad iseseisvalt on täielikult anonüümsed omakorda ei tähenda andmetekogude koondamisel nad enam jäävad anonüümseks. See on oht, millega peaks varakult tegelema.&lt;/div&gt;&lt;div&gt;      Natuke naljakas tundus autori näide: "Näiteks kui sinu mobiilteenuse pakkuja ja perearsti praksised koondaksid info , siis võib käima lükkata teenuse, mis teataks et asusid just nakkushaige läheduses".  &lt;/div&gt;&lt;div&gt;     Ohh, seda paanikat trollides,trammides kui haige tuleb arsti juurest või mees külastas prostituuti ja saab pärast sõnumi, et viibisid HIV nakatunu juures.&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;     &lt;/div&gt;&lt;div&gt;-------------------------------------------------------------------------&lt;/div&gt;&lt;div&gt;Allikas:&lt;/div&gt;&lt;a href="http://www.cmu.edu/news/archive/2009/December/dec17_privacydataanalysis.shtml"&gt;Dec. 17: Carnegie Mellon Researcher Says Privacy Concerns Could Limit Benefits From Real-Time Data Analysis - Carnegie Mellon University&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2426996315162751587?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cmu.edu/news/archive/2009/December/dec17_privacydataanalysis.shtml' title='[DM]Singulaarsus: Andmekogumise ja andmekaitse piirid'/><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2426996315162751587/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/12/dmsingulaarsus-andmekogumise-ja.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2426996315162751587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2426996315162751587'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/12/dmsingulaarsus-andmekogumise-ja.html' title='[DM]Singulaarsus: Andmekogumise ja andmekaitse piirid'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5280815769885739306</id><published>2009-12-22T11:19:00.003+02:00</published><updated>2009-12-22T11:19:18.346+02:00</updated><title type='text'>Creating Custom .NET Controls with C# - O'Reilly Media</title><content type='html'>&lt;a href=http://ondotnet.com/pub/a/dotnet/2002/03/18/customcontrols.html?page=2&gt;Creating Custom .NET Controls with C# - O'Reilly Media&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Posted using &lt;a href="http://sharethis.com"&gt;ShareThis&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5280815769885739306?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5280815769885739306/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/12/creating-custom-net-controls-with-c-o_22.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5280815769885739306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5280815769885739306'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/12/creating-custom-net-controls-with-c-o_22.html' title='Creating Custom .NET Controls with C# - O&amp;#39;Reilly Media'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-7219061777201320754</id><published>2009-10-21T21:24:00.001+03:00</published><updated>2009-10-21T21:24:25.037+03:00</updated><title type='text'>[Varia] Tühitöö ja infoküllus.</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="left" src="http://www.spectrum.ieee.org/image/1236922" /&gt;&amp;#160; Tundub absurdne et informatsioon, mis on oluline insenerile, doktorile või juristile eduka töö tegemiseks, hakkab järjest enam segama põhitöö tegemist – vähendades kasuliku töö aega, pidev infomüra segab keskendumist ning infohulgaga toimetulemiseks peame raiskama järjest enam väärtuslikku vabaaega.&amp;#160; Täiesti tavaline on olukorrad, kui õhtul ja nädalavahetusel avatakse sülearvuti selleks et lugeda tööpostkasti. Järjest enam muutub tüüpiliseks nähtus - puhkus palmisaartel ja&amp;#160; töömeilide lugemine , et tööle naastes&amp;#160; meilikonto ääreni täis poleks.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Just sellise probleemi leevendamisest räägib &lt;a href="http://www.spectrum.ieee.org/" target="_blank"&gt;IEEE Spectrumi&lt;/a&gt; eelmise kuu väljaandes &lt;a href="http://www.nzeldes.com/" target="_blank"&gt;Nathan Zeldes&lt;/a&gt;. Nathan oli 90ndate keskpaigas Inteli Iisreali haru arvutisliku efektiivsuse manager, kelle tööülesandeks oli tehnoloogia abil tõsta töötaja kasutegurit ehk muuta töötaja ettevõtja jaoks kasulikumaks ning vähendada töötaja tühitööd. Kui 90ndate alguses lükkas e-post telefoni suhtluskanali liidrirollilt, alguses kiirendades ja lihtsustades suhtlust, siis peagi kaasnesid sellega alguses mainitud probleemid.&amp;#160; Nathan võttis antud probleemi tõsiselt ette – juhtides kodumaal pilootprojekti, mis osutus niivõrd effektiivseks, et tema soovitusi ja kogemusi levitati kogu Inteli ulatuses ning nüüdseks on ta asutanud iseseisva konsultatsiooni ettevõtte, mille eesmärgiks on jagada teadmisi ka teiste ettevõtetega, kel on tõsiseid probleeme infomüra ja tööefektiivsusega.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Kui efektiivseks tema uurimistöö siis kujunes? Nathan väidab,et tänu uutele töömeetoditele kahanes kirjade arv päevas tosinale ja kunagi pole lugemata kirju rohkem kui ekraanile mahub ! Tegu on tippastme juhi ja firmaomanikuga.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Nathani artiklist võib nopida hulgim infokilde. Huvitavaim e-kirja efektiivuse ja müravähendamise meetodiks oli e-kirja maksustamine väljamõeldud rahaga “serios” , mis on kasutusel&amp;#160; Seriosity&amp;#160; e-maili haldamise tarkvaras &lt;a title="Loe lähemalt siit..." href="http://www.nzeldes.com/" target="_blank"&gt;Attent&lt;/a&gt; .&amp;#160; Iga e-kirja niinimetatud hinna määrab kirja olulisus, suurus ja taaskasutususe võimalus(nt reply) .&amp;#160; Teised meetodid kätkesid endas koolituste läbiviimist või masinõppimise algoritmide kasutamist. &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Loe &lt;a href="http://www.spectrum.ieee.org/computing/it/how-to-beat-information-overload" target="_blank"&gt;Nathan Zeldese kirjutist IEEE Spectrumist&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-7219061777201320754?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/7219061777201320754/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/10/varia-tuhitoo-ja-infokullus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7219061777201320754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7219061777201320754'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/10/varia-tuhitoo-ja-infokullus.html' title='[Varia] Tühitöö ja infoküllus.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-4614075432641842656</id><published>2009-10-19T01:37:00.003+03:00</published><updated>2009-10-19T03:02:06.127+03:00</updated><title type='text'>[DM] Mänguteooriaga tutvumas</title><content type='html'>&lt;span style="font-size:85%;"&gt;Natuke twitterlik sissekanne, kuid mul oli vaja postitust kuhu saaks koondada kasulikke linke, sest liigun mitme tööjaama ja keskkonna vahel, seetõttu on blogi keskkond kõige neutraalsem ja kättesaadavam .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mängida on lahe.  Teooria mängimise kohta peaks samuti olema - jah ,  vaadates &lt;a href="http://academicearth.org/courses/game-theory"&gt;Yale ülikooli loengut Mänguteooriast ,   &lt;/a&gt;võib seda küll väita. Miks mänguteooria muutus mulle huvipakkuvaks - see aitab mul  lahendada(läbi mängida) ühte olulist ülesannet strateegiliselt ning plaanin  lähiajal ettevõtta ühe finantsasutuse kontorite koormuse simuleerimise ülesande - kui see osutub teostatavaks ja omab kasulikku väljundit.&lt;br /&gt;&lt;br /&gt; &lt;a href="http://academicearth.org"&gt;AcademicEarth.com&lt;/a&gt; lehel e-loenguid vaadates võib kiirelt tähele panna paar suurt erinevust minu &lt;a href="http://www.ttu.ee/"&gt;Alma Materi&lt;/a&gt; ja välismaa ülikoolide loengute vahel:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a) meie õppejõud on alamotiveeritud&lt;/li&gt;&lt;li&gt;b) puudub side loenguandja ja kuulaja vahel&lt;/li&gt;&lt;li&gt;c) koonerdatakse näidetega - pritsitakse teooriat - tihti mahalugemisena&lt;/li&gt;&lt;li&gt;d) loengumaterjalide jagamisega ollakse üldjuhul koonrid - vähestel on loengumaterjalid üleval&lt;/li&gt;&lt;li&gt;e) loengud ei süttida antud teemat edasi uurima&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Minu õppejõud  võivad samas vaimus jätkata - see polnud mõeldud kriitikana, vaid kiirelt silmatorganud erinevuste väljatoomisega. Samas  AcademicEarthi abil on võimalik saada asjast selgem ja laialdasem  ülevaade - sellest hoolimata et oled teises maailma otsas ning võibolla polegi  tudeng - peaasi et huvi oleks.&lt;br /&gt; &lt;span style="font-size:78%;"&gt;&lt;span style="font-size:85%;"&gt;Samas pean rõhutama fakti d) loengumaterjalidega ollakse meil ikka väga  koonrid  - see ei sobi kindlasti ennast e-pioneeriks pidava riigi esi-IT haridust pakkuva ülikooli juurde  või polegi meil midagi näidata?&lt;br /&gt; (10õpilast + õppejõud  igaüks vahib oma ekraani = baka vanema kursuse  IT loengud != hea e-loeng)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Veel üks huvitav loeng mida nädalavahetusel AcademicEarthis sai vaadatud:&lt;a href="http://academicearth.org/lectures/what-motivates-us-sex"&gt; http://academicearth.org/lectures/what-motivates-us-sex&lt;/a&gt; , kus räägitakse väga huvitavalt sellisest imelikust asjast kui sex (seks/sugu).  Kõlakate järgi pidi just see loeng olema antud keskkonna populaarseim loeng - kindlalt võin väita, et ligi 300 inimest on sellele pannud hindeks väga hea ja minu arust väga hea müügiloeng.&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------------------------&lt;br /&gt;Mänguteooriast wikis : &lt;a href="http://et.wikipedia.org/wiki/M%C3%A4nguteooria"&gt;http://et.wikipedia.org/wiki/M%C3%A4nguteooria&lt;/a&gt;&lt;br /&gt;Videolectures loengud:&lt;br /&gt;                                &lt;a href="http://videolectures.net/paris04_jarino_bcgt/"&gt;http://videolectures.net/paris04_jarino_bcgt/&lt;/a&gt;&lt;br /&gt;                                &lt;a href="http://videolectures.net/ssll09_pelillo_gath/"&gt;http://videolectures.net/ssll09_pelillo_gath/&lt;/a&gt;&lt;br /&gt;IN blogi sissekanne:  &lt;a href="http://blog.inkubaator.ee/kogemused-ja-soovitused/koostoost-labi-manguteooria-prisma"&gt;http://blog.inkubaator.ee/kogemused-ja-soovitused/koostoost-labi-manguteooria-prisma&lt;/a&gt;&lt;br /&gt;Toomas Hinnosaare blogi: &lt;a href="http://toomas-marit.hinnosaar.net/wp/2009/05/14/suureparased-manguteooria-materjalid-tasuta/"&gt;http://toomas-marit.hinnosaar.net/wp/2009/05/14/suureparased-manguteooria-materjalid-tasuta/&lt;/a&gt;&lt;br /&gt;Eelnevas blogis toodud raamatute otse link:&lt;a href="http://arielrubinstein.tau.ac.il/books.html"&gt; http://arielrubinstein.tau.ac.il/books.html&lt;/a&gt;&lt;br /&gt;Mathematica(+näited) : &lt;a href="http://mathworld.wolfram.com/GameTheory.html"&gt;http://mathworld.wolfram.com/GameTheory.html&lt;/a&gt;&lt;br /&gt;täiendav statistika loeng: &lt;a href="http://www.sauga.pri.ee/audentes/qmefiles.html"&gt;http://www.sauga.pri.ee/audentes/qmefiles.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-4614075432641842656?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/4614075432641842656/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/10/dm-manguteooriaga-tutvumas.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4614075432641842656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4614075432641842656'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/10/dm-manguteooriaga-tutvumas.html' title='[DM] Mänguteooriaga tutvumas'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-4477605248746477717</id><published>2009-10-19T00:32:00.001+03:00</published><updated>2009-10-19T00:35:16.059+03:00</updated><title type='text'>[DM] Kuidas süüa suurt andme-elevanti? Kasuta tuhat sipelgat.</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; &lt;a href="http://lh3.ggpht.com/_80sAoSXiYeA/StuJW7zYdzI/AAAAAAAAAgg/zx_9kMQ0iBM/s1600-h/untitled%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="PASW modeleri lõplik tulemus" border="0" alt="PASW modeleri lõplik tulemus" align="left" src="http://lh3.ggpht.com/_80sAoSXiYeA/StuJXYx26XI/AAAAAAAAAgk/vg7G-fH0SGM/untitled_thumb%5B3%5D.png?imgmax=800" width="292" height="239" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; Ühe käesoleva andmekaeve projekti käigus oli vaja analüüsida ülekande võrgustikke . Kuna tegu on suure andmehulgaga ja mulle reserveeritud kanali/kettamaht on piiratud, siis klassikaline&amp;#160; PASW Modeleri joonista-ja-täida päringukoostamine ei tulnud antud ülesande puhul&amp;#160; kõne alla.&amp;#160; Seetõttu pidin päringu koostama enamjaolt käsitsi, et saavutaks võimalikult effektiivse päringu.&lt;/p&gt;  &lt;p&gt;Isegi optimeeritud päringud ei läinud läbi – päring jooksis üsna ruttu kinni ja Teradata serveri poolt tuli teade &lt;em&gt;“No more spool space for userX”. &lt;/em&gt;Mulle reserveeritud kanal oli ummistunud – proovisin ahmida liiga suure tüki. &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Asusin guugeldama, mitte ühtegi mõistliku lahendust – põhjus mitmene: PASW modeler on väga kommertslik tööriist(tasuline, kinnine tootetugi,&amp;#160; ning nõrk kasutajakommuun), DM&amp;#160; on alles massides kanda kinnitamas, vähestel on piiratud ressursid või lepivad ühekordse IT osakonna abil tehtud päringuga.&amp;#160; Mina ei tahtnud IT tellimust teha – täitmine võtab 2nädalat aega- ma pole eriti hea ootaja ning aeglane andmeliikumine on rikkub DM olemust.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Üks võimalus oli teha päringuid väikeste juppide kaupa, sest teatud X arvu osapoolte kaasamisega jäi päringu koormus lubatud raamidesse– kuid käsitsi oleks elevandi jagamine&amp;#160; olnud äärmiselt tüütu(ca 6000 kopeerimist/lõikamist). Kus tegu on tüütu rutiinse protsessiga, siis tuleb automatiseerida - õnneks SPSS tiim on selle peale mõelnud – PASW Modeleris on võimalik skripti abil juhtida programmi ja töövoogu (täpsemalt saab lugeda manuses olevast pdf-raamatust.). Mul jäi nüüd välja mõelda võimalikud lahendusideed, valida neist parimad ning asuda kiirelt manuali läbivaatama, mille käigus joonida alla algoritmide jaoks olulised kohad . &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_80sAoSXiYeA/StuJXvsl-KI/AAAAAAAAAgo/FePv1djeKWs/s1600-h/untitledModelactivity1%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="untitledModelactivity1" border="0" alt="untitledModelactivity1" align="left" src="http://lh6.ggpht.com/_80sAoSXiYeA/StuJYOhWmjI/AAAAAAAAAgs/3p8hyml1xKc/untitledModelactivity1_thumb%5B2%5D.png?imgmax=800" width="142" height="142" /&gt;&lt;/a&gt; Kuidas ma siis elevandi jagamise lahendasin?&amp;#160; Jagasin ülesande tuhande sipelga vahel ära, kes iseseisvalt haaraksid kindla tüki ning toimetaksid selle pesasse, kus see koondatakse taas ühtseks andmehulgaks, mida saab juba kaevandama hakkata.&lt;/p&gt;    &lt;p&gt;PASW seisukohast lähenesin ühe lihtsama algoritmiga – loe väljundi tabelist osakonna kontonumbrid ning jaga need alamharudeks ning lõpus ühenda alamharude tulemused UNION node’ga ja hakka DM-suppi keetma. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Kahjuks on antud SPSS skriptimiskeel primitiivne – käske saab täita lineaarselt,&amp;#160; puudub goto lause –&amp;gt; seega pole alamprotseduuride võimalust . (Ühe idee kohaselt saab käivitada if-then lauses alamstriime, kuid see on kohmakas äkk- aga idee järgi töötav lahendus).&lt;/p&gt;  &lt;p&gt;ps: Kaasa pandud skript on illustratiivne – päring on igaksjuhuks moonutatud, et tähelepanu koondada rohkem koodile mitte stringis oleva SQL lause juppidele.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="348"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="183"&gt;Koodi jupike&lt;/td&gt;        &lt;td valign="top" width="163"&gt;SPSS Automation manual&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="183"&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-d54e662c18499fdf.skydrive.live.com/embedicon.aspx/.Public/SPSS/jurletad^_killing^_phanny.html" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;        &lt;td valign="top" width="163"&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-d54e662c18499fdf.skydrive.live.com/embedicon.aspx/.Public/SPSS/ScriptingAutomation.pdf" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="183"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="163"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-4477605248746477717?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/4477605248746477717/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/10/dm-kuidas-suua-suurt-andme-elevanti.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4477605248746477717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4477605248746477717'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/10/dm-kuidas-suua-suurt-andme-elevanti.html' title='[DM] Kuidas süüa suurt andme-elevanti? Kasuta tuhat sipelgat.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_80sAoSXiYeA/StuJXYx26XI/AAAAAAAAAgk/vg7G-fH0SGM/s72-c/untitled_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-944278190330831581</id><published>2009-10-14T21:37:00.002+03:00</published><updated>2009-10-14T22:34:15.452+03:00</updated><title type='text'>[C#] GTranslator Exceli käsuna vol.2</title><content type='html'>&lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_80sAoSXiYeA/StYaWkYGESI/AAAAAAAAAgQ/qyZMKPZFW-4/s1600-h/GTranslatorAddin%5B3%5D.jpg"&gt;&lt;img title="GTranslatorAddin" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="149" alt="GTranslatorAddin" src="http://lh4.ggpht.com/_80sAoSXiYeA/StYaXAEtoMI/AAAAAAAAAgU/J9XxTjwPJ0o/GTranslatorAddin_thumb%5B1%5D.jpg?imgmax=800" width="244" align="left" border="0" /&gt;&lt;/a&gt; Projekti 2sammu(maakuulamine, komponenti koostamine) läks ludinal, siis 3s etapp – panna asi tööle Exceli laiendina osutus ülimalt vaevaliseks . Lahenduse otsimine venis pikaks, alternatiivsed lahendused ei töödanud.&lt;/p&gt;    &lt;p&gt;Kuni peale väikest pausi, vesipiipu, kohvi ja juttu ajamisi hakkas tuuled muutuma – otsingut kitsendades sattusin peale stackoverflow postitusele, kus oli puust-ja-punaseks näide lausa olemas!  Järgmine kord, kuid C# DLL faililisades  saan  teate &lt;/p&gt;    &lt;p&gt;&lt;em&gt;“ Can't add a reference to the specified file ” , siis tuleb avada postitus: &lt;/em&gt;&lt;a href="http://stackoverflow.com/questions/1170794/a-simple-c-dll-how-do-i-call-it-from-excel-access-vba-vb6" target="_blank"&gt;&lt;strong&gt;A Simple C# DLL - how do I call it from Excel, Access, VBA, VB6 ?&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;/strong&gt;  ja järgida samm-sammult populaarsemas juhendis antud vihjeid.&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Samm 1&lt;/strong&gt; – muuta komponenti nõnda, et ühilduks VBA keskkonnaga. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Klassist CGTranslatorisse tuli lisada juurde täiendav using-käsk , liides ja olulisematele funktrioonidele täiendavaid kompilaatori korraldusi. Kui antud juhendi järgi olid kõik sammud läbitud, siis võis projekti lõpliku versiooni panna kompileeruma-  Build-seadistuses sättides ära lõpliku faili asukoha ning lisades linnukeske reale “Register for COM InterOp” .&lt;/p&gt;    &lt;p&gt;Niiviisi tehes õnnestus Exceli VBA IDE-s uue reference lisamine koheselt: klass GTranslator oli juba nimekirjas olemas, mul jäi lisada vaid vajalik linnuke ning vajutada OK. NB! Releasiga peab olema ettevaatlik – lõppfail kirjutatakse üle ning VBA töö võib oluliselt muutuda.&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Samm 2&lt;/strong&gt; – panna komponent laulma koos Exceli VBAga. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Eelneva VBA kogemuste olemasolu arvestades oli tegu väga lihtsa ülesandega. Mul tuli luua üks funktsioon &lt;em&gt;GTranslate&lt;/em&gt; ning selle testimiseks private omadusega protseduur.GTranslate algoritmi põhisammudeks oli : a) vahemiku teksti sisselugemine ja sobivale kujule viimine b) tõlkimine komponendi vahendusele ja  c) tõlkimise tulemuste sissekanne dokumenti.&lt;/p&gt;    &lt;p&gt;VOILA! Tulemus on näha siit:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_80sAoSXiYeA/StYaXtKcGnI/AAAAAAAAAgY/u1tnmdK2VwY/s1600-h/GTranslatorExcel%5B4%5D.jpg"&gt;&lt;img title="GTranslatorExcel" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="242" alt="GTranslatorExcel" src="http://lh6.ggpht.com/_80sAoSXiYeA/StYaYM_zzII/AAAAAAAAAgc/DaF--ELMkJU/GTranslatorExcel_thumb%5B2%5D.jpg?imgmax=800" width="473" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Esimesel real on keel ning veergudes vastava keele väljundid. Pildilt on näha kuidas antud valemit kasutada. NB! See pole ainuvõimalik moodus: ainuke nõutud väärtus on sõnade vahemik, seega  lähtekeel, sihtkeel ja tulemuse väljastamise vahemik on vabatahtlik. &lt;/p&gt;    &lt;p&gt;Mis juhtub kui vastet ei leita ? Google Translatori omapära tõttu jäetakse tundmatu osa tõlkimata.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PS: Versioonide segaduse vältimiseks, lisan uuendatud koodi ja töötava Exceli AddIn-i alles siis kui asi on lõpp- kasutajale kasutamiseks valmis ning hetkel töötan ideega, kus kood ja idee läheks ühisesse subversion haldamiskeskkonda, nt code.google.com.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Guugeldades selgus, et tegu pole uudse ideega- kuid enamik projekte on loodud omatarbeks ja minu 20 tunnine projekt ületab kõiki funktsionaalsuse ja kasutusvõimaluste poolest – pole paha, tegin endale pai.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt; Nt lehelt &lt;a title="http://mikaelspage.blogspot.com/2009/09/excel-function-for-translating-text.html" href="http://mikaelspage.blogspot.com/2009/09/excel-function-for-translating-text.html"&gt;http://mikaelspage.blogspot.com/2009/09/excel-function-for-translating-text.html&lt;/a&gt; võib leida alljärgneva vba lõigu:&lt;/em&gt;&lt;/p&gt;  &lt;pre  style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color:#fbfbfb;"&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  1: &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt; translate(textToBeTranslated &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;, resultLanguageCode &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;Optional&lt;/span&gt; sourceLanguageCode &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt; = "&lt;span style="color:#8b0000;"&gt;&lt;/span&gt;") &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  2:&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  3: &lt;span style="color:#008000;"&gt;'Translates given text with Google Translate&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  4: &lt;span style="color:#008000;"&gt;'Supported languages can be found here: http://code.google.com/intl/fi-FI/apis/ajaxlanguage/documentation/#SupportedLanguages&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  5: &lt;span style="color:#008000;"&gt;'If source language is omitted, Google Translate tries to detect it automatically&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  6: &lt;span style="color:#008000;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  7: &lt;span style="color:#008000;"&gt;'Function created by Mikael Thuneberg&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  8:&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt;  9:    &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; objhttp = CreateObject("&lt;span style="color:#8b0000;"&gt;MSXML2.ServerXMLHTTP&lt;/span&gt;")&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=" margin: 0em; width: 100%;  background-font-family:consolas,'Courier New',courier,monospace;font-size:12px;color:#fbfbfb;"&gt; 10:    URL = "&lt;span style="color:#8b0000;"&gt;http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;amp;q=&lt;/span&gt;" &amp;amp; textToBeTranslated &amp;amp; "&lt;span style="color:#8b0000;"&gt;&amp;amp;langpair=&lt;/span&gt;" &amp;amp; sourceLanguageCode &amp;amp; "&lt;span style="color:#8b0000;"&gt;%7C&lt;/span&gt;" &amp;amp; resultLanguageCode&lt;br /&gt;&lt;/pre&gt;&lt;pre face="consolas,'Courier New',courier,monospace" size="12px" color="#fbfbfb" style=" margin: 0em; width: 100%;  background-"&gt; 11:    objhttp.Open "&lt;span style="color:#8b0000;"&gt;GET&lt;/span&gt;", URL, &lt;span style="color:#0000ff;"&gt;False&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre face="consolas,'Courier New',courier,monospace" size="12px" color="#fbfbfb" style=" margin: 0em; width: 100%;  background-"&gt; 12:    objhttp.send ("&lt;span style="color:#8b0000;"&gt;&lt;/span&gt;")&lt;br /&gt;&lt;/pre&gt;&lt;pre face="consolas,'Courier New',courier,monospace" size="12px" color="#fbfbfb" style=" margin: 0em; width: 100%;  background-"&gt; 13:&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 14:    translate = objhttp.responseText&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 15:      translate = Right(translate, Len(translate) - InStr(1, translate, "&lt;span style="color:#8b0000;"&gt;translatedText&lt;/span&gt;") - 16)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 16:    translate = Left(Left(translate, InStr(1, translate, Chr(34)) - 1), 255)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 17:      &lt;span style="color:#0000ff;"&gt;If&lt;/span&gt; translate = "&lt;span style="color:#8b0000;"&gt; null, &lt;/span&gt;" &lt;span style="color:#0000ff;"&gt;Then&lt;/span&gt; translate = "&lt;span style="color:#8b0000;"&gt;Language not found&lt;/span&gt;"&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 18:&lt;br /&gt;&lt;/pre&gt;&lt;pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #fbfbfb"&gt; 19: &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Function&lt;/span&gt;&lt;/pre&gt;&lt;p&gt; &lt;/p&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-944278190330831581?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/944278190330831581/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/10/c-gtranslator-exceli-kasuna-vol2.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/944278190330831581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/944278190330831581'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/10/c-gtranslator-exceli-kasuna-vol2.html' title='[C#] GTranslator Exceli käsuna vol.2'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_80sAoSXiYeA/StYaXAEtoMI/AAAAAAAAAgU/J9XxTjwPJ0o/s72-c/GTranslatorAddin_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1114841093288148206</id><published>2009-10-14T15:45:00.002+03:00</published><updated>2009-10-14T20:52:29.831+03:00</updated><title type='text'>[C#] GTranslator Exceli käsuna.</title><content type='html'>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Idee peale tulin juhulikult. Nägin&amp;#160; kuidas ühika toanaaber meeleheitlikult proovis&amp;#160; meeletul hulgal sõnu tõlkida erinevatesse keeltesse. Töövahenditeks kasutas ta Excelit ja GoogleTranslatorit. Mulle paistis antud&amp;#160; tegevus&amp;#160; väga vaevaline ja tüütu.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mulle meenus üks&amp;#160; &lt;a href="http://sarviktaat.spaces.live.com/blog/" target="_blank"&gt;sarviktaadi blogi&lt;/a&gt; sissekanne valuutakonverteerimise ja veebiteenuste kasutamisest – miks mitte teha oma Exceli funktsioon =&lt;em&gt;GTranslate(&amp;lt;range&amp;gt;, &amp;lt;algkeel&amp;gt;, &amp;lt;sihtkeel&amp;gt;). &lt;/em&gt;Antud funktsioon loeks&amp;#160; vahemiku väärtused sisse ja Google Translatori abil tõlgiks antud keelte.&lt;/p&gt;  &lt;h5&gt;Tööplaani panin paika järgmiselt:&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;1) Uurida GTranslatori veebiteenuse päringut &lt;/li&gt;    &lt;li&gt;2) Moodustada multifunktsioonaalne Library Class (.dll)&amp;#160; aka tõlkekomponent&lt;/li&gt;    &lt;li&gt;3) Luua Exceli add-in, mis kasutaks komponenti ja haldaks andmete ettevalmistamist ja tulemuste haldamist. (Antud etapi edukas lahend on järgmises blogis.) &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Tööplaani lahendus:&lt;/h5&gt;  &lt;p&gt;1) Google Translatori poole saab pöörduda GET päringuga . Päringu formaat on täpsemalt toodud &lt;a href="http://code.google.com/intl/et-EE/apis/ajaxlanguage/documentation/reference.html" target="_blank"&gt;Google API lehel&lt;/a&gt;. Päringu tulemus antakse &lt;a href="http://json.org/" target="_blank"&gt;JSON formaadis&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Kuna ma olin laisk ja tahtsin projekti varem valmis saada kui ühikakaaslane omatõlkimisega , siis JSON haldamiseks võtsin appi &lt;a href="http://james.newtonking.com/projects/json-net.aspx" target="_blank"&gt;JSON.NET library&lt;/a&gt;. Mis osutus liiga võimsaks ja jäi vaid osaliselt lahendusse .&amp;#160; Nimetatud library valisin, et saaks kätt harjutada ka LINQ päringute moodustamisega, kuid seal esines “3xdebug” olukord ja jätsin selle osa vahele ja lahendasin kiiresti stringi splittimise ja massiividega.&lt;em&gt; (NB! Kui hästi antud olukorras töötaks&amp;#160; regulaaravaldised? TODO:&amp;#160; Kui tulevikus aega/motivatsiooni leian, siis kirjutan kergekaalulisema/kiirema library.)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;2) Ülevaatlik komponendi moodustamise näide : &lt;/p&gt;  &lt;p&gt;Täpsemalt saab vaadata allpool äratoodud sortsus. Loetavuse huvides ei hakka siia otsest&amp;#160; C# koodi kopeerima.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;päring: &lt;a title="http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;amp;q=hello%20world&amp;amp;langpair=en%7Cit&amp;amp;q=goodbye&amp;amp;langpair=en%7Cfr" href="http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;amp;q=hello%20world&amp;amp;langpair=en%7Cit&amp;amp;q=goodbye&amp;amp;langpair=en%7Cfr"&gt;&lt;em&gt;http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;amp;q=hello%20world&amp;amp;langpair=en%7Cit&amp;amp;q=goodbye&amp;amp;langpair=en%7Cfr&lt;/em&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; olulised osad: &lt;em&gt;“q= “ &amp;lt;tõlgitav sõna&amp;gt;&lt;/em&gt; ja &lt;em&gt;“langpair=” &amp;lt;lähtekeel&amp;gt; “|” &amp;lt;sihtkeel&amp;gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Lähtekeele loendi leiab siit:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;a title="http://code.google.com/intl/et-EE/apis/ajaxlanguage/documentation/reference.html#LangNameArray" href="http://code.google.com/intl/et-EE/apis/ajaxlanguage/documentation/reference.html#LangNameArray"&gt;http://code.google.com/intl/et-EE/apis/ajaxlanguage/documentation/reference.html#LangNameArray&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;päringu töötlemine – edu korral eralda sõnad ning väärdusta klassimuutuja ning loo tulemuse eriformaatidesse viimise funktsioonid. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;päringu tulemus:&lt;/em&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;{&amp;quot;responseData&amp;quot;: [{&amp;quot;responseData&amp;quot;:{&amp;quot;translatedText&amp;quot;:&amp;quot;ciao a tutti&amp;quot;},&amp;quot;responseDetails&amp;quot;:null,&amp;quot;responseStatus&amp;quot;:200},{&amp;quot;responseData&amp;quot;:{&amp;quot;translatedText&amp;quot;:&amp;quot;au revoir&amp;quot;},&amp;quot;responseDetails&amp;quot;:null,&amp;quot;responseStatus&amp;quot;:200}], &amp;quot;responseDetails&amp;quot;: null, &amp;quot;responseStatus&amp;quot;: 200}&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;sorts Skydrive kettal:&lt;/strong&gt; &lt;/p&gt; &lt;iframe title="Preview" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; width: 98px; padding-top: 0px; height: 115px; background-color: #fcfcfc" marginwidth="0" marginheight="0" src="http://cid-d54e662c18499fdf.skydrive.live.com/embedicon.aspx/sorts/CGTranslator.cs" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3) Kui eelmiste osadega läks alla 2tunni,siis seda osa ma valmis ei saanudki.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Algne idee oli VBA kood siduda eelmises etapis loodud komponendiga, kuid lahendus kukkus alguses ära: Excel arvas, et mul parem kui ma nii ei tee ehk sain veateateks “ Can't add a reference to the specified file ”. Netis sobivat ja töötavat lahendust algul ei leidnud, siis viskasin selle lähenemise kõrvale. (ps: võid vaadata kommentaariumisse)&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Netis surfamise tulemusena jäi silma võlusõnad &lt;em&gt;VSTO&lt;/em&gt; ja &lt;em&gt;Exceli Add-In VS2008&lt;/em&gt; abil, siis proovisin seda lahendust. Kuna selle lahendusega polnud ma varem kokkupuutunud, siis tutvustavate video sisu jäi arusaamatuks ja antud lahendus ei hakkanud tööle.&lt;/p&gt;  &lt;p&gt; Tänase seisuga&amp;#160; (2009-oct-14) on asi alles lahendamisel, et ma kuidagi võistlust ei kaotaks – siis ehitasin kiiruga DLL komponendile lihtsakoelise vormi ümber. Vormile sõnade sisestamine on ükshaaval on liiga tuim, siis lisasin võimaluse -&amp;#160; sõnu saab sisestada ühte tekstikasti ning selleks et&amp;#160; neid ei tõlgitaks koos, tuleb need eraldada semikooloniga (;)&amp;#160; . Semikooloni puudumisel läheb tõlkimisele kogu jora. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;nt: life is beatiful; –tõlgitakse kogu väljend&lt;/em&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;life; is; beatiful; – sõnad eraldi&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;strong&gt;Formi sorts:&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;strong&gt;Kompileeritud kood:&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;         &lt;p&gt;&lt;iframe title="Preview" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; width: 98px; padding-top: 0px; height: 115px; background-color: #fcfcfc" marginwidth="0" marginheight="0" src="http://cid-d54e662c18499fdf.skydrive.live.com/embedicon.aspx/sorts/Form1.cs" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="200"&gt;         &lt;p&gt;&lt;iframe title="Preview" style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; width: 98px; padding-top: 0px; height: 115px; background-color: #fcfcfc" marginwidth="0" marginheight="0" src="http://cid-d54e662c18499fdf.skydrive.live.com/embedicon.aspx/sorts/WindowsFormsApplication1.exe" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Antud asi on lahendamisel –&amp;gt; Antud Exceli laiend osutuks mullegi kasulikuks. Kuid vaja on natuke tutvuda Exceli vidinate loomisega VS2008 abil. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_80sAoSXiYeA/StXH6RrotRI/AAAAAAAAAgI/htFq1hgpgbE/s1600-h/GTranslator%5B3%5D.jpg"&gt;&lt;img title="GTranslator" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="338" alt="GTranslator" src="http://lh6.ggpht.com/_80sAoSXiYeA/StXH6yuxuoI/AAAAAAAAAgM/3xP1xzc4HUg/GTranslator_thumb%5B1%5D.jpg?imgmax=800" width="391" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;PS: 24H hiljem on mul töötav lahendus olemas –&amp;gt; Nüüd on suurem töö alles ees: muuta kasutaja sõbralikumaks.&lt;/p&gt;  &lt;p&gt;3nda etapi kirjeldus ja lahendus tuleb järgnevas postituses.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1114841093288148206?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1114841093288148206/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/10/c-gtranslator-exceli-kasuna.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1114841093288148206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1114841093288148206'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/10/c-gtranslator-exceli-kasuna.html' title='[C#] GTranslator Exceli käsuna.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_80sAoSXiYeA/StXH6yuxuoI/AAAAAAAAAgM/3xP1xzc4HUg/s72-c/GTranslator_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6115879643108433694</id><published>2009-07-08T17:24:00.003+03:00</published><updated>2009-07-08T17:30:36.658+03:00</updated><title type='text'>[DM] Knime väike nipp graafikute värvimiseks.</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="font-family:sans-serif;"&gt;Mul tuli ühe projekti käigus kasutada Parallel Coordinates graafikut.&lt;br /&gt;Antud osa on Knimes väga lihtne - lisa lihtsalt vastav &lt;/span&gt;node andmevaatest. Graafik tuli must-valge,&lt;br /&gt;mis on kahjuks raskelt hoomatav ja ei paljasta nii palju infot kui seda teeks värviline graafik.&lt;br /&gt;&lt;br /&gt;&lt;div width="60%" align="left"&gt;&lt;b&gt;Kuidas lisada KNIME graafikusse värve?&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Ehk tegu on sellise probleemiga.&lt;img src="http://lh3.ggpht.com/_80sAoSXiYeA/SlSqcqg08uI/AAAAAAAAAd8/SV8QaL9tVp4/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" height="194" width="387" /&gt;&lt;br /&gt;Seal ,kus jooned lähevad juba tihedamaks, on keeruline eristada &lt;div align="left"&gt; positiivse testi tulemust  negatiivsest. Ja mõne huvitava kurvi tabamine&lt;br /&gt;võib jääda märkamatuks. Alljärgnevalt näitan, kuidas on võimalik antud graafikule&lt;br /&gt;lisada värve.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Värvi lisamise sammud: &lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Lisa Data View menüüst pildil olevat node'id mudelisse ning lisa ühendused.&lt;/b&gt;&lt;br /&gt;&lt;img src="http://lh4.ggpht.com/_80sAoSXiYeA/SlSq5nTpGhI/AAAAAAAAAeA/SSERsnklSNY/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px;" /&gt;&lt;br /&gt;&lt;b&gt;2. Seadista lisatud node'id.&lt;/b&gt;&lt;br /&gt;Kõide olulisem on seadistada Color Manageri. Tähelepanu tuleb pöörata värvitava suurusele ning jaotusele.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh3.ggpht.com/_80sAoSXiYeA/SlSrYue4JfI/AAAAAAAAAeE/X62TSEsRO0c/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nüüd ongi valmis . Tulemuse vaatamiseks piisab Parallel Coordinates graafilisel sümbolil teha parem-klõps ning valida käsklus "Execute".&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Tulemuseks saad sarnase graafiku:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_80sAoSXiYeA/SlStPJFU6PI/AAAAAAAAAeI/URUpMWBnoiY/s1600-h/Parallel+CoordinatesColor.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 404px; height: 164px;" src="http://3.bp.blogspot.com/_80sAoSXiYeA/SlStPJFU6PI/AAAAAAAAAeI/URUpMWBnoiY/s320/Parallel+CoordinatesColor.png" alt="" id="BLOGGER_PHOTO_ID_5356096332498266354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6115879643108433694?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6115879643108433694/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/07/dm-knime-vaike-nipp-graafikute.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6115879643108433694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6115879643108433694'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/07/dm-knime-vaike-nipp-graafikute.html' title='[DM] Knime väike nipp graafikute värvimiseks.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_80sAoSXiYeA/SlSqcqg08uI/AAAAAAAAAd8/SV8QaL9tVp4/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2527542893530839884</id><published>2009-06-24T13:32:00.001+03:00</published><updated>2009-06-24T13:32:28.937+03:00</updated><title type='text'>[C#] Regulaaravaldiste generaator</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Geniaalne veebipõhine &lt;a href='http://txt2re.com/index-csharp.php3?s=24:Jun:2009%20%22This%20is%20an%20Example%21%22&amp;amp;14&amp;amp;10' target='_blank'&gt;regulaaravaldiste generaator txt2re&lt;/a&gt;. &lt;br/&gt;Aitas mul saada selgema arusaama regulaaravaldistest ning pealegi saab rakendus &lt;br/&gt;hakkama vajaliku programmikoodi genereerimisega, olgu selleks PERL, C# , Ruby  või C. &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2527542893530839884?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2527542893530839884/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-regulaaravaldiste-generaator.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2527542893530839884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2527542893530839884'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-regulaaravaldiste-generaator.html' title='[C#] Regulaaravaldiste generaator'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6666061222732803939</id><published>2009-06-21T14:32:00.008+03:00</published><updated>2009-06-21T15:00:05.677+03:00</updated><title type='text'>[C#] Sqlite näidisklass ja  pildifailidega ümberkäimine.</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Hiljutise nädalavahetuse projekti - MovieBrowser - oli vaja mul netist lugeda pisipilt, sisestada pilt andmebaasi ja hiljem kuvada soovitud formis.&lt;br /&gt;&lt;br /&gt;1.Pildi lugemine veebilehelt ja sisestamine Sqlite andmebaasi kui BLOB väli.&lt;br /&gt;&lt;div style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; ReadMoviePic(&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; sWebdata)&lt;br /&gt;      {&lt;br /&gt;          CDataBase db = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; CDataBase();&lt;br /&gt;          &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; rowID = &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;;&lt;br /&gt;          Match temp;&lt;br /&gt;          &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; urlPic = &lt;span style="color: rgb(255, 0, 255);"&gt;""&lt;/span&gt;;&lt;br /&gt;          &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; sql =&lt;span style="color: rgb(255, 0, 255);"&gt;""&lt;/span&gt;;&lt;br /&gt;          &lt;span style="color: rgb(0, 0, 255);"&gt;//--eralda loetud veebilehelt pildi url&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;            temp = Regex.Match(sWebdata,"((&lt;a).*?(primary-photo)).*?(&gt;)"); // eraldab lingi raami&lt;br /&gt;          temp = Regex.Match(temp.Value,"(http).*?(&gt;)"); //eraldab toor lingi&lt;br /&gt;&lt;/a).*?(primary-photo)).*?(&gt;&lt;/pre&gt;            &lt;span style="color: rgb(0, 0, 255);"&gt;//eraldab toor lingi&lt;/span&gt;&lt;br /&gt;          urlPic = temp.Value;&lt;br /&gt;          &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; (urlPic.Length == &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;)&lt;br /&gt;          { urlPic = &lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;a href="http://i.media-imdb.com/images/SFe8dc8ed3d786ce2d03c60bd6bc16d4c8/intl/en/title_addposter.jpg"&gt;http://i.media-imdb.com/images/SFe8dc8ed3d786ce2d03c60bd6bc16d4c8/intl/en/title_addposter.jpg&lt;/a&gt;"&lt;/span&gt;; }&lt;br /&gt;          &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;          { urlPic = urlPic.Substring(&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;, urlPic.LastIndexOf(&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(107, 89, 206);"&gt;\"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;)); }&lt;br /&gt;          &lt;span style="color: rgb(0, 0, 255);"&gt;//--loe leitud urlilt biti jada&lt;/span&gt;&lt;br /&gt;          &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;          {&lt;br /&gt;              WebClient client = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; WebClient();&lt;br /&gt;              &lt;span style="color: rgb(0, 0, 255);"&gt;// Set user agent and also accept-encoding headers.&lt;/span&gt;&lt;br /&gt;              client.Headers[&lt;span style="color: rgb(255, 0, 255);"&gt;"User-Agent"&lt;/span&gt;] = &lt;span style="color: rgb(255, 0, 255);"&gt;"Mozilla/4.0"&lt;/span&gt;;&lt;br /&gt;              &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] blob = client.DownloadData(urlPic);&lt;br /&gt;&lt;br /&gt;              &lt;span style="color: rgb(0, 0, 255);"&gt;//--sisesta antud biti jada pildi baasi&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;(blob.Length &amp;gt;&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt; )&lt;br /&gt;              {&lt;br /&gt;                  &lt;span style="color: rgb(0, 0, 255);"&gt;//päringu kuju: //command.CommandText = "INSERT INTO PHOTOS (PHOTO) VALUES (@photo)";&lt;/span&gt;&lt;br /&gt;                  sql = &lt;span style="color: rgb(255, 0, 255);"&gt;"INSERT INTO movies_images (binary) VALUES (@photo); "&lt;/span&gt;;&lt;br /&gt;                  sql += &lt;span style="color: rgb(255, 0, 255);"&gt;"SELECT last_insert_rowid() AS RecordID;"&lt;/span&gt;;&lt;br /&gt;                  &lt;span style="color: rgb(0, 153, 0);"&gt;//sqLite omapära, et saaks kätte sisestava pildi rea id numbri&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                  &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;.TryParse(db.ExecuteScalarQuery(sql, blob), &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;out&lt;/b&gt;&lt;/span&gt; rowID);&lt;br /&gt;              }&lt;br /&gt;              &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; rowID;&lt;br /&gt;          }&lt;br /&gt;          &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;          {&lt;br /&gt;              &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;;&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;2. Pildi lugemine andmebaasist ja kasutajavormil kuvamine:&lt;br /&gt;&lt;pre class="colorhtml"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//--andmebaasi klassi objekti deklareerimine&lt;/span&gt;&lt;br /&gt;CDataBase db = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; CDataBase();&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//lisa veel pilt &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] blobData = db.GetBlob(&lt;span style="color: rgb(255, 0, 255);"&gt;"Select binary From movies_images Where id="&lt;/span&gt; + picID);&lt;br /&gt;MemoryStream strBlobData = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; MemoryStream(blobData);&lt;br /&gt;pbMovie.Image = Image.FromStream(strBlobData); &lt;span style="color: rgb(0, 0, 255);"&gt;//pbMovie - formil olev pildikasti nimi&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Sqlite andmebaasi liidestav klass:&lt;br /&gt;&lt;pre class="colorhtml"&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System.Linq;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System.Data.SQLite;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System.Data;&lt;br /&gt;&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; System.IO;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/span&gt; movieBrowser&lt;br /&gt;{&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; CDataBase&lt;br /&gt;{&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;const&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; DB_FILE = &lt;span style="color: rgb(255, 0, 255);"&gt;"moviesDB.s3db"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; SQLiteConnection sqlite_conn;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; SQLiteCommand sqlite_cmd;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//konstruktor&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; CDataBase()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; (File.Exists(DB_FILE))&lt;br /&gt;    {&lt;br /&gt;        sqlite_conn = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; SQLiteConnection(&lt;span style="color: rgb(255, 0, 255);"&gt;"Data Source="&lt;/span&gt; + DB_FILE + &lt;span style="color: rgb(255, 0, 255);"&gt;";Version=3;New=True;Compress=True;"&lt;/span&gt;);&lt;br /&gt;        sqlite_cmd = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; SQLiteCommand(sqlite_conn);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//destruktor&lt;/span&gt;&lt;br /&gt;~CDataBase()&lt;br /&gt;{&lt;br /&gt;    sqlite_conn.Close();&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//--kui pole tegu päringuga, vaid andmete manipuleerimisega&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; ExecuteNonQuery(&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; Sql)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        sqlite_conn.Open();&lt;br /&gt;        sqlite_cmd.CommandText = Sql;&lt;br /&gt;        &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; rowsUpdated = sqlite_cmd.ExecuteNonQuery();&lt;br /&gt;        sqlite_conn.Close();&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; rowsUpdated;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; (Exception e)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(&lt;span style="color: rgb(255, 0, 255);"&gt;"Error with Data importing to Database.&lt;/span&gt;&lt;span style="color: rgb(107, 89, 206);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt;+ e.Message);&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//-kui soovitakse vaid ühte suurust &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; ExecuteScalarQuery(&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; Sql)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        sqlite_conn.Open();&lt;br /&gt;        sqlite_cmd.CommandText = Sql;&lt;br /&gt;        var &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/span&gt; = sqlite_cmd.ExecuteScalar();&lt;br /&gt;        sqlite_conn.Close();&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; (&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/span&gt; != &lt;span style="color: rgb(255, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;        { &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/span&gt;.ToString(); }&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;"0"&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; (Exception e)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(&lt;span style="color: rgb(255, 0, 255);"&gt;"Error with scalar query.&lt;/span&gt;&lt;span style="color: rgb(107, 89, 206);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt; + e.Message);&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;""&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//--lisa pilt------------------------------------väike override&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//-kui soovitakse vaid ühte suurust &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; ExecuteScalarQuery(&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; Sql, &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] pic)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        sqlite_conn.Open();&lt;br /&gt;        sqlite_cmd.CommandText = Sql;&lt;br /&gt;        sqlite_cmd.Parameters.Add(&lt;span style="color: rgb(255, 0, 255);"&gt;"@photo"&lt;/span&gt;, DbType.Binary,pic.Length).Value = pic;&lt;br /&gt;&lt;br /&gt;        var &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/span&gt; = sqlite_cmd.ExecuteScalar();&lt;br /&gt;        sqlite_conn.Close();&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; (&lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/span&gt; != &lt;span style="color: rgb(255, 0, 255);"&gt;null&lt;/span&gt;)&lt;br /&gt;        { &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/span&gt;.ToString(); }&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;"0"&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; (Exception e)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(&lt;span style="color: rgb(255, 0, 255);"&gt;"Error with scalar query.&lt;/span&gt;&lt;span style="color: rgb(107, 89, 206);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt;"&lt;/span&gt; + e.Message);&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;""&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//-- kui soovitakse pärida andmetabelit   //lisa pilt andmebaasi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; DataTable GetDataTable(&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; Sql)&lt;br /&gt;{&lt;br /&gt;    DataTable dtData = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; DataTable();&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        sqlite_conn.Open();&lt;br /&gt;        sqlite_cmd.CommandText = Sql;&lt;br /&gt;&lt;br /&gt;        SQLiteDataReader reader = sqlite_cmd.ExecuteReader();&lt;br /&gt;        dtData.Load(reader);&lt;br /&gt;        reader.Close();&lt;br /&gt;        sqlite_conn.Close();&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; dtData;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; (Exception ex)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(&lt;span style="color: rgb(255, 0, 255);"&gt;"Cant read Database tables. &lt;/span&gt;&lt;span style="color: rgb(107, 89, 206);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);"&gt; "&lt;/span&gt;+ ex.Message);&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(255, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;//loe pilt andmebaaist&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] GetBlob(&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt; sql)&lt;br /&gt;{&lt;br /&gt;    sqlite_conn.Open();&lt;br /&gt;    sqlite_cmd.CommandText = sql;&lt;br /&gt;    &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] buffer = &lt;span style="color: rgb(255, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    SQLiteDataReader reader = sqlite_cmd.ExecuteReader();&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;while&lt;/b&gt;&lt;/span&gt; (reader.Read())&lt;br /&gt;    {&lt;br /&gt;         buffer = GetBytes(reader);&lt;br /&gt;    }&lt;br /&gt;    reader.Close();&lt;br /&gt;    sqlite_conn.Close();&lt;br /&gt;    &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; buffer;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;    &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] GetBytes(SQLiteDataReader reader)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;const&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; CHUNK_SIZE = &lt;span style="color: rgb(255, 0, 255);"&gt;2&lt;/span&gt; * &lt;span style="color: rgb(255, 0, 255);"&gt;1024&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] buffer = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[CHUNK_SIZE];&lt;br /&gt;        &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;long&lt;/b&gt;&lt;/span&gt; bytesRead;&lt;br /&gt;        &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;long&lt;/b&gt;&lt;/span&gt; fieldOffset = &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt; (MemoryStream stream = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; MemoryStream())&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;while&lt;/b&gt;&lt;/span&gt; ((bytesRead = reader.GetBytes(&lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;, fieldOffset, buffer, &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;, buffer.Length)) &amp;gt; &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[] actualRead = &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;byte&lt;/b&gt;&lt;/span&gt;[bytesRead];&lt;br /&gt;                Buffer.BlockCopy(buffer, &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;, actualRead, &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;, (&lt;span style="color: rgb(41, 138, 82);"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;)bytesRead);&lt;br /&gt;                stream.Write(actualRead, &lt;span style="color: rgb(255, 0, 255);"&gt;0&lt;/span&gt;, actualRead.Length);&lt;br /&gt;                fieldOffset += bytesRead;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: rgb(165, 40, 41);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; stream.ToArray();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6666061222732803939?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6666061222732803939/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-sqlite-naidisklass-ja-pildifailidega.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6666061222732803939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6666061222732803939'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-sqlite-naidisklass-ja-pildifailidega.html' title='[C#] Sqlite näidisklass ja  pildifailidega ümberkäimine.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3544733393638687345</id><published>2009-06-20T19:32:00.001+03:00</published><updated>2009-06-20T19:32:50.095+03:00</updated><title type='text'>[DM] Andmekaeve tööriistad ja võistlus.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;font face='sans-serif'&gt;Seoses&lt;a href='http://mill.ucsd.edu/index.php' target='_blank'&gt; UC San Diego korraldatava andmekaeve võistlusega&lt;/a&gt; on mul tarvis läinud erinevaid andmekaeve tööriistu. &lt;br/&gt;Seetõttu olen viimase nädala jooksul olen testinud&lt;/font&gt; mitut erinevat tööriista. Suurt rõhku olen pannud kasutamislihtsusele ja võimalusterohkusele.&lt;br/&gt;Kuna võistluste tähtaeg on iga päevaga lähenemas, siis pole mul aega raisata programmiga tutvumisele - paar netis olevat videot ja kohe kasutama. &lt;br/&gt;Samas programm ei tohi olla liiga lihtne - peab olema võimalus jälgida algoritmide täitmist ja korrektsust.&lt;br/&gt; &lt;br/&gt;Katsetatud tööriistad:&lt;br/&gt;&lt;br/&gt;*) Spss Clementine - lihtne, kiire ja lollikindel. Samas statistika pool kohmakas- korrelatsiooni järgi muutujate filtreerimine ebamugav.  Suurimaks miinuseks kättesaadavus ja hind. Kuid näpu saab harjutada demo versioonil.&lt;br/&gt;&lt;br/&gt;Alljärgnevad on vabavaralised tööriistad.&lt;br/&gt;*) &lt;a href='http://www.ailab.si/Orange/' target='_blank'&gt;Orange&lt;/a&gt; - Sloveenide tööriist, tasuta ja vabavaraline nagu veebileht väidab. Sellega kaugemale ei jõudnud. Installimisele kulutasin 3tundi ja  jäi ikka vinguma Python 2.4 versiooni puudumise üle, sai neid sümboolseid linke loodud nii et tuline. &lt;br/&gt;*) &lt;a href='http://rapid-i.com/content/blogcategory/38/69/' target='_blank'&gt;RapidMiner&lt;/a&gt; - mulle meeldis statistika pool, kuid muutujate valimine ja filtreerimine oli pain-in-ass, et lihtsamatki algoritmi tööle saada. &lt;br/&gt;*) &lt;a href='http://www.cs.waikato.ac.nz/ml/weka/' target='_blank'&gt;Weka&lt;/a&gt; - klassika Uus-Meremaalt. Lai algoritmide valik, tugev statistiline pool. Kuid midagi jäi samas puudu - ahjaa, suured andmehulgad poovad alljooksva Java virtuaalmasina kinni ja sinnamaale ülesande lahendamine ka jäi. &lt;br/&gt;*)&lt;a href='http://rattle.togaware.com/' target='_blank'&gt; R ja Rattle&lt;/a&gt; - hea statistika pool, kuna tegu ikkagi statistika tööriista laiendus.Suurem andmetetöötlus tuleb teha väljaspool tööriista. Miinuseks kitsas algoritmide valik. Kuid sellest hoolimata minu üks põhitöövahenditest. &lt;br/&gt;*) &lt;a href='http://www.knime.org/introduction/screencasts' target='_blank'&gt;KNIME&lt;/a&gt; - tänane uus lemmik - super vabavaraline kompott:  Graafiline pool nagu Spss Clementine'l, algoritmid Wekalt ja statistika R-lt :D . &lt;br/&gt;                 Huvitav on asjaolu, et programm põhineb Eclipsel, mis on eelkõige tuntud kui Java IDE. &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3544733393638687345?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3544733393638687345/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/06/dm-andmekaeve-tooriistad-ja-voistlus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3544733393638687345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3544733393638687345'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/06/dm-andmekaeve-tooriistad-ja-voistlus.html' title='[DM] Andmekaeve tööriistad ja võistlus.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6083522577497854928</id><published>2009-06-08T05:12:00.004+03:00</published><updated>2010-01-05T21:54:29.017+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Weekend project'/><title type='text'>[C#] Järeldused weekend projectist vol1 - SQLite</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;b&gt;Mis on SQLite&lt;/b&gt;&lt;br /&gt;      SQLite on lahtise koodiga andmebaasimootor, mis ei nõua töötamiseks  võrku, spetsiaalset serverit, platvormi,protsessi,  ega installimist. Andmete manipuleerimine ja talletamine toimub täiesti tavalises failis, mis ei tähenda et ta on nõrguke. Oh ei, ta saab edukalt hakkama mitmeste joinidega, indeksite, trigeritega ja vaadetega,. Samas ta pole mõeldud asendama võimsaid andmebaasi mootoreid, vaid eelkõige on SQLite eesmärk toetada väikseid/kesmise suurusega rakendusi, mis peavad hakkama saama piiratud mäluressursiga või protsessorivõimsusega  keskkonnas (mp3 seadmed, iPhone etc).&lt;br /&gt;      Seetõttu on SQLite kood hoolikalt optimeeritud ja testitud- mille kohta nende ametlik koduleht väidab, et automaatse testi tulemuse kaetus  on lausa 99%. Testimisest on lähemalt räägitud ametlikul kodulehel.&lt;br /&gt;      Tänu lihtsusele ja töökindlusele on ta saavutanud suure populaarsuse. Ta on leidnud kasutust nii FireFox, Skype kui McAfee AV juures . Suure populaarsuse tõttu on leiab internetist küllalt abimaterjale ning abistavad programmikesi. Nt on olemas isegi &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5817"&gt;Firefoxi täiendvidin&lt;/a&gt;, mille abil saab hallata SQLite'i sisu.&lt;br /&gt;       Failipõhise andmebaasiga tekib kartus, et mis saab turvalisusega.  SQLite arendajad on selle peale mõelnud. Nad on valmis teinud SQLite laienduse (Encryption Extension), mis kasutab andmebaasi faili krüptimiseks 128/256bitis &lt;a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard"&gt;AES krüptimisstandardit&lt;/a&gt;, mille abil fail välisele kasutajale raskesti mõistetavaks ja paistab segase märkide jadana. Sealjuures on huvitav, et krüptimise tõttu ei toimu erilist järele andmist jõudlusest. Kuid see laiendus on juba eraldi tarkvara ning selle eest tuleb maksta. Tundlikuma andmed saad ise krüpteerida kasutatava keele vahenditega.&lt;br /&gt;     Tulihingelisemad  SQLite pooldajad väidavad, kui  paned tähele, et jõudlus on väiksem kui tuntud andmebaasisüsteemidel, siis pole sa ära kasutanud täit SQLite võimalusi  töö optimeerimiseks, millest võid &lt;a href="http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html" target="_blank"&gt;lähemalt lugeda siit&lt;/a&gt;.&lt;br /&gt;      SQLite toetab ANSI-SQL-92 standardit. Kuid on mõned harjumatused. INSERT INTO mitmesse rea sisestamisel , tuleb mitu INSERT INTO lauset sisestada järjest, MySQL tuntud lühemat versiooni ta ei veel toeta, see pole standardi järgi vajalikki. INSERT INTO võimaldab sisestada ka tühju ridu kujul: INSERT INTO test () VALUES (); . Või SELECT ja INSERT lause sümbioos: SELECT A1,A2,A3 INTO (:P1, :P3, :P3) FROM EXAMPLE;.&lt;br /&gt;&lt;b&gt;Kasutusvaldkond:&lt;/b&gt;&lt;br /&gt;Mõned head rakendused, milleks SQLite sobib:&lt;br /&gt;*) seadistuste haldamiseks, kui tunned ennast SQL-s kodusemalt kui XML-s.&lt;br /&gt;*) püsiv puhverdamine -- suurte andmebaasi päringute vahetalletamine, kasulik juhul kui pole võimalik ega kasulik põhiandmebaasi pööruda või vaja talletada infot, mis poleks kättesaadav peale süsteemi taaskäivitamist.&lt;br /&gt;*) andmete tükeldamine ja jaotamine -- eelkõige põhiandmebaasi ja exceli vahelise lünga täitmiseks&lt;br /&gt;*) ühe kasutaja põhised rakendused.&lt;br /&gt;*) kirjade , blogide arhiveerimine, sisuhaldus&lt;br /&gt;*) lihtsaks versiooni halduseks&lt;br /&gt;*) failide haldus&lt;br /&gt;*) protsesside ja rakenduste vaheline andmete jagamine.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Suuremad plussid:&lt;/b&gt;&lt;br /&gt;*) kiire&lt;br /&gt;*) töökindlus&lt;br /&gt;*) liberaalne litsentseerimine&lt;br /&gt;*) lihtne ja rafineeritud&lt;br /&gt;*) &lt;a href="http://en.wikipedia.org/wiki/Binary_large_object"&gt;BLOB&lt;/a&gt; toetus&lt;br /&gt;*) täistekst otsing&lt;br /&gt;*) ühenduste jagamine&lt;br /&gt;*) lai sümbolite kodeering , nt UTF8, UTF16, ISO-d&lt;br /&gt;*) v3 alates toetab kirjutamise ajal lugemist&lt;br /&gt;*) toetab &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;ACID transaktsioone &lt;/a&gt;&lt;br /&gt;*) väike ~300kB kuit ülitubli&lt;br /&gt;*) dünaamilised tüübid&lt;br /&gt;*) ATTACH lausega teise baasi külge haakimine&lt;br /&gt;*) joinitakse nii-nagu-on - ei leita optimaalsemat joinimist&lt;br /&gt;&lt;b&gt;Miinused, nõrgemad pooled:&lt;/b&gt;&lt;br /&gt;*) Ei toeta väliseid võtmeid&lt;br /&gt;*) faili-põhine lukustamine, pole Grant ja Revoke võimalust ehk  ei toeta kasutajate põhist lähenemist&lt;br /&gt;*) väike konkurentsus,&lt;br /&gt;*) dünaamilised tüübid toovad kaasa  turvalise ja andmekorrektsuse lisaohu&lt;br /&gt;*) mitmesed sql laused tuleb koondada transaktsiooniks.&lt;br /&gt;*) alter table probleem&lt;br /&gt;*) max suurus 2tB.&lt;br /&gt;*) võrgu tugi&lt;br /&gt;*) minimaalne trigerite tugi&lt;br /&gt;*) alter , right join full outer join lause puudumine&lt;br /&gt;*) read-only vaated&lt;br /&gt;&lt;br /&gt;Miinus ja plusside poolt ei saa SQLite puhul must-valgelt võtta, sest tema omapära tõttu võib miinus pool osutuda tugevuseks&lt;br /&gt;ja ta kasutusvaldkond on teistest ja tuntud andmebaasi süsteemidest erinev. Võimaluste rohkusega kaasneb alati nõudluse ja jõudluse küsimused.&lt;br /&gt;&lt;b&gt;Jõudluse võrdlemine:&lt;/b&gt;&lt;br /&gt;&lt;img src="http://lh5.ggpht.com/_80sAoSXiYeA/SixrITaDW_I/AAAAAAAAAds/30uPVLNnNLw/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px; float: none;" /&gt;&lt;img src="http://lh4.ggpht.com/_80sAoSXiYeA/SixraepCYjI/AAAAAAAAAd0/Qq5kMuIkSX0/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kasutamine:&lt;/b&gt;&lt;br /&gt;Eelnevalt sai mainitud, et SQLite kasutamine ei nõua mingeid erilisi pingutusi.&lt;a href="http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/" target="_blank"&gt; Loe siit, kuidas  saab 3minutiga SQLite kasutajaks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Alternatiivid&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;*) BerkleyDB&lt;br /&gt;*) VistaDB&lt;br /&gt;*) Firebird&lt;br /&gt;*) SQL CE&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------&lt;br /&gt;Kasulikud ja kasutatud viited:&lt;br /&gt;SQLite koduleht:  &lt;a href="http://discuss.joelonsoftware.com/default.asp?design.4.281660.5"&gt;http://www.sqlite.org/about.html&lt;/a&gt;&lt;br /&gt;wiki SQLite: &lt;a href="http://en.wikipedia.org/wiki/SQLite" target="_blank"&gt;http://en.wikipedia.org/wiki/SQLite&lt;/a&gt;&lt;br /&gt;Definitive Guide to SQLite : &lt;a href="http://www.amazon.com/gp/search?index=books&amp;amp;linkCode=qs&amp;amp;keywords=1590596730" target="_blank"&gt;http://www.amazon.com/gp/search?index=books&amp;amp;linkCode=qs&amp;amp;keywords=1590596730&lt;/a&gt;&lt;br /&gt;Artikkel IBM devs lehel: &lt;a href="http://www.ibm.com/developerworks/opensource/library/os-sqlite/index.html" target="_blank"&gt;http://www.ibm.com/developerworks/opensource/library/os-sqlite/index.html&lt;/a&gt;&lt;br /&gt;kiirõpetus: &lt;a href="http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/"&gt;http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/&lt;/a&gt;&lt;br /&gt;Asjatundade kiirmõtted SqLitest: &lt;a href="http://discuss.joelonsoftware.com/default.asp?design.4.281660.5"&gt;http://discuss.joelonsoftware.com/default.asp?design.4.281660.5&lt;/a&gt;&lt;br /&gt;Väike kuutõrvaja artikel: &lt;a href="http://kuutorvaja.eenet.ee/wiki/Sqlite"&gt;http://kuutorvaja.eenet.ee/wiki/Sqlite&lt;/a&gt;&lt;br /&gt;SQLite töö optimeerimine: &lt;a href="http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html" target="_blank"&gt;http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html&lt;/a&gt;&lt;br /&gt;Põhikäsud ja trigerid: &lt;a href="http://linuxgazette.net/109/chirico1.html"&gt;http://linuxgazette.net/109/chirico1.html&lt;/a&gt;&lt;br /&gt;SQLite ja ADO.net EggCafes: &lt;a href="http://www.eggheadcafe.com/articles/20040714.asp" target="_blank"&gt;http://www.eggheadcafe.com/articles/20040714.asp&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Tutvustav loeng: &lt;a href="http://www.viddler.com/explore/rentzsch/videos/25/"&gt;http://www.viddler.com/explore/rentzsch/videos/25/&lt;/a&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler_7580ff2f"&gt;&lt;param name="movie" value="http://www.viddler.com/player/7580ff2f/" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed src="http://www.viddler.com/player/7580ff2f/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_7580ff2f"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6083522577497854928?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6083522577497854928/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-jareldused-weekend-projectist-vol1.html#comment-form' title='3 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6083522577497854928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6083522577497854928'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-jareldused-weekend-projectist-vol1.html' title='[C#] Järeldused weekend projectist vol1 - SQLite'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_80sAoSXiYeA/SixrITaDW_I/AAAAAAAAAds/30uPVLNnNLw/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3540534605375470402</id><published>2009-06-08T00:02:00.001+03:00</published><updated>2009-06-08T00:02:46.189+03:00</updated><title type='text'>[C#] Nädalavahetuse projekt movieBrowser</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;br/&gt;      Sain reedel sessiga enamvähem ühelepoole ja midagi polnud teha. Mõtlesin  vaataks filmi. &lt;br/&gt;Oh häda, ei osanud 600 filmi hulgast valida sobivat ja ükshaaval imdb-st otsimine oli tüütu, &lt;br/&gt;siis otsustasin kiiruga valmis vorpida ühe ägeda filmiinfo brauseri, mis kuvaks filmi kohta &lt;br/&gt;natuke infot ning võimaldaks kiirlinke faili kataloogini ja imdb lehele. Kuna pühapäeval jäi&lt;br/&gt;natuke aega üles, siis lisasin filmi profiilile ka pisipildi näitamise. &lt;br/&gt;      Projekti alustasin Linuxis ja kasutasin MonoDeveloperit. Kuid gtk vormi disainimine oli kohmakas&lt;br/&gt;ja pealegi ei õnnestunud lihtsalt valmis programmi Windowsa keskkonda üleviia. Linuxis kirjutasin &lt;br/&gt;põhiklassid valmis ning siis Windowsis lisasin uue vajaliku formi poole ja oligi Windowsi platvormile &lt;br/&gt;ületoodud.&lt;br/&gt;     Antud projekti käigus õppisin palju uut, nt kuidas kasutada regulaarväljendeid ja Sqlite andmebaasi.&lt;br/&gt;Ma polnud varem kasutanud andmebaasi piltide talletamiseks, kuid nüüd nägin, et antud lahendus on &lt;br/&gt;väikest logode salvestamiseks päris hea idee. Pealegi Sqlite andmebaas lihtsustab info haldamist. &lt;br/&gt;    Kuna tegu oli nädalavahetuse projektina, siis ma ei keskendunud töökindlusele vaid eesmärgiks&lt;br/&gt;oli nii-palju-kui-võimalik- ja nii-kiiresti-kui-võimalik. Ehk lühidalt programmitöö on täielikult optimeerimata&lt;br/&gt;:D töökindlus minimaalne- vältisin suuremaid krahhe try-catch ja mõne if lausega.&lt;br/&gt;    Kuid tulevikus on kavas programm muuta töökindlamaks ,  lisada juurde threading, otsing, filtreering ning &lt;br/&gt;seadistusemenüü, mille abil muutuks programm universaalsemaks ja saaks kasutada ka mujal . Lähiajal&lt;br/&gt;lisan siia ka  mõned  koodinäited, mida saab edaspidigi kasutada.&lt;br/&gt;&lt;br/&gt;ps: Antud pildil on test-versioon ehk menüülistis on kasutusel demonimekiri, sellepärast esineb seal kordusi.&lt;br/&gt;&lt;img src='http://lh6.ggpht.com/_80sAoSXiYeA/SiwimP6l0mI/AAAAAAAAAdo/Ax_qmRkCVoU/%5BUNSET%5D.png?imgmax=800' style='max-width: 800px;'/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3540534605375470402?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3540534605375470402/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-nadalavahetuse-projekt-moviebrowser.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3540534605375470402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3540534605375470402'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-nadalavahetuse-projekt-moviebrowser.html' title='[C#] Nädalavahetuse projekt movieBrowser'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_80sAoSXiYeA/SiwimP6l0mI/AAAAAAAAAdo/Ax_qmRkCVoU/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3194809198159916688</id><published>2009-06-06T13:06:00.001+03:00</published><updated>2009-06-06T13:06:47.539+03:00</updated><title type='text'>[C#] SQLite DotNetis -- võrratult hea link</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;SQLite DotNetis -- võrratult hea link, mitte ei saa märkimata jäta.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/'&gt;SQLite on .NET in 3 minutes. Download to querying in no time flat. | MikeDuncan.com C# Dev tips, patterns and tools you can actually use.&lt;/a&gt;&lt;br/&gt;&lt;blockquote/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3194809198159916688?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3194809198159916688/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-sqlite-dotnetis-vorratult-hea-link.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3194809198159916688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3194809198159916688'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/06/c-sqlite-dotnetis-vorratult-hea-link.html' title='[C#] SQLite DotNetis -- võrratult hea link'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-730520109336198091</id><published>2009-05-13T18:43:00.007+03:00</published><updated>2009-05-14T00:41:30.981+03:00</updated><title type='text'>[Win] Swedbank &amp; E-id kaart keskkonnas Windows7 ja Firefox3</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;b&gt;Prolog&lt;/b&gt;&lt;br /&gt;Kui ülepikka aja pidin taas Windowsi logima, panin tähele et  Windowsa on kräkkide troojalastelt  korraliku põndsu saanud - süsteem oli koomas, Kaspersky töö meenutas tulekahju kustutamist ning Vista andis peale 2tunnist töötamist BSOD väljundi, siis mõtlesin, et nii ei saa  jätkata. Kuna oli juhtumisi  vaba õhtupoolik, mõtlesin Windows7 järgi proovida.&lt;br /&gt;&lt;b&gt;Action&lt;/b&gt;&lt;br /&gt; Kõik läks hämmastavalt ladusalt, kuni asi jõudis ID-kaardini. Esimese variandina proovisin klassikalist ID.ee automaatset installi. Sain asja tööle, kuid Swedbankis ei õnnestunud Firefoxiga teostada makseid.&lt;br /&gt;   Selge , see lahendus ei tööta. Viitsin täna natuke aega surfates- küll süüdistati panka, siis sertifitseerimiskeskust või Java versiooni . Populaarseim vastus oligi, et installi vanem JRE.  Põhimõtteliselt ei istu mulle mõte, et mu masinas on kaks erinevat Runtime - meenutab mulle rasket lapsepõlve DLL-õudustega.&lt;br /&gt;  Asusin edasi surfima, kuni leidsin  asjalikuma lingi ( &lt;a href="ftp://ftp.smartlink.ee/pub/id/" target="_blank"&gt;ftp://ftp.smartlink.ee/pub/id/&lt;/a&gt; )  mulle tuttavast Linuxi foorumist, kus agaram inimene ärgitas uuemat ID-kaardi softi testima. Installisin antud lingilt alpha-versiooni. Kuna tegu on Billi aretisega, siis tuli loomale teha taaskäivitus ja lugeda vaikselt Issa-meie palvet. Peale seda funkas ID-kaardi soft laitmatult, kuid makseprobleem ikka ei lahendunud.&lt;br /&gt;  Menüüst &lt;i&gt;Tools&amp;gt;Options&amp;gt;Encryption&amp;gt;Security Device&lt;/i&gt; järele vaadates oli näha,et firefoxi id-kaardi moodul on töökorras. Ja vajalikus SSL ja TSl ühendused on samuti lubatud.&lt;br /&gt;  Hmm, kas viga võis olla Pin2 andmises. Testisin seda DigiDoc online versioonis- õnnestus. Võtsin uuesti Encryption  menüü lahti . Hmm, miks&lt;u&gt; Certificate Validationis&lt;/u&gt; on täisti tundmatu servu aadress. Kas viga võib olla valideerimises? Eemaldasin &lt;i&gt;Certificate Validation&lt;/i&gt; valikust linnukese, et ära hakka mulle tundmatust serverist serte otsima ning suundusin siis tagasi Swedbanki apletiga maksu kinnitama. Voila , õnnestus.&lt;br /&gt;Jah, viga oligi valideerimises - Firefox3 tahtis hirmsalt allkirjastamise serte kuskil&lt;br /&gt;Hispaania serdi servust otsida, mis loomulikult ei õnnestunud ja seetõttu ajas Firefoxi lolliks.&lt;br /&gt;Hea lihtne lahendus.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Põhjus&lt;/b&gt;&lt;br /&gt;Väike järelanalüüs, miks antud lahendus töötas:&lt;br /&gt;&lt;p class="Summary"&gt;    &lt;i&gt;SP 52404: Disable the “Do not use OCSP for certificate validation” option in Firefox&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;            &lt;i&gt;&lt;span class="fieldname"&gt;Symptom:&lt;/span&gt;&lt;br /&gt;If OCSP (Online Certificate Status Protocol) is enabled, you may&lt;br /&gt;receive errors when you visit secure sites and the OCSP service chosen&lt;br /&gt;is either malfunctioning or not available.&lt;br /&gt;&lt;span class="fieldname"&gt;Error Message:&lt;/span&gt;  “Error trying to validate certificate from &amp;lt;website name&amp;gt; using OCSP – unauthorized request”.&lt;br /&gt;&lt;span class="fieldname"&gt;Resolution:&lt;/span&gt;&lt;br /&gt;This change will modify the Firefox settings to disable the “Do not use&lt;br /&gt;OCSP for certificate validation” option in the “Verification” dialog&lt;br /&gt;under the “Encryption” tab in “Tools =&amp;gt; Options =&amp;gt; Advanced”.&lt;br /&gt;&lt;span class="fieldname"&gt;Additional Information:&lt;/span&gt;  For this change to take effect, you must twice consecutively start and exit Firefox.&lt;/i&gt;&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;allikas:&lt;a href="http://www.digitalsupporttech.com/spdb/FireFox/2.0/52404_Firefox_O_C_S_P_Enabled_en-us.htm"&gt; http://www.digitalsupporttech.com/spdb/FireFox/2.0/52404_Firefox_O_C_S_P_Enabled_en-us.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh4.ggpht.com/_80sAoSXiYeA/Sgrn_SlcnoI/AAAAAAAAAc0/7ipZEo2hJdY/%5BUNSET%5D.png?imgmax=800" style="max-width: 800px;" /&gt;&lt;br /&gt;ps: IEx kohta info puudub, kuna ei kasuta seda. (&lt;a href="http://blogs.msdn.com/evangelism/archive/2009/05/07/windows-7-rc-ja-id-kaart.aspx"&gt; natuke saab lugeda sellest siit&lt;/a&gt; või&lt;a href="http://www.dt.ee/blog/id-kaart/2009/03/id-kaart-ja-windows7/"&gt; Developer tiimi blogist&lt;/a&gt;)&lt;br /&gt;(Toodud lahendus võib töötada ka ID.ee automaatse installiga, kui ülearune linnuke ära koristada. )&lt;br /&gt;&lt;br /&gt;Täiendus:&lt;br /&gt;*) Kaupmehe juures makseid tehes selgus, et lahendus pole ikkagi ideaalne. Antud olukorras pidin linnukese ikkagi tagasi panema ning ära märkima esimese märkeruudu ehk kui autentservu on kaasa pandud, siis kasuta seda.&lt;br /&gt;*)Valimised.ee lehe puhul tuleb samuti linnuke eest ära koristada. Kui sul on ID-kaardi prooviversioon, siis valimiste programm ei tööta!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-730520109336198091?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/730520109336198091/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/05/win-swedbank-e-id-kaart-keskkonnas.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/730520109336198091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/730520109336198091'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/05/win-swedbank-e-id-kaart-keskkonnas.html' title='[Win] Swedbank &amp;amp; E-id kaart keskkonnas Windows7 ja Firefox3'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_80sAoSXiYeA/Sgrn_SlcnoI/AAAAAAAAAc0/7ipZEo2hJdY/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-4339819908547270646</id><published>2009-05-10T23:50:00.001+03:00</published><updated>2009-05-10T23:50:31.999+03:00</updated><title type='text'>[Andmeturve] Certified Ethical Hacker</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Leidsin nädalavahetusel ACM.org kursusteloendist mind väga huvitaval teemal &lt;br/&gt;sissejuhatava kursuse "Certified Ethical Hacker". Antud kursus räägib annab kiire ja &lt;br/&gt;ülevaatliku erinevatest ohtudest , sümptomitest ning riskide leevendamisest. Huvitavaks &lt;br/&gt;teeb antud kursuse, et sisaldab praktikume, kus tutvustatakse tööriistu ja nende kasutamist.&lt;br/&gt;Muide praktikume ei tee sa oma arvutis, vaid e-kursuse keskkonnas on ligipääs&lt;br/&gt;virtuaal windowsale, kus on vajalikud tööriistad juba olemas. &lt;br/&gt;Tuntud teleturu lause: "Ja see pole veel kõik". Ma sain kasulikke viiteid, kust saab &lt;br/&gt;sortse allatirida ja neid uurida. Linuxi turbele on tehtud isegi omaette peatükk.&lt;br/&gt;&lt;br/&gt;Kursuse läbimine võtab hinnanguliselt 5h-d, kui järjest kõik loengud läbivaadata. &lt;br/&gt;Ja on  ACM liikmetele tasuta kättesaadav. Keskkond töötab Debian Lenny keskkonna &lt;br/&gt;all sujuvalt, kui flash ja Java tugi on installitud. Kursusematerjalid on võimalik masinasse&lt;br/&gt; ka allatõmmata, et saaks õppida ilma ühenduseta. Kuid minu arust jääb, siis teadmine&lt;br/&gt; natuke puudulikuks, sest tundmate teema korral aitab guugeldamine teemast parema &lt;br/&gt;ja selgema ülevaate saada.&lt;br/&gt;&lt;img src='http://lh4.ggpht.com/_80sAoSXiYeA/Sgc9I9tt0jI/AAAAAAAAAco/-D3map7LlsU/%5BUNSET%5D.png?imgmax=800' style='max-width: 800px;'/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=ef357642-b41b-8145-8035-6a53cf972b3d' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-4339819908547270646?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/4339819908547270646/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/05/andmeturve-certified-ethical-hacker.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4339819908547270646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4339819908547270646'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/05/andmeturve-certified-ethical-hacker.html' title='[Andmeturve] Certified Ethical Hacker'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_80sAoSXiYeA/Sgc9I9tt0jI/AAAAAAAAAco/-D3map7LlsU/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-4555725594174459397</id><published>2009-02-26T19:12:00.001+02:00</published><updated>2009-02-26T19:12:23.311+02:00</updated><title type='text'>[Vabavara] Veebipõhine PDF to Doc konverter.</title><content type='html'> &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Nüüd on olemas vabalt kasutatav PDF faili konverteerija.&amp;nbsp; Lihtsalt tuleb oma dokument üleslaadida ja see konverteeritakse sujuvalt doc failiks. Võimalik on konverteerida ka Openoffice või staroffice dokumendiks, kuid rahvas räägib, et Beta versioon ei tööta veel korrektselt ning mõnikord on dokumentide konverteerimisega probleeme. Kuid sellegi poolest on tervitatav, et PDF konverterite turg on laienemas ja turule ilmuvad veebilahendused. Veebilahendused on ideaalsed juhul, kui sa vastavat teenust eriti ei kasuta või soovid konverteeritava faili otse sõbra meilile&amp;nbsp; saata.&lt;br&gt;&lt;br&gt;Allikas: &lt;a title="http://lifehacker.com/5159601/pdf+to+word-converter-pulls-readable-text-from-scanned-images" target="_blank" href="http://lifehacker.com/5159601/pdf+to+word-converter-pulls-readable-text-from-scanned-images" id="a6lw"&gt;http://lifehacker.com/5159601/pdf+to+word-converter-pulls-readable-text-from-scanned-images&lt;/a&gt; &lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-4555725594174459397?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/4555725594174459397/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/vabavara-veebipohine-pdf-to-doc.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4555725594174459397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4555725594174459397'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/vabavara-veebipohine-pdf-to-doc.html' title='[Vabavara] Veebipõhine PDF to Doc konverter.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1667897297150225276</id><published>2009-02-22T21:11:00.001+02:00</published><updated>2009-02-22T21:24:37.738+02:00</updated><title type='text'>[DM] Andmete visualiseerimise meelespea.</title><content type='html'> &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;ACCENT reeglid.&lt;/b&gt;&lt;br&gt;Aitavad otsustada, kas antud olukorras on graafiline esitus täielik ning kas on ikka vajalik.&lt;br&gt;Liigne esitus lisab müra ning hajutab kasutaja tähelepanu ning info analüüs võtab rohkem aega kui vaja.Vipin Kumar soovitab oma raamatus neid pimesi mitte järgida - alati tuleb kasuks väike &lt;a title="kriitiline mõtlemine" target="_blank" href="http://en.wikipedia.org/wiki/Critical_thinking" id="qbin"&gt;kriitiline mõtlemine&lt;/a&gt; või&lt;a title="eesti keelne materjal." target="_blank" href="http://74.125.77.132/search?q=cache:msK4naktBfAJ:lepo.it.da.ut.ee/%7Ekpata/ppt/Kriitiline2.doc+kriitiline+m%C3%B5tlemine&amp;amp;hl=et&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;gl=ee&amp;amp;client=firefox-a" id="q5rr"&gt; eesti keelne materjal.&lt;/a&gt;  &lt;br&gt;&lt;br&gt;1) Ülevaatlik - kas graafiline esitus toob välja muutujate vahelise seose?&lt;br&gt;2) Selgus - kas tähtsamad seosed on selgelt välja toodud?&lt;br&gt;3) Järjepidev - kas esitus on eelmistega sarnane? &lt;br&gt;4) Kasulik - kas graafiline esitus lihtsustab ülevaate saamist? &lt;br&gt;5) Vajalik - kas graafiline esitus on vajalik või olemasolevatel või alternatiivsetel esitustel &lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; avaldub info selgemalt?&lt;br&gt;6) Korrektsus - kas graafilisel esitusel säilib seoste vaheline mõõtkava ja suurusjärgud?&lt;br&gt;&lt;br&gt;Graafiline teadvus peab vaatajale andma maksimaalse info minimaalse ajaga. [2]&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Edward Tufte&lt;br&gt;&lt;br&gt;&lt;hr size="2" width="100%"&gt;[1]&lt;a title="http://www.math.yorku.ca/SCS/Gallery/accent.html" target="_blank" href="http://www.math.yorku.ca/SCS/Gallery/accent.html" id="snkb"&gt;http://www.math.yorku.ca/SCS/Gallery/accent.html&lt;/a&gt; &lt;br&gt;[2] &lt;a title="http://www.edwardtufte.com/tufte/books_pp" target="_blank" href="http://www.edwardtufte.com/tufte/books_pp" id="c0hp"&gt;http://www.edwardtufte.com/tufte/books_pp&lt;/a&gt;&lt;br&gt;Täiendavat lugemist: &lt;br&gt;*) Soovitav on lugeda Edward Tufte eseed Powerpointi esitlustest:&lt;br&gt;&lt;a title="http://www.edwardtufte.com/tufte/powerpoint" target="_blank" href="http://www.edwardtufte.com/tufte/powerpoint" id="xmn1"&gt;http://www.edwardtufte.com/tufte/powerpoint&lt;/a&gt;&lt;br&gt;*) &lt;a title="Graphical excellence (pdf)" target="_blank" href="http://web.uvic.ca/%7Edkhore/chem680/tufte.pdf" id="dn92"&gt;Graphical excellence (pdf)&lt;/a&gt; &lt;br&gt;*) &lt;a title="Ülevaade graafilistest esitustest" target="_blank" href="http://www.math.yorku.ca/SCS/Gallery/excellence.html" id="lozt"&gt;Ülevaade graafilistest esitustest&lt;/a&gt; &lt;br&gt;*) Kaur Hansen essee &lt;font size="2"&gt;&lt;a title="Maagiline ja teaduslik mõtlemine" target="_blank" href="http://www.epl.ee/?artikkel=280296" id="qd7e"&gt;Maagiline ja teaduslik mõtlemine&lt;/a&gt; &lt;/font&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1667897297150225276?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1667897297150225276/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmete-visualiseerimise-meelespea.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1667897297150225276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1667897297150225276'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmete-visualiseerimise-meelespea.html' title='[DM] Andmete visualiseerimise meelespea.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-7487285445887203503</id><published>2009-02-22T00:54:00.004+02:00</published><updated>2009-02-22T01:19:03.482+02:00</updated><title type='text'>[Varia] Googeldada sõbra eest...kaua võib</title><content type='html'>Kel pole olnud olukordi kui sõber küsib MSNist sinu käest mingit fakti?&lt;br /&gt;nt kui &lt;a href="http://lmgtfy.com/?q=how+high+is+mount+everest"&gt;Kõrge on Mount Everest&lt;/a&gt;? &lt;a href="http://lmgtfy.com/?q=150+CAD+in+USD"&gt;Kui palju on 123 CADi&lt;/a&gt;? &lt;a href="http://lmgtfy.com/?q=who+is+movie+xxx+actors"&gt;Kes oli  filmi XXX näitlejad?&lt;/a&gt;&lt;br /&gt;Oled talle küll öelnud, et kasuta otsingumootorit... aga see asi ei taha lõppeda.&lt;br /&gt;Eriti tihti olen selliseid olukordi näinud erinevates foorumites, kus inimesed ennem küsivad kui viitsivad ise otsida.&lt;br /&gt;Nüüdseks on valmis kirbatud väike ja huvitav veebirakendus &lt;a href="http://lmgtfy.com/"&gt;LTMGTFY.com,&lt;/a&gt; kus sina määrad ära google otsingu ning rakendus genereerib jooksvalt sellest veebiõpetuse ning lisab lingi sellele õpetusele, kuhu siirdudes kuvatakse veebiõpetus.&lt;br /&gt;NB!  Kui sa viitsisid näited läbi klõpsida, siis märkasid, et teine näide ei töödanud nagu originaal Googles(&lt;a href="http://www.google.com/search?q=150+CAD+in+USD&amp;amp;btnG=Search"&gt;võrdle&lt;/a&gt;). Kuid ära lase sellest heiduta, su sõber ei oska elementaarseid otsingunippe. Las see trikk jääb hilisemaks.&lt;br /&gt;&lt;br /&gt;PS: sobib ka tädi Maalile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-7487285445887203503?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/7487285445887203503/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-googelda-sobra-eest.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7487285445887203503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7487285445887203503'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-googelda-sobra-eest.html' title='[Varia] Googeldada sõbra eest...kaua võib'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6328161339872010772</id><published>2009-02-21T23:49:00.001+02:00</published><updated>2009-02-21T23:49:57.525+02:00</updated><title type='text'>[DM] Muutuste kaevandamine</title><content type='html'> &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;a id="hvem" href="http://docs.google.com/File?id=dfgd4f8p_35cz62dxd6_b" target="_blank"&gt;&lt;img style="margin: 1em 0pt 0pt 1em; float: right;" src="http://docs.google.com/File?id=dfgd4f8p_35cz62dxd6_b" width="171" height="185"&gt;&lt;/a&gt;Viimases &lt;a title="SIGKDD Explorations" target="_blank" href="http://www.sigkdd.org/explorations/issue.php?issue=current" id="djp3"&gt;SIGKDD Explorations&lt;/a&gt;  kirjutavad M.Böttcher, F.Höppner ja M.Spiliopoulu ülevaatliku artikli "&lt;a title="On exploiting the power of time in data mining" target="_blank" href="http://www.sigkdd.org/explorations/issues/10-2-2008-12/TimeInDataMining.pdf" id="zybn"&gt;On exploiting the power of time in data mining&lt;/a&gt; " (Aja mõju andmekaevele), kus&amp;nbsp; tuuakse välja uus andmekaeve alamliik: Muutuste kaeve.&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Mis on &lt;b&gt;muutuste kaeve&lt;/b&gt;(Change Mining)? &lt;br&gt;Muutuste kaeve on andmekaeve üks raamistikke ajapõhiste andmete käitlemiseks. Eesmärgiks avastada, jälgida modelleerimist ja väljatuua mudelite muutusi, mis kaasnevad ajas muutuvate omadustega andmetel. Seega on tegu ühe Kõrgema Taseme Kaevandamisega (Higher Order Mining), mis tegeleb valdavalt mudelite muutuste analüüsimisega,&amp;nbsp; mudelite kohandamisega, mudelite võrdlemistega ja muutuste vaheliste seoste tuletamine ja muutuste ennustamine. Kokkuvõtvalt: alusandmeteks on mudelid ise ja andmekaeve algoritme ja põhimõtteid rakendatakse nende peal.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;Muutustekaeve põhietapid.&lt;br&gt;&lt;/b&gt;Autorid jagavad&amp;nbsp; antud raamistiku neljaks suuremaks etapiks:&lt;br&gt;1) &lt;i&gt;Eesmärkide määratlemine&lt;/i&gt; - kas&amp;nbsp; tuleb leida ja kirjeldada muutusi või võetakse vaatluse alla muutuste toimumise hindamine.&lt;br&gt;2) &lt;i&gt;Aja piiride määratlemine&lt;/i&gt; - ajatelje jagamine intervallideks, andmete riknemisfunktsiooni leidmine, määramine&lt;br&gt;3) &lt;i&gt;Muutuvate objektide määratlemine&lt;/i&gt; - mistüüpi muutused toimuvad, mis mudelite rakendamine oleks otstarbekas,&amp;nbsp; mis objektid muutuvad, kui suurelt alalt peab "kaevandama" ehk resolutsiooni küsimus.&lt;br&gt;4) Monitoorimise disain - muutuste jälgimise mudelite, algoritmide disainimine, huvipakkuva info väljatoomine, muutustele semantilise tähenduse lisamine.&lt;br&gt;&lt;br&gt;Antud etapidest on loe juba eelpool mainitud kirjandusest.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6328161339872010772?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6328161339872010772/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-muutuste-kaevandamine.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6328161339872010772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6328161339872010772'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-muutuste-kaevandamine.html' title='[DM] Muutuste kaevandamine'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2192226909679155283</id><published>2009-02-21T22:51:00.002+02:00</published><updated>2009-02-21T22:57:29.255+02:00</updated><title type='text'>Kui mõtelda ei ole mõnus. Tiit Kändler</title><content type='html'>Midagi head ajast kui Postimees kannatas veel ajakirjanduse nime ning julges avaldada ühe huvitava Tiit Kändleri essee "Kui mõtelda on mõnus"(&lt;a href="http://www.postimees.ee/131104/esileht/149951.php"&gt;originaal&lt;/a&gt;) .&lt;br /&gt;&lt;br /&gt;Koopia kui leht pole kättesaadav või arhiivist kustutatud:&lt;br /&gt;&lt;br /&gt;&lt;span class="TextTitle"&gt;Essee: Kui mõtelda  ei ole mõnus&lt;/span&gt;&lt;br /&gt;            &lt;span class="TextDateSmall"&gt;13.11.2004 00:01&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;Tiit Kändler, teadusajakirjanik  &lt;/i&gt;&lt;span class="TextDateSmall"&gt;&lt;br /&gt;&lt;/span&gt;                        &lt;br /&gt;            &lt;span class="TextDarkBlue"&gt;&lt;/span&gt; &lt;em&gt;Mõtle ometi! Mida nad seal jälle teevad? Sa mõtle  vaid! Naabri lehm sünnitas kaksikud. Mõtleks! Suurmeister ületas mõtlemisaja ja  kaotas. Kui mõttekad on need laused? Ja kui ikka tõepoolest mõtlema hakata – kui  mõnus see on?&lt;/em&gt;                                                  &lt;p&gt;Kui me põrnitseme ajalehte ja loeme sealt ehk ka mõne loo, on lugu kas sellest, kuidas Hispaanias kukkus kraavi rong, või sellest, kuidas Portugal võitis Inglismaa jalgpallis, või paremal juhul sellest, mida tegi eile peaministri koer. Või oli see kass. Jah, see koer oli kass. &lt;/p&gt;&lt;p&gt;Eks ole lugude säherdune valik ka loomulik. Sest me kõik tahame olla edukad. See aga tähendab ei midagi muud kui eramajanduslikku mõtlemist. Millel omakorda on mõtlemisega umbes sama palju pistmist nagu konnal kotkaga. Kuigi me pikime oma dialoogi ohtralt mõtlemisega soetud väljendeid, on mõtlemine meie askeldamistel pigem tüütu takistav segaja kui tubli abistav mehike. Tark mees tuli muinasjutus küll taskusse tagasi, kuid mõte läheb isegi ulmemaailmas pagan teab mis teid pidi rändama. Ja ei tea ta isegi, mida oma teel korda saadab. Mõte lendab, halvemal juhul jookseb – ei rooma, uju ega vantsi. &lt;/p&gt;&lt;p&gt;Hando Runnelil on üks mällu või isegi mõtlemisse sööbinud luuletus ilusa pealkirjaga «Mõtelda on mõnus». Katsume siis vahel veidi ka mõtelda. Kas või näiteks nüüd ja praegu. Ja vaatame, kas on ikka mõnus.&lt;/p&gt;&lt;p&gt; Mõtleme näiteks selle peale, mis asi on õun. Ja mida rohkem õuna peale mõtelda, seda selgemaks saab see kurb tõsiasi, et õuna pole ju üldse olemas. On olemas viljad, ühe puuliigi eri sortide viljad, mida – olgu need suured või väikesed, hapud või magusad, punased või rohelised – kutsume ikka õunaks. Aga öelge mulle, kus kohas looduses see «õun», see ürgõun on? Seda polegi. See on meie välja mõeldud. See «õun» on abstraktne termin, tähistamaks seda kõike, mis meenutab meile kuigivõrdki õuna. Rohkem parem mitte õunale mõtelda.&lt;/p&gt;&lt;p&gt;Võtame parem ja hammustame õuna. Me tunneme selle maitset. Me haistame selle lõhna. Me näeme selle värvi. Me kombime selle koore siledust. Ja kui õun meile pähe juhtub kukkuma, kuuleme parajat mütsu. Aga kuidas me saame öelda, mis ajaga õun meile puu otsast pähe lendas? Mis meelega me tunneme aega? Meil polegi sellist meelt. Me ütleme – täna pole mul aega. Tule homme, homme on palju aega. Kuidas see saab võimalik olla, et täna ei olegi aega, aga homme on seda üleliiagi? &lt;/p&gt;&lt;p&gt;Kes ei teaks, kuidas aeg oodates venib. Ja kiirustades kiirustab aegki meiega kaasa. Kas tähendab see, et meil polegi ajataju? Ometi me mõõdame aega. Me ütleme, et näe, nüüd on päevake jälle õhtusse veerenud, homme tuleb uus päev. Aga kust me teame, et see uus päev ja see vana, juba olnu, on üldse ühe ja sama ajaga mõõdetavad. Või lihtsamalt – kust me teame, et nad on ühepikkused? &lt;/p&gt;&lt;p&gt;Ega täpselt ei teagi. Me mõõdame aega ju pikkusega. Pikkusühikutes. Et mida rohkem samme me ühest paigast teise kõmpides teeme, seda enam kulub tavaliselt ka aega. Pikkust, ruumi on meil alati vähevõitu. Kuid aeg voolab lõputult. &lt;/p&gt;&lt;p&gt;Mis aga on lõpmatus? Kas selline asi on üldse looduses olemas? Mõtleme siis lõpmatusele. Alustame arvudest. Kes teab öelda, mis asi on 5? Me ütleme, et õunu on viis, kui neid on sama palju kui ühel tervel käel sõrmi. Kuid me ütleme samal puhul ka, et rongivaguneid on viis, ja isegi peaministrite jaoks kehtib see 5. Tähendab, see kehtib siis kõigi asjade jaoks maailmas, kui neid on parasjagu meie käe sõrmede jagu. Kuid kus see 5 on? See on ainult meie peades, ja sedagi siis, kui koolis matemaatikatunnist pausi ei pannud. See 5 on üks suuremaid abstraktsioone, mida inimene on välja mõtelnud. Ülejäänu, kogu eramajanduslik rehkendamine tuleneb juba sellest ega vaja mingit mõtlemist.&lt;/p&gt;&lt;p&gt;Kui me aga liidame viiele ühe ja siis veel ühe ja nii edasi ja edasi, kuhu me nii välja jõuame? Me ütleme, et jõuame välja lõpmatusse. Kuid kas ikka jõuame? Kas meil on nõnda palju aega ja ruumi? Üks saksa matemaatik Georg F. L. P. Cantor mõtles selle lõpmatuse lihtsalt välja! Ja tegi seda alles saja aasta eest. Või hea küll, lõpmatuse märgi võttis siiski kasutusele John Wallis alles 350 aasta eest. Kreeklaste jaoks, keda me nii palavalt armastame isegi siis, kui nad korraldavad olümpiamänge, polnud olemas ei lõpmatust ega ka nulli. Sest nemad olid praktiline rahvas, ja seda, mida looduses ei leidu, nad ka välja ei mõtelnud.&lt;/p&gt;&lt;p&gt;Ja vanadel kreeklastel oli muidugi õigus nagu alati, isegi siis, kui nad olid Euroopa Liidu eesistujad. Lõpmatust pole maailmas olemas. Aristotelese vaim lehvib maailmas edasi, ja aktuaalne saab lõpmatuses olla vaid jumal ise. &lt;/p&gt;&lt;p&gt;Muud lõpmatused on kõik potentsiaalsed, võimalikud lõpmatused. Sest suurim arv, mida maa ja ilma peal saab välja arvutada, on nii väike nagu 2,56 korda 20 astmes 92. Mis on üks vastikult suur arv, mida ei jõua kirjas kirjutada ega jutus jutustada. Kuid ometi pole see arv lõputu, sellel on mingi kindel suurus olemas. See arv kannab Bremermanni piiri nime, sest aastal 1962 rehkendas seesama Bremermann välja, et kogu maailma, kogu Universumi massist lihtsalt ei jätkuks suurema arvuti ehitamiseks. &lt;/p&gt;&lt;p&gt;Nii et näete, mis mõtlemisest välja tuli. Jõudsime välja sinna, mida polegi justkui olemas. Lõpmatuseni. Meie kõikvõimsad arvutid ei suuda eales seda, mida suutis inimene – mõtelda välja lõpmatuse. &lt;/p&gt;&lt;p&gt;Ja pole ka ime, et inimene selle välja mõtles, sest tema ajus on närvirakkude vahelisi ühendusi tervenisti 10 astmes 70 000 000 000 000 võimalikku ühendust. Mis on üks hiiglama suur arv, tohutult palju suurem kui Bremermanni nime kandev arv, kuid lõplik on seegi.&lt;/p&gt;&lt;p&gt;Kui mõttel laseme edasi kanduda lõpmatuse taha, võime välja mõtelda, et neid lõpmatusi endid on õige mitut sorti. Kuigi neid ei saa omavahel võrrelda nagu lihapoes vorste, saavad matemaatikud siiski ehitada mõne lõpmatu suure sõela ja sellega siis need eri lõpmatused meie ette kokku kanda. Et me võtaksime pähe aru ja näeksime, kuhu oma mõtlemisega välja jõudsime.&lt;/p&gt;&lt;p&gt;Mida me kõigest sellest segasest jutust välja mõtelda saame? Aga seda, et meie elu edenemine on petlik. See on lõppude lõpuks ajataju puudumise tulemus, et arvame oma elu edenevat. Tegelikult liigume hoopis võib-olla ajas tagurpidi. Või ristipidi. Või mõne muu nurga all. &lt;/p&gt;&lt;p&gt;Näiteks ehitati veel 35 aastat tagasi Eesti mereäärsetesse supelrandadesse igal kevadel pikad puusillad, kust mõnus vette oli minna. Ja 100 aasta eest ehitati koguni puust supelmajad. Või viidi inimesed suplema hobuvankritele ehitatud majadega. Kus aga on need rajatised nüüd? Nüüd me ei suuda ehitada paadisildagi, või kui ehitamegi, on see kohe ajalehe esikülje lugu.&lt;/p&gt;&lt;p&gt;Ratas leiutati meie eest ära vähemalt 6000 aasta eest. Ja teist sellist asja juba looduses ei ole. Kõik, kes liikuda saavad, püüavad seda teha ikka kõmpides, ujudes, roomates või lennates. Muud asjad on üle võetud loodusest enesest. &lt;/p&gt;&lt;p&gt;Aga siiski! Midagi on veel meie endi jagu! See on see ülalräägitud «õun», see on see 5 ja see on see lõpmatus ning nendetaolised abstraktsioonid. Need on vaid meie endi mõtlemise viljad, need sigivad, kasvavad ja viljuvad vaid meie endi mõtetes. Meie endi hea ja kurja tundmise puul.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2192226909679155283?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2192226909679155283/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/kui-motelda-ei-ole-monus-tiit-kandler.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2192226909679155283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2192226909679155283'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/kui-motelda-ei-ole-monus-tiit-kandler.html' title='Kui mõtelda ei ole mõnus. Tiit Kändler'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-7534767646976011701</id><published>2009-02-21T22:07:00.006+02:00</published><updated>2009-02-22T01:40:30.850+02:00</updated><title type='text'>[DM] Andmete tundlikkuse küsimus on jõudnud Eestisse.</title><content type='html'>Täna võis EPL veebiväljaandes lugeda, et Elisa kasutas teatud kliendiandmeid pakkumiste tegemiseks. (artikkel &lt;a title="&amp;quot;Elisa kasutab klientide kõneandmeid reklaampakkumisteks&amp;quot;" target="_blank" href="http://www.epl.ee/artikkel/459752" id="r40j"&gt;"Elisa kasutab klientide kõneandmeid reklaampakkumisteks"&lt;/a&gt; ).&lt;br /&gt;Loodan, et sellest tuleb laiem vaidlus- pannakse juriidiliselt paika, mis andmed on tundlikud ja kuidas võib neid andmekaevanduses kasutada, kuidas tulemusi võib rakendada, mis õigused on andmete omanikul ja kes on andmete omanikud. Elektroonilise Riigi Teatajas leidsin andme kaitsele vaid järgneva viite: &lt;a title="http://www.riigiteataja.ee/ert/act.jsp?id=26754&amp;amp;replstring=33" target="_blank" href="http://www.riigiteataja.ee/ert/act.jsp?id=26754&amp;amp;replstring=33" id="k86b"&gt;http://www.riigiteataja.ee/ert/act.jsp?id=26754&amp;amp;replstring=33&lt;/a&gt; . Kuid see ei saa olla ainus.&lt;br /&gt;Terve mõistus ütleb, et seadme IMEI kasutamine klientide segmenteerimiseks ei saa olla andmekaitse vastane. Paranoiline inimene võib  sadu teooriaid, kuidas see võib kahjulik olla - teenusepakkuja ei saa riskida oma brändirikkumisega, tihedas konkurentsis on see oluline faktor.&lt;br /&gt;Tõsi,antud loos pole samuti telekomi firma veatult tegutsenud.  Ma pole kursis, kuidas antud firma  tulemuseni jõudis. Uudise põhjal võin oletada, et sooritati pelgalt andmebaasi päring ja ei süüvitud tulemustesse. Klientide segmenteerimine oleks antud juhul aidanud pakkumist muuta kliendikesksemaks ning oleks vältinud viga, et tehnikakauge inimene ei saa pakkumisest aru või antud pakkumine ei olegi kliendile otstarbekas.  Vanem inimene vajab pikemat seletamist ja hirmude leevendamist ehk tädi Maali reegel. Firmad võivad vanemaid telefone kasutada masinate asukoha jälgimiseks. Tehnika puhul ei tähenda vana, et see ei tööta - mõnikord on see ratsionaalsem lahendus.&lt;br /&gt;Mul on hea meel et antud teema esile kerkis. Tavainimene ei tajugi, kui tundlikke andmeid omavad firmad, kindlustused, finantsasutused, haiglad, apteekrid, haiglad ja riigiasutused.&lt;br /&gt;Selle alast teavitust on vaja kindlasti teha.&lt;br /&gt;Aga kas sellepärast tuleks piirata andmekaevet? Kindlasti ei.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS: Loodan, et telekomi firma ei kasutanud klientide segmenteerimiseks andmekaevandust- tankiga lehma jahtimine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Täiendused:&lt;/span&gt;&lt;br /&gt;*) Eestis on &lt;a title="andmekaitse inspektsioon" target="_blank" href="http://www.aki.ee/est/?part=html&amp;amp;id=111" id="emez"&gt;andmekaitse inspektsioon&lt;/a&gt;  täiesti olemas ja nende kodulehelt leiab infot nii tavakodanik, andmete töötleja kui andmete valdaja.&lt;br /&gt;*) Riigi teatajas on &lt;a title="isikuandmete kaitseseadus" target="_blank" href="https://www.riigiteataja.ee/ert/act.jsp?id=12909389" id="e7ok"&gt;isikuandmete kaitseseadus&lt;/a&gt;  olemas.&lt;br /&gt;*) &lt;a href="http://news.bbc.co.uk/2/hi/technology/7899456.stm"&gt;artikkel BBC News "&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Whose data is it anyway? &lt;/span&gt;&lt;a href="http://news.bbc.co.uk/2/hi/technology/7899456.stm"&gt;"&lt;/a&gt;  suhtlusportaalide andmeomandi vaidlusest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-7534767646976011701?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/7534767646976011701/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmekaeve-andmete-tundlikkuse.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7534767646976011701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7534767646976011701'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmekaeve-andmete-tundlikkuse.html' title='[DM] Andmete tundlikkuse küsimus on jõudnud Eestisse.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2026514761895299805</id><published>2009-02-10T01:04:00.002+02:00</published><updated>2009-02-10T01:11:33.932+02:00</updated><title type='text'>[Varia] Andmeturve - labor vs reaalelu.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/comics/security.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 448px; height: 274px;" src="http://imgs.xkcd.com/comics/security.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Üks pilt ütleb tuhat sõna. Kodeerimismeetodid on muutunud niivõrd võimsaks, et tänapäevaste vahenditega on neid võimatu lahtimurda. Samas inimene on siiani jäänud nõrgimaks lüliks ja teda on lihtne murda.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://xkcd.com/538/"&gt;koomiksi  algasukoht&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2026514761895299805?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2026514761895299805/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-andmeturve-labor-vs-reaalelu.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2026514761895299805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2026514761895299805'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-andmeturve-labor-vs-reaalelu.html' title='[Varia] Andmeturve - labor vs reaalelu.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8105490936137084701</id><published>2009-02-10T00:47:00.003+02:00</published><updated>2009-02-10T00:50:43.574+02:00</updated><title type='text'>[Esseed]</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opposingviews.com/attachments/0000/0074/faith_matter_in_politics_main.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 250px; height: 250px;" src="http://www.opposingviews.com/attachments/0000/0074/faith_matter_in_politics_main.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1&gt; Hoia oma isiksus tagaplaanil!&lt;/h1&gt;    Minu üks lemmik esseede kirjutajatest&lt;a title="Paul Graham (Hackers/Painters)" target="_blank" href="http://www.paulgraham.com/index.html" id="t.db"&gt;,  Paul Graham (Hackers/Painters)&lt;/a&gt;  ilmutas see kuu uue essee &lt;a title="&amp;quot;Keep your identity small&amp;quot;." target="_blank" href="http://www.paulgraham.com/identity.html" id="pd49"&gt;"Keep your identity small".&lt;/a&gt;   Essees arutleb ta, miks usk ja  poliitika nii palju boleemikat tekitab. Piisab kuskil foorumis või kommentaaris  neid "vandesõnu" mainida, on tulemuseks pingeline ja isikule laialivalguv vaidlus.&lt;br /&gt;&lt;b&gt;Miks on nii?&lt;/b&gt;&lt;br /&gt;  Ühe selgitusena toob ta välja kindla tõe puudumise. Pole seda ainust ja õiget tõde, mis ütleks et see on nii ja mitte teisiti.&lt;br /&gt;&lt;b&gt;Kas poliitika ja usk on sarnased?&lt;/b&gt;&lt;br /&gt;  Jah, nad sarnanevad.   Mõlemad on osa inimese minast, tema isisksusest. Just sellepärast inimesed ei salli, kui keegi Del  Fijobu argumenteerib usust või poliitikast. See salvab teda isiklikult!!!&lt;br /&gt;&lt;b&gt;Programmeerimiskeel kui usk? &lt;/b&gt;&lt;br /&gt;Mulle meeldib, et tema võrdlus -  programmeerimiskeel kui usk. Neilgi pole seda ainust ja õiget!&lt;br /&gt;(Vaata teadaolevaid programmeerimiskeelte loendit  &lt;a title="wikist" target="_blank" href="http://en.wikipedia.org/wiki/List_of_programming_languages" id="s-81"&gt;wikist&lt;/a&gt;  ja &lt;a title="keeltepuud" target="_blank" href="http://www.levenez.com/lang/" id="fuwy"&gt;keeltepuud&lt;/a&gt;  ) .&lt;br /&gt;Sellegipoolest on foorum täis tulihingelisi vaidlusi, et keel XY on parem kui ZY. Väide "kõik on samamoodi hea" on samuti vale, sest ükski inimese disainitud asi ei saa olla ideaalne. Näiline ideaal saavutakse piirates nende funktsionaalsust.&lt;br /&gt;&lt;br /&gt;Põhjalikumalt loe juba siit: &lt;a title="http://www.paulgraham.com/identity.html" target="_blank" href="http://www.paulgraham.com/identity.html" id="a49t"&gt;http://www.paulgraham.com/identity.html&lt;/a&gt; .&lt;br /&gt;Mõned tulised tagasisided :&lt;br /&gt;1)   &lt;a title="http://www.reddit.com/r/programming/comments/7vras/pg_keep_your_identity_small/" target="_blank" href="http://www.reddit.com/r/programming/comments/7vras/pg_keep_your_identity_small/" id="n0l4"&gt;http://www.reddit.com/r/programming/comments/7vras/pg_keep_your_identity_small/&lt;/a&gt;&lt;br /&gt;2)  &lt;a title="http://news.ycombinator.com/item?id=471660" target="_blank" href="http://news.ycombinator.com/item?id=471660" id="s7_3"&gt;http://news.ycombinator.com/item?id=471660&lt;/a&gt;&lt;br /&gt;, on tõestuseks kui õrna teemaga on tegu ja nendest rääkimine on kui miiniväljal kõndmine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8105490936137084701?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8105490936137084701/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/esseed.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8105490936137084701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8105490936137084701'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/esseed.html' title='[Esseed]'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5716035101449971941</id><published>2009-02-09T21:54:00.003+02:00</published><updated>2009-02-09T22:01:33.688+02:00</updated><title type='text'>[Varia] Mõistuse jõul arvutijuhtimine demo.</title><content type='html'>&lt;div&gt;&lt;br /&gt;Kui seni on asi jäänud jutu tasemele, siis nüüd on olemas katsutav seade ja mitte niisama näpitav vaid ka töötav. Publiku seast võetakse üks poolkiilakas meesterahvas ning näidatakse ette kuidas käib mudeli treenimine. Lõpptulemuseks on töötav lahendus. Praegust ulme. 10 aasta pärast kindasti rakenduses.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a style="left: 0px ! important; top: 0px ! important;" title="Vajuta siia, et blokeerida selle objekti Adblock Plusiga" class="abp-objtab-044675231213441136 visible" href="http://fora.tv/embedded_player"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Vajuta siia, et blokeerida selle objekti Adblock Plusiga" class="abp-objtab-044675231213441136 visible ontop" href="http://fora.tv/embedded_player"&gt;&lt;/a&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="400" height="264"&gt;&lt;param name="flashvars" value="webhost=fora.tv&amp;amp;clipid=8624&amp;amp;cliptype=clip&amp;amp;chapter=4"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="movie" value="http://fora.tv/embedded_player"&gt;&lt;embed flashvars="webhost=fora.tv&amp;amp;clipid=8624&amp;amp;cliptype=clip&amp;amp;chapter=4" src="http://fora.tv/embedded_player" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="400" height="264"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5716035101449971941?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5716035101449971941/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-moistuse-joul-arvutijuhtimine.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5716035101449971941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5716035101449971941'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-moistuse-joul-arvutijuhtimine.html' title='[Varia] Mõistuse jõul arvutijuhtimine demo.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8666864344990765300</id><published>2009-02-07T17:49:00.001+02:00</published><updated>2009-02-07T17:49:36.385+02:00</updated><title type='text'>IE8 test</title><content type='html'>&lt;p&gt;Täna käivitasin ülepikka aja oma Windowsi. Süsteem tervitas mind IE8 installi võimalusega. Miks mitte, täna mul on aega mängida küll.&lt;/p&gt;  &lt;p&gt;Tavakasutajana häiris 2kordne restart: Esimene kui IE8 oli Update kaudu alla tiritud, teine kui IE8 oli peale installitud. Kokkamise ajal oli mul aega neid restarte teha. &lt;/p&gt;  &lt;p&gt;IE8 käivitus&amp;#160; mul väga kiiresti. Keskkond oli sama ja tuttav.NN prahised lehed nagu on Äripäeva ja delfi veebilehed laadisid suht kiiresti. Pluss punktid. &lt;/p&gt;  &lt;p&gt;Kuid delfi lehe puhul oli näha, et Microsofti koodineegrid pole lehe laadimisstrateegiat muutnud. Siiani säilib põhimõte, kas kõik või mitte midagi. Ehk leht pole korralikult sirvitav ennem kui põhielemendid on laetud. Võrdle Operaga! &lt;/p&gt;  &lt;p&gt;Võrreldes konkurentidega erilist funktsioonaalsust tal juurde küll tulnud ei ole. Ma olen harjunud nn targa-brausimisega. Äärmiselt mugav on kui brauserisse kirjutad ainult serverinime. Enterit vajutades lisab ta ise ette www (kui vaja) ja lõppu domeeni. Mind algul ehmatas kui trükkisin aadressi reale swedbank.ee ja ette prahvatas msn search.&amp;#160; Samas selles versioonis on lõpuks ära tehtud see, mis ammu konkurentidel on olemas olnud: aadressiriba ja otsing on ühildatud. Otsingu sooritamiseks ei pea IEs enam minema väiksesse otsingukasti, juhuuu! Nad on lõpuks arusaanud, et inimesed ei otsi enam otsingumootorist ühe-kahesõnalisi fraase, mis otsingukasti ära mahuvad.&lt;/p&gt;  &lt;p&gt;Mind äärmiselt üllatas &lt;a href="http://www.webstandards.org/action/acid3"&gt;ACID testide&lt;/a&gt; tulemuste hüppeline paranemine. 3nda testiga tekkis tõrge. Vajutasin kogemata lingil like &lt;a href="http://acid3.acidtests.org/reference.html"&gt;this reference rendering&lt;/a&gt; ja tuli 100% pilt ette :D .&amp;#160; Ei sellest tulemusest jääb veel IE8 kaugele ja isegi konkurentide omast. Vaevalt 20%. Edasitäitmist katkestab vaid viga. Loodan, et&amp;#160; peagi parandatakse&amp;#160; ära.&lt;/p&gt;  &lt;p&gt;Arendajad foorumis räägivad, et IE8 on aksepteerinud üldtunnustatud standardid ja kadunud on “hasLayout” jama.(&lt;a href="http://msdn.microsoft.com/en-us/library/bb250481.aspx"&gt;loe sellest lähemalt&lt;/a&gt;). Ise pole pikka aega ühtegi veebiprojekti teinud, ei tea oma kogemusest rääkida. Nii jonnakat last annab otsida, kuid miljonäri laps võib seda lugeda.&lt;/p&gt;  &lt;p&gt;Mulle meeldis väga IE8 developer tools. Vajuta F12 ja näed. Väga mõnus sortsu vaatamiseks. :D Stiililehtede varastamiseks . No, milleks keegi kasutab … Miinuseks on selle töökindlus. Nimelt selle töö hangumine jooksutab kogu brauseri kokku :D . Kas keegi on proovinud ühe tabi kinni jooksutada? Kas siis ka brauser hangub? Häbi igal juhul.&lt;/p&gt;  &lt;p&gt;Kokkuvõtteks: Hinne 3/5st. Tehtud töö on olnud hea. Miks sa esitad oma töö suve vaheajal? Aga tulemustest hõiskad juba kevad vaheajal. Miks mõtled vaid kelladele-viledele? Mõtle vahest oma vormile Ma tahan reklaamiblokeerijat näha, brausimine muutuks targemaks. Palun mõtle turbele ka natuke! &lt;strong&gt;&lt;a href="http://bcheck.scanit.be/bcheck/go.php"&gt;Kontrolli oma brauseri turbetugevust siit!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8666864344990765300?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8666864344990765300/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/ie8-test.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8666864344990765300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8666864344990765300'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/ie8-test.html' title='IE8 test'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2180840281842022219</id><published>2009-02-06T23:38:00.005+02:00</published><updated>2009-02-07T00:28:19.091+02:00</updated><title type='text'>[Varia] the ten laws of geek</title><content type='html'>&lt;h3 class="docSection1Title"&gt;Täna õhtune soolapähkel. (&lt;span style="font-size:85%;"&gt;&lt;a href="http://translate.google.com/translate?prev=_t&amp;amp;hl=en&amp;amp;ie=UTF-8&amp;amp;u=timgluz.blogspot.com&amp;amp;sl=et&amp;amp;tl=en&amp;amp;history_state0="&gt;Read in googleEnglish&lt;/a&gt;&lt;/span&gt;)&lt;br /&gt;&lt;/h3&gt;&lt;br /&gt; Töölt tulles oli kuidagi laisk tunne - päev otsa andmekaeves ja statistikas sees, need veel ok. Kuid eriti väsitavaks osutus päevalõpu ülesanne. Nimelt pidin vanale projektile kasutusjuhendid valmis treima. Ja põhjalikult, sest ega ma seda endale ei teinud, user "Tädi-Maali" ja projekt oli VBAs - nõmedus ruudus ja paneb silmad mädanema.&lt;br /&gt; OK, töölt tagasi tulnuna olin väsinud. Vaatasin tänase Stargate Atlentise osa ära. Peale seda mõtlesin, mida nüüd teha. Päris laiselda ei taha ja samas ei taha midagi rasket lugeda. Sirvisin ajaviiteks oma e-raamatukogu ja voila! Sealt torkas silma mõnus raamat&lt;a title="&amp;quot;1337 h4x0r h4ndb00k&amp;quot;" target="_blank" href="http://proquest.safaribooksonline.com/0672327279" id="sb8x"&gt; "1337 h4x0r h4ndb00k"&lt;/a&gt; (veebiversioon samal lehel osaliselt nähtav). Esimeses peatükkis leidsin juba midagi huvitavat. Sellist 10t käsku pole ma veel näinud! Ja need on mulle mokka mööda! Kui palju sarnasust sina siit leiad? :D&lt;br /&gt; ps: Tõsine h4x0r peaks mõistma - need reeglid on mõeldud, kes tahavad ka hirmsasti häkkeriks hakkata, kuid ei oska veel midagi teha. Selline on ka antud raamatu sisu. Kui ei ole asjaga piisavalt kodus, siis loe natuke siit: &lt;a href="http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng14"&gt;http://akadeemia.kakupesa.net/arhiiv/VR1/loengud/loeng14&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lühike eestikeelne kokkuvõte.&lt;/b&gt;&lt;br /&gt;Soovitavalt loe ingliskeelset originaali edasi, seal on mõte lahti seletatud. Tõlge ei ole sõna-sõnaline.&lt;br /&gt;&lt;i&gt;1) Mölise vähe, tegutse aktiivselt!&lt;br /&gt;2) Tea filmi "Hackers" sisu ja mõtet!&lt;br /&gt;3) Tea mida küsid!&lt;br /&gt;4) Aita otsijat kuni kehtib reegel 3.&lt;br /&gt;5) Ära diskrimineeri!&lt;br /&gt;6) Austa targemat!&lt;br /&gt;7) Ära hoople!&lt;br /&gt;8) Kohtle maskat nii nagu kohtled iseennast!&lt;br /&gt;9) Austa ajalugu ja sõnavabadust!&lt;br /&gt;10) Kasuta talenti arukalt!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="docSection1Title"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;a title="the ten laws of geek" target="_blank" href="http://proquest.safaribooksonline.com/0672327279/ch01lev1sec1" id="e_-e"&gt;the ten laws of geek&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;ol class="docList" type="i"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;thou shalt not &lt;span class="docEmphStrong"&gt;syn&lt;/span&gt;(synchronize), only &lt;span class="docEmphStrong"&gt;ack&lt;/span&gt; (acknowledge).&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;div style="font-weight: normal;"&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;geeks are typically known as quiet, reserved people. therefore&lt;br /&gt;the first step to becoming a geek is to &lt;span class="docEmphStrong"&gt;stfu&lt;/span&gt;&lt;br /&gt;(shut the f--- up) and start paying attention.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;thou shalt have seen the movie "hackers" and knoweth it&lt;/span&gt; &lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;well.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;div style="font-weight: normal;"&gt;&lt;ul&gt;&lt;li&gt;i have never met a geek in my life that hasn't seen this movie.&lt;br /&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;it's quite an exaggeration on real life, but is a classic none the less. it is&lt;br /&gt;not uncommon to hear quotes from this movie in everyday geek&lt;br /&gt;conversation.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;thou shalt &lt;span class="docEmphStrong"&gt;rtfm&lt;/span&gt; (read the f---ing manual) before asking questions.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;div style="font-weight: normal;"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;nothing is more annoying than someone who just wants the&lt;br /&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;solution to a problem when the answer can be located in the most obvious place.&lt;br /&gt;always attempt to learn for yourself. show a little effort.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;thou shalt help guide those who seek answers, so long as they&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal;"&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;have complied with law three.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;with respect to the open-source state of mind, always share&lt;br /&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;information with those who are curious; don't hide it.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-weight: bold; font-style: italic;"&gt;thou shalt not discriminate against nationality, skin color,&lt;br /&gt;&lt;div style="font-weight: normal;"&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;sex, age, mental hindrances, physical flaws, sexual preferences, religious&lt;br /&gt;beliefs, personal taste in appearance, or music (w/ the exception of&lt;br /&gt;metallica&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="font-weight: normal;"&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;thou shalt not place thyself above thine fellow geeks within&lt;br /&gt;the geek chain; thou canst only lower thyself. only via election canst thy rank&lt;br /&gt;be promoted, and thou art otherwise equal.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;nobody likes a cocky individual, and geeks are very respectful&lt;br /&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;to one another regarding this issue. &lt;span style="color: rgb(255, 0, 0);"&gt;always realize that there is someone out&lt;br /&gt;there who is smarter than you. &lt;/span&gt;once u reach a certain level of education, other&lt;br /&gt;geeks will naturally grow more respectful of you, as if they instinctively sense&lt;br /&gt;ur a valuable resource.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;with respect to the sixth law, thou mayeth challenge the&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal;"&gt;&lt;p style="font-weight: bold;" class="docList"&gt;&lt;span style="font-size:85%;"&gt;credibility of any self-proclaimed geek, and so mayeth thou invoke the power of&lt;br /&gt;the sixth law to deduct geek points from anyone who questions basic geek&lt;br /&gt;knowledge.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a lot of people call themselves a hacker when they're not, such&lt;br /&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;as script-kiddies. there is no harm in a friendly duel to see whether or not&lt;br /&gt;someone is full of &lt;span class="docEmphStrong"&gt;bs&lt;/span&gt; (bull sh--). losing geek&lt;br /&gt;points, for the record, does not make you more of a geek; it is not a good&lt;br /&gt;thing.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;thou shalt treat all computers as thou wouldst treat thyself,&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal;"&gt;&lt;p class="docList"&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;i&gt;for thou art the creator of thine own problems.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;hey, it is not your computer's fault that you made it run&lt;br /&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;crappy. get with it or get off it. you certainly don't want to trade your every&lt;br /&gt;keystroke over to a geek to fix it for you, do you?&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;thou shalt help to preserve history, ensure the protection of&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal;"&gt;&lt;p style="font-weight: bold; font-style: italic;" class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;thine individual rights, and keep information free&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;this also has to do with the open-source state of mind and the&lt;br /&gt;freedom of information. history (and the truth) is as important as much as it&lt;br /&gt;can be boring. at &lt;a class="docLink" target="_blank" href="http://archive.org/"&gt;archive.org&lt;/a&gt; you can actually look up websites that&lt;br /&gt;don't exist anymore, kind of like a digital library. it is a very useful geek&lt;br /&gt;tool, especially for web developers who forgot to make a backup of their data&lt;br /&gt;before neglecting to pay their hosting bill.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;thou shalt refrain from using thine geek powers for malicious&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal;"&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;b&gt;purposes unless upon thyself, within a tolerated environment, or to fend off&lt;br /&gt;malicious invasions.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="docList"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;hackers are like jedis, crackers are like the sith: do not fall&lt;br /&gt;prey to the dark side&lt;/span&gt;. &lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;PS:psClass : Kas tunned ennast juba piisavalt häkkerina? Siis on aeg muuta firefoxi pealeht selle lingi vastu:&lt;br /&gt;&lt;a title="http://www.google.com/intl/xx-hacker/" target="_blank" href="http://www.google.com/intl/xx-hacker/" id="c84-"&gt;http://www.google.com/intl/xx-hacker/&lt;/a&gt; . :D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2180840281842022219?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2180840281842022219/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-ten-laws-of-geek.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2180840281842022219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2180840281842022219'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-ten-laws-of-geek.html' title='[Varia] the ten laws of geek'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3914771679013852254</id><published>2009-02-06T22:17:00.001+02:00</published><updated>2009-02-06T22:17:37.998+02:00</updated><title type='text'>[DM] Andmeobjektide sarnasused ja erisused</title><content type='html'>&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;&lt;b&gt;Smalltalk.&lt;/b&gt;&lt;/h3&gt;Tänaseks olen raamatuga &lt;a title="&amp;quot;Introduction to data mining&amp;quot;" target="_blank" href="http://www.amazon.com/Introduction-Data-Mining-Pang-Ning-Tan/dp/0321321367/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1233262263&amp;amp;sr=8-1" id="s43h"&gt;"Introduction to data mining"&lt;/a&gt; jõudnud&amp;nbsp; 69ndale leheni ja nüüd on juba tunda andmekaeve lõhna ning teemad lähevad matemaatilisemaks. Tänases konspektis kirjutan andmeobjektide vahelisest sarnasustest ja kaugustest.&amp;nbsp; NB!&amp;nbsp; Ükski senine konspekt ei jää nn lukku, vaid midagi uut leides,&amp;nbsp; kirjutan uue mõtte juurde ja aegamisi kohendan oma sõnastusi, et tekst liiga konspektine ei oleks.&lt;br&gt;&lt;br&gt;&lt;h3&gt;Sarnasus ja erinevus.&lt;/h3&gt;&lt;b&gt;Sarnasus ja erisus&lt;/b&gt; on andmekaeves olulised suurused, sest nad leiavad rakendust mitmes andmekaeve algoritmis (klasterdamine, lähima-naabri klassifitseerimine ,anomaalia leidmine). &lt;br&gt;&lt;br&gt;&lt;b&gt;Transformeerimine&lt;/b&gt;&lt;br&gt;Sageli kasutakse transformeerimist sarnasuse teisendamiseks erinevuseks või diaposiooni muutmiseks. Näiteks hindamistel kasutatakse skaalat 1st 10ni, aga&amp;nbsp; meil on vaja see viia skaalasse 0st 1ni. Selleks peab kasutama valemit s'= (s-1)/9. Üldkujul on antud valem &lt;br&gt;&amp;nbsp;&lt;i&gt;s' = (s-min_s)/(max_s-min_s)&lt;/i&gt; .&lt;br&gt;&lt;br&gt;&lt;b&gt;Lihtatribuutide sarnasus ja erisus &lt;br&gt;&lt;/b&gt;Siin teemas pikka juttu ei tule, sest kokku juttu võtab kenasti, ilusti kokku alljärgnev pilt.&lt;br&gt;&lt;div id="g2ge" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dfgd4f8p_21cvpvqrhg_b" width="551" height="413"&gt;&lt;/div&gt;&lt;br&gt;&lt;h3&gt;&lt;b&gt;Andmeobjektide erinevused&lt;/b&gt;&lt;/h3&gt;&lt;h3&gt;&lt;/h3&gt;&lt;br&gt;Mäletamismööda leidus erinevaid andmeobjekte. Sestap leidub mitmesuguseid erinevusi. Alljärgnevalt toon ära mõned populaarsemad erisused.&lt;br&gt;&lt;b&gt;&lt;i&gt;Eukleidiline kaugus (&lt;a title="wiki" target="_blank" href="http://en.wikipedia.org/wiki/Euclidean_distanc" id="u43e"&gt;wiki&lt;/a&gt; )&lt;/i&gt;&lt;/b&gt;- mõõdab kahe punkti vahelist kaugust n-mõõtmelises ruumis ning avaldatakse valemiga: &lt;div id="c_31" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 180px; height: 60px;" src="http://docs.google.com/File?id=dfgd4f8p_22dw5pzddp_b"&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;Antud kaugus on samas tasandil lühim tee punktist x punkti y. &lt;br&gt;&lt;b&gt;Minkowski kaugus&lt;/b&gt;-&amp;nbsp; võib vaadelda, kui üldistatud Eukleidesse võrrand.&lt;br&gt;Tema valemiline&amp;nbsp; kuju&amp;nbsp;.&lt;img id="hka4" style="margin: 1em 1em 0pt 0pt; width: 191px; height: 46px; float: left;" src="http://docs.google.com/File?id=dfgd4f8p_23dg533mc2_b"&gt;&lt;br&gt;&amp;nbsp;Leiab kasutamist:&lt;br&gt;&lt;b&gt;*) kui r=1&lt;/b&gt; , siis&amp;nbsp; on tegu &lt;a title="Manhattan, taxicab või Hammingu kaugusega" target="_blank" href="http://en.wikipedia.org/wiki/Manhattan_distance" id="a4du"&gt;Manhattan, taxicab või Hammingu kaugusega&lt;/a&gt; = bittide arv, mis on kahel binnarväärtusega objektil erinevad,&lt;br&gt;*) &lt;b&gt;kui r=2&lt;/b&gt;, siis on tegu eukleidilise kaugusega,&lt;br&gt;*) &lt;b&gt;kui&amp;nbsp; r=lõpmatus&lt;/b&gt;, siis on tegu "supremum"- kaugusega,&amp;nbsp; mis on&amp;nbsp; pikim kaugus kahe objekti vahel.&lt;br&gt;Nb! R-parameeter on on lihtsalt üks arvkonstant ja seda ei tohi segi ajada dimensioonide arvuga n.&lt;br&gt;&lt;b&gt;&lt;br&gt;Mõned&amp;nbsp; kauguse omadused:&lt;/b&gt;&lt;br&gt;1) positiivne märk d(x,x) &amp;gt;= 0 , kõikide x y-ga&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d(x,y) =0 , parajasti siis kui x=y&lt;br&gt;&lt;br&gt;2) sümeetria &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d(x,y) = d(y,x). Kõikide x ja y korral.&lt;br&gt;3) kolmnurk võrratus&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d(x,z) &amp;lt;= d(x,y) + d(y,z) &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;h3&gt;&lt;b&gt;Andmeobjektide vaheline sarnasus&lt;/b&gt;&lt;/h3&gt;&lt;h3&gt;&lt;/h3&gt;&lt;br&gt;&lt;b&gt;Sarnasuse omadused:&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;s(x,y) = 1, ainult siis kui x=3Dy=20&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;s(x,y) = s(y,x) (sümeetria)&lt;br&gt;&lt;br&gt;&lt;h4&gt;&lt;b&gt;*) Binaarandmete sarnasuse leidmine&lt;/b&gt;&lt;/h4&gt;&lt;h4&gt;&lt;/h4&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Enne alamteemade juurde minemist lepin kokku tähistustes.&lt;br&gt;Olgu x ja y kaks objekti, millel on n binaarset atribuuti. Kahe sellise &lt;br&gt;objekti võrdlemine toimub alljärgneva nelja sagedusliku suuruse abil:&lt;br&gt;&lt;i&gt;f&lt;sub&gt;00&lt;/sub&gt; = atribuutide arv, kus&amp;nbsp; x=0 ja y=0&lt;br&gt;f&lt;sub&gt;01&lt;/sub&gt; =&amp;nbsp; atribuutide arv, kus x=0 ja y = 1&lt;br&gt;f&lt;sub&gt;10&lt;/sub&gt; = atribuutide arv, kus x= 1 ja y= 0&lt;br&gt;f&lt;sub&gt;11&lt;/sub&gt; = atribuutide arv, kus x= 1 ja y=1&lt;/i&gt;&lt;br&gt;&lt;br&gt;Kiire ülevaade binaarandmete sarnasuse leidmisest.&lt;br&gt;&lt;br&gt;&lt;b&gt;*-- lihtne kokkulangevuse koefitsent (Simple Matchning Coefficent)&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Enamlevinud meetod sarnasuse leidmiseks. &lt;br&gt;Avaldub valemiga : &lt;div id="x27m" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 376px; height: 38px;" src="http://docs.google.com/File?id=dfgd4f8p_2456vd7rc9_b"&gt;&lt;/div&gt;.&lt;br&gt;&amp;nbsp;Eripäraks- loendab ja arvestab atribuudi olemasolu ja puudumisi võrdselt.&lt;br&gt;&lt;br&gt;&amp;nbsp;Nt saab kasutada true/false vastustega&amp;nbsp; testi puhul leidmaks sarnaselt vastanuid õpilasi.&lt;br&gt;&lt;br&gt;&lt;b&gt;*--Jaccard koefitsent&lt;/b&gt;&lt;br&gt;Käesolev koefitsent leiab sarnasuse vaid olemasolevate väärtuste põhjal. Kasutatakse tihti asümmeetriliste&amp;nbsp; atribuutide korral,&amp;nbsp; nt transaktsioonide maatriks, kus nullid on nn tavalised. &lt;br&gt;Ta avaldatakse valemiga : &lt;div id="cw8d" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 175px; height: 38px;" src="http://docs.google.com/File?id=dfgd4f8p_25dns454fk_b"&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;*--Koosinuse samalaadsus&lt;/b&gt;&lt;br&gt;mõõdab kahe vektori sarnasust. Sageli kujutatakse dokumente ette vektoritena, &lt;br&gt;kus iga attribuudi väärtuseks on sõna(fraasi) sagedus dokumendis. Selle meetodi plussiks&lt;br&gt;on see, et atribuudi väärtus ei pea enam olema binaarne. Väärtus esitakse valemiga: &lt;br&gt;&lt;div id="z8su" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 364px; height: 35px;" src="http://docs.google.com/File?id=dfgd4f8p_26cwkqq3qv_b"&gt;&lt;/div&gt;Kui valem kirjutada ümber:&lt;br&gt;&lt;div id="v.91" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 157px; height: 34px;" src="http://docs.google.com/File?id=dfgd4f8p_27c6fn6c9t_b"&gt;&lt;/div&gt; ,siis selgub et kahe objekti suurusjärk pole enam oluline, sest need suurused on normeeritud.&lt;br&gt;&lt;br&gt;&lt;b&gt;*--Korrelatsioon&lt;/b&gt;&lt;br&gt;Sellest siin pikemalt ei räägi, sest see on niivõrd laiteema ning kaldub puhtalt statistikasse. Samas on see oluline teema. Ülevaatlikult võid sellest lugeda allpool olevalt lingilt.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Korrelatiivne ehk mittetäielik seos valitseb nähtuste vahel, siis kui ühe suuruse igale arvväärtusele vastab teise suuruse hulk arvväärtusi, mis jaotuvad selliselt, et igaüks neist võib esineda teatud tõenäosusega[1].&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Visuaalse pildi korrelatsioonist annab alljärgnev pilt:(1 ja -1 ideaalse lin.funktsioonid)&lt;div id="insh" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=dfgd4f8p_28dh7kh2ww_b" width="589" height="519"&gt;&lt;/div&gt;&lt;br&gt;&lt;hr size="2" width="100%"&gt;[1] August Aarma, Vello Ventsel "Statistika teooria põhikursus"&lt;br&gt;lugemist: M.Juhkami referaat &lt;a title="&amp;quot;Klasterdamine andmekaevanduses&amp;quot;" target="_blank" href="http://www.egeeninc.com/u/vilo/edu/2003-04/DM_seminar_2003_II/ver1/P05/Clustering.pdf" id="ayd5"&gt;"Klasterdamine andmekaevanduses"&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Sauga&amp;nbsp; loengumaterjalid:&lt;a title="&amp;quot;Nähtuste vahelised seosed&amp;quot;" href="http://sauga.pri.ee/audentes/download/sta_korrel_regress.pdf" id="njr1"&gt;"Nähtuste vahelised seosed"&lt;/a&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; V.Kumar &lt;a title="&amp;quot;Introduction to data mining&amp;quot;" href="http://www-users.cs.umn.edu/%7Ekumar/dmbook/index.php" id="ogb4"&gt;"Introduction to data mining"&lt;/a&gt;  &lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3914771679013852254?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3914771679013852254/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmeobjektide-sarnasused-ja.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3914771679013852254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3914771679013852254'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmeobjektide-sarnasused-ja.html' title='[DM] Andmeobjektide sarnasused ja erisused'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1231374656989699757</id><published>2009-02-04T13:06:00.002+02:00</published><updated>2009-02-04T13:08:29.839+02:00</updated><title type='text'>[DM] Andmete eeltöötlus</title><content type='html'>Andmete eeltöötlus on lai valdkond ja suuna määrab lahendatav ülesanne.Kasutusel on erinevaid tehnikaid, et protsessi lõpuks oleks andmed, mis optimeeriks andmekaeve algortimi jõudlust, tööaega ja kvaliteeti. Järgnevalt on ära toodud mõned tähtsamad eeltöötluse meetodid.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;*) &lt;b&gt;Grupeerimine (aggregation)&lt;/b&gt;- sarnaste objektide grupeerimine ühise nimetaja alla, näiteks töötajate grupeerimine osakonnaks ja osakondade grupeerimine divisioniks.  Arvulised suurused liidetakse, mõnikord liidetakse vaid nende keskmised. Kuid &lt;a title="kvalitatiivsete andmete" href="http://timgluz.blogspot.com/2009/01/dm-andmeobjektid.html" id="mo18"&gt;kvalitatiivsete andmete&lt;/a&gt; korral tuleb lähtuda ülesandest,siis tavaliselt jäetakse need kõrvale  või liidetakse üheks suureks jadaks kokku. Seda meetodit kasutatakse mälu, täitmisaja optimeerimiseks ja skoobi muutmiseks, nt näha osakonna tulemusi ja kulutusi, või aja grupeerimisel päevatulemuste grupeerimine kuude või aastate kaupa.  Antud meetodi miinuseks on oht, et huvipakkuvad andmed võivad minna kaduma, sest objektide keskmised erinevad oluliselt vähem kui üksikute väärtuse keskmised.&lt;br /&gt;&lt;br /&gt;*) &lt;b&gt;Näidisvaliku moodustamine (sampling) &lt;/b&gt;-- andmekogust alamkogumi valimine, nii et alamkogu omadused(nt keskmised) sarnaneks võimalikult palju algkogule.  Valiku moodustamise algoritme on mitmeid. Neist lihtsaim on juhuslik valik, mis jaguneb omakorda kaheks a) asendusega ja b) asenduseta . Asenduseta algoritmi korral eemaldatakse  valitud element algallikast ja lisatakse näidisvalikusse. Asendusega on siis vastupidine, valitud elementi ei eemaldata ja kopeeritakse näidisvalikusse, säilitades  elemendi valimise tõenäosuse konstantne. Kui elemendi valimise algoritmi paigas, tuleb paika panna veel kui suur peab  näidisvalik olema.  Näidisvalik ei tohi olla liiga väike, sest siis kaob üldpilt ja  töenäosus, et näidisvalik sarnaned alghulgale , läheneb nullile.&lt;br /&gt;&lt;br /&gt;*)&lt;b&gt; Mõõtmete vähendamin&lt;/b&gt;e -- andmekogust mitteoluliste väljade eemaldamine või ühendamine üheks hulgaks, mille käigus vähendatakse arvutusliku kulu ja müra. Mõõtmeneedus on fenomen, kus mõõtmete suurenedes andmeanalüüsi meetodid muutuvad märkimisväärselt keerulisemateks ja kohmakamateks, sest andmed muutuvad hajusamaks. Mistõttu pole piisavalt andmeobjekte, et igale objektile määrata kindel klass. Klasterdamise juures muutuvad suuruses tihedus ja punktide vaheline kaugus tühiseks.&lt;br /&gt;&lt;br /&gt;*) &lt;b&gt;Diskreetimine&lt;/b&gt; - pidevväärtuse muutmine kategooriliseks suuruseks. Seda meetodit on väga vaja, kui tegu on seoste leidmise ja uurimisealgoritmidega.  Koosneb kahest põhiosast: vajalike kategooriate arvu leidmine ja atribuutide jagamine kategooriatese. Vajalike kategooriate leidmine võib olla kas juhendamisega(supervised) või juhendamiseta( unsupervised).&lt;br /&gt;   &lt;i&gt; Juhendamiseta&lt;/i&gt; jaotamisel ei kasutada klassi-infot ning  tänu sellele hoitakse jagamisalgoritmid võimalikud lihtsad. Enamlevinud algoritmid on:&lt;br /&gt;        a) võrdne laius - jagab atribuutide vahemiku kasutaja poolt määratud  võrdse vahemikuga                 intervallideks. Miinuseks , erijuhtumid võivad intervalle moonutada.&lt;br /&gt;        b) võrdne sagedus - antud algoritm jagab väärtustehulga intervallideks, milles esineb võrdne arv         objekte.&lt;br /&gt;        c) Klusterdamise meetod, nt K-Means.&lt;br /&gt;    &lt;i&gt;Juhendamisega&lt;/i&gt; jaotamisel kasutatakse lisainfot(klassi-infot). Kui klasside väärtused esinemissagedus erinevates intervallides on suur , siis entroopia on maximum. Kui intervall sisaldab vaid ühe klassi väärtusi, siis entroopia on 0. Entroopia( &lt;a title="wiki" href="http://en.wikipedia.org/wiki/Entropy" id="nnh0"&gt;wiki&lt;/a&gt; ) on süsteemi korrapäratuse mõõde.&lt;br /&gt;&lt;br /&gt;*) &lt;b&gt;Kahendkodeerimine (binarization)&lt;/b&gt; - on kategoorilisele suurusele kahendväärtuse omistamine. Lihtsaim meetod on, kui lisada tema järjekorra numbri kahendväärtus. Kuid selline lähenemine võib lisada kunstlikke seoseid. Selle asemel kasutatakse tihti kahendjada, kus esineb vaid üks 1 ja järgmise kategooria saab kui nihutada seda bitti.  Alljärgnevalt seda algoritmi selgitav tabel.&lt;br /&gt;&lt;div&gt;&lt;table class="zeroBorder" id="e48n" width="100%" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="14%"&gt;kategooria&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;täisarv suurus&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;x1&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;x2&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;x3&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;x4&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;x5&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="14%"&gt;kohutav&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="14%"&gt;kehv&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="14%"&gt;OK&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;2&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="14%"&gt;hea&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;3&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="14%"&gt;suurepärane&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;4&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;0&lt;br /&gt;&lt;/td&gt;&lt;td width="14%"&gt;1&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;*)&lt;b&gt; Muutujate transformeerimine&lt;/b&gt; -- kõigi muutujate väärtuste muutmine, nii et neil oleks kindel kuju või jaotuvus. Jaguneb 2ks: a) funktsiooni rakendamine b) normaliseerimine .&lt;br /&gt;    a)&lt;i&gt;Funktsiooni rakendamine&lt;/i&gt;. Nt arvud oleksid vaid positiivsed suuresed, kasutatakse absoluutväärtused. Kui oluline on arvusuurus järk, logaritm. Statistikas kasutakse funktsioone sqrt, log ja 1/x väärtuste jaotuse muutmiseks, nii et neil oleks Gaussi jaotus.  Kuid väärtuste muutmisega peab olema ettevaatlik, sest nad muudavad andmete olemust. Enne kui rakendada transformeerimist, peab mõtlema  järgnevatele küsimustele:&lt;br /&gt;    -- kas järjekord peab säilima&lt;br /&gt;    -- kas muutused peab rakenduma kõikidele väärtustele, eriti negatiivsed suurused ja 0.&lt;br /&gt;    -- mis muutused kaasnevad 0 ja 1 vahel olevate väärtustega&lt;br /&gt;&lt;br /&gt;    b) &lt;i&gt;normaliseerimine &lt;/i&gt;- eesmärgiks on vähendada suurte väärtustega muutujate ülekaalu arvutustes. Nt kui arvutatakse inimeste vahelist sarnasust vanuse ja sissetuleku järgi, siis Eukleidilise kauguse valemis hakkaks sissetuleku vahe domineerima vanuse erinevuse üle.  See tuleneb sellest,et eriväärtused(outliers) moonutavad keskmist ja standarthälvet. Seetõttu asendakse keskmine mediaaniga ja standarthälve asendatakse absoluutse standarthälbega.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1231374656989699757?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1231374656989699757/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmete-eeltootlus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1231374656989699757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1231374656989699757'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmete-eeltootlus.html' title='[DM] Andmete eeltöötlus'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6195459219018763647</id><published>2009-02-02T00:14:00.002+02:00</published><updated>2009-02-02T00:18:33.748+02:00</updated><title type='text'>[DM] Andmekvaliteet</title><content type='html'>Ebareaalne on eeldada, et andmed on ideaalsed. Alati võib juhtuda inimlik viga, mõõteseade pole ülesannetele vastav või toimub andmeülekandes viga. Mõnikord aga tundub kõik nagu OK olevat, aga andmetel on tähenduslik vastuolu, nt inimene on 2meetrit pikk, kuid kaalub vaid 2kilo. Andmekaevandamisel peab selliseid olukordi arvestama. Alljärgnevalt toon välja mõningad vead, mis võivad tekkida mõõtmise ja andmekogumise käigus.&lt;br /&gt;&lt;b&gt;*) Müra ja kõrvalefektid&lt;/b&gt;&lt;br /&gt;Müra on juhuslik mõõteviga, mis moonutab tõelist väärtust või lausa lisab valeväärtuse. &lt;a id="w3bh" href="http://docs.google.com/File?id=dfgd4f8p_17pptgzkdc_b" target="_blank"&gt;&lt;img style="margin: 1em 0pt 0pt 1em; width: 320px; height: 237.986px; float: right;" src="http://docs.google.com/File?id=dfgd4f8p_17pptgzkdc_b" /&gt;&lt;/a&gt;  Hea ettekujutuse annab kõrvalolev pilt. Pildil (a) on kujutatud puhas harmooniline signaal, kuid alloleval pildil on reaalne signaal, mis levib näiteks sideseadmetes. Lisandunud on keskkonna müra ja raske on näha, et tegu on harmoonilise signaaliga. Kui nüüd müra suurendada, siis kaoks algne harmooniline signaal kuskile müra sisse ära. Me ei saaks aru mida teine inimene meile räägib.  Sama on ka andmebaasi andmetega, liiga palju müra peidab tõelise info ja andmekaeve algoritmid annavad jaburaid tulemusi. Idee "eemalda müra" võib reaalelus osutada keeruliseks ja väga tüütuks. Õnneks andekad professorid uurivad jätkuvalt antud teemat, näiteks &lt;a title="ACM" target="_blank" href="http://en.wikipedia.org/wiki/Association_for_Computing_Machinery" id="hbsc"&gt;ACM(wiki)&lt;/a&gt; lehelt võib 12aasta jagu ajakirja materjale  . Müra vähendamisest loe juba siit:  &lt;a title="http://portal.acm.org/toc.cfm?id=J1016&amp;amp;type=periodical&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=20015089&amp;amp;CFTOKEN=86022575" target="_blank" href="http://portal.acm.org/toc.cfm?id=J1016&amp;amp;type=periodical&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=20015089&amp;amp;CFTOKEN=86022575" id="dq7h"&gt;http://portal.acm.org/toc.cfm?id=J1016&amp;amp;type=periodical&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=20015089&amp;amp;CFTOKEN=86022575&lt;/a&gt; . Mõnikord võib juhtuda midagi enneolematut. Sa oled infomüra eemaldanud, kuid seal on ikka mingi anormaalne juhtum. Tasub uurida, milles see seisneb. Just sarnasele juhtumile leiti rõntgeni radioaktiivsus, mis jätsid &lt;a title="Herr Röntgeni" target="_blank" href="http://en.wikipedia.org/wiki/Association_for_Computing_Machinery" id="mdu9"&gt;Herr Röntgeni(wiki)&lt;/a&gt; statiividele iseäralikud jooned.&lt;br /&gt;&lt;b&gt;*) Täpsusklass, nihe, mõõteviga&lt;br /&gt;&lt;/b&gt;Tegu on statistikast pärit suurustega.&lt;br /&gt;Täpsusklass( precision) --  suurus, mis näitab kui palju  korduvate mõõtetulemuste väärtused erinevad teineteisest. Tavaliselt on standarthälbe kujul.&lt;br /&gt;Nihe( bias) -- mõõtetulemuste varieerumine&lt;br /&gt;Mõõteviga( accuracy) -- mõõtetulemuste erinevus ideaalväärtusest.  Sõltub eelnevatest suurustest, kuid selle suuruse puhul pole kindlat  valemit, et leida väärtus. Tihti on antud suurus antud kaasa mõõteseadmetega.&lt;br /&gt;&lt;b&gt;*) Erijuht(outlier) &lt;/b&gt;&lt;br /&gt;On kas andmeobjekt, mis erineb teistest oluliselt või on ebatavaline atribuudi väärtus. Ehk tegu on mingi anomaaliaga ja mõnikord on sellele oluline tähtsus, näiteks pettuste leidmisel või võrgurünnete puhul.&lt;br /&gt;&lt;b&gt;*) Puuduvad väärtused&lt;/b&gt;&lt;br /&gt;Küsitluste puhul on tegu üsna levinud juhtumiga. Näiteks inimene tunneb valehäbi oma vanuse kaalu kirjutamisega ning jätab selle täitmata. Või on tegu juhtumiga, kus andmeid see hetkel polnud kättesaadavad. Toon alljärgnevalt ära ka mõned tehnikad, millega saab seda viga leevendada.&lt;br /&gt;    a) Puuduvate väärtustega objektide eemaldamine. "Pole inimest, pole probleemi"- Stanilistlik lähenemine. Miinuseks asjaolu, et ka puudulikke väärtustega objekt sisaldab ka infot. Antud välistamine ei sobi, kui puudulikke väärtusi on palju.&lt;br /&gt;    b) Puuduva väärtuse hindamine.  Antud tehnika proovib hinnata teiste andmete põhjal hinnata puuduva väärtuse suurust. Nt üks algoritm pidevate väärtuste korral oleks, leia naaberväärtuste keskmine  ja kasuta seda. Diskreetse väärtuse puhul võib näiteks võtta enimesineva väärtuse. Kuid selle algoritmi korral tuleb arvestada nn Kapitalismi reegliga - "Rikas rikkamaks ja vaene vaesemaks".&lt;br /&gt;    c) Eira puuduvat väärtust.  Näiteks klasterdades eira  puuduvat suurust ning arvuta sarnasus teiste suuruste põhjal. Antud lähenemist toetavad enamik klassifitseerimise algoritmid, sest sarnasus on keskmine väärtus ja väikse puudujäägid seda eriti ei mõjuta.&lt;br /&gt;*) &lt;b&gt;Vasturääkivad väärtused&lt;br /&gt;&lt;/b&gt;Jällegi üsna tavaline juhtum veebirvorme täites, kus kasutaja sisestab asukoha linna, kuid ei mäleta sihtkohta täpselt ja sisestab sinna vale väärtuse. Või juhtum kui  andmesisestaja jätab ühe nulli kirjutamata.&lt;br /&gt;&lt;b&gt;*) Korduvad andmed&lt;/b&gt;&lt;br /&gt;Tavaliselt leidub neid ajalooga andmetest, nt päring ei arvesta ajaruumi ning kohtleb sama naist kui kahte erinevat. Olgugi üks esitab neiupõlve nime ja teine abikaasa oma. Või juhtum, kui isik elab mitmes kohas.  Kuid korduvate andmete eemaldamisega peab olema tähelepanek. Mõnikord on eriobjektidel samad väärtused, kuid nad ikkagi erinevad objektid. Nt nimekaimud.&lt;br /&gt;&lt;br /&gt;Samas ei tasu taga ajada 100% kvaliteeti, see on liiga aja, närvi- ja rahakulukas. Seega peab olema ratsionaalne ja juhinduma ideest "nii palju kui vaja, nii vähe kui võimalik". Ehk eesmärgiks peaks olema piisava kvaliteedi saavutamine, et tööalgoritmid töötaksid ilma suuremate vigadeta. Paremat kvaliteeti aitab saavutada ka parem andmete mõistmine , sest siis on selgem pilt, millised on olulised suurused ja millised on suurused on omavahel seotud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6195459219018763647?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6195459219018763647/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmekvaliteet.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6195459219018763647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6195459219018763647'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmekvaliteet.html' title='[DM] Andmekvaliteet'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6177630614775620188</id><published>2009-02-01T07:15:00.005+02:00</published><updated>2009-02-01T07:32:28.332+02:00</updated><title type='text'>[Varia] Google hack :D</title><content type='html'>1) Mine www.google.com&lt;br /&gt;2) Trüki fraas Find Chuck Norris&lt;br /&gt;3) Vajuta nuppu "Ehk mul veab"&lt;br /&gt;4) Tagajärg:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_80sAoSXiYeA/SYUwsrSjOyI/AAAAAAAAAZ4/bwYKIZst59c/s1600-h/Kuvat%C3%B5mmis-Chuck+Norris+-+Google+Search+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 559px; height: 379px;" src="http://1.bp.blogspot.com/_80sAoSXiYeA/SYUwsrSjOyI/AAAAAAAAAZ4/bwYKIZst59c/s320/Kuvat%C3%B5mmis-Chuck+Norris+-+Google+Search+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5297694080764164898" border="0" /&gt;klõpsi suuremaks!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Kel on Linuxi konsooliriba käepärast, siis trükkigu antud rida:&lt;br /&gt;&lt;a href="https://dgl.cx/wikipedia-dns"&gt; host -t txt ChuckNorris.wp.dg.cx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6177630614775620188?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6177630614775620188/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-google-hack-d.html#comment-form' title='2 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6177630614775620188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6177630614775620188'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-google-hack-d.html' title='[Varia] Google hack :D'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_80sAoSXiYeA/SYUwsrSjOyI/AAAAAAAAAZ4/bwYKIZst59c/s72-c/Kuvat%C3%B5mmis-Chuck+Norris+-+Google+Search+-+Mozilla+Firefox.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-9049596029415518800</id><published>2009-02-01T05:33:00.002+02:00</published><updated>2009-02-01T05:47:28.718+02:00</updated><title type='text'>[Varia] Aksentide arhiiv</title><content type='html'>Lehelt &lt;a href="http://accent.gmu.edu"&gt;http://accent.gmu.edu&lt;/a&gt; võid kuulata, kuidas inimesed erimaailma paigust räägivad ingliskeelt. Samas  on võimalik natuke lugeda  teoreetilisi materjale, mis toovad välja  selle keele aksendi omapärasid. Minu arust väga hea leht keeleuurijatele ja kõnetuvastusseadmete valmistajale. NB! Seal leidub ka eesti keele näide. Kui ei usu, siis &lt;a href="http://accent.gmu.edu/browse_language.php?function=detail&amp;amp;speakerid=591"&gt;kuula ise&lt;/a&gt;. Vajalik on quickTime mängijat. Mul on Ubuntul installitud gstreamer ja töötab samuti hästi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-9049596029415518800?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/9049596029415518800/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-aksentide-arhiiv.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/9049596029415518800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/9049596029415518800'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-aksentide-arhiiv.html' title='[Varia] Aksentide arhiiv'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1394715079345778989</id><published>2009-02-01T04:41:00.005+02:00</published><updated>2009-02-01T05:26:04.199+02:00</updated><title type='text'>[Varia] Wifi SD kaart kaamerale</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.eye.fi/wp-content/uploads/2008/11/cards.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 217px; height: 194px;" src="http://www.eye.fi/wp-content/uploads/2008/11/cards.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Lehelt &lt;a href="http://www.eye.fi/overview/"&gt;Eye-Fi&lt;/a&gt; võib leida laheda vidina - Wifi-SD kaart. See salvestab pilte nagu tavaline SD kaart.&lt;br /&gt;Kuid kui sa sattud WIFI võrku on sul võimalik laadida  oma pildid  veebikontole ja hiljem sealt oma arvutisse. Vidin sobib 700le kaamerale. Kõik sobivad tüübid on kodulehel ära toodud.&lt;br /&gt;Vaata ka &lt;a href="http://revision3.com/tekzilla/tekzilla-episode-73/?hp"&gt;Revision3&lt;/a&gt; ülevaadet, seal räägitakse et asi pole veel nii roosiline, eriti kohataagimine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1394715079345778989?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1394715079345778989/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-wifi-sd-kaart-kaamerale.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1394715079345778989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1394715079345778989'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-wifi-sd-kaart-kaamerale.html' title='[Varia] Wifi SD kaart kaamerale'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1701043486008733812</id><published>2009-02-01T03:25:00.003+02:00</published><updated>2009-02-01T03:41:01.819+02:00</updated><title type='text'>[Varia] Tamagotchi ja PHP - lahe nädalavahetuse projekt</title><content type='html'>Täna vaatasin HAK5 424 episoodi. Seal näidati lahedat nädalavahetuse projekti PHP Tamagotchi. Huvitav oli vaadata, kuidas sinna projekti oli mitu asja kokku miksitud PHP, CURL, VLC veebi liides, Wamp servu, RSS feed ja Twitter. Mõnus ja lihtne projekt kõigile. Aga lähemalt vaadake juba HAK5.org lehelt &lt;a href="http://www.hak5.org/episodes/episode-424"&gt;http://www.hak5.org/episodes/episode-424&lt;/a&gt;.&lt;br /&gt;PS: RSS feedi kohapealt veel niipalju.Seal programmis kasutatakse väga head RSS parserit MAGPIE (Harakas), tiri see endale siit: &lt;a href="http://magpierss.sourceforge.net/"&gt;http://magpierss.sourceforge.net/&lt;/a&gt; . Miks hea? Seda on lihtne kasutada ning see toetab regulaaravaldisi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1701043486008733812?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1701043486008733812/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-tamagotchi-ja-php-lahe.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1701043486008733812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1701043486008733812'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/varia-tamagotchi-ja-php-lahe.html' title='[Varia] Tamagotchi ja PHP - lahe nädalavahetuse projekt'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6805571209233372630</id><published>2009-02-01T01:57:00.002+02:00</published><updated>2009-02-01T02:15:38.994+02:00</updated><title type='text'>[DM] Andmekogumid</title><content type='html'>&lt;b&gt;Mis on andmekogu?&lt;/b&gt;&lt;br /&gt;    Taas ei tule üllatusena, et on olemas mitmesuguseid andmekogusid(data sets). Kavatsengi nüüd anda lühikese ülevaate enam levinud andmekogudest. Lihtsustatult  jagatakse andmekogumid kolme kategooriasse: &lt;u&gt;kirjed&lt;/u&gt;(ostukorvi andmed), &lt;u&gt;graafi-põhised andmed&lt;/u&gt;(veebilehed, keemilised ühendid) ja &lt;u&gt;järjestikulised andmed&lt;/u&gt;(temperaatuurid seeriad ajas).&lt;br /&gt;&lt;br /&gt;  &lt;b&gt;  Kirjed&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Kõige lihtsama struktuuriga andmehulk. Ta koosneb andmeobjektidest, mis omakord&lt;img src="http://docs.google.com/File?id=dfgd4f8p_15hd8jmccs_b" style="margin: 1em 0pt 0pt 1em; float: right;" width="232" height="230" /&gt;a omavad atribuute. Ehk lihtsamalt, kujuta ette exceli tabelit, veerud oleksid atribuutid ja read objektid. Selgemalt on see välja toodud kõrval oleval pildil. &lt;br /&gt;Kirjed on kõige enam kasutatud andmehulk, siis teen erandi ja toon selle andmehulga puhul välja alamjaotuse.&lt;br /&gt;Kirjete põhikategooriad:&lt;br /&gt;1) &lt;i&gt;transaktsioon-andmed&lt;/i&gt;, selle kategooria peaesindaja on ostukorvi sisu, mis kajastab kaupade hulka, mis oli kasutaja korvis.  Ostukorvi põhiatribuudid võib esitada struktuuriga  &lt;i&gt;{ID,aeg}{ostukorvis leiduvate elemendite loend}&lt;/i&gt; .&lt;br /&gt;2) &lt;i&gt;Andmemaatriks&lt;/i&gt; - loetakse andmehulka, mille väärtused on kõik arvulised suurused. Seetõttu võib andmehulki  vaadata ruumipunktidena. Seega saab temale rakendada lineaaralgebras tuntud maatrikstehteid.  Tema eriliigiks on harv-andmemaatriks, tema atribuudid on asümeetrilised, ehk ainult mitte-nullised väärtused on olulised.&lt;br /&gt;    &lt;b&gt; Graaf-andmed &lt;/b&gt;&lt;br /&gt;Kasulik esitlusviis  andmeobjektide vaheliste seoste esitamiseks või juhul kui kirjeldav objekt on ise graafi kujuga, nt keemiline ühend . Hoolimata sellest, et hetkel ma seda valdkonnast pikemalt ei räägi , on  sellel kategoorial oluline tähtsus. Võid selle teemalisi tekste lugeda IEEE-Explore lehelt: &lt;a title="http://ieeexplore.ieee.org" href="http://ieeexplore.ieee.org/" id="mnsr"&gt;http://ieeexplore.ieee.org&lt;/a&gt; .&lt;br /&gt;    &lt;b&gt; Järjestatud andmed &lt;/b&gt;&lt;br /&gt;Need andmed on väga rangelt järjestatud, kas ruumis ja/või ajas. Näiteks  keskmised temperatuurid mingi ajavahemiku jooksul, nukleotiidid DNAs jne või isegi teleuudiste ilmateatel olev ilmakaart.&lt;br /&gt;&lt;br /&gt;vt: &lt;a href="http://www-users.cs.umn.edu/%7Ekumar/dmbook/index.php#item5"&gt;http://www-users.cs.umn.edu/~kumar/dmbook/index.php#item5&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6805571209233372630?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6805571209233372630/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmekogumid.html#comment-form' title='2 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6805571209233372630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6805571209233372630'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/02/dm-andmekogumid.html' title='[DM] Andmekogumid'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1658651125806968808</id><published>2009-01-31T21:55:00.001+02:00</published><updated>2009-02-07T01:38:56.157+02:00</updated><title type='text'>[DM] Andmeobjektid</title><content type='html'>&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;br&gt;&lt;b&gt;Millised andmed on olemas?&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Me kõik teame, et on olemas mitmesuguseid andmeid ja need võivad olla väga&amp;nbsp; erineva tähendusega. Andmed jagunevad oma tüübilt kahte liiki. Füüsikalistest suurustest või loendustulemusi sisaldavaid andmeid nimetatakse &lt;b&gt;kvantitatiivseteks&lt;/b&gt; (õs: &lt;a title="koguline suurus" href="http://www.eki.ee/dict/qs2006/index.cgi?Q=kvantitatiivne&amp;amp;F=S&amp;amp;O=0&amp;amp;E=0" id="e-rw"&gt;koguline suurus&lt;/a&gt; ) ja hinnangulisi, omaduse põhiseid andmeid nimetatakse omakorda &lt;b&gt;kvalitatiivseteks &lt;/b&gt;(õs: &lt;a title="omaduslik" href="http://www.eki.ee/dict/qs2006/index.cgi?Q=kvalitatiiv*&amp;amp;F=ALL&amp;amp;O=0&amp;amp;E=0" id="nxwv"&gt;omaduslik&lt;/a&gt; ). &lt;br&gt;&lt;br&gt;&lt;b&gt;Andmehulga koostisained.&lt;/b&gt;&lt;br&gt;&lt;img id="s5z5" style="margin: 1em 0pt 0pt 1em; width: 334px; height: 330px; float: right;" src="http://docs.google.com/File?id=dfgd4f8p_13gkfq8kcv_b"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: rgb(0, 0, 255);"&gt;Andmehulka(data set)&lt;/span&gt; võib vaadata kui andmeobjektide(data object) ja andmeobjektide omaduste&amp;nbsp; kogumit. Igal kogumil võib olla mitu atribuuti(tuntud ka kui muutuja, karakteristik, omadus, väli). &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Atribuutidest lähemalt. Atribuut on objekti omadus või karakterisitik, mis võib erineda ajas või hulgas. [1] &lt;a title="Vipin Kumar" href="http://www-users.cs.umn.edu/%7Ekumar/" id="t1gv"&gt;Vipin Kumar&lt;/a&gt; toob oma raamatus ilusa näite. Silma värvus võib inimestel olla erinev, samas kui temperatuur erineb ajas. Pealegi tasub tähelepanna, et&amp;nbsp; värvi väärtuste hulk on piiratud ja diskreetsed. Samas temperatuuri numbriline väärtus on pidev ja võib omada piiramata hulgal väärtusi. Täpsemalt on atribuutide tüübid välja toodud alljärgnevas tabelis.&lt;br&gt;&lt;div id="miye" style="padding: 1em 0pt; text-align: left;"&gt;&lt;a href="http://docs.google.com/File?id=dfgd4f8p_12dpzdj6dw_b" target="_blank"&gt;&lt;img src="http://docs.google.com/File?id=dfgd4f8p_12dpzdj6dw_b" width="680" height="329"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;b&gt;Hindeskaalad[2]&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;1. Nominaal- ehk nimiskaala.&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kasutatakase objektide eristamiseks. Nt sugu, rahvus, huvid, id numbrid , postiindeksid, telefoninumbrid. Kui uuritava objekti tunnuse väärtused on toodud nominaalskaalal, siis nimetatakse seda nominaaltunnuseks. Nominaaltunnuse järgi saab objekte liigitada. Loendamine ja sageduste leidmine on ainukesed tehted&lt;br&gt;&lt;b&gt;2. Ordinaalne ehk astmelineskaala.&lt;/b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Võimaldab elemente uuritava tunnuse alusel järjestada. NB! Intervallid ei pruugi skaalajaotuse vahel olla ühesugused. Nt: kooli hinded, neid võib järjestada. Samas pole intervallid võrdsed ning ei saa öelda, et 4 on 2korda parem hinne kui 2. Seetõttu on statistilised arvutused ordinaalsete suurustega valed. &lt;b&gt;Ei saa leida koolihinnete keskmist! (&lt;/b&gt;vali mood&lt;b&gt;). &lt;br&gt;3. Intervallskaala&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/b&gt;Skaalajaotuse intervallid on täpselt ühepikkused. Nt inimesevanus, õigete vastuste arv, pulsi sagedus. Jaguneb:&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) vahemikskaala - nullpunkt on kokkuleppeline. (Celsius, aeg)&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) suhteskaala - nullpunkt on fikseeritud (Kelvin, kaal).&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;/div&gt;&lt;hr size="2" width="100%"&gt;[1]&amp;nbsp; Vipin Kumar &amp;amp; Co raamat &lt;a title="&amp;quot;Introduction to data mining&amp;quot;" href="http://www.amazon.com/Introduction-Data-Mining-Pang-Ning-Tan/dp/0321321367/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1233262263&amp;amp;sr=8-1" id="pw6l"&gt;"Introduction to data mining"&lt;/a&gt;&lt;br&gt;[2] Ako Sauga &lt;a title="&amp;quot;Statistline järeldus loengumaterjal&amp;quot;" target="_blank" href="http://sauga.pri.ee/audentes/download/ps_konspekt_lk1_18.pdf" id="g3fi"&gt;"Statistline järeldus loengumaterjal"&lt;/a&gt; &lt;br&gt;&lt;br&gt;V.Kumar slaidid: &lt;a title="http://www-users.cs.umn.edu/~kumar/dmbook/index.php" href="http://www-users.cs.umn.edu/%7Ekumar/dmbook/index.php" id="wq0j"&gt;http://www-users.cs.umn.edu/~kumar/dmbook/index.php&lt;/a&gt; &lt;br&gt;vt: Ako Sauga, TTÜ professor , &lt;a title="online statistika konspekti : http://sauga.pri.ee/audentes/download/sta_toenaosusteooria.pdf" href="http://sauga.pri.ee/audentes/download/sta_toenaosusteooria.pdf" id="j3zb"&gt;online statistika konspekti : http://sauga.pri.ee/audentes/download/sta_toenaosusteooria.pdf&lt;/a&gt; &lt;br&gt;&lt;a title="http://sauga.pri.ee/audentes/download/ps_konspekt_lk1_18.pdf" target="_blank" href="http://sauga.pri.ee/audentes/download/ps_konspekt_lk1_18.pdf" id="dwwa"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;http://sauga.pri.ee/audentes/download/ps_konspekt_lk1_18.pdf&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1658651125806968808?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1658651125806968808/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-andmeobjektid.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1658651125806968808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1658651125806968808'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-andmeobjektid.html' title='[DM] Andmeobjektid'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-4703539356531331113</id><published>2009-01-30T23:28:00.002+02:00</published><updated>2009-01-30T23:30:12.542+02:00</updated><title type='text'>[DM] Mis on andmekaeve?</title><content type='html'>&lt;b&gt;Definitsioon ja mida ta ei ole.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Andmekaeve on automaatne protsess, mille abil saab  suurtest andmehulkadest leida   kasulikku infot ja sündmuse mustreid. [1].&lt;/i&gt; Kogu protsess koosneb kolmest suuremast valdkonnast :&lt;br /&gt;    1) &lt;i&gt;Andmete eeltöötlus&lt;/i&gt; -- oma kogemustest võin väita, et see on kõige aeganõudvam protsess. Minu esimesed andmemudelid läksid just tänu puudulikule eeltöötlusele aia taha. Sellest tuleb kindlasti edasipidi juttu.&lt;br /&gt;    2)&lt;i&gt; Andmekaeve&lt;/i&gt; -- siin etapis kasutatakse andmekaeve tehnikaid, treenitakse mudeleid testandmetega ja tulemuste tootmine.&lt;br /&gt;    3)&lt;i&gt; Järeltöötlus&lt;/i&gt; - analüüsitakse andmeid, tõlgendatakse ja leitakse kas sellel on mingit väärtust juhtkonnale. &lt;br /&gt;     Andmekaeve  on loodud eesmärgiga leida andmehulkadest mingi infokild või sündmuste muster . Andmekaeve võimaldab   mustrite tunnusjoonte järgi  leida sündmuse toimumise tõenäosuse, näiteks  huvitav rakendus on aktsiahindade ennustamine.  Olukorda paari aastase turu ajalooga vaadates tundub see populaarne vidin olevat, kuid siin on paar viga. Praegused algoritmid on nõuavad väga pika ajaloo olemasolu, et suudaks täpselt hinnata. Tegu on ikkagi abivahendiga, mis võib eksida ja masin ei suuda veel analüüsida kõike turul toimuvat.  Võibolla nüüd mõni läbipõlenud spekulant viitsib mõelda, miks ta läbipõrus ja miks masin on ainult tööriist.&lt;br /&gt;    Mind häirib andmekaeve juures inglaste sõna "predict"- otsetõlkes tähendaks see ennustama, kuid Pauksonid, Mangid ja Põie-Kaarlid on minu jaoks selle sõna väärtuse nullinud.  Ma kasutan järgnevalt sõna hindama.&lt;br /&gt;    Järgnevate segaduste vältimiseks: &lt;i&gt;Igasugune andmete otsimine pole veel andmekaev&lt;/i&gt;e. Väga tihti peetakse andmekaeveks &lt;a title="kirjete otsimist andmebaasist" target="_blank" href="http://en.wikipedia.org/wiki/Information_extraction" id="j58r"&gt;kirjete otsimist andmebaasist&lt;/a&gt;, neti lehtede otsimist otsingumootori abil ja :D üle lombi kirjanduses  rõhutatakse, et isegi telefoniraamatust numbri otsimine pole veel andmekaeve. Eelpool mainitud tegevused on &lt;b&gt;&lt;a title="kõigest infopäring" target="_blank" href="http://en.wikipedia.org/wiki/Information_extraction" id="s:f7"&gt;kõigest infopäring&lt;/a&gt; &lt;/b&gt;.  Alguses mainitud definitsiooni kohaselt need nagu oleks  andmekaeve. Nad võivad olla automaatsed(nt trigeriga SQL päringud), telefoniraamat on suur andmehulk, kindlasti sisaldab kasulikku infot, ja nii mõnikord võivad infopäringud olla väga keerulise struktuuriga, kuid sellegi poolest pole nad omaette veel andmekaeve, sest nad põhinevad traditsioonilistel algoritmidel, nt kasutatakse indekseerimisi, kiireid sortimisi ja muid algoritmitehnika osi, mille ajaline keerukus lihtsalt ei sobi ülisuurte andmete töötlemiseks- meil pole tulemuse ootamiseks lihtsalt aega. Vaevalt me viitsiks oodata &lt;a title="7,5miljonit aastat, et saada vastuseks 42" href="http://en.wikipedia.org/wiki/Answer_to_Life,_the_Universe,_and_Everything#Answer_to_Life.2C_the_Universe.2C_and_Everything_.2842.29" id="ne_5"&gt;7,5miljonit aastat, et saada vastuseks 42&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;hr size="2" width="100%"&gt;[1] Vipin Kumar &amp;amp; Co raamat &lt;a title="&amp;quot;Introduction to data mining&amp;quot;" href="http://www.amazon.com/Introduction-Data-Mining-Pang-Ning-Tan/dp/0321321367/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1233262263&amp;amp;sr=8-1" id="pw6l"&gt;"Introduction to data mining"&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-4703539356531331113?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/4703539356531331113/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-mis-on-andmekaeve.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4703539356531331113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/4703539356531331113'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-mis-on-andmekaeve.html' title='[DM] Mis on andmekaeve?'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1661625962069705242</id><published>2009-01-29T22:48:00.003+02:00</published><updated>2009-01-29T23:11:08.517+02:00</updated><title type='text'>[DM] Sissejuhatus</title><content type='html'>&lt;h1&gt;Andmekaeve roll.&lt;br /&gt;&lt;br /&gt;&lt;/h1&gt;&lt;b&gt;Väike promo enne teooriateni jõudmist.&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.maia-intelligence.com/wp-content/uploads/2008/03/comic.jpg"&gt;&lt;br /&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 360px; height: 245px;" src="http://blog.maia-intelligence.com/wp-content/uploads/2008/03/comic.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Kiire andmeallikate mahu kasvu ja andmetekogumise tehnika arengu tõttu oleme me hetkel olukorras, kus meil on müstilistes kogustes andmeid. Me ei oska nendega midagi peale hakkata. Meil  on vaja  heinakuhjast leida just seda õiget nõela. &lt;a title="Klassikalised andmeanalüüsi" href="http://en.wikipedia.org/wiki/Data_analysis" id="mr9i"&gt;Klassikalised andmeanalüüsi&lt;/a&gt; meetodid (naljatades jõumeetodid) enam ei tööta, sest nende alustalad olid rajatud väikestele andmehulkadele ja väikeste muutujate arvule. Pealegi mõni ülesanne ei sobigi õldse klassikalisele analüüsimeetodile, vaid nõuab uudsed lähenemist.&lt;br /&gt;   Siin kohal tulebki appi andmekaevandus. Andmekaevandus on tehnoloogia, mis segab oma vahel traditsioonilise andmeanalüüsi ja mõnevõrra keerukad algoritmid. Tulemuseks on võimas metoodika heinakuhilast soovitud nõela otsimiseks.&lt;br /&gt;   Andmekaeve on tänapäeval mitmes valdkonnas edukalt kasutuses. Ärimaailmas on sellele oma koha leidnud kaupmehed, kes tänu andmekaevele on suurendanud konkurentsivõimet ning suutnud õppida paremini kliente tundma. Siin võib nüüd nutta ja naerda. Pole ime miks piim ja leib asuvad teineteisest võimalikult kaugel ning nendevahel on just "suuremad" allahindluse sildid. Ostukorvi ja kliendi soo vahelisi seoseid on leitud, et kõige rohkem ostetakse koos mähkmeid ja õlut. Seega  kui olete selvehallis mähkmed leidnud, siis  õlle pole enam kaugel. Kui ostate õlut ja mähkemeid koos, siis on suure tõenäosusega taas tegu vastse isaga, kes töölt koju minnes võtab midagi jalka kõrvale ja oma järeltulijale, kes tervitab rõõmuga muutusi määrdnud mähkmega.&lt;br /&gt;   Veebimaailmas on just andmekaevandus olnud abiks klikkide lugemisel ja seoste analüüsimisel. Tänu sellele on portaaliomanikel kindlad mõõdetavad suurused, mida reklaamipindade müümisel näidata. See on ka põhjus, miks elu24, lass25 ja muudel fa-faa lehtedel niivõrd hästi läheb, nad pakkuvad rohkelt tsirkust- väikseid nupukesi, mis paneb rahva klikkima. Tänu seebinautlejatele saavad leheomanikud müüa glamuurist ülejäänud lehepinda.&lt;br /&gt;  &lt;a title="Pangad" href="http://www.swedbank.ee/" id="dz-q"&gt;Pangad&lt;/a&gt; ja kindlustused kasutavad andmekaevet riskide hindamiseks, klientide segmenteerimiseks ning pettuste avastamiseks. Täpsem riskihindamine võimaldab laenamisest, kui põhilisest rahaallikast, saada suurimat kasumit ning samas klientide segmenteerimine aitab valida sihtgruppe, kellele teenus maha müüa. Kui ta selle teenuse ostis, äkki ta tahab osta lisaks veel midagi muud? Võttis auto liisingusse , äkki soovib ka kohe ennast või autot kindlustada.  Ajakiri Fortune tõi paar aastat tagasi välja, et top500 firmast 80% kasutavad andmekaevandust otsuste langetamisel. Isiklikult arvan, et antud protsent on tõusnud 95% lähistele.&lt;br /&gt;   Andmekaeve pole vaid rahamasinate juures. Teaduse valdkonnas on andmekaeve teinud just suurima läbilöögi. Tänu andmekaevele on teadlased teinud olulisi avastusi meditsiinis, geograafias ja tehnikateadustes.  Nt mõistame Maa kliimasüsteemi paremini kui kunagi varem. Nädalane ilmaennustus pole enam ime, väga täpselt ennustatakse ette torme ja tsunamisid. Muide ülemaailme kliimaandmete andmebaas on  maailma mahukaim andmebaas [1].&lt;br /&gt;   &lt;a title="NASA" href="http://www.nasa.gov/" id="i-oz"&gt;NASA&lt;/a&gt; kasutab andmekaevet sateliitide infost teabe otsimiseks ja allpool kättesaadava kirjanduse [2] korral isegi oma operatsiooniriskide maandamisel. Antud kirjanduses oli andmekaeve abiga analüüsitud protsesside vigu, mis eelnesid &lt;a title="kosmoselaeva Columbia õnnetust" href="http://en.wikipedia.org/wiki/Space_Shuttle_Columbia_disaster" id="d65-"&gt;kosmoselaeva Columbia õnnetusele&lt;/a&gt;.&lt;br /&gt;   Geeniteadlased on samuti andmekaeve abil saavutanud suure võidu. Geenide jaotamisel &lt;a title="mikroruutudeks" href="http://en.wikipedia.org/wiki/DNA_microarray" id="pw3o"&gt;mikroruutudeks või ka märklaud-DNAks&lt;/a&gt;   ja nende analüüsimisel andmekaeve abil on nad saanud selgema pildi  geenide ülesehitusest ja nende funktsioonist.&lt;br /&gt;   Andmekaeve väikevend tekstikaeve (text mining) on leidnud huvitava väljundi veebimaailmas näiteks Wikipedias oluliste mõistete indekseerimisel[3] ja lingides seotud mõistetega. Nii sammudes WEB3.0 suunas.&lt;br /&gt;&lt;br /&gt;&lt;hr size="2" width="100%"&gt;Kasutatud kirjanduse loetelu:&lt;br /&gt;&lt;i&gt;*) põhiallikas raamat &lt;a title="&amp;quot;Introduction to data mining&amp;quot;" href="http://www.amazon.com/Introduction-Data-Mining-Pang-Ning-Tan/dp/0321321367/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1233262263&amp;amp;sr=8-1" id="iee_"&gt;"Introduction to data mining"&lt;/a&gt;&lt;br /&gt;*) abimaterjalid:&lt;br /&gt;   Andmekaeve sissejuhatav &lt;a title="loeng1" href="http://kict.iiu.edu.my/amzeki/courses/dm/dm01%20Intro.ppt" id="dw.d"&gt;loeng1&lt;/a&gt; ja&lt;a title="loeng2" href="http://kict.iiu.edu.my/amzeki/courses/dm/dm02%20App.ppt" id="x7im"&gt;loeng2&lt;/a&gt;&lt;br /&gt;   Innar Liivi artikkel ajakirjas A&amp;amp;A &lt;a title="&amp;quot;Andmekaevandamine&amp;quot;" href="http://www.tud.ttu.ee/%7Eliiv/Andmekaevandamine_LIIV.pdf" id="is_3"&gt;"Andmekaevandamine"&lt;/a&gt;&lt;/i&gt; &lt;br /&gt;Viited materjalidele:&lt;br /&gt;&lt;i&gt;[1] Maailma suurimad andmebaasid: &lt;a title="http://www.businessintelligencelowdown.com/2007/02/top_10_largest_.html" href="http://www.businessintelligencelowdown.com/2007/02/top_10_largest_.html" id="gy-g"&gt;http://www.businessintelligencelowdown.com/2007/02/top_10_largest_.html&lt;/a&gt;&lt;br /&gt;[2] NASA operatsiooniriskide analüüs andmekaevandamise abil: &lt;a title="http://www.nasa.gov/pdf/49877main_RTF_08092003_summary.pdf" href="http://www.nasa.gov/pdf/49877main_RTF_08092003_summary.pdf" id="im-l"&gt;http://www.nasa.gov/pdf/49877main_RTF_08092003_summary.pdf&lt;/a&gt;&lt;br /&gt;[3] Wikipeedia ja tekstikaeve: &lt;a title="http://datamining.typepad.com/data_mining/wikipedia/" href="http://datamining.typepad.com/data_mining/wikipedia/" id="xgm4"&gt;http://datamining.typepad.com/data_mining/wikipedia/&lt;/a&gt; ja&lt;br /&gt;      &lt;a title="http://www.cse.iitb.ac.in/~abhijit.bhole/SiKDD2007ExtractingWikipedia.pdf" href="http://www.cse.iitb.ac.in/%7Eabhijit.bhole/SiKDD2007ExtractingWikipedia.pdf" id="i-en"&gt;http://www.cse.iitb.ac.in/~abhijit.bhole/SiKDD2007ExtractingWikipedia.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1661625962069705242?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1661625962069705242/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-sissejuhatus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1661625962069705242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1661625962069705242'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-sissejuhatus.html' title='[DM] Sissejuhatus'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5977272831901495063</id><published>2009-01-29T19:21:00.002+02:00</published><updated>2009-01-30T21:49:06.797+02:00</updated><title type='text'>[DM]  Sukeldun andmekaeve maailma</title><content type='html'>&lt;b&gt;Proloog&lt;/b&gt;&lt;br /&gt;    Varsti , 12.veebruar möödub mul esimene aasta  Swedbankis. Mind võeti tööle andmespetsialistiks. Mu ülesandeks on oma osakonna töötajatele andmebaasidest andmete hankimine. Eelmise aasta jooksul eriti andmeid tirida ei saanud, kuid sain ennast harida VBAs Exceli jubinate loomisega. Ausalt öeldes,   VBA on nõmeduse tipp, õnneks sureb ta peagi välja.&lt;br /&gt;     See aasta saab mul andmekaevanduse aastaks - hakkan  välja töötama mudeleid, et kiirendada veelgi oma osakonna analüüsi ja leida andmete hulgast iseäralikke ja informatiivseid mustreid. See on vajalik, et praeguses majandusolukorras peab töö olema eriti tõhus ja täpne- igat möödalasku karistatakse karmilt ja iga möödalask on kohe näha.&lt;br /&gt;    Edukaks mud&lt;a id="eaz0" href="http://docs.google.com/File?id=dfgd4f8p_8hjbhz5fz_b" target="_blank"&gt;&lt;img style="margin: 1em 1em 0pt 0pt; float: left;" src="http://docs.google.com/File?id=dfgd4f8p_8hjbhz5fz_b" width="480" height="154" /&gt;&lt;/a&gt;elite väljatöötamiseks, peab mul selge olema andmekaeve põhitõed, et teaks mida teha, kuidas teha ja mis põhiline, kas tegin õieti. Lihtne on andmebaasist andmed pärida ning &lt;a title="Spss Clementinega" target="_blank" href="http://www.spss.com/clementine/" id="bf5k"&gt;Spss Clementinega&lt;/a&gt; need kokku ühendada ja Voila! ongi mingi tulemus käes :D Sellest tulemusest sõltub kellegi  elukvaliteet.&lt;br /&gt;    Kavatsen aegamisi loetud teemasid siia blogida. Ma arvan, et blogi on hea koht konspekteerimiseks, sest siin on info alati kättesaadav ja redigeeritav. Väga meeldival juhul oskab keegi täiendada, nõu anda  ja suunata mu tähelepanu vigadele.  &lt;i&gt;Verba         volant, scripta manent . - Sõnad lähevad, kirjutatud jääb.&lt;br /&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5977272831901495063?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5977272831901495063/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-sukeldun-andmekaeve-maailma.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5977272831901495063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5977272831901495063'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/dm-sukeldun-andmekaeve-maailma.html' title='[DM]  Sukeldun andmekaeve maailma'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-7278329602735385491</id><published>2009-01-18T02:25:00.001+02:00</published><updated>2009-01-18T02:25:02.597+02:00</updated><title type='text'>Sidude leht on DOOMed</title><content type='html'>&lt;p&gt;&lt;br /&gt;  Viimane nädal kui saab koolis veel Sidude ainet kaelast ära. Muidugi praeguseks on &lt;a title="Kuke kõver" target="_blank" href="http://www.e-uni.ee/konverents/2005/slaidid/Vello_Kukk.pdf" id="h9rd"&gt;Kuke kõver&lt;/a&gt; paindunud niivõrd äärmusesse, et http://isc.dcc.ttu.ee leht kukkus&amp;nbsp; maha ja lootusetult. Kui oli soov testi vastus teele saata, siis sai brauser andis vastuseks, et programmi viga - ei saa andmeid serverisse laadida.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;  Ja nüüd see nali hakkaski. Imestusega vaatasin, miks minule kuvatakse spetsiifiline veateade ja viitega andmebaasile . NB! täispikka viitena. Kopeerisin antud viida&amp;nbsp; brauseri aknasse ja voila!!&lt;/p&gt;&lt;p&gt;Mulle pakuti võimalust kas avada või salvestada fail. :D Paras paremaks! Tegu oli Access andmebaasiga, mis omakorda sisaldas viidet kursusest osavõtvate tudengite andmebaasile. Ja nali läheb veelgi paremaks. Tegu oli jällegi Access andmebaasiga ja salasõnad oli krüpteerimata. &lt;br&gt;&lt;/p&gt;&lt;p&gt;Jah, huvitav juhus. Teavitasin antud juhtumist saidi omanikku - õppejõudu. Kirjeldasin talle oma tegusamme ja tulemusi. Kõik selle eesmärgiga, et minu tegevus jääks viisakuse piiridesse. (&lt;a title="loe: WhiteHat hacker. aka Eetiline häkker" target="_blank" href="http://en.wikipedia.org/wiki/White_hat" id="ou6e"&gt;loe: WhiteHat hacker. aka Eetiline häkker&lt;/a&gt; ).&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Siit moraal: Ära kuva tavakasutajale tundliku infoga(failinimed, tee failini, IP-d) veateadet, kui andmebaas sisaldab tundliku infot, siis kasuta krüpteeringut. Väldi andmebaasi kataloogi näitamist väljapoole. &lt;br&gt;&lt;/p&gt;&lt;p&gt;PS: IT-tudengina on kurb vaadata TTÜ infosüsteeme ja veebilehti. Nt &lt;a title="automaatika teaduskonna leht" target="_blank" href="http://www.dcc.ttu.ee" id="aw-q"&gt;automaatika teaduskonna leht&lt;/a&gt; on moraalselt vananenud. Uus OIS on nadi, te ei taha teada, mis raha sinna maetud on. &lt;a title="Informaatika teaduskonna leht" target="_blank" href="http://maurus.ttu.ee/yld_index.php" id="osya"&gt;Informaatika teaduskonna leht&lt;/a&gt; on kõige haledam Ma ei saa aru, miks see pole kinni pandud. JUBE!! Antud veebilehe toimetajad annavad ise veebirakenduste kursusi. Eks kinnitab see vanasõna: rätsepa riided on lõhkised, kingsepa kingad katkised.&amp;nbsp; Kui õppejõud ei suuda asju ära korraldada, miks nad ei kaasa tudengeid projektidesse. Miks ei kasutada ühist raamistikku. Sellise välimusega ülikool tahab olla IT-hariduse lipulaev. Roostes laevaga merd juba ei künna. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;br /&gt;&lt;/p&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-7278329602735385491?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/7278329602735385491/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/sidude-leht-on-doomed.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7278329602735385491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7278329602735385491'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/sidude-leht-on-doomed.html' title='Sidude leht on DOOMed'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8723532897764578821</id><published>2009-01-03T23:24:00.002+02:00</published><updated>2009-01-03T23:53:54.879+02:00</updated><title type='text'>Tehisaju, ulme; varsti tegelikkus?</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span&gt;Nüüdseks on pikad jõulud selja taga ja ... Imestusest jäi suu lahti kui nägin palju tehnikauudiseid pühade aeg on tekkinud. Paljud neist on tulevikku vaatavad. Aasta lõpus kippuvadki inimesed rohkem tulevikule mõtlema ja agaramad ka  ennustama&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Lugedes artiklit &lt;a href="http://www.news.wisc.edu/16085"&gt; Cognitive computing: Building a machine that can learn from experience  &lt;/a&gt;&lt;/span&gt;tundsin, et  meid on ootamas väga põnev aasta ja veelgi põnevam sajand. Sest selle sajandi tehnoloogia muutused saavad olema kõige laiahaardelisemad ja mõjutavad isiklikult kõiki inimesi.&lt;br /&gt;Sest antud masin suudaks koguda kogemusi, nagu seda teeb imetaja ning selle põhjal hiljem otsuseid langetada. Kas see paneks roboti mõistma tundeid? Kas  robot saavutaks selle põhjal enda alalhoiu intsinkti? Kuid üks on kindel, et see sajand uuritakse inimene üksipulgi läbi .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8723532897764578821?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8723532897764578821/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/tehisaju-ulme-varsti-tegelikkus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8723532897764578821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8723532897764578821'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/tehisaju-ulme-varsti-tegelikkus.html' title='Tehisaju, ulme; varsti tegelikkus?'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-59737565808685471</id><published>2009-01-03T20:37:00.003+02:00</published><updated>2009-01-03T23:07:36.306+02:00</updated><title type='text'>E-Eesti on taas maailmakaardil.</title><content type='html'>Seekord pole tegu IT-rünnakutega. Nüüd on tegu 2011 valimistega, mil võetakse kasutusele mobiilihääletus, mille käigus inimene autenditakse mobiili-ID abil.&lt;br /&gt;Antud artikel on siin: PC-World &lt;a href="http://www.pcworld.com/article/155490/estonia_to_use_mobile_phones_to_simpify_evoting.html"&gt;"Estonia to Use Mobile Phones to Simpify E-voting" &lt;/a&gt;Tunnusteks võin veel välja tuua, et artikli leidsin ACM uudiskirjast, kuhu ei valita uudiseid juhuslikult, vaid läbi range valiku.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-59737565808685471?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/59737565808685471/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2009/01/e-eesti-on-taas-maailmakaardil.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/59737565808685471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/59737565808685471'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2009/01/e-eesti-on-taas-maailmakaardil.html' title='E-Eesti on taas maailmakaardil.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3876876070758021837</id><published>2008-12-29T15:19:00.011+02:00</published><updated>2008-12-29T15:54:24.441+02:00</updated><title type='text'>Oma Googli kaardi lisamine veebilehele.</title><content type='html'>Täna olen lausa suure huviga uurinud Google rakendusi.&lt;br /&gt;Need aitavad elu ikka väga kergeks teha. Näiteks kui tahan oma Soome sõbrale näidata, kuidas Tallinna sadamast saaks sõita Harkusse, siis läbi msni on seda üpris keeruline selgitada.&lt;br /&gt;Siin kohal on lausa sobilik öelda, et üks pilt ütleb rohkem kui tuhat sõna.&lt;br /&gt;E-mailis on asi juba lihtsam, sest seal saab kasutada HTMLi abi-saab lisada selgitavaid pilte, jooniseid, linke .&lt;br /&gt;Antud sissekandes näitangi kuidas paari minutiga teha GoogelMapis oma kaart ning lisada see emaili või oma blogisse/veebilehele.&lt;br /&gt;Peagi lisan juurde väiksed pildikesed, mis aitavad antud nupukest paremini ära tunda.&lt;br /&gt;*) Ava Google mapi (&lt;a href="http://maps.google.com/"&gt;http://maps.google.com/&lt;/a&gt;)  leht ning logi sisse.&lt;br /&gt;*) Kliki vasakul servas menüü My maps ning vali &lt;span style="font-style: italic;"&gt;Create new map&lt;/span&gt;.&lt;br /&gt;*) Nüüd lisandus kaardi vasakusse serva ikoonid, mille abil saad kaardile lisada punkte ning tee.&lt;br /&gt;*) Kui valmis, siis salvesta oma kaart.&lt;br /&gt;*) Jaga teistega. Kliki kaardi paremas servas  asuva nupukese "Link" peal.&lt;br /&gt;Esimeses tekstikastis asub link, mida võid kopeerida MSNi aknasse või tavateksti. nt kujul: &lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;ll=59.443504,24.674606&amp;amp;spn=0.125495,0.30899&amp;amp;z=12&amp;amp;msid=109952315667474179007.00045f2f2f1230346c73b"&gt;http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;ll=59.443504,24.674606&amp;amp;spn=0.125495,0.30899&amp;amp;z=12&amp;amp;msid=109952315667474179007.00045f2f2f1230346c73b&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Teises tekstikastis asub juba väike HTML-snippet, mille saad kopeerida oma HTML koodi. Blogger.com blogijad valivad "compose" akna asemel "Edit Html".&lt;br /&gt;Nt  näeb veebilehel välja selline:&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;ll=59.438862,24.754472&amp;amp;spn=0.259403,0.617981&amp;amp;msid=109952315667474179007.00045f2f2f1230346c73b&amp;amp;output=embed&amp;amp;s=AARTsJpccPY92mBtZhoOVmrz896OBkh5xg" scrolling="no" width="425" frameborder="0" height="350"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;amp;hl=en&amp;amp;msa=0&amp;amp;ll=59.438862,24.754472&amp;amp;spn=0.259403,0.617981&amp;amp;msid=109952315667474179007.00045f2f2f1230346c73b&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3876876070758021837?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3876876070758021837/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/oma-googli-kaardi-lisamine-veebilehele.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3876876070758021837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3876876070758021837'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/oma-googli-kaardi-lisamine-veebilehele.html' title='Oma Googli kaardi lisamine veebilehele.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2506298945091921151</id><published>2008-12-29T13:40:00.006+02:00</published><updated>2008-12-29T15:53:27.338+02:00</updated><title type='text'>GoogleDoc kui blogija abimees</title><content type='html'>&lt;h3&gt;&lt;b&gt;Sissejuhatus&lt;/b&gt;&lt;/h3&gt;    Antud postitus on kirjutatud Google Docsis tekstidokumendina , mille ma  blogisse postitasin.&lt;br /&gt;&lt;br /&gt;Asi töötab väga hästi. Mingeid komplikatsioone ei  esinenud.&lt;br /&gt;&lt;br /&gt;See võimalus on väga kasulik, kui tahad oma postitust vormindada. Teadagi &lt;a title="Blogger.com" href="http://www.blogger.com/" id="khnh"&gt;Blogger.com&lt;/a&gt; blogi kirjutamisevorm pole kujundamissõbralik ega võimalusterohke. Siin kohal tulebki appi &lt;a title="Google Docsi" href="http://docs.google.com/" id="wjni"&gt;Google Docsi&lt;/a&gt; tekstitoimeti. Saad kasutada OpenOffices tuntud mugavust ning samas saad toimetada seda kui HTML dokumenti ning lisada CSS abil stiile.&lt;br /&gt;&lt;br /&gt;Minu arust on tegu väga vinge vahendiga ja sobib edukalt asendama Windows Live's leiduvat Writerit. (loe Writerist siit: &lt;a title="http://windowslivewriter.spaces.live.com/" href="http://windowslivewriter.spaces.live.com/" id="rm16"&gt;http://windowslivewriter.spaces.live.com/&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;Windows Live Writer on samuti hea töövahend, kuid on kättesaadav ainult Windowsi keskkonna kasutajale ning eeldab arvutisse installimist. Netbooki kasutajad tavaliselt väldivad seda sammu.&lt;br /&gt;&lt;br /&gt;Ühe asjana lisaks, et antud softile saab juurde tirida väikse plugina, millega saab VS studio koodi  blogisse lisada.&lt;br /&gt;Koodi lisades  jääb vormindus ja tekstihelendus samaks. Pluginatest on oma blogis kirjutanud ka Taavi (link:&lt;a title="http://melborp.net/archive/2007/07/31/windows-live-writer-i-pluginad.aspx" href="http://melborp.net/archive/2007/07/31/windows-live-writer-i-pluginad.aspx" id="brqp"&gt;http://melborp.net/archive/2007/07/31/windows-live-writer-i-pluginad.aspx&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;&lt;u&gt;PS: blogisse saab linkida ka tablearvutuse tööraamatuid ning ka presentatsioone&lt;/u&gt;.&lt;br /&gt;&lt;br /&gt;Vaata GoogleDocsi tabelarvutuse tööraamatut:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;lingina: &lt;a title="http://spreadsheets.google.com/ccc?key=pmbzuB-ttQWktrLWX53znGg" href="http://spreadsheets.google.com/ccc?key=pmbzuB-ttQWktrLWX53znGg" id="sohb"&gt;http://spreadsheets.google.com/ccc?key=pmbzuB-ttQWktrLWX53znGg&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;Vaata GoogleDocsi presentatsiooni:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;lingina:&lt;a title="http://docs.google.com/Presentation?id=dfgd4f8p_1d3s7k2cp" href="http://www.blogger.com/Presentation?id=dfgd4f8p_1d3s7k2cp" id="r42t"&gt;http://docs.google.com/Presentation?id=dfgd4f8p_1d3s7k2cp&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Siin esines probleeme. Kui töölehel kuvati seda objekti, siis blogisse importides oli see eemaldatud.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dfgd4f8p_1d3s7k2cp&amp;amp;size=m" width="555" frameborder="0" height="451"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;Kuidas siis postitada Google Docsi dokument  blogisse?&lt;/b&gt;&lt;/h3&gt;Üleval paremas servas on nupuke "Share". Seal klikkides, vali avanevast menüüst "Publish as  web page" ning vali blogi.&lt;br /&gt;&lt;br /&gt;Esimesel korral tuleb ära konfida vaid blogi seaded.&lt;br /&gt;&lt;br /&gt;NB! &lt;b&gt;Dokumenti salvestades vaikimisi automaatselt blogi sissekannet ei uuendata&lt;/b&gt;.Automaatseks uuendamiseks pead vastava valiku ette linnukese lisama. Selleks pead taasavama "Share" menüü. Soovitan seejuures mõelda, et GoogleDoc salvestab automaatselt teatud ajatagant ning neti võib sattuda mitte soovitud versioon.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;b&gt;Testimine&lt;/b&gt;&lt;/h3&gt;&lt;br /&gt;Tekstina kasutasin Lorem Ipsumit(  &lt;a title="http://et.lipsum.com/" href="http://et.lipsum.com/" id="b2be"&gt;http://et.lipsum.com/&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;&lt;hr size="2" width="100%"&gt;&lt;div&gt;&lt;table id="epqs" width="623" border="1" cellpadding="3" cellspacing="0" height="1062"&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="50%"&gt;&lt;u&gt;&lt;b&gt;Lorem Ipsum&lt;/b&gt; on lihtsalt&lt;br /&gt;proovitekst, mida kasutatakse printimis- ja ladumistööstuses. &lt;/u&gt;See on&lt;br /&gt;olnud tööstuse põhiline proovitekst juba &lt;span style="color: rgb(255, 0, 0);"&gt;alates 1500. aastatest&lt;/span&gt;, mil&lt;br /&gt;tundmatu printija võttis hulga suvalist teksti, et teha trükinäidist.&lt;br /&gt;Lorem Ipsum ei ole ainult viis sajandit säilinud, vaid on ka edasi&lt;br /&gt;kandunud elektroonilisse trükiladumisse, jäädes sealjuures peaaegu&lt;br /&gt;muutumatuks. See sai tuntuks 1960. aastatel Letraset'i lehtede&lt;br /&gt;väljalaskmisega, ja hiljuti tekstiredaktoritega nagu Aldus PageMaker,&lt;br /&gt;mis sisaldavad erinevaid Lorem Ipsumi versioone.&lt;/td&gt;&lt;br /&gt;&lt;td width="50%"&gt;&lt;br /&gt;&lt;div class="lc"&gt;&lt;br /&gt;&lt;h2 class="where"&gt;Kust see pärineb?&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Vastupidiselt&lt;br /&gt;tavaarusaamale, &lt;span style="background-color: rgb(255, 255, 0);"&gt;Lorem Ipsum ei ole lihtsalt suvaline tekst.&lt;/span&gt; See sai&lt;br /&gt;alguse osakesest klassikalisest ladina kirjandusest, mis on pärit&lt;br /&gt;aastast 45 eKr, olles seega rohkem kui kaks tuhat aastat vana. Virginia&lt;br /&gt;Hampden-Sydney College'i ladina keele professor Richard McClintock&lt;br /&gt;otsis Lorem Ipsumi lõigust ühe ebamääraseima ladinakeelse sõna,&lt;br /&gt;'consecteur', ja vaadates läbi sõna viited klassikalises kirjanduses,&lt;br /&gt;leidis Lorem Ipsumi vaieldamatu allika. Lorem Ipsum on tulnud Cicero 45&lt;br /&gt;aastat eKr kirjutatud raamatu "De Finibus Bonorum et Malorum" ("Hüvede&lt;br /&gt;ja pahede piiridest") osadest 1.10.32 ja 1.10.33. See raamat on uurimus&lt;br /&gt;eetikateooriast, mis oli renessansi ajal väga populaarne. Lorem Ipsumi&lt;br /&gt;esimene rida, "Lorem ipsum dolor sit amet...", tuleb reast osas 1.10.32.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Standardne&lt;br /&gt;tükk Lorem Ipsumit, mida kasutatakse 1500. aastatest on huvilistele&lt;br /&gt;allpool välja toodud. Osad 1.10.32 ja 1.10.33 Cicero "De Finibus&lt;br /&gt;Bonorum et Malorumist" on avaldatud nende täpsel originaalsel kujul&lt;br /&gt;koos H. Rackami 1914. aasta ingliskeelse tõlkega.&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td width="50%"&gt;&lt;br /&gt;&lt;div class="rc"&gt;&lt;br /&gt;&lt;h2 class="why"&gt;Miks me seda kasutame?&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;On&lt;br /&gt;teada-tuntud fakt, et lehe kujunduse vaatamisel juhib selle &lt;span style="color: rgb(0, 0, 0);"&gt;loetav sisu&lt;br /&gt;lugeja tähelepanu kõrvale&lt;/span&gt;. Lorem Ipsumi kasutamise mõte seisneb selles,&lt;br /&gt;et sellel on enam-vähem normaalne jaotus tähti, mitte nagu korduvatel&lt;br /&gt;sõnadel "sisu siin, sisu siin", nähes välja nagu tavaline loetav tekst.&lt;br /&gt;Paljud tekstiredaktorid ja veebilehtede valmistamise programmid&lt;br /&gt;kasutavad Lorem Ipsumit vaikimisi mudeltekstina, ja trükkides&lt;br /&gt;otsingusse "lorem ipsum" võib leida veebilehti, mida ei ole veel nende&lt;br /&gt;õige sisuga täidetud. Aastatega on tekkinud mitmeid versioone, mõnikord&lt;br /&gt;kogemata, mõnikord meelega (huumori sisestamisega jne).&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="50%"&gt;&lt;br /&gt;&lt;h2 class="getsome"&gt;Kust seda saada?&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Saadaval&lt;br /&gt;on mitmeid erinevaid Lorem Ipsumi variante, kuid enamik neist on läbi&lt;br /&gt;teinud muutusi kas sisestatud huumori või suvaliste sõnade tõttu, mis&lt;br /&gt;ei näe üldsegi usutavad välja. Kui te kavatsete Lorem Ipsumit kasutada,&lt;br /&gt;peate te kindel olema, et kuskil keset teksti midagi piinlikku ei ole.&lt;br /&gt;Kõik Lorem Ipsumi generaatorid kipuvad kindlaid lauseridu kordama,&lt;br /&gt;seega on see sait siin esimene tõeline Lorem Ipsumi generaator&lt;br /&gt;Internetis. See kasutab sõnastikku üle 200 ladina sõnaga ja, koos hulga&lt;br /&gt;lausestruktuuride mudelitega, toodab korralikku Lorem Ipsumit. Toodetud&lt;br /&gt;Lorem Ipsum on seega alati vaba kordustest, naljadest, ebaharilikest&lt;br /&gt;sõnadest jne.&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2506298945091921151?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2506298945091921151/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/untitled.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2506298945091921151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2506298945091921151'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/untitled.html' title='GoogleDoc kui blogija abimees'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8146115598110960446</id><published>2008-12-23T05:04:00.003+02:00</published><updated>2008-12-23T05:38:49.273+02:00</updated><title type='text'>ImagineCup</title><content type='html'>Peale sessi tahan sellel võistlusel osaleda. Hetkel pingutan täiest väest, et leida head ideed.&lt;br /&gt;Silme all on veebileht &lt;a href="http://www.un.org/millenniumgoals/"&gt;http://www.un.org/millenniumgoals/&lt;/a&gt; . Naljakas, ma olen liiga palju heaolu ühiskonda sulandunud, et suudaks mõelda mis teistel puudu ja mida ma saaks nende heaks teha.&lt;br /&gt;Ei taha anda neile kala, tahaks anda  neile õnge.&lt;br /&gt;&lt;br /&gt;Hetkel on mu ees ikka veel tühi paber ja ainus asi mis edeneb on mandariini koorte hunnik.&lt;br /&gt;&lt;br /&gt;Panen vähemalt teemad kirja:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vaesuse ja nälja kaotamine.&lt;/li&gt;&lt;li&gt;Ühtne haridus. - kõigil oleks võimalik saada algharidus&lt;/li&gt;&lt;li&gt;Sooline võrdõigus.&lt;/li&gt;&lt;li&gt;Laste tervis.&lt;/li&gt;&lt;li&gt;Emade tervis.&lt;/li&gt;&lt;li&gt;HIV/AIDSiga võitlemine.&lt;/li&gt;&lt;li&gt;Globaalne sõprus -- majanduse arendamine sisemaal, väikesaartel , vaba turu põhimõtte levitamine.&lt;/li&gt;&lt;li&gt;Keskkonna säilimine.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8146115598110960446?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8146115598110960446/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/imaginecup.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8146115598110960446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8146115598110960446'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/imaginecup.html' title='ImagineCup'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-377055873833231683</id><published>2008-12-14T03:15:00.002+02:00</published><updated>2008-12-14T03:23:38.608+02:00</updated><title type='text'>[Win] Uus SharpE</title><content type='html'>&lt;p&gt;Septembris rääkisin  blogis &lt;a href="http://timgluz.blogspot.com/2008/09/vaheta-windowsi-vlimus-xfce-laadse.html"&gt;“Kuidas vahetada Windows XP shelli ehk kasutajaliidese välimust”&lt;/a&gt; . Mnjah, siis oli tegu lahja arvutiga ja ei saanud kõige uuemat SharpE-d  kasutada. Nüüd on mul vinge tööloom IBM X61s ja kettal on eelnevalt paigutatud Win XP. Varem ma seda eriti ei kasutanud ja kasutajaliides ei hakkanud häirima. Viimasel ajal olen nokitsenud .Net vahenditega ja seda on MS keskkonnas teha tunduvalt mugavamalt, sest suuremate asjade korral saab kasutada VStudiot ja väiksemate rakenduste puhul vabavaralist &lt;a href="http://www.icsharpcode.net/OpenSource/SD/Download/"&gt;SharpDevelop&lt;/a&gt;. Vinge IDE, soovitan.Ja Linuxi keskkonnas puudub töövahendite valik, mulle MonoDevelop ei istu ja on hakkanud viimasel ajal liiga palju jonnima, et mingi pakett on vahepeal kaduma läinud.&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;   Täna hakkas WinXP oma kohmakusega häirima ja hakkasin igatsema Gnome kasutajaliidest ja teema virtuaaltöölaudu, kiirkorraldusi ja menüü ülesehitust. Otsisin üles oma vana postituse ja installisin kõige uuema SharpE 0.7 ja esimene mulje oli super!! Kõvasti on rõhku pandud visuaalsele poolele. Mul jäi vaid kiirkorraldused paika panna ja töö tegemisele keskenduda. &lt;/p&gt;  &lt;p&gt;Sõnade kinnituseks lisan juurde  SharpE algseadistuses:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_80sAoSXiYeA/SUReJ6YeciI/AAAAAAAAAZc/PcHPxVrr7H0/s1600-h/SharpE07%5B4%5D.png"&gt;&lt;img title="SharpE07" style="border: 0px none ; display: inline;" alt="SharpE07" src="http://lh5.ggpht.com/_80sAoSXiYeA/SUReK9NZcFI/AAAAAAAAAZg/U49Q_Fz0qtw/SharpE07_thumb%5B2%5D.png?imgmax=800" border="0" width="330" height="158" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;PS: WinXP otsingu parandamiseks soovitan installida veel &lt;a href="http://desktop.google.com/index.html"&gt;Google Desktop&lt;/a&gt;, et parandada failide ja programmide otsingut ja juurde tõmmata SharpE teemasid.&lt;/p&gt;  &lt;p&gt;Leidsin ka huvitava lehe, kus leidub mitmeid ülevaateid SharpE sarnastest tarkvarast:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.shell-shocked.org/shells.php" href="http://www.shell-shocked.org/shells.php"&gt;http://www.shell-shocked.org/shells.php&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-377055873833231683?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/377055873833231683/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/win-uus-sharpe.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/377055873833231683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/377055873833231683'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/win-uus-sharpe.html' title='[Win] Uus SharpE'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_80sAoSXiYeA/SUReK9NZcFI/AAAAAAAAAZg/U49Q_Fz0qtw/s72-c/SharpE07_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8704608169008602937</id><published>2008-12-14T01:47:00.001+02:00</published><updated>2008-12-14T01:47:50.858+02:00</updated><title type='text'>[C#] stringi massiivi sorteerimine Shell meetodiga.</title><content type='html'>&lt;p&gt;Kui Pistesortimisele&amp;#160; (aka&amp;#160; Vahelepanekuga sorteerimine) lisada täiendavalt juurde alamassiivideks jagamine, alammassiivide sortimise , siis saame Shell meetodi. Antud algoritmist saad lähemalt lugeda &lt;a href="http://en.wikipedia.org/wiki/Shell_sort#Shell_sort_algorithm_in_C.23"&gt;wikist&lt;/a&gt;. Seal on antud alternatiivne C# lahendusvõimalus.&lt;/p&gt;  &lt;p&gt;Soovitan käivitada ka Algoritmide algortimide täitmist simuleeriv &lt;a href="http://www.cs.usfca.edu/galles/visualization/visualization.jar"&gt;Java applet&lt;/a&gt;, et paremini hoomata algortimi töö kulgu ja jooksvalt algoritmi effektiivsust, hmm pigem keerukust näitav &lt;a href="http://www.cs.princeton.edu/~rs/shell/animate.html"&gt;Java applet&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Mina võtsin antud näite raamatust &lt;a href="http://www.amazon.com/Data-Structures-Algorithms-Adam-Drozdek/dp/0534491820/ref=cm_cr_pr_product_top"&gt;&amp;quot;Data structures algorithms in C++&amp;quot;&lt;/a&gt; ja tõlkisin C# keelde. Lahendus ei pruugi olla just CSharpilikum, sest minu C# kogemused ja oskused on veel nii madalad, et ma suudaks mõelda selle keele spetsiifiliselt. &lt;/p&gt;  &lt;p&gt;Minu antud algoritm sordib stringimassiive stringi pikkuste järgi, sest mul ühes TopCoderi ülesandes oli just nii vaja ja ma ei tahtnud meelega C# sortimisi kasutada, sest eesmärgiks oli enda harimine mitte võistlemine.&lt;/p&gt;  &lt;p&gt;Kasutamine: &lt;/p&gt;  &lt;p&gt;*) v22rtusta klassi omadus Item&lt;/p&gt;  &lt;div style="background: #ffffff; color: #000000"&gt;   &lt;pre&gt;&lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;[] Items = &lt;font color="#a52829"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;[] {&lt;font color="#ff00ff"&gt;&amp;quot;dairy&amp;quot;&lt;/font&gt;,&lt;font color="#ff00ff"&gt;&amp;quot;produce&amp;quot;&lt;/font&gt;,&lt;br /&gt;                &lt;font color="#ff00ff"&gt;&amp;quot;meat&amp;quot;&lt;/font&gt;, &lt;font color="#ff00ff"&gt;&amp;quot;dairy&amp;quot;&lt;/font&gt;, &lt;font color="#ff00ff"&gt;&amp;quot;produce&amp;quot;&lt;/font&gt;, &lt;font color="#ff00ff"&gt;&amp;quot;produce&amp;quot;&lt;/font&gt;,&lt;br /&gt;                &lt;font color="#ff00ff"&gt;&amp;quot;meat&amp;quot;&lt;/font&gt;, &lt;font color="#ff00ff"&gt;&amp;quot;dairy&amp;quot;&lt;/font&gt;, &lt;font color="#ff00ff"&gt;&amp;quot;produce&amp;quot;&lt;/font&gt;, &lt;font color="#ff00ff"&gt;&amp;quot;produce&amp;quot;&lt;/font&gt; };&lt;br /&gt;&lt;br /&gt;CStringSort Sorter = &lt;font color="#a52829"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; CStringSort();&lt;br /&gt;&lt;br /&gt;Sorter.Item = Items;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;*) Käivita sorteerimine&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sorter.SortDesc();&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;*) Kui soov, siis tulemus kuvada&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sorter.PrintItem();&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Syllabus: String array sorting using &lt;a href="http://en.wikipedia.org/wiki/Shell_sort#Shell_sort_algorithm_in_C.23"&gt;Shell algorithm&lt;/a&gt;.&amp;#160; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;C# shellsortimine:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background: #ffffff; color: #000000"&gt;&lt;br /&gt;  &lt;pre&gt;&lt;font size="1"&gt;&lt;font color="#0000ff"&gt;// CStringSort.cs created with MonoDevelop&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// User: timgluz at 22:47| 12.12.2008&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;//&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;// To change standard headers go to Edit-&amp;gt;Preferences-&amp;gt;Coding-&amp;gt;Standard Headers&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;//&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#a52829"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;font color="#298a52"&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/font&gt; PrjTopCoder&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;//klass ise     &lt;/font&gt;&lt;br /&gt;        &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt; CStringSort&lt;br /&gt;        {&lt;br /&gt;                &lt;font color="#0000ff"&gt;//--klassi omadused&lt;/font&gt;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;[] items ;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; count ;&lt;br /&gt;&lt;br /&gt;                &lt;font color="#0000ff"&gt;//--konstruktor------&lt;/font&gt;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; CStringSort()&lt;br /&gt;                {&lt;br /&gt;                        count = &lt;font color="#ff00ff"&gt;0&lt;/font&gt;;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;font color="#a520f7"&gt;#region Core_methods&lt;/font&gt;&lt;br /&gt;                &lt;font color="#0000ff"&gt;//sort string arrays by array members count of letters&lt;/font&gt;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; SortDesc()&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color="#298a52"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; i, j, h,k, hCnt;&lt;br /&gt;                        &lt;font color="#298a52"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;[] increments = &lt;font color="#a52829"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt;[&lt;font color="#ff00ff"&gt;20&lt;/font&gt;];&lt;br /&gt;                        &lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; temp = &lt;font color="#ff00ff"&gt;&amp;quot;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                &lt;font color="#0000ff"&gt;//kontrolli kas liikmeid on piisavalt&lt;/font&gt;&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;(count &amp;lt;=&lt;font color="#ff00ff"&gt;0&lt;/font&gt;) &lt;font color="#a52829"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;1&lt;/font&gt;; &lt;font color="#0000ff"&gt;//katkesta edasine funktsiooni t2itmine&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;                        &lt;font color="#0000ff"&gt;//leia mitmeks alamryhm jaotub&lt;/font&gt;&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;(h = &lt;font color="#ff00ff"&gt;1&lt;/font&gt;,i=&lt;font color="#ff00ff"&gt;0&lt;/font&gt;;h&amp;lt;count;i++ )&lt;br /&gt;                        {&lt;br /&gt;                                increments[i] = h;&lt;br /&gt;                                h= h*&lt;font color="#ff00ff"&gt;3&lt;/font&gt; +&lt;font color="#ff00ff"&gt;1&lt;/font&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;font color="#0000ff"&gt;//korda kuni k6ik alamliikmed on l2bik2idud&lt;/font&gt;&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;(i--;i&amp;gt;=&lt;font color="#ff00ff"&gt;0&lt;/font&gt;; i--)&lt;br /&gt;                        {&lt;br /&gt;                                h= increments[i];&lt;br /&gt;                                &lt;font color="#0000ff"&gt;//korda kuni alammassiivid on sorditud&lt;/font&gt;&lt;br /&gt;                                &lt;font color="#a52829"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;(hCnt = h; hCnt &amp;lt; &lt;font color="#ff00ff"&gt;2&lt;/font&gt;*h; hCnt++)&lt;br /&gt;                                {&lt;br /&gt;                                        &lt;font color="#0000ff"&gt;//sorderi j2rgnevad alammassiivi pistesorimisega / hea lihtne&lt;/font&gt;&lt;br /&gt;                                        &lt;font color="#a52829"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt;( j = hCnt; j&amp;lt; count;)&lt;br /&gt;                                        {&lt;br /&gt;                                                temp = items[j];&lt;br /&gt;                                                k=j;&lt;br /&gt;                                                &lt;font color="#0000ff"&gt;//--lisada v6iks veel esit2he v6rdluse&lt;/font&gt;&lt;br /&gt;                                                &lt;font color="#a52829"&gt;&lt;b&gt;while&lt;/b&gt;&lt;/font&gt;(k-h &amp;gt;= &lt;font color="#ff00ff"&gt;0&lt;/font&gt; &amp;amp;&amp;amp;&lt;br /&gt;                                                      (temp.Length &amp;lt; items[k-h].Length )&lt;br /&gt;                                                     )&lt;br /&gt;                                                {&lt;br /&gt;                                                        items[k] = items[k-h];&lt;br /&gt;                                                        k-=h;&lt;br /&gt;                                                }&lt;br /&gt;                                                items[k] = temp;&lt;br /&gt;                                                j+=h;&lt;br /&gt;                                        }&lt;br /&gt;                                }&lt;br /&gt;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; &lt;font color="#ff00ff"&gt;0&lt;/font&gt;;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#a520f7"&gt;#endregion&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#a520f7"&gt;#region Additional_funcs&lt;/font&gt;&lt;br /&gt;        &lt;font color="#0000ff"&gt;//kuva k6ik sorditavad liikmed&lt;/font&gt;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; PrintItems()&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;foreach&lt;/b&gt;&lt;/font&gt;(&lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; str &lt;font color="#a52829"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt; items)&lt;br /&gt;                        {&lt;br /&gt;                                Console.Write(&lt;font color="#ff00ff"&gt;&amp;quot;{0}, &amp;quot;&lt;/font&gt;,str);&lt;br /&gt;                        }&lt;br /&gt;                        Console.WriteLine();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;font color="#0000ff"&gt;//k6ik stringi  m2rid suurt2htedeks&lt;/font&gt;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; UppercaseItems()&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;foreach&lt;/b&gt;&lt;/font&gt;(&lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; str &lt;font color="#a52829"&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt; items)&lt;br /&gt;                        {&lt;br /&gt;                                str.ToUpper();&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;&lt;font color="#a520f7"&gt;#endregion&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#a520f7"&gt;#region GetSetters&lt;/font&gt;&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;[] Items&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;get&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                        {&lt;font color="#a52829"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; items;}&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;set&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                        {&lt;br /&gt;                                count = &lt;font color="#a52829"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/font&gt;.Length ;&lt;br /&gt;                                items = &lt;font color="#a52829"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;[count]; &lt;font color="#0000ff"&gt;//testida, ega pole liigne&lt;/font&gt;&lt;br /&gt;                                items = &lt;font color="#a52829"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;                &lt;font color="#298a52"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color="#298a52"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/font&gt; Count&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;get&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                        {&lt;br /&gt;                                &lt;font color="#a52829"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; count;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;font color="#a52829"&gt;&lt;b&gt;set&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                        {&lt;br /&gt;                                count = &lt;font color="#a52829"&gt;&lt;b&gt;value&lt;/b&gt;&lt;/font&gt;;&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;font color="#a520f7"&gt;#endregion&lt;/font&gt;&lt;br /&gt;        }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8704608169008602937?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8704608169008602937/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/c-stringi-massiivi-sorteerimine-shell.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8704608169008602937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8704608169008602937'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/c-stringi-massiivi-sorteerimine-shell.html' title='[C#] stringi massiivi sorteerimine Shell meetodiga.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-365283880955384875</id><published>2008-12-09T20:36:00.002+02:00</published><updated>2008-12-09T21:04:26.252+02:00</updated><title type='text'>Nipid programmi loomiseks.</title><content type='html'>Võtsin enne sessi auru maha ja süüvisin raamatusse &lt;a href="http://www.amazon.com/Programming-Challenges-Steven-S-Skiena/dp/0387001638/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1228847882&amp;amp;sr=8-1"&gt;"Programming Challenges"&lt;/a&gt;, et arendada oma algoritmide koostamise oskust ja mõtlemisvõimet. Antud raamatus tuuakse ära paar kiiret soovitust, kuidas koostada kvalitatiivsem lahendus. Antud soovitusi on kasulik järgida muude programmide loomisel.&lt;br /&gt;&lt;br /&gt;a) Kirjuta esmalt kommentaarid.&lt;br /&gt;Protseduuride kirjutamisel selgita mida antud protseduur teeb ja keerukamate algoritmide korral kirjuta pseudokoodis algoritm. Kui sa ei saa kommenteerimisega hakkama või sullegi jääb kommentaar segaseks, siis ära looda, et aru saad mida antud programm tegema hakkab.&lt;br /&gt;&lt;br /&gt;b) Kirjelda igat muutujat.&lt;br /&gt;See aitab sul meeles pidada muutuja otstarvet ning parandab oluliselt loetavust.&lt;br /&gt;&lt;br /&gt;c) Kasuta sümboolseid konstante, mitte võluarve.&lt;br /&gt;See nipp aitab vältida küsimusi, kust selline arv on võetud ning kui arv esineb mitmes kohas, kui on seda muuta, siis  konstandi korral peab seda ainult ühes kohas muutma.Samas kui arvu peab esmalt koodist ülesotsima ja siis üks haaval muutma.&lt;br /&gt;&lt;br /&gt;d) Väldi korduvat koodi. Korduv kood tähendab, et sa pole programmi struktuuri peale hoolikalt mõelnud. Kordumiste vähendamiseks jaga kood alamprotseduurideks või kasuta makrot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-365283880955384875?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/365283880955384875/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/nipid-programmi-loomiseks.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/365283880955384875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/365283880955384875'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/nipid-programmi-loomiseks.html' title='Nipid programmi loomiseks.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-7091101082045658193</id><published>2008-12-02T11:21:00.002+02:00</published><updated>2008-12-02T11:33:43.961+02:00</updated><title type='text'>[HOWTO] Ubuntu 8.10 ja vmPLayer</title><content type='html'>Kuidas installida endale vmplayer 2.50?&lt;br /&gt;Alustasin tutvumist andmekaevandamisega ning selleks on vaja virtualiseerida kergekaaluline SQL servu, mis jookseks põhisüsteemist eraldi. Tõmbasin vabavaralise VMPlayeri, kuid kuskilt ei leidnud ma kuidas käsitleda bundle faili. Pärast väiksest nokitsemist leidsin et tegu on isekompileeruva failiga nagu seda on ka Javal installimisel bin fail.&lt;br /&gt;&lt;br /&gt;1) tiri endale vmplayer bundle fail&lt;br /&gt;link:&lt;a href="http://www.vmware.com/download/player/"&gt; http://www.vmware.com/download/player/&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;2) ja käsureal mine failini&lt;br /&gt;&lt;br /&gt;3) anna käivitusõigused ja käivita&lt;br /&gt;          &lt;span style="font-family: courier new; color: rgb(51, 51, 51);"&gt;chmod  +x Vmplayer&lt;tab&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(51, 51, 51);"&gt;          ./Vmplayer&lt;tab&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-7091101082045658193?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/7091101082045658193/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/12/howto-ubuntu-810-ja-vmplayer.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7091101082045658193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7091101082045658193'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/12/howto-ubuntu-810-ja-vmplayer.html' title='[HOWTO] Ubuntu 8.10 ja vmPLayer'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2983865902080837205</id><published>2008-10-27T22:18:00.002+02:00</published><updated>2008-10-27T22:33:31.097+02:00</updated><title type='text'>Õpi investeerima!</title><content type='html'>Investeerimine toob kaasa riske, nt võid vale arvestuse ja jaotuse korral kaotada kogu oma raha. Laisal algajal juhtub seda kindlasti. Kuid alati ei pea oma rahaga riskeerima. :D Ei, ma ei soovita sulle tööd pensionifondi haldurina pangas vaid Investeerimismängu &lt;a href="http://invest-game.com/"&gt;Invest-Game.com&lt;/a&gt;, kus saad koostada oma portfelli ning võrrelda enda portfelli tootlikust konkurentidega. Stardikapitaliks antakse $100k virtuaalset raha, mille eest saad naabermaade turgude aktsiaid osta. Et motivatsioon ikka kõrge püsiks, siis on välja pandud ka korralik auraha 3000EUR-i.&lt;br /&gt;Kui sa ei tea investeerimisest mitte mõmmigi või tahad investeerimisalustalad selgeks teha, siis mina soovitan külastada allpool olevaid linke, kus on väga häid nõuandeid:&lt;br /&gt;&lt;br /&gt;*) &lt;a href="http://invest-game.com/doc/tutorials.html"&gt;http://invest-game.com/doc/tutorials.html&lt;/a&gt; --antud mängu juhend ja väike investeerimisõpik&lt;br /&gt;*) &lt;a href="http://tarkinvestor.ee/"&gt; http://tarkinvestor.ee/&lt;/a&gt;  --loe põnevaid artikleid ning küsi eesti parimatelt&lt;br /&gt;*)  &lt;a href="http://lhv.delfi.ee/index.cfm?id=81349"&gt;http://lhv.delfi.ee/index.cfm?id=81349&lt;/a&gt;  --LHV investeerimiskool&lt;br /&gt;&lt;br /&gt;Ja sellest on alustuseks rohkem kui küll.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2983865902080837205?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2983865902080837205/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/pi-investeerima.html#comment-form' title='1 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2983865902080837205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2983865902080837205'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/pi-investeerima.html' title='Õpi investeerima!'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-418823671499440665</id><published>2008-10-26T01:28:00.006+03:00</published><updated>2008-10-26T01:35:24.731+03:00</updated><title type='text'>Niimõnda: Intervjuu kasutajalooga.</title><content type='html'>Väike väljavõtte raamatust &lt;a href="http://www.amazon.com/First-Software-Development-Brain-Friendly-Guides/dp/0596527357/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1224973790&amp;amp;sr=8-1"&gt;Head first software development&lt;/a&gt;, peatükk nr.2 User stories.&lt;br /&gt;Antud lehekülg võtab väga lõbusalt ja mänguliselt kokku, mis imeloom see kasutajalugu on, mis tema eesmärgid tal on, miks ta on kliendile kasulik ja miks on ta arendajale kasulik.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_80sAoSXiYeA/SQOeR_G3HeI/AAAAAAAAAZU/khrtrwLBeNI/s1600-h/userstory.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 400px;" src="http://4.bp.blogspot.com/_80sAoSXiYeA/SQOeR_G3HeI/AAAAAAAAAZU/khrtrwLBeNI/s400/userstory.png" alt="" id="BLOGGER_PHOTO_ID_5261222821534047714" border="0" /&gt;Kliki suuremaks.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-418823671499440665?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/418823671499440665/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/niimnda-intervjuu-kasutajalooga.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/418823671499440665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/418823671499440665'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/niimnda-intervjuu-kasutajalooga.html' title='Niimõnda: Intervjuu kasutajalooga.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_80sAoSXiYeA/SQOeR_G3HeI/AAAAAAAAAZU/khrtrwLBeNI/s72-c/userstory.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6912603443316081679</id><published>2008-10-22T21:43:00.012+03:00</published><updated>2008-10-22T23:44:58.700+03:00</updated><title type='text'>Niimõnda: Veena aju kaastööle.</title><content type='html'>&lt;p&gt;Täna mõtlesin, et loen midagi Tarkvara loengu materjalidele lisaks. Esimene raamat, mis kätte sattus oli O'Reilly &lt;a href="http://www.amazon.com/First-Software-Development-Brain-Friendly-Guides/dp/0596527357/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1224700817&amp;amp;sr=8-1"&gt;"Head First Software Development"&lt;/a&gt;. Esimesed leheküljed äratasid minus enneolematud huvi ja eriti tahaks välja tuua lehekülje järjenumbriga 31. PS: Antud raamatud lehekülje ülanurgas on lausa  soovitus: Lõika välja ja kleebi külmiku uksele.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;Veena aju kaastööle.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Soovitus nr.1&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Ära kiirusta. Mida rohkem sa arusaad, seda vähem pead  meeldejätma.  Ära loe tuimalt- peatu ja analüüsi loetud ridu. Kui esitatakse küsimus, siis kujuta ette et keegi küsib seda just sinult ja ootab vastust sult. Mida rohkem sa sunnid aju tööle , seda suurem on võimalus, et loetu jääb meelde.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Soovitus nr.2&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Tee märkmeid. Füüsiline tegevus ergutab kaasamõtlemist.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Soovitus nr.3&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Loe enne uinumist või pea pausi enne järgimist ajupingutust. Üks osa õppimisest käivitub alles ajahetkel kui lõpetad lugemise ehk aju hakkab alles loetud materjali talletama kauakestvusega mällu. Kui hakkad midagi uut sellel ajal mällu talletama, siis eelnevalt loetud materjal ei jõua kinnistuda ja ununeb.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Soovitus nr.4&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Joo vett. Aju sisaldab palju vett ja aju on veepuudulikkuse suhtes tundlik. Juba väike veepuudus raskendab keskendumist ja loetud ridade analüüsi.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Soovitus nr.5 &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Räägi sellest. Häälekalt. Rääkimine ergutab erinevaid mäluosasid. Kui sa soovid millegist võõrast arusaada, siis loe ja ütle seda valjult või veelgi parem: proovi loetud teemat selgitada kellegile kolmandale. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Soovitus nr.6&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Kuula oma aju. Aju pole kummist. Kui märkad, et sa ei mäleta mida lugesid 3 rida tagasi või ei suuda silmi enam hoida real .Siis tee paus ja näiteks keeda teed ja mõtle vaikselt järgi, millest oli just jutt.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6912603443316081679?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6912603443316081679/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/niimnda-veena-aju-kaasa-ttama.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6912603443316081679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6912603443316081679'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/niimnda-veena-aju-kaasa-ttama.html' title='Niimõnda: Veena aju kaastööle.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5635899317451376732</id><published>2008-10-19T22:15:00.001+03:00</published><updated>2008-10-19T22:15:10.530+03:00</updated><title type='text'>VBA: Lisa Wordi dokument Exceli töölehele</title><content type='html'>&lt;p&gt;Antud protseduur on iseenest lihtne , koosneb kahest osast üks lisab wordi objekti ja teine kannab sisse väärtused:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'++Add text to Linked in OLEObject&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'sisendid: viit dokumendile, vahemikule, text , valikuline pealkiri&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Sub&lt;/span&gt; AddTextToOleObject(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; WS &lt;span class="kwrd"&gt;As&lt;/span&gt; Worksheet, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Area &lt;span class="kwrd"&gt;As&lt;/span&gt; Range, _&lt;br /&gt;    &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Text &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Header)&lt;br /&gt;&lt;br /&gt;     &lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oleWord  &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; oDoc &lt;span class="kwrd"&gt;As&lt;/span&gt; Word.Document&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objTable &lt;span class="kwrd"&gt;As&lt;/span&gt; Word.Table&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'lisa wordi ole objekt&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; oleWord = WS.OLEObjects.Add(ClassType:=&lt;span class="str"&gt;&amp;quot;Word.Document.8&amp;quot;&lt;/span&gt;, Link:=&lt;span class="kwrd"&gt;False&lt;/span&gt;, _&lt;br /&gt;        DisplayAsIcon:=&lt;span class="kwrd"&gt;True&lt;/span&gt;, IconFileName:= _&lt;br /&gt;        &lt;span class="str"&gt;&amp;quot;C:\WINDOWS\Installer\{90110409-6000-11D3-8CFE-0150048383C9}\wordicon.exe&amp;quot;&lt;/span&gt;, _&lt;br /&gt;        IconIndex:=0, IconLabel:=&lt;span class="str"&gt;&amp;quot;Word&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'—seadista ole objekti omadusi&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;With&lt;/span&gt; oleWord&lt;br /&gt;        .Activate&lt;br /&gt;        .Height = 40&lt;br /&gt;        .Width = 45&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; oDoc = oleWord.&lt;span class="kwrd"&gt;Object&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; Len(Header) &amp;lt; 1 &lt;span class="kwrd"&gt;Then&lt;/span&gt; Header = &lt;span class="str"&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;'andmete sisestamine&lt;/span&gt;&lt;br /&gt;    oDoc.Paragraphs.Add&lt;br /&gt;    &lt;span class="kwrd"&gt;With&lt;/span&gt; oDoc.Paragraphs(oDoc.Paragraphs.Count).Range&lt;br /&gt;        .InsertAfter Header&lt;br /&gt;        .InsertAfter &lt;span class="str"&gt;&amp;quot; &amp;quot;&lt;/span&gt; &amp;amp; Chr(10)&lt;br /&gt;        .InsertAfter Text&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'sulge keäsolev dokument&lt;/span&gt;&lt;br /&gt;    oDoc.Save&lt;br /&gt;    oDoc.Close&lt;br /&gt;    oleWord.SendToBack&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5635899317451376732?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5635899317451376732/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-lisa-wordi-dokument-exceli-tlehele.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5635899317451376732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5635899317451376732'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-lisa-wordi-dokument-exceli-tlehele.html' title='VBA: Lisa Wordi dokument Exceli töölehele'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3121515605100019220</id><published>2008-10-19T22:10:00.001+03:00</published><updated>2008-10-19T22:10:08.080+03:00</updated><title type='text'>VBA: Veerg massiivi</title><content type='html'>&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;Soovitav on enne veerutöötlemist andmed lugeda massiivi, sest antud lahendus on kiirem kui andmete hankimiseks mitu korda töölehe poole pöörduda.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'moodusta veeru  massiiv&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'sisend: tööleht, väljund: tulba pealkirjade massiiv, kas pealkirja rida on või ei&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Function&lt;/span&gt; ColToArray(sht &lt;span class="kwrd"&gt;As&lt;/span&gt; Worksheet, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; ColNr &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Header &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; Vector() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Variant&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; FirstRow &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; LastRow &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; i &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'ridadevahemik,kust andmeid sisse loetakse&lt;/span&gt;&lt;br /&gt;    FirstRow = Find.FindFirstUsedRow(sht) &lt;span class="rem"&gt;' esimesel real on pealkiri&lt;/span&gt;&lt;br /&gt;    LastRow = Find.FindLastUsedRow(sht) - Header&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'If LastRow &amp;lt; FirstRow Then Exit Function&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;ReDim&lt;/span&gt; Vector(1 &lt;span class="kwrd"&gt;To&lt;/span&gt; LastRow)&lt;br /&gt;    &lt;span class="rem"&gt;'If ColNr = 0 Then ColNr = 1&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;For&lt;/span&gt; i = FirstRow &lt;span class="kwrd"&gt;To&lt;/span&gt; LastRow&lt;br /&gt;        &lt;span class="rem"&gt;'+header, sest kas ees on indexi rida või ei&lt;/span&gt;&lt;br /&gt;        Vector(i) = Trim(sht.Cells(i + Header, ColNr).Value)&lt;br /&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt; i&lt;br /&gt;    &lt;br /&gt;    ColToArray = Vector()&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3121515605100019220?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3121515605100019220/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-veerg-massiivi.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3121515605100019220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3121515605100019220'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-veerg-massiivi.html' title='VBA: Veerg massiivi'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2185185672616376287</id><published>2008-10-19T22:04:00.001+03:00</published><updated>2008-10-19T22:04:31.617+03:00</updated><title type='text'>VBA: Mitu rida koodi on su moodulites?</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nii mõnikord on vaja teada, kui suureks on kasvanud makrode moodulid ja käsitsi on suuruse hindamine tülikas.&lt;/p&gt;  &lt;p&gt;Mina pakun välja lahenduse, kus makro suurused loetakse kokku jällegi makro abil:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'väljasta kõik projekti osad ja ridade arv nendes&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Sub&lt;/span&gt; CountModuleLines()&lt;br /&gt;   &lt;br /&gt;   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; NumComponents &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; VBP &lt;span class="rem"&gt;'projekt&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; WS &lt;span class="kwrd"&gt;As&lt;/span&gt; Worksheet&lt;br /&gt;   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; i &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;   &lt;span class="kwrd"&gt;Set&lt;/span&gt; WS = ActiveSheet&lt;br /&gt;   &lt;span class="kwrd"&gt;Set&lt;/span&gt; VBP = ActiveWorkbook.VBProject&lt;br /&gt;   NumComponents = VBP.vbcomponents.Count&lt;br /&gt;     &lt;br /&gt;   WS.Activate&lt;br /&gt;   &lt;br /&gt;   &lt;span class="kwrd"&gt;For&lt;/span&gt; i = 1 &lt;span class="kwrd"&gt;To&lt;/span&gt; NumComponents&lt;br /&gt;   &lt;br /&gt;    Cells(i, 1).Value = VBP.vbcomponents(i).Name&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;span class="kwrd"&gt;Case&lt;/span&gt; VBP.vbcomponents(i).Type&lt;br /&gt;     &lt;span class="kwrd"&gt;Case&lt;/span&gt; 1&lt;br /&gt;         Cells(i, 2) = &lt;span class="str"&gt;&amp;quot;Module&amp;quot;&lt;/span&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;Case&lt;/span&gt; 2&lt;br /&gt;         Cells(i, 2) = &lt;span class="str"&gt;&amp;quot;Class Module&amp;quot;&lt;/span&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;Case&lt;/span&gt; 3&lt;br /&gt;         Cells(i, 2) = &lt;span class="str"&gt;&amp;quot;UserForm&amp;quot;&lt;/span&gt;&lt;br /&gt;     &lt;span class="kwrd"&gt;Case&lt;/span&gt; 4&lt;br /&gt;         Cells(i, 2) = &lt;span class="str"&gt;&amp;quot;Document Module&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Select&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'mitu rida koodi VBA projekti osas on:&lt;/span&gt;&lt;br /&gt;    Cells(i, 3) = VBP.vbcomponents(i).codemodule.countoflines&lt;br /&gt;   &lt;span class="kwrd"&gt;Next&lt;/span&gt; i&lt;br /&gt;   &lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2185185672616376287?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2185185672616376287/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-mitu-rida-koodi-on-su-moodulites.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2185185672616376287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2185185672616376287'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-mitu-rida-koodi-on-su-moodulites.html' title='VBA: Mitu rida koodi on su moodulites?'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-7158978014343557844</id><published>2008-10-19T21:55:00.001+03:00</published><updated>2008-10-19T21:55:30.493+03:00</updated><title type='text'>VBA abil Exceli peamenüü lisamine</title><content type='html'>&lt;p&gt;Kui arendad Excelis mitmeid erinevaid add-in või makrosid, siis on arukas need koondada ühise pealkirja alla.&amp;#160; Nt ühe osakonnale/töögrupile&amp;#160; mõeldud makrod koondada ühise pealkirja alla.&lt;/p&gt;  &lt;p&gt;Allpool toon ära töötava lahenduse:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'//konstandid&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Global&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; MENUNAME = &lt;span class="str"&gt;&amp;quot;Menu Name&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Global&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; DEF_MENUNAME = &lt;span class="str"&gt;&amp;quot;Department&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Global&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; DEF_COMMANDBARNAME = &lt;span class="str"&gt;&amp;quot;Worksheet Menu Bar&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Global&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; DEF_BEFORE = &lt;span class="str"&gt;&amp;quot;HELP&amp;quot; ‘mis menüü ette läheb&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Global&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; DEF_CAPTION = MENUNAME&lt;br /&gt;…….&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'lisab soovitud ribale menüü&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'sisend: ribanimi, mis menüü ette, ning menüünimi&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Sub&lt;/span&gt; AddMenu(&lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; CBarName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Before &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;&lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; topMenuName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; MenuCaption &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; cbMainMenuBar &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBar&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; iHelpMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; cbcMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBarControl&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; SubMenuItems() &lt;span class="kwrd"&gt;As&lt;/span&gt; MenuItem&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'väärtusta väärtusmuutujad- kui argumendi väärtus puudub, siis võta default väärtus&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; (Len(CBarName) = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt; CBarName = DEF_COMMANDBARNAME&lt;br /&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; (Len(Before) = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt; Before = DEF_BEFORE&lt;br /&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; (Len(topMenuName) = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt; topMenuName = DEF_MENUNAME&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'kontrolli kas antud peamenüü on olemas, kui olemas siis katkesta&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; cbMainMenuBar = Application.CommandBars(DEF_COMMANDBARNAME)&lt;br /&gt;   &lt;br /&gt;    &lt;span class="rem"&gt;'(3)Return the Index number of the Help menu. We can then use _&lt;/span&gt;&lt;br /&gt;        this &lt;span class="kwrd"&gt;to&lt;/span&gt; place a custom menu before.&lt;br /&gt;    iHelpMenu = cbMainMenuBar.Controls(Before).Index&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;'Does headmenu exists?&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; cbcMenu = cbMainMenuBar.Controls(topMenuName)&lt;br /&gt;    &lt;span class="kwrd"&gt;If&lt;/span&gt; (cbcMenu &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;'(4)Add a Control to the &amp;quot;Worksheet Menu Bar&amp;quot; before Help&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;'Set a CommandBarControl variable to it&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Set&lt;/span&gt; cbcMenu = cbMainMenuBar.Controls.Add(Type:=msoControlPopup, Before:=iHelpMenu)&lt;br /&gt;        &lt;span class="rem"&gt;'(5)Give the control a caption&lt;/span&gt;&lt;br /&gt;        cbcMenu.Caption = topMenuName&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'Lisa alamenüü liikmed&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;ReDim&lt;/span&gt; SubMenuItems(2)&lt;br /&gt;    &lt;span class="kwrd"&gt;With&lt;/span&gt; SubMenuItems(1)&lt;br /&gt;        .Caption = &lt;span class="str"&gt;&amp;quot;Valmista portfell ette&amp;quot;&lt;/span&gt;&lt;br /&gt;        .MacroName = &lt;span class="str"&gt;&amp;quot;HeadModule.Start&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;With&lt;/span&gt; SubMenuItems(2)&lt;br /&gt;        .Caption = &lt;span class="str"&gt;&amp;quot;Lõpeta portfell&amp;quot;&lt;/span&gt;&lt;br /&gt;        .MacroName = &lt;span class="str"&gt;&amp;quot;HeadModule.Finish&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    addSubMenu cbcMenu, MenuCaption, SubMenuItems&lt;br /&gt;    &lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;'Lisa alammenüü&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;&lt;/span&gt;&lt;span class="rem"&gt;'sisend peamenüü objekt, alammenüü nimi, alammenüü liikmed&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Sub&lt;/span&gt; addSubMenu(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; HeadMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBarControl, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; SubMenuName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;    SubMenuItems() &lt;span class="kwrd"&gt;As&lt;/span&gt; MenuItem)&lt;br /&gt;  &lt;span class="kwrd"&gt;Dim&lt;/span&gt; cmdbar &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBar&lt;br /&gt;  &lt;span class="kwrd"&gt;Dim&lt;/span&gt; myMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBarPopup&lt;br /&gt;  &lt;span class="kwrd"&gt;Dim&lt;/span&gt; subMenu &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBarControl&lt;br /&gt;  &lt;span class="kwrd"&gt;Dim&lt;/span&gt; i &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;' Point to the Worksheet Menu Bar&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;Set&lt;/span&gt; cmdbar = Application.CommandBars(&lt;span class="str"&gt;&amp;quot;Worksheet Menu Bar&amp;quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;' Create My Menu&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt; &lt;span class="rem"&gt;'if not exist then resume&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;Set&lt;/span&gt; myMenu = HeadMenu.Controls(SubMenuName)&lt;br /&gt;  &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; 0 &lt;span class="rem"&gt;' taasta veateated&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;If&lt;/span&gt; myMenu &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;'if not exists then add new one&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; myMenu = HeadMenu.Controls.Add(Type:=msoControlPopup)&lt;br /&gt;  &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;  &lt;span class="rem"&gt;'configure&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;With&lt;/span&gt; myMenu&lt;br /&gt;    .Caption = SubMenuName&lt;br /&gt;    .BeginGroup = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;For&lt;/span&gt; i = 1 &lt;span class="kwrd"&gt;To&lt;/span&gt; UBound(SubMenuItems)&lt;br /&gt;        &lt;span class="rem"&gt;' Create the sub Menu(s)&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Set&lt;/span&gt; subMenu = myMenu.Controls.Add&lt;br /&gt;        &lt;span class="kwrd"&gt;With&lt;/span&gt; subMenu&lt;br /&gt;          .Caption = SubMenuItems(i).Caption&lt;br /&gt;          .BeginGroup = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;br /&gt;          .OnAction = &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(&lt;span class="str"&gt;&amp;quot;'&amp;quot;&lt;/span&gt; &amp;amp; ThisWorkbook.Name &amp;amp; &lt;span class="str"&gt;&amp;quot;'!&amp;quot;&lt;/span&gt; &amp;amp; SubMenuItems(i).MacroName) &lt;span class="rem"&gt;' Assign Macro to Menu Item&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt; i&lt;br /&gt;    &lt;br /&gt;  &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-7158978014343557844?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/7158978014343557844/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-abil-exceli-peamen-lisamine.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7158978014343557844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/7158978014343557844'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/vba-abil-exceli-peamen-lisamine.html' title='VBA abil Exceli peamenüü lisamine'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5352700797050974405</id><published>2008-10-18T21:47:00.004+03:00</published><updated>2008-10-18T23:43:56.413+03:00</updated><title type='text'>Õpi programmeerima ja lahedalt.</title><content type='html'>Kui sulle ei tundu mõisted programmeerimine ja  programm erutavana või oled kinni vanas stereotüübis, et programmeerija on üks pika patsiga poiss.&lt;br /&gt; Siis tea, need ajad on juba pikemat aega möödas ning Coca-Cola maal on toredad õppejõud välja mõelnud laheda tööriista Alice, mille abil on objektorienteeritud programmeerine muutunud äärmiselt lahedaks. Selles keskkonnas on sul võimalik luua oma muinasjutt või  oma mäng  ning selle lõbusa tegevuse käigus jõuavad ennem hirmutavana tundunud mõisted kergemini kohale ja kinnistuvad püsivamalt kui pähetuubitud teooria. Antud vahendiga saad tutvuda ja allalaadida &lt;a href="http://www.alice.org/index.php?page=what_is_alice/what_is_alice"&gt;Alice Project lehelt (http://www.alice.org/index.php?page=what_is_alice/what_is_alice)&lt;/a&gt; .  Programm töötab mitmel platvormil ning mulle teada olevalt toetab selliseid objektorienteeritud keeli nagu Java, C++ ja  C# .&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.alice.org/images/pauschBanner.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 760px; height: 63px;" src="http://www.alice.org/images/pauschBanner.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Alice aluspanija  on äärmiselt muhe Carnegie Mellon ülikooli  õppejõud Randy Rausch. Silmaringi laiendamiseks soovitan tungivalt vaadata tema hüvastijätu loengut teemal "Vii oma lapsepõlve unistused täide" (Youtube link: &lt;a href="http://www.youtube.com/watch?v=ji5_MqicxSo"&gt;http://www.youtube.com/watch?v=ji5_MqicxSo&lt;/a&gt; ) . Miks tungivalt, sest üle 7miljoni vaataja  ei saa  eksida.&lt;br /&gt;&lt;br /&gt;PS: Mängisin pool päeva sellega. Väga lahe soft, kuid vanematel arvutitel töötab väga aeglaselt, sest töötab Java platvormil, mille graafika jooksutamine nõuab korralikku tänapäevast jõudlust.&lt;br /&gt;&lt;br /&gt;Loe ka : &lt;a href="http://www.webwire.com/ViewPressRel.asp?aId=54742"&gt;http://www.webwire.com/ViewPressRel.asp?aId=54742&lt;/a&gt;&lt;br /&gt;               &lt;a href="http://mags.acm.org/communications/200810/?CFID=6815800&amp;amp;CFTOKEN=54937222"&gt;http://mags.acm.org/communications/200810/?CFID=6815800&amp;amp;CFTOKEN=54937222&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5352700797050974405?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5352700797050974405/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/10/pi-programmeerima-ja-lahedalt.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5352700797050974405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5352700797050974405'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/10/pi-programmeerima-ja-lahedalt.html' title='Õpi programmeerima ja lahedalt.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3949337765412388376</id><published>2008-09-24T11:46:00.004+03:00</published><updated>2008-09-24T12:09:02.296+03:00</updated><title type='text'>Õpi soodsalt maailma teenekamates ülikoolides.</title><content type='html'>Paljud tuntud ja tugevad ülikoolid on hakkanud  oma loenguid internetti ripputama. Sul on võimalik lugeda loengumaterjale ning näha loenguülekandeid. Võimas.  Mulle meeldib, et ülikoolid on tulnud rahvale niivõrd lähedale. Sul on alati võimalus ennast täiendada või korrata kunagi ammu kuulatud loenguteemasid. Kõike seda koolist eemal ja olenemata vanusest.&lt;br /&gt;See on ideaalne võimalus võtta tasuta kursuseid teenekatest ülikoolidest. Jah, sa ei saa selle eest paberit, kuid sa oled kindlasti palju targem kui ennem. Või kui tunned kooliloenguist jääb väheseks, siis on see samuti hea võimalus enda teadmisi laiendada.&lt;br /&gt;Pealegi näed kuidas viiakse loenguid teistest ülikoolides ja mis on seal teistmoodi .  Mulle meenub kuidas üks Stanfordi õppejõud aktiivsematele tudengitele kommi jagab . Lahe .&lt;br /&gt;Et jutt väga pikaks ei läheks, siis ma lisan allapoole lingid ja edaspidi tuleb sul ise aktiivne olla.&lt;br /&gt;&lt;br /&gt;*) List vabalt kättesaadavatest loengumaterjalidest:&lt;br /&gt;&lt;a href="http://education-portal.com/articles/Universities_with_the_Best_Free_Online_Courses.html"&gt;http://education-portal.com/articles/Universities_with_the_Best_Free_Online_Courses.html&lt;/a&gt;&lt;br /&gt;*) MIT Opencouse leht:&lt;br /&gt;&lt;a href="http://ocw.mit.edu/OcwWeb/web/home/home/index.htm"&gt;http://ocw.mit.edu/OcwWeb/web/home/home/index.htm&lt;/a&gt;&lt;br /&gt;*) Stanford Ülikooli avatud kursusteleht:&lt;br /&gt;&lt;a href="http://see.stanford.edu/default.aspx"&gt;http://see.stanford.edu/default.aspx&lt;/a&gt;&lt;br /&gt;*)  Berkley Ülikooli netiloengud:&lt;br /&gt;&lt;a href="http://webcast.berkeley.edu/index.php"&gt;http://webcast.berkeley.edu/index.php&lt;/a&gt;&lt;br /&gt;*) Britide avatud ülikool:&lt;br /&gt;&lt;a href="http://openlearn.open.ac.uk/"&gt;http://openlearn.open.ac.uk/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS: Peab ütlema Eesti majandusemootori alustaladeks olevad kohalikud  ülikoolid on  elule jalgu jäänud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3949337765412388376?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3949337765412388376/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/pi-soodsalt-maailma-teenekamates.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3949337765412388376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3949337765412388376'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/pi-soodsalt-maailma-teenekamates.html' title='Õpi soodsalt maailma teenekamates ülikoolides.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-6025975470245327318</id><published>2008-09-24T11:09:00.001+03:00</published><updated>2008-09-24T12:10:15.015+03:00</updated><title type='text'>Vaheta Windowsi välimus XFCE laadse vastu</title><content type='html'>&lt;p&gt;Kui oled *uniX mugava kasutajaliideséga harjunud, siis asjalikud arvutimehed on valmis kirjutanud mõnusa Windowsi shelli, mis oma olemuselt meenutab vägagi XFCE kasutajaliidest.&amp;#160; Muuseas see on vabavaraline ja arendus toimub kommuunina ja sinu abi on väga oodatud. Allalaadida ja lisainfot saad veebilehelt &lt;a href="http://trac.sharpe-shell.org/wiki"&gt;http://trac.sharpe-shell.org/wiki&lt;/a&gt; . &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh6.ggpht.com/timgluz/SNn1p23hnMI/AAAAAAAAAXM/yIl8THYgzg0/s1600-h/sharpE%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="sharpE" align="right" src="http://lh3.ggpht.com/timgluz/SNn1qkCj1BI/AAAAAAAAAXQ/zW9WWS3Mv2Q/sharpE_thumb%5B2%5D.png?imgmax=800" width="275" height="217" /&gt;&lt;/a&gt;Miks on see mõnus? Esiteks saad kasutada mitut virtuaalset töölauda. Teiseks ei pea programmi käivitamiseks, minema Start Menüü alla, vaid saad käivitada nn Kiirvalikureal kui soovid avada startmenüü, siis piisab kui töölaual teha parem klõps. &lt;/p&gt;  &lt;p&gt;OK, kui mu ekraanitõmmist vaatad, siis võib sulle tunduda et SharpE disain on kehvake. Ei, see pole nõrgake, vaid mul on vana ja vähese mäluhulgaga sülearvuti. Seetõttu pean kasutama vaikimisi seadeid.&amp;#160; Vaata seda &lt;a target="_blank" href="http://www.sharpe-shell.org/e107_plugins/autogallery/Gallery/.jpg"&gt;ekraanitõmmist.&lt;/a&gt; Ei anna võrreldagi. &lt;/p&gt;  &lt;p&gt;Moodsam, kiirem, mugavam töölaud ja see kõik tasuta !!&lt;/p&gt;  &lt;p&gt;PS: Soovitan vaadata muid alternatiivseid valikuid:&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Windows_shell_replacement"&gt;http://en.wikipedia.org/wiki/Windows_shell_replacement&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-6025975470245327318?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/6025975470245327318/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/vaheta-windowsi-vlimus-xfce-laadse.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6025975470245327318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/6025975470245327318'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/vaheta-windowsi-vlimus-xfce-laadse.html' title='Vaheta Windowsi välimus XFCE laadse vastu'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/timgluz/SNn1qkCj1BI/AAAAAAAAAXQ/zW9WWS3Mv2Q/s72-c/sharpE_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8085339552503490204</id><published>2008-09-17T22:54:00.001+03:00</published><updated>2008-09-17T22:56:36.800+03:00</updated><title type='text'>WMI: kuva ketaste vabaruum / max suurus</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tegu j&amp;#228;rjekorra lihtsa skriptiga. Seda saab lihtsalt genereerida WMICodeCreatori (&lt;a target="_blank" href="http://timgluz.blogspot.com/2008/09/wmi-code-creator-koosta-kiirelt-wmi.html"&gt;loe sissekannet&lt;/a&gt; ) abil . Mina harjutasin lihtsalt oma k&amp;#228;tt ja kirjutasin ise. Pea pole pr&amp;#252;gikast, siis parim WMICodeCreator on samas parim koht, kust vaadata klassiliikmeid. Hea interneti &amp;#252;hendusekorral v&amp;#245;id kasutada ka &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/aa394572(VS.85).aspx"&gt;MSDN WMI SDK reference&lt;/a&gt; abi. &lt;/p&gt;  &lt;p&gt;Selle skripti puhul olen skripti nn t&amp;#246;&amp;#246;osa viinud alamprogrammi, et seda saaks kasutada suuuremates rakenduses, rekursiivset p&amp;#246;&amp;#246;rdust ja koodil oleks selgem &amp;#252;lesehitus.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;font face="MS Sans Serif"&gt;&lt;span class="kwrd"&gt;Option&lt;/span&gt; Explicit &lt;span class="rem"&gt;' kontrolli et iga muutuja oleks defineeritud&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt; &lt;span class="rem"&gt;' veakorral j&amp;#228;tka peale viga tekkinud realt&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Const&lt;/span&gt; DriveType = 3 &lt;span class="rem"&gt;' 3- staatilised kettad, 2 - eemaldatavad,4-v&amp;#245;rgukettad 5 - cd &lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Const&lt;/span&gt; SizeMB = 1048576 &lt;span class="rem"&gt;' kui palju baite on megabaidis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="MS Sans Serif"&gt;&lt;span class="rem"&gt;'--Skripti tuum-------------------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;PrintLogicalDisk&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Sub&lt;/span&gt; PrintLogicalDisk()&lt;br /&gt;    &lt;span class="rem"&gt;'--Muutujate defineerimine------------------------------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; drive&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; colDrives&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strComputer &lt;span class="rem"&gt;' arvuti nimi&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objWMIService &lt;br /&gt;    strComputer = &lt;span class="str"&gt;&amp;quot;.&amp;quot;&lt;/span&gt; &lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objWMIService = GetObject(&lt;span class="str"&gt;&amp;quot;winmgmts:\\&amp;quot;&lt;/span&gt; &amp;amp; strComputer &amp;amp; &lt;span class="str"&gt;&amp;quot;\root\CIMV2&amp;quot;&lt;/span&gt;) &lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; colDrives = objWMIService.ExecQuery(&lt;span class="str"&gt;&amp;quot;SELECT * FROM Win32_LogicalDisk&amp;quot;&lt;/span&gt;) &lt;br /&gt;    WScript.Echo &lt;span class="str"&gt;&amp;quot;--Arvutisse installitud k&amp;#245;vakettad--&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; drive &lt;span class="kwrd"&gt;in&lt;/span&gt; colDrives&lt;br /&gt;        &lt;br /&gt;        WScript.Echo drive.DeviceID &amp;amp; &lt;span class="str"&gt;&amp;quot; &amp;quot;&lt;/span&gt; _&lt;br /&gt;                &amp;amp; Fix(drive.FreeSpace / SizeMB )  &amp;amp; &lt;span class="str"&gt;&amp;quot; / &amp;quot;&lt;/span&gt; _&lt;br /&gt;                &amp;amp; Fix(drive.Size / SizeMB) &amp;amp; &lt;span class="str"&gt;&amp;quot;MB&amp;quot;&lt;/span&gt;&lt;br /&gt;                                        &lt;br /&gt;     N&lt;span class="kwrd"&gt;ext&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;sub&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8085339552503490204?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8085339552503490204/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/wmi-kuva-ketaste-vabaruum-max-suurus.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8085339552503490204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8085339552503490204'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/wmi-kuva-ketaste-vabaruum-max-suurus.html' title='WMI: kuva ketaste vabaruum / max suurus'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8446447125862755479</id><published>2008-09-17T22:16:00.001+03:00</published><updated>2008-09-17T22:33:58.166+03:00</updated><title type='text'>WMI: failist lugemine</title><content type='html'>&lt;p&gt;Seekord on tegu skriptiga, mille &amp;#252;lesandeks on otsida s&amp;#245;na &amp;quot;error&amp;quot;&amp;#160; ja v&amp;#228;ljastada leitud rida ekraanil. Ma koondasin skripti nn t&amp;#246;&amp;#246;osa eraldi funktsiooni. Hiljem saab antud funktsiooni &amp;#228;rakasutada suuremate rakenduste korral. Hetkel on v&amp;#228;ike viga Option Explicitiga, kui see v&amp;#228;lja kopeerida, siis protseduuri ei t&amp;#228;ideta, tundub et viga on protseduuri parameetritega. Proovin selle t&amp;#228;ienduse esimesel v&amp;#245;imalusel &amp;#228;ra teha.&lt;/p&gt;  &lt;p&gt;Kood ise:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;font face="MS Sans Serif"&gt;&lt;span class="rem"&gt;'++Antud n&amp;#228;ite puhul otsib skript etteantud failist rea kus asub soovitud string ning kuvab selle rea&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'--Autor: Timo Sulg&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'--kuup&amp;#228;ev: 17.09.2008&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;'Option Explicit ' tekib viga protseduuri muutujatega&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;br /&gt;WScript.Echo &lt;span class="str"&gt;&amp;quot;++Otsib logifailist wmiprov.log errori ridu &amp;quot;&lt;/span&gt;&lt;br /&gt;GrepStringFromFile &lt;span class="str"&gt;&amp;quot;C:\WINDOWS\system32\wbem\Logs&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;wmiprov.log&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;error&amp;quot;&lt;/span&gt; &lt;br /&gt;&lt;span class="rem"&gt;'++Otsi faili reast soovitud m&amp;#228;rks&amp;#245;na ja kuva rida, kus vaste leiti&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Sub&lt;/span&gt; GrepStringFromFile(strDir ,strFile, strSearchString)&lt;br /&gt;    &lt;span class="rem"&gt;'++muutujate algv&amp;#228;&amp;#228;rtustamine&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objFSO &lt;span class="rem"&gt;' filesystem object&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objFile&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; srtLine&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objFSO = CreateObject(&lt;span class="str"&gt;&amp;quot;Scripting.FileSystemObject&amp;quot;&lt;/span&gt;)&lt;br /&gt;    &lt;span class="rem"&gt;'ava fail&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objFile = objFSO.OpenTextFile(strDir &amp;amp; &lt;span class="str"&gt;&amp;quot;\&amp;quot;&lt;/span&gt; &amp;amp; strFile,1)&lt;br /&gt;    &lt;span class="rem"&gt;'loe failist rida&lt;/span&gt;&lt;br /&gt;    strLine = objFile.ReadLine&lt;br /&gt;    &lt;br /&gt;    &lt;span class="rem"&gt;'korda kuni saabub failil&amp;#245;pp&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Do&lt;/span&gt; &lt;span class="kwrd"&gt;Until&lt;/span&gt; objFile.AtEndofStream&lt;br /&gt;        strLine = objFile.ReadLine&lt;br /&gt;        &lt;span class="rem"&gt;'kui leiti vaste siis kuva see ekraanile&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; InStr(strLine, strSearchString) &amp;gt;0  &lt;span class="kwrd"&gt;Then&lt;/span&gt; &lt;br /&gt;            WScript.Echo strLine&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Loop&lt;/span&gt;&lt;br /&gt;    objFile.Close &lt;span class="rem"&gt;' sulge loetav fail&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; sub&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8446447125862755479?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8446447125862755479/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/wmi-failist-lugemine.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8446447125862755479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8446447125862755479'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/wmi-failist-lugemine.html' title='WMI: failist lugemine'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8565412814565912215</id><published>2008-09-17T11:09:00.002+03:00</published><updated>2008-09-17T11:19:45.117+03:00</updated><title type='text'>Soovid oma kuubiksateliiti?</title><content type='html'>Paar kuud tagasi oli ajalehtedes uudis, et Eesti tudengid plaanivad ehitada kosmosesateliidi( &lt;a href="http://www.postimees.ee/?id=20733"&gt;loe Postimehest&lt;/a&gt;) . Kuid sellise kuubiksateliidi võib nüüd teha igaüks, sest USA professorid on tulnud mõte peale, et hakkata tootma&lt;a href="http://www.cubesatkit.com/"&gt; kuubiksateliidi komplekti&lt;/a&gt;. CubeSat tuleb odavam, kui ise hakkata sateliiti ehitama. Vajalikud tarkvara ja riistvara on kaasa pandud, sulle jääb välja mõelda rakendus ja leida finantsi, et see kosmosesse toimetada. Sest kuubik maksab ~7000 dollarit, siis kullerteenus kosmosesse on vähemalt 10x kallim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8565412814565912215?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8565412814565912215/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/soovid-oma-kuubiksateliiti.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8565412814565912215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8565412814565912215'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/soovid-oma-kuubiksateliiti.html' title='Soovid oma kuubiksateliiti?'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2905876091812889849</id><published>2008-09-16T22:59:00.003+03:00</published><updated>2008-09-17T00:38:00.784+03:00</updated><title type='text'>Alateadvuse mõjutamine enesele teadmata.</title><content type='html'>&lt;p&gt;    Täna reaalajatarkvaratehnika loengus räägiti kasutajaliidestest. Õppejõud rõhutas fakti, et paljud kasutajaliidesed disainitakse, et kasutaja ei tajuks otseselt  arvuti olemasolu. Näitena toodi lennuki kokpiti, meditsiinilisi seadmeid. Minul kargas millegipärast  pähe Riigikogu hääletussüsteem. Kui kasutajaliidest on võimalik kavandada arvutiolemust varjates, kas siis on võimalik disainida kasutajaliideseid, mis kallutaks meie alateadvust teatud suunas? Juba arvuti olemasolu peitmine on alateadvuse kallutamine.  Disainides Poolt nuppu ahvatlemaks, võiks saada lisa poolt hääli maksude alandamise hääletusel. :D Õnneks tehakse otsused eelnevalt erakonna siseselt ja ma võin selle toimimise riigikogus unustada. &lt;/p&gt;&lt;p&gt;   Mitte aga  võimalust , et kasutajaliidesega on võimalus mõjutada alateadvust ise seda aimamata. Ma ei pea sellist mõjutamist iseenesest halvaks. Instiktiivselt hoomatav kasutajaliides aitab operaatoril kiiremini probleemi lahendada .     Arvestades tänapäeva reklaamitootjate agressiivsust või inimese alateadvuslike reaktsioone võib see muutuda halvaks.  Nt. Poolt ja vastuhääle nupud võivad kiirhääletusel omada kriitilist rolli, inimene ei mõtle põhjalikult oma otsust läbi ja vajutab nuppu instinktiivselt.Ma olen kindel, enamus valib liha, küpse õuna ,  kire värvi = punase. Või firma Coco-Colo soovib promoda oma toodet ning asub sponsorsuhtesse tuntud suhtlusportaalidega või  muusikamängija tootjatega. Sponsorsuhe oleks lihtne-teie saate raha, aga meie tahame teie toote värvilahendus sarnaneks meie toote omaga.&lt;/p&gt;&lt;p&gt;   Inimene läheb poodi.Soodajoogide  juures on tal valida kümneid jooke, kuid ta valib vaid ühe ja seda mitte selle sisu pärast vaid maitsetu ümbrise tõttu.  Vaistlikult valitakse toode, mille värvilahendus sarnaneb hea ja harjutud tootega. Hea ja harjutud tooteks võib  väga vabalt olla kasutajaliides, mida vaatad päevast-päeva või suhtled selle abil mõne lähedase inimesega. Siin mängitaks kõik inimese võimsale omadusele - üldistamisvõime.  &lt;/p&gt;&lt;p&gt;    Meie kirevasse maailma on tekkinud uus tegelane - teadvusehäkker. Mõni neist on isikliku kasu eesmärgil maha müünud hinge ja on muutunud kräkkeriks= viisakama nimega reklaamitootja. Sellele nähtusele ei pöörata ennem tähelepanu kui toimub suur prohmakas. Eriti häirib mind  reklaamid, mis on suunatud kohustuse võtmisele. Nt Selle aastane SEB-i õppelaenu reklaam .Tark ei võta laenu! Siin kräkkerid mängivad tudengite ideaalile : olla tark! .Ükski tudeng  ei taha olla rumal. Minu leivaandja Swedbank(hääldus svedbänk) astub sama rada. Hüüdlause  "Loobuda oleks sõge" juba ütleb, et kõik normaalsed võtavad laenu :D &lt;/p&gt;&lt;p&gt;  Selle näitega tahan rõhutada vajadust piirata sellist reklaami. Sellise reklaami keelamine oleks äärmuslik abinõu. Ma tahaks et arvamusliidrit(koolis õpetajad, kodus vanemad, lehes prominendid)  rõhutaks ja tuletaks meelde mis seisab selliste reklaamide taga.Samas pangad ei tohi  isegi  pingelises konkurentsis ära unustada eetilise äri põhimõtteid. Laen pole leib ja laenu pole vaja igal ühel  võtta. &lt;/p&gt;&lt;p&gt;   Viimastel aastal on inimesed hakkanud rohkem tähelepanu hakkanud pöörama tervisele ja tervislikule toidule.  Ma olen märganud, et poes olen ma tihti eelistanud tooteid, millel on kirjutatud et sisaldab c-vitamiini. Kuid nüüd viimasel ajal olen oma toidusedelit ülevaadanud ja kalkuleerinud. On välja tulnud, et c-vitamiini soovitavat päevakogust ületan mitmekordselt. Selleks ei ole vaja osta tooteid, millel on märge  "sisaldab c-vitamiini". Üldistamisvõime ütleb: vitamiin- see on tervis ja mina tahan olla terve . Sarnane olukord valitseb nn rasvapõletajatega .&lt;/p&gt;&lt;p&gt;   Ma kavatsen ennast edasi jälgida ja näha, mis võivad olla minu otsuste mõjutajad.  Poes kauba valimisel, firmade valikul kuid ka tarkvara valikul.&lt;/p&gt;&lt;p&gt;PS: Seda ülelugedes tundus, et olen sattunud &lt;a href="http://www.davidicke.com/index.php/"&gt;David Icke&lt;/a&gt; mõju valda ja maailma valitsevad ussid  :D .  Õnneks asi pole nii hull, maailma valitseb veel kaine mõistus ja roomajad tegelevad metsas oma asjadega. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2905876091812889849?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2905876091812889849/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/alateadvuse-mjutamine-enesele-teadmata.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2905876091812889849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2905876091812889849'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/alateadvuse-mjutamine-enesele-teadmata.html' title='Alateadvuse mõjutamine enesele teadmata.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2226944371987664150</id><published>2008-09-16T22:28:00.002+03:00</published><updated>2008-09-16T22:54:48.208+03:00</updated><title type='text'>Taasleides Bertrand Russelli raja.</title><content type='html'>&lt;p&gt;Peale tänast loenguteseeriat tundus, tahaks  lugeda midagi mõnusat ja mis paneks kaasa mõtlema. Sirvisin arvutis oma raamatutekataloogi ja hiir jäi seisma &lt;a href="http://et.wikipedia.org/wiki/Bertrand_Russell"&gt;Bertrand Russell&lt;/a&gt;i kataloogil. Selhetkel kui hiir seisis, meenus mulle  hästi kirjutatud esseed, nt "Miks ma pole kirstlane" ja "Mis on hing" . Ja midagi sellist ma tahtsingi lugeda.  Ma imetlen tema kirjutamisstiili ja kui lihtsalt ta oma mõtted välja toob. Suudaks minagi nii...&lt;/p&gt;&lt;p&gt;Oh sa imet, ta ongi kirjutanud essee "How I write", kus ta oma kirjutab kuidas ta kirjutamisstiil välja kujunes ja mis on tema kirjutamisstiili mõjutanud.&lt;/p&gt;&lt;p&gt;Kõik head asjad on lihtsad, nii ka tema soovitused :&lt;/p&gt;&lt;p&gt;1) Ära kasuta keerulisi sõnu kui on võimalik kasutada lihtsamaid. &lt;/p&gt;&lt;p&gt;2)Ära kasuta pikki liitlauseid, jaga need väiksemateks ja lihtsamalt hoovatamaks ehk  kirjuta inimestele.&lt;/p&gt;&lt;p&gt;  Muide tema sõber Logan Pearsall Smith andis talle veel empiirilisemad soovitused. Pane iga 4nda sõna järele koma ning  sidesõna "ja" kasuta vaid lause alguses.&lt;/p&gt;&lt;p&gt; Nüüdsest alates püüan ennast ümber harjutada ja neid soovitusi järgida. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2226944371987664150?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2226944371987664150/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/taasleides-bertrand-russelli-raja.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2226944371987664150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/2226944371987664150'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/taasleides-bertrand-russelli-raja.html' title='Taasleides Bertrand Russelli raja.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-9192228733533809894</id><published>2008-09-10T15:15:00.001+03:00</published><updated>2008-09-10T15:18:14.645+03:00</updated><title type='text'>WMI Code Creator: Koosta kiirelt WMI päring</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tegu on t&amp;#228;nuv&amp;#228;&amp;#228;rt tarkvaraga, mille abil&amp;#160; saab kasutaja paari hiire kl&amp;#245;psu abil koostada skripti,mis p&amp;#228;rib WMI p&amp;#228;ringu abil infot, k&amp;#228;ivitab m&amp;#245;ne WMI meetodi v&amp;#245;i&amp;#160; paigaldab s&amp;#252;ndmuseohjuri. &lt;/p&gt;  &lt;p&gt;T&amp;#246;&amp;#246; alustamiseks tuleb antud tarkvara alla t&amp;#245;mmata. (&lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&amp;amp;displaylang=en"&gt;Lae alla siit&lt;/a&gt; ) ja k&amp;#228;ivitada. K&amp;#228;ivitumine v&amp;#245;tab natuke aega, sest programmike &amp;#252;hendub WMI teenusega ning&amp;#160; laeb WMI klasse, mille p&amp;#245;hjal hakkatakse hiljem p&amp;#228;ringuid koostama.&lt;/p&gt;  &lt;p&gt;P&amp;#228;ringu koostamine on lihtne. Vali soovitud nimeruum (NameSpace) ning selle alla valikkasti tekivad nimeruumi kuuluvate klasside loend, mille liikmeid saad sa hiire kl&amp;#245;psuga valida. Kui valimise aeg all hoida CTRL klahvi, siis saad sa valida&amp;#160; mitut liiget korraga. &lt;/p&gt;  &lt;p&gt;Programm genereerib&amp;#160; liikmete valimise ajal eelnevalt m&amp;#228;&amp;#228;ratletud programmeerimiskeeles koodi k&amp;#245;rvalasuvasse aknasse.&lt;/p&gt;  &lt;p&gt;Vaikimisi kasutatakse skriptikoostamiseks&amp;#160; VBScript&lt;a href="http://lh5.ggpht.com/timgluz/SMe6T4-aaxI/AAAAAAAAAW8/JJzv8uwR6kw/s1600-h/WMICODECreator%5B6%5D.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="WMICODECreator" align="right" src="http://lh5.ggpht.com/timgluz/SMe6Ul4nXzI/AAAAAAAAAXA/1imoxqwYaMw/WMICODECreator_thumb%5B4%5D.png?imgmax=800" width="344" height="223" /&gt;&lt;/a&gt;-i, kuid saab valida ka VB.NET v&amp;#245;i C#. Seda saab muuta k&amp;#228;igupealt eelnevat p&amp;#228;ringut muutmata. Vali men&amp;#252;&amp;#252;st &amp;quot;Code Language&amp;quot; sobiv keel ning sa n&amp;#228;ed Genereeritud koodi aknas on soovitud keeles kood. &lt;/p&gt;  &lt;p&gt;Genereeritud koodi v&amp;#245;id k&amp;#228;ivitada ka programmist. Selleks peab eelnevalt olema p&amp;#228;ring koostatud ning peale koostamist tuleb lihtsalt kl&amp;#245;psida nupul &amp;quot;Execute Code&amp;quot;, mille tulemusena kuvatakse sulle k&amp;#228;surea aken, kus n&amp;#228;ed ka oma p&amp;#228;ringu t&amp;#228;itmist.&lt;/p&gt;  &lt;p&gt;Siiani on&amp;#160; j&amp;#228;&amp;#228;nud r&amp;#228;&amp;#228;kimata programmi keskel asuvast nupust &amp;quot;Search Property Value&amp;quot;, mis v&amp;#245;imaldab sul koheselt n&amp;#228;ha valitud klassi liikme v&amp;#228;&amp;#228;rtust.&lt;/p&gt;  &lt;p&gt;WMI Code Creator pole vaid klassidest info p&amp;#228;rimiseks, selle abil saab ka k&amp;#228;ivitada klassi kuuluvate meetodeid. K&amp;#245;rval oleva pildi peal olen&lt;a href="http://lh5.ggpht.com/timgluz/SMe6UyZm8kI/AAAAAAAAAXE/iWVaaFT4GzQ/s1600-h/WMICODECreator_Execute%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="WMICODECreator_Execute" align="right" src="http://lh5.ggpht.com/timgluz/SMe6VvAX2CI/AAAAAAAAAXI/ylMtvYiL78E/WMICODECreator_Execute_thumb%5B3%5D.png?imgmax=800" width="344" height="223" /&gt;&lt;/a&gt; ma valinud klassi WIn32_OperatingSystemi meetodi Reboot, mille t&amp;#228;itmise tulemusena, mul arvuti tegi taask&amp;#228;ivitumise.&amp;#160; Kuid saab teostada ka katloogide kopeerimist, kustutamist jne...&lt;/p&gt;  &lt;p&gt;N&amp;#252;&amp;#252;d pean &amp;#252;tlema tuntud teleturu lause ja see pole veel k&amp;#245;ik. Kohe peale &amp;quot;execute methodi &amp;quot; aknalipikut, saab k&amp;#228;ivitada ka valitud klassi s&amp;#252;ndmuse. Nt&amp;#160; soovid j&amp;#228;lgida k&amp;#228;imasolevat antiviirustarkvara protsessi ning kui see protsess suletakse,&amp;#160; k&amp;#228;ivitub&amp;#160; s&amp;#252;ndmus, mis omakorda v&amp;#245;ib k&amp;#228;ivitada skripti, nt&amp;#160; hoiata kasutajat, et antud protsessi sulgemine v&amp;#245;ib kahjustada arvuti turvalisust. Kui s&amp;#252;ndmuse &amp;#252;lesseadmiseks pead teadma m&amp;#245;nigaid v&amp;#228;&amp;#228;rtusi, nt antud n&amp;#228;ite korral protsessi nime v&amp;#245;i koodi.&lt;/p&gt;  &lt;p&gt;PS: Harjutamine teeb meistriks.Antud programmist v&amp;#245;iks veel 2meetrit kirjutada,kuid seegi poleks ammendav. &amp;#213;nneks selleks on meil olemas k&amp;#245;igeteadjad otsingumootorid.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-9192228733533809894?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/9192228733533809894/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/wmi-code-creator-koosta-kiirelt-wmi.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/9192228733533809894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/9192228733533809894'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/wmi-code-creator-koosta-kiirelt-wmi.html' title='WMI Code Creator: Koosta kiirelt WMI päring'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/timgluz/SMe6Ul4nXzI/AAAAAAAAAXA/1imoxqwYaMw/s72-c/WMICODECreator_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3974661691674858938</id><published>2008-09-10T14:05:00.001+03:00</published><updated>2008-09-10T14:14:40.454+03:00</updated><title type='text'>Esmamuljed IE8-st</title><content type='html'>&lt;p&gt;Ei ole head- ootasin suuremaid t&amp;#228;iendusi. N&amp;#228;ppides tundus, et IE7 le on lisatud lisavidinaid ja k&amp;#245;ik.Lubatud kiiremat leherenderdamist ma k&amp;#252;ll ei tundnud. Kuna tegu on beeta versiooniga, siis ma t&amp;#246;&amp;#246;kindlusest ei r&amp;#228;&amp;#228;gi, 3-4 crashi tunni jooksul r&amp;#228;&amp;#228;gib oma eest, kuid kiituseks peab &amp;#228;ra mainima, et lisandunud on Eelmise Sessiooni taastaja, kuid miinuseks on see, et taastatakse sessioon, kus viga tekkis ja vigase skriptiga lehel crashib ta uuesti ehk tuleb valgelt lehelt taas alustada. &lt;/p&gt;  &lt;p&gt;Seniste kogemuste p&amp;#245;hjal&amp;#160; ei n&amp;#228;e ma sellele rakendust ja asendust FireFoxile v&amp;#245;i Operale. Tundub, et IE on Achilleus, kes proovib kilpkonna k&amp;#228;tte saada.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3974661691674858938?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3974661691674858938/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/esmamuljed-ie8-st.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3974661691674858938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3974661691674858938'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/esmamuljed-ie8-st.html' title='Esmamuljed IE8-st'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-3296726437284514746</id><published>2008-09-10T11:47:00.002+03:00</published><updated>2008-09-10T12:03:25.300+03:00</updated><title type='text'>Registri väärtuste pärimine skripti abil.</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt&lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Oletame, et sul on olukord, kus on vaja  kindlat infot pärida Windows Registrist(&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Windows_Registry"&gt;loe wikist&lt;/a&gt; ) . Seda kas korduvalt või erinevatest Windows NT põhistest masinatest, siis oleks tüütu otsida antud infot käsitsi kokku koguda ja edasi saata. Ja oletame, et sa ei tea WMI-st mitte tuhkagi ja oled natuke tuttav Basicuga.&lt;/p&gt;&lt;p&gt;Õnneks on selle peale mõeldud.Igal kasutajal, kellel on antud Scripting Hosti kasutamise õigused, saab seda teha lihtsa teksti faili ja CScript või WScript abil( &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Windows_Script_Host"&gt;loe neist Wikist&lt;/a&gt; ).&lt;/p&gt;&lt;p&gt;Koodi kasutamine:&lt;/p&gt;&lt;p&gt;Ava Notepad (&lt;a target="_blank" href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;tiri Notepad++&lt;/a&gt; ), kopeeri allpool olev kood notePadi ning salvesta see fail nimega ComputerRegInfo.vbs nt kettale c:. Nüüd on jäänud siis veel koodi käivitamine CScript C:\ComputerRegInfo ja voila ! Registrist soovitud info on ekraanil.&lt;/p&gt;&lt;p&gt;PS: Kui on soovi lisada Registri väärtusi, siis ava RegEdit (Start&amp;gt;Run&amp;gt;RegEdit) ning otsi registriväärtus, mille väärtust soovid näha. Tee see aktiivseks ning vali menüüst Edit &amp;gt; Copy Key Name . Selle tulemusena kopeeritakse tee registriväärtuseni puhvrisse ning on võimalik kopeerida nt Notepadi.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Koodi näide:&lt;/p&gt;&lt;div style="BACKGROUND: #ffffff; COLOR: #000000"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;--&lt;/b&gt;&lt;/span&gt;Loe registrist infot&lt;span style="color:#a52829;"&gt;&lt;b&gt;-------------------------------------------------------------&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--Autor: Timo Sulg&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--Kuupäev: 2008-09-09&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;Option&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;Explicit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;On&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#008a8c;"&gt;error&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;Resume&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;Next&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;'vea korral jätka&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--muutujate väärtustamine, lohaka/kiire lahenduse puhul pole deklamist vaja&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/span&gt; objShell &lt;span style="color:#0000ff;"&gt;' &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'registri väärtuste viidad&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/span&gt; regActiveComputerName&lt;span style="color:#a52829;"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/span&gt; regComputerName&lt;span style="color:#a52829;"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/span&gt; regHostName&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/span&gt; regHomePath&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/span&gt; ActiveComputerName&lt;span style="color:#a52829;"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/span&gt; ComputerName&lt;span style="color:#a52829;"&gt;&lt;b&gt;,&lt;/b&gt;&lt;/span&gt; HostName&lt;br /&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;Dim&lt;/b&gt;&lt;/span&gt; HomePath&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--tee registriväärtusteni&lt;/span&gt;&lt;br /&gt;regActiveComputerName &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"HKLM\SYSTEM\CurrentControlSet\Control\"&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;&amp;amp; _&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff00ff;"&gt;"ComputerName\ActiveComputerName\ComputerName"&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName&lt;/span&gt;&lt;br /&gt;regComputerName &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"HKLM\SYSTEM\CurrentControlSet\Control"&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;&amp;amp; _&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff00ff;"&gt;"\ComputerName\ComputerName\ComputerName"&lt;/span&gt;&lt;br /&gt;regHostName &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname"&lt;/span&gt;&lt;br /&gt;regHomePath &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;"HKEY_CURRENT_USER\Volatile Environment\HomePath"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--registrist info hankimine&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#a520f7;"&gt;Set&lt;/span&gt; objShell &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#008a8c;"&gt;CreateObject&lt;/span&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;"WScript.Shell"&lt;/span&gt;&lt;span style="color:#a52829;"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;ActiveComputerName &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; objShell&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;RegRead&lt;span style="color:#a52829;"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;regActiveComputerName&lt;span style="color:#a52829;"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;ComputerName &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; objShell&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;RegRead&lt;span style="color:#a52829;"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;regComputerName&lt;span style="color:#a52829;"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;HostName &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; objShell&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;RegRead&lt;span style="color:#a52829;"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;regHostName&lt;span style="color:#a52829;"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;HomePath &lt;span style="color:#a52829;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt; objShell&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;RegRead&lt;span style="color:#a52829;"&gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;regHomePath&lt;span style="color:#a52829;"&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--Kui kompileerida WScript Kood.vbs, siis tulemuse MSgBoxiga&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'--kui kompileerida CScript Kood.vbs, siis tulemus cmd reale&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;'tulemuste väljastamine, &lt;/span&gt;&lt;br /&gt;WScript&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Echo &lt;span style="color:#ff00ff;"&gt;"--Print registry values--"&lt;/span&gt;&lt;br /&gt;WScript&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Echo &lt;span style="color:#ff00ff;"&gt;"active computer name: "&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/span&gt; ActiveComputerName&lt;br /&gt;WScript&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;echo &lt;span style="color:#ff00ff;"&gt;"ComputerName : "&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/span&gt; ComputerName&lt;br /&gt;WScript&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Echo &lt;span style="color:#ff00ff;"&gt;"HostName: "&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/span&gt; HostName&lt;br /&gt;WScript&lt;span style="color:#a52829;"&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Echo &lt;span style="color:#ff00ff;"&gt;"Current user homedir: "&lt;/span&gt; &lt;span style="color:#a52829;"&gt;&lt;b&gt;&amp;amp;&lt;/b&gt;&lt;/span&gt;HomePath&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="BACKGROUND: #ffffff; COLOR: #000000"&gt;&lt;span style="font-family:Courier New;"&gt;Tulemusena peaksid nägema rida nagu allpool oleval pildil kuvatud:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;a href="http://lh5.ggpht.com/timgluz/SMeJlpbDGgI/AAAAAAAAAW0/oTe0GGI6ZZ0/s1600-h/ReadRegistryValues%5B9%5D.png"&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border="0" alt="ReadRegistryValues" src="http://lh3.ggpht.com/timgluz/SMeJmFXvyEI/AAAAAAAAAW4/kEapAhZAT-A/ReadRegistryValues_thumb%5B7%5D.png?imgmax=800" width="244" height="47" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-3296726437284514746?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/3296726437284514746/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/09/registri-vrtuste-primine-skripti-abil.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3296726437284514746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/3296726437284514746'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/09/registri-vrtuste-primine-skripti-abil.html' title='Registri väärtuste pärimine skripti abil.'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/timgluz/SMeJmFXvyEI/AAAAAAAAAW4/kEapAhZAT-A/s72-c/ReadRegistryValues_thumb%5B7%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5218882990493529995</id><published>2008-08-24T16:59:00.002+03:00</published><updated>2008-08-24T17:17:07.024+03:00</updated><title type='text'>Project Euler</title><content type='html'>Pühapäevane ajudrill pärineb Euler Project lehelt. Et aju rebendeid ei tekiks, siis valisin ühe lihtsama ülesande:&lt;br /&gt;&lt;br /&gt;Ülesanne:&lt;br /&gt;&lt;div class="problem_content"&gt;  &lt;p&gt;Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:&lt;/p&gt; &lt;p  style="text-align: center;font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;21&lt;/span&gt; 22 23 24 &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;25&lt;/span&gt;&lt;br /&gt;20  &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;7&lt;/span&gt;  8  &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;9&lt;/span&gt; 10&lt;br /&gt;19  6  &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;1&lt;/span&gt;  2 11&lt;br /&gt;18  &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;5&lt;/span&gt;  4  &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;3&lt;/span&gt; 12&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;17&lt;/span&gt; 16 15 14 &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;13&lt;/span&gt;&lt;/p&gt; &lt;p&gt;It can be verified that the sum of both diagonals is 101.&lt;/p&gt; &lt;p&gt;What is the sum of both diagonals in a 1001 by 1001 spiral formed in the same way?&lt;/p&gt;  &lt;/div&gt;&lt;br /&gt;Kommentaar:&lt;br /&gt;Ülesanne taandub jadadele.&lt;br /&gt;  Mina jagasin iga diagonaali pooleks ja sain kokku 4 jada ning  liitsin jada summad kokku ning lahutasin 3 üleliigset ühte maha. Ainus matemaatiline pingutus on leida kuidas jada väärtused muutuvad ja ongi ülesanne lahendatud.&lt;br /&gt;  Kui eile seda ülesannet lugesin, siis see ei tundunud sugugi nii lihtne, kuid enne uinumist lõi äkki lahendus pähe, tegin kiired märkmed ja asusin aju puhkama . Hommikul kirjutasin nopelt lahenduskägiupaberile, kuid siis vaev ja kannatus hakkas-  minu progemisoskus on veel liiga madal. Näiteks  pusisin tükk aega, miks peavad klassifunktsioonid olema staticut, kas ei piisaks, et vaid main funktsioon on. Kuskilt  kiirelt ma sellele vastust ei leidnud, siis jäigi. Ja otsustasin, et koodi kommentaarid hakkavad edaspidi olema ingliskeelsed, et harjuksin sellega ja ei tasu mõelda et kirjutan koodi vaid endale.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Kood:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; EulerProject&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SpiralDiagonals&lt;br /&gt;&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Main(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;string&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;[] Args)&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"Spiraali diagonaalide summa arvutamine"&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;     Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"Mitme realine spiraal on? "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;     NRows = Convert.ToInt32(Console.ReadLine());&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(NRows%&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ==&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ) NRows/=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows = (NRows+&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)/&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     Sum = SumDiagonals(NRows+&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;     Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"Diagonaaline summa = {0}"&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, Sum.ToString());&lt;br /&gt;&lt;br /&gt;             &lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--find sum of diagonals--------------------------------------------------&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--parameters: NRows - count of rows&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--output: ulong type Sum &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SumDiagonals(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows)&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum =&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//leia alt-parema diagonaali summa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     Sum +=SumBottomRight(NRows);&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//leia alt-vasaku diagonaali summa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     Sum += SumBottomLeft(NRows);&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//leia ülalt-vasaku diagonaali summa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     Sum += SumTopLeft(NRows);&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//leia ülalt-parema diagonaali summa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     Sum += SumTopRight( NRows);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum-(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;3&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;  &lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--find sum of elements on BottomRight diagonal&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SumBottomRight(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows)&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Elem=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; n;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//repeat until index i is equal to NRow&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;( n =&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;; n &amp;lt;NRows; n++)&lt;br /&gt;&lt;br /&gt;     {&lt;br /&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;switch&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(n)&lt;br /&gt;&lt;br /&gt;               {&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                               Elem= &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                               Elem = &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;3&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;                        default:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;                               Elem += (&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;10&lt;/span&gt;&lt;span style="font-size:85%;"&gt;+(n-&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;3&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)*&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;8&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);             &lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;               Sum += (&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) Elem;&lt;br /&gt;&lt;br /&gt;               Console.Write(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"{0}, "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, Elem);&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;   Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;" "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--find sum of elements on BottomLeft diagonal&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SumBottomLeft(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows)&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Elem=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; n ;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//repeat until index i is equal to NRow&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;( n =&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;; n &amp;lt;NRows; n++)&lt;br /&gt;&lt;br /&gt;     {&lt;br /&gt;&lt;br /&gt;                             &lt;br /&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;switch&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(n)&lt;br /&gt;&lt;br /&gt;               {&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                       Elem = &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                       Elem = &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;5&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;default&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                               Elem += &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;12&lt;/span&gt;&lt;span style="font-size:85%;"&gt;+ (n-&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;3&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)*&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;8&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;            &lt;br /&gt;&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;               Sum += (&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) Elem;&lt;br /&gt;&lt;br /&gt;               Console.Write(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"{0}, "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, Elem);&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;   Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;" "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--find sum of elements on TopLeft diagonal&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SumTopLeft(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows)&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Elem=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; n;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//repeat until index i is equal to NRow&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;( n =&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;; n &amp;lt;NRows; n++)&lt;br /&gt;&lt;br /&gt;     {&lt;br /&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;switch&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(n)&lt;br /&gt;&lt;br /&gt;                               {&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                             Elem = &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                                             &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                      Elem = &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;7&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                                          &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;default&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                       Elem += (&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;14&lt;/span&gt;&lt;span style="font-size:85%;"&gt;+(n-&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;3&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)*&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;8&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;                                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               }     &lt;br /&gt;&lt;br /&gt;               Sum +=(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) Elem;&lt;br /&gt;&lt;br /&gt;               Console.Write(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"{0}, "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, Elem);&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;   Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;" "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//--find sum of elements on TopRight diagonal&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; SumTopRight(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; NRows)&lt;br /&gt;&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Elem=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; n;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);font-size:85%;" &gt;//repeat until index i is equal to NRow&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;( n =&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;; n &amp;lt;NRows; n++)&lt;br /&gt;&lt;br /&gt;     {&lt;br /&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;switch&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;(n)&lt;br /&gt;&lt;br /&gt;               {&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                       Elem=&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                                       Elem = &lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;9&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;default&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;:&lt;br /&gt;&lt;br /&gt;                               Elem += (n-&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)*&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;8&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;                               &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;break&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;               Sum +=(&lt;/span&gt;&lt;span style="color: rgb(46, 139, 87);font-size:85%;" &gt;&lt;b&gt;ulong&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;) Elem;&lt;br /&gt;&lt;br /&gt;               Console.Write(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;"{0}, "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, Elem);&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;   Console.WriteLine(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 255);font-size:85%;" &gt;" "&lt;/span&gt;&lt;span style="font-size:85%;"&gt;);&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(165, 42, 42);font-size:85%;" &gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Sum;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5218882990493529995?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5218882990493529995/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/08/project-euler.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5218882990493529995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5218882990493529995'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/08/project-euler.html' title='Project Euler'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1489249544212252155</id><published>2008-08-23T21:25:00.003+03:00</published><updated>2008-08-23T21:52:41.710+03:00</updated><title type='text'>Laupäevane õhtune ülesanne</title><content type='html'>Kui sul laupäeva õhtul on igav , siis võid lahendada üht ülesannet.&lt;br /&gt;Ole hea leia funktsiooni väärtus kohal A(4,1):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/math/0/a/e/0ae4053de098cc9554752b190a38bc56.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://upload.wikimedia.org/math/0/a/e/0ae4053de098cc9554752b190a38bc56.png" alt="" border="0" /&gt;&lt;/a&gt;Kui see leitud, siis proovi leida A(4,2), A(4,3) ning vaata kus maalt arvuti piir tuleb :D&lt;br /&gt;&lt;br /&gt;PS: Ennelahendamist soovitan Wikist lugeda&lt;a href="http://en.wikipedia.org/wiki/Ackermann_function"&gt; Ackermanni funkstioonist&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1489249544212252155?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1489249544212252155/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/08/laupevane-htune-lesanne.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1489249544212252155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1489249544212252155'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/08/laupevane-htune-lesanne.html' title='Laupäevane õhtune ülesanne'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8133641120347994838</id><published>2008-08-22T22:48:00.003+03:00</published><updated>2008-08-22T23:02:25.942+03:00</updated><title type='text'>Topcoder: reede õhtune nokitsemine</title><content type='html'>Kogu töönädal olen istunud  VBA ja Exceli  maailmas ja tuli suur igatsus korraliku progemise järgi ja avasin &lt;a href="http://www.topcoder.com"&gt;topcoder ülesannete arhiivi&lt;/a&gt; ja tegin näpusoojenduseks taas ühe lihtsa ülesande ära:&lt;br /&gt;&lt;br /&gt;Ülesanne:&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Subway trains can move people quickly from one station to the next. It is known that the distance between two consecutive stations is length meters. For safety, the train can't move faster than maxVelocity meters/sec. For comfort, the absolute acceleration can't be larger than maxAcceleration meters/sec^2. The train starts with velocity 0 meters/sec, and it must stop at the next station (i.e., arrive there with a velocity of 0 meters/sec). Return the minimal possible time to get to the next station.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Kommentaarid:&lt;br /&gt;&lt;br /&gt;Ülesanne on lihtne põhikooli füüsika ülesanne.(minul oligi esialgu probleeme valemi meeldetuletamisega, kuid nüüdseks on kiirenduse valemitelt tolm pühitud.)&lt;br /&gt;Tuleb tähelepanna, et rongi tee jaguneb maksimaalselt 3ks erinevaks jupiks - kiirendusefaas, periood, kui sõidetakse maks kiirusega ning lõpuks siis pidurdamisfaas. Ning kui max kiiruse saavutamise teepikkus on suurem kui pool teepikkust, siis koosneb liikumine hoovõtust ja pidurdamisest. Neid fakte arvesse võttes ongi lahendus käes. Alljärgnevalt toon ära ka C# lahenduse.&lt;br /&gt;&lt;br /&gt;Kood:&lt;br /&gt;&lt;div style="background: rgb(255, 255, 255) none repeat scroll 0% 0%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#a52829;"&gt;&lt;b&gt;using&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; System;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//using System.Math;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Subway2&lt;br /&gt;       {&lt;br /&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; minTime(&lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; length, &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; maxAcceleration, &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; maxVelocity)&lt;br /&gt;               {&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; s1 ; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;// kiirendusemaa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//double s2; // max kiirusega sõidetav maa&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; t1; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;// kiirenduse aeg&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; t2; &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//max kiirusega sõitmise aeg&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; totalTime = &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;0&lt;/span&gt;&lt;span style="font-size:85%;"&gt; ;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; v;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#298a52;"&gt;&lt;b&gt;double&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; a;&lt;br /&gt;&lt;br /&gt;                       a= maxAcceleration;&lt;br /&gt;                       v=maxVelocity;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//leia kiirendusmaa, mis kuluks maxkiiruse saavutamiseks&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       s1 = (v*v)/(&lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;*a);&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//kontrolli kas kiirendusmaa on piisav&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#a52829;"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;( &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;*s1 &amp;lt; length)&lt;br /&gt;                       {&lt;br /&gt;                               &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//kui jah, siis leia  t1 ja t2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                               t1= Math.Sqrt( &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;*s1/a);&lt;br /&gt;                               t2 = (length-&lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;*s1) / v;&lt;br /&gt;                               totalTime = &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;* t1 + t2;&lt;br /&gt;                       }&lt;br /&gt;                       &lt;/span&gt;&lt;span style="font-size:85%;color:#a52829;"&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                       {       &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;//kui ei, siis leia vaid t1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;                               t1 = Math.Sqrt(length/a);&lt;br /&gt;                               totalTime = &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;*t1;&lt;br /&gt;                       }&lt;br /&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span style="font-size:85%;color:#a52829;"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; totalTime;&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8133641120347994838?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8133641120347994838/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/08/topcoder-reede-htune-nokitsemine.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8133641120347994838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8133641120347994838'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/08/topcoder-reede-htune-nokitsemine.html' title='Topcoder: reede õhtune nokitsemine'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-5406702469222619945</id><published>2008-08-06T22:32:00.003+03:00</published><updated>2008-08-21T14:19:54.740+03:00</updated><title type='text'>WMI Sissejuhatus töövahenditesse</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.computerperformance.co.uk/images/code/Scriptomatic.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px;" src="http://www.computerperformance.co.uk/images/code/Scriptomatic.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Põgus töövahendite tutvus:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Mina kasutan skriptijooksutamiseks vabavaralist &lt;strong&gt;Scriptomaticut&lt;/strong&gt; &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=09dfc342-648b-4119-b7eb-783b0f7d1178&amp;amp;displaylang=en"&gt;(lae alla siit) &lt;/a&gt;, mille puuduseks on, et koodi ei saa ise kohe tühjalt alustada vaid peab mustandist looma või välise teksti redaktoriga , kuid plussiks on kasutuslihtsus.&lt;/p&gt;&lt;p&gt;Lihtsate ja korduvate infopäringute jaoks saab kasutada vabavaralist &lt;strong&gt;WMICodeCreatorit&lt;/strong&gt;(&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&amp;amp;displaylang=en"&gt;lae alla siit&lt;/a&gt;), mis genereerib sinu poolt väljavalitud nimeruumide ja klasside põhjal skripti ning võimaldab genereeritud koodi  koheselt  jooksutada.&lt;/p&gt;&lt;p&gt;Ülihea mulje on mulle  jätnud  tööriist &lt;strong&gt;PrimalScript&lt;/strong&gt; (&lt;a href="http://www.primalscript.com/"&gt;lae demo alla siit&lt;/a&gt;) , mis annab  võimaluse  kirjutada kood heas IDE-s. Programmi menüü  meenutab ülesehituselt Visual Studiot . Selle tarkvara abil saab päringuid moodustada visuaalset programmeerimist kasutades, inimkeeles lihtsalt hiire abil.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Põhimõtteliselt pole tavakasutajal sellist elukutseliste tööriista  vaja. Piisab  tekstitoimetist, millele  võiks lisatud olla koodi helendamine . Ülejäänud töö jäta ScriptoMaticu hoolde. Mina soovitaks kasutada näiteks &lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;NotePad++&lt;/a&gt;, või &lt;a href="http://www.scintilla.org/SciTE.html"&gt;Scite&lt;/a&gt; .&lt;/p&gt;&lt;p&gt;Kuid koodi on võimalik arendada ka VBE keskkonnas (Ava Excel, Alt+F11) aga sellest hiljem.&lt;/p&gt;&lt;p&gt;Lõpetuseks veel mõningaid WMI tööriistade lingid:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.robvanderwoude.com/wshtools.html"&gt; http://www.robvanderwoude.com/wshtools.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.programurl.com/software/wmi.htm"&gt;http://www.programurl.com/software/wmi.htm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.softomotive.com/"&gt; http://www.softomotive.com/   -graafiline skriptiloomine (demo)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://search.technet.microsoft.com/Default.aspx?query=WMI&amp;amp;brand=technet&amp;amp;locale=en-us&amp;amp;refinement="&gt;TechNet about WMI &lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-5406702469222619945?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/5406702469222619945/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/08/wmi-sissejuhatus-tvahenditesse.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5406702469222619945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/5406702469222619945'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/08/wmi-sissejuhatus-tvahenditesse.html' title='WMI Sissejuhatus töövahenditesse'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-1032742194537780650</id><published>2008-08-05T21:25:00.002+03:00</published><updated>2008-08-06T22:30:50.942+03:00</updated><title type='text'>WMI Sissejuhatus (mustand)</title><content type='html'>&lt;span style="font-size:130%;"&gt;Mis imelik masin see küll olla võib&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; WMI(Windows Management Instrumentation)   nagu nimigi ütleb - tegu on Windowsi Haldamise Vahenditega, mis on Windowsi op.süsteemi üks osa, mille ülesandeks on hoida ja hankida infot tema poolt hallatavate objektide kohta . Seega WMI abil saab juhtida operatsioonisüsteemi, hankida opsüsteemi ja masina kohta käivat infot.&lt;br /&gt;Võrgutugi ja programmeerimisliides(API) lisavad talle võimsust juurde, mis võimaldab töid automatiseerida ning vahetada   infot  üle võrgu. Seda kõike  laialdase programmeerimiskeele valiku juures - mina kavatsen käsitleda VBA, VBScripti ja C# , kuid sama on võimalik Delphi, Pythoni , C++ (COM api) jne vahenditega. Mis tähendab, et kui sa oled ühe programmeerimiskeelega kodus , siis ei pea selleks ektra õppima uut programmeerimisekeelt.&lt;br /&gt;&lt;p&gt;WMI koosneb kahest osast:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;WMI teenus - käitub vahemehena applikatsioonide, infohoidlate ja teenusepakkujate vahel&lt;br /&gt;&lt;/li&gt;&lt;li&gt;WMI infohoidla - hoiab infopäringute jaoks  infohoidlate infot ehk andmebaas.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;WMI põhifunktsioonid:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;sündmuste jälgimine&lt;/li&gt;&lt;li&gt;päringu teostamine - info pärimine SQL sõsarkeele WQL abil&lt;/li&gt;&lt;li&gt;turbe tagamine töökäigus&lt;/li&gt;&lt;li&gt;tegevuste, vigade logimine&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;WMI-ga töötamisel  on tähtis teada mõningaid  CIM(Common Information Model) osasid:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Nimeruum (Namespace ) aka klassideteek - määrab ära kuidas on info on talletatud&lt;/li&gt;&lt;li&gt;Tarnija (Provider) - kasutakse info hankimiseks WMI-st ning juhendite saatmine WMI-le, skriptimise seisukohalt ei pea sa kunagi meelespidama tarnija nime, kuid on kasulikud klassidega tegelemisel.&lt;/li&gt;&lt;li&gt;Klassid - viis kuidas kirjeldatakse objekti.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Lühidalt ülevaade antud ja asuks koodimise juurde, sest praktika käigus kujuneb selgem pilt, millega tegu.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-1032742194537780650?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/1032742194537780650/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/08/wmi-sissejuhatus-mustand.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1032742194537780650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/1032742194537780650'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/08/wmi-sissejuhatus-mustand.html' title='WMI Sissejuhatus (mustand)'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-8794822650620682942</id><published>2008-08-05T20:37:00.007+03:00</published><updated>2008-08-05T21:35:39.732+03:00</updated><title type='text'>WMI  Taustalugu</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;  Möllud möödas ja aeg hakkata tegutsema&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Peagi saab 1aasta päevast kui lubasin&lt;a href="http://www.mug.ee/"&gt; Mug.ee&lt;/a&gt; seltskonnale tutvustada WMI vahendit ja Windows keskkonna skripitimist.&lt;br /&gt; Võtsin&lt;a href="http://www.microsoft.com/MSPress/books/8853.aspx"&gt; raamatu&lt;/a&gt; riiulilt, pühkisin tolmu ja alustasin lugemist.Kahju, et see liiga kauaks tolmu koguma jäi, sest  WMI on hea tööriist. Isegi Windowsi sõbrale kes soovib Windowsist rohkem teada saada , jälgida Windowsi tööd  ja  juhtida töökulgu oma tahtmiste järgi ning  seda  kasvõi üle võrgu ja mitmel arvutil korraga.&lt;br /&gt; Raamatu ja muu materjalide läbitöötamise käigus hakkab siia lehele tekkima mitmeid lühiartikleid ja koodinäiteid, mis idee kohaselt peaks lõppema ühe eduka esitlusega.&lt;br /&gt;  Minu arust on blogi sissekanne selleks kõige parem viis , sest töötan mitmel platvormil ja mõni  on virtualiseeritud. Lihtne oma tööd teistele arvustamiseks näidata ning teistel on võimalik kommentaaridesse lisada häid märkmeid/ viiteid.&lt;br /&gt;  Pean  tööde arvustusi ülitähtsateks, sest ma pole elukutseline Windowsi admin, siis võivad mu artiklid ja lahendused jääda liiga üldiseks või mõni teema jääb puudulikuks&lt;br /&gt;  Publikuks plaanin noori IT-huvilisi ja amatööre, kes soovivad rohkem teadmisi OP-süsteemidest ning õppida natuke rohkem progema. Siit tuleb ka välja  edasised nõudmised - vaja on ainult Windowsit ja tahet, kõik muu tuleb juba harjutamise käigus.  Edasised töövahendid hakkavad olema kas vabavaralised või eelnevalt OP-süsteemiga installitud,mõni koodinäide võib nõuda ka Office olemasolu, kuid sellest juba edaspidi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-8794822650620682942?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/8794822650620682942/comments/default' title='Postita kommentaarid'/><link rel='replies' type='text/html' href='http://timgluz.blogspot.com/2008/08/wmi-10-taustalugu.html#comment-form' title='0 kommentaari'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8794822650620682942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35709118/posts/default/8794822650620682942'/><link rel='alternate' type='text/html' href='http://timgluz.blogspot.com/2008/08/wmi-10-taustalugu.html' title='WMI  Taustalugu'/><author><name>TimGLuz</name><uri>http://www.blogger.com/profile/05561345120617305819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://3.bp.blogspot.com/-mNz3B2stEus/ThXHMr_5UQI/AAAAAAAABXg/8QWt_OCKA00/s220/ff_angrynerd_geekculture_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35709118.post-2355521779940990010</id><published>2008-07-13T15:26:00.006+03:00</published><updated>2008-07-13T18:01:42.664+03:00</updated><title type='text'>Programming Challenges</title><content type='html'>Täna võtsin käsile raamatu &lt;a href="http://www.amazon.com/Programming-Challenges-Steven-S-Skiena/dp/0387001638/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1215952323&amp;amp;sr=8-1"&gt;"Programming Challenges"&lt;/a&gt;, mis annab häid vihjeid ja näpunäiteid mõningate progremisülesande lahendamiseks. Selle raamatu võtsin ette sellepärast, et tahan lahendada keerukamaid algoritme, kui &lt;a href="http://www.topcoder.com/"&gt;Topcoderi&lt;/a&gt; algoritmi võistluse teise divisioni esimesed ülesanded ning lahendada neid kiiremini . Pealegi,  enam pole kaugel Imagine Cup kohalikud voorud. See aasta onplaanis  peale algoritmi võistluse osaleda project hoshimis ning tarkvara disainis, mõlemad vajavad edukaks esinemiseks  laiemat silmaringi  ning teadmisi,  mida koolist ei saa.&lt;br /&gt;PS: Viimase lause esmaeesmärk &lt;a href="http://www.epl.ee/artikkel/434870"&gt;pole kritiseerida Eesti  nõrka haridussüsteem&lt;/a&gt;i, vaid tahan rõhutada fakti, mida lugesin esseest  &lt;a href="http://www.norvig.com/21-days.html"&gt;"Õpi programmeerima 10 aastaga"&lt;/a&gt; , et kool õpetab kasutama vaid pintsleid ning kunstiteosed sünnivad harjutades . Ülesandeid lahendes on parim viis harjutada.&lt;br /&gt;Häid ülesandeid leiab lingilt &lt;a href="http://online-judge.uva.es/"&gt;http://online-judge.uva.es&lt;/a&gt; , olen tähelepannud et Eesti informaatika ülesanded järgivad sarnast ülehitust, kui eelpool mainitud lingil.&lt;br /&gt;&lt;br /&gt;Antud raamatu sissejuhatust lugedes tundsin, et pean märkmeid tegema,siis oleks  kullaterad silme ees ja kuluks igavesti pealuusse ,nagu kommunistlikud lööklaused kommunistlikele noortele, et eesmärk meelest ei ununeks.&lt;br /&gt;Koodistiili meelespead:&lt;br /&gt;* ) kirjuta kommentaarid kõigepealt- alusta igat programmi ja protseduuri selgitusega, mida need teevad . Need aitavad parandada sinu arusaamist koodist ja hiljem teistele. Kommentaarid lisamine tagajärgi on ebamugavam kui eelnevalt.&lt;br /&gt;* ) selgita igat muutujat - kirjuta igale muutujale järgi üherealine kommentaar, mis selgitaks muutujat&lt;br /&gt;*)  kasuta sümbolkonstante - kus iganes ja mil iganes  kasutad oma programmis konstante, kasuta sümbolkonstante ja deklareeri need koodi alguses.&lt;br /&gt;* ) kasuta loendeid (enumerations)  kui selleks vajadust.&lt;br /&gt;*)  kasuta  alamprotseduure, et vältida korduvat koodi&lt;br /&gt;* ) kasuta arusaadavaid ja loetavaid veateateid&lt;br /&gt;&lt;br /&gt;Ehk kokku saan KISS. (Keep It Simple Stupid).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35709118-2355521779940990010?l=timgluz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgluz.blogspot.com/feeds/2355521779940990010/comments/default' title='Postita kommentaarid'/><link rel='r
