<?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-1245842140842952559</id><updated>2011-11-27T05:49:29.592+02:00</updated><category term='C#'/><category term='Google API'/><category term='Picasa'/><category term='Mootools'/><category term='Job Interview'/><category term='open source'/><category term='Blogger'/><category term='WinForm'/><category term='Javascript'/><category term='.NET'/><category term='HTML'/><title type='text'>Programming</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-7643122538076110650</id><published>2009-05-04T00:40:00.007+03:00</published><updated>2009-05-04T00:54:47.733+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Attach multiple functions to events</title><content type='html'>&lt;div class="title"&gt;Attach multiple functions to events&lt;/div&gt;
&lt;h3&gt;Attach multiple functions to events&lt;/h3&gt;
&lt;div&gt;The function that need to place some wear on page:&lt;/div&gt;
&lt;br&gt;
&lt;div style=" margin-right: 0px; margin-left: 0px"&gt;&lt;span style="color: rgb(0, 0, 153)"&gt;function&lt;/span&gt;&lt;font size="1"&gt;&amp;nbsp;addEvent(obj, evType, fn)&lt;br&gt;
{&lt;/font&gt;
&lt;div style=" margin-right: 0px; margin-left: 20px"&gt;&lt;span style="color: rgb(0, 0, 153)"&gt;if&lt;/span&gt;&amp;nbsp;(obj.addEventListener)&lt;br&gt;
{
&lt;div style=" margin-right: 0px; margin-left: 20px"&gt;obj.addEventListener(evType, fn,&amp;nbsp;&lt;span style="color: rgb(0, 0, 153)"&gt;false&lt;/span&gt;);&lt;br&gt;
&lt;span style="color: rgb(0, 0, 153)"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: rgb(0, 0, 153)"&gt;true&lt;/span&gt;;&lt;/div&gt;
}&lt;br&gt;
&lt;span style="color: rgb(0, 0, 153)"&gt;else if&lt;/span&gt;&amp;nbsp;(obj.attachEvent)&lt;br&gt;
{
&lt;div style=" margin-right: 0px; margin-left: 20px"&gt;&lt;span style="color: rgb(0, 0, 153)"&gt;var&lt;/span&gt;&amp;nbsp;r = obj.attachEvent("&lt;span style="color: rgb(204, 153, 51)"&gt;on&lt;/span&gt;"+evType, fn);&lt;br&gt;
&lt;span style="color: rgb(0, 0, 153)"&gt;return&lt;/span&gt;&amp;nbsp;r;&lt;/div&gt;
}&lt;br&gt;
&lt;span style="color: rgb(0, 0, 153)"&gt;else&lt;/span&gt;&lt;br&gt;
{
&lt;div style=" margin-right: 0px; margin-left: 20px"&gt;&lt;span style="color: rgb(0, 0, 153)"&gt;return false&lt;/span&gt;;&lt;/div&gt;
}&lt;/div&gt;
&lt;font size="1"&gt;}&lt;/font&gt;&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;font size="2"&gt;Sample to call the function:&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;div style=" margin-right: 0px; margin-left: 0px"&gt;&lt;font size="2"&gt;addEvent(window, 'load', functionName);&lt;/font&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer" style=" margin-right: 0px; margin-left: 0px"&gt;&lt;img width="1" height="1" src="http://res1.blogblog.com/tracker/1245842140842952559-4585229201845711241?l=panshin-programming.blogspot.com" style=" margin-right: 0px; margin-left: 0px"&gt;&lt;/div&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1245842140842952559-7643122538076110650?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/7643122538076110650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=7643122538076110650' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/7643122538076110650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/7643122538076110650'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2009/05/attach-multiple-functions-to-events.html' title='Attach multiple functions to events'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-8210319848382571750</id><published>2009-05-04T00:40:00.005+03:00</published><updated>2009-05-04T00:56:30.094+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Job Interview'/><title type='text'>.NET Internationalization with databa...</title><content type='html'>&lt;div class="title"&gt;NET Internationalization with database resource provider and custom cultures&lt;/div&gt;
&lt;h3&gt;.NET Internationalization with database resource provider and custom cultures&lt;/h3&gt;
&lt;font size="2"&gt;Database storage is a popular option for Web-application resources, for a number of reasons. You can probably guess, at some point with a site that has thousands of pages and multiple-thousand resource entries, using assembly resources might not be ideal. It will add to run-time memory usage, not to mention the increased number of assemblies loaded into the application domain. Both of these results can have a negative impact on performance for extremely large sites, making the latency of a database call worthwhile. Database resources might also provide a more flexible and manageable environment for the localization process, for reducing duplicates, for intricate caching options, and for storing possibly larger blocks of content. Lastly, allocating resources to a database makes it possible to support more complicated hierarchies of translated content, where customers or departments might have customized versions of the text that is then also localized.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;b&gt;PS:&lt;/b&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;font size="1"&gt;Articles with information about:&lt;br&gt;
&lt;/font&gt;&lt;a href="http://west-wind.com/WebLog/posts/7319.aspx" target="_blank"&gt;&lt;font size="1"&gt;Hooking meta:Resource parsing in ASP.NET 2.0?&lt;/font&gt;&amp;nbsp;&lt;span style=" color: rgb(0, 0, 0)"&gt;&lt;i&gt;by Rick Strahl&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/aa905797.aspx" target="_blank"&gt;&lt;font size="1"&gt;Extending the ASP.NET 2.0 Resource-Provider Model&lt;/font&gt;&amp;nbsp;&lt;span style=" color: rgb(0, 0, 0)"&gt;&lt;i&gt;by Michèle Leroux Bustamante&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.awprofessional.com/articles/article.asp?p=664144&amp;amp;seqNum=1&amp;amp;rl=1"&gt;&lt;font size="1"&gt;.NET Internationalization: Using Custom Cultures&lt;/font&gt;&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/1245842140842952559-8210319848382571750?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/8210319848382571750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=8210319848382571750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/8210319848382571750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/8210319848382571750'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2009/05/net-internationalization-with-databa.html' title='.NET Internationalization with databa...'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-7785397564854456397</id><published>2009-05-04T00:40:00.003+03:00</published><updated>2009-05-04T00:55:52.192+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Small things about .NET</title><content type='html'>&lt;div class="title"&gt;Small things about .NET&lt;/div&gt;
&lt;h3&gt;Small things about .NET&lt;/h3&gt;
&lt;font size="2"&gt;Sometimes I need to build string from strings array spparated by any simbol, so I found this sample:&lt;br&gt;
&lt;br&gt;
string[] strArr = {"1","2","3"};&lt;br&gt;
string output = "";&lt;br&gt;
&lt;br&gt;
for(int i = 0; i &amp;lt; strArr.Leght;)&lt;br&gt;
output += strArr[i] + ((strArr.Leght &amp;gt; ++i) ? "," : "");&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Result: 1,2,3&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1245842140842952559-7785397564854456397?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/7785397564854456397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=7785397564854456397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/7785397564854456397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/7785397564854456397'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2009/05/small-things-about-net.html' title='Small things about .NET'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-7377376481122283062</id><published>2009-05-04T00:40:00.001+03:00</published><updated>2009-05-04T00:57:08.468+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Checking site status</title><content type='html'>&lt;div class="title"&gt;Checking site status&lt;/div&gt;
&lt;h3&gt;Checking site status&lt;/h3&gt;
For this blog I need the image that link to my private web site, but my web site not all time on line so I write javascript that show if my web site on line, and if no so write "My site off line.." become image.&lt;br&gt;
&lt;br&gt;

