<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Miky Schreiber's Blog - Programming</title>
    <link>http://www.miky-schreiber.com/Blog/</link>
    <description>Business Intelligence, Analysis Services, MDX, DataWarehousing and more...</description>
    <language>en-us</language>
    <copyright>Miky Schreiber</copyright>
    <lastBuildDate>Wed, 17 Jun 2009 08:08:44 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>miky@zahav.net.il</managingEditor>
    <webMaster>miky@zahav.net.il</webMaster>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A wonderful idea I heard of is to turn to full screen mode in Internet Explorer when
entering the Dashboard site. It can make a better user experience. Try it yourself
and you'll see the huge difference.<br />
How will we do that? We will add a JavaScript code to the first page of the dashboards
site and after that we'll ask our system administrator to enable this script for us.
Let's get to work: 
</p>
        <p>
          <u>Step 1 - The JavaScript</u>
        </p>
        <p>
        </p>
Create a new HTML component in the dashboard page. Edit it and click on the "View
Source" button (the one with the &lt;&gt;). Enter the following code:<br />
&lt;SCRIPT&gt;<br />
var wscript = new ActiveXObject("Wscript.shell");<br />
wscript.SendKeys("{F11}");<br />
&lt;/SCRIPT&gt; 
<p>
It will simulate the user hitting the F11 key which will turn the IE to
fullscreen mode. The only problem is that when viewing the page, you'll see this message:
</p><p align="center"><img src="http://www.miky-schreiber.com/Blog/content/binary/ActiveXPromt.JPG" border="0" /></p><p>
This takes us to step 2.
</p><p><u>Step 2 - Enabling ActiveX</u></p><p>
First, I'll show you how to do this on your local maching and then you'll ask your
system administrator to enable it on all the machines in the organization using distribution.
Enter the Tools menu in IE and hit Internet Options. Click on the Security tab and
make sure the "Trusted Sites" zone is selected. Note that the Panorama Dashboards
site is already defined as trusted site (if the initial installation of Panorama Dashboards
made according to the installation manual. If it's not, you have a problem). Click
on "Custom Level" and Enable the "Initialize and script ActiveX ..." option:
</p><p align="center"><img src="http://www.miky-schreiber.com/Blog/content/binary/EnableActiveXIE.JPG" border="0" /></p><p align="left">
Now, you'll see that there's no promting for ActiveX controls. Show this to your sys
admin and ask him to make this happen on every user's machine (using distribution,
of course). As I said, the dashboards site is a trusted site so I can't see any problem
to enable this. The result is very beautiful and can make a lot of users happy. Note
that you can also add a button in your page that will call the same script in order
to return to normal mode.
</p><p align="left">
Enjoy.
</p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102" /></body>
      <title>Entering the Dashboards Site in Full Screen Mode</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</link>
      <pubDate>Wed, 17 Jun 2009 08:08:44 GMT</pubDate>
      <description>&lt;p&gt;
A wonderful idea I heard of is to turn to full screen mode in Internet Explorer when
entering the Dashboard site. It can make a better user experience. Try it yourself
and you'll see the&amp;nbsp;huge difference.&lt;br&gt;
How will we&amp;nbsp;do that? We will add a JavaScript code to the first page of the dashboards
site and after that we'll ask our system administrator to enable this script for us.
Let's get to work: 
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Step 1 - The JavaScript&lt;/u&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
Create a new HTML component in the dashboard page. Edit it and click on the "View
Source" button (the one with the &amp;lt;&amp;gt;). Enter the following code:&lt;br&gt;
&amp;lt;SCRIPT&amp;gt;&lt;br&gt;
var wscript = new ActiveXObject("Wscript.shell");&lt;br&gt;
wscript.SendKeys("{F11}");&lt;br&gt;
&amp;lt;/SCRIPT&amp;gt; 
&lt;p&gt;
It will simulate the user&amp;nbsp;hitting the&amp;nbsp;F11 key which will turn the IE to
fullscreen mode. The only problem is that when viewing the page, you'll see this message:
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.miky-schreiber.com/Blog/content/binary/ActiveXPromt.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This takes us to step 2.
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Step 2 - Enabling ActiveX&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
First, I'll show you how to do this on your local maching and then you'll ask your
system administrator to enable it on all the machines in the organization using distribution.
Enter the Tools menu in IE and hit Internet Options. Click on the Security tab and
make sure the "Trusted Sites" zone is selected. Note that the Panorama Dashboards
site is already defined as trusted site (if the initial installation of Panorama Dashboards
made according to the installation manual. If it's not, you have a problem). Click
on "Custom Level" and Enable the "Initialize and script ActiveX ..." option:
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.miky-schreiber.com/Blog/content/binary/EnableActiveXIE.JPG" border=0&gt;
&lt;/p&gt;
&lt;p align=left&gt;
Now, you'll see that there's no promting for ActiveX controls. Show this to your sys
admin and ask him to make this happen on every user's machine (using distribution,
of course). As I said, the dashboards site is a trusted site so I can't see any problem
to enable this. The result is very beautiful and can make a lot of users happy. Note
that you can also add a button in your page that will call the same script in order
to return to normal mode.
&lt;/p&gt;
&lt;p align=left&gt;
Enjoy.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=8d29e8e0-e3af-42d3-a3c3-f5ee6df13102" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,8d29e8e0-e3af-42d3-a3c3-f5ee6df13102.aspx</comments>
      <category>BI;BI/Panorama;Programming;Programming/Web</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The query string was not meant to pass descriptions and string. The correct use of
