<?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-33467627</id><updated>2024-11-01T12:46:14.429+02:00</updated><category term="Reflection"/><category term="Dot.NET"/><category term="Dot.NET 4"/><category term="HDMI"/><category term="StringFormat"/><category term="adt"/><category term="android"/><category term="source files"/><category term="ASPNET Events"/><category term="Android Studio"/><category term="Bookmarks"/><category term="CHROMECAST"/><category term="COLUMN()"/><category term="Coloring"/><category term="Conditional"/><category term="DataContract"/><category term="Development Server"/><category term="Exce"/><category term="FieldType"/><category term="Functional langauges"/><category term="Gaza"/><category term="GetValue"/><category term="INDIRECT"/><category term="Israel-Palestnian war"/><category term="Kazini"/><category term="Kill Tasks"/><category term="KnownTypes"/><category term="Linq"/><category term="MECARD"/><category term="NodJs"/><category term="QRCode"/><category term="Question in Interviews"/><category term="R&amp;D"/><category term="ROW()"/><category term="ServiceKnownTypes"/><category term="StringBuilder"/><category term="TV"/><category term="WCF"/><category term="WebDev"/><category term="WhatsApp"/><category term="Windows Server 2008 RC"/><category term="businesscards"/><category term="conditional formatting"/><category term="contacts"/><category term="cynical"/><category term="deploy"/><category term="display"/><category term="drivers"/><category term="eclipse"/><category term="excel"/><category term="file types"/><category term="idea"/><category term="iis"/><category term="imagination"/><category term="intellij"/><category term="java"/><category term="log4net"/><category term="maxthon"/><category term="pdf"/><category term="preview pane"/><category term="recursion"/><category term="security"/><category term="setup monitor"/><category term="setup plasma"/><category term="status"/><category term="sync2it"/><category term="text concatination"/><category term="text files"/><category term="visual studio 2010"/><category term="web deploy"/><category term="windows 7"/><category term="windows 8"/><category term="windows 8.1"/><title type='text'>A retrospective of me</title><subtitle type='html'>This blog is just a few thoughts, things I see, a way to archive the more interesting things on the NET I would like to recall in a fast way.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33467627.post-3619453813696665500</id><published>2014-07-31T17:50:00.001+03:00</published><updated>2014-07-31T17:50:40.139+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Gaza"/><category scheme="http://www.blogger.com/atom/ns#" term="imagination"/><category scheme="http://www.blogger.com/atom/ns#" term="Israel-Palestnian war"/><title type='text'>Hilton International to add to over 20 large hotel and casinos chains to build on Gaza beach</title><content type='html'>&lt;p&gt;&amp;nbsp; &lt;p&gt;Only 12 years ago Gaza was a war zone, tunneling into Israel and terrorizing their own population. War was in the streets, Israel’s embargo almost devastating the local economy. A city torn by war and oppressive regime. &lt;p&gt;&lt;img src=&quot;http://images.kuoni.co.uk/73/monte-carlo-sharm-el-sheikh-29479917-1383564725-ImageGalleryLightbox.jpg&quot; width=&quot;567&quot; height=&quot;357&quot;&gt;&lt;img src=&quot;http://www.rnw.nl/data/files/imagecache/favolist-3/images/lead/020109-Gaza-ANP-8922909_0.jpg&quot; width=&quot;469&quot; height=&quot;357&quot;&gt;Today a booming touristic gem in the Middle East, with over 500 hotels and over 30,000 rooms, 5 Casino’s and resorts. Gaza’s future has never looked more promising.  &lt;p&gt;It all started in 2013, when instead of building tunnels and starting a war, Hamas decided to go the way of Dubai and Monte Carlo, utilizing the experience, know-how and not-to-mention funds of the Emirates and Saudi connections, the Palestinian autonomic state built its first Casino and Resort by offering free land to the Marriot international chain if they would be willing to invest in free casino hosting and training clubs and courses as well as build their next big hotel on the Gaza strip beach. &lt;p&gt;&lt;img src=&quot;http://r-ec.bstatic.com/images/hotel/max300/212/21248315.jpg&quot; width=&quot;310&quot; height=&quot;243&quot;&gt;&lt;img src=&quot;http://aatt.sa/wp-content/uploads/Dolphins-deals.jpg&quot; width=&quot;308&quot; height=&quot;236&quot;&gt;&lt;img src=&quot;http://img.holidayplace.co.uk/gallery/hotels/AFEGLX28/responsive/01-500.jpg&quot; width=&quot;429&quot; height=&quot;245&quot;&gt;&lt;/p&gt; &lt;p&gt;Today the Gaza gem’s main income is tourism &lt;/p&gt; &lt;p&gt;…. Wouldn’t this be a lovely future?          </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/3619453813696665500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/3619453813696665500' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3619453813696665500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3619453813696665500'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/07/hilton-international-to-add-to-over-20.html' title='Hilton International to add to over 20 large hotel and casinos chains to build on Gaza beach'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7862931287900696573</id><published>2014-07-22T19:53:00.001+03:00</published><updated>2014-07-22T19:53:30.858+03:00</updated><title type='text'>How to setup Bsplayer to pause/unpause with single click</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I have decided to start recording tutorials instead of screenshots. so here’s my first one.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I love BSPLAYER it’s my favorite player. but its default settings are kinda off for me. so I customized them.&lt;/p&gt; &lt;p&gt;Recently bsplayer updated to its latest version, and EVERY UPDATE it deletes my customized settings. (don’t ask me why)&lt;/p&gt; &lt;p&gt;So here it is:&lt;/p&gt; &lt;p&gt;In this video I demonstrate how to setup bsplayer preferences to single-click for both pause and un-pause (play).&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;div id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4364c5e0-c6ec-47c2-b3b7-1145ee8a45a3&quot; class=&quot;wlWriterEditableSmartContent&quot; style=&quot;float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;276&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/03_BsoMLTWY?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/03_BsoMLTWY?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;276&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Setting up BsPlayer to pause/unpause with single click&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7862931287900696573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7862931287900696573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7862931287900696573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7862931287900696573'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/07/how-to-setup-bsplayer-to-pauseunpause.html' title='How to setup Bsplayer to pause/unpause with single click'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-750975511410697507</id><published>2014-06-17T22:31:00.000+03:00</published><updated>2014-06-17T22:31:16.631+03:00</updated><title type='text'>NOKIA SD Card</title><content type='html'>I have recently purchased a &amp;nbsp;phone with an SD card.&lt;br /&gt;
&lt;br /&gt;
I bought a huge 2GB miniSD card, and wanted to transfer the data to the 2GB card.&lt;br /&gt;
When i tried, i recieved the frustrating error that it has copyrighted material on it and i can&#39;t copy.&lt;br /&gt;
&lt;br /&gt;
It&#39;s MY F(%&amp;amp;*ING Card, and I want to back it up, and not have 2 SD cards on me at all times. what am i supposed to do with a 64MB card, save 10 mp3s on it? and where do i save camera images? no no no&lt;br /&gt;
&lt;br /&gt;
a quick look on the web found no Good Answer.&lt;br /&gt;
The best i found was to copy the copyrighted material to the phone itself, and then to insert my new card and move data to it. and then reinsert nokia card and again again move to internal memory and then insert 2GB and then and then and on and on...&lt;br /&gt;
&lt;br /&gt;
too slow, to stupid. not on my watch.&lt;br /&gt;
&lt;br /&gt;
Then I found dd for windows.&amp;nbsp;http://www.chrysocome.net/downloads/dd-0.6beta3.zip&lt;br /&gt;
&lt;br /&gt;
this is a utility that creates an image (ISO) of your diskette, usb drive etc..&lt;br /&gt;
&lt;br /&gt;
I imaged the nokia SD card to my HD&lt;br /&gt;
then using UltraISO extacted the data to a folder and lo-behold, no more copyright issues and i could copy my data &quot;copyrighted&quot; or not, to my 2GB memory :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
good luck</content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/750975511410697507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/750975511410697507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/750975511410697507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/750975511410697507'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/06/nokia-sd-card.html' title='NOKIA SD Card'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-8592565558102548534</id><published>2014-06-17T22:27:00.001+03:00</published><updated>2014-06-17T22:27:06.676+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adt"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="idea"/><category scheme="http://www.blogger.com/atom/ns#" term="intellij"/><title type='text'>Loading Google android API Samples to android studio</title><content type='html'>&lt;br /&gt;
If you have tried loading the samples given by google using the sdk manager, you may have come upon a bit of a hickup. &lt;br /&gt;
NOTHING WORKS!&lt;br /&gt;
This is how to fix it:&lt;br /&gt;
Android Studio (Preview) version :&amp;nbsp; 0.6.1&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig0sdrqMTQAkBFvGffpY_gpLPEUVtdplTZERjkhm0lV6Sauu64hN5ZQdwE7BDtpa2WnhuGDGfcJPVFZlb5x_v4pGTxXAl0165RCkDVK5GFMBkMNB9yBcTVvBmWEEqvwwPJx7nUuQ/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZirY4PNeeNwfc3QSmH3-O_m2mUAJ8WVoJxpyFWF489ZeDC-FyaNnTCsWku5eSH8BC6oXAh5hKkRlB_RkuQqIp-S2bd9FBvVYMtiboElY5JthYRMzjwB5SkQA1if_hn1-tto4tCA/?imgmax=800&quot; height=&quot;184&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
let’s import the media router sample project:&lt;br /&gt;
located at: &lt;strong&gt;C:\Program Files (x86)\Android\android-studio\sdk&lt;/strong&gt;\samples\android-19\media\BasicMediaRouter&lt;br /&gt;
File-&amp;gt;import&lt;br /&gt;
&lt;blockquote&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix3Ps_t8AfXiJ8aDXrcPNFmPNGba_pp0fUIi8nb1lHBYX5rK6SldhMBDKsSXTgmqyi_RSudr1uKFnYPPK3To7JiqcEkJ9_DHuD9mwGbzQ8tV3G7M_ClviuAu60Y0DrmRek_vqC3g/s1600-h/image%25255B11%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf8YdL__GfC7K7F2sarLTJPC9sBFHbqRy1NgWeWikbjFEPR0365c3CkU9DLdcUvNpoq8MNWXnlQ_XO1LC-SolcWBiAtLzMCg__rHWNUu_0p7K4tObU-pRE7xxo4bCRdQDcdiNi0w/?imgmax=800&quot; height=&quot;244&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;203&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Select BasicMediaRouter, The Android studio will load, but empty:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMCvPtOoEUS8m1aszGSjLq2gNJ5tOrMR3O9olCLI7lznZH7YA07u7-DfvG8vVhycwhx9PsDPYIQTcm6K8XXI27ygW-QAdLkWRlqrb7FnpkXKRFuJImmfXQPWRlBJIt4RKIzrahbg/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaWXaCGFAvhflrzlKL-JkxUpi46N6aIy4nafspIds3hsRJtelvN1N5YF4ybXcPZGUfgc3oI8t7UfhwzpzEltsgIcU6_a0yFwGTltqvub8wdzqpnlZ828vKEQrEZe6efzTyEjCV0A/?imgmax=800&quot; height=&quot;131&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Click on Project and open gradle.build file at root of folder: &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdvU-sa_7QWbjns_jphxfmnf1N9EUX8VM7SHkPNvnJWUAEpl0_5UJGUMnNeTjQ5gWLblZr6SS3DbshoDuxB7sYOBOqQgJ566u0Td-eigG9hbXcm87sA9z9xMMFElad6lbMPii-6A/s1600-h/image%25255B17%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXded0CsRFkiso9AfbrMpAOicteQK1fNmOh1yD9m9-uEflbySKzUAXjjss67ofJs2bKO7RI6lsgaJFVn4CeoMcwAeEB1CcBxG5V_6mdA8eKZUo_BsiDibKyTiZspYdfQHjIj7nxQ/?imgmax=800&quot; height=&quot;60&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Double click on the first error stating the build tools version is wrong and what is the correct build tools version:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ZgkDg9kWb-wwdqP4XHVyecCKEhZa80y2l2boixLuNCNjTVVVjWEvfMYAffgfu7TtAAK7IBLqgv9u564lQfFmE1iXFzBZmpP888PEQSljfa2gD22isjzcczvuhzMWI0Fce_NMcA/s1600-h/image%25255B20%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4-RVZbvSBv-Q9rLiOJ4huMN9QZeP1qNgAVm3LwsZqOI_OTdC-rP5VkyrqMNN7Kdk3UzxDDCzAJLiC-6c3U6drupjXuAIKZgGLtK30Wfw8CjSHnYi2PFO4KDjEsJ55PwWlkGMGtA/?imgmax=800&quot; height=&quot;135&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD74qLlWGZ3ZeB5Q_yYc21UYJ48XBzzciHb8bvNE08kNKHcSFe6lTVbGNO9f-OqRgLdnRW9wx4Cl2nfgeqJ3V7d8LdYBcA8Fd7hoe8Yi_pFwQqw2d40o3e5utlLe_MyqyTcARAXg/s1600-h/image%25255B23%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik0B_8qOio7_f6cPYoGOqBYOtqTOKUpU2k_NiKQF23BVJqnGAsEJSz-DkAY-zgRgnUGO9xGes4U5WXZAT8Z2Irswa1WN_JNKSPNunJCXUw5ufwu-6-f1KcJMSdFwKGETxqju88Sw/?imgmax=800&quot; height=&quot;103&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
change the 0.9.+ to whichever is correct, mine is 0.11.+, the change attribute of file from read only to writable dialog will appear, click ok to continue to edit the build tool version the &lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;red squiggly&lt;/span&gt; &lt;/span&gt;line will disappear&amp;nbsp; meaning you are on your way !&lt;br /&gt;
Build-&amp;gt;Make Project&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNtlqKIuWRm6kfhxFx-aLFWuyGiT8VfxRrOyIZmQBPUbNc9gHuPdKCvX7JS4zLR-lWfq5tuyIHXuIKl5QsA9x9Pk0Lwsr1DOav6-FWx69hbt9gA0f051TsZfJX4CAxIUeSZNpaw/s1600-h/image%25255B32%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6XtZhiKnU1FM_LmOArDcy8dVG0lTfb-YZP0oAlb8A2efVjjoYR9j193aBT_FFT5gOzwOxEzCKIeJ7seEauqKzEpkQWXFhjMOQ2SPc6HEd8iZirS01P6LQuFMBVAbS4gNWBbBY7g/?imgmax=800&quot; height=&quot;165&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
a new error message comes up in the gradle build tool window: Task ‘assemble’ not found in root project ‘BasicMediaRouter’&lt;br /&gt;
What this means is something to do with IDEA changing versions and changing shit with no backward compatibility (thanks guys)&lt;br /&gt;
basically easy fix: open up the *.iml file in the root locate the component named FacetManager and delete the entire component&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhWi_ez0aAendoGQ1SSS9iBBUTiWhqG6Uhra2AvqRPjQtElm-jVnE9NFkqbNU0-tEC-LE68ZO8OEc5ZJCgG9aVlegtM-2PjjFIKmfJS59VWtSqcvWkIQYLB5u7tZhjFs-nK5LBSQ/s1600-h/image%25255B35%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1KxMSZn2SyPd3zrTNtUqGl8sOgSr9nd9tjGXC6aPb5VefZFANRxVcqryq9ZZo6jPjBIoFYBkFje_JibJQlO9SJK6gwwuT1vk2Y2WTUOApCdmX4yQNhfcZhGlulugVIMSzomywuQ/?imgmax=800&quot; height=&quot;78&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt; ==&amp;gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSu-C6hXkIgeqK50ErESM-YWFfHx-fApeBYt0o6nemjdCjpEojg427ImWug1oNT6b18JKsixk1Aa2RMAshlRaqShLd9y7kIZ2pAoX-smGcvKizvRsPLjyGOhG9quSWRSJW3LSWQw/s1600-h/image%25255B38%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN4TOVRkWC390y_Nq2cmv3xzzdPWqWluTBGuZf1OMxfORIMt80NJg0i2J6zRnX1g3uVsPVEKsLSxYOkESjrAvnpA7OXWrxW1LnJK4_T9CUoGmUqAx2S40JH8TiJt26Mlpb5if5mA/?imgmax=800&quot; height=&quot;116&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
as you click save, the IDE might wish to reload and the IDE will (Finally) get that this is an android application and ask you to configure it:&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE0LWFvYPgYb_St4trQInSchuKiKun9cPzFRYJgpepmqDG9Gi3y-nsrPkSu8ia4oXa-c8Jpz2AIHdaST62Tnz36jl_T9wqwBcNlOHzORL0C9NI8VT39iKVPatIsFihDrNaL-YBVA/s1600-h/image%25255B44%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIn1IAjVEKdRHHknRz_ToPw-j-9ryCb0IDQrgBgF0nR15SHzf_vaFse2Rc44m0JlAFbZWJ8_ZRibxd1ZduRZdSwCZlax-suP7DU4owDPcFrx5tbzKVvAZQdGdzPziqb9HDr-iVvg/?imgmax=800&quot; height=&quot;92&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
if it doesn’t work go to File-&amp;gt;Project Structure&lt;br /&gt;
don’t ask me why, but your project is no longer configured for an SDK &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwsjYa5SFYVFmnqV-wYgjkN5ywFYRYAwRx1Kn6KzP_ytW_ZyZsxoEy5RFHvKZjxaolU7wmYDZVJZGN-hQuwhq4UjHSf7EsUqSLUutbbm0_-ye4KYH5xya4H96N6VgdrLYTmKUXxw/s1600-h/image%25255B47%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUjSeWC-eHKfnf5eKB1Y6ScxI7HQaaZCHz-hkfYjWUS62e4d6el_SbDjoDqaBomHpWNecWHYGZXPzRoXHOd-L9vAI0IYf0RyzFxGVfQ7RxDzfZxVCvw3tdx_atzb4mOttYrjRhsA/?imgmax=800&quot; height=&quot;126&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
select an installed SDK in the dropdown menu and click OK&lt;br /&gt;
the error: Error:The SDK Build Tools revision (19.0.1) is too low for project &#39;:BasicMediaRouterSample&#39;. Minimum required is 19.1.0 will still be there. Open the build.gradle file that is not in the root directory and change the 19.0.1 to 19.1.0 &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_ZxLPaIdrc75eV-EYMGjmFlEy8NLAMHBYjqrXD34j4KFnbNFcxT3EHPPcGITrgec2ItX3bKSy3lM0P562rO7BC3ZM_o-DfPx9H4RJUod_r7n69UEZWeXnCAaGQWwK4R9EfxtdFg/s1600-h/image%25255B50%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjisYLqnxBtlF7MQAycyIk9gwEiVWKSkGgoFxZU4W5pd7K-GW_feKJlSVD9WYzyA00JXlXrrcP-_xrGqZUql9ItQ1Ff-pg7MzkG0UANaXuXu7inILsdAnsIZHVVYaUHj0a5hf6alg/?imgmax=800&quot; height=&quot;86&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Click on SYNC GRADLE WITH PROJECT FILES &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTg2Fq79uNqf5of1l-Kh_KYD6xzt_nvZGxXgvRKA-PBmI15hp8hI3cW5yP-t_mUuzTmZuvyQ57QR1nV4Px89r41EP-rvY6a4cM1KtFA4gUl4ClnyWcg2nk3gBZS4KUqrXW9TbSZw/s1600-h/image%25255B26%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQjImD_n8knfEaub92YN9JTmr6LNmoF8iP2fzi_GDM5TScvYcJ9ZbzATS9ukLEQdCGGaEoyPEck5g61aPk-MfopWPETNYkuHJGolF9K1dhMbgynFIGJt-TieV0IIacbpiIlXuBRg/?imgmax=800&quot; height=&quot;141&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
this is the last thing that will appear, I am unsure what it is but it does no harm either way.&lt;/blockquote&gt;
&lt;br /&gt;
now setup the build properties and click the Ctrl+F5 to load.&lt;br /&gt;
&lt;br /&gt;
Oh and good luck with the rest</content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/8592565558102548534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/8592565558102548534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8592565558102548534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8592565558102548534'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/06/loading-google-android-api-samples-to.html' title='Loading Google android API Samples to android studio'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZirY4PNeeNwfc3QSmH3-O_m2mUAJ8WVoJxpyFWF489ZeDC-FyaNnTCsWku5eSH8BC6oXAh5hKkRlB_RkuQqIp-S2bd9FBvVYMtiboElY5JthYRMzjwB5SkQA1if_hn1-tto4tCA/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-1671015927456541809</id><published>2014-05-28T01:47:00.001+03:00</published><updated>2014-05-28T01:47:43.458+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dot.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Dot.NET 4"/><category scheme="http://www.blogger.com/atom/ns#" term="Linq"/><title type='text'>Linqing non liqable Collections</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;If you’re a linq lover like myself maybe you’ve come across gems like .&lt;/p&gt;&lt;pre&gt;SelectedRows&lt;/pre&gt;&lt;pre&gt;ItemCollection&lt;/pre&gt;&lt;pre&gt;CheckedItems&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;if your collection offers you GetEnumerator then you’re set. use Linq’s less known helper function OfType&amp;lt;T&amp;gt;()&lt;/pre&gt;&lt;pre&gt;This great function utilizes the GetEnumerator and turns it into a one way casting of al objects as queryable objects.&lt;/pre&gt;&lt;pre&gt;From there, it’s a hop skip and jump to Linq.&lt;/pre&gt;&lt;pre&gt;such as:&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Wb1.Document.Links.OfType&amp;lt;HtmlElement&amp;gt;()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ToList()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ForEach(x =&amp;gt; x.Click+=x_Click&amp;nbsp; );&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/1671015927456541809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/1671015927456541809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/1671015927456541809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/1671015927456541809'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/05/linqing-non-liqable-collections.html' title='Linqing non liqable Collections'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-3318316247749426912</id><published>2014-03-23T20:09:00.001+02:00</published><updated>2014-03-23T20:09:09.334+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="display"/><category scheme="http://www.blogger.com/atom/ns#" term="drivers"/><category scheme="http://www.blogger.com/atom/ns#" term="HDMI"/><category scheme="http://www.blogger.com/atom/ns#" term="setup monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="setup plasma"/><category scheme="http://www.blogger.com/atom/ns#" term="TV"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 8"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 8.1"/><title type='text'>Intel video driver setup for windows 8.1 SAMSUNG PLASMA TV</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;How to setup your TV output via HDMI to setup the TV correctly.&lt;/p&gt; &lt;p&gt;&lt;strike&gt;check the specs of the TV to find out best resolution&lt;/strike&gt;&amp;nbsp; - no need, the intel chipset will recommend the best resolution it can muster for your TV, just stick with it, or lower it so the text and icons are bigger and less pixelated. &lt;/p&gt; &lt;p&gt;so lets start:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;770&quot; border=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;595&quot;&gt; &lt;p&gt;1. connect your HDMI out to the TV&lt;/p&gt; &lt;p&gt;2. press&amp;nbsp; windows+P : select EXTEND&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;173&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk2qIS4Os3DadIf5OUomF8tD4pskBvTjftJJcevR2uCdgL8BW93tg6L2cFMxpoyjL06PUa_RD11PLF7kzKZmlZ97FpgQakbzCSKM5fzoaPmWDMwO9cRQ8mvU5x1jrcRBFytZSyZA/s1600-h/image%25255B12%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgde2VtCn2RfJ3USNXNxcORrrLbV0EWVNfKp2BnekXkWISa10lmL0E5VHmr-IAzVVNBfLvHUqsRQt9QrZmlnOzVSSDHe94g_Iv2ObPjEM2sOdIgwjmw-8LsHu6uc_f0fH7zIo1OQ/?imgmax=800&quot; width=&quot;112&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;595&quot;&gt;3. Update all your drivers: Windows+x : drivers … update display and monitor drivers&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;173&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWKkdSde65VmBbc1TQIui6A_K6yIWc5noyXXk6P2ggrI1MUtI4JvClE0yuq0kUKuatDmWMrukwnyc46kIw7c7wQzx5fEcTkLqFw26Rn_Z4BaEkJRerWX4YOI6g7-0VTfU2JeGoxQ/s1600-h/image%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;display: inline&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibKzhZBzQKb-Zs2ThgRMDMjRXS_rTOYfXvn-helGJIxIuh7_cvDHYJYZe89v2m7pdP0buPn-SVZMAoEZf2OXQJj2rqPkcLNehI_TzH8XHvWyFk73j1A1PPcXfl0FT0nK3jvqxNpg/?imgmax=800&quot; width=&quot;240&quot; height=&quot;190&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;595&quot;&gt; &lt;p&gt;3. Right click on the desktop, select Graphic properties for Intel graphics card&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;173&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSCknQeAjMTZTB9uU3YLbDCE-65XY0Ig3iOhrNsaCr1kSQ5KoSdZj-KugLnlo4VKE3oGZLw0qMND1PfC2g3pQvbCzclo4tw2BAYXXkfi1gZlnUmvYQMVQ1SLq2QGcmnjlLeMiPOw/s1600-h/image%25255B9%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg8qVQO8GS81h6ueBplcmYej33vktU-E5E2wYA_xGVAsIoNr-aiiCk4HXEBtbctu4KstC8aV3k6ahQiKOLwWEZ-BcUCtSTtg7Jd18Pdzs77Oi-4quhXkQq1fsUFEe5eyTdhx6qSA/?imgmax=800&quot; width=&quot;217&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;595&quot;&gt;4. open the graphics properties and select DISPLAY.&lt;br&gt;4.1. Select the correct monitor (Select display)&lt;br&gt;4.2. Then play with the exact size , pan and tilt.&lt;/td&gt; &lt;td valign=&quot;top&quot; width=&quot;173&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF6qNzSdnfHFps9Dee4Woz027udSR-wN8Kz1vEHhwW517FeRx0paDZCJUyGqR_u7jzzRUfkN0sx-qjbBV0wa9fCnzkGzedRCcwPwbQbSr4zbFtgaxyrGNh8EEtdYSU6ZQxQoelBg/s1600-h/image%25255B15%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoP9vxNaO8RA7A_yi5dVJRCe6OJsBZ98Uy2bqQ-SyD0wuN9WAexQJG4hsHX-dY5coFpi0yRLlyxpgCW2Pe3k0f9PS8Sw0C_6zxOe4cZSfEsWsd-g2yjoPl7RPi28p9EAvTn5u_bQ/?imgmax=800&quot; width=&quot;244&quot; height=&quot;172&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;Done.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div id=&quot;scid:66721397-FF69-4ca6-AEC4-17E6B3208830:a024e859-6ca5-4965-8580-42f2b5f2ae19&quot; class=&quot;wlWriterEditableSmartContent&quot; style=&quot;float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px&quot;&gt;&lt;table border=0 cellspacing=0 cellpadding=0 style=&#39;outline:none;border-style:none;margin:0px;padding:0px;width:467px;border-collapse:collapse;&#39;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&#39;margin:0px;padding:0px;outline:none;border-style:none;width:auto&#39;&gt;&lt;a style=&quot;outline:none;border-style:none;margin:0px;padding:0px;&quot; target=&quot;_blank&quot; href=&quot;https://onedrive.live.com/redir.aspx?cid=164a5966f08122fe&amp;amp;page=play&amp;amp;resid=164A5966F08122FE!1620&amp;amp;parid=164A5966F08122FE!324&amp;amp;type=5&amp;amp;authkey=!AF2ES1Fp_Mpz1Z0&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&quot;&gt;&lt;img style=&quot;outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;&quot; alt=&quot;View album&quot; title=&quot;View album&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS_xbCO8MhOvPP6Jeek4-dTns0NhjKB4SswkKHC6Opm9WQXCW94Q7HGL8ms98Klzxfm4DapOpv3rgEi9WweXrZS3GMDDKeTNs8xa19JexCfqZ9Ip1RydN3yTyLct4hD6YnLKBRew/?imgmax=800&quot; /&gt;&lt;/a&gt;&lt;div style=&#39;width:467px;text-align:center;overflow:visible;padding:0px;margin:0px;&#39;&gt;                                            &lt;div style=&#39;width:467px;overflow:visible;&#39;&gt;&lt;a style=&quot;text-decoration:none;&quot; href=&quot;https://onedrive.live.com/redir.aspx?cid=164a5966f08122fe&amp;amp;page=browse&amp;amp;resid=164A5966F08122FE!1620&amp;amp;parid=164A5966F08122FE!324&amp;amp;type=5&amp;amp;authkey=!AF2ES1Fp_Mpz1Z0&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&quot; target=&quot;_blank&quot;&gt;&lt;span  style=&quot;line-height:1.26em;padding:0px;width:467px;font-size:26pt;font-family:&#39;Segoe UI&#39;, helvetica, arial, sans-serif;&quot;  defaultText=&quot;Enter album name here&quot;&gt;PLASMA TV setup for pc hdmi-out&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;                                            &lt;div style=&quot;text-align:center;padding:9px 0px 0px 0px;margin:0px 0px 0px 0px;font-family:&#39;Segoe UI&#39;, helvetica, arial, sans-serif;font-size:8pt;&quot;&gt;                                                &lt;table border=0 cellspacing=0 cellpadding=0 style=&quot;text-align:center;width:auto;margin-left:auto;margin-right:auto;padding:0px;outline:none;border-style:none;border-collapse:collapse;&quot;&gt;                                     &lt;tr&gt;                                       &lt;td style=&quot;vertical-align:top;outline:none;border-style:none;margin:0px;padding:6px 12px 6px 0px;&quot;&gt;&lt;a href=&quot;https://onedrive.live.com/redir.aspx?cid=164a5966f08122fe&amp;amp;page=play&amp;amp;resid=164A5966F08122FE!1620&amp;amp;parid=164A5966F08122FE!324&amp;amp;type=5&amp;amp;authkey=!AF2ES1Fp_Mpz1Z0&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&quot; border=&quot;0&quot; target=&quot;_blank&quot; style=&quot;font-family:&#39;Segoe UI&#39;, helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;&quot;&gt;VIEW SLIDE SHOW&lt;/a&gt;&lt;/td&gt;                                       &lt;td style=&quot;vertical-align:top;outline:none;border-style:none;margin:0px;padding:6px 0px 6px 0px;&quot;&gt;&lt;a href=&quot;https://onedrive.live.com/redir.aspx?cid=164a5966f08122fe&amp;amp;page=downloadphotos&amp;amp;resid=164A5966F08122FE!1620&amp;amp;parid=164A5966F08122FE!324&amp;amp;type=5&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=!AF2ES1Fp_Mpz1Z0&quot; border=&quot;0&quot; target=&quot;_blank&quot; style=&quot;font-family:&#39;Segoe UI&#39;, helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;&quot;&gt;DOWNLOAD ALL&lt;/a&gt;&lt;/td&gt;                                                                            &lt;/tr&gt;                                   &lt;/table&gt;                                                                                                                                &lt;/div&gt;                                                                                       &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/3318316247749426912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/3318316247749426912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3318316247749426912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3318316247749426912'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/03/intel-video-driver-setup-for-windows-81.html' title='Intel video driver setup for windows 8.1 SAMSUNG PLASMA TV'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgde2VtCn2RfJ3USNXNxcORrrLbV0EWVNfKp2BnekXkWISa10lmL0E5VHmr-IAzVVNBfLvHUqsRQt9QrZmlnOzVSSDHe94g_Iv2ObPjEM2sOdIgwjmw-8LsHu6uc_f0fH7zIo1OQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-5288306214862010541</id><published>2014-03-12T07:31:00.001+02:00</published><updated>2014-03-12T07:31:26.660+02:00</updated><title type='text'>FullStack vs ???? single stack ??</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;It has come to my attention that some developers only deal with one aspect of development. They do it well, but they don’t really even understand the rest. Some come from developing apps like MOS and customizations and addins/templates built over Frameworks and Existing systems.&lt;/p&gt; &lt;p&gt;I rememnber being asked “can you develop from scratch” and didn’t know there was another way. turns out, a lot of developers only know how to use systems, but not configure them, such as database from scratch, wcf, hibernate/entity mapping from scratch etc.. they know how to live in someone elses kingdom but do not reallt know how to build that kingdom themselves.&lt;/p&gt; &lt;p&gt;I believe in understanding the entire process, I really dislike the Frontend of UI, but I understand it. I am a server man myself.&lt;/p&gt; &lt;p&gt;HOWEVER&lt;/p&gt; &lt;p&gt;I think this new “fullstack developer” vs “????? single stack ? developer”&amp;nbsp; is problematic. I think requiring REAL developers to add “fullstack” to their name rather than deciding that “single stack” developers be singled out creates an imbalance.&lt;/p&gt; &lt;p&gt;Only my opinion ofcourse.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/5288306214862010541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/5288306214862010541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/5288306214862010541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/5288306214862010541'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/03/fullstack-vs-single-stack.html' title='FullStack vs ???? single stack ??'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-4945397878673121687</id><published>2014-03-12T06:29:00.001+02:00</published><updated>2014-03-12T06:29:12.661+02:00</updated><title type='text'>Group or ungroup shapes, pictures, or other objects in Word 2010</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I have been using word 2010, didn’t check if this is true to other versions, but could not select multiple objects.&lt;/p&gt; &lt;p&gt;I usually go with stackoverflow with these questions, but couldn’t find such.&lt;/p&gt; &lt;p&gt;Found one on msdn, but the answer had ZERO points, yet it was the only one that worked.&lt;/p&gt; &lt;p&gt;original question taken from : &lt;a title=&quot;http://social.msdn.microsoft.com/Forums/office/en-US/796feaad-0d94-4da6-bd72-e23942cbfc47/cant-select-multiple-objects-in-word-2010?forum=worddev&quot; href=&quot;http://social.msdn.microsoft.com/Forums/office/en-US/796feaad-0d94-4da6-bd72-e23942cbfc47/cant-select-multiple-objects-in-word-2010?forum=worddev&quot;&gt;http://social.msdn.microsoft.com/Forums/office/en-US/796feaad-0d94-4da6-bd72-e23942cbfc47/cant-select-multiple-objects-in-word-2010?forum=worddev&lt;/a&gt;&lt;/p&gt; &lt;p&gt;“I&#39;m using Office 2010 Professional Plus 64-bit.&amp;nbsp; I can&#39;t select multiple objects in Word 2010 either by shift-clicking, control-clicking, rubber-banding or using control-a in either the main work area or in the selection pane.&amp;nbsp; There&#39;s no way to group objects or to make simultaneous canges to multiple objects.&lt;/p&gt; &lt;p&gt;Is this a bug or did Microsoft Office developers decide that people won&#39;t want to handle more than one object at a time in the future? Maybe that we are de-evolving back to monkeys or something? …“ &lt;p&gt;&amp;nbsp; &lt;p&gt;and the solution I found by &lt;a href=&quot;http://social.msdn.microsoft.com/profile/wamer_ca/?ws=usercard-mini&quot;&gt;Wamer_ca&lt;/a&gt; who answered on&amp;nbsp; &lt;em&gt;Wednesday, February 01, 2012 3:49 PM&lt;/em&gt; &lt;p&gt;to whom I could not award points as they closed the question, and awarded no one. &lt;p&gt;&amp;nbsp; &lt;p&gt;“ I have had this same problem off and on since moving to Office 2010 and I think I&#39;ve found a solution. &lt;p&gt;I would take a screen shot and then want to add arrows or shapes to highlight specific areas. I wanted to group the shapes and screen shot together so that they would be perfectly aligned as the document evolved. &lt;p&gt;The problem was that I could not select all of the objects at the same time. The most frustrating part was that sometimes this would work and sometimes it would not. I was not sure what the reason was. &lt;p&gt;&lt;strong&gt;Well, I got it to work!&lt;/strong&gt; &lt;p&gt;The default text wrapping style is “In Line with Text” when you paste the screen shot. Changing this to be “In front of Text” or “In Line with Text” allowed all of the objects (screen shot and shapes) to be selected and grouped together. &lt;p&gt;You can find the text wrapping feature by right clicking on the object and selecting “Format Object”. It is under the “Layout” menu. &lt;p&gt;I think the problem is when there is a difference between the text wrapping options for the different objects this prevents them from being selected together. Changing this is what fixed the problem for me. “ &lt;p&gt;&amp;nbsp; &lt;p&gt;So to you &lt;a href=&quot;http://social.msdn.microsoft.com/profile/wamer_ca/?ws=usercard-mini&quot;&gt;Wamer_ca&lt;/a&gt; I say thankyou and Kudos. You helped me out.   </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/4945397878673121687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/4945397878673121687' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/4945397878673121687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/4945397878673121687'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/03/group-or-ungroup-shapes-pictures-or.html' title='Group or ungroup shapes, pictures, or other objects in Word 2010'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-3106370260243197036</id><published>2014-03-10T16:21:00.004+02:00</published><updated>2014-03-10T16:21:55.248+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="CHROMECAST"/><category scheme="http://www.blogger.com/atom/ns#" term="HDMI"/><title type='text'>ChromeCast your life</title><content type='html'>&lt;br /&gt;
&lt;img align=&quot;left&quot; src=&quot;http://ecx.images-amazon.com/images/I/81dgptmSieL._SL1500_.jpg&quot; height=&quot;159&quot; style=&quot;display: inline; float: left;&quot; width=&quot;212&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I just bought a chromecast and woah is it cool. I decided to write a tutorial/review of my experiences so far(3 hours) &lt;br /&gt;
&lt;h1&gt;
CASTING &lt;strong&gt;Youtube video from my desktop &lt;/strong&gt;to my device&lt;/h1&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhivNQt9SCwF0HyeNy2z2TtfveBaG-GT5QJTKvYUGhhz5Ti9BFzb7al0o0ThUwvkE29D2Rlvd6MInGurw8mvDZ0FPneUOddaLQRhsltYCU0cvu3-r7GdAU0uVG4Au3md65HIIxh9w/s1600-h/image%25255B23%25255D.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwbugc6coOwFzwbXhjlkzYPjLHg1pv8-jK1HJzc6-3EEGHRdY7VmAcbHTIPqKxnpCsOjZH9qoQeBrn6MZ1wDIsMoNE-AIp1Qk160PfG6gYmyko9cqinprNkcMFXvSIDGLWFQ7Zzw/?imgmax=800&quot; height=&quot;168&quot; style=&quot;background-image: none; border: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Simple, when you install the chomecast it adds an icon  &lt;br /&gt;allowing you to send chrome tabs and youtube videos to the device.&lt;br /&gt;
&lt;h1&gt;
Casting movies&lt;/h1&gt;
&lt;h2&gt;
Video Stream google chrome app&lt;/h2&gt;
This has been at great debate on the internet forums, I found &lt;a href=&quot;https://chrome.google.com/webstore/detail/videostream-for-google-ch/cnciopoikihiagdjbjpnocolokfelagl&quot;&gt;VideoStream for Chromecast&lt;/a&gt; it allows you to select a video file on your desktop and send it to the device incl mkv, avi, mpg, mp4 files. pretty cool. Does NOT support: subtitiles, video memory of where you are. When you’re playing the video, a new tab opens up allowing you to control the video Pause/Play and using a time slider on the video to seek in almost realtime (you need to press pause).&lt;br /&gt;
&lt;h2&gt;
Cast entire screen (experimantal)&lt;/h2&gt;
Another GREAT option is to view using : New &lt;strong&gt;CAST ENTIRE Screen (experiment&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinQ-6dMw1fwBcJOxYsSdJ4-W64ra5pDXCwlxhPV0sCV7A-lvfcFXyUo2TpDVE4qYSwSWiw56x5sroA9X2HxuERfCSJxNxFXcdIFmT4MNwLMe-tlpTS5aTusTWJeVIsJELRTCKFEA/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img align=&quot;left&quot; alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd1ymIZ3_ZCUAICLauW_C7KyWHQ2_NNw9Vh6iLPzbZ4U5VkvqN9QseUHyYNmvL7nAv11PcZRTGiMy1F3hO4blnlAve30wOJimF_riD4JszMtP7q24i7HWH1Ll2686DCww6yFJGVw/?imgmax=800&quot; height=&quot;151&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; float: left; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;al) &lt;/strong&gt;: allows you to well, mmm cast your entire screen it’s experimental although I found no problems with it.&lt;br /&gt;
&lt;br /&gt;
I used BSPLAYER (IMHO the best video player out there) to view a movie incl. sound: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFvF802FkcVbuF6wsGVLDoD17uR-lckvNXCGb-94cliwWH6zTjG8ZHAzF7mSGbrqKFv0BAt0ba0F2CyUPmQo-_KmgrW_rYM2dTtVtOhVWHMhFW6dLoIE336vnrrTiWzv98fSoNDg/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img align=&quot;left&quot; alt=&quot;image&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zx36iMmsTKXl-1C9K3Fy1CO5JAHEpbrLtTfOpBF6Hdg_D3xjj11hE88t4-hZeWN2IHSS_VRHvdzycf-NI7PWanE-Ko2Aj3rFbD2Z9s0w8pq6YeEZvPapzBsdzb9J0DcHymI01w/?imgmax=800&quot; height=&quot;172&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; float: left; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;As you can see subtitles and video not a problem, you need to mute the laptop of course but that’s almost the only drawback and makes sense. the playback is great, even at 720p extreme I got great performance on my I7 HP ENVY laptop, but you can always switch to 720p or even 420 if you WIFI/Laptop/GPU is not up for the task.&lt;br /&gt;
&lt;h1&gt;
&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;
&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;
&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;
View Videos from Samsung S3 device&lt;/h1&gt;
I downloaded the app, and used Viral HD which I found only today, which is SOOOO COOOL. It allows background playback, and shows all the latest viral videos and on and on and on … and of course it includes CHROME CASTING. so I watched the very funny &lt;a href=&quot;https://www.google.co.il/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=0CC8QuAIwAA&amp;amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DcDoRmT0iRic&amp;amp;ei=2bUdU-aSB8iv7Aaa-IGoCw&amp;amp;usg=AFQjCNFAdIdC8JPSAGNPFzxQMLz9BFAHEQ&amp;amp;sig2=VanE9deF2EK7mCt1kHFgiQ&amp;amp;bvm=bv.62578216,d.ZGU&quot;&gt;marauder top gear video (watch it its crazy funny)&lt;/a&gt; on my TV.&lt;br /&gt;
&lt;h1&gt;
Chromecast in the boardroom &lt;/h1&gt;
As I am a well seasoned presenter,&amp;nbsp; I think chromecast is ideal for video projectors/ lcd TVs. I am sure someone will make a real powerpoint chromecast addin (maybe even me) but for now, using the “CASTING ENTIRE SCREEN” function I mentioned earlier, you can show presentations on your tv.&amp;nbsp; The constant GoogleCast is sharing your screen can be moved using the Anchor&amp;nbsp; so that’s not such a hassle.&lt;br /&gt;
I believe the biggest challenge will be around security. To use chomrecast one needs to be connected to your WIFI. although companies today offer “guest-wifi” enabling users to login to demilitarized (DMZ) servers and the internet, to which the boardroom can utilize to connect the chromecast to its guest-wifi.&lt;br /&gt;
&lt;h1&gt;
The future of casting …&lt;/h1&gt;
I believe we are seeing the first glimpses of streaming to other devices. the NFC allows streaming from one phone to another, the User experience is still new and requires tweaking to make it friendly and fun for the average user to use and cast , but it exists. The biggest problem I think will be privacy and security. the chromecast is a new generation of INNEXPENSIVE devices able to stream to any TV/Projector with an HDMI port. The time will come and we will start more and better apps and abilities for the different casting vendors.&lt;br /&gt;
As I said before, I believe the future is security related casting apps&lt;br /&gt;
Currently in its infancy, chromecast connects to your wifi, however, more and more will we see parties and get-togethers&#39; where you might not know all your guests, so apps allowing secure tranfers without allowing strangers on your wifi, ability to create party queues and playlists for chromecast are around the corner.&lt;br /&gt;
One such app I saw today is the very badly named &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.creatingrevolutions.vbukitchromecast&quot;&gt;VBUKIT Chromecast&lt;/a&gt; app that allows casting to your device without giving your WIFI password to anyone. (check it out its pretty cool and the first of many security related chromecasting apps out there I believe). It works by running a server app on the computer connected to the chromecast and allowing anyone to scan a device code and upload their data to the “server” app running the queue on the device.</content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/3106370260243197036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/3106370260243197036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3106370260243197036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3106370260243197036'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/03/chromecast-your-life.html' title='ChromeCast your life'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwbugc6coOwFzwbXhjlkzYPjLHg1pv8-jK1HJzc6-3EEGHRdY7VmAcbHTIPqKxnpCsOjZH9qoQeBrn6MZ1wDIsMoNE-AIp1Qk160PfG6gYmyko9cqinprNkcMFXvSIDGLWFQ7Zzw/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7850047469180235034</id><published>2014-02-17T13:24:00.001+02:00</published><updated>2014-02-17T13:29:34.977+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Functional langauges"/><category scheme="http://www.blogger.com/atom/ns#" term="NodJs"/><category scheme="http://www.blogger.com/atom/ns#" term="R&amp;D"/><title type='text'>Java Noun Land</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I was reading &lt;a href=&quot;http://steve-yegge.blogspot.co.il/2006/03/execution-in-kingdom-of-nouns.html&quot;&gt;Steve Yegge’s post about Java Noun land&lt;/a&gt;. I was unable to comment in his post, I guess it’s too old, I’m too old or whatever.&lt;/p&gt; &lt;p&gt;I understand what he was talking about, I think the point was missed.&lt;/p&gt; &lt;p&gt;When taking out the garbage, their could be two approaches.&lt;/p&gt; &lt;p&gt;The User could have a function called User.TakeOut(garbage gc)&lt;/p&gt; &lt;p&gt;The Garbage could know how to remove itself Garbage.TakeOutBy(User u)&lt;/p&gt; &lt;p&gt;Or their could be an abstract function called Util.TakeOut (Doer do, Doee on)&lt;/p&gt; &lt;p&gt;This could then be utilized by any item wanting to be taken out, you could build a Utils library of verbs. Java core developers were afraid this would be too hard to maintain on large projects with novice programmers I think. So what they did was come up with Generics. Generics allows one to Write User.TakeOut&amp;lt;T&amp;gt;(T toremove) but the verb still belongs to User.&lt;/p&gt; &lt;p&gt;I see the point. We all do:&lt;/p&gt; &lt;p&gt;We all have Common modules, that include utility functions, very hard to attach to verbs. Stringutils class with static methods that are “kind” built for strings.&lt;/p&gt; &lt;p&gt;but a string is an array , so maybe Find&amp;lt;T[]&amp;gt;(T what) is more fitting to be put in ArrayUtils?&lt;/p&gt; &lt;p&gt;This is a conceptual decision and I have had to face them all my development life.(but since I have been programming since age of 13,14 I guess one can say my entire life)&lt;/p&gt; &lt;p&gt;C# has been using Delegates and Lambda, anonymous function etc. for a few versions now and I think for the optimal methodology it is the les rigid (Java guys don’t kill me here) of the languages.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I am currently researching NodeJS and IMHO C# could implement a working NodeJS architecture in its sleep with one hand tied behind its back. But would it be as efficient?&lt;/p&gt; &lt;p&gt;I don’t know….&lt;/p&gt; &lt;p&gt;What I like about C# is not the language somuch as the frameworks and stuff that I can just “use”. I hope the require modules willl be just as good in NodeJS.&lt;/p&gt; &lt;p&gt;Continuing with my research now. good day&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7850047469180235034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7850047469180235034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7850047469180235034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7850047469180235034'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/02/java-noun-land.html' title='Java Noun Land'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-8002113086181966040</id><published>2014-02-08T00:13:00.001+02:00</published><updated>2014-02-08T00:13:48.083+02:00</updated><title type='text'>Visual Studio 2013 ultimate  - comes without NUGET installed???</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I am not one to whine. &lt;/p&gt; &lt;p&gt;I am trying to use the new ASP.NET identity framework.&lt;/p&gt; &lt;p&gt;Using &lt;a title=&quot;http://www.asp.net/visual-studio/overview/2013/creating-web-projects-in-visual-studio#facebook&quot; href=&quot;http://www.asp.net/visual-studio/overview/2013/creating-web-projects-in-visual-studio#facebook&quot;&gt;http://www.asp.net/visual-studio/overview/2013/creating-web-projects-in-visual-studio#facebook&lt;/a&gt; I follow the tutorial (which is very well written as I looked it over).&lt;/p&gt; &lt;p&gt;So I try the template as instructed and YEE HAA :&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZSb7deR6k3Ev_00VMsIhR_MGQb4bm53DOQbL5-tEskXeKZsNBa-IK7div7m4XZbs7vZ1l-7eg8VNVktAhWlvrh51o_Ab5DFZzAdl3Sl5MPiVv5WShxoMKfbCt47ObTG3GvlETiA/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYaVJnqQ9WFCBbbC1YGrrnPD6FwMe_22u2GpupmS36iT5nN9rrCwUvFU4B1kfCCztcneqkzmJrOu5Y_NmeHe88qleAVkaVvEgkSRFPS-a_Dz_j3N0miNT6NDAPX3HOaOjcKeoHJA/?imgmax=800&quot; width=&quot;244&quot; height=&quot;121&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Exception 0x80070002 Oh crap. a quick google search comes up with NADA helpful&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Welp, I look at the different options and all I see is prerequisites:&lt;/p&gt; &lt;p&gt;&lt;a title=&quot;http://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/&quot; href=&quot;http://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/&quot;&gt;http://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;and others&lt;/p&gt; &lt;p&gt;NUGET NUGET NUGET&lt;/p&gt; &lt;p&gt;A quick check and sure enough, Nuget is not installed????&lt;/p&gt; &lt;p&gt;are you kidding me ? VS 2013 Ultimate comes without nuget installed??? this also happened in vs 2012. Microsoft still hasn’t set this up. They have options to install Blend and Lightswitch (whatever that is) but they don’t have the foresight to install a key framework 80% of Visual studio is based on ? Are you $^&amp;amp;$ kidding me ?&lt;/p&gt; &lt;p&gt;So install&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYYYtXCiuTKgFzptOfN3hzdq6ZVy9ol3G5UEqp2vy3599ONmtun64E6WgrxR9zd1j50dOrRGm0xYdwUh1LqxyD905Ltee_jPPO1cm0gMkr2IBFwlvaoFORT_MRfXL4fOaJ9s_qAg/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjERWkuF4Ry03y3avUdSg99RDfQBoHXgN6QwJW83Y-Mc98DqJkhh2aLhytWlZ-v0Zq1-XM7TRQjRQ5pLn_lev0CbwE6QW7EYgnaxEfb1ArW_TW-0ySnBBv0fMQOC5o-NUwWl3jnTg/?imgmax=800&quot; width=&quot;244&quot; height=&quot;150&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Downloaded, restarted the vs 2013, and sure enough&lt;/p&gt; &lt;p&gt;Now it’s working.&lt;/p&gt;   &lt;p&gt;Nice going Microsoft … just after I said you rule for adding Facebook, Google and Twitter oAuth logins built in, you have to make me upset.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/8002113086181966040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/8002113086181966040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8002113086181966040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8002113086181966040'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2014/02/visual-studio-2013-ultimate-comes.html' title='Visual Studio 2013 ultimate  - comes without NUGET installed???'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYaVJnqQ9WFCBbbC1YGrrnPD6FwMe_22u2GpupmS36iT5nN9rrCwUvFU4B1kfCCztcneqkzmJrOu5Y_NmeHe88qleAVkaVvEgkSRFPS-a_Dz_j3N0miNT6NDAPX3HOaOjcKeoHJA/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-8899100305487575099</id><published>2013-07-23T19:19:00.003+03:00</published><updated>2013-07-23T19:19:57.459+03:00</updated><title type='text'>השאלון למובייל</title><content type='html'>&lt;iframe frameborder=&quot;0&quot; height=&quot;500&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; src=&quot;https://docs.google.com/forms/d/1OWd3EBNHeUn4AxXG3ml33TPU7Pceo3O-EX0ENAZ51io/viewform?embedded=true&quot; width=&quot;760&quot;&gt;Loading...&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/8899100305487575099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/8899100305487575099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8899100305487575099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8899100305487575099'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2013/07/blog-post.html' title='השאלון למובייל'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-3723602044630208529</id><published>2013-03-05T17:20:00.001+02:00</published><updated>2013-03-05T17:22:01.876+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="COLUMN()"/><category scheme="http://www.blogger.com/atom/ns#" term="conditional formatting"/><category scheme="http://www.blogger.com/atom/ns#" term="excel"/><category scheme="http://www.blogger.com/atom/ns#" term="INDIRECT"/><category scheme="http://www.blogger.com/atom/ns#" term="ROW()"/><category scheme="http://www.blogger.com/atom/ns#" term="text concatination"/><title type='text'>Comparing columns in excel</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; style=&quot;width: 400px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;421&quot;&gt;I have been teaching advanced excel for many years but have never released this tidbit &lt;br /&gt;
lets say you have to columns with almost the same data except for a few places how to compare .&lt;br /&gt;
immediate response: next column ==&amp;gt; =IF(A2=A3,&quot;&quot;,&quot;NO&quot;) &lt;br /&gt;
but what if you want several columns to represent different test results?&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;10&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo28f6HtUCNlA8HRXfkWmG-kFt5UNmzWPDZ-wdYZvE2tytEFLWR_CuLQC6IdComcq35jcTe9hewMJS4zik_EVZdrmq6CXGtKrm81jz0vWB36YPOmzgn5TRwqvh__VC_wgc_qgr2g/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;649&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiukyRVz3uoKtqVcRAMvoZFp7iKDoDKrx7i38W2pgaxOnbVarfY_uiUTPaNoX-8PLfU1kmqfjT4ZSQBcs0bkztEFH5n9PfEU8w6mGZPkqrieBvQUIHkj60je38cK86ZhBnghLBcw/?imgmax=800&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;154&quot; /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;421&quot;&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;10&quot;&gt;&lt;/td&gt;     &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;
Advanced conditional formatting to the rescue&lt;/h2&gt;
The biggest issue students have with conditional formatting is its inquiry of the cell it is located on, so you cannot color a cell according to another&#39;s value.&lt;br /&gt;
INDIRECT to the rescue, INDIRECT is a function that allows you to write the address of the cell you wish to query and it will deliver the cells value.&lt;br /&gt;
So using concatenation and a few other text tricks:&lt;br /&gt;
CODE(&quot;A&quot;) will give me 65 which is the ascii number of A&lt;br /&gt;
CHAR(65) will return the char representation of the number 65 which is A&lt;br /&gt;
So CHAR(CODE(&quot;A&quot;)-1+2) will return B&lt;br /&gt;
COLUMN() returns the number of the column&lt;br /&gt;
ROW() returns the row number&lt;br /&gt;
If I am on row 3 column D (4)&lt;br /&gt;
Then CHAR(CODE(&quot;A&quot;)-1+COLUMN()-1)&amp;amp;amp;ROW() will return &#39;D3&#39;&lt;br /&gt;
INDIRECT(&#39;D3&#39;) will return the value of D3&lt;br /&gt;
So the following statement&lt;br /&gt;
=INDIRECT(CHAR(CODE(&quot;A&quot;)-1+COLUMN()-1)&amp;amp;amp;ROW()) &amp;lt;&amp;gt; INDIRECT(CHAR(CODE(&quot;A&quot;)-1+COLUMN())&amp;amp;amp;ROW())&lt;br /&gt;
Is actually&amp;nbsp;&amp;nbsp;&amp;nbsp; C3 &amp;lt;&amp;gt; D3&lt;br /&gt;
which means return TRUE when the statement is FALSE since the conditional format requires a true/false response, the statement returns True when the format needs to change.</content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/3723602044630208529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/3723602044630208529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3723602044630208529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/3723602044630208529'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2013/03/comparing-columns-in-excel.html' title='Comparing columns in excel'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiukyRVz3uoKtqVcRAMvoZFp7iKDoDKrx7i38W2pgaxOnbVarfY_uiUTPaNoX-8PLfU1kmqfjT4ZSQBcs0bkztEFH5n9PfEU8w6mGZPkqrieBvQUIHkj60je38cK86ZhBnghLBcw/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7842912875201364812</id><published>2012-07-02T19:42:00.000+03:00</published><updated>2012-07-02T19:44:30.546+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DataContract"/><category scheme="http://www.blogger.com/atom/ns#" term="Dot.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Dot.NET 4"/><category scheme="http://www.blogger.com/atom/ns#" term="KnownTypes"/><category scheme="http://www.blogger.com/atom/ns#" term="Reflection"/><category scheme="http://www.blogger.com/atom/ns#" term="ServiceKnownTypes"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>WCF KnownTypes and ServiceKnownTypes</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;When using a compiler one gets used to polymorphism.&lt;/p&gt; &lt;p&gt;How would you describe polymorphism?  Polymorphism for data objects is little more than rearranging and adding data to a form.&lt;/p&gt; &lt;p&gt;I&#39;d say someone invites it over to a party, you have the PartInfo class &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;PartyInfo&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;Address { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;Phone { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Sara, your friend calls you up and informs you about three other parties, however these parties have other information, one has Theme information, another has data about the DJ, and a third includes ages of the people there.&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;PartyDJData &lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;PartyInfo&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;DJ { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;PreviousPerformances { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;MusicTypesPlayed { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;PartyTheme &lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;PartyInfo&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public string &lt;/span&gt;Theme { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public bool  &lt;/span&gt;IsDressup { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;public bool  &lt;/span&gt;IsDiscountForDressup { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;PartyAges&lt;/span&gt;: &lt;span style=&quot;color: #2b91af&quot;&gt;PartyInfo&lt;br /&gt;    &lt;/span&gt;{&lt;br /&gt;        &lt;span style=&quot;color: blue&quot;&gt;int&lt;/span&gt;[] Ages { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You&#39;re a very diligent person, and want to write this down.  Say you get a pad and paper, and start writing.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Party1:&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Address : Yavne 24&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Phone: 5555-FFF&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Party2:&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;DJ : Joe Schmoe / Previous : saras bash, MusicTypes = House/ClubTrance.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Address: 123 kressent, drv&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Phone: XXX-YYY&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Party3:&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Theme: Angels and demons, IsDressup = yeah, IsDiscountForDressup = yeah&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Address = 154 vos str&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;phone: FFF-YYY&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Party 4: &lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Address : Hilton Hotel on the beach&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Ages { 25-35}&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Phone : GGG-XXX&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;now when you talk to your friend Adam, you tell him&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: “Hey Adam, and got the skinny on the good parties, get a pen!”&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: Ok, shoot!&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Party1: {Address : Yavne 24, Phone: 5555-FFF}&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: ok cool&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Party2: {Address: 123 kressent, drv, Phone: XXX-YYY}, oh and the dj is DJ “Joe Schmoe” who has Previously done saras bash he plays House/ClubTrance.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: wait. Whos the DJ at the first party ? &lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: I don’t know&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: ok, next?&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: It’s a theme party! Theme: Angels and demons, it’s Dressup not required but you get DiscountForDressup!&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Address = 154 vos str, phone: FFF-YYY&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: Whos the DJ ?&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: Dunno!&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: Is the party on kressent themed too ?&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: goo question, I think not.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: Ok, lets continue with the list, then we can divide forces and fill out the rest of the info.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: It’s ok theres only one more party, my sister told me about it.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;its at Hilton on the beach man! oh and it caters to 25-35 so you will finally find someone to teach you some manners!&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam:Yeah Whatever, so who’s the DJ ?&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You: I dunno.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;Adam: DUDE!!!!!!&lt;/pre&gt;&lt;br /&gt;&lt;h1&gt;Play-by-play serialization&lt;/h1&gt;&lt;pre class=&quot;code&quot;&gt;so what happened here?&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;You had all kinds of different party the info data which you listed under the party info &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_transfer_object&quot;&gt;DTO&lt;/a&gt;.  They all derived from &lt;strong&gt;PartyInfo&lt;/strong&gt;, but are not exactly the same and each have different attributes which Adam is not expecting.&lt;/pre&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre class=&quot;code&quot;&gt;When Adams started talking to you on the phone he could&#39;ve asked you what kind of data are you gonna give me because than a I need to set up my pad correctly.  To which you might answer a different answer for every week.  Sometimes you had DJ information sometimes you have Theme information. !!  Sometimes you had both !!&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre class=&quot;code&quot;&gt;Sometimes you had none.&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre class=&quot;code&quot;&gt;But you&#39;re not willing to commit.  Not willing to tell him all the options.  So he has no way of knowing.&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre class=&quot;code&quot;&gt;Adam expected you to give him the same information and details for every party.  He actually created the party info class and was trying to fill it up, but every time you added more details, and you didn&#39;t tell him in advance what kind of options to expect, so all this back and forth was in trying to figure out what to do with the new information and where to stick it in his pad!&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align=&quot;justify&quot;&gt;&lt;pre class=&quot;code&quot;&gt;What basically happened was he was distraught.&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;h1&gt;&lt;/h1&gt;&lt;/div&gt;&lt;br /&gt;&lt;h1&gt;The KnownType Attribute&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;By relaying some information at the very beginning we could have helped Adam make sense of information.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If they would have written&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;[&lt;span style=&quot;color: #2b91af&quot;&gt;KnownType&lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: #2b91af&quot;&gt;PartyDJData&lt;/span&gt;))]&lt;br /&gt;[&lt;span style=&quot;color: #2b91af&quot;&gt;KnownType&lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: #2b91af&quot;&gt;PartyTheme&lt;/span&gt;))]&lt;br /&gt;[&lt;span style=&quot;color: #2b91af&quot;&gt;KnownType&lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: #2b91af&quot;&gt;PartyAges&lt;/span&gt;))]&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;public class &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;PartyDataForTonight&lt;br /&gt;&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: blue&quot;&gt;public &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;IEnumerable&lt;/span&gt;&amp;lt; &lt;span style=&quot;color: #2b91af&quot;&gt;PartyInfo &lt;/span&gt;&amp;gt; parties { &lt;span style=&quot;color: blue&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue&quot;&gt;set&lt;/span&gt;; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Adam could have tried to figure out the data on his own.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So why can’t you just use Polymophism ?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Well Polymorphism makes more sense when you have a the TYPE of the instance at hand.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;sometimes this is not the case.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The Deserializer (Adam) will go over the data and try to understand which PartyInfo you were referring to. For some reason they did not try the “try polymiphism first and if stuck shout” the moved directly to the “shout” part.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;if you send a bunch of PartyInfo objects down the wire they will fail in deserialization. what you need to do is add the KnownType to them. his will help with understanding how to deal with them and what to deserialize given the chance.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;this will prove to be performance degrading as for every “PossibleType” the deserializer will have to stop, ponder what class to deserialize this too and only then deserialize.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If&lt;/p&gt;&lt;br /&gt;&lt;p&gt;next time I’ll talk about ServiceKnown Type.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7842912875201364812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7842912875201364812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7842912875201364812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7842912875201364812'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/07/wcf-knowntypes-and-serviceknowntypes.html' title='WCF KnownTypes and ServiceKnownTypes'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-8243664413084910489</id><published>2012-06-26T17:52:00.001+03:00</published><updated>2012-06-26T17:52:49.657+03:00</updated><title type='text'>DBS Stuff</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Files&lt;/h3&gt;  &lt;p&gt;Located under Files&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMqnhXs87eXwuChVLrk4uy0QpWs3H5kD9TF7GltxBh-pAuL4aXV6RaeLs55SV9LhEdFKUiEDqbIoK1Aw4hbIS3awvZ-i2tUTIHFn7rbhVBCUCfkFgnZEwE_yNWrs5fMWoRtOcEUg/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiitel0uBAuMh2Wlj7l6FKSnuqyAquwL-ATCoP0xfSTEJ1x7eIbX49lxte6Tt05AFH_qyLSiV82HEFKFGlx6MVoBJ_UQE1HSG9MajXTnziSKkSvxkr4bgWs35yvXP2jkjQnBdrNYQ/?imgmax=800&quot; width=&quot;491&quot; height=&quot;124&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTGvYvvyE3J8oOKYV-hv2Dde97pIclG1NfKF6qjhCM_l8_4w2vMLTcbByxUyvQO7EdcWI3iQ-xaDR4DGkJ1W-tPQvihodqvOgonI_87QTzxdvGM_fZNjzeyD9GGE_yJtuH22XWdg/s1600-h/clip_image001%25255B3%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNISeybQoyxmB9ddVFSjS-jGksnJs79Y8K1DER8G7s37OJsmVPB4bTNL8ppSmmPb1n8qJ47m_6O8Uz8Ih88qLvueRBLHgYUuS9U_IEaFGE4MYWyWOgANQoby1-M-kyWg1YWwgh1Q/?imgmax=800&quot; width=&quot;244&quot; height=&quot;192&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Data: Initial at least 3 GB | &lt;b&gt;Autogrowth&lt;/b&gt;, at least 100MB each iteration. Better to use in Megabytes rather than in Percent&lt;/p&gt;  &lt;p&gt;Log: Initial size 7GB |&lt;b&gt;Autogrowth&lt;/b&gt; at least 100MB each iteration.&lt;/p&gt;  &lt;h4&gt;FILE GROUPS&lt;/h4&gt;  &lt;p&gt;Different files, preferably on different machines&lt;/p&gt;  &lt;p&gt;Allows tables, and in general SQL objects, to be created in different files&lt;/p&gt;  &lt;p&gt;CREATE TABLE [dbo].[Status](   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [StatusId] [smallint] IDENTITY(1,1) NOT NULL,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [Type] [nchar](50) NOT NULL,    &lt;br /&gt; CONSTRAINT [PK_Status] PRIMARY KEY CLUSTERED     &lt;br /&gt;(    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [StatusId] ASC    &lt;br /&gt;)WITH (PAD_INDEX&amp;#160; = OFF, STATISTICS_NORECOMPUTE&amp;#160; = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS&amp;#160; = ON, ALLOW_PAGE_LOCKS&amp;#160; = ON) &lt;font style=&quot;background-color: #d19049&quot;&gt;&lt;font style=&quot;background-color: #d19049&quot;&gt;ON [PRIMARY]&lt;/font&gt;      &lt;br /&gt;&lt;/font&gt;) &lt;font style=&quot;background-color: #9c85c0&quot;&gt;ON [PRIMARY]&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font style=&quot;background-color: #d19049&quot;&gt;Brown&lt;/font&gt; is the index Filegroup&lt;/p&gt;  &lt;p&gt;&lt;font style=&quot;background-color: #9c85c0&quot;&gt;Purple&lt;/font&gt; is the Table FileGroup&lt;/p&gt;  &lt;p&gt;Primary is the default file group when none are created&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;LOG&lt;/h5&gt;  &lt;p&gt;Use a sequential writing hard disk - such as Raid 0 or Raid 1.&lt;/p&gt;  &lt;p&gt;Full – saves everything, incl all bulk inserts (values), is reduced only when db is backed up| used for differential backups.&lt;/p&gt;  &lt;p&gt;Bulk – saves almost everything, not including bulk inserts i.e. It only saves the size of the bulk insert without the data itself.&lt;/p&gt;  &lt;p&gt;Simple – a cyclical log file that only saves data not yet committed as well as last check points.&lt;/p&gt;  &lt;h5&gt;DATA&lt;/h5&gt;  &lt;p&gt;User random access writing hard disk – such as Raid 5&lt;/p&gt;  &lt;h3&gt;Hebrew&lt;/h3&gt;  &lt;p&gt;Use collation &amp;quot;HEBREW_CI_AS&amp;quot;&lt;/p&gt;  &lt;p&gt;Collation however only works for &lt;b&gt;varchar&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In general than adding data in Unicode don&#39;t forget to use &lt;b&gt;N&lt;/b&gt;&#39;מידע חשוב&#39;! The N stands for Unicode.&lt;/p&gt;  &lt;h3&gt;SQL DDL&lt;/h3&gt;  &lt;h4&gt;Decimal (Scale, Precision)&lt;/h4&gt;  &lt;p&gt;Scale – number of digits&lt;/p&gt;  &lt;p&gt;Precision – number of digits (of scale) which are decimal.&lt;/p&gt;  &lt;p&gt;SQL prefers INT over other types in general.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Nchar / Varchar&lt;/h2&gt;  &lt;p&gt;Nchar – char that is Unicode (not dynamic)&lt;/p&gt;  &lt;p&gt;varchar - Variable (dynamic) sized data strings. (Penalty of size of string – 2bytes)&lt;/p&gt;  &lt;p&gt;Nvarchar – Dynamic Unicode string (incl the penalty)&lt;/p&gt;  &lt;p&gt;Unicode – takes up 2 chars for every char (2X the space)&lt;/p&gt;  &lt;h5&gt;Misc&lt;/h5&gt;  &lt;p&gt;Add Indexes to most ForeignKey constraints&lt;/p&gt;  &lt;h2&gt;DataBase projects&lt;/h2&gt;  &lt;p&gt;CLR allows to add Dot.NET CLR dlls that can plugin and create new &amp;quot;Functions&amp;quot;, that run using Dot.Net engine per row (like any sql function).&lt;/p&gt;  &lt;p&gt;To create -&amp;gt;&lt;/p&gt;  &lt;p&gt;Visual Studio è New Projectè DataBase è SqlServerè CLR Database project&lt;/p&gt;  &lt;h3&gt;Service Broker&lt;/h3&gt;  &lt;p&gt;Like a crippled msmq.&lt;/p&gt;  &lt;p&gt;Includes an Event driven DeQueue that can trigger a stored procedure&lt;/p&gt;  &lt;p&gt;You can configure Max currents&lt;/p&gt;  &lt;p&gt;Is Transactionable {with rollback support }&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/8243664413084910489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/8243664413084910489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8243664413084910489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8243664413084910489'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/06/dbs-stuff.html' title='DBS Stuff'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiitel0uBAuMh2Wlj7l6FKSnuqyAquwL-ATCoP0xfSTEJ1x7eIbX49lxte6Tt05AFH_qyLSiV82HEFKFGlx6MVoBJ_UQE1HSG9MajXTnziSKkSvxkr4bgWs35yvXP2jkjQnBdrNYQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-2180546930208644220</id><published>2012-06-05T18:41:00.001+03:00</published><updated>2012-06-05T18:41:41.984+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="iis"/><category scheme="http://www.blogger.com/atom/ns#" term="visual studio 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="web deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Server 2008 RC"/><title type='text'>Publish and deploy</title><content type='html'>&lt;p&gt;For those still looking, I had to make sure to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Specify port 8172, use the default service name (msdeploy.axd), use https and check the box to allow untrusted certificates in the publish service url from Visual Studio:&lt;a href=&quot;https://serveraddress:8172/msdeploy.axd&quot;&gt;https://serveraddress:8172/msdeploy.axd&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also, I found this &lt;a href=&quot;http://learn.iis.net/page.aspx/516/configure-the-web-deployment-handler/&quot;&gt;IIS article&lt;/a&gt; to be extremely helpful for setting up the service.&lt;/p&gt;  &lt;p&gt;Pasted from &amp;lt;&lt;a href=&quot;http://stackoverflow.com/questions/5490478/vs-2010-publish-using-web-deploy&quot;&gt;http://stackoverflow.com/questions/5490478/vs-2010-publish-using-web-deploy&lt;/a&gt;&amp;gt; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.microsoftpdc.com/2009/FT56?type=wmvhigh&quot;&gt;http://www.microsoftpdc.com/2009/FT56?type=wmvhigh&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://learn.iis.net/page.aspx/516/configure-the-web-deployment-handler/&quot;&gt;http://learn.iis.net/page.aspx/516/configure-the-web-deployment-handler/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When faced with :&lt;/p&gt;  &lt;p&gt;Web deployment task failed.(Could not complete the request to remote agent URL &#39;&lt;a href=&quot;https://dev1:8172/msdeploy.axd?site=Default&quot;&gt;https://dev1:8172/msdeploy.axd?site=Default&lt;/a&gt; web site&#39;.)&lt;/p&gt;  &lt;p&gt;Could not complete the request to remote agent URL &#39;&lt;a href=&quot;https://dev1:8172/msdeploy.axd?site=Default&quot;&gt;https://dev1:8172/msdeploy.axd?site=Default&lt;/a&gt; web site&#39;. &lt;/p&gt;  &lt;p&gt;The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.The remote certificate is invalid according to the validation procedure.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_GYdA8jYegIyjr2UO4Cono5HjtoEoKwaDzqXQRjp1PUDUa-NNU0SA-9oV8wRrw63pRSuiUiYsYX4K9p240REOzlNm9komi6hu-MAj9WZJbaRovA8OZWwUylxPtiO9RL8CZNSYg/s1600-h/clip_image001%25255B3%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZYYdFc1siktxcBbZP0RyN8MgfZ9HeNH5RCuaXEuHxTbAFc3PXRXnAqYdg9DpfRDIYkvgoQuJ_P7lcjatG31Sa7WHkr4ELSqER3cO45E3vLusbDXlf92VSysfFRvezPD7bZ9VteQ/?imgmax=800&quot; width=&quot;186&quot; height=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Service URL without the &lt;a href=&quot;http://&quot;&gt;http://&lt;/a&gt; defaults to &lt;a href=&quot;https://&quot;&gt;https://&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;BUT, because Https means Secure, we need a certificate.&lt;/p&gt;  &lt;p&gt;However the IIS is not configured with a certificate, so it fails&lt;/p&gt;  &lt;p&gt;You need to check the    &lt;br /&gt;&amp;quot;Allow untrusted certificate&amp;quot; checkbox&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/2180546930208644220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/2180546930208644220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/2180546930208644220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/2180546930208644220'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/06/publish-and-deploy.html' title='Publish and deploy'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZYYdFc1siktxcBbZP0RyN8MgfZ9HeNH5RCuaXEuHxTbAFc3PXRXnAqYdg9DpfRDIYkvgoQuJ_P7lcjatG31Sa7WHkr4ELSqER3cO45E3vLusbDXlf92VSysfFRvezPD7bZ9VteQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-8638973428654859653</id><published>2012-04-08T18:30:00.001+03:00</published><updated>2012-04-08T18:30:36.231+03:00</updated><title type='text'>Web Deployment on IIS7</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Transforms Web.Config.Release&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://vishaljoshi.blogspot.com/2009/02/web-deployment-with-vs-2010-and-iis.html&quot;&gt;http://vishaljoshi.blogspot.com/2009/02/web-deployment-with-vs-2010-and-iis.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Install IIS7 Deployment&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;download Web Platform Installer for IIS7, only way I managed was to install chrome, and then download it.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2vVaR_Hsa1MRYYuJUfEnVZKmwTRh0JbVXKinol6SaGe5dXaauvoloE36H0NMv5yI6MBG284vmVnwTAZFXfsHY7fqlYr8D6WGAOvmFuWqsLTjAHq119s1qavWO4Pbwg7kEzMFV_g/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz9EuhAnY99qOX3GGJD6cZH9pom59VhPrYMDk1DPl4n1EYGQWzuLx6q6QsXFZAJw3-Yh_7icOKmnOLyB5MnuCd-y6e_og_XEx8eiVcqe23Oa8LiAWSHQ6w0yvyDS20Dl4E0JgG0A/?imgmax=800&quot; width=&quot;451&quot; height=&quot;252&quot; /&gt;&lt;/a&gt; YAY microsoft, lock me out and make me install an UNSAFE browser just to do basic admin IT work.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://technet.microsoft.com/en-us/library/dd569059.aspx&quot;&gt;http://technet.microsoft.com/en-us/library/dd569059.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihaf7SxQEVpodboOYWFr7B_VjtbXxtUmnSLR9wxV1PCzsEIOwJkwxdhJEilA83xLCwINZbRqFWXeHJVa-6AQlQlnlhiwhZITwX48QfcVQ34WWCvmO7aJ6zAku7Swa7UZQ6xcPQnA/s1600-h/image%25255B6%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZEq51HlB3EFoVKrBl19SUHIgF1xKFi_udZ7hPTlDfcp4JHCbjJ-YpMxxGJTH8lU7xlacyOUIh4MGWxPkDSiXQ3Wdq_ic4nYutQ3R7s44JhIIQXULVinSiX8mOWCSsbyu34_WOSw/?imgmax=800&quot; width=&quot;437&quot; height=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdOar3b5I_waKEDWoVrJCw1ozkRtm2zZfossdq0f36OItD1WgunMaeMuXIPqGituaCEkbEbOxa9QBPzjGPqm2angpn6ruBriw5v93hjZN_BzpaF8BE2M2_yDEptIvOZzoEk-YUQQ/s1600-h/image%25255B10%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSzCPsJxOwddKzs08ar_yj34EoKllGDGoMmkVcmGyvBgC2_MlWN-kRCrl_oJzNCGFpWeSR3Up-UdmhrmkzC0ngXrHy9OUlADNeOOzXMp1iFtYdyEWxVoo7YLNbhHitO6Iaa0CIwg/?imgmax=800&quot; width=&quot;244&quot; height=&quot;190&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;select custom&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX-K2UFhvnNxN9vnKauB5ReAe0Gvymab_8dBwAcfb7UGrYY6bU-jprgJluYOQd-4wT9IwxLLFC7uPRkMSb6IDZnAd_6XPZl4jek1PnCGPWvTwKXpgj2o9MMR5RNjyiHt_EjMoAuA/s1600-h/image%25255B13%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm8g_ZHe6m8Tq5E_aKDS_nUOPNhaA7OymOmozL0hCt6t6vy8P99iBh0cAiK2sk6afiDng-4me8cPG6_iGZpBgKoS3TmeLYNLjkomMB4iMMDSEFSs7oDOF21z5HkDWlv8RCSMqK0w/?imgmax=800&quot; width=&quot;244&quot; height=&quot;185&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://learn.iis.net/page.aspx/1022/how-to-configure-a-site-for-publishing-with-web-deploy/&quot;&gt;http://learn.iis.net/page.aspx/1022/how-to-configure-a-site-for-publishing-with-web-deploy/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Web Deploy 2.0 includes a new UI in IIS Manager to configure an IIS site for Web Deploy publishing. This UI serves two purposes:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Sets up file system permissions to enable the Web Deploy publishing service to publish to the site &lt;/li&gt;    &lt;li&gt;Generates a publish settings file which can be used in tools like WebMatrix or Visual Studio 2010 to publish to the site without having to enter publishing settings manually&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Let&#39;s say that we want to grant a local Windows user &amp;quot;JohnDoe&amp;quot; publishing access to the IIS site, contoso.com:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Start IIS Manager by clicking Start &amp;gt; Run and typing &amp;quot;inetmgr.exe&amp;quot; &lt;/li&gt;    &lt;li&gt;Connect to the server you want to manage. &lt;/li&gt;    &lt;li&gt;Expand the Sites node and right click &amp;quot;contoso.com&amp;quot; &lt;/li&gt;    &lt;li&gt;Click Deploy &amp;gt; Configure for Web Deploy Publishing... &lt;/li&gt;    &lt;li&gt;The following UI will show - you can simply click &amp;quot;Setup&amp;quot; and the currently logged-in user will be granted Web Deploy publishing permissions.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href=&quot;http://learn.iis.net/file.axd?i=3588&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://learn.iis.net/file.axd?i=3588&quot; /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Now try to publish from VS STUDIO 2010&lt;/p&gt;  &lt;p&gt;If you get this error &lt;font style=&quot;background-color: #ffff00&quot;&gt;Could not load file or assembly bla bla bla one of its dependencies. &lt;strong&gt;An attempt was made to load a program with an incorrect format &lt;/strong&gt;it might be a 32bit/64bit issue&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Go to IIS -&amp;gt; Application Pool -&amp;gt; Advance Settings -&amp;gt; Enable 32-bit Assemblies&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/questions/41449/i-get-a-an-attempt-was-made-to-load-a-program-with-an-incorrect-format-error-o&quot;&gt;http://stackoverflow.com/questions/41449/i-get-a-an-attempt-was-made-to-load-a-program-with-an-incorrect-format-error-o&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4pvo7wteAAtKzFVKb33mbxlKIjkDfAxd0AHD3cpzUF6ogYP66rAq9u9DDt2614hBI87qvMxnQJgzIt0dI1DjDh4-JeYzcf2MAGE_buVWdFYdOxVMVfbcxY-2l1TyymRemExKfBQ/s1600-h/image%25255B17%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVXANRce6X04UwmDOfRM5mUSRj00WDzbHRYAc6B0uK36Ai4vItj3zToigzsByiRFTW6r-IabQRBD5ArTn93YHs-GBuwWH6y_ajLD0DlXmbztsCfOeluzaBEB3iycTr7kTem-GqXQ/?imgmax=800&quot; width=&quot;506&quot; height=&quot;343&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;And now FINALLY&lt;/p&gt;    &lt;p&gt;I works&lt;/p&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/8638973428654859653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/8638973428654859653' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8638973428654859653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/8638973428654859653'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/04/web-deployment-on-iis7.html' title='Web Deployment on IIS7'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz9EuhAnY99qOX3GGJD6cZH9pom59VhPrYMDk1DPl4n1EYGQWzuLx6q6QsXFZAJw3-Yh_7icOKmnOLyB5MnuCd-y6e_og_XEx8eiVcqe23Oa8LiAWSHQ6w0yvyDS20Dl4E0JgG0A/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-2159876251113241431</id><published>2012-04-03T11:54:00.001+03:00</published><updated>2012-04-03T11:54:30.799+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="log4net"/><category scheme="http://www.blogger.com/atom/ns#" term="Reflection"/><category scheme="http://www.blogger.com/atom/ns#" term="source files"/><category scheme="http://www.blogger.com/atom/ns#" term="StringFormat"/><title type='text'>Log4Net Configuration trouble</title><content type='html'>&lt;p&gt;Recently i had some log4net &lt;a href=&quot;http://stackoverflow.com/questions/9757876/whats-wrong-with-my-log4net-configuration-file&quot;&gt;configuration trouble&lt;/a&gt; &lt;p&gt;log4net has a feature in its configuration file where it tries to read Configuration name tags from the config file and locates them as writable properties on the class (Logger/Appender etc..) using reflection. &lt;p&gt;the function used is &lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;protected void &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;log4net.Repository.Hierarchy.&lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;XmlHierarchyConfigurator&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;.SetParameter(&lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;XmlElement&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;element,&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;target)&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;pre&gt;this function locates the property for you and updates its data if it finds it if not it fills your screen and logs with garbage until its fixed!&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;It will even locate the property if you write it in the wrong case.&lt;/pre&gt;&lt;pre&gt;However, it does not help you in locating your error. I do not expect log4net developers to write a “google-style” {did you mean xxx} function. But I think they could have a better log response&lt;/pre&gt;&lt;pre&gt;instead of a bland&lt;/pre&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;LogLog&lt;/span&gt;.Error(declaringType, &lt;span style=&quot;color: #a31515&quot;&gt;&quot;XmlHierarchyConfigurator: Cannot find Property [&quot; &lt;/span&gt;+ name + &lt;span style=&quot;color: #a31515&quot;&gt;&quot;] to set object on [&quot; &lt;/span&gt;+ target.ToString() + &lt;span style=&quot;color: #a31515&quot;&gt;&quot;]&quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;It would be nicer (I think) to write something like&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;LogLog&lt;/span&gt;.Error(declaringType,&lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt;.Format(&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;&quot;{2}Reflection did not find Writeable Property/Field named [{0}]. Check ObjectBrowser for class {1} and see what writable attributes/fields exist. maybe misspelled? You XML Error is located in {3}&quot;&lt;br /&gt;&lt;/span&gt;, name, target.ToString(), &lt;span style=&quot;color: #a31515&quot;&gt;&quot;XmlHierarchyConfigurator&quot;&lt;/span&gt;, element.ParentNode.InnerXml)&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;which would give something like&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;XmlHierarchyConfiguratorReflection did not find Writeable Property/Field named [hello]. Check ObjectBrowser for object log4net.Repository.Hierarchy.DefaultLoggerFactory+LoggerImpl and see what writable attributes/fields exist. maybe misspelled? You XML Error is located in &amp;lt;level value=\&quot;Info\&quot; /&amp;gt;&lt;strong&gt;&amp;lt;hello value=\&quot;4\&quot; /&amp;gt;&lt;/strong&gt;&amp;lt;appender-ref ref=\&quot;LogFileAppender\&quot; /&amp;gt;&amp;lt;appender-ref ref=\&quot;RSLogFileAppenderInfo\&quot; /&amp;gt;&amp;lt;appender-ref ref=\&quot;RSLogFileAppenderFatal\&quot; /&amp;gt;&quot;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;for the error of adding the field “hello” to the XML.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This is at the very least a more helpful comment.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;At least now I know what to look for. any attribute in log4nt configuration must have a real writeable field/property in the log4net object hierarchy.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;good to know.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Mickey Perlstein&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/2159876251113241431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/2159876251113241431' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/2159876251113241431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/2159876251113241431'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/04/log4net-configuration-trouble.html' title='Log4Net Configuration trouble'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7253692454566171324</id><published>2012-04-03T10:15:00.001+03:00</published><updated>2012-04-03T10:15:38.091+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="file types"/><category scheme="http://www.blogger.com/atom/ns#" term="preview pane"/><category scheme="http://www.blogger.com/atom/ns#" term="text files"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7"/><title type='text'>Preview Pane : Windows 7</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;forgot all about this one&lt;/p&gt;  &lt;p&gt;taken from &lt;a href=&quot;http://www.winvistaclub.com/t81.html&quot;&gt;http://www.winvistaclub.com/t81.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But, if you have a custom file type; and wish to register a &lt;em&gt;plain text&lt;/em&gt; or a &lt;em&gt;multimedia preview handler&lt;/em&gt;, for this custom &lt;a href=&quot;http://www.winvistaclub.com/t81.html#&quot;&gt;file type&lt;/a&gt;, you can do so using this utility.&lt;/p&gt;  &lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.winvistaclub.com/image/preconfig.jpg&quot; width=&quot;359&quot; height=&quot;383&quot; /&gt;&lt;/p&gt;  &lt;p&gt;Winhelponline’s &lt;a href=&quot;http://www.winhelponline.com/utils/previewconfig.zip&quot;&gt;PreviewConfig Utility&lt;/a&gt; allows you add or remove preview handler for a file type. Its a very useful and a easy-to-use utility. Worth a check-out. Do read its ReadMe file first.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7253692454566171324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7253692454566171324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7253692454566171324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7253692454566171324'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/04/preview-pane-windows-7.html' title='Preview Pane : Windows 7'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-248699141867313838</id><published>2012-03-02T17:20:00.001+02:00</published><updated>2012-03-02T17:20:46.537+02:00</updated><title type='text'>Console write Color Encoder</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sometimes I use a console logger, for simple apps.and it’s more important to see the data than the text for a programmer.&lt;/p&gt;  &lt;p&gt;I have written a simple Console encoding app that spits color encoded console lines to the console.&lt;/p&gt;  &lt;p&gt;I may some day write a log4net logger that does this, but for now:&lt;/p&gt;  &lt;div id=&quot;codeSnippetWrapper&quot;&gt;   &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; EncodeConsole(&lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; message&lt;br /&gt;          , &lt;span style=&quot;color: #0000ff&quot;&gt;params&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;object&lt;/span&gt;[] args)&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; content = message;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; pattern = &lt;span style=&quot;color: #006080&quot;&gt;@&amp;quot;{(.*?)}&amp;quot;&lt;/span&gt;;&lt;br /&gt;          MatchCollection mc = Regex.Matches(content, pattern&lt;br /&gt;              ,RegexOptions.Compiled); &lt;span style=&quot;color: #008000&quot;&gt;//compiled is faster&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;          &lt;span style=&quot;color: #cc6633&quot;&gt;#region&lt;/span&gt; make better Exception that &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;.format&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (mc.Count &amp;gt; args.Length)&lt;br /&gt;          {&lt;br /&gt;              &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; format1 = &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;you supplied {0} params, but require {1} in the template&amp;quot;&lt;/span&gt;;&lt;br /&gt;              &lt;span style=&quot;color: #008000&quot;&gt;///erro message&lt;/span&gt;&lt;br /&gt;              &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; err = &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;.Format(format1, args.Length, mc.Count); &lt;br /&gt;              &lt;span style=&quot;color: #0000ff&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; FormatException( err );&lt;br /&gt;          }&lt;br /&gt;          &lt;span style=&quot;color: #cc6633&quot;&gt;#endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; encoded = message;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;foreach&lt;/span&gt; (Match item &lt;span style=&quot;color: #0000ff&quot;&gt;in&lt;/span&gt; mc)&lt;br /&gt;           encoded = encoded.Replace(item.Value, &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;,#,&amp;quot;&lt;/span&gt;).Replace(&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;,,&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;          var arr = encoded.Split(&lt;span style=&quot;color: #006080&quot;&gt;&#39;,&#39;&lt;/span&gt;);&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; out_ = &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; matchnum = 0;&lt;br /&gt;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; i = 0; i &amp;lt; arr.Length; i++)&lt;br /&gt;          {&lt;br /&gt;              &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (arr[i][0] == &lt;span style=&quot;color: #006080&quot;&gt;&#39;#&#39;&lt;/span&gt;)&lt;br /&gt;              {&lt;br /&gt;                  Console.ForegroundColor = ConsoleColor.White;&lt;br /&gt;                  Console.BackgroundColor = ConsoleColor.Blue;&lt;br /&gt;                  var oldmatch = mc[matchnum].Value;&lt;br /&gt;                  var g = oldmatch.Split(&lt;span style=&quot;color: #006080&quot;&gt;&#39;:&#39;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;                  &lt;span style=&quot;color: #008000&quot;&gt;//will always be 0 for data&lt;/span&gt;&lt;br /&gt;                  &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; match = &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;{0}&amp;quot;&lt;/span&gt;;&lt;br /&gt;                  &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (g.Length &amp;gt; 1) &lt;br /&gt;                      match = &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;{0:&amp;quot;&lt;/span&gt; + g[1];&lt;br /&gt;                  &lt;br /&gt;                  var data = &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;.Format(match, args[matchnum]);&lt;br /&gt;                  arr[i] = data;&lt;br /&gt;                  matchnum++;&lt;br /&gt;              }&lt;br /&gt;              &lt;span style=&quot;color: #0000ff&quot;&gt;else&lt;/span&gt;&lt;br /&gt;                  Console.ResetColor();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;              Console.Write(arr[i]);&lt;br /&gt;              out_ += arr[i];&lt;br /&gt;&lt;br /&gt;          }&lt;br /&gt;          Console.WriteLine(&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;          &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; out_;&lt;br /&gt;      }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/248699141867313838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/248699141867313838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/248699141867313838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/248699141867313838'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/03/console-write-color-encoder.html' title='Console write Color Encoder'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7015498513485223377</id><published>2012-02-14T15:09:00.001+02:00</published><updated>2012-02-14T15:09:28.673+02:00</updated><title type='text'>Visual Studio TFS very slow</title><content type='html'>&lt;p&gt;It so happens that in Visual studio, the connection to a TFS server is through a possible proxy server. (A default one)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you VS is slow to take TFS,&lt;/p&gt;  &lt;p&gt;go to the &lt;/p&gt;  &lt;p&gt;Visual Studio 10.0/Common7/IDE/devenv.exe.config file&lt;/p&gt;  &lt;p&gt;go to the bottom&lt;/p&gt;  &lt;p&gt;locate &amp;lt;system.net&amp;gt;&lt;/p&gt;  &lt;p&gt;and add&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;system.net&amp;gt;   &lt;br /&gt;&lt;strong&gt;&lt;font style=&quot;background-color: #ffff00&quot;&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;defaultProxy enabled=&amp;quot;false&amp;quot; /&amp;gt;       &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;settings&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ipv6 enabled=&amp;quot;true&amp;quot;/&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/settings&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/system.net&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;appSettings&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;add key=&amp;quot;TestProjectRetargetTo35Allowed&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/appSettings&amp;gt;    &lt;br /&gt;&amp;lt;/configuration&amp;gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;this will stop it from looking for your TFS server on the internet&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7015498513485223377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7015498513485223377' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7015498513485223377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7015498513485223377'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2012/02/visual-studio-tfs-very-slow.html' title='Visual Studio TFS very slow'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-6965624028589141081</id><published>2011-12-15T13:54:00.002+02:00</published><updated>2011-12-15T14:26:06.866+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FieldType"/><category scheme="http://www.blogger.com/atom/ns#" term="GetValue"/><category scheme="http://www.blogger.com/atom/ns#" term="Question in Interviews"/><category scheme="http://www.blogger.com/atom/ns#" term="recursion"/><category scheme="http://www.blogger.com/atom/ns#" term="Reflection"/><category scheme="http://www.blogger.com/atom/ns#" term="StringBuilder"/><category scheme="http://www.blogger.com/atom/ns#" term="StringFormat"/><title type='text'>A Reflective Question</title><content type='html'>&lt;p&gt;I was recently asked a Question in an interview about Creating a function that can read reflection of certain aspects off a class instance. (some version of debugger … I guess)&lt;/p&gt;  &lt;p&gt;anyway, here’s my solution (using recursion of course)&lt;/p&gt;  &lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;private static string &lt;/span&gt;Reflective(&lt;span style=&quot;color: blue&quot;&gt;string &lt;/span&gt;instanceName, &lt;span style=&quot;color: #2b91af&quot;&gt;Type &lt;/span&gt;type, &lt;span style=&quot;color: blue&quot;&gt;object &lt;/span&gt;obj, &lt;span style=&quot;color: blue&quot;&gt;int &lt;/span&gt;depth)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;StringBuilder &lt;/span&gt;sb = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StringBuilder&lt;/span&gt;();&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;string &lt;/span&gt;format = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;* &amp;lt;{0}&amp;gt; {1}&amp;quot;&lt;/span&gt;;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;int &lt;/span&gt;i = 0; i &amp;lt;= depth; i++) &lt;br /&gt;                format = (&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\t&amp;quot;&lt;/span&gt;) + format;&lt;br /&gt;            &lt;br /&gt;            sb.AppendFormat(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\n&amp;quot; &lt;/span&gt;+ format, &lt;br /&gt;                 type.Name, instanceName);&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;(obj == &lt;span style=&quot;color: blue&quot;&gt;null&lt;/span&gt;)&lt;br /&gt;                &lt;span style=&quot;color: blue&quot;&gt;return &lt;/span&gt;sb.ToString() &lt;br /&gt;                    + &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;-&amp;gt; {Null}&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color: #2b91af&quot;&gt;FieldInfo&lt;/span&gt;[] fields = type.GetFields();&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;foreach &lt;/span&gt;(&lt;span style=&quot;color: #2b91af&quot;&gt;FieldInfo &lt;/span&gt;fld &lt;span style=&quot;color: blue&quot;&gt;in &lt;/span&gt;fields)&lt;br /&gt;            {&lt;br /&gt;                format = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;&amp;lt;{2}&amp;gt; {0}={1}&amp;quot;&lt;/span&gt;;&lt;br /&gt;                &lt;span style=&quot;color: blue&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: blue&quot;&gt;int &lt;/span&gt;i = 0; i &amp;lt;= depth; i++) &lt;br /&gt;                    format = (&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\t&amp;quot;&lt;/span&gt;) + format;&lt;br /&gt;                &lt;span style=&quot;color: blue&quot;&gt;if &lt;/span&gt;(fld.FieldType.IsPrimitive)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style=&quot;color: blue&quot;&gt;string &lt;/span&gt;val = (obj==&lt;span style=&quot;color: blue&quot;&gt;null&lt;/span&gt;)? &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;NULL&amp;quot; &lt;/span&gt;: fld.GetValue(obj)+&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;                    sb.AppendFormat(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;\n\t&amp;quot; &lt;/span&gt;+ format, &lt;br /&gt;                        fld.Name, val, fld.FieldType.Name);&lt;br /&gt;                }&lt;br /&gt;                &lt;span style=&quot;color: blue&quot;&gt;else&lt;br /&gt;                &lt;/span&gt;{&lt;br /&gt;                    sb.Append(&lt;br /&gt;                        Reflective(fld.Name, fld.FieldType, &lt;br /&gt;                        fld.GetValue(obj),&lt;br /&gt;                        depth+1));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;span style=&quot;color: blue&quot;&gt;return &lt;/span&gt;sb.ToString();&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;How to use&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;var &lt;/span&gt;computer = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Computer&lt;br /&gt;           &lt;/span&gt;{&lt;br /&gt;               CPUs = 4,&lt;br /&gt;               Display = &lt;span style=&quot;color: blue&quot;&gt;null&lt;/span&gt;,&lt;br /&gt;               AnotherDisp = &lt;span style=&quot;color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Monitor &lt;/span&gt;{ &lt;br /&gt;                   Height = 768, Width = 1024, Zoom = 2 &lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;           };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           &lt;span style=&quot;color: blue&quot;&gt;string &lt;/span&gt;s = Reflective(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;computer&amp;quot;&lt;/span&gt;, computer.GetType(), computer, 0 );&lt;br /&gt;           &lt;span style=&quot;color: #2b91af&quot;&gt;Console&lt;/span&gt;.WriteLine(s);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Will print out&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;* &amp;lt;Computer&amp;gt; computer&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * &amp;lt;Monitor&amp;gt; Display-&amp;gt; {Null}&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Int32&amp;gt; CPUs=4&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; * &amp;lt;Monitor&amp;gt; AnotherDisp&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Int32&amp;gt; Width=1024&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Int32&amp;gt; Height=768&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Int32&amp;gt; Zoom=2&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/6965624028589141081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/6965624028589141081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/6965624028589141081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/6965624028589141081'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2011/12/reflective-question.html' title='A Reflective Question'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7668608515941703483</id><published>2011-12-08T08:36:00.003+02:00</published><updated>2011-12-08T08:55:04.082+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adt"/><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="source files"/><title type='text'>Android Source Files</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;for some reason, the open-source project Google setup for android with all the Git’s and Repos and stuff is very well mainained but requires a degree in particle physics to understand.&lt;/p&gt;  &lt;p&gt;This is especially true, if you’re just trying to look under the hood of android and not interested in joining the project per-say or&amp;#160; uploading stuff of your own to a Git repository.&lt;/p&gt;  &lt;p&gt;I come from Windows and am unused to becoming an IT specialist to install and use development software.&lt;/p&gt;  &lt;p&gt;looking around different blogs and sites I finally found a likeminded individual interested in spreading the joy of SIMPLE and EASY rather than COMPLEX and REQUIRES HOURS OF UNDERSTANDING to do android things.&lt;/p&gt;  &lt;p&gt;I want to develop for android, not be part of a complex Operating System’s development team (at least not for now).&lt;/p&gt;  &lt;p&gt;I found a blogger who has likeminded views on the subject.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://mobilebytes.wordpress.com/2010/06/30/classes-source-for-eclipse/&quot;&gt;http://mobilebytes.wordpress.com/2010/06/30/classes-source-for-eclipse/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;He has downloaded, stripped, mapped, vm’s and refitted the sources for android classes ready for Eclipse.&lt;/p&gt;  &lt;p&gt;I uploaded them to megaupoad as well to lower this bloggers bandwidth problems (in case he pays for them)&lt;/p&gt;  &lt;p&gt;and here they are:&lt;/p&gt;  &lt;table border=&quot;2&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;458&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;189&quot;&gt;&lt;strong&gt;Android version source&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;265&quot;&gt;&lt;strong&gt;megaupload URL I uploaded it to&lt;/strong&gt;&lt;strong&gt;&lt;font style=&quot;background-color: #ffff00&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;184&quot;&gt;1.5 r3&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;265&quot;&gt;&lt;a title=&quot;http://www.megaupload.com/?d=OL71VL2F&quot; href=&quot;http://www.megaupload.com/?d=OL71VL2F&quot;&gt;http://www.megaupload.com/?d=OL71VL2F&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;179&quot;&gt;1.6 r2&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;265&quot;&gt;&lt;a title=&quot;http://www.megaupload.com/?d=B5F0R1AV&quot; href=&quot;http://www.megaupload.com/?d=B5F0R1AV&quot;&gt;http://www.megaupload.com/?d=B5F0R1AV&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;175&quot;&gt;2.01 r1&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;265&quot;&gt;&lt;a title=&quot;http://www.megaupload.com/?d=MIJOHYYI&quot; href=&quot;http://www.megaupload.com/?d=MIJOHYYI&quot;&gt;http://www.megaupload.com/?d=MIJOHYYI&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;172&quot;&gt;2.1 r1&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;265&quot;&gt;&lt;a title=&quot;http://www.megaupload.com/?d=93048HL0&quot; href=&quot;http://www.megaupload.com/?d=93048HL0&quot;&gt;http://www.megaupload.com/?d=93048HL0&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;170&quot;&gt;2.2 froyo&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;265&quot;&gt;&lt;a title=&quot;http://www.megaupload.com/?d=UJRSNLHN&quot; href=&quot;http://www.megaupload.com/?d=UJRSNLHN&quot;&gt;http://www.megaupload.com/?d=UJRSNLHN&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In case you don’t know how to wire this up:&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Step 1 &lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Download the source codes into a directory such as c:\android\android-sdk-source\&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipsVo0EgtPUg1LqKWkRankIBySAzBx61qRmBsiXodc3EWdN7cMes4ZCAHWTv567yGQQUM9nY-ASjz7nqEhcEbn0XrnjQQp3AaKQCbsbn8jLy16HxoYKIpwZIM2fzDZe7Tdlug0gA/s1600-h/SNAGHTML498a857%25255B1%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;SNAGHTML498a857&quot; border=&quot;0&quot; alt=&quot;SNAGHTML498a857&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSmEhC-V9gmfO9Au1veQ5IXxQ-Owa1BOf_gZ8yXPaFVKg2KYdopOoBkJpDhWu4t0tV9pHDSh0wh5CPTiPM0bMFBcwOm5y-jl2MlxgFM4qMGUIX5EAIQT2P5tuPQvUWpWf8_zoCDg/?imgmax=800&quot; width=&quot;382&quot; height=&quot;462&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Step 2&lt;/h3&gt;  &lt;p&gt;1) open eclipse, open a project you wish to view the source of:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Right click on &lt;strong&gt;android.jar&lt;/strong&gt; – select &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUQWpcRnSVAePFAuHKj1vn_tbuhIiOf4zmF7Xtn5sApuT2fqoGQ5O50yOxVxMfG9fJmuGt_Xjs2o_RO3KUGmv1gYu8vMaHQe6pIhTsDL9p4tH0CfpsyQRLTQWKomEbe4Nq-GwhNw/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYVlfSnyZvXm0k7zvaE2cIwVn0DKeZI8OYp8Mu09mrRMp9K6m2SHxn99TJVnA95HQE4jEvWf4Lw5Pc8CIWKcDRkQcw3rXv-iRwJtzTYt2Lb0QQdstw9UMSkgj4zvFCbEuOm0OXZg/?imgmax=800&quot; width=&quot;415&quot; height=&quot;271&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2) Select &lt;strong&gt;&lt;em&gt;properties &lt;/em&gt;&lt;/strong&gt;(last one on the context menu) or press &lt;strong&gt;&lt;em&gt;Alt-Enter&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;3) In the window that comes up, under &lt;strong&gt;Java source Attachment&lt;/strong&gt; select &lt;strong&gt;External file, &lt;/strong&gt;then find the source file you downloaded in my case &lt;strong&gt;&lt;em&gt;&lt;font size=&quot;1&quot;&gt;C:/Android/android-sdk-sources/android-sdk-1.6_r2-src.jar&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMiE_NOmxmSzqjpih-u7yfTXmQ-Q1TLxXEb16MuHmDMDaZ5ZYhpH_AWogqNvvzRQuzttOqSMiiTznlGgCcn1zHDsseSiWATJ3uJDQyfk7sSlx9_kpokMY18u943rM2Aqdy8Kiubw/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkObcOyUYxniHdj7f5srSw2-7LbMxT5SbvH8Lgwl9idT-v2u3MmQB2YP-0izHRCGZlWoBFVOo2Yu2aUyD0x1Np7xhujr3EVVW3p3Z6z5WbSoRJS_lCB_vcO179w0t6pzLorm9c9g/?imgmax=800&quot; width=&quot;515&quot; height=&quot;489&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4) click Open on the Windows Folder&lt;/p&gt;  &lt;p&gt;5) and OK on the eclipse, and you should be all sourced up.&lt;/p&gt;  &lt;h3&gt;usage:&lt;/h3&gt;  &lt;p&gt;Click &lt;strong&gt;F3&lt;/strong&gt; on an &lt;em&gt;android class &lt;/em&gt;such as &lt;strong&gt;BroadcastReceiver.&lt;font color=&quot;#9b00d3&quot;&gt;class &lt;/font&gt;&lt;/strong&gt;and you will see the source code.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6-k2bwcbv1pY8LDyCW3I1Mwju3PrshvJL63zGm4p0VmLKd5o-NeEZOjpoUath3adF2JIxJkODmEQ7p6AAKehoUajn6xBMb883fUymg9TEZYtqlO_2Dbn0NAyPqDGiYs5dP1eDOA/s1600-h/image%25255B21%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7XaPD_OYPXHLddvDA3QlGLp9bksb00FE2yslnfpbrLASd25sA3ggUwzNUJ-mbRWFwDmw9Fw6Aj1s_sbzJ0aZWZVjoKG0r3rl8zc_biOnXvKfT27tARVu4RNodBnWr7It_8AYnWw/?imgmax=800&quot; width=&quot;718&quot; height=&quot;411&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Word of warning to the Debuggers out there.&lt;/p&gt;  &lt;p&gt;YOUR USE OF ANDROID SOURCES and Versionage does not mean the &lt;font color=&quot;#ff0000&quot;&gt;EMULATOR&lt;/font&gt; is using the&lt;font color=&quot;#ff0000&quot;&gt; same version &lt;/font&gt;- if your app is for &lt;font style=&quot;background-color: #ffc000&quot;&gt;android 1.6 &lt;/font&gt;(as most should be) and your &lt;font style=&quot;background-color: #ffc000&quot;&gt;emulator is 2.2&lt;/font&gt;, the source you should attach&lt;font style=&quot;background-color: #4bacc6&quot;&gt; is 2.2 as the emulator works under 2.2 and not 1.6&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;make sense?&lt;/p&gt;  &lt;p&gt;Good luck&lt;/p&gt;  &lt;p&gt;Mickey Perlstein&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7668608515941703483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7668608515941703483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7668608515941703483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7668608515941703483'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2011/12/android-source-files.html' title='Android Source Files'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSmEhC-V9gmfO9Au1veQ5IXxQ-Owa1BOf_gZ8yXPaFVKg2KYdopOoBkJpDhWu4t0tV9pHDSh0wh5CPTiPM0bMFBcwOm5y-jl2MlxgFM4qMGUIX5EAIQT2P5tuPQvUWpWf8_zoCDg/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-7110348389356757988</id><published>2011-11-27T19:15:00.001+02:00</published><updated>2011-11-27T19:15:08.605+02:00</updated><title type='text'>Mobility conference</title><content type='html'>&lt;p&gt;Today I went to the mobility conference. Here are a few things that I learned:&lt;/p&gt;  &lt;p&gt;When developing a mobile app you need to ask yourself a couple of questions:&lt;/p&gt;  &lt;p&gt;Stickiness over time - will the user be installing it and forgeting all about it &lt;u&gt;or will she be using it &lt;strong&gt;always&lt;/strong&gt;.&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;stickiness will be created also by using Facebook and twitter and other such posts in social media.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;viral &lt;/strong&gt;is very important - word of mouth is much better than buying your users (i.e. Advertising)&lt;/li&gt;    &lt;ul&gt;     &lt;ul&gt;       &lt;li&gt;create value to the user&lt;/li&gt;        &lt;li&gt;make it social&lt;/li&gt;        &lt;li&gt;make it enjoyable&lt;/li&gt;        &lt;li&gt;make it very viral&lt;/li&gt; &lt;!--EndFragment--&gt;&lt;/ul&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;very little apps offered to VCs are life-changing ones&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;lowering the customer acquisition costs - interesting someone else to use it - if the only way I can use it is if you use it -&amp;#160; it helps you use it - and helps me gain new customers.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;font style=&quot;background-color: #ffff00&quot;&gt;Respond to every support call&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Challenges facing the mobile market:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Security on mobile is challenging&lt;/li&gt;    &lt;li&gt;Discoverability is very hard&lt;/li&gt;    &lt;li&gt;Revenue streams are shocking&lt;/li&gt;    &lt;li&gt;new challenges - the mobile market place brings in bouncers - a new phase of rejects from the marketplace/apple/google etc.&amp;#160; adds and other layer of challenges&lt;/li&gt;    &lt;li&gt;Problems with revenue streams especially when direct to consumer&lt;/li&gt;    &lt;li&gt;Ad revenue alone is a bad model&lt;/li&gt;    &lt;li&gt;Different mobile users are of different user types and should be considered accordingly&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What is the user experience, what the apps does the user usually use. Do your best to create a single application connected to all the application&#39;s the user uses, or unifying them.&amp;#160; Try changing the UIx using the same backend(s).&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The new user paradigm : &lt;/strong&gt;There is no such thing as the final user - all users are middle users, and will be RE sending an edited version of the data in a new way to someone else – who will again be a middle user recreating and sending it to someone else.&amp;#160; So the data itself needs to be dynamic and available (perma links).&lt;/p&gt;  &lt;p&gt;Analytics are very important!!!&amp;#160; Not only in web but even more so in mobile apps.&amp;#160; What&#39;s tabs are pressed, how the user uses a system, what gestures are used etc.&lt;/p&gt;  &lt;p&gt;The smart phone is not always connected, think not connected systems think synchronization &lt;/p&gt;  &lt;p&gt;Real time collaboration - the users are used to real time collaboration with their colleagues, think constant syncing with server think multiple user interface think multiple users.&lt;/p&gt;  &lt;p&gt;Platforms: every couple of months and you platform comes out, each platform comes with its own resolution, abilities, controls and OS.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI8_DKLiYzDsvOmngFkQE4w67svcu5M1FneIxDHBOPE8F6N8XnEvKgjvWMke97bbHQUXusHbUS53rZ1UX4KgJEwUNMLHXMTNpwqAVvbWw-Fwx-rWZu-YDbCGB4m5rK1gE4m6y1qw/s1600-h/IMG_20111127_150413%25255B5%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;IMG_20111127_150413&quot; border=&quot;0&quot; alt=&quot;IMG_20111127_150413&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW1OcQ7nSIONAMJmlw742tnkRr07U721Q3DFuK-y49iBNx-wLBAscmHOke8iNCgV0H2TAvRtcvCVmMvyFoFNCOxllBcNQ-HPATBO34ppDFb4SeJGrNi-dyOJ4PrKftOpOyjXomEg/?imgmax=800&quot; width=&quot;334&quot; height=&quot;256&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Try to think cross-platform: maybe abstraction layers like HTML 5, phonegapp, flex&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UIX&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;All female users are righties (except for a small promil)&lt;/li&gt;    &lt;li&gt;Most male users are righties&lt;/li&gt;    &lt;li&gt;A lot of male users are colorblind&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;idea of Cool:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Users need to be set in a certain &lt;strong&gt;zone&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;There should be a &lt;strong&gt;flow &lt;/strong&gt;to the application - remember when you scroll on the iPhone the scrolling continues even for a bit - even though you&#39;ve stopped scrolling&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The &lt;strong&gt;user’s&lt;/strong&gt; &lt;strong&gt;mental image&lt;/strong&gt; should agree with the &lt;strong&gt;user&#39;s experience&lt;/strong&gt;&lt;/p&gt;  &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;400&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;126&quot;&gt;REACTION&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;140&quot;&gt;&amp;nbsp;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;VISUALIZATION&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;126&quot;&gt;&amp;nbsp;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;strong&gt;SIMILAR&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;&lt;strong&gt;DIFFERENT&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;126&quot;&gt;&lt;strong&gt;SIMILAR&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;140&quot;&gt;positive&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;&lt;font style=&quot;background-color: #ffff00&quot;&gt;nothing/positive&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;126&quot;&gt;&lt;strong&gt;DIFFERENT&lt;/strong&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;140&quot;&gt;&lt;font style=&quot;background-color: #ffff00&quot; color=&quot;#ff0000&quot;&gt;BAD!!!&lt;/font&gt;&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;133&quot;&gt;N/A&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;                  &lt;p&gt;if the users visual experience is the same*&amp;#160; and the reaction is similar meaning the same gestures apply the same interaction takes place the user uses the same cognitive abilities to manipulate the screen then to the reaction is a &lt;strong&gt;positive one&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;However, if the users visual experience is the same however the reaction required by the user is different such as scrolling vs.&amp;#160; Gesturing, right clicking vs. long press, gesturing with two fingers vs.&amp;#160; Selecting with a mouse Et cetera, the user&#39;s learning curve would be longer, and their overall experience would be bad.&lt;/p&gt;  &lt;p&gt;&lt;font size=&quot;1&quot;&gt;* the screen looks the same on a desktop and on the mobile or on the tablet/pad&lt;/font&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/7110348389356757988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/7110348389356757988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7110348389356757988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/7110348389356757988'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2011/11/mobility-conference.html' title='Mobility conference'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW1OcQ7nSIONAMJmlw742tnkRr07U721Q3DFuK-y49iBNx-wLBAscmHOke8iNCgV0H2TAvRtcvCVmMvyFoFNCOxllBcNQ-HPATBO34ppDFb4SeJGrNi-dyOJ4PrKftOpOyjXomEg/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33467627.post-6789596364574530807</id><published>2011-11-04T15:45:00.002+02:00</published><updated>2011-11-04T15:47:17.529+02:00</updated><title type='text'>QR Codes and Contact information - part 2</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrUVNubnr9sQBuakkaER6oGj3i9jpXKr_kwzMTQ69bfiKX_Uj5e8QCzafo6Dn-9wXU-dzCyr1i0lROR9HAXuEA5-ywaCvJaL8rXafrol29v0E59oR3TN2Dj87RugGx2QPGcC5thQ/s1600/Mickey.QRCOde.Contact.NEW.png&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrUVNubnr9sQBuakkaER6oGj3i9jpXKr_kwzMTQ69bfiKX_Uj5e8QCzafo6Dn-9wXU-dzCyr1i0lROR9HAXuEA5-ywaCvJaL8rXafrol29v0E59oR3TN2Dj87RugGx2QPGcC5thQ/s200/Mickey.QRCOde.Contact.NEW.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5671136644437316930&quot; /&gt;&lt;/a&gt;Because of Error Correction&lt;div&gt;you can ad readable text too (not a lot)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mperlstein.blogspot.com/feeds/6789596364574530807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/33467627/6789596364574530807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/6789596364574530807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33467627/posts/default/6789596364574530807'/><link rel='alternate' type='text/html' href='http://mperlstein.blogspot.com/2011/11/qr-codes-and-contact-information-part-2.html' title='QR Codes and Contact information - part 2'/><author><name>Mickey Perstein</name><uri>http://www.blogger.com/profile/13395729985722656010</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOdSdFOEniaXSPyZ0ntjzVIvlzOouytel_Pfev9WwSGVf-3_avQiCdhRA1GF_ePF20fzJi7UeMslHOlPaGiLKF7dPMfwB0oPVwTzKo1ECwfsO4NHnZObgFpAKlSQF_ag/s220/me.tie.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrUVNubnr9sQBuakkaER6oGj3i9jpXKr_kwzMTQ69bfiKX_Uj5e8QCzafo6Dn-9wXU-dzCyr1i0lROR9HAXuEA5-ywaCvJaL8rXafrol29v0E59oR3TN2Dj87RugGx2QPGcC5thQ/s72-c/Mickey.QRCOde.Contact.NEW.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>