<?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:blogger='http://schemas.google.com/blogger/2008' 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-5917380927643064102</id><updated>2024-10-07T06:41:03.752+03:00</updated><category term="javascript"/><category term="c#"/><category term="html"/><category term="class template"/><category term="css"/><category term="SQL Server"/><category term="ajax"/><category term="blogger"/><category term="sqlite"/><category term="webdesign"/><category term="CORS"/><category term="DOM"/><category term="Database"/><category term="MVC"/><category term="XMLHttpRequest"/><category term="asp.net"/><category term="class"/><category term="controls"/><category term="crypto"/><category term="forms"/><category term="html5"/><category term="ie"/><category term="patterns"/><category term="privacy"/><category term="svg"/><category term="tdd"/><category term="template"/><category term="unicode"/><title type='text'>Code reuse</title><subtitle type='html'>My notebook, for not searching through old code to reuse.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-8753858010655760341</id><published>2014-05-29T11:55:00.000+03:00</published><updated>2014-06-03T18:57:16.264+03:00</updated><title type='text'>Web Server in Go</title><content type='html'>&lt;pre class=&quot;prettyprint lang-go&quot; style=&quot;white-space:pre;tab-size:4;&quot;&gt;
package main

import (
&amp;#x0009;&quot;log&quot;
&amp;#x0009;&quot;net/http&quot;
&amp;#x0009;&quot;strings&quot;
)
func handler(w http.ResponseWriter, r *http.Request) {
&amp;#x0009;var sPath string
&amp;#x0009;if r.Method == &quot;GET&quot; {
&amp;#x0009;&amp;#x0009;log.Println(r.URL.Path)
&amp;#x0009;&amp;#x0009;if strings.HasPrefix(r.URL.Path, &quot;/&quot;) {
&amp;#x0009;&amp;#x0009;&amp;#x0009;sPath = r.URL.Path[1:]
&amp;#x0009;&amp;#x0009;} else {
&amp;#x0009;&amp;#x0009;&amp;#x0009;sPath = r.URL.Path
&amp;#x0009;&amp;#x0009;}
&amp;#x0009;&amp;#x0009;http.ServeFile(w, r, sPath)
&amp;#x0009;}
}
func main() {
&amp;#x0009;log.Printf(&quot;About to listen on localhost. Go to http://localhost&quot;)
&amp;#x0009;http.HandleFunc(&quot;/&quot;, handler)
&amp;#x0009;err := http.ListenAndServe(&quot;:80&quot;, nil)
&amp;#x0009;if err != nil {
&amp;#x0009;&amp;#x0009;log.Fatal(&quot;ListenAndServe: &quot;, err)
&amp;#x0009;}
}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/8753858010655760341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2014/05/web-server-in-go.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8753858010655760341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8753858010655760341'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2014/05/web-server-in-go.html' title='Web Server in Go'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-5960385042676979630</id><published>2014-02-03T20:51:00.002+02:00</published><updated>2014-02-03T20:51:54.760+02:00</updated><title type='text'>HTML TreeView</title><content type='html'>&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ20iI58D_TgJlF5pttjUDWACm9HPS0fCMMHCItx0mKJoT0zY7iGMDmLuNbEhCE112v77FyzT3aG-_oMQnl_XRXb3MXsK8uhS3yM-WEuD6ZafBW4OtbBUqp2p2Fwfsl5v5I4eKfEc3TWk/s1600/TreeView.png&quot;&gt;&lt;br&gt;
&lt;a href=&quot;http://pkario.blogspot.com/2014/02/html-treeview.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/5960385042676979630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2014/02/html-treeview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5960385042676979630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5960385042676979630'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2014/02/html-treeview.html' title='HTML TreeView'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ20iI58D_TgJlF5pttjUDWACm9HPS0fCMMHCItx0mKJoT0zY7iGMDmLuNbEhCE112v77FyzT3aG-_oMQnl_XRXb3MXsK8uhS3yM-WEuD6ZafBW4OtbBUqp2p2Fwfsl5v5I4eKfEc3TWk/s72-c/TreeView.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-8620139342653966299</id><published>2013-06-11T20:34:00.003+03:00</published><updated>2013-06-11T20:34:28.007+03:00</updated><title type='text'>Draggable IFRAME</title><content type='html'>Main.html
&lt;pre class=&quot;prettyprint lang-html&quot;&gt;&amp;lt;html&gt;
&amp;lt;head&gt;
&amp;lt;title&gt;Draggable IFrame&amp;lt;/title&gt;
&amp;lt;style&gt;
iframe {
   position:absolute;
   left:300px;
   top:200px;
}
&amp;lt;/style&gt;
&amp;lt;/head&gt;
&amp;lt;body&gt;
&amp;lt;iframe src=&quot;contents.html&quot;&gt;&amp;lt;/iframe&gt;
&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/pre&gt;