it is using codes and numbers. Anyway, my friend did write query strings with hebrew
descriptions and didn't understand why the server side got it scrambled.
</p>
        <p>
This was caused because the client side and the server side were using different
encodings. The correct way of doing this is wrapping the strings using the JavaScript
command encodeURIComponent (in the client side). This will turn the strings into Unicode.
In the server side, using ASP.NET, you can use the Server.UrlDecode method to get
it back.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2" />
      </body>
      <title>Passing Strings in the Query String</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</link>
      <pubDate>Tue, 09 Jun 2009 12:24:55 GMT</pubDate>
      <description>&lt;p&gt;
The query string was not meant to pass descriptions and string. The correct use of
it is using codes and numbers. Anyway, my friend did write query strings with hebrew
descriptions and didn't understand why the server side got it scrambled.
&lt;/p&gt;
&lt;p&gt;
This was caused because&amp;nbsp;the client side and the server side were using different
encodings. The correct way of doing this is&amp;nbsp;wrapping the strings using the&amp;nbsp;JavaScript
command encodeURIComponent (in the client side). This will turn the strings into Unicode.
In the server side, using ASP.NET, you can use the Server.UrlDecode method to get
it back.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</comments>
      <category>Programming;Programming/.Net;Programming/Web</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=e52c58d8-4e4f-4077-9656-5242bcf49f7c</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e52c58d8-4e4f-4077-9656-5242bcf49f7c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Trying to build ASP.NET page with Panorama
applets, I could not understand why the applets appeared blank when I put them in
tables. After a while, I've found that this got something to do with the DOCTYPE declaration
that each aspx has in its head (<span class="doctype">!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>).
When I removed this line, it all seems to work fine. Digging into this <a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">DTD
specification</a>, I can't see anything that will prevent from applet tag to appear
inside td tag. Strange.<br /><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e52c58d8-4e4f-4077-9656-5242bcf49f7c" /></body>
      <title>Using Applet Tag in ASP.NET Pages</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</link>
      <pubDate>Mon, 01 Jun 2009 11:32:34 GMT</pubDate>
      <description>Trying to build ASP.NET page with Panorama applets, I could not understand why the applets appeared blank when I put them in tables. After a while, I've found that this got something to do with the DOCTYPE declaration that each aspx has in its head (&lt;span class="doctype"&gt;!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;).
When I removed this line, it all seems to work fine. Digging into this &lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;DTD
specification&lt;/a&gt;, I can't see anything that will prevent from applet tag to appear
inside td tag. Strange.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e52c58d8-4e4f-4077-9656-5242bcf49f7c" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,e52c58d8-4e4f-4077-9656-5242bcf49f7c.aspx</comments>
      <category>BI;BI/Panorama;Programming;Programming/Web</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=09abb275-1b87-4d76-ac28-e65e4a73d469</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=09abb275-1b87-4d76-ac28-e65e4a73d469</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When you develope a big Panorama Dashboards site, you'll have a lot of javascript