&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;span style="color: #a61700"&gt;&amp;lt;a&lt;/span&gt; &lt;span style="color: #337a87"&gt;id&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;"myWebsiteImgLink" &lt;span style="color: #337a87"&gt;href&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;"http://panshin.no-ip.org"&lt;span style="color: #a61700"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;span style="color: #a61700"&gt;&amp;lt;img&lt;/span&gt; &lt;span style="color: #337a87"&gt;src&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;"http://panshin.no-ip.org/Images/WebsiteImg.jpg"&lt;span style="color: #000000"&gt; onerror=&lt;/span&gt;"OnErrorLoadImage(this);"&lt;span style="color: #a61700"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a61700"&gt;&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a61700"&gt;&amp;lt;script&amp;gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span style="color: #a61700"&gt;function&lt;/span&gt; OnErrorLoadImage(img)&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;{&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;document.getElementById(&lt;span style="color: #8012b3"&gt;'myWebsiteImgLink'&lt;/span&gt;).href = &lt;span style="color: #8012b3"&gt;'#'&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #000000"&gt;document.getElementById(&lt;/span&gt;'myWebsiteImgLink'&lt;span style="color: #000000"&gt;).innerHTML = &lt;/span&gt;'&amp;lt;strong&amp;gt;My Web Site is Offline Now.&amp;lt;/strong&amp;gt;'&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #a61700"&gt;&amp;lt;/script&amp;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/1245842140842952559-7377376481122283062?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/7377376481122283062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=7377376481122283062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/7377376481122283062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/7377376481122283062'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2009/05/checking-site-status.html' title='Checking site status'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-2861785777593505088</id><published>2009-05-03T21:59:00.002+03:00</published><updated>2009-05-04T00:58:47.627+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Mootools'/><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Google API'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Picasa'/><title type='text'>Create site with Blogger as CMS and P...</title><content type='html'>&lt;div class="title"&gt;Create site&lt;/div&gt;
&lt;h3&gt;Create site with Blogger as CMS and Picasa as Photoalbum&lt;/h3&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;One day I decide to create my personal site: &lt;a id="l45s" href="http://panshin.blogspot.com" target="_blank" title="My site that I created with the technology."&gt;http://panshin.blogspot.com&lt;/a&gt; . I didn't want something difficult. I was need site with simple CMS manager and with photo album. Also I wanted to practice in using Mootools library with Google API. So I decide use Blogger as site holder and CMS manager, Google Pages as javascript and images holder and Picasa as album manager. A structure of the site you can see on following diagram.&lt;/div&gt;
&lt;div style="text-align: center;"&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;&lt;img src="http://docs.google.com/drawings/image?id=1308d1&amp;amp;w=400&amp;amp;h=400&amp;amp;rev=109&amp;amp;ac=1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;I have google account. If you have google account you can use it for registration on blogger.com, pages.google.com and picasa.com. &amp;nbsp;So in blogger I created blog per page on my site. A main page blog I used to entring point to my site. Also I customized XML template of the blog. I changed the layout of page according to my design, and deleted all old content of XML. In additional I added to header, links to javascript and CSS files.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;So the base of my site was created.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;I started javascript coding. The structure of content you can see on following diagram.&lt;/div&gt;
&lt;div style="text-align: left;"&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;&lt;img src="http://docs.google.com/drawings/image?id=ff08d1&amp;amp;w=400&amp;amp;h=400&amp;amp;rev=136&amp;amp;ac=1"&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;&lt;br&gt;
&lt;/div&gt;
When user pressed on button in menu bar, I started loading content from blogger according to the button.&amp;nbsp;
&lt;div&gt;You can see the script that do it at:&amp;nbsp;&lt;a id="g5p6" href="http://panshinspace.com/lib/blog.js" target="_blank" title="http://panshinspace.com/lib/blog.js"&gt;http://panshinspace.com/lib/blog.js&lt;/a&gt; &lt;/div&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;The following script is loading all post of blog in Json format.&lt;/div&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span style="color: #a61700"&gt;var&lt;/span&gt; script = document.createElement(&lt;span style="color: #8012b3"&gt;'script'&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;span style="color: #a61700"&gt;var&lt;/span&gt;&lt;span style="color: #000000"&gt; src = &lt;/span&gt;'http://www.blogger.com/feeds/'&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a61700"&gt;this&lt;/span&gt;._blogId+&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;span style="color: #000000"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;'/posts/default?alt=json-in-script&amp;amp;callback='&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a61700"&gt;this&lt;/span&gt;.options.objName+&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #8012b3"&gt;&lt;span style="color: #000000"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;'.onGetDataComplete'&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&lt;span style="color: #a61700"&gt;if&lt;/span&gt;(&lt;span style="color: #a61700"&gt;this&lt;/span&gt;.options.orderBy)&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;src += &lt;span style="color: #8012b3"&gt;'&amp;amp;orderby='&lt;/span&gt;+&lt;span style="color: #a61700"&gt;this&lt;/span&gt;.options.orderBy;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;script.setAttribute(&lt;span style="color: #8012b3"&gt;'src'&lt;/span&gt;, src);&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;script.setAttribute(&lt;span style="color: #8012b3"&gt;'id'&lt;/span&gt;, &lt;span style="color: #8012b3"&gt;'blogJsonScript_'&lt;/span&gt; + &lt;span style="color: #a61700"&gt;this&lt;/span&gt;._blogId);&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;script.setAttribute(&lt;span style="color: #8012b3"&gt;'type'&lt;/span&gt;, &lt;span style="color: #8012b3"&gt;'text/javascript'&lt;/span&gt;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"&gt;document.documentElement.firstChild.appendChild(script);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;div&gt;After loading the script call to function that run by Json objects and fill content holder with content.&lt;/div&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;A script that loading albums from Picasa look different but concept is same:&amp;nbsp;&lt;a id="fu_5" href="http://panshinspace.com/lib/album.js" target="_blank" title="http://panshinspace.com/lib/album.js"&gt;http://panshinspace.com/lib/album.js&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1245842140842952559-2861785777593505088?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/2861785777593505088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=2861785777593505088' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/2861785777593505088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/2861785777593505088'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2009/05/create-site-with-blogger-as-cms-and-p.html' title='Create site with Blogger as CMS and P...'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-4328320684623099800</id><published>2008-04-14T15:12:00.020+03:00</published><updated>2010-08-03T14:04:15.231+03:00</updated><title type='text'>Converter Ip-&gt;Number / Number-&gt;Ip</title><content type='html'>&lt;div class="title"&gt;Converter Ip-&gt;Number / Number-&gt;Ip&lt;/div&gt;
&lt;div&gt;Convert IP Address to IP Number&lt;/div&gt;
&lt;div id="ip-converter" style="color:#333333;font-family:Arial;font-size:11px;text-align:left;"&gt;
&lt;div style="width:175px;margin:auto;"&gt;
    &lt;div style="margin:5px;clear:both;float:left;width:168px;"&gt;
        &lt;div style="font-weight:bold;margin:5px 5px 5px 5px;font-size:15px;text-align:center;"&gt;Converter&lt;/div&gt;
        &lt;div style="text-align:center;margin:5px 5px 20px 5px;font-weight:bold;"&gt;Ip-&gt;Number / Number-&gt;Ip&lt;/div&gt;
        &lt;div style="float:left; font-weight:bold;"&gt;Ip:&lt;/div&gt;&lt;div style="float:left; margin-left:10px;"&gt;&lt;input type="text" id="ip" maxlength="15" style="width:128px; text-align:center;border:1px solid #99AE4F;" /&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div style="margin:5px;clear:both;float:left;width:168px;"&gt;&lt;div id="calc-button" style="float:left;border:1px solid #99AE4F;cursor:pointer;font-weight:bold;width:70px;text-align:center;background-color:#D9E5B0;"&gt;Calculate&lt;/div&gt;&lt;div id="clear-button" style="float:right;border:1px solid #99AE4F;cursor:pointer;font-weight:bold;width:70px;text-align:center;background-color:#D9E5B0;"&gt;Clear&lt;/div&gt;&lt;/div&gt;
    &lt;div style="margin:5px;clear:both;float:left;width:168px;"&gt;&lt;div style="float:left; font-weight:bold;"&gt;Number:&lt;/div&gt;&lt;div style="float:left; m-left"&gt;&lt;input type="text" id="output-number" maxlength="15" style="width:95px; text-align:center;border:1px solid #99AE4F;margin-left:10px;"/&gt;&lt;/div&gt;&lt;/div&gt;
    &lt;div style="clear:both;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="width:350px;margin:20px auto;"&gt;
    &lt;div style="font-weight:bold;margin:5px 5px 5px 5px;font-size:15px;text-align:center;"&gt;Convert Ip to Ip Number&lt;/div&gt;
    &lt;div style="border:1px solid #99AE4F;padding:10px;"&gt;
    Ip = AAA.BBB.CCC.DDD&lt;br /&gt;
    Number = 256^3 * AAA + 256^2 * BBB + 256^1 * CCC + 256^0 * DDD
    &lt;/div&gt;
    &lt;div style="font-weight:bold;margin:5px 5px 5px 5px;font-size:15px;text-align:center;"&gt;Convert Ip Number to Ip&lt;/div&gt;
    &lt;div style="border:1px solid #99AE4F;padding:10px;"&gt;
    Ip -&gt; AAA.BBB.CCC.DDD
    &lt;div style="font-style:italic;color:#99AE4F;"&gt;&lt;strong&gt;Floor&lt;/strong&gt; - returns the value of a number rounded DOWNWARDS to the nearest integer.&lt;/div&gt;

    DDD = Number % 256&lt;br /&gt;
    CCC = Floor(Number / 256) % 256&lt;br /&gt;
    BBB = Floor(Number / 256^2) % 256&lt;br /&gt;
    AAA = Floor(Number / 256^3) % 256
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;function isNum(passedVal){if(passedVal==""){return false}for(i=0;i&lt;passedVal.length;i++){if(passedVal.charAt(i)&lt;"0"){return false}if(passedVal.charAt(i)&gt;"9"){return false}}return true}function convertIpNum(ip){var aVal=ip.split(".");if(aVal.length&lt;4){alert("Invalid IP address!");return""}var zVal=0;var zTmp;var zOct;var i;for(i=0;i&lt;3;i++){zOct=aVal[i];if((!isNum(zOct))||(zOct&lt;0)||(zOct&gt;256)){alert("Invalid IP address!");return""}zTmp=Math.pow(256,(3-i));zTmp*=aVal[i];zVal+=zTmp}if((!isNum(aVal[3]))||(eval(aVal[3])&lt;0)||(eval(aVal[3])&gt;256)){alert("Invalid IP address!");return""}zVal+=eval(aVal[3]);return zVal}function convertNumIp(num){if(!isNum(num)){alert("Invalid Decimal number!");return""}var zVal="";var i;num=eval(num);zVal=(num%256);num=Math.floor(num/256);zVal=(num%256)+"."+zVal;num=Math.floor(num/256);zVal=(num%256)+"."+zVal;return Math.floor(num/256)+"."+zVal}$("clear-button").addEvent("click",function(){$("ip").value="";$("output-number").value=""});$("calc-button").addEvent("click",function(){if($("ip").value!=""){$("output-number").value=convertIpNum($("ip").value);return }else{if($("output-number").value!=""){$("ip").value=convertNumIp($("output-number").value);return }}alert("Nothing to convert!")});&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1245842140842952559-4328320684623099800?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/4328320684623099800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=4328320684623099800' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/4328320684623099800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/4328320684623099800'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2008/04/converter-ip-number-number-ip.html' title='Converter Ip-&gt;Number / Number-&gt;Ip'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1245842140842952559.post-8440107583554598594</id><published>2007-08-08T16:06:00.023+03:00</published><updated>2010-08-31T20:36:55.524+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='WinForm'/><title type='text'>Map Grabber</title><content type='html'>&lt;h3&gt;I moved my blog to other place: &lt;a href="http://panshinspace.com?p=283"&gt;Panshinspace.com&lt;/a&gt; please update your bookmarks.&lt;/h3&gt;

&lt;div class="title"&gt;Map Grabber&lt;/div&gt;
&lt;h3&gt;Grab maps ....&lt;/h3&gt;
&lt;br&gt;
&lt;font size="2"&gt;Prepare maps for your holidays, your walking, your bike trips, your geocaching... You&amp;nbsp;&lt;br&gt;
can next print them or use them with your GPS!&lt;br&gt;
This utility automatically scrolls, captures, assembles and saves maps (or other window content) from a Web page to a JPG file.&lt;br&gt;
This program is free ware. Written in C# .NET2.0&lt;br&gt;
Project source code is licensed under a free software/open source licensing terms:&lt;br&gt;
&lt;/font&gt;&lt;a href="http://www.gnu.org/licenses/gpl-2.0.html"&gt;GNU General Public License, version 2.0 or later&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;How to use?&lt;/h3&gt;
&lt;br&gt;
&lt;font size="2"&gt;- Go to the desired Web site, maximize your browser window.&lt;br&gt;
- Locate the desired area on the map and zoom to the desired scale.&lt;br&gt;
- In order to MapGrabber automatically realize the right scrolling, you have to parameter it according to the Web site.&lt;br&gt;
Press the button 1 in MapGrabber (see illustrations), next click on the left/top corner of the map. To avoid capturing the toolbar, you can define the corner just below it.&lt;br&gt;
Press the button 2 in MapGrabber, next click on the right/bottom corner of the map.&lt;br&gt;
- To devide output image by slises, set the steps in one part.&lt;br&gt;
- If you would like to calibrate maps in time of grabbing, you can use GPS Callibration part of the MapGrabber&lt;br&gt;
&lt;br&gt;
You can now Save the settings for future use; each Web site will have its own settings.&lt;br&gt;
&lt;/font&gt;&lt;b&gt;The main screen:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;img alt="" src="http://ypanshin.googlepages.com/MainScreen.jpg" border="0" style=" margin-right: 0px; margin-left: 10px"&gt;&lt;br&gt;
&lt;font size="2"&gt;- Menu:&lt;br&gt;
Settings - Load and save your current settings for future using.&lt;br&gt;
Help - The link to this page and information about me.&lt;br&gt;
&lt;br&gt;
- Map Settings:&lt;br&gt;
The position of left/top and right/left bounds of map, without active elements, on the screen. You can set points by enter the coordinates or by clicking on button "Point" and dragging the&amp;nbsp;&lt;img src="http://ypanshin.googlepages.com/point.gif" style=" margin-right: 0px; margin-left: 0px"&gt;&amp;nbsp;icon to he's place on the screen.&lt;br&gt;
&lt;br&gt;
- Capture Settings:&lt;br&gt;
Delay Scroll - When Map grabber moving the map in map display program (Firefox), to program take time to response for her events. So need to delay Map grabber events according to response of display program.&lt;br&gt;
Delay Capture - When Map grabber the map in map display program (Firefox), to load new images take some time. So you must set the parameter according to speed image loading.&lt;br&gt;
Number of X/Y Steps - How match steps to do.&lt;br&gt;
&lt;br&gt;
- Output image settings:&lt;br&gt;
Divide Image X/Y - By how match steps divide the output image. Some programs that using output maps on pocket PC, take a lot time to load big image.&lt;br&gt;
Map Path - The output image folder.&lt;br&gt;
&lt;br&gt;
- With GPS calibration - Enable GPS automatic GPS calibration of output map.&lt;br&gt;
&lt;br&gt;
- Show/Hide points - show/hide the map settings and GPS calibration points.&lt;br&gt;
&lt;br&gt;
- GPS Calibration:&lt;br&gt;
First point X/Y - The point of place that you know her GPS coordinates. You can set points by enter the coordinates or by clicking on button "Point" and dragging the icon to her place on the screen. You can use the magnifier to put the icon exactly to place of GPS coordinates.&lt;br&gt;
First point Lat/Lon - The GPS coordinates of point.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;b&gt;Magnifier/Status window:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;img alt="" src="http://ypanshin.googlepages.com/Magnifier.jpg" border="0" style=" margin-right: 0px; margin-left: 10px"&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Points:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;img alt="" src="http://ypanshin.googlepages.com/capture-screen.jpg" border="0" style=" margin-right: 0px; margin-left: 0px; width: 540px"&gt;&lt;br&gt;
&lt;br&gt;
&lt;font size="2"&gt;Prior to start capturing, set the amount of horizontal and vertical steps you desire.&lt;br&gt;
Press the button Start.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;Know Bugs:&lt;/h3&gt;
&lt;b&gt;found by me and another users.&lt;/b&gt;&lt;br&gt;
&lt;font size="2"&gt;- Memory out when grabbing more than 10X10 screens.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;TODO:&lt;/h3&gt;
&lt;b&gt;what in next version.&lt;/b&gt;&lt;br&gt;
&lt;font size="2"&gt;- grab large size maps&lt;br&gt;
- The GPSTuner have auto map loading feature. We can use maps with different resolution, and different level of information on map. That provide option in time of zoom out or zoom in, change maps automatically. So I want to add feature - grabbing maps with some levels of zoom.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;Donation&lt;/h3&gt;
&lt;br&gt;
&lt;font size="2"&gt;Map Grabber is free software. The author has spent a large amount of time and effort in the development and improvement of it. The continuous development of Map Grabber needs your support. The best way to support and encourage the author, so that this project can be moved forward always, is to donate for Map Grabber project. Click the button below to donate for Map Grabber via PayPal.&lt;br&gt;
&lt;img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" border="0" height="1" width="1" style=" margin-right: 0px; margin-left: 0px"&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;Download&lt;/h3&gt;
&lt;font size="2"&gt;Map Grabber may not be bundled with other software, included on CDs etc, linked to from other web sites or made available for download elsewhere. Link to this page instead.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
I moved my blog to other place: &lt;a href="http://panshinspace.com/development/map-grabber.html"&gt;Panshinspace.com&lt;/a&gt; please for downloads go to the site.&lt;br&gt;
&lt;br&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;Links / Credits&lt;/h3&gt;
&lt;br&gt;
&lt;a href="http://code.msdn.microsoft.com/MapGrabber" target="_blank"&gt;Project Page on MSDN Code Gallery&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.codeplex.com/MapGrabber" target="_blank"&gt;Project Page on CodePlex&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.codeproject.com/KB/cs/MapGrabber.aspx" target="_blank"&gt;Project Page on CodeProject&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.gpstuner.com/index.html" target="_blank"&gt;GPS Tuner&lt;/a&gt;&lt;font size="2"&gt;&amp;nbsp;- is an off-road navigation software for Pocket PC devices. The maps of Map Grabber is collibrated for this programm.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;a href="http://www.codeproject.com/csharp/cscapturescreen1.asp" target="_blank"&gt;Capturing the Screen Image in C#&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.codeproject.com/csharp/globalhook.asp" target="_blank"&gt;Processing Global Mouse and Keyboard Hooks in C#&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;h3 style=" margin-right: 0px; margin-left: 0px"&gt;Disclaimer&lt;br&gt;
&lt;/h3&gt;
&lt;font size="2"&gt;Personal use only. Use at your own risk. No technical support given. Don't copy or distribute copyrighted media.&lt;br&gt;
Screen captures will never replace a bought genuine printed map.&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1245842140842952559-8440107583554598594?l=panshin-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://panshin-programming.blogspot.com/feeds/8440107583554598594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1245842140842952559&amp;postID=8440107583554598594' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/8440107583554598594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1245842140842952559/posts/default/8440107583554598594'/><link rel='alternate' type='text/html' href='http://panshin-programming.blogspot.com/2007/06/map-grabber.html' title='Map Grabber'/><author><name>Yuri Panshin</name><uri>http://www.blogger.com/profile/11068276502231111368</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry></feed>