Frame Content:contents.html
&lt;pre class=&quot;prettyprint lang-html&quot;&gt;&amp;lt;html&gt;
&amp;lt;head&gt;
&amp;lt;title&gt;Draggable IFrame&amp;lt;/title&gt;
&amp;lt;style&gt;
#header {
   text-align:center;
   background-color:#0ff;
}
&amp;lt;/style&gt;
&amp;lt;/head&gt;
&amp;lt;body&gt;
&amp;lt;div id=&quot;header&quot; class=&quot;draggable&quot;&gt;Title&amp;lt;/div&gt;
&amp;lt;div&gt;this is content&amp;lt;/div&gt;
&amp;lt;script defer src=&quot;IFrame.js&quot;&gt;&amp;lt;/script&gt;
&amp;lt;/body&gt;&amp;lt;/html&gt;&lt;/pre&gt;

IFrame.js
&lt;pre class=&quot;prettyprint lang-javascript&quot;&gt;&quot;use strict&quot;;
var addHandle = function(o){
 o.style.cursor=&quot;move&quot;;
 o.addEventListener(&quot;mousedown&quot;, mousedown, false)
};
var mousedown = function(evt){
 var oStyle = evt.target.ownerDocument.documentElement.style;
 oStyle.WebkitUserSelect = &quot;none&quot;;
 oStyle.MozUserSelect = &quot;none&quot;;
 oStyle.MsUserSelect = &quot;none&quot;;
 oStyle.userSelect = &quot;none&quot;;
 
 evt.target.nX = evt.pageX;
 evt.target.nY = evt.pageY;

 evt.target.addEventListener(&quot;mouseup&quot;, mouseup);
 evt.target.addEventListener(&quot;mousemove&quot;, mousemove);
};
var mouseup = function(evt){
 evt.target.style.cursor = &quot;move&quot;;
 
 var oStyle = evt.target.ownerDocument.documentElement.style;
 oStyle.WebkitUserSelect = &quot;all&quot;;
 oStyle.MozUserSelect = &quot;all&quot;;
 oStyle.MsUserSelect = &quot;all&quot;;
 oStyle.userSelect = &quot;all&quot;;

 evt.target.removeEventListener(&quot;mousemove&quot;, mousemove);
 evt.target.removeEventListener(&quot;mouseup&quot;, mouseup);
};
var mousemove = function(evt){
 var oFrame = window.frameElement;
 var oRect = oFrame.getBoundingClientRect();
 var nX = oRect.left - (evt.target.nX - evt.pageX);
 var nY = oRect.top - (evt.target.nY - evt.pageY);
 nX = (nX &gt;= 0? nX:0);
 nY = (nY &gt;= 0? nY:0);
 
 oFrame.style.left = nX.toString()+&quot;px&quot;;
 oFrame.style.top = nY.toString()+&quot;px&quot;;
};
(function(){
 var Elems = document.getElementsByClassName(&quot;draggable&quot;);
 for (var nPos = 0; nPos &lt; Elems.length; nPos++) {
  addHandle(Elems[nPos]);
 }
})();&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/8620139342653966299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2013/06/draggable-iframe.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8620139342653966299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8620139342653966299'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2013/06/draggable-iframe.html' title='Draggable IFRAME'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-1628426722616311540</id><published>2012-06-08T13:38:00.001+03:00</published><updated>2012-06-08T20:56:49.386+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="privacy"/><title type='text'>Browser Privacy</title><content type='html'>Sites I visit get a lot of info about me that they shouldn&amp;#39;t.

There are 4 levels of privacy while browsing:
&lt;ol&gt;
&lt;li&gt;Everything is in the open. This is the default for all browsers.

&lt;li&gt;Incognito-Privacy mode.&lt;br&gt;
Visits are not stored in browser history.&lt;br&gt;
Cookies are deleted&lt;br&gt;
Flash cookies may be deleted after Flash v10.3
&lt;li&gt;Minimum privacy.&lt;br&gt;
Only session cookies.&lt;br&gt;
Longer duration cookies deleted on browser close.&lt;br&gt;
Browser history is NOT deleted (do NOT use it for porn)&lt;br&gt;
&lt;li&gt;Tor