code in the background. We use JS to call the Panorama SDK functions and methods,
make the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx">server
side</a> and the client side work together and to make the website dynamic and
user-friendly. After few days, you'll see that you have a lot of code out there, so
you must organize it (if you didn't do it in the first place). My friend Doron wrote
a great <a href="http://blogs.microsoft.co.il/blogs/dorony/archive/2009/04/03/writing-maintainable-javascript-guidelines.aspx">post</a> about
JS development guidelines which can help Panorama Dashboards developers and any big
website developers.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=09abb275-1b87-4d76-ac28-e65e4a73d469" />
      </body>
      <title>JavaScript Development Guidelines</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</link>
      <pubDate>Tue, 07 Apr 2009 20:12:17 GMT</pubDate>
      <description>&lt;p&gt;
When you develope a big Panorama Dashboards site, you'll have a lot of javascript
code in the background. We use JS to call the Panorama SDK functions and methods,
make the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,89b9ed83-352d-4623-9f2c-45dedeb3543b.aspx"&gt;server
side&lt;/a&gt; and the client side work&amp;nbsp;together and to make the website dynamic and
user-friendly. After few days, you'll see that you have a lot of code out there, so
you must organize it (if you didn't do it in the first place). My friend Doron wrote
a great &lt;a href="http://blogs.microsoft.co.il/blogs/dorony/archive/2009/04/03/writing-maintainable-javascript-guidelines.aspx"&gt;post&lt;/a&gt; about
JS development guidelines which can help Panorama Dashboards developers and any big
website developers.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=09abb275-1b87-4d76-ac28-e65e4a73d469" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,09abb275-1b87-4d76-ac28-e65e4a73d469.aspx</comments>
      <category>BI;BI/Panorama;Programming;Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After announcing the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx">MdxInjection
program</a> I got several requests for additional details and for the ability to run
it without using Visual Studio. So, here are some important points:
</p>
        <ul>
          <li>
When I published it I had developers in mind because I'm sure than anyone will want
to do his little modification before using it for his own needs. That's why I published
it as a solution and not as executable. 
</li>
          <li>
I written it down using VS2008 but only with the .Net 2 framework. Those of you who
uses VS2005 won't be able to open the solution. 
</li>
          <li>
The program has only one public method - InjectMdx, who takes two arguments: The location
of the CommonMdx file and the location of the xml configuration file. 
</li>
          <li>
The CommonMdx.mdx file contains the common MDX script. The relevant part has
to start with /* Common MDX */ and then the common mdx script. Anything written before
it won't be treated. That gives you the ability to save some data or comments for
yourself in this file. 
</li>
          <li>
Example of the configuration xml file can be found in the Test libary inside the solution.
Basically, it enable you to define in which servers, databases and cubes you want
to inject the common script. Pay attention that you have to write the connection strings
in this file. 
</li>
          <li>
Note that the program will detect cube dimensions with their name changed and will
know how to replace them. That means that if you mention the Time dimension in the
common script and inject it to AdventureWorks cube, the script will replace the string
"Time" with the "ShipmentDate" string, for example.</li>
        </ul>
        <p>
For those of you who want simple execution file, I added a windows console project
in the solution.
</p>
        <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjectionConsoleApp.zip">Link
to only executable program</a>
        <br />
        <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection2.zip">Link
to the solution with the added windows application project</a>
        <br />
        <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip">Link
to the solution without the windows application project</a>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd" />
      </body>
      <title>The MdxInjection Program - continued</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</link>
      <pubDate>Mon, 17 Nov 2008 21:54:17 GMT</pubDate>
      <description>&lt;p&gt;
After announcing the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx"&gt;MdxInjection
program&lt;/a&gt; I got several requests for additional details and for the ability to run
it without using Visual Studio. So, here are some important points:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
When I published it I had developers in mind because I'm sure than anyone will want
to do his little modification before using it for his own needs. That's why I published
it as a solution and not as executable. 
&lt;li&gt;
I written it down using VS2008 but only with the .Net 2 framework. Those of you who
uses VS2005 won't be able to open the solution. 
&lt;li&gt;
The program has only one public method - InjectMdx, who takes two arguments: The&amp;nbsp;location
of the CommonMdx file and the location of the xml configuration file. 
&lt;li&gt;
The CommonMdx.mdx file contains the common MDX script. The relevant part&amp;nbsp;has
to start with /* Common MDX */ and then the common mdx script. Anything written before
it won't be treated. That gives you the ability to save some data or comments for
yourself in this file. 
&lt;li&gt;
Example of the configuration xml file can be found in the Test libary inside the solution.
Basically, it enable you to define in which servers, databases and cubes you want
to inject the common script. Pay attention that you have to write the connection strings
in this file. 
&lt;li&gt;
Note that the program will detect cube dimensions with their name changed and will
know how to replace them. That means that if you mention the Time dimension in the
common script and inject it to AdventureWorks cube, the script will replace the&amp;nbsp;string
"Time"&amp;nbsp;with the "ShipmentDate" string, for example.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For those of you who want simple execution file, I added a windows console project
in the solution.
&lt;/p&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjectionConsoleApp.zip"&gt;Link
to only executable program&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection2.zip"&gt;Link
to the solution with the added windows application project&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip"&gt;Link
to the solution without the windows application project&lt;/a&gt;&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</comments>
      <category>BI;BI/MDX;BI/SQL Server 2005;BI/SQL Server 2005/Analysis Services;BI/SQL Server 2008;BI/SQL Server 2008/Analysis Services;Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=aca4f6ce-32bb-47ab-a453-5b23c25b3d48</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=aca4f6ce-32bb-47ab-a453-5b23c25b3d48</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,f5f76417-9128-4fd7-a8d6-ba60619df30e.aspx">previous
post</a> I talked about the DRY principle in the BI Development. I mentioned that
one of the major problems in the principle's implementation is in the common MDX code. <a href="http://cwebbbi.spaces.live.com/">Chris</a> Commented:
</p>
        <p>
"I'd like to be able to have a global MDX Script and be able to do something like
a #include to bring calculations into specific cubes. One to add to my wishlist for
the next version..."
</p>
        <p>
And as I said there that I have a temporary good solution until we'll have
it in the next SQL Server release (if someone from Microsoft is reading...).
</p>
        <p>
The MdxInjection program takes your common MDX Script and a very simple xml file that
defines where to inject this script. It injects the script into your desired cubes
and even replaces the dimensions' names where necessary (it is relevant where you
put dimension in a cube with a different name to thr dimension or when you use Role
Playing Dimensions). I couldn't hold myself from writing some test code so it's also
included in the project. The project is written in C# 2 using much AMO code. All the
technical little details are inside.
</p>
        <p>
Enjoy.
</p>
        <p>
          <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip">Download
Link</a>
        </p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=aca4f6ce-32bb-47ab-a453-5b23c25b3d48" />
      </body>
      <title>The MdxInjection Program</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</link>
      <pubDate>Sun, 16 Nov 2008 23:29:02 GMT</pubDate>
      <description>&lt;p&gt;
In the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,f5f76417-9128-4fd7-a8d6-ba60619df30e.aspx"&gt;previous
post&lt;/a&gt; I talked about the DRY principle in the BI Development. I mentioned that
one of the major problems in the principle's implementation is in the common MDX code. &lt;a href="http://cwebbbi.spaces.live.com/"&gt;Chris&lt;/a&gt; Commented:
&lt;/p&gt;
&lt;p&gt;
"I'd like to be able to have a global MDX Script and be able to do something like
a #include to bring calculations into specific cubes. One to add to my wishlist for
the next version..."
&lt;/p&gt;
&lt;p&gt;
And as I said there&amp;nbsp;that&amp;nbsp;I have a temporary good solution until we'll have
it in the next SQL Server release (if someone from Microsoft is reading...).
&lt;/p&gt;
&lt;p&gt;
The MdxInjection program takes your common MDX Script and a very simple xml file that
defines where to inject this script. It injects the script into your desired cubes
and even replaces the dimensions' names where necessary (it is relevant where you
put dimension in a cube with a different name to thr dimension or when you use Role
Playing Dimensions). I couldn't hold myself from writing some test code so it's also
included in the project. The project is written in C# 2 using much AMO code. All the
technical little details are inside.
&lt;/p&gt;
&lt;p&gt;
Enjoy.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip"&gt;Download
Link&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=aca4f6ce-32bb-47ab-a453-5b23c25b3d48" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</comments>
      <category>BI;BI/MDX;BI/SQL Server 2005;BI/SQL Server 2005/Analysis Services;BI/SQL Server 2008;BI/SQL Server 2008/Analysis Services;Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=c513cf0e-0c66-4834-8f63-9bb965b9639c</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c513cf0e-0c66-4834-8f63-9bb965b9639c</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>The PanoramaBasedWebSite project</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</link>
      <pubDate>Thu, 04 Sep 2008 17:37:45 GMT</pubDate>
      <description>In the last years I've seen many