&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href=&quot;http://pkario.blogspot.com/2012/06/browser-privacy.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/1628426722616311540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2012/06/browser-privacy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1628426722616311540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1628426722616311540'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2012/06/browser-privacy.html' title='Browser Privacy'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-8480894133547817799</id><published>2012-06-07T15:48:00.000+03:00</published><updated>2012-06-07T15:48:23.289+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><category scheme="http://www.blogger.com/atom/ns#" term="html"/><title type='text'>HTML5 rating 1-5</title><content type='html'>&lt;div class=&quot;rating r1&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;rating r2&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;rating r3&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;rating r4&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;rating r5&quot;&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;
&lt;style&gt;
div.rating.r1 td{
 background: -webkit-linear-gradient(top, #8df 0%, #0cf 50%, #06f 100%);
 background: -moz-linear-gradient(top, #8df 0%, #0cf 50%, #06f 100%);
 background: -o-linear-gradient(top, #8df 0%, #0cf 50%, #06f 100%);
 background: -ms-linear-gradient(top, #8df 0%, #0cf 50%, #06f 100%);
}
div.rating.r2 td{
 background: -webkit-linear-gradient(top, #8f8 0%, #0f0 50%, #090 100%);
 background: -moz-linear-gradient(top, #8f8 0%, #0f0 50%, #090 100%);
 background: -o-linear-gradient(top, #8f8 0%, #0f0 50%, #090 100%);
 background: -ms-linear-gradient(top, #8f8 0%, #0f0 50%, #090 100%);
}
div.rating.r3 td{
 background: -webkit-linear-gradient(top, #ff8 0%, #ff0 50%, #aa0 100%);
 background: -moz-linear-gradient(top, #ff8 0%, #ff0 50%, #aa0 100%);
 background: -o-linear-gradient(top, #ff8 0%, #ff0 50%, #aa0 100%);
 background: -ms-linear-gradient(top, #ff8 0%, #ff0 50%, #aa0 100%);
}
div.rating.r4 td{
 background: -webkit-linear-gradient(top, #fda 0%, #f90 50%, #b70 100%);
 background: -moz-linear-gradient(top, #fda 0%, #f90 50%, #b70 100%);
 background: -o-linear-gradient(top, #fda 0%, #f90 50%, #b70 100%);
 background: -ms-linear-gradient(top, #fda 0%, #f90 50%, #b70 100%);
}
div.rating.r5 td{
 background: -webkit-linear-gradient(top, #f88 0%, #f00 50%, #b00 100%);
 background: -moz-linear-gradient(top, #f88 0%, #f00 50%, #b00 100%);
 background: -o-linear-gradient(top, #f88 0%, #f00 50%, #b00 100%);
 background: -ms-linear-gradient(top, #f88 0%, #f00 50%, #b00 100%);
}
div.rating {
 vertical-align:bottom;
 display:inline-block;
 white-space:nowrap;
 font-family:Tahoma, Verdana, Arial;
}
div.rating table{
 width:6em;
 height:1.2em;
 padding:0;
 margin:0 .3em .3em 0;
 border-collapse:separate;
 border-spacing:0;
 table-layout:fixed;
 font-weight:normal;
}
div.rating td {
 border:1px solid;
 border-style:solid;
 border-left-style:none;
 padding:0;
 box-shadow: 0 .14em .2em #999, .2em .2em .2em #999;
}
div.rating.r1 td{
 background-color:#0cf;
 border-color:#06f;
 background: linear-gradient(top, #8df 0%, #0cf 50%, #06f 100%);
}
div.rating.r2 td{
 background-color:#0f0;
 border-color:#080;
 background: linear-gradient(top, #8f8 0%, #0f0 50%, #090 100%);
}
div.rating.r3 td{
 background-color:#ff0;
 border-color:#990;
 background: linear-gradient(top, #ff8 0%, #ff0 50%, #aa0 100%);
}
div.rating.r4 td{
 background-color:#f90;
 border-color:#850;
 background: linear-gradient(top, #fda 0%, #f90 50%, #b70 100%);
}
div.rating.r5 td{
 background-color:#f00;
 border-color:#800;
 background: linear-gradient(top, #f88 0%, #f00 50%, #b00 100%);
}
div.rating.r1 td:nth-child(3),
div.rating.r1 td:nth-child(4),
div.rating.r1 td:nth-child(5),
div.rating.r1 td:nth-child(6),
div.rating.r2 td:nth-child(4),
div.rating.r2 td:nth-child(5),
div.rating.r2 td:nth-child(6),
div.rating.r3 td:nth-child(5),
div.rating.r3 td:nth-child(6),
div.rating.r4 td:nth-child(6) {
 background-image:none;
 background-color:#eee;
 background: -webkit-linear-gradient(top, #fff 0%, #ddd 50%, #aaa 100%);
 background: -moz-linear-gradient(top, #fff 0%, #ddd 50%, #aaa 100%);
 background: -o-linear-gradient(top, #fff 0%, #ddd 50%, #aaa 100%);
 background: -ms-linear-gradient(top, #fff 0%, #ddd 50%, #aaa 100%);
 background: linear-gradient(top, #fff 0%, #ddd 50%, #aaa 100%);
}
/*①②③④⑤*/
div.rating td:first-child{
 font-size:.9em;
 border-top-left-radius:.6em;
 border-bottom-left-radius:.6em;
 text-align:center;
 width:1em;
 border-width:1px;
 border-style:solid;
 background-color:#eee;
 background-image:none;
 box-shadow:.2em .2em .2em #999;
}
div.rating.r1 td:first-child:before{content:&amp;quot;1&amp;quot;;}
div.rating.r2 td:first-child:before{content:&amp;quot;2&amp;quot;;}
div.rating.r3 td:first-child:before{content:&amp;quot;3&amp;quot;;}
div.rating.r4 td:first-child:before{content:&amp;quot;4&amp;quot;;}
div.rating.r5 td:first-child:before{content:&amp;quot;5&amp;quot;;}
&lt;/style&gt;&lt;br&gt;
&lt;a href=&quot;http://pkario.blogspot.com/2012/06/html5-rating-1-5.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/8480894133547817799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2012/06/html5-rating-1-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8480894133547817799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8480894133547817799'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2012/06/html5-rating-1-5.html' title='HTML5 rating 1-5'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-2426887875745424904</id><published>2011-08-08T15:50:00.002+03:00</published><updated>2011-08-24T12:49:38.414+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="tdd"/><title type='text'>Javascript Unit Testing TDD</title><content type='html'>&lt;img border=&quot;0&quot; height=&quot;223&quot; width=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1XpmdJriZV7Xahy4X3MBgRVVH1UbZObIFy27WIop4jV8-bpi32GxUPUQAAY8BKP-_4Yq2Y3BpBfwm8WdPXpSHJDousmN0g6BA9dKCG8TD6skTfCt27pnH4Ydy2ngxh3qKUAgzzo3nQjo/s400/UnitTest.png&quot; style=&quot;float:left;&quot;&gt;
A simple HTML Page that runs all your unit tests (Only Is.Equal is implemented but more are coming).&lt;br&gt;
The web app should be build as MVC or at least have a distinct Model (set of .js files). 
&lt;a href=&quot;http://pkario.blogspot.com/2011/08/javascript-unit-testing-tdd.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/2426887875745424904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/08/javascript-unit-testing-tdd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2426887875745424904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2426887875745424904'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/08/javascript-unit-testing-tdd.html' title='Javascript Unit Testing TDD'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1XpmdJriZV7Xahy4X3MBgRVVH1UbZObIFy27WIop4jV8-bpi32GxUPUQAAY8BKP-_4Yq2Y3BpBfwm8WdPXpSHJDousmN0g6BA9dKCG8TD6skTfCt27pnH4Ydy2ngxh3qKUAgzzo3nQjo/s72-c/UnitTest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-8628826916343536660</id><published>2011-07-21T13:37:00.000+03:00</published><updated>2011-07-21T13:37:00.425+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="class"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="template"/><title type='text'>Javascript Class Template</title><content type='html'>&lt;pre class=&quot;prettyprint js&quot;&gt;function Person(oInit) {
    this.Clear();
    if (typeof oInit === &amp;quot;object&amp;quot;) { this.Init(oInit); }
    this.Init(oInit)
}
Person.sId = &amp;quot;Party&amp;quot;;
Person.sColor = &amp;quot;#00f&amp;quot;;
Person.sIcon = &amp;quot;../img/user_suit.png&amp;quot;;

Person.prototype.Clear = function () {
    this.nkPer = 0;
    this.rvPer = 0;
    this.sPerLNm = &amp;quot;&amp;quot;;
    this.sPerEml = &amp;quot;&amp;quot;;
};&lt;/pre&gt;&lt;a href=&quot;http://pkario.blogspot.com/2011/07/javascript-class-template.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/8628826916343536660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/07/javascript-class-template.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8628826916343536660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/8628826916343536660'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/07/javascript-class-template.html' title='Javascript Class Template'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-5727323120667978455</id><published>2011-06-27T17:22:00.000+03:00</published><updated>2011-06-27T17:22:52.913+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>String.prototype javascript</title><content type='html'>&lt;pre class=&quot;prettyprint lang-js&quot;&gt;
String.prototype.PadLeft = function (nLen, sPad) {
    if (typeof sPad !== &quot;string&quot;) sPad = &quot; &quot;;
    if (typeof nLen !== &quot;number&quot;) nLen = 2;
    var sResult = this;
    while (sResult.length &lt; nLen) sResult = sPad + sResult;
    return sResult;
};
String.prototype.PadRight = function(sPad, nLen) {
    if (typeof sPad !== &quot;string&quot;) sPad = &quot; &quot;;
    if (typeof nLen !== &quot;number&quot;) nLen = 2;
    var sResult = this;
    while (sResult.length &lt; nLen) sResult += sPad;
    return sResult;
};
String.prototype.Trim = function () {
    return this.replace(/^\s+|\s+$/g, &quot;&quot;);
};
String.prototype.TrimLeft = function () {
    return this.replace(/^\s+/, &quot;&quot;);
};
String.prototype.TrimRight = function () {
    return this.replace(/\s+$/, &quot;&quot;);
};
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/5727323120667978455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/06/stringprototype-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5727323120667978455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5727323120667978455'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/06/stringprototype-javascript.html' title='String.prototype javascript'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-5122426756681889065</id><published>2011-06-27T17:20:00.000+03:00</published><updated>2011-06-27T17:20:41.951+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Date.prototype javascript</title><content type='html'>&lt;pre class=&quot;prettyprint lang-js&quot;&gt;
Date.prototype.Format = function (sFormat) {
    if (typeof sFormat !== &quot;string&quot;) 
        return this.getFullYear().toString() + 
               (this.getMonth() + 1).toString().PadLeft(&quot;0&quot;, 2) +
               this.getDate().toString().PadLeft(&quot;0&quot;, 2);
    var that = this;
    return sFormat.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?/g,
    function (sFormat) {
        switch (sFormat) {
        case &quot;yyyy&quot;: return that.getFullYear().toString();
        case &quot;yy&quot;: return that.getFullYear().toString().substring(2, 4);
        case &quot;MM&quot;: return (that.getMonth() + 1).toString().PadLeft(2, &quot;0&quot;);
        case &quot;dd&quot;: return that.getDate().toString().PadLeft(2, &quot;0&quot;);
        case &quot;hh&quot;: return (that.getHours() &lt;= 12 ? that.getHours() : 
                   (that.getHours() - 12)).toString().PadLeft(2, &quot;0&quot;);
        case &quot;HH&quot;: return that.getHours().toString().PadLeft(2, &quot;0&quot;);
        case &quot;mm&quot;: return that.getMinutes().toString().PadLeft(2, &quot;0&quot;);
        case &quot;ss&quot;: return that.getSeconds().toString().PadLeft(2, &quot;0&quot;);
        case &quot;M&quot;: return (that.getMonth() + 1).toString();
        case &quot;d&quot;: return that.getDate().toString();
        case &quot;h&quot;: return (that.getHours() &lt;= 12 ? that.getHours() : 
                  (that.getHours() - 12)).toString();
        case &quot;H&quot;: return that.getHours().toString();
        case &quot;m&quot;: return tht.getMinutes().toString();
        case &quot;s&quot;: return that.getSeconds().toString();
        }
    });
};

&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/5122426756681889065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/06/dateprototype-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5122426756681889065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5122426756681889065'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/06/dateprototype-javascript.html' title='Date.prototype javascript'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-1211274470374887289</id><published>2011-05-30T12:43:00.007+03:00</published><updated>2011-08-20T18:23:24.130+03:00</updated><title type='text'>Color Wheels</title><content type='html'>Simplified Color Wheels for Natural Color System&lt;figure&gt;&lt;svg width=&quot;250&quot; height=&quot;250&quot; viewBox=&quot;-100 -100 200 200&quot;&gt;
&lt;path fill=&quot;#f00&quot; stroke=&quot;#600&quot; d=&quot;M0 0 L-70 -70 A100 100 0 0 1  70  -70 z&quot;/&gt;
&lt;path fill=&quot;#ff0&quot; stroke=&quot;#660&quot; d=&quot;M0 0 L 70 -70 A100 100 0 0 1  70   70 z&quot;/&gt;
&lt;path fill=&quot;#0f0&quot; stroke=&quot;#060&quot; d=&quot;M0 0 L 70  70 A100 100 0 0 1 -70   70 z&quot;/&gt;
&lt;path fill=&quot;#00f&quot; stroke=&quot;#006&quot; d=&quot;M0 0 L-70  70 A100 100 0 0 1 -70  -70 z&quot;/&gt;
&lt;text x=&quot;0&quot; y=&quot;-80&quot;&gt;f00&lt;/text&gt;
&lt;text x=&quot;80&quot; y=&quot;0&quot;&gt;ff0&lt;/text&gt;
&lt;text x=&quot;0&quot; y=&quot;80&quot;&gt;0f0&lt;/text&gt;
&lt;text x=&quot;-80&quot; y=&quot;0&quot; fill=&quot;#fff&quot;&gt;00f&lt;/text&gt;
&lt;/svg&gt;&lt;figcaption&gt;Primary Colors (R-G, B-Y): 4&lt;/figcaption&gt;&lt;/figure&gt;
&lt;a href=&quot;http://pkario.blogspot.com/2011/05/color-wheels.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/1211274470374887289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/05/color-wheels.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1211274470374887289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1211274470374887289'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/05/color-wheels.html' title='Color Wheels'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-2114479857436044273</id><published>2011-04-12T19:56:00.000+03:00</published><updated>2011-04-12T19:56:52.214+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="class template"/><title type='text'>C# Collection Class Template</title><content type='html'>Use this class as a template for Collection classes.&lt;br&gt;
This is the class &lt;code&gt;Persons&lt;/code&gt; to accompany the class &lt;code&gt;Person&lt;/code&gt;.
&lt;a href=&quot;http://pkario.blogspot.com/2011/04/c-collection-class-template.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/2114479857436044273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/04/c-collection-class-template.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2114479857436044273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2114479857436044273'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/04/c-collection-class-template.html' title='C# Collection Class Template'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-2197485282195579372</id><published>2011-04-12T19:51:00.000+03:00</published><updated>2011-04-12T19:57:16.280+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="class template"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Javascript Collection Class</title><content type='html'>Javascript does not need a Template for Connection Classes.&lt;br&gt;
One Class fits all!&lt;br&gt;
Items.js:
&lt;a href=&quot;http://pkario.blogspot.com/2011/04/javascript-collection-class.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/2197485282195579372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/04/javascript-collection-class.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2197485282195579372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2197485282195579372'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/04/javascript-collection-class.html' title='Javascript Collection Class'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-3256758416930033580</id><published>2011-04-10T19:34:00.000+03:00</published><updated>2011-04-10T19:34:17.416+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="class template"/><title type='text'>C# class template</title><content type='html'>Template for a business class in C#.&lt;br&gt;
The example is the &amp;quot;Party&amp;quot; from the &amp;quot;Party-Person-Organization&amp;quot; pattern.&lt;a href=&quot;http://pkario.blogspot.com/2011/04/c-class-template.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/3256758416930033580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/04/c-class-template.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3256758416930033580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3256758416930033580'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/04/c-class-template.html' title='C# class template'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-1731888217086816381</id><published>2011-04-10T14:19:00.000+03:00</published><updated>2011-04-10T19:36:39.764+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="CORS"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="XMLHttpRequest"/><title type='text'>CORS Cross Origin Resource Sharing Javascript</title><content type='html'>For many years we were stuck with JSONP if we needed to make a cross domain query.&lt;br&gt;
JSONP was OK except for one major point:
The amount of data to send where limited by max URL length and then again it had to be URI encoded.&lt;br&gt;
Now we have a solution supported by all browsers except IE7 &amp;amp; Opera (for some reason).
&lt;a href=&quot;http://pkario.blogspot.com/2011/04/cors-cross-origin-resource-sharing.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/1731888217086816381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/04/cors-cross-origin-resource-sharing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1731888217086816381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1731888217086816381'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/04/cors-cross-origin-resource-sharing.html' title='CORS Cross Origin Resource Sharing Javascript'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-7533375897776067911</id><published>2011-04-05T13:48:00.001+03:00</published><updated>2011-04-06T10:18:10.002+03:00</updated><title type='text'>Google Translate using JSONP</title><content type='html'>We have a web page.&lt;br&gt;
In this page there is a set of Fields (input-text/ textarea) with Greek (or whatever google supports) text content.&lt;br&gt;
There are some corresponding Fields where we like to have the english translation.&lt;br&gt;
First get a key from &lt;a href=&quot;http://code.google.com/apis/console&quot;&gt;Google API console&lt;/a&gt;&lt;br&gt;
You have to remember that max URL length is 2038 characters for IE, that gives less than 1K for the string to translate. You can get more (a lot) from chrome, firefox, opera (&gt;64K).&lt;br&gt;
Google says that you can to it with POST instead of GET, but that is another post.&lt;br&gt;
&lt;a href=&quot;http://pkario.blogspot.com/2011/04/google-translate-using-jsonp.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/7533375897776067911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/04/google-translate-using-jsonp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/7533375897776067911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/7533375897776067911'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/04/google-translate-using-jsonp.html' title='Google Translate using JSONP'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-5065171573863089338</id><published>2011-03-28T16:12:00.014+03:00</published><updated>2017-01-16T09:00:34.156+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="unicode"/><title type='text'>Special Characters for HTML</title><content type='html'>Special characters with their HTML code like: &lt;div style=&quot;font-size: 3em;&quot;&gt;½ ¼ ¾ © ® ™ ℗&lt;/div&gt;Unicode characters that have not HTML codes but can be used in HTML Pages like:  &lt;div style=&quot;font-size: 3em;&quot;&gt;☎ ✉ ✔ ☒ ✖&lt;/div&gt;
&lt;a href=&quot;http://pkario.blogspot.com/2011/03/special-characters-for-html.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/5065171573863089338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/03/special-characters-for-html.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5065171573863089338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/5065171573863089338'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/03/special-characters-for-html.html' title='Special Characters for HTML'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-3219665794607577318</id><published>2011-03-13T11:38:00.007+02:00</published><updated>2011-03-31T17:17:02.093+03:00</updated><title type='text'>HTML5 Sticky Footer</title><content type='html'>Table layouts are fine for the nonconformists among us.&lt;br&gt;
But there are cases we realy need a CSS layout. Like when we have to rearrange the layout depending on the window size of the browser, to accommodate everything from mobile browsers to extra wide monitors.&lt;br&gt;
Here is a &lt;strong&gt;Sticky Footer&lt;/strong&gt; CSS layout.&lt;br&gt;
&lt;a href=&quot;http://pkario.blogspot.com/2011/03/html5-sticky-footer.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/3219665794607577318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/03/html5-sticky-footer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3219665794607577318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3219665794607577318'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/03/html5-sticky-footer.html' title='HTML5 Sticky Footer'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-1607208732474309870</id><published>2011-01-09T11:55:00.012+02:00</published><updated>2011-03-31T17:23:00.982+03:00</updated><title type='text'>Reference</title><content type='html'>CSS drop caps&lt;br&gt;
Various Font Stacks&lt;br&gt;
and more&amp;hellip;
&lt;a href=&quot;http://pkario.blogspot.com/2011/01/reference.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/1607208732474309870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2011/01/reference.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1607208732474309870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/1607208732474309870'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2011/01/reference.html' title='Reference'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-4168340622084105172</id><published>2010-12-10T18:28:00.006+02:00</published><updated>2011-04-10T19:48:42.293+03:00</updated><title type='text'>Protect post from copy paste</title><content type='html'>Friends keep asking me how to protect their blog posts from being copied.&lt;br&gt;
As you can see I have no protection for my blogs because I think that the effort is futile.
I&amp;#39;v seen posts of mine plainly copied in other blogs. In some cases they give a reference to my blog, and for those I am really happy.&lt;br&gt;
In other cases they have no reference even though they just copied and pasted without any work of their own.&lt;br&gt;
Still, my friends want to restrict copy-paste, so I prepared a list of the available solutions:
&lt;a href=&quot;http://pkario.blogspot.com/2010/12/protect-post-from-copy.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/4168340622084105172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/12/protect-post-from-copy.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/4168340622084105172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/4168340622084105172'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/12/protect-post-from-copy.html' title='Protect post from copy paste'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-3329224437875201203</id><published>2010-12-09T20:16:00.004+02:00</published><updated>2010-12-11T19:47:48.828+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>Database Version Control</title><content type='html'>There are two types of projects I am involved in these days. 
&lt;ol&gt;&lt;li&gt;Custom enterprise applications where we design the database and manage it.&lt;/li&gt;
&lt;li&gt;Web applications, that we host, where each customer has his own copy of the database.&lt;/li&gt;
&lt;/ol&gt;
In both cases there are many copies of the database installed.
&lt;ul&gt;
&lt;li&gt;Developer databases&lt;/li&gt;
&lt;li&gt;Test database (both internal and customer)&lt;/li&gt;
&lt;li&gt;Production database&lt;/li&gt;
&lt;/ul&gt;
It is obvious that these databases should be under some Version Control so that can be easily synchronized.&lt;br&gt;
Usually when a database is upgraded, a new version of the application is issued. If only one application is using the database then application-database sync is easy.&lt;br&gt;
When multiple applications are using the same database then this problem is quite difficult to solve.&lt;br&gt;This is my solution to database versioning problem:
&lt;a href=&quot;http://pkario.blogspot.com/2010/12/database-version-control.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/3329224437875201203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/12/database-version-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3329224437875201203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3329224437875201203'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/12/database-version-control.html' title='Database Version Control'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-6419761909616279313</id><published>2010-11-23T16:41:00.005+02:00</published><updated>2010-12-11T19:56:04.751+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="controls"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="svg"/><title type='text'>SVG Javascript with events</title><content type='html'>I need a widget displaying the months of the year. I implemented using SVG and not by Canvas because I needed the capability of SVG to assign events to any element of the picture.
&lt;ul&gt;
&lt;li&gt;The user should be able to select a month by clicking on it
&lt;li&gt;The widget should give an event for every month change
&lt;li&gt;The user should be able to deselect a month by clicking on it or at the center of the wheel.

It really works! Try it.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href=&quot;http://pkario.blogspot.com/2010/11/svg-javascript-with-events.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/6419761909616279313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/11/svg-javascript-with-events.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/6419761909616279313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/6419761909616279313'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/11/svg-javascript-with-events.html' title='SVG Javascript with events'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-4216107282187851592</id><published>2010-11-08T16:36:00.004+02:00</published><updated>2011-04-12T19:58:14.712+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="sqlite"/><title type='text'>sqlite c# wrapper usage</title><content type='html'>I wanted to use sqlite from C# and I created a wrapper. The wrapper was published in the previous post:&lt;a href=&quot;http://pkario.blogspot.com/2010/11/sqlite-c-wrapper.html&quot;&gt;Sqlite c# wrapper&lt;/a&gt;.&lt;br&gt;
I found some nice projects doing almost the same thing but I wanted to be able to use 
the latest version of sqlite just as it comes out of the pipeline.&lt;br&gt;
I hate it when I have to wait for months for the latest version to be ported to the environment I use for development.
&lt;a href=&quot;http://pkario.blogspot.com/2010/11/sqlite-cs-wrapper-usage.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/4216107282187851592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/11/sqlite-cs-wrapper-usage.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/4216107282187851592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/4216107282187851592'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/11/sqlite-cs-wrapper-usage.html' title='sqlite c# wrapper usage'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-130361899163318528</id><published>2010-11-08T16:35:00.003+02:00</published><updated>2011-04-12T19:58:14.712+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="sqlite"/><title type='text'>sqlite c# wrapper</title><content type='html'>Here are the classes to include in your C# project, so that you can use &lt;strong&gt;sqlite&lt;/strong&gt;.
The classes should work without problem with &lt;strong&gt;sqlite version 3.7.4 2010-12-08&lt;/strong&gt;.&lt;br&gt;
If you find any problem you can mail me at &lt;span style=&quot;unicode-bidi:bidi-override;direction:rtl;font-style:italic;&quot;&gt;moc.liamg@oirakp&lt;/span&gt; (do not copy paste, it is written rtl and set ltr by CSS)  or you can leave a message. I you need a feature, that I did not implement, you can tell me, but no promises here.&lt;br&gt;
The usage of the classes is covered in the next post: &lt;a href=&quot;http://pkario.blogspot.com/2010/11/sqlite-cs-wrapper-usage.html&quot;&gt;Sqlite c# usage&lt;/a&gt;.
&lt;a href=&quot;http://pkario.blogspot.com/2010/11/sqlite-c-wrapper.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/130361899163318528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/11/sqlite-c-wrapper.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/130361899163318528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/130361899163318528'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/11/sqlite-c-wrapper.html' title='sqlite c# wrapper'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-3802086041622539753</id><published>2010-11-05T19:34:00.001+02:00</published><updated>2010-12-11T20:57:46.950+02:00</updated><title type='text'>Div based Infobox with CSS3</title><content type='html'>&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnXmj9ikYYeAovXRThero8Mqb8KKlfjKkf6ktH8Hb4k9RN3h0xK8gmqH4XF5ImlgVg-0Y1Jrkh364K506A1WHi6u4T5YL7yufhy2gV4kwIxM6hnXMPhoa5LnKR65GSsVFEyD4W4qBY1eo/s1600/InfoboxDiv.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;float:left;&quot;&gt;
&lt;h4&gt;html:&lt;/h4&gt;
&lt;pre class=&quot;prettyprint lang-html&quot;&gt;&amp;lt;div class=&amp;quot;infobox&amp;quot;
&amp;gt;&amp;lt;div class=&amp;quot;head&amp;quot;&amp;gt;Titlos&amp;lt;/div
&amp;gt;&amp;lt;div class=&amp;quot;body&amp;quot;&amp;gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam ut mi imperdiet nibh laoreet porta at ut felis. 
Etiam cursus diam a justo lobortis congue. 
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. 
Fusce ac pellentesque eros. 
Aenean porta sem id lectus cursus luctus. 
Maecenas sagittis augue non enim laoreet congue. 
Maecenas pretium varius nulla non molestie. 
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;a href=&quot;http://pkario.blogspot.com/2010/11/div-based-infobox-with-css3.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/3802086041622539753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/11/div-based-infobox-with-css3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3802086041622539753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/3802086041622539753'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/11/div-based-infobox-with-css3.html' title='Div based Infobox with CSS3'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnXmj9ikYYeAovXRThero8Mqb8KKlfjKkf6ktH8Hb4k9RN3h0xK8gmqH4XF5ImlgVg-0Y1Jrkh364K506A1WHi6u4T5YL7yufhy2gV4kwIxM6hnXMPhoa5LnKR65GSsVFEyD4W4qBY1eo/s72-c/InfoboxDiv.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5917380927643064102.post-2714297494295767509</id><published>2010-09-28T12:47:00.001+03:00</published><updated>2010-12-11T20:59:02.696+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ie"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Javascript event handling (all browsers except ie7)</title><content type='html'>&lt;div&gt;Now that IE9 supports &lt;code&gt;addEventListener&lt;/code&gt; and IE7&amp;#39;s market share is diminishing (goodle analytics tell me that ie7 and older is at 14% and loses 2% per month).&lt;/div&gt;
If we can support ie8 (@31%) we can forever forget attachEvent.&lt;br&gt;
That mean we support all current browsers but not ie7 and older.&lt;a href=&quot;http://pkario.blogspot.com/2010/09/javascript-event-handling-all-browsers.html#more&quot;&gt;Keep reading...&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pkario.blogspot.com/feeds/2714297494295767509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pkario.blogspot.com/2010/09/javascript-event-handling-all-browsers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2714297494295767509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5917380927643064102/posts/default/2714297494295767509'/><link rel='alternate' type='text/html' href='http://pkario.blogspot.com/2010/09/javascript-event-handling-all-browsers.html' title='Javascript event handling (all browsers except ie7)'/><author><name>pavlos</name><uri>http://www.blogger.com/profile/10130117299945039145</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>