astonishing BI web sites. I always asked myself what I need to do to bring my
customers such beautiful web-based BI solutions. After having much experience
with Panorama NovaView and especially the Panorama SDK I started to run some
questions in my mind: Why won't I build some re-usable puzzle pieces that can
be joined together to a web site? These pieces can be web controls that using
and even interacting Panorama views and Analysis services. Why won't publish it
as open source and give it to the BI community?&lt;br&gt;
&lt;br&gt;
The &lt;a href="http://www.codeplex.com/PanoramaBasedWebSite"&gt;PanoramaBasedWebSite&lt;/a&gt; project
is a toolkit that contains web controls you can easily use in your ASP.NET based web
site. The project is written in ASP.NET 2.0 and C# 3.5. These web controls interacts
with Panorama views (using Panorama SDK) and Analysis Services (using AMO).&lt;br&gt;
The idea is that you can take these puzzle pieces, combine them as you like in your
web site and create your good-looking BI web site with almost no programming. The
project is only in its first steps, but I believe that publishing the design/idea
is also important. This is why the first &lt;a href="http://www.codeplex.com/PanoramaBasedWebSite/Release/ProjectReleases.aspx?ReleaseId=16866"&gt;release&lt;/a&gt; is
already published, although it has only two web controls so far. This is what we have
so far and what I'm planning for the future. I'll be happy to hear your thoughts/ideas:&lt;br&gt;
&lt;br&gt;
&lt;u&gt;First Release Contents&lt;/u&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
PanoramaView web control - this is the main control of the project and it will probably
take a lot of the project's weight. The control simply shows panorama view. For now,
it doesn't do much rather then showing a view so there's a lot of work to do for this
control. It gets two properties - BriefingBookName and ViewName. You can look at the
TODO: comments in the code to see what future plans I have for this control.&lt;/li&gt;
&lt;li&gt;
UpdateDatePanel web control - this control shows the date and time when the last process
of the cube was made. It can be used in two ways: You can only set the PanoramaViewID
property. The control will extract the cube and the database name from the view and
take the update date from the cube. The other way is to set the CubeName and DataBaseName
properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Future Plans&lt;/u&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
KPIView - Already working on it. Similar to PanoramaView, but if the view shows KPI
then a drilldown will be made when the user clicks on a gauge.&lt;/li&gt;
&lt;lipanoramacomments already="" working="" on="" it.="" one="" of="" my="" customers="" asked="" for="" ability="" bind="" comments="" to="" a="" then="" all="" users="" that="" see="" view="" also="" sees="" comments.="" control="" uses="" the="" ajaxcontroltoolkit="" accordion="" and="" it="" s="" very="" neat.="" believe="" me="" -="" you="" ll="" love="" this="" one.=""&gt;
&lt;li&gt;
QueryList - Shows the result of MDX query. For example, the list shows the top 10
employees of the month (in sales perspective, for example). This list will be interactive,
meaning that clicking on a row will make a drilldown, drill to data or replace the
list with another query results.&lt;/li&gt;
&lt;li&gt;
DimensionPicker - Gives the user the ability to pick members of a dimension/hierarchy.
After selecting, the control will slice all the views on the page (or only predefined
set of views).&lt;/li&gt;
&lt;li&gt;
DatePicker - Same as DimensionPicker but for dates. It will show a calendar to the
user and clicking on a date will perform a slice in the views.&lt;/li&gt;
&lt;/lipanoramacomments&gt;
&lt;/ul&gt;
&lt;p&gt;
The use of the controls in your aspx pages is very easy. You can see for yourself:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; color: brown;"&gt;PanoramaControls:UpdateDateLabel&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;UpdateDateLabel1&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;server&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;PanoramaViewID&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;PanoramaView1&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: brown;"&gt;PanoramaControls:PanoramaView&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;PanoramaView1&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;server&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Width&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;100%&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Height&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;80%&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;BriefingBookName&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;MikysBook&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;ViewName&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;MyFirstView&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
I'll be happy to read your thoughts and ideas about this project. There will be more
to come. Stay Tuned.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=c513cf0e-0c66-4834-8f63-9bb965b9639c" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</comments>
      <category>BI;BI/Panorama;Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=567a20f1-72d3-40b4-9527-afe3663ae262</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,567a20f1-72d3-40b4-9527-afe3663ae262.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,567a20f1-72d3-40b4-9527-afe3663ae262.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=567a20f1-72d3-40b4-9527-afe3663ae262</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.opensearch.org">OpenSearch</a> is
one of the beautiful things I discovered lately. If you're using Firefox 2 and above
or Internet Explorer 7, look at the search field in the right-top corner of the browser.
See the shiny little thingy there? Click on it and you can instantly add two new search
engines for fast search through your browser. The first one is my blog's search and
the second (and more important) one is the ability to search <a href="http://www.biblogs.com">BiBlogs</a> right
from the browser. Yeah, now you can search the whole BI community's blogs with only
one click.<br /><br />
I call all the BI bloggers to add this too. It's 5 minutes work and it can help lot
of people out there. See <a href="http://www.hanselman.com/blog/AddingOpenSearchToYourWebsiteAndGettingInTheBrowsersSearchBox.aspx">here</a> for
instructions.<br /><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=567a20f1-72d3-40b4-9527-afe3663ae262" /></body>
      <title>Search the Whole BI Community with One Click</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,567a20f1-72d3-40b4-9527-afe3663ae262.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,567a20f1-72d3-40b4-9527-afe3663ae262.aspx</link>
      <pubDate>Fri, 25 Jul 2008 21:26:41 GMT</pubDate>
      <description>&lt;a href="http://www.opensearch.org"&gt;OpenSearch&lt;/a&gt; is one of the beautiful things
I discovered lately. If you're using Firefox 2 and above or Internet Explorer 7, look
at the search field in the right-top corner of the browser. See the shiny little thingy
there? Click on it and you can instantly add two new search engines for fast search
through your browser. The first one is my blog's search and the second (and more important)
one is the ability to search &lt;a href="http://www.biblogs.com"&gt;BiBlogs&lt;/a&gt; right from
the browser. Yeah, now you can search the whole BI community's blogs with only one
click.&lt;br&gt;
&lt;br&gt;
I call all the BI bloggers to add this too. It's 5 minutes work and it can help lot
of people out there. See &lt;a href="http://www.hanselman.com/blog/AddingOpenSearchToYourWebsiteAndGettingInTheBrowsersSearchBox.aspx"&gt;here&lt;/a&gt; for
instructions.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=567a20f1-72d3-40b4-9527-afe3663ae262" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,567a20f1-72d3-40b4-9527-afe3663ae262.aspx</comments>
      <category>BI;Programming;Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=9023e8d4-f6f2-4673-9adc-9330a9835f67</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9023e8d4-f6f2-4673-9adc-9330a9835f67</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">My blog is not an official .Net blog, but
I find myself writing a lot of C# &amp; VB.Net code over the last weeks.<br /><br />
I remember myself working <b>a lot</b> with ObjectDataSource and DataGrid/DataView/Repeater
controls in order to reflect the user what is going on in my DB. The recent changes
in the .Net world reflect the major demand from the developers to help us making this
easier. First, we were introduced to LINQ which is the first level. Now, I believe
that the ASP.Net Dynamic Data is the second level which brings it all together to
the web environment.<br />
We are all busy men and we often don't have much time to persue after all the new
.Net frameworks and developments. My only way to stay tuned to what's going on is
blogs, so I read when I have time. But when I want to learn it in more intimate way
I watch screencasts.<br />
I recommend all of you viewing the <a href="http://download.microsoft.com/download/5/D/1/5D113D2D-571C-4EDD-9C1C-59BC0E6981F6/WinVideo-2007-12-08%20Dynamic%20Data.wmv">17-minutes-cast</a> from <a href="http://blogs.msdn.com/davidebb/default.aspx">David
Ebbo</a> about Dynamic Data. It will show you what it's all about and after it you'll
even be able to create it for yourself. I hope that this is the end of writing junk
code in order to connect your DB to your UI. Time will say if I'm right.<br /><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=9023e8d4-f6f2-4673-9adc-9330a9835f67" /></body>
      <title>ASP.NET Dynamic Data</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</link>
      <pubDate>Mon, 05 May 2008 19:48:17 GMT</pubDate>
      <description>My blog is not an official .Net blog, but I find myself writing a lot of C# &amp;amp; VB.Net code over the last weeks.&lt;br&gt;
&lt;br&gt;
I remember myself working &lt;b&gt;a lot&lt;/b&gt; with ObjectDataSource and DataGrid/DataView/Repeater
controls in order to reflect the user what is going on in my DB. The recent changes
in the .Net world reflect the major demand from the developers to help us making this
easier. First, we were introduced to LINQ which is the first level. Now, I believe
that the ASP.Net Dynamic Data is the second level which brings it all together to
the web environment.&lt;br&gt;
We are all busy men and we often don't have much time to persue after all the new
.Net frameworks and developments. My only way to stay tuned to what's going on is
blogs, so I read when I have time. But when I want to learn it in more intimate way
I watch screencasts.&lt;br&gt;
I recommend all of you viewing the &lt;a href="http://download.microsoft.com/download/5/D/1/5D113D2D-571C-4EDD-9C1C-59BC0E6981F6/WinVideo-2007-12-08%20Dynamic%20Data.wmv"&gt;17-minutes-cast&lt;/a&gt; from &lt;a href="http://blogs.msdn.com/davidebb/default.aspx"&gt;David
Ebbo&lt;/a&gt; about Dynamic Data. It will show you what it's all about and after it you'll
even be able to create it for yourself. I hope that this is the end of writing junk
code in order to connect your DB to your UI. Time will say if I'm right.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=9023e8d4-f6f2-4673-9adc-9330a9835f67" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</comments>
      <category>Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I had a big test yesterday in the university,
so now I can blog again.<br /><br />
the title says it all. Enter <a href="https://downloads.channel8.msdn.com/Products.aspx">here</a> if
you're a student. MS offers many free developers tools for students under a project
called DreamSpark. Among the tools you can find: Visual Studio 2008, Windows Server
2003, Game Studio 2 (which I eager to learn for a long time, especially because I'm
a gamer) and the known Express editions of SQL Server and Visual XXX (you name it).<br /><br />
Enjoy.<br /><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525" /></body>
      <title>Great Deal for Students from Microsoft</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525.aspx</link>
      <pubDate>Mon, 25 Feb 2008 13:48:54 GMT</pubDate>
      <description>I had a big test yesterday in the university, so now I can blog again.&lt;br&gt;
&lt;br&gt;
the title says it all. Enter &lt;a href="https://downloads.channel8.msdn.com/Products.aspx"&gt;here&lt;/a&gt; if
you're a student. MS offers many free developers tools for students under a project
called DreamSpark. Among the tools you can find: Visual Studio 2008, Windows Server
2003, Game Studio 2 (which I eager to learn for a long time, especially because I'm
a gamer) and the known Express editions of SQL Server and Visual XXX (you name it).&lt;br&gt;
&lt;br&gt;
Enjoy.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,8c8f4c0f-a5d2-49cf-aef6-4eaecc25a525.aspx</comments>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=5fad5923-22da-4a42-b18d-b176b3969be8</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,5fad5923-22da-4a42-b18d-b176b3969be8.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,5fad5923-22da-4a42-b18d-b176b3969be8.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5fad5923-22da-4a42-b18d-b176b3969be8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">A good example of how to not use Ajax.<br /><p></p>
Few months ago, Blizzard Entertainment announced that Starcraft 2 is on the way and
they opened a <a href="http://www.startcraft2.com">web site</a> to make sales promotions.
In the <a href="http://www.starcraft2.com/features/terran/">sections</a> where you
see details about units and buildings in the new game, clicking on a unit will change
90% of the page with Ajax (no refresh in browser). The problem is that many heavy
pictures and flash are loaded using this method and this makes the browser freezing
for a while. I tried it with different browsers and different computers but it won't
help. The browser always freezes.<br /><br />
Think twice when designing Ajax-enabled web page. Downloading too much data with Ajax
can perform troubles. And troubled users won't come back to your web site.<br /><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=5fad5923-22da-4a42-b18d-b176b3969be8" /></body>
      <title>How you should not use Ajax</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,5fad5923-22da-4a42-b18d-b176b3969be8.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,5fad5923-22da-4a42-b18d-b176b3969be8.aspx</link>
      <pubDate>Sat, 11 Aug 2007 20:09:56 GMT</pubDate>
      <description>A good example of how to not use Ajax.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
Few months ago, Blizzard Entertainment announced that Starcraft 2 is on the way and
they opened a &lt;a href="http://www.startcraft2.com"&gt;web site&lt;/a&gt; to make sales promotions.
In the &lt;a href="http://www.starcraft2.com/features/terran/"&gt;sections&lt;/a&gt; where you
see details about units and buildings in the new game, clicking on a unit will change
90% of the page with Ajax (no refresh in browser). The problem is that many heavy
pictures and flash are loaded using this method and this makes the browser freezing
for a while. I tried it with different browsers and different computers but it won't
help. The browser always freezes.&lt;br&gt;
&lt;br&gt;
Think twice when designing Ajax-enabled web page. Downloading too much data with Ajax
can perform troubles. And troubled users won't come back to your web site.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=5fad5923-22da-4a42-b18d-b176b3969be8" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,5fad5923-22da-4a42-b18d-b176b3969be8.aspx</comments>
      <category>Programming;Programming/Ajax</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">We've been working for a while to enable
SSO in our Panorama's Dashboard site. In a matter of fact, the responsibility for
this was under the skilled hands of our system team. After a short time they succeeded
and SSO was established in our site. We saw it when we entered the site: Instead of
login page we directly entered the dashboard page.<br />
After a few days, when I entered into the settings section of the dashboard site,
I saw this:<br /><p></p><img src="http://www.miky-schreiber.com/Blog/content/binary/panoramaNoEnableSecurity.JPG" border="0" /><br /><br />
Yes, that's right. No security at all. This is why we entered directly to the dashboard
page instead of the login page...<br />
The system team claims that they never said that the SSO succeeded and we say they
did. No one will prove he's right, so there's no one to blame. But blaming is not
everything. The important thing here is to learn for the next time: When you think
you got a feature - check it. Things not always as they seems to be.<br /><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d" /></body>
      <title>Enhanced Security or No Security ?</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d.aspx</link>
      <pubDate>Sat, 11 Aug 2007 19:52:53 GMT</pubDate>
      <description>We've been working for a while to enable SSO in our Panorama's Dashboard site. In a matter of fact, the responsibility for this was under the skilled hands of our system team. After a short time they succeeded and SSO was established in our site. We saw it when we entered the site: Instead of login page we directly entered the dashboard page.&lt;br&gt;
After a few days, when I entered into the settings section of the dashboard site,
I saw this:&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://www.miky-schreiber.com/Blog/content/binary/panoramaNoEnableSecurity.JPG" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
Yes, that's right. No security at all. This is why we entered directly to the dashboard
page instead of the login page...&lt;br&gt;
The system team claims that they never said that the SSO succeeded and we say they
did. No one will prove he's right, so there's no one to blame. But blaming is not
everything. The important thing here is to learn for the next time: When you think
you got a feature - check it. Things not always as they seems to be.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,618c5fd7-9b1d-4c47-aa48-9a9e286f0a6d.aspx</comments>
      <category>BI;BI/Panorama;Programming;Tips &amp; Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=e01e1cd3-3944-4c1b-9cb1-06293e83bb65</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,e01e1cd3-3944-4c1b-9cb1-06293e83bb65.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,e01e1cd3-3944-4c1b-9cb1-06293e83bb65.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e01e1cd3-3944-4c1b-9cb1-06293e83bb65</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Two days ago I talked with a friend about
our feelings at work. I told him that many times I have the feeling that people just
don't work. He asked me how I can see that, and I told him that they can't concentrate
when they all going to have coffee or talking to each other every minute. "So, what
you want them to do, sing: Work, Work, Work! all day?", he said. Then I told him this
short story:<br /><br />
Last week I went to say hello to my friends in a very serious (and therefore <span style="height: 10px; font-family: arial; font-size: 9pt; color: rgb(0, 0, 153);" dir="ltr" id="spnTrans1"></span>successful)
programming team. There were three guys (<a href="http://doronsharp.spaces.live.com/">Doron</a>, <a href="http://blogs.microsoft.co.il/blogs/ysa/">Yossi</a> and
Roy) coding there. I love challenges, so I tried to go to the other side of the room
(and this team has a big room) unseen. Guess what - I made it. I went to the other
side of the room and no-one saw me. They were all very concentrated on their code.
I could steal everything I wanted, but you know - friends... 
<br /><br />
"That's how should people work", I told my friend. Still, I don't think that everyone
can do this all the time, but I expect every worker to behave that way at least an
hour or two in a day, and I promise you that their production will greatly grow.<br /><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e01e1cd3-3944-4c1b-9cb1-06293e83bb65" /></body>
      <title>Concentration</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,e01e1cd3-3944-4c1b-9cb1-06293e83bb65.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,e01e1cd3-3944-4c1b-9cb1-06293e83bb65.aspx</link>
      <pubDate>Sat, 14 Jul 2007 20:43:01 GMT</pubDate>
      <description>Two days ago I talked with a friend about our feelings at work. I told him that many times I have the feeling that people just don't work. He asked me how I can see that, and I told him that they can't concentrate when they all going to have coffee or talking to each other every minute. "So, what you want them to do, sing: Work, Work, Work! all day?", he said. Then I told him this short story:&lt;br&gt;
&lt;br&gt;
Last week I went to say hello to my friends in a very serious (and therefore &lt;span style="height: 10px; font-family: arial; font-size: 9pt; color: rgb(0, 0, 153);" dir="ltr" id="spnTrans1"&gt;&lt;/span&gt;successful)
programming team. There were three guys (&lt;a href="http://doronsharp.spaces.live.com/"&gt;Doron&lt;/a&gt;, &lt;a href="http://blogs.microsoft.co.il/blogs/ysa/"&gt;Yossi&lt;/a&gt; and
Roy) coding there. I love challenges, so I tried to go to the other side of the room
(and this team has a big room) unseen. Guess what - I made it. I went to the other
side of the room and no-one saw me. They were all very concentrated on their code.
I could steal everything I wanted, but you know - friends... 
&lt;br&gt;
&lt;br&gt;
"That's how should people work", I told my friend. Still, I don't think that everyone
can do this all the time, but I expect every worker to behave that way at least an
hour or two in a day, and I promise you that their production will greatly grow.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=e01e1cd3-3944-4c1b-9cb1-06293e83bb65" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,e01e1cd3-3944-4c1b-9cb1-06293e83bb65.aspx</comments>
      <category>Programming</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=229185d7-e921-482c-92b8-d73f51353375</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=229185d7-e921-482c-92b8-d73f51353375</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">As I have said in the introduction, I recently
left the .Net department in my company. We worked on a very interesting GIS application,
using ESRI's ArcGIS line of products.<br />
In the day before our deadline, I've found a really serious but also foolish bug:
In many places in our product, the date looked like this: 13/41/07, 20/56/07, and
so on.<br />
When I've seen that I immediately knew what happened. Instead of formatting our DateTime
data as dd/MM/yy, we used dd/mm/yy. As you probably know, "mm" is the minutes and
"MM" is the month, so the dates had the minutes instead of the month. 
<br />
That was a foolish mistake which caused us to reopen the solution and running many
tests all over again. bummer.<br /><br />
What have I learned from this?<br /><ol><li>
Always remember the <a target="_blank" title="DRY" href="http://www.pragmaticprogrammer.com/ppbook/extracts/rule_list.html">DRY</a> (Don't
Repeat Yourself) principle (from <a target="_blank" title="the pragmatic programmer" href="http://www.pragmaticprogrammer.com">the
pragmatic programmer</a>). If our DateTime format was stored in one place, the change
could be much more simple.</li><li>
Tests have to be more specific: "Check that all fields are OK" is not enought. Many
programmers checked these pages/modules and nobody found this bug.</li><li>
I believe that code review should had cover this bug. The code review must be in high
quality.<br /></li></ol><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=229185d7-e921-482c-92b8-d73f51353375" /></body>
      <title>Beware of date formats</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</link>
      <pubDate>Wed, 09 May 2007 21:36:22 GMT</pubDate>
      <description>As I have said in the introduction, I recently left the .Net department in my company. We worked on a very interesting GIS application, using ESRI's ArcGIS line of products.&lt;br&gt;
In the day before our deadline, I've found a really serious but also foolish bug:
In many places in our product, the date looked like this: 13/41/07, 20/56/07, and
so on.&lt;br&gt;
When I've seen that I immediately knew what happened. Instead of formatting our DateTime
data as dd/MM/yy, we used dd/mm/yy. As you probably know, "mm" is the minutes and
"MM" is the month, so the dates had the minutes instead of the month. 
&lt;br&gt;
That was a foolish mistake which caused us to reopen the solution and running many
tests all over again. bummer.&lt;br&gt;
&lt;br&gt;
What have I learned from this?&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Always remember the &lt;a target="_blank" title="DRY" href="http://www.pragmaticprogrammer.com/ppbook/extracts/rule_list.html"&gt;DRY&lt;/a&gt; (Don't
Repeat Yourself) principle (from &lt;a target="_blank" title="the pragmatic programmer" href="http://www.pragmaticprogrammer.com"&gt;the
pragmatic programmer&lt;/a&gt;). If our DateTime format was stored in one place, the change
could be much more simple.&lt;/li&gt;
&lt;li&gt;
Tests have to be more specific: "Check that all fields are OK" is not enought. Many
programmers checked these pages/modules and nobody found this bug.&lt;/li&gt;
&lt;li&gt;
I believe that code review should had cover this bug. The code review must be in high
quality.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=229185d7-e921-482c-92b8-d73f51353375" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</comments>
      <category>Programming;Programming/.Net</category>
    </item>
  </channel>
</rss>