tag:blogger.com,1999:blog-50181572317026966442024-03-05T12:50:38.501-08:00Microsoft 2012Adminhttp://www.blogger.com/profile/04828932438805495528noreply@blogger.comBlogger397125tag:blogger.com,1999:blog-5018157231702696644.post-52955754477240176212012-01-29T23:58:00.000-08:002012-02-04T00:42:42.957-08:00Microsoft Xbox Kinect - Compatibility and Games<div style="text-align: justify;">The Xbox Kinect allows a revolutionary wire-free game-play experience. Designed to compete with the Sony PlayStation Move and Nintendo's established Wii games console, we take a look at the origins of the Kinect system and review compatibility with older Xbox 360 consoles. We also review the best new games and look at the Kinect launch titles.</div><div style="text-align: justify;"><b>Origins of Microsoft's Kinect </b></div><div style="text-align: justify;">Kinect was announced by Microsoft at the E3 technology show on 1 June 2009. At the presentation three demos were shown to showcase the system, these being Ricochet, Paint Party and Milo & Kate. A demo-only version of Burnout Paradise was also shown at he show.</div><div style="text-align: justify;">Project Natal formally became Kinect at the 2010 E3 show where the redesigned Xbox 360 was also announced. This new version of the console has the additional Aux port to combine the USB data and power supplies required by the Kinect.</div><div style="text-align: justify;"><b>Kinect Compatibility </b></div><div style="text-align: justify;">Microsoft has confirmed that the Kinect system will be fully compatible with all versions of the Xbox 360 console sold since its original release. It would appear that the new motion control system will considerably extend the product life of the Xbox 360 system. Combined with the recent refresh of the product line, the console should not see a replacement until around 2015.</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-69263864106540899002011-11-09T12:12:00.000-08:002012-02-04T00:42:42.958-08:00Tutorial: Debugging AX while still using restricted roles (non-admin)Saw this on our internal forum today, and thought it's a nice thing to share with all of you.<br /><br /><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">1.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Close All AX instances<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">2.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Open AX Development Environment (ax32.exe -development)<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">3.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Open AX Application (ax32.exe)<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">4.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Add Role that you would like to test to your UserId<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 72pt; mso-list: l0 level2 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">a.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">System Administration > Common > Users <o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 72pt; mso-list: l0 level2 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">b.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Find yourself and double click to get to the detail window<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 72pt; mso-list: l0 level2 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">c.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Assign role that you want to test<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">5.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Close AX Application<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">6.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Set break points in AX Development Environment<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">7.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">Create a job and add this line<o:p></o:p></span></span></div><br /> <span style="font-family: Consolas; font-size: 8pt; mso-fareast-language: EN-US;"><em>SecurityUtil::sysAdminMode(<b><span style="color: darkblue;">false</span></b>);<o:p></o:p></em></span><br /><span style="color: #1f497d;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">8.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">From the AX Development Environment “Ctrl W” to open the application<o:p></o:p></span></span></div><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="color: #1f497d; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">9.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span style="color: #1f497d;"><span style="font-family: Calibri;">You are now in a reduced permission user and have the ability to debug. </span></span><span style="color: #1f497d; font-family: Wingdings; mso-ascii-font-family: Calibri; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">J</span></span><span style="color: #1f497d;"><o:p></o:p></span></div><span style="color: #1f497d;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br /><br /><div class="MsoListParagraph" style="margin: 0cm 0cm 0pt;"><span style="color: #1f497d;"><span style="font-family: Calibri;">To get your environment back to full admin, re-execute the job in step 7 with a <em>true</em>.<o:p></o:p></span></span></div><br /><br /><strong>Note</strong>: This will not work for EP, Services, direct BC.NET and cases using runas(), as the SecurityUtil::sysAdminMode is limited to the current session.<br /><br /><br />Ed Budrys from our Security team deserves the credit for the above.<br /><br />Let me know if you found this to be useful.<br />ThanksUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-83985662951051559992011-10-28T14:54:00.000-07:002012-02-04T00:42:42.958-08:00Tutorial: AX 2012 - Invalid field access or Accessing unretrieved fields<em>Read the post all the way until the end - there's an ask for you guys there!</em><br /><br />As many of you have already seen in the new AX 2012 release, there are a lot more tables present in the application, because we went through an exercise of normalizing the data model. <br />Another feature that was added at the same time was the Table Inheritance, allowing to sub-class tables and add additional fields reusing some of the behaviors of the base table.<br /><br />All of it is great! The only problem with it is that it comes at a price - we now need to retrieve a lot more data and do a lot more joins between tables. So we tried to mitigate that by using field lists where possible and adding AdHoc query support, which basically eliminates unneccessary joins between tables from the hierarchy, if fields from these tables are not selected.<br /><br />We have also implemented a number of things that allow us to clearly see if the field was selected in the user interface, the APIs needed for doing the same, as well as special handling for invalid field access.<br /><br />This tutorial contains a form, which showcases the different aspects of data access in cases described above.<br />You can download the project with the tutorial from <a href="https://skydrive.live.com/?cid=e5871abbdbd5cc92&sc=documents&id=E5871ABBDBD5CC92%211782#">my SkyDrive.</a><br /><br />On the first tab, we have the standard "On hand" view, which in the data model is a join between InventSum and InventDim, with group by clauses on selected fields, in this case, ItemId from InventSum and InventLocationId from InventDim, and aggregation on the AvailPhysical column.<br />As you can see from the screenshot below, the rest of the InventDim fields are shown as <em>Unretrieved</em>. So, naturally, accessing one of them from code, for example, should not be a legal operation. <br />To verify that statement, there are 2 buttons on the form, the Incorrect and the Correct was of accessing the field. Clicking on the first one simply tries to read the value out of the InventSiteId field, while the second one uses the API method <em>TableBuffer.isFieldDataRetrieved()</em> to first verify if the field can actually be accessed. <br /><br />Note, that in the below example, both buttons will work, as in, there won't be any errors shown to the user. When accessing the field, even though it is not retrieved to the client, the value will be treated as the default value for that type, that is, an empty string.<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1pGVHjdc_WE1dPf2xLMfX2Mxr_ECiLvuvmUecVxifuzvWlZqHylFfHFSJUI5PbVLcRej4lMxhxT-A/Tutorial_InvalidFieldAccessFormExample1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="317" src="https://byfiles.storage.live.com/y1pGVHjdc_WE1dPf2xLMfX2Mxr_ECiLvuvmUecVxifuzvWlZqHylFfHFSJUI5PbVLcRej4lMxhxT-A/Tutorial_InvalidFieldAccessFormExample1.png" width="320" /></a></div><br />In order to verify that we do not access fields in an invalid way like above, we have introduced a parameter, that will throw an exception if a field that was not retrieved is being accessed.<br /><br />In order to enable this validation, you need to update the below shown parameter in the Server configuration form (Located under System administration \ Setup \ System). After changing the value (note, that it is per AOS) you need to restart the AOS for the changes to take effect.<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1p_2kycsSdifcCbrHoivfaJATeedVFUXEh92o6CE2VVPJE_ff4pIssXZ7xZFHo-HYokgoVnp3Z5o8/Tutorial_InvalidFieldAccessSetup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="168" src="https://byfiles.storage.live.com/y1p_2kycsSdifcCbrHoivfaJATeedVFUXEh92o6CE2VVPJE_ff4pIssXZ7xZFHo-HYokgoVnp3Z5o8/Tutorial_InvalidFieldAccessSetup.png" width="320" /></a></div><br /><br />Now, if you try to use the first button (under Incorrect) from above, you will get a stack trace, notifying you that the specified field was not retrieved.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1pDlMc87Oj21YheLpMAmK6XZ1E9eXCphcakdkjny_8i6wW94AHVJ91XPb5gn8okYIkZykwSDyfDT4/Tutorial_InvalidFieldAccessErrorLog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="194" src="https://byfiles.storage.live.com/y1pDlMc87Oj21YheLpMAmK6XZ1E9eXCphcakdkjny_8i6wW94AHVJ91XPb5gn8okYIkZykwSDyfDT4/Tutorial_InvalidFieldAccessErrorLog.png" width="320" /></a></div><br /><br />We suggest that when testing your modifications in the application, you always have that flag enabled, so as to avoid unpleasant and hard-to-find bugs later on in the production environment.<br /><br /><br />On the second tab of the Tutorial form, the same type of information is presented, only this time the output is actually based on a new table inheritance structure I created.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1papY3H0xDJBnjI0N-I3doeTz3H-1Xs2-kXfUVwlZu0xXwiTsmYr9v-UfVWTwcKb77ZGs8TaOKsms/Tutorial_InvalidFieldAccessDataModel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://byfiles.storage.live.com/y1papY3H0xDJBnjI0N-I3doeTz3H-1Xs2-kXfUVwlZu0xXwiTsmYr9v-UfVWTwcKb77ZGs8TaOKsms/Tutorial_InvalidFieldAccessDataModel.png" width="238" /></a></div><br />The base table, GenericBall, contains 2 characteristics of any ball. SoccerBall is extending it and adding an additional characteristic (for the sake of the example, let's assume Brand is only relevant to soccer balls). This is basically a very simple table inheritance structure.<br /><br />In the form, however, I am only selecting to view the Brand field from SoccerBall, not selecting the other 2 fields from the base table. As expected, they show up as <em>Unretrieved</em> in the user interface. <br />However, there is one difference in how Scsc tables are handled - and that is, they will always throw an exception when you try to access one of the unretrieved fields. <br />The two buttons above the grid demonstrate that. Try it out, enabling/disabling the server configuration parameter shown above.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1pYEFjw63bX1TqWE01Y4oauyZWHsOLndU8g0oD_2-j7BD6KKYQ5JexFNiZts4soKLKsqXGBCguHeA/Tutorial_InvalidFieldAccessFormExample2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://byfiles.storage.live.com/y1pYEFjw63bX1TqWE01Y4oauyZWHsOLndU8g0oD_2-j7BD6KKYQ5JexFNiZts4soKLKsqXGBCguHeA/Tutorial_InvalidFieldAccessFormExample2.png" width="320" /></a></div><br />That's pretty much all there's to it. Let me know if you have any questions.<br /><br />Now, I have one thing to ask you all too. <br />We in the AX Test team have done our best to find invalid field access problems before the release, but if you find one using the approach above, please log it either through the standard Microsoft channels (partner/ MsConnect/ etc.), or as a comment directly under this blog post. <br /><br />Thank you!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-10766557416978369112011-10-24T06:09:00.000-07:002012-02-04T00:42:42.958-08:00Tutorial: AX2012 - A new way of accessing the QueryBuildDataSource for a particular FormDataSourceWhen playing with some X++ code, I found an interesting addition that happened in AX 2012 related to form development.<br /><br />There are 2 new methods that were added to the FormDataSource class, which allow you to very easily and error-free access the underlying QueryBuildDataSource, whether that is for the initial form query or for the queryRun that also contains user filters and sorting.<br /><br />So, for example, instead of writing:<br /><br /><em>this.query().dataSourceTable(tableNum(InventTableModule), 2);</em><br /><em>this.queryRun().query().dataSourceName(identifierStr(Purch));</em><br /><em>....</em><br /><br />you can use the 2 new methods:<br /><br /><em>this.queryBuildDataSource();</em><br /><em>this.queryRunQueryBuildDataSource();</em><br /><br /><br />It might seem as a very minor improvement, but in reality it greatly simplifies maintenance of code on forms, when new datasources are added or existing ones removed/renamed.<br /><br />That's all for today.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-70062281662988991072011-10-20T21:15:00.000-07:002012-02-04T00:42:42.958-08:00Microsoft FY12Q1 Results<p>Here it is, FY12Q1 already: <a href="http://www.microsoft.com/presspass/press/2011/oct11/10-20fy12Q1earningsPR.mspx">Microsoft Reports Record First-Quarter Results $17.37 billion of revenue driven by solid business and consumer demand.</a>. Wow, is that the longest, braggy release title we've ever had? Read it and you'll also discover that Bing has an organic line. In the Q&A session, <a href="http://seekingalpha.com/article/301037-microsoft-management-discusses-q1-2012-results-earnings-call-transcript?part=qanda">Microsoft Management Discusses Q1 2012 Results - Earnings Call Transcript - Seeking Alpha</a>, there was a lot of Qs about Skype and - news to me - we discover that $51 billion of our cash assets are kept offshore, to avoid taxes. Viva la 1%! (<i>I kid</i>).</p><p><i>(I'm out on the road so this will be short.)</i></p><p>My usual suspects:</p><ul><li>Mr. Jay Greene: <a href="http://news.cnet.com/8301-10805_3-20123363-75/microsoft-sees-strong-office-and-flat-windows-in-quarter/">Microsoft sees strong Office and flat Windows in quarter Microsoft - CNET News</a> - "<span style="color:#000080;">The company continues to generate mountains of cash. Even as it returned $2.7 billion to shareholders in the quarter, its cash hoard grew nearly $5 billion from June 30 to $57.4 billion.</span>"</li><li>Mr. Joe Wilcox: <a href="http://betanews.com/2011/10/20/microsoft-q1-2012-by-the-numbers-17-37b-revenue-5-7-billion-profit/">Microsoft Q1 2012 by the numbers $17.37B revenue, $5.7B profit</a> - on the flat Windows numbers: "<span style="color:#000080;">Earth to Windows & Windows Live president Steven Sinofksy: You can't ship Windows 8 soon enough.</span>"</li><li>Mr. Todd Bishop: <a href="http://www.geekwire.com/2011/microsoft-hits-profit-estimates-rising-server-office-sales">Microsoft hits profit estimates, lifted by Office and servers - GeekWire</a> and, more intriguing, <a href="http://www.geekwire.com/2011/microsoft-results-show-ipad-hurting-windows-pc-sales">Microsoft results show how iPad is cutting into Windows PCs - GeekWire</a></li><li>Ms. Mary-Jo Foley: <a href="http://www.zdnet.com/blog/microsoft/microsoft-earnings-insights-on-premises-office-still-has-a-lot-of-life-left/11054">Microsoft earnings insights On-premises Office still has a lot of life left ZDNet</a></li></ul><p>And a bonus view of OSD:</p><ul><li><a href="http://www.businessinsider.com/sai">Business Insider - Microsoft Only Lost $500 Million Online This Quarter!</a></li></ul><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> <a title="http://technorati.com/tag/msft" rel="tag" href="http://technorati.com/tag/msft">MSFT</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-18171114329713206502011-10-09T06:01:00.000-07:002012-02-04T00:42:42.958-08:00Tool: Updating a field value for all selected records on a form<span style="font-family: inherit; font-size: large;">Update:</span><br />It looks like I was re-inventing the wheel here.<br />Turns out that a tool doing exactly the same (and even invoked from the same place on Record info form) already exists and is called "Fill Utility". The problem is that it's disabled by default in the License configuration, so it not available. <br />More information about how to get it and what it does can be found in this <a href="http://blogs.msdn.com/b/axinthefield/archive/2011/06/21/update-multiple-records-with-fill-utility.aspx">MSDN article</a><br /><br /><br /><span style="font-family: inherit; font-size: large;">Problem statement:</span><br /><span style="font-family: inherit;">During a recent customer visit we received a suggestion from the developers working on customizing the customer application to their needs. The suggestion was about being able to modify the value of a certain field on a form for multiple records at once.</span><br /><span style="font-family: inherit;">As you know, in AX 2012, if we wanted to change a certain property for a number of entities (for example, update the default transfer order overdelivery allowence on a number of items at once), we would have to go through them one by one, which is time consuming and definitely not fun.</span><br /><br /><span style="font-size: large;">Solution:</span><br /><span style="font-family: inherit;">Using the small example I created we can in a simple and intuitive manner update the selected field value for all the marked records.</span><br /><br /><span style="font-family: inherit;">It looks something like this: </span><br /><br /><span style="font-family: inherit;">1. First, you multi-select the records where a certain field needs to be updated, and open the Record information for them</span><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1p-maLu4CuPoP0-gPlY6X3u0NF2IhNgi_cvnArVhxTbDkmRHvp9bMqHtbYo7cA3UAKhckCkC5mKjQ/SysRecordInfo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" height="320" src="https://byfiles.storage.live.com/y1p-maLu4CuPoP0-gPlY6X3u0NF2IhNgi_cvnArVhxTbDkmRHvp9bMqHtbYo7cA3UAKhckCkC5mKjQ/SysRecordInfo.png" width="297" /></span></a></div><br /><span style="font-family: inherit;">2. Then, you click Update, select the field that needs to be updated and put in the new value</span><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://byfiles.storage.live.com/y1psyksmlKTBnRqotHYP5SrE0IRuycqFmGiVZs0hBl6-lby91w7xAVr0L2aOxHTtGtJTWzFUbDskds/InventBatch_Example.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" height="261" src="https://byfiles.storage.live.com/y1psyksmlKTBnRqotHYP5SrE0IRuycqFmGiVZs0hBl6-lby91w7xAVr0L2aOxHTtGtJTWzFUbDskds/InventBatch_Example.png" width="320" /></span></a></div><br /><span style="font-family: inherit;">3. After you confirm the changes, all the selected records will be updated with the new value.</span><br /><br /><span style="font-family: inherit; font-size: large;">Download:</span><br /><span style="font-family: inherit;">Download the project from my </span><a href="https://skydrive.live.com/?cid=e5871abbdbd5cc92&sc=documents&uc=1&id=E5871ABBDBD5CC92%211774#"><span style="font-family: inherit;">SkyDrive</span></a><br /><br /><br /><span style="font-family: inherit; font-size: large;">Issues:</span><br /><span style="font-family: inherit; font-size: small;">These aren't really issues, just things I did not spend time on.</span><br /><ol><li><span style="font-family: inherit;">I did not develop the idea of selecting multiple fields to update at once. Might be a good idea. I just did not want to add more code into this little project. There's however a nice UI for selecting 1 or more fields in the DEV_SysTableBrowser project (</span><a href="http://www.axaptapedia.com/DEV_SysTableBrowser"><span style="font-family: inherit;">link</span></a><span style="font-family: inherit;">)</span></li><li><span style="font-family: inherit;">I did not spend enough time trying to figure out the validation that should be in place for this. I figured, if people are gonna use it, they know what they are doing.</span></li><li><span style="font-family: inherit;">The project is based on AX 2012. There's only 1 method with code, the rest is form controls. I figured it should be pretty easy to port this to other versions if needed.</span></li></ol><span style="font-family: inherit;">If people find this useful, I encourage them to add whatever else modifications. I can also re-post them here on request.</span><br /><br /><br /><span style="font-family: inherit;">Thanks</span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-58317404124383151222011-09-21T20:25:00.000-07:002012-02-04T00:42:42.958-08:00Friday! Friday! Friday! Microsoft Company Meeting 2011!<p>(<i><b>Note</b>: updated below with follow-up comments.</i>)</p><p>It's my most favorite time of the year: Friday the 23rd is the annual <b>Microsoft Company Meeting</b>!</p><p>That's right: I pull up my sleeves and thrust out my arms out wide and say, "<span style="color:#000080;">Shove in the Kool-Aid IVs to the left and to the right and keep it flowing!</span>" Man I love it. It is one of my favorite holidays of the year.</p><p>Reminder: when it comes to comments, share your internal-only content enthusiasm over on OfficeTalk (<i>especially via the otalk WP7 app</i>) vs. trying to put it here.</p><p><b>A Story of Steve, Steve, and Steven</b></p><p>This year is one of those inflection points: Apple has been soaring with its excellent device results, blowing Microsoft away and cannibalizing our Windows powered device market. The Microsoft stock is horribly flat and there are calls all-around for Ballmer to be replaced. Now, several things are in play: Mr. Jobs has stepped down due to his health reasons, WP Mango is reaching release with Nokia devices to begin their flow, and Windows 8 has demonstrated a reboot to the Windows experience and development platform. With Windows 8, Microsoft has emerged with the talking points that the company is being re-imagined.</p><p>All I can say is that SteveB should give SteveSi the CEO Bacon Achievement award: exceptional results that saved the CEO's bacon. Oh, SteveB had to be so happy to have Windows 8 revealed at BUILD right before the Financial Analysts Meeting. "<span style="color:#000080;">How ya like me <b>n-O-w</b>?!?!</span>" Actually, big chops to SteveSi who not only has done the impossible organizational wrangling between Win7 and Win8 (<i>and wherever it is leading with Win8+</i>) but also did such a smooth job with BUILD that some bloggers dared to pass the Steve Jobs torch to SteveSi. Wow. Didn't see that coming.</p><p>(<i>psst. Board. CEO ma-ter-ial. Uh-huh. There you go. Not that I'd probably work in a SteveSi CEO Microsoft, but ya could do a lot worse!</i>)</p><p>One thing I'd love to see SteveSi do: give the same level of support to writing Windows8 apps as Microsoft afforded its employees for Windows Phone. I'm not expecting him to, but if he did, I'd relish having my Spock-meets-Spartan view of him rebooted.</p><p><b>The Big Check-in - How Are Things Going</b></p><p>I expect that Mr. Turner will do the big picture for us. I like this <a href="http://microsoftok.blogspot.com/2011/07/microsoft-fy11q4-results.html?showComment=1311712910086#c7606151536600227169">comment regarding one point of view of how things are going for Microsoft</a>:</p><blockquote><p><i>There are certainly some issues at MSFT but some of the people that post in this blog are just over the top in their pessimism and whining.<br /><br />As I see it right now, the good, bad, and ugly of MSFT are:<br /><br />The good:</i></p><ul><li><i>XBOX Kinect blew it away this past Holiday, over 35M customers now pay for the priviledge of XBox Live</i></li><li><i>The enterprise business is strong, committed revenue is higher than it's ever been (MSFT has a global enterprise business that is really unmatched by anyone</i></li><li><i>Office365 and Dynamics both are rapidly growing businesses with a ton of upside</i></li><li><i>MSFT now has 11 distinct businesses that do over $1B in revenue - I can think of maybe one or two other businesses on the planet (GE, etc) that can say the same</i></li><li><i>Largely because of this diverse portfolio of businesses, MSFT was able to grow revenue, operating income, and net income in spite of *declining* PC sales (MSFT is not a one-trick pony any longer, if it ever was)</i></li><li><i>Even with weakness in the PC market the past couple of quarters, it's hard to argue with the success of Windows 7 with over 400M licenses sold</i></li><li><i>MSFT's Cloud offerings collectively are second to none</i></li><li><i>Bing has a long ways to go but has actually made some progress in the US search market against Google, which was once thought impossible</i></li><li><i>As an employee, unless you are a bottom 20% performer, the new comp plan is a win. If you don't think so, then you don't really understand the change</i></li><li><i>Say what you will about Ballmer, there are some senior execs at MSFT that are truly outstanding. Mattrick, Satya, KT, Qi Lu, PK, Lisa B - you won't find anyone better than these folks anywhere</i></li><li><i>The Nokia partnership will be instrumental in getting a WP7 device in a lot of people's hands</i></li></ul><p><i>The bad:</i></p><ul><li><i>As mentioned, PC sales actually declined in Q4</i></li><li><i>MSFT still hasn't figured out a way to win in India or China and doesn't seem to have a cohesive strategy for emerging markets</i></li><li><i>WP7 is a good product but as others have alluded to, MSFT is way late to the party in terms of highly functional / attractive UI / rich app eco-system smartphones. The Nokia deal only allows MSFT some hope at playing catch-up at this point</i></li><li><i>Employees will soon have to pay a contribution (and deductibles) for health care (thank you very much ObamaCare and the Cadillac Tax for bringing that to us)</i></li><li><i>Although there are talented people still there, a lot of talented folks have left MSFT senior leadership in the past 18 months or so - Liddell, Elop, Muglia, Bach, etc, etc. Although Elop was instrumental in getting the Nokia deal up and going</i></li></ul><p><i>The ugly:</i></p><ul><li><i>AAPL sold 20M iPhones and over 9M iPads in a quarter. In. A. Quarter. Let that sink in a moment</i></li><li><i>While MSFT has plenty of other viable businesses, none is as profitable nor as core strategically as Windows. Windows was once an impenetrable fortress, but in the past year, AAPL has penetrated it with a single product launch. MSFT is destined to play catch-up in slates, and it sounds like nothing serious is coming out until Windows 8 in another 12 to 15 months (maybe)</i></li><li><i>MSFT is still very strong in the enterprise but to the consumer, MSFT seems completely dead. MSFT has no consumer mindshare any longer</i></li><li><i>Yes, there are some interesting possibilities with Skype and Lync and XBox (etc), but it is still not at all clear that shareholders will reap anything close to $8.5B of value</i></li><li><i>GOOG still dominates search in the US and will for the foreseeable future. And their dominance is even greater internationally</i></li><li><i>OSD as an org continues to bleed money and will continue to do so for at least another couple of years</i></li></ul><p><i>There it is, from a high-performing L63 employee in a broad-based business role, trying to lay things out in a truly fair and balanced manner. Take it or leave it.</i></p></blockquote><p>I'm glad to see The Cloud in the somebody's <i>Win</i> column. When it comes to the Company Meeting, I personally am dreading anything that can be in the least bit tangled up with... sigh... THE CLOUD. Two things lost my respect to this force-fed-bubble-gum-on-my-shoe initiative: first, that using our cloud services is Alpha-Geek hostile: sorry, but there should have been upfront a free tinkering environment to go and write a whole bunch of real fun, heavy computational code. Second, that we started to slap THE CLOUD on crazy crap like home PC image editing.</p><p>Really.</p><p>So, I don't know, smuggle in a bunch of tequila and limes and whenever THE CLOUD comes up take another hit. That will at least make it palatable... in a numb, doesn't-seem-to-hurt-quite-like-it-did sort of way.</p><p><b>The New Review System and Hiring</b></p><p>Yeah, I think there's zero chance the Senior Leadership Team will go into much depth here. "<span style="color:#000080;">Cheer if you like the new review system! ... Okay, there's 40% of you. How about the rest? Give me a 'Whoo?'</span>" Want to wade in it? Pour yourself a three fingers of bourbon (<i>and keep the bottle handy</i>) and go through all the comments in the <a href="http://microsoftok.blogspot.com/2011/08/microsoft-annual-review-2011.html">Mini-Microsoft Microsoft Annual Review 2011</a> post. 1,200 comments at this point. Whew.</p><p>Strict stack ranking on a fixed curve is a tool brought in for a purpose that didn't exist in the previous review system. Having LisaB take a break from her sabbatical (<i>and, btw, what happens to most people after their sabbatical?</i>) to tell us it's being done because employees felt that the old review system was too complex is a load of greasy smoke up the keister.</p><p>I look at this system and, stepping back, it makes sense if you're preparing to do some major organizational slimming over, say, a three year period. For instance, if SteveB where going to leave, I imagine before he goes he would cut back huge parts of Microsoft versus leaving that task to the new CEO, who might make radically bad cut-back decisions (<i>from the former CEO's point of view</i>). Better to give over to the new leader a starving company ready to grow versus a fat pig you've got to go all Neutron-Jack on. Three more years. Three more years to drive down until today's lower 3s are FY2014's 5s.</p><p>Depending on who is being forced out or leaving, too, the new system might help with the <i>Young up Microsoft</i> initiative I hear whispers of.</p><p><b>Whoo-and-Hoo!</b></p><p>Didn't like your review? Ah, come on. You know when Ballmer runs around the field you're going to scream and shout (<i>though, given the last Ballmer memo's authorship, maybe we'll see Frank Shaw run around first to warm things up</i>). You're going to stand up. You're going to put aside all the depressing thoughts of those golden handcuffs never unfolding into a sparkling world of wonderment and retirement. You've got a job, a colorful CEO, perhaps a nice raise, and a company holiday to find out what's going on and to have some free grub with your work buds. Compared to 99% of the rest of the world right now, it's worth swigging the Kool-Aid for at least one day and cheering. </p><p>There's always the rest of the year for everything else.</p><p><i><b>Updated: impressions and follow-up</b></i></p><p><i>Overall</i>: a very competent Microsoft Company Meeting. Polite applause. "<span style="color:#000080;">Pip pip.</span>"</p><p>Other than the occasional video (<i>heh heh, Inception</i>) and the first one or two Train Dances, it was a low-on-humor meeting, for me. Everyone wondered if we were having a host this year. Hey, it was LisaB. Competent (<i>and probably didn't piss people off like last year</i>).</p><p>This year was demo-rama. I think the demos were good, it's just I had seen so much of everything being presented that there weren't too many surprises for me. I loved the fact that SteveSi ran one of his demos and then pointed out that everything he had just done was on an ARM slate. I regret how much money we're pouring into OSD (<i>who pointed out that they are quite </i>frugal<i> - uh-huh</i>) but I agree with a lot of what they are doing: they are not trying to out-Google-Google. They're Bing'ing Google upside the head. Go, Cosmos, go!</p><p>As for Mr. Ballmer: it was a surprise that he didn't come running and screaming out but rather had a surrogate fly around like a chimp on crack dusted with meth. Mr. Ballmer seemed more subdued this year. Love for Ballmer? People still stood up and cheered and clapped for him. Now then: someone please tell him, regarding his analogy of himself and Elop and Windows Phone sticking together, how <i>Butch Cassidy and the Sundance Kid</i> ended. Yeah, they were together alright, but the result was a little bit different than jumping off a cliff into a river.</p><p>As for people leaving (<i>as some of the tech bloggers have picked up</i>): yeah, people were streaming out. In small numbers. No where near as bad as BillG's last company meeting where Ballmer started screaming at people to sit down. And, well, yes, I was one of those folks who wandered to the upper portion of the seats while Mr. Ballmer passed on his coachie wisdom from Friday Night Lights (<i>BTW, I prefer coach John Wooden</i>). I suppose if Microsoft had been serving beer and snacks after the meeting I would have managed to stay in my seat.</p><p>So for me: technically well executed. Pip pip. I feel good about what Microsoft has wrought and how many of the things we're doing are exactly the kind of big, cross-group bets folks used to complain how we never do. The Imagine Cup winners were great to see. Pip pip. As for the meeting... I'd like a little culture, too. Maybe less inspirational videos. And more crazy. Not burping game crazy or Craig Mundie dazed-crazy, but show we have some pizzazz... with less explosive volume. And I'm fine with a box lunch if it means I don't have to stand in an infernal line to get a luke-warm burger melded to its bun.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-34716364420920752262011-08-20T07:15:00.000-07:002012-02-04T00:42:42.959-08:00Microsoft Annual Review 2011<p>It has become a tradition for folks to share their review numbers to help get a sense of what's happening and how your numbers stack up. This year we have a new challenge of working through an entirely new review system and (<i>for engineering</i>) a pay-raise for the levels most at risk of departing for greener pastures. I know folks on the edge of leaving who have been willing to hang on to see what happens.</p><p>What's a good format? How about something like the following, obfuscated as you wish:</p><ul><li>L# (promo'd?)</li><li>Bucket (1+, 1, 2, 3, 4, 5)</li><li>Merit % (/Promo %) / Engineering?</li><li>Bonus $K</li><li>Stock $K</li><li>Optional comments about Division / Group, discipline, impression of review</li></ul><p>If you like the review system, I'd really like to understand why (<i>something better than, "whee, I got a 1+," please</i>) and I'd encourage commenters to not slam the positive perspectives. I'm not too pleased with the new system at all because I feel very good engineers in my org are getting lower results because of a very strict curve. I'm probably breaking the rules in that if an excellent person got a 3 I'm having my folks be truthful in writing review feedback that, yes, they did an excellent job, just when it comes to the 3 realize that more people did even more excellent work and what it is they need to do to step it up (or, you know, start connecting recruiters with all of those competing 1s and 2s). Same thing for 4s who are doing a good job and not really having any performance problem. HR would prefer me to write the text of the review according to the verbiage of the ranking system, but screw that. I did that years ago when people got a trended 3.0 and I'm still scrubbing those dark spots of demoralizing compliance off my soul.</p><p>How do you feel, whether you're a manager writing reviews this year and comparing results to last year, or an IC trying to make sense of your compensation and recognition?</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p><br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-50506348233124786342011-07-21T10:19:00.000-07:002012-02-04T00:42:42.959-08:00Microsoft FY11Q4 Results<p><i>(ring-ring, Mini, ring-ring)</i></p><p>How is this <a href="http://www.microsoft.com/investor/EarningsAndFinancials/Earnings/PressReleaseAndWebcast/FY11/Q4/default.aspx">quarter shaping up</a>? First of all, let's review some competitors:</p><ul><li>IBM: Bang! Third base!</li><li>Google: Boom! Out of the park, home-run!</li><li>Apple: Ka-Blam! Out of the city. Game over!</li></ul><p>We've already been given a small preview thanks to the Partner conference: good Windows 7 numbers and Windows Phone, as loved as it might be (<i>especially compared to Android</i>) just ain't selling much. And no one is holding out any hopes that current customers will see their Mango update until New Years.</p><p>The iPad continues to suck in consumer love and money... money that we'd prefer they send our way but there's nothing comparable for them to buy. Windows 8 ARM tablets? Sometime next year, but what we showed at All Things D is our take of squeezing an elephant into a VW bug. Here's some deep respect and chops to the folks doing all this work, but it's a subtraction game followed by many frustrating conversations about why it's okay not to have certain obvious things work... obviously. And I have to say it's fascinating watching Sinofsky wrangle the Windows organization in this long game of reshaping itself and the consequences it has for the rest of the company.</p><p>My one analyst question for today: when the hell is Bing going to stop losing money?!? It appears that the internal hiring spree has finally cooled down so that's good - the piling of warm bodies has stopped (<i>well, only to be replaced by throwing warm bodies on The Cloud because, ah-huck, we're all in</i>). Seriously though, now's the time to start shaking the Bing tree and let the goodness of the search eco-system keep on going and shed the remaining busy work. Come on, if Xbox did it, so can you!</p><hr /><p><b>Calibration cacophony</b>: I owe a post about our new review system but I'm not going to put money down about when that's going to happen. In the meantime, I'd love to sit down with each and everyone of you that supposedly told LisaB that the previous review system, with its Exceeded and Achieved and its 20% this and 70% that, was just too durn hard to comprehend. Let's chat. This discuss (<i>*whack* against the side of your head</i>) your results for this year. I'd like to discuss (<i>*whack*</i>) what a peer relative result within a strict percentage based system means. As part of this discussion (<i>*whack* *whack* *whack*</i>) you'll learn that your results are less that what you're used to and the message and your rewards are strictly viewed through your percentile bucket, no matter if you're at the top of your bucket or the bottom. I do seem to have some feedback from your peers to discuss (<i>*whack*</i>) although the majority of it seems to spring from a glowingly content-free "<span style="color:#000080;">I'll rub your back if you'll rub mine</span>" point of view.</p><p>Be careful what you ask for, because the person listening might turn it into one big step backwards. Oh, and for some of you, here's a salary bump.<br /></p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> <a title="http://technorati.com/tag/msft" rel="tag" href="http://technorati.com/tag/msft">MSFT</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-79918168340770803742011-07-07T06:22:00.000-07:002012-02-04T00:42:42.959-08:00Help content for Microsoft Dynamics AX 2012 is now available on TechNetAs you might have heard, AX 2012 has RTM'ed recently. <br />Now, the question you might ask is - OK, I have read the What's new in AX 2012, but that's not enough. The changes are too vast and I need more detailed information about them.<br /><br />Well, worry no more :)<br /><br />The information about AX 2012 is now available on TechNet, with a lot of new content still being added each day. And, finally, it's actually interesting to read. We now have various graphs, diagrams and tables that should help you understand each feature area a bit better.<br /><br /><em><strong>Hint</strong>:</em> The description of the functional modules of the application is under section <em>5. Use Microsoft Dynamics AX</em>.<br /><br />Enjoy!<br /><br />Microsoft Dynamics AX 2012 Technical Library<br /><a href="http://technet.microsoft.com/en-us/library/gg852966.aspx">http://technet.microsoft.com/en-us/library/gg852966.aspx</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-41639226419033920302011-05-10T09:02:00.000-07:002012-02-04T00:42:42.959-08:00Skype? Steve Ballmer Discovers a Way to Obliterate Eight and a Half Billion Microsoft Shareholder Dollars!<p>That's $8,500,000,000USD for the Skype brand.</p><p><a href="http://www.microsoft.com/Presspass/press/2011/may11/05-10CorpNewsPR.mspx">Microsoft to Acquire Skype Combined companies will benefit consumers, businesses and increase market opportunity.</a></p><p>Also, because, you know, the aQuantive acquisition didn't destroy enough shareholder money.</p><p>We're bringing Skype to the Windows Phone. Just like how it's on the iPhone and Android and appears it will continue to be.</p><p>Okay, so we're bringing Skype to the Xbox. Because, you know, we don't already have video chat on the Xbox. Oh, wait... crap. Why do we need this? Other than the brand and the user base, and that's not worth 8.5 billion dollars.</p><p>Some early stories:</p><ul><li>Mr. Jay Greene at CNet: <a href="http://news.cnet.com/8301-10805_3-20061401-75.html?tag=mncol;1n">Microsoft betting Skype keeps it ahead of Google, Apple Microsoft - CNET News</a></li><li>Ms. Mary Jo Foley: <a href="http://www.zdnet.com/blog/microsoft/microsoft-buys-skype-for-85-billion-creates-new-business-division/9406">Microsoft buys Skype for $8.5 billion; creates new business division ZDNet</a></li><li>Mr. Todd Bishop: <a href="http://www.geekwire.com/2011/reason-microsofts-skype-deal-sense-kinect">Skype and Kinect could be Microsoft’s new killer combo - GeekWire</a></li></ul><p>What I'd like to hear is each Microsoft board member share their reasoning why this is an excellent idea and worth 8.5 billion dollars. And I'd keep a really, really close eye on their nose.</p><p>Geez.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-62626351595421020802011-05-07T16:26:00.000-07:002012-02-04T00:42:42.959-08:00Tutorial: Table Relation properties in AX 2012As many of you already know, Microsoft has put in a lot of effort into normalizing the tables in AX 2012 and consolidating all the data modeling tools in one place - the table itself. As part of this effort, a number of new properties have been introduced on Tables, and in this post I would like to cover some of them, namely the properties on Table Relations.<br /><br />The new properties you will find on a Table Relation in AX 2012 are:<br /><ul><li>Cardinality</li><li>RelatedTableCardinality</li><li>RelationshipType</li><li>Role</li><li>RelatedTableRole</li><li>UseDefaultRoleNames</li><li>CreateNavigationPropertyMethods</li><li>NavigationPropertyMethodNameOverride</li></ul><br />Hua Chu from the AX team has written a Guideline document, explaining how these properties should be set for Relations you add to Tables in AX. Note that in AX 2012 most of the above information is not actually used at runtime. This is something that will happen in future releases.<br />I have modified the document so that it contains the information relevant for partners and customers extending the standard application and have uploaded it to my <a href="http://cid-e5871abbdbd5cc92.office.live.com/self.aspx/Public/DynamicsAX/20110508/Microsoft%20Dynamics%20AX%20AOT%20Table%20Relation%20Properties%20Guideline.pdf">SkyDrive</a>.<br />(Modified: Something weird is happening with SkyDrive, so I have also uploaded the file to my personal site - <a href="http://kashperuk.net/DynamicsAX/20110509/Microsoft%20Dynamics%20AX%20AOT%20Table%20Relation%20Properties%20Guideline.pdf">download</a>)<br />The document requires certain knowledge of Entity Relationship Modeling (ERM) and UML notation.<br /><br /><strong>Disclaimer:</strong><br />This document is intended as a guideline only, and should not be used as a Step-by-Step instruction.<br />Changes to any of the described functionality might still happen before AX 2012 RTM.<br /><br /><br />Your feedback and questions are, as always, welcome.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-61464483159366830942011-05-05T10:37:00.000-07:002012-02-04T00:42:42.959-08:00Tutorial: lockWindowUpdate() vs. lock()/unlock()There<em> </em>are two method pairs in X++, that are used throughout the application by everyone writing some processing on application forms. These are:<br /><br /><em>element.lock(); <br />element.unLock();</em> <br /><br />and<br /><br /><em> element.lockWindowUpdate(true); <br />element.lockWindowUpdate(false);</em> <br /><br />Now, not that many people know the difference between the two methods, and only very few think about why and when should each of them be used.<br />I will try to describe the behavior of these methods and at the end give some recommendations on how to use them. I have done some kernel code reading (with help of kernel dev. Andy Stach, who I would like to mention here), so what I write below is more or less backed up by code.<br />If you disagree with some of the recommendations though, please share your experience in using these methods through comments for this post. <br /><br /><h4><em>FormRun.lockWindowUpdate()</em></h4>is basically a wrapper around the <em>LockWindowUpdate Win32</em> function. What it does is pretty simple: <br /><blockquote>When a window is locked, all attempt to draw into it or its children fail. Instead of drawing, the window manager remembers which parts of the window the application tried to draw into, and when the window is unlocked, those areas are invalidated so that the application gets another WM_PAINT message, thereby bringing the screen contents back in sync with what the application believed to be on the screen.</blockquote>See the <a href="http://msdn.microsoft.com/en-us/library/dd145034(VS.85).aspx">link </a>on MSDN for a detailed description. <br />Note, that according to MSDN, it should not be used for general purpose suppression of redraw operations, but only when dealing with drag&drop operations. This does not hold true for AX, where this method is used all over the place to prevent redraw of controls on the form. <br />Another interesting point is that only one window can be locked at the same time. So, any nested calls to <em>lockWindowUpdate</em> will be ignored, but when unlocking, only the outer-most unlock will actually invoke the Win32 counterpart. Now, I have not seen this used in X++, which is for the better. <br /><br /><h4><em>FormRun.lock()</em></h4>is internally invoking <em>lockWindowUpdate</em> to prevent the redraw of the window, and then also prevents the IntelliMorph control layout engine from running. This is commonly used in scenarios where control properties affecting control arrangement are being set in a loop, which provides a performance optimization as it avoids redundant arrange calls being processed. On the other hand, when calling <em>FormRun.unlock</em>, more work will need to be done, compared to using <em>lockWindowUpdate(false)</em>, where the control layout changes were actually processed by the layout engine, but simply not displayed. <br /><br /><h4>So, based on my investigation, I would suggest to use the following recommendations when doing form development:</h4><ul><li>When <em>formRun.resetSize()</em> is used, specifically, when some controls become visible, increasing the form size, always use <em>formRun.lock()/unlock()</em>, otherwise the change in the size of the form might not get reflected on the screen correctly.</li><li>When changing multiple layout properties (Left, Width, etc.) on one or more controls, use lock/unlock</li><li>When you modify the properties that do not impact the layout of controls on the form, use <em>formRun.lockWindowUpdate()</em>, or, if there are only very few control properties being modified, do not lock the form window at all.</li></ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-18439098868356828782011-04-28T07:52:00.000-07:002012-02-04T00:42:42.960-08:00Microsoft FY11Q3 Results<p>What's on your mind as the <a href="http://www.microsoft.com/investor/EarningsAndFinancials/Earnings/PressReleaseAndWebcast/FY11/Q3/default.aspx">Microsoft FY11Q3 results</a> get released? Some things I'm thinking of:</p><p><b>Win7 Business being eaten alive by iPads?</b> Oh, those hungry hungry cannibals eating away the post-PCs for your PC dependent iPad slates. Probably no good news in the Win7 OS business could please people seeing Apple having to buy everyone working at Apple pants with ten pockets so that they can continue stuffing money into them.</p><p><b>Office 14 / SharePoint</b>: continued strength? Leveled? Dip?</p><p><b>Kinect</b>: what are the post-holiday sells like?</p><p><b>Xbox Live security</b>: not that we want to be cocky, but if Xbox Live was broken into like Sony's Playstation Network Microsoft would have a big-black eye. Probably two. How confident is Microsoft in the network's security?</p><p><b>WP7 numbers</b>: how has the trend been in activated phones? How is the Nokia deal shaping up? How will Microsoft not be the weepy little toy of the phone carriers crying over a release chart when the Mango update goes out?</p><p><b>Share price</b>: talk about one dead share. It's a dead fish. That a bunch of hippy dock-workers played hacky-sack with and left to rot out in the sun. So dead that we're shifting budgets around to not award stock but give out crisp, sweet-smelling Benjamins instead to the employees we value most. Microsoft millionaire days? A long, long distant memory. I think of that book <i>Microsoft In The Mirror</i> where a number of interviewees were reluctant to share with outside folks that they work at Microsoft because folks would light up, assuming they were rich beyond words. Today's response? "<span style="color:#000080;">You work at Microsoft? Well bless your heart.</span>"</p><p><b>Keeping employees</b>: seems as though we'll need to justify the extra bucks and effort the company is putting into spreading cash to the section of employees most likely to be recruited (<i>aka poached</i>) or give up on Microsoft. I'm sure that the investors could care less about our performance review system, but it's sad we stuck with a 20th-centry industrial review system for a 21st century Gen.Next workforce. Like many opportunities: buh-lown.</p><p>The two pressure points I certainly continue to feel:</p><p><b>WP7</b>: the NoDo update was just a Class-A Cluster-Fuck. And I don't use language like that very often. And the fact that the pre-update bricked phones was inexcusable. The WinMo team has to realize that everything they have to do must be <b>perfect</b> and <b>ahead of schedule</b> (<i>wrt running in customer's hands</i>). Any sort of focus other than that is a recipe for disaster. Mr. Ballmer is a fan of Coach John Wooden. WWJWD? Pound excellence into the team such that releasing an update was the easiest thing they had to do. If you're the kind of person looking for a challenge to fix Microsoft and prop-up its future, look for opportunities to join that team. Less Pink, more you.</p><p><b>iPad</b>: it's pretty. It's slick. It comes from a company where design is realized. It doesn't do as much as a PC, but it does enough. And by now everyone has been able to put together the pieces (<i>e.g., Windows 8 demonstrated running on ARM</i>) to figure out when Microsoft might release something that has similar form factor. But will it have the elegance and cohesiveness of the iPad 2, let alone the iPad 3? Will it be too late? </p><p>Should Microsoft release an iPad competitor, it will be THE defining moment for Microsoft's future: back in the game or game over.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> <a title="http://technorati.com/tag/msft" rel="tag" href="http://technorati.com/tag/msft">MSFT</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-37650264082794186812011-04-21T07:58:00.000-07:002012-02-04T00:42:42.960-08:00Microsoft's New Review and Compensation System - Now With More Cash!<p>"<span style="color:#000080;">I am not a number, I am a free man!</span>"</p><p>Well, at least we don't have a <a href="http://en.wikipedia.org/wiki/The_Prisoner">Six</a> to give out.</p><p>Goodbye E/A/U + 20/70/10[I/II] and hello 1 to 5.</p><p>Kim, we just don't have a <a href="http://microsoftok.blogspot.com/2006/11/no-so-limited-kim.html">Limited to give to you anymore</a>.</p><p>So we have a new review model. And a rework of our compensation. With cash, cash, cash. Forget that Microsoft stock because it's dead in the water and today's Microsoft employee is all about the paycheck. And if you actually work on creating products at Microsoft, you're getting an extra R&D bump.</p><p>And with the new 1 to 5 review score we have a new curve, too. 20% of you get a 1 (<i>whoo-hoo!</i>), 20% of you get a 2, 40% of you get a 3, 13% get a 4, and 7% get a 5. And probably fired.</p><p>Your review score is now a composite of: your results (<i>where results, not effort, matters</i>), what you did to get your results, and what your proven capability is. With an ideal that teamwork and feedback is now part of the review system, though it's not clear if feedback is mandatory via peer based reviews.</p><p>It's too bad that the internal InsideMS blog has been eradicated and wiped out of existence. It could have lived on a little bit longer so that the review system could be discussed there.</p><p>So what are your reactions?</p><p>Is the InfoPath-based review form dead? Please? Can we go back to a simple little Word form out of respect to our new simplified review score?</p><p>The next thing I think of, as a manager, is how is calibration now run. We used to do two stack ranks for the two review scores. Now we either do one or we do three (<i>results, what was done for the results, and proven capability</i>). Three seems crazy.</p><p>Next is whether this will indeed help retain employees. We've been losing a lot of good people and the Puget Sound area is ramping up in hiring. Google has always been draining people away. Facebook is now grabbing some great developers and Amazon is hiring like crazy.</p><p>So now you have some mystery amount of cash in your future to look forward to. And a simpler review score. But is that what you really want? Is that what you told LisaB during her Listening Tour? Given that Microsoft stock is in the toilet, does the future influx of cash coming in September make you feel better about working at Microsoft and will this make up for having reduced benefits (<i>e.g., a new medical plan with more of that new cash out of your pocket</i>)?</p><p>Will you be honestly told during the whole year how well you're doing so that you have frank feedback that helps you be fulfilled with your job? A problem with Stack Ranking is that leadership (<i>once burnt by the review model</i>) holds back praise due to the peer relative Stack Rank pushing a person down and then creating a "<span style="color:#000080;">surprise</span>" gap between the past praise feedback given and the review result earned. That's not fixed.</p><p>Anyway: let's celebrate saying goodbye to the 10% / Limited rating. Since the 10%-ers were not actually fired you ended up keeping people on staff who were designated as now plateaued and limited in there career at Microsoft. They had reached the end of of the ladder. These now demoralized individuals with no hope for future rewards or promotions should have at least been given a Peter Principle plaque or something.</p><p>Old school: with respect to the new Scarlet A, I assume that a 4 is the old 3.0 and that a 5 is a 2.5 and that having either a 4 or a 5 now limits other group's interest in your career, which kind of means that we've gone from making 10% of the employees unattractive to making 20% of the employees unattractive. We'll see if that's the case as this plays out of over time.</p><p>So, chair-rearranging or just what you were looking for?</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p><p> </p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-8324767628115729042011-04-11T08:19:00.000-07:002012-02-04T00:42:42.960-08:00Microsoft Dynamics AX 2012 Beta now available for download - please share your feedback<span style="font-family: Verdana, sans-serif;">As some might have noticed, I was quiet for quite some time now. I won't go into much detail as to why. What I want to say is that I along with a number of dedicated people have been hard at work on the release of a solution for Process Manufacturing and Distribution industry, which is also available in Beta through the below links.</span><br /><br /><span style="font-family: Verdana, sans-serif;">Those of you working in this industry, I would be grateful for your feedback on our work so far, as well as any bug reports or design change requests for the RTM version or future releases. </span><br /><span style="font-family: Verdana, sans-serif;">Any other feedback, especially on the development tools and environment, is also welcome, of course.</span><br /><br /><br /><span style="color: #7030a0;"><span style="font-family: Verdana, sans-serif;"><strong>Virtual Machine:</strong> <o:p></o:p></span></span><br /><span style="font-family: Verdana, sans-serif;"> </span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><a href="https://mbs.microsoft.com/partnersource/marketing/marketingcollateral/demos/AX2012DemoToolsMaterials"><span style="color: blue; font-family: Verdana, sans-serif;">https://mbs.microsoft.com/partnersource/marketing/marketingcollateral/demos/AX2012DemoToolsMaterials</span></a><span style="font-family: Verdana, sans-serif;"> </span></span><o:p></o:p></div><span style="font-family: Verdana, sans-serif;"> <span style="color: #1f497d;"><a href="https://mbs.microsoft.com/customersource/downloads/servicepacks/AX2012DemoToolsMaterials"><span style="color: blue;">https://mbs.microsoft.com/customersource/downloads/servicepacks/AX2012DemoToolsMaterials</span></a> </span></span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><br /></div><span style="font-family: Verdana, sans-serif;"> <strong><span style="color: #7030a0;"></span></strong></span><br /><span style="font-family: Verdana, sans-serif;"><strong><span style="color: #7030a0;">Installable bits (ISO & IS IExpress pkgs):</span><o:p></o:p></strong></span><br /><span style="font-family: Verdana, sans-serif;"> </span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #1f497d;"><a href="https://mbs.microsoft.com/customersource/downloads/servicepacks/AX2012Beta"><span style="color: blue; font-family: Verdana, sans-serif;">https://mbs.microsoft.com/customersource/downloads/servicepacks/AX2012Beta</span></a><span style="font-family: Verdana, sans-serif;"> </span></span><o:p></o:p></div><span style="font-family: Verdana, sans-serif;"> <span style="color: #1f497d;"><a href="https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/AX2012Beta"><span style="color: blue;">https://mbs.microsoft.com/partnersource/support/selfsupport/productreleases/AX2012Beta</span></a></span><o:p></o:p></span><br /><span style="font-family: Verdana, sans-serif;"> </span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #7030a0;"><span style="font-family: Verdana, sans-serif;"></span></span></div><div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #7030a0;"><span style="font-family: Verdana, sans-serif;"><strong>MSDN Dev Center:<o:p></o:p></strong></span></span></div><span style="font-family: Verdana, sans-serif;"> </span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><a href="http://msdn.microsoft.com/en-us/dynamics/ax/gg712261"><span style="color: blue; font-family: Verdana, sans-serif;">http://msdn.microsoft.com/en-us/dynamics/ax/gg712261</span></a><span style="font-family: Verdana, sans-serif;"> <o:p></o:p></span></div><span style="font-family: Verdana, sans-serif;"> </span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><br /></div><div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #7030a0;"><span style="font-family: Verdana, sans-serif;"><strong>TechNet Library:<o:p></o:p></strong></span></span></div><span style="font-family: Verdana, sans-serif;"> </span><br /><div class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="color: #7030a0;"><a href="http://technet.microsoft.com/en-us/library/gg852966(v=AX.60).aspx"><span style="color: blue; font-family: Verdana, sans-serif;">http://technet.microsoft.com/en-us/library/gg852966(v=AX.60).aspx</span></a><span style="font-family: Calibri;"> </span></span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-84971436132762539602011-01-27T21:39:00.000-08:002012-02-04T00:42:42.960-08:00Microsoft FY11Q2 Results<p>A quick check from the last Quarterly Results leading up to today's <a href="http://www.microsoft.com/investor/EarningsAndFinancials/Earnings/PressReleaseAndWebcast/FY11/Q2/default.aspx">Microsoft Quarterly Results</a>:</p><ul><li>What's <i>great</i>: Kinect. We sold millions of Kinects and it's full of cool! And we have a 93% customer satisfaction rate with Windows Phone 7. Looking around, I think that's also assuming that 93% of Windows Phone 7 handsets sold are the Samsung Focus.</li><li>What's <i>good</i>: our reputation is working through the bothersome-hated-defeated-spurned-ignored-renewed-respected cycle compared to Google.</li><li>What's <i>okay</i>: Windows Phone 7: we sold some to non-employees and two-million licenses are in the channel. I have no idea what that means with-respect-to actually sold hardware. But it's no KIN, so... success! Yeah.</li><li>What's <i>really, really bad</i>: the iPad is gnawing away our laptop market. And a new version is coming out soon.</li></ul><p><b>Hungry Hungry Cannibals</b>: reading Ms. Friar's last beat-the-hell out of Microsoft Goldman-Sachs report just about made me permanently hungry for human flesh given the repeated fixation on cannibalization. I swear, I'd look up from my print-out occasionally and longingly eye my more fit co-workers. </p><p>It's the iPad baby, and - booga booga - it's going to destroy Microsoft. Well, at least destroy Windows.</p><p>First all: sure, Microsoft leadership deserves all the head-bashing it gets for both mobile and small form-factor markets. We had the jump on these markets with inelegant, uninspired devices that never had a chance of taking off with consumers and no one was bold enough to reboot the product line without successful leadership from Apple showing us the way.</p><p>Next: our iPad-compete strategy is unspoken. For good reason. Just about any application developer at Microsoft can tell you that it's a secret wrapped in red. Most Microsoft-observers have put the pieces together and figured out our strategy could be and realize who could be on point to deliver something exceptionally cool to compete with Apple. This will certainly could be our bet-the-company chance to validate the tortoise-vs-the-hare fable.</p><p>How have our past tortoises fared? I can think of three recent late to market responses: Zune HD (<i>iPod - remember those?</i>), Kinect (<i>Wii</i>), and Windows Phone 7 (<i>iPhone / Android</i>). All great devices. In order for our possible iPad compete story to be a success, it has to pull a Kinect and be beyond the competition vs. a me-too or, well, me-kinda-sorta.</p><p><b>CEO Changes</b>: Mr. Ballmer's respect meter in the ephemeral tech-business... news (<i>?</i>) world is still low. Kinect has helped, but questions linger regarding what he's doing with his leadership team given Muglia's upcoming departure. I had always remarked to folks that Bob's a survivor. His time just finally ran out. It will be intriguing to see what leadership steps in or up and what happens to Bob's current team. And who might be next. Bets? Unless HR is about to unleash something huge that's been in the making my first bet is on LisaB. Also, Craig, I'd love to know what successes you've brought to the company as of late.</p><p>In the midst of Google and Apple going through leadership changes, you've got to ask: who is on the bench to replace Mr. Ballmer? What is the Board's plan? I have to reject Ms. Foley's point of view that there is no-one that can replace Ballmer. That's a <i>too big to fail</i> leadership jail sentence. Perhaps the decision is that his departure immediately results in a broken up Microsoft and the presidents he is putting in place now would be quite capable of running those sister corporations. Given the convergence and consolidation that is happening internally on a number of fronts for future development, such sister corporations would be much more dependent on each other, so it's not as whacky - or dog-eat-dog cannibalistic - as it might have seemed in the past. Given that the consent decree is considered over, Microsoft self-breaking itself up will certainly help prevent penalties when the inevitable violation occurs.</p><p>From another angle: if the Sinofskyfication of the company continues (<i>IEB now with its massive re-org complete, post-Muglia Server & Tools next?</i>) then Mr. Sinofsky ascending over a whole Microsoft will be a moot decision.</p><p>Interesting coverage after the results:</p><ul><li><a href="http://www.techflash.com/seattle/2011/01/amazoncom-on-a-hiring-tear.html">Amazon adds thousands more workers; Microsoft still cautious</a> - Mr. Todd Bishop looks at the hiring trend of Microsoft, Amazon, and Google. Want to find a new job? Knock on Amazon or Google's door. Microsoft is pretty much a flat-line.</li><li><a href="http://www.techflash.com/seattle/2011/01/microsoft-tops-estimates-kinect.html">Microsoft tops estimates; Kinect fuels Xbox; Windows 7 hits 300M</a> - Mr. Todd Bishop again.</li><li><a href="http://mobilized.allthingsd.com/20110127/microsoft-crows-on-its-earnings-conference-call-touting-xbox-and-office-strength/">Microsoft Sees Business Tech Spending Continuing to Rebound, Benefiting Office and Windows Ina Fried Mobilized AllThingsD</a> - Ms. Ina Fried</li><li><a href="http://paidcontent.org/article/419-microsofts-results-easily-beat-expectations/">Microsoft’s Results Easily Beat Expectations paidContent</a> - Mr. Joseph Tartakoff</li><li><a href="http://www.betanews.com/joewilcox/article/Microsoft-Q2-2011-by-the-numbers-Record-1995B-revenue-77-cents-EPS/1296163383">Microsoft Q2 2011 by the numbers Record $19.95B revenue, 77 cents EPS Betanews</a> - Mr. Joe Wilcox.</li><li><a href="http://www.businessinsider.com/microsoft-earnings-2011-1">Microsoft Beats The Street, But Not By Enough To Send Stock Soaring</a> - Mr. Matt Rosoff</li><li><a href="http://techcrunch.com/2011/01/27/why-microsoft-desperately-needs-to-become-more-acquisitive/">Why Microsoft Desperately Needs To Become More Acquisitive</a> - Mr. Robin Wauters. Dude. More acquisitions? Really.<a href="http://techcrunch.com/2007/05/18/microsoft-pays-6-billion-for-aquantive/"> aQuantive still blows my six billion dollar mind</a>. Can someone help me remember some of the recent good acquisitions that Microsoft has made. Is it better to make none or risk some of these money vaporization deals we've done (<i>stupid billion dollar bat</i>).</li></ul><p>In general, no surprise to people that Windows/Live was down and that Entertainment was up on the Kinect. Online (<i>aka Bing aka Partner-Level-Palooza</i>) lost over half-a-billion dollars. And gained a bit of market share.</p><p>Pulling out my crystal ball that's covered with dust along with all the other Mini implements used to write this blog (<i>oooo, an unopened bottle of Col Solare! Score!</i>): Microsoft product groups should feel good about WP7 and the influence Metro is having around the company. Like I said, there's a big convergence ahead of us, and it will be good to start aligning a simpler development story, both for Microsoft and its partners. The biggest obvious concern is the development path for the mobile platform compared to the development path for Windows, but even there you can squint and see on the horizon the possibility for that to be successful, too.</p><p>IE9 is great technology that yes, has a way to go to score some high compliance number across a bunch of random folk's assessment sites. Still: wow. WP7 is a modern joy to use and is slowly building an app catalog. Kinect. And a whole bunch of developers hunched over and hammering bits to create the next big "<span style="color:#000080;">Wow.</span>" Yeah, "<span style="color:#000080;">Wow</span>" might be inscribed on the back of a tortoise, but sometimes... the tortoise wins in the end.</p><p>The only thing that concerns me right now is (<i>and you're going to love this</i>): hiring. We've got great successes that excite people about working at Microsoft, but really, how many more people are we hiring to work on Kinect? My friends and I have never been so courted by other companies. Not since 2000. And I've got to say, the culture that Ballmer and LisaB have created is really weary. It's enlightened for the mid-1980s. But if crazy stock price jumps are no longer enthusing your employees, you've got to reboot the culture.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> <a title="http://technorati.com/tag/msft" rel="tag" href="http://technorati.com/tag/msft">MSFT</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-34733393534101156512010-10-28T07:41:00.000-07:002012-02-04T00:42:42.960-08:00Microsoft FY11Q1 Results<p>How about some <a href="http://www.microsoft.com/msft/earnings/fy11/earn_rel_q1_11.mspx">FY11Q1 Microsoft earnings</a>!</p><p>My usual suspects for earnings discussion:</p><ul><li><a href="http://www.betanews.com/joewilcox">Mr. Joe Wilcox over at Beta News</a></li><li><a href="http://www.techflash.com/microsoft/">Mr. Todd Bishop over at TechFlash's Microsoft Blog</a></li><li><a href="http://twitter.com/josephtartakoff">Mr. Joseph Tartakoff</a> somewhere within <a href="http://www.paidcontent.org/">paidContent.org</a>.</li></ul><p><b>Once more, with feeling. </b></p><p>I expect that we'll have yet another break-out quarter, a better idea that Kinect is poised to be a great seller for the holidays (<i>sell-out pre-orders and screaming Oprah audiences can't be too wrong</i>), and some glow from reasonable WP7 reviews (<i>oh, and yes, we all realize that it doesn't have copy and paste - and yet the apocalypse will not arrive</i>). </p><p>So this seems like a do-over with more good news from the last quarter. Will Wall Street react with the same "<span style="color:#000080;">Meh</span>?" </p><p>An interesting pre-earnings release article: <a href="http://www.reuters.com/article/idUSTRE69P45I20101027">Sleepy in Seattle - Microsoft learns to mature</a>.</p><p>Again, not much love for Mr. Ballmer. So, since the last quarterly earnings, Ms. Friar at Goldman Sachs dropped a bomb on Microsoft and there's been serious concern that Mr. Ballmer is clearing the executive bench at Microsoft. Or is it cleaning house? Since we're unable to criticize any mistakes our departed leaders have made, it remains a big unknown.</p><p><b>iPad, iPad, iPad! </b></p><p>Once it was "<a href="http://microsoftok.blogspot.com/2004/12/smarciagoogleg.html">Google, Google, Google</a>." Now it's Apple's iPad meant to be Microsoft's undoing. First of all, major props to Apple's continued success. It's been a long journey for Steve Jobs and Apple - especially for those of us who read <i>The Journey is the Reward</i> back when it was new. I like my iPad. It's fun. It's also no notebook replacement. I'm not even going to use it for writing tweets on Twitter, let alone writing emails. It's for screwing around, and I like screwing around... so I like my iPad. I'm blessed that I've got the spare cash for such a luxury device and the spare time to play with it.<br /></p><p>It's a new, quick consume experience that our Tablet vision failed to realize because our Tablet vision (<i>like all visions of that time</i>) was so firmly shoved up the Enterprise's butt we didn't care for consumers who'd pay good money to have a fun device to facilitate their screwing around.</p><p>We continue an expensive lesson in enlightenment. And spanking: <a href="http://money.cnn.com/2010/10/27/technology/microsoft_pdc/index.htm">Microsoft's consumer brand is dying</a>.</p><p>And goodness help us if Apple TV takes off. Our inability to string together a coherent TV strategy (<i>despite having been in the TV realm for over a decade</i>) is yet another dropped pants embarrassment waiting to happen and represents the anxiety that Wall Street has about our future despite having successes in the present.</p><p><b>Bloodletting </b></p><p>Cost cutting's slippery slope continues. I'm sure if we don't talk about continued overhead management (<i>people, benefits, etc</i>) that it will be an analyst question. I still believe we need to chuck about 15,000 positions (<i>and half of our super-ballooned contingent staff</i>) rather than continue the slow squeeze around the company that's making this an ordinary job with some extraordinary wonderful people who just haven't given up on the company. Yet. I hope that the analysts realize that continued, consistent bloodletting because a negative for hiring, and (<i>allow me to be pro-hiring for a moment</i>) if we can't bring in deep-talented new blood to replace the departed dead wood, our future is doomed to mediocrity.</p><p>And that doesn't get you a good dividend.</p><p><b>New Talent </b></p><p>And we're losing the battle for hiring new talent. If you review who we're losing to, it's a big surprise. You look at who is ahead of us in preference and you say, "<span style="color:#000080;">Really? Graduating students think <span style="font-style: italic;">they </span>are a better place to work than <span style="font-style: italic;">us</span>?</span>" It's a cold splash of reality that makes me - they guy who said we've turned things around and things are going great for our major initiatives - wonder if things are worse outside of the Microsoft bubble than I thought.</p><p><a href="http://twitter.com/fxshaw">Frank</a>, you're fighting an epic battle.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> <a title="http://technorati.com/tag/msft" rel="tag" href="http://technorati.com/tag/msft">MSFT</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-59805052014833040782010-10-19T07:18:00.000-07:002012-02-04T00:42:42.961-08:00Mr. Ray Ozzie and Microsoft's Chief Software Architect - So long, farewell, auf wiedersehen, adieu, adieu, adieu<p>A Microsoft position got retired this week: Chief Software Architect.</p><p>That used to be - quite unofficially - Mr. Bill Gates by the sheer nature of his intellect. And it led to many entertaining and terrifying BillG Reviews. A good friend of mine at the time, an architect for his team before we got all hung up about titles like that, bragged: "<span style="color:#000080;">I've never been to a BillG review and I intend to retire without going through one.</span>" He did. </p><p>But I think he missed out. As have, unfortunately, many intellectually shallow PowerPoint B.S artists who rose up the ranks in the meantime.</p><p>When I was a teenager, one book I loved to contemplate over was a series of quotes by Robert Heinlein's character Lazarus Long. One goes like (<i>courtesy the internet vs. hard-copy because the book is lost behind a stack of neglected Col Solare</i>): "<span style="color:#000080;">[...] Roman matrons used to say to their sons: 'Come back with your shield, or on it.' Later on, this custom declined. So did Rome.</span>"</p><p>The rigor of a focused, intellectually deep and sturdy software development declined with BillG's departure. No more technical assistants. No gauntlet of the BillG review. On his way out of the company, Bill anointed Ray to serve as <a href="http://www.microsoft.com/presspass/press/2010/oct10/10-18steveb-mail.mspx">Chief Software Architect</a>. I don't think that was Ray's idea. In fact, I can only imagine him tilting his head and saying, "<span style="color:#000080;">Wha-?</span>" He didn't take a broad view of Microsoft at all, but rather focused on growing the Groove momentum into other areas for the future.</p><p>As part of any enduring legacy, it will be interesting to see what happens to Mr. Ozzie's groups over time, <i>Windows</i> Azure especially. And I can only hope to the Good Lord above that the "<span style="color:#000080;">I'm all in</span>" cloud claptrap takes a retirement, too. We get it. We have The Cloud as a platform. In my mind, it makes as much sense as saying "<span style="color:#000080;">Compilers! We're all in!</span>" or "<span style="color:#000080;">Layered Windows! We're all in!</span>"</p><p>I feel with Ray Ozzie's departure that Steve Ballmer has finally asserted his complete control over the company. We've had some house cleaning this year, ranging from Mr. Ozzie to Mr. Bach & Mr. Allard to Technical Fellows to continued targeted layoffs. Perhaps this is due to the big, contemplative review Mr. Ballmer had with the Microsoft Board this year. Mr. Ballmer has hit the reset button. Do we have a Hail Mary pass, or is this Ballmer 2.0?</p><p>We'll see how that goes. In the meantime, here's hoping that the technical Presidents reporting to Mr. Ballmer can take up the custom of <a href="http://www.zdnet.com/blog/bott/does-microsoft-really-need-a-chief-software-architect/2492">intellectual rigor</a>. Because that is one custom we can't let decline anymore.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-51655332344200771662010-10-10T09:02:00.000-07:002012-02-04T00:42:42.961-08:00Microsoft Health Care Pops a Cap in One Big Week<p>Wow, what got in the corporate water for this week? Coming off the glow of last week's Company Meeting Koolaid we first got hit by the Goldman Sachs downgrade hang-over, then, to channel Mr. Ballmer, "<span style="color:#000080;">Boom-Boom-Boom!</span>"</p><ul><li>Health care changes on the way.</li><li>Live Labs gets shut down.</li><li>Technical Fellow Gary Flake, one of Microsoft few-TED stars, resigns.</li><li>Technical Fellow Brad Lovering leaves.</li><li>A glassdor.com survey that shows a lowly 50% approval rating for Mr. Ballmer.</li><li>IEB gets re-orged.</li><li>Massive gets shuttered (<i>like we were all looking forward to billboard ads while blowing crap up in Xbox</i>).</li><li>Adobe acquisition rumors.</li><li>Matt Rosoff leaves Directions on Microsoft.</li></ul><p>All this right on the eve of Windows Phone 7 being launched. Feels like one big... purge.</p><p>As for the Microsoft health plan changes: I haven't personally taken a bunch of time to figure it out yet. I had a fully scheduled Friday and I half listened to the Town Hall while working. My attention lapsed and the next thing I know they are talking about a Health Visa card against our Health Savings Plan we can use for paying our share of a visit to the doctor and roll-overs and portability. I realized I just missed some detailed stuff. Microsoft has set-up internal forums to help the employees figure this all out, so I encourage everyone to utilize that. But in the meantime, a commenter on the previous post added this:</p><blockquote><p><i>OK, I just watched the Health Care Town Hall replay. Hard thing to do early on a Saturday morning. </i></p><p><i>Let's see if I have this straight. If I go with the Health Savings Plan: </i></p><ol><li><i>All my preventive care is still free (to me). Annual physicals, dental checkups, immunizations, etc. - no charge. Wellness programs are actually beefed up even more. </i></li><li><i>For a family of 3+, the most we would have to pay out of pocket annually is $2500.00. </i></li><li><i>At the beginning of each year, MS will themselves add $3725 or thereabouts to my Health Savings Account...so MS is more than covering my $2500 obligation anyway. </i></li><li><i>Even if I have a catastrophic illness or injury, I'm still ahead $1225. </i></li></ol><p><i>I hope more insightful minds will follow up to correct any misunderstandings I have about this, but my takeaways from LisaB's deck are: </i></p><ol><li><i>Switch to HSP.</i></li><li><i>Lose both legs in a snowboarding accident. </i></li><li><i>Profit!</i></li></ol></blockquote><p>A follow-up to that:</p><blockquote><p><i>Not quite right on the healthcare costs. Worse case scenario for family of 3 is: </i></p><ul><li><i>All your preventive care costs are covered 100% by MSFT </i></li><li><i>You pay 100% of the first $3,750 in non-preventive costs. This is your deductible. </i></li><li><i>After your deductible is paid, you pay 10% of non-preventive costs. This is your co-pay. You pay a max of $2,500 in co-pays per year. </i></li><li><i>So your max annual costs are $3,750 + $2,500 = $6,250 </i></li><li><i>MSFT will pay $2,500 into your Health Savings Account each year, so your net out of pocket cost is $3,750. If you sign up for the HSP account in 2011-2013, then MSFT will contribute an additional "early adopter incentive" of $1,250. But after 2013, your max out-of-pocket costs are presumably back to $3,750 </i></li><li><i>You could pay that $3,750 out of tax-free contributions you make to your own HSA account, but then that money is locked away and can only be used for health expenses. If you don't want your money locked away then you have to pay with after-tax dollars. </i></li><li><i>In order to come up with $3,750 in after-tax dollars, you'll need to earn about $5,000 in pre-tax dollars. </i></li></ul><p><i>So, in the worse-case scenario this is equivalent to a pay cut of $5,000 per year. Maybe not too bad for someone making $200k, but that would be a 10% pay cut for someone making $50k. </i></p></blockquote><p>Will increasing health care costs follow Ms. Brummel's charted path? It's interesting that the excise portion of the future ended up being a small little bump. Next: wellness - excellent idea. I love ensuring that we're all well and stay healthy upfront. But that includes affecting the ecosystem in which we live and ensuring people actually put time towards preventative health and making a place like Redmond a healthy place to live. </p><blockquote><p><i>Sidebar</i>: Just to whine a bit: for self-proclaimed bicycle capital, this is one hell of a scary place to ride a bike. Actually ensuring there's an infrastructure from the suburbs-to-work to safely ride a bike to encourage healthy living is some local influence Microsoft should have.</p><p><i>Sidebar two</i>: Via <a href="http://twitter.com/Carnage4Life">DareO</a>: <a href="http://blogs.msdn.com/b/michkap/archive/2010/10/09/10073622.aspx">The exciting nature of being ordinary - Sorting it all Out</a> - one snippet: "<span style="color:#000080;">Microsoft now looks <b>ordinary</b> to me.</span>"</p></blockquote><p>I'm very supportive of whatever they can do about wellness (<i>though the paranoid side of me hasn't liked the 'Know Your Numbers' campaign - who gets access to my numbers? Curiously, this extra overhead might prevent me from getting my flu shot this year</i>).</p><p>Do I think the health changes will affect recruiting? Probably not. Do I think it will affect retention? Yes. See the above "<span style="color:#000080;">ordinary</span>" link. If other tech companies hold steady on their coverage then they close a big gap to hiring experienced people at Microsoft. Look, once you have a family and one or two big boo-boos (<i>medical term</i>) you realize: "<span style="color:#000080;">holy crap, we are so fortunate... I love this company for caring for me and my family so well!</span>" It's no golden handcuff, but it still anchors you. </p><p>Anchors away.</p><p>Given cut-backs like this, whether out of cost-saving necessity or not, the Senior Leadership Team has to realize there's zero tolerance now for major money screw-ups like KIN and Massive. The bumbling flushing away of millions or billions of dollars is going to be compared directly to the reduction in benefits: if this company was actually run by people who knew how to consistently achieve profits, we wouldn't be looking at these losses and saying, "<span style="color:#000080;">Yep, that could have paid for US health-care for a while...</span>"</p><p>All-in-all, though, I think (<i>not having immersed myself in the details</i>) our coverage remains a better-than-average benefit. And as long as we don't have to revert back to the Pacific Care Primary Care / Referrals model (<i>talk about a time-waster during work-hours</i>) I'm personally satisfied.</p><p>Regarding Live Labs being shutdown: so what's left that Ray Ozzie is running? FUSE labs? You know, the people who blew their internal reputation by hijacking and hacking the Office Web Apps for <a href="http://docs.com/">http://docs.com/</a> ? I would not be surprised to see Ray finding a new endeavor sooner than later. First Mesh, now Live Labs.</p><p>As for Live Labs going into Bing... what the? I've watched a lot of curious hiring and initiatives at Bing. All the best wishes to you Bingsters, but you're beginning to resemble an organization that has way too many people and now you're just creating work to keep them busy. We've seen this before, and curiously, with some of the same leadership that's in Bing now. Better to put them on a productive profit making endeavor or risk having them cut loose.</p><p>From the comments:</p><blockquote><p><i>Let's see if the latest round of "This will bolster the stock price works." IEB re-org and benefit changes. Doubt it. </i></p></blockquote><p>Checked with some friends in the Interactive Entertainment Business and they glumly report "<span style="color:#000080;">We're getting Sinofskied.</span>" (<i>Not reporting to Sinofsky, but picking up the same kind of management structure.</i>) Ah. I've always been curious if the Sinofsky model holds up in a creative group. Now we have one big example in the making.</p><p>Looping back to Mr. Kaplan's <i>ordinary</i> comment: Mr. Matt Rosoff's <a href="http://mattydread.wordpress.com/2010/10/06/my-decade-at-irections-on-microsoft/">parting post on leaving Directions on Microsoft</a> expresses it in a different way: </p><blockquote><p><i>In Seattle, Microsoft was where the all the best and brightest worked, had worked, or wanted to work. People even pronounced it with a particular tone of voice, hushed but awful, like people back East say "Harvard." All-caps. "Yeah, he owns a coffee shop now. But he used to work at MICROSOFT." [...] it's not MICROSOFT anymore. It's just Microsoft. Even in Seattle.</i></p></blockquote><p>How do you feel about that? You're not ordinary and you don't live an ordinary life. You don't expect to do ordinary work for an ordinary company, do you? What needs to change?</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-54940519430507329492010-10-06T12:48:00.000-07:002012-02-04T00:42:42.961-08:00A Case of the Microsoft Downgrade Blues<p>Oh, great, we've hit a case of the downgrades as a sequel to the quarterly results that no-one bought.</p><p>Specifically, Ms. Friar at Goldman Sachs downgraded us with a variety of reasons and expectations. From Mr. Todd Bishop: <a href="http://www.techflash.com/seattle/2010/10/goldman_downgrades_microsoft_says_change_in_cource.html">Goldman downgrades Microsoft, makes case for major overhaul</a>. Snippet of some gold Goldman Sachs from there:</p><div id="container" jquery1286335399392="10"><div id="columnsWrap" jquery1286335399392="9"><div id="twoColumnWrap" jquery1286335399392="8"><div id="column2"><div class="postWrap clearfix"><div class="byLineWrap"><div class="articleWrap clearfix"><blockquote><p><i>They call for three steps to "unlock value" in Microsoft's shares.</i></p><i></i><blockquote><i>(1) <strong>A materially increased dividend beyond the recent 23% increase</strong>, moving Microsoft into the top 20 dividend-paying companies in the S&P 500 in terms of dividend yield. We believe this would open the door to a larger investor base and keep the company more diligent from a spending perspective. (2) <strong>A coherent consumer strategy</strong> that could involve paring back investments and/or divesting more peripheral assets such as gaming. (3) <strong>Market leadership in Cloud</strong>. Microsoft has a strong portfolio of enterprise data center assets and could become a leader in Cloud deployments, but the competitive environment remains highly in flux, with Microsoft still not a clear "winner," in our view.</i></blockquote></blockquote></div></div></div></div></div></div></div><p>Flashbacks to <a href="http://msftextrememakeover.blogspot.com/">MSFTExtremeMakeover's</a> last blog entry: <a href="http://msftextrememakeover.blogspot.com/2008/06/eight-years-of-wrongness.html">Eight Years of Wrongness</a>. Upgrade the "<span style="color:#000080;">Eight</span>" to a "<span style="color:#000080;">Ten</span>".</p><p>The more interesting follow-up by Mr. Bishop is adding up the numbers in Goldman Sachs' assessment comes up with a $30 share price vs. Goldman Sachs' downgrade to $28: <a href="http://www.techflash.com/seattle/2010/10/valuing_microsoft_goldman_sachs_puts_a_number_on_each_division.html">Numbers How Goldman Sachs values each Microsoft division</a>.</p><p>Now then, if this report was dated, say, 2006 I would be remarking at the exceptional smarts and bravery of Goldman Sachs to step forward from the meek institutional investor crowd that have been giving Microsoft a free ride. Instead, now that the farm's barn doors have been wide opened for a while, Ms. Friar is walking around saying "<span style="color:#000080;">Without preventative re-enforcement and diligence of door utilization, it's possible for the horses to escape from here.</span>" </p><p>The timing is just peculiar, and is resulting in the resumption of resignation requests for Mr. Ballmer: <a href="http://www.cnbc.com/id/39518589?__source=yahoo%7Cheadline%7Cquote%7Ctext%7C&par=yahoo">CNBC's Fast Money Microsoft's Steve Ballmer Needs to Go Analyst</a>. Also, Ms. Victoria Barret follows-up with <a href="http://blogs.forbes.com/victoriabarret/2010/10/05/goldman-to-microsoft-do-something/?partner=yahootix">Goldman to Microsoft Do Something</a> - and reflects on her summer story <a href="http://www.forbes.com/forbes/2010/0830/outfront-microsoft-excel-ballmer-computers-break-it-up.html">Time to Break Up Microsoft</a>.</p><p>Sorry Mr. Institutional Investor, your voice was needed years ago. You have been complicit and ineffective during the worst of it. What's the agenda here? It would have been better for a coalition of institutional investors to speak with one voice, vs. Goldman Sachs. Because... given how Goldman Sachs has proven itself untrustworthy in attempting to destroy the American economy for its own fortune (<i>cue their extended pinky touching edge of mouth</i>), you have to wonder if they have their own greedy agenda - are they betting against the Microsoft stock and expect to benefit from its near-term decline? Or hope to force in a Neutron-Jack CEO to wipe out half the employees and all non-profitable groups?</p><p>Or do they expect within a year for Microsoft to have had a very successful consumer cycle and then reward that with an upgrade, in the meantime having had bought up a good bit of cheap stock? Are they looking for quick short-term gains vs. a thoughtful consideration of long-term growth? I feel a baleful gaze cast on us.</p><p>And mainly: it's a very poor matter of timing for a break-up. We're about to have a mobile phone come out that actually binds the companies divisions far closer than ever before: Office, Windows Live, Xbox Live, Bing, and Dev Div: this damn thing is the antidote for break-up talk. WP7 wouldn't be <i>impossible</i> to create with a break-up, but it'd be exceptionally <i>difficult</i>. WP7 is pulling together huge resources that none of our direct competitors have.</p><p>Now then: stepping back to Classic-Mini mode. Would I like to spin off parts of Microsoft. Oh yes. Less money wasted and less people? It's a Win-Win two-fer. How about our health solutions group to start with? Other Fools: Online Services Division: <a href="http://www.fool.com/investing/general/2010/10/06/microsoft-time-for-a-break-up.aspx">Microsoft Time for a Break-Up?</a></p><p>I think it would be healthy to actually encourage spin offs. Give new groups funding for two years and then assess whether this will continue to be a Microsoft endeavor or not. If not, the group can spin off as their own new company, with Microsoft as a stake-holder, and go their own way. So if Midori is not in our future then tip the hat to them and let them take off on their own.</p><p>Back to Mr. Ballmer. If you want to end on a high-note, now's the time. Mr. Ballmer can declare victory in the continued success of Windows 7, the innovation of Bing that's rattled Google, the alignment of products around the cloud, Kinect, and Windows Phone 7. It's going to be a while until the stars set themselves up like this again. Better to go out with victory than be chased out of Salmonberg by a bunch of fed-up institutional investors wanting real dividends and stock performance. You know: shareholder value.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-32714745177398788432010-09-28T21:33:00.000-07:002012-02-04T00:42:42.961-08:00Microsoft Company Meeting 2010<p><span style="font-size:6;">Best. Company Meeting. Ever.<span style="color:#c0c0c0;">*</span></span></p><p> </p><p>(<i>*excluding the classic Company Meetings, especially the one where Cheap Trick played afterward.</i>)</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-22371587963850131482010-09-27T08:10:00.000-07:002012-02-04T00:42:42.961-08:00Here Comes Microsoft Company Meeting 2010!<p>Hello, SafeCo Field! Another year, another Microsoft Company Meeting!</p><p>Anyone who has read this blog for a while knows that I'm a big fan of the Company Meeting, though I have to admit this is the first year I've thought of skipping and just go out for some beers instead. Well, instead I'll peruse the past and conjure up some enthusiasm:</p><ul><li>2009: <a href="http://microsoftok.blogspot.com/2009/09/six-hopes-for-this-years-microsoft.html">Mini-Microsoft Six Hopes for This Year's Microsoft Company Meeting</a> + <a href="http://microsoftok.blogspot.com/2009/09/quick-thoughts-on-microsoft-2009.html">Mini-Microsoft Quick Thoughts on the Microsoft 2009 Company Meeting</a></li><li>2008: <a href="http://microsoftok.blogspot.com/2008/09/microsoft-company-meeting-2008.html">Mini-Microsoft Microsoft Company Meeting 2008</a></li><li>2007: <a href="http://microsoftok.blogspot.com/2007/09/microsoft-company-meeting-ahoy.html">Mini-Microsoft Microsoft Company Meeting Ahoy!</a> + <a href="http://microsoftok.blogspot.com/2007/09/microsoft-company-meeting-2007.html">Mini-Microsoft Microsoft Company Meeting 2007</a></li><li>2006: <a href="http://microsoftok.blogspot.com/2006/09/microsoft-company-meeting-2006.html">Mini-Microsoft Microsoft Company Meeting 2006</a></li><li>2005: <a href="http://microsoftok.blogspot.com/2005/09/microsoft-company-meeting-im-looking.html">Mini-Microsoft Microsoft Company Meeting... I'm looking for some dates!</a> + <a href="http://microsoftok.blogspot.com/2005/09/microsoft-company-meeting-2005.html">Mini-Microsoft Microsoft Company Meeting 2005</a></li><li>2004: <a href="http://microsoftok.blogspot.com/2004/08/microsoft-company-meeting-2004.html">Mini-Microsoft Microsoft Company Meeting 2004</a> (<i>the non-meeting Company Meeting</i>)</li></ul><p>Alright, I'm in. So what is there to talk about going into the Company Meeting?</p><p><b>No Elop</b>: yeah! So no repeat of last year's late-night telemarketing demo unintentional-skit. In fact, we might have one big demo cut altogether...</p><p><b>Unique Demos</b>: anyone who repackages a demo from earlier in the year should just get boo'd off-stage. Any demos should be new and quick quick quick.</p><p><b>Dreading Mundie</b>: please spare us. If the Company Meeting had a chatter meter for when the audience stopped paying attention and started talking with their seatmates, this would be the peak.</p><p><b>WP7 Microsoftie Demos</b>: I think it would be sweet and smart to have some of the top-notch Windows Phone 7 apps created by Microsofties - under the application developer program to support employee apps - get up on stage and do 1 minute demos of their apps. Microsoft exists only due to the great work of the geeks who work there - celebrate it.</p><p><b>Financials</b>: a nice review of *profits* from the various groups.</p><p><b>Stealth Layoffs</b>: are we done yet? I'm all for making Microsoft a smaller company, but not at the morale busting cost of layoffs lurking around campus like the Spanish Inquisition. It will eventually take a toll on people considering moving to groups that are in a start-up mode with unclear Senior Leadership Team support.</p><p><b>LisaB</b>: she tried something big, Ballmer didn't go for it, and then she faded and became busy with layoffs. And her basketball team. Ms. Brummel kicked off another Listening Tour this year. Now would be a good tie to roll-up any insights and results. What is my dream result? <b>Team based awards</b>. And it's pretty simple.</p><p>Every VP-level person has to stack rank their organizational teams, top to bottom. For Sinofsky-fied product teams, this would be at the Dev Manager / Test Manager / General Program Manager triad level, typically defining a product team such that every product team get a rating. Every team gets ranked just like individuals and the team gets a rating just like you and me: Exceeded / Achieved / Underperformed and 20% / 70% / 10%. This - along with the concise VP-level written evaluations - gets pasted into every team member's annual review and part of the overall bonus / stock compensation now comes out of this result.</p><p>The reasoning: strong, well-run and results-producing organizations should be rewarded. And poorly run, low WHI organizations should be disinfected with some mighty strong corporate sunlight. When it comes to informationals with new teams, you can ask: "<span style="color:#000080;">What was the team's rating last year?</span>" in addition to MSPoll results.</p><p><b>Reviews</b>: as long as we're on LisaB and HR: how about them reviews this year? At least we had merit increases back. If you're feeling a sharp-blow about your results and you're up for an interesting point of view (<i>along with a bunch of other good things</i>), I suggest reading Philip Su's goodbye note for leaving Microsoft and joining Facebook: <a href="http://worldofsu.com/philipsu/?page_id=193">Goodbye Microsoft, Hello Facebook! « The World As Best As I Remember It</a>. (<i>you might remember Mr. Su from the high-profile post-Vista blog-post <a href="http://blogs.msdn.com/b/philipsu/archive/2006/06/14/631438.aspx">Broken Windows Theory</a></i>). That whole post is worth discussing soon. As is the always popular observation: if you're not happy with Microsoft, there's abundant opportunity around you. Try checking it out.</p><p><b>Ballmer vs. The League of Meh</b>. Maybe because we have a lull with our major product groups either coming in for a landing (<i>WP7, Natal</i>) or just taking off (<i>Office 15, Windows 8</i>) that my circle of friends have hit a patch of corporate ennui like never before. True, some of them work on products way on the fringe but others work on some pretty core products and they are feeling... full of meh.</p><p>I still believe that Microsoft has turned the corner. Or, as someone else wrote this week, it has turned the tanker: <a href="http://newsgrange.com/the-microsoft-tanker-has-turned-and-you-ignore-it-at-your-own-peril/">The Microsoft Tanker Has Turned and You Ignore it at Your Own Peril</a>. Why this meh? First of all, the stock: if you are investing in the success of Microsoft, you cannot underestimate the power of the stock to energize the employees to create break-through results. We had great quarterly earnings and what did the financial market say? "<span style="color:#000080;">Meh.</span>" Maybe <i>they</i> started it. Part of it I'm sure is that even though we've turned the corner, sometimes we screw up and spill the Big Gulp in our lap and skip the curb and take out a mailbox (<i>KIN</i>). That startling inconsistency to deliver focused results I'm sure puts fear and doubt into Wall Street, and if there's one combination that Wall Street underperforms dealing with it's fear and doubt.</p><p>After the dismissive reaction to our last quarterly results, we had article after article written about Microsoft's Lost Decade, covering how poorly Mr. Ballmer and The Board have been doing running Microsoft and calls for their dismissal. That's not cool, and if anything, it's draining. Under that context, to see Mr. Ballmer screaming and running around high-fiving a bunch of MBAs riding our two cash cows until the milk's dried up is challenging to your self-motivation.</p><p>Going back to my friends: some are very loose in their seat, and others have already left to enjoy unfettered engineering (<i>one in particular happy to realize how much unexpected joy results in the 'make Partner or take the 10%' cloud going away</i>).</p><p>I expect a CEO like Mr. Ballmer to revisit his previous Company Meeting talks and discuss where those ideas are now. Some of those ideas were quite exciting, but went... where? Otherwise, without the follow-through I guess this is another throw-away show that's in-between me and my beer.</p><hr /><p><span style="font-size:85%;"><i><a title="http://technorati.com/tag/mini-microsoft" rel="tag" href="http://technorati.com/tag/mini-microsoft">Mini-Microsoft</a></i> <i><a title="http://technorati.com/tag/microsoft" rel="tag" href="http://technorati.com/tag/microsoft">Microsoft</a> -- <a href="http://microsoftok.blogspot.com/feeds/comments/default">Comments</a></i></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-48916996043911141772010-09-23T13:09:00.000-07:002012-02-04T00:42:42.962-08:00Tutorial: Undocumented behavior of kernel functions min()/max()<p$1><span style="font-family: Verdana, sans-serif; font-size: large;">I was recently reviewing some code written to be shipped with AX6, and noticed an unfamiliar pattern being used in it. I investigated a bit deeper, and turns out it actually works fine on previous versions of AX as well.</span><br /><p$1><span style="font-family: Verdana, sans-serif; font-size: large;"></span><br /><span style="font-family: Verdana, sans-serif; font-size: large;">I am talking about 2 kernel functions for finding the maximum or minimum of the specified values.</span><br /><span style="font-family: Verdana, sans-serif; font-size: large;">The signature of these methods is shown on the below image:</span><br /><div style="text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA6DaufZN0v9R3LAyJrijG52OlZey7juVCV5jpXlxuus-ziek6A1fgOoBnFNrPEY8HhIiZMBmWw57nltCvZbYQ88cFDCbd_mZ_n_92M7vmhY6LRXZ_B0SCm7M3YmHW1pJwQrc28Nsb-fQ/s1600/MaxFunctionParamList.png" imageanchor="1" style="clear: left; cssfloat: left; margin-bottom: 1em;"><span style="font-family: Verdana, sans-serif; font-size: large;"><img border="0" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA6DaufZN0v9R3LAyJrijG52OlZey7juVCV5jpXlxuus-ziek6A1fgOoBnFNrPEY8HhIiZMBmWw57nltCvZbYQ88cFDCbd_mZ_n_92M7vmhY6LRXZ_B0SCm7M3YmHW1pJwQrc28Nsb-fQ/s320/MaxFunctionParamList.png" /></span></a></div><span style="font-family: Verdana, sans-serif; font-size: large;"> </span><br /><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Verdana, sans-serif; font-size: large;">As you can see, it takes 2 arguments of anytype, and returns an anytype which is the largest of the two values. But it can accept much more than 2 arguments, even though it is not documented as such.</span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-size: large;"><br /><span style="font-family: Verdana, sans-serif;"></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Verdana, sans-serif; font-size: large;">I wrote a small job to showcase this behavior. The code is provided below. You can also download it from my <a href="http://cid-e5871abbdbd5cc92.office.live.com/self.aspx/Public/DynamicsAX/20100923/Job%5E_Tutorial%5E_MinMaxFunctions.xpo">SkyDrive Dynamics AX share</a>.</span><br /></div><pre style="background: #ffffff; color: black;"><span style="color: maroon; font-weight: bold;">static</span> <span style="color: maroon; font-weight: bold;">void</span> Tutorial_MinMaxFunctions<span style="color: #808030;">(</span>Args _args<span style="color: #808030;">)</span><br /><span style="color: purple;">{</span><br /> #define<span style="color: #808030;">.</span>ArraySize<span style="color: #808030;">(</span><span style="color: #008c00;">11</span><span style="color: #808030;">)</span><br /><br /> Random rand <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">new</span> Random<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /><br /> <span style="color: maroon; font-weight: bold;">int</span> counter<span style="color: purple;">;</span><br /> <span style="color: maroon; font-weight: bold;">int</span> arrayInt<span style="color: #808030;">[</span>#ArraySize<span style="color: #808030;">]</span><span style="color: purple;">;</span><br /> str arrayIntAsString<span style="color: purple;">;</span><br /> <span style="color: maroon; font-weight: bold;">int</span> arrayIntMaxValue<span style="color: purple;">;</span><br /> <span style="color: maroon; font-weight: bold;">int</span> arrayIntMinValue<span style="color: purple;">;</span><br /> <span style="color: purple;">;</span><br /><br /> <span style="color: maroon; font-weight: bold;">for</span> <span style="color: #808030;">(</span>counter <span style="color: #808030;">=</span> <span style="color: #008c00;">1</span><span style="color: purple;">;</span> counter <span style="color: #808030;"><</span><span style="color: #808030;">=</span> #ArraySize<span style="color: purple;">;</span> counter<span style="color: #808030;">+</span><span style="color: #808030;">+</span><span style="color: #808030;">)</span><br /> <span style="color: purple;">{</span><br /> arrayInt<span style="color: #808030;">[</span>counter<span style="color: #808030;">]</span> <span style="color: #808030;">=</span> rand<span style="color: #808030;">.</span>nextInt<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> <span style="color: maroon; font-weight: bold;">if</span> <span style="color: #808030;">(</span>arrayIntAsString<span style="color: #808030;">)</span><br /> arrayIntAsString <span style="color: #808030;">+</span><span style="color: #808030;">=</span> '<span style="color: #808030;">,</span> '<span style="color: purple;">;</span><br /> arrayIntAsString <span style="color: #808030;">+</span><span style="color: #808030;">=</span> int2str<span style="color: #808030;">(</span>arrayInt<span style="color: #808030;">[</span>counter<span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> <span style="color: purple;">}</span><br /> info<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">Generated array of integers: </span><span style="color: maroon;">"</span> <span style="color: #808030;">+</span> arrayIntAsString<span style="color: #808030;">)</span><span style="color: purple;">;</span><br /><br /> info<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">The typical way to find a maximum is by looping through all the values one by one, calling the comparison function multiple times</span><span style="color: maroon;">"</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMaxValue <span style="color: #808030;">=</span> minint<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMinValue <span style="color: #808030;">=</span> maxint<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> <span style="color: maroon; font-weight: bold;">for</span> <span style="color: #808030;">(</span>counter <span style="color: #808030;">=</span> <span style="color: #008c00;">1</span><span style="color: purple;">;</span> counter <span style="color: #808030;"><</span><span style="color: #808030;">=</span> #ArraySize<span style="color: purple;">;</span> counter<span style="color: #808030;">+</span><span style="color: #808030;">+</span><span style="color: #808030;">)</span><br /> <span style="color: purple;">{</span><br /> arrayIntMaxValue <span style="color: #808030;">=</span> max<span style="color: #808030;">(</span>arrayIntMaxValue<span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span>counter<span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMinValue <span style="color: #808030;">=</span> min<span style="color: #808030;">(</span>arrayIntMinValue<span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span>counter<span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> <span style="color: purple;">}</span><br /> info<span style="color: #808030;">(</span>strfmt<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">Max.value: %1 and Min.value: %2</span><span style="color: maroon;">"</span><span style="color: #808030;">,</span> int2str<span style="color: #808030;">(</span>arrayIntMaxValue<span style="color: #808030;">)</span><span style="color: #808030;">,</span> int2str<span style="color: #808030;">(</span>arrayIntMinValue<span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /><br /> info<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">Using max and min with 11 arguments works just as well</span><span style="color: maroon;">"</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMaxValue <span style="color: #808030;">=</span> minint<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMinValue <span style="color: #808030;">=</span> maxint<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMaxValue <span style="color: #808030;">=</span> max<span style="color: #808030;">(</span>arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">1</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">2</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">3</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">4</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">5</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">6</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">7</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">8</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">9</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">10</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">11</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> arrayIntMinValue <span style="color: #808030;">=</span> min<span style="color: #808030;">(</span>arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">1</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">2</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">3</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">4</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">5</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">6</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">7</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">8</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">9</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">10</span><span style="color: #808030;">]</span><span style="color: #808030;">,</span> arrayInt<span style="color: #808030;">[</span><span style="color: #008c00;">11</span><span style="color: #808030;">]</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> info<span style="color: #808030;">(</span>strfmt<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">Max.value: %1 and Min.value: %2</span><span style="color: maroon;">"</span><span style="color: #808030;">,</span> int2str<span style="color: #808030;">(</span>arrayIntMaxValue<span style="color: #808030;">)</span><span style="color: #808030;">,</span> int2str<span style="color: #808030;">(</span>arrayIntMinValue<span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /><br /> info<span style="color: #808030;">(</span><span style="color: maroon;">"</span><span style="color: #0000e6;">Note that comparing an integer and a real also works, as well as outputing the results straight into an infolog message</span><span style="color: maroon;">"</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /> info<span style="color: #808030;">(</span>max<span style="color: #808030;">(</span><span style="color: #008c00;">12</span><span style="color: #808030;">,</span> <span style="color: green;">12.001</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: purple;">;</span><br /><span style="color: purple;">}</span><br /></pre><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br /><span style="font-family: Verdana, sans-serif; font-size: large;">Another interesting point is that it can actually accept different types of arguments, for example, a real and an integer, as shown above. And it actually returns an anytype, which implicitly gets converted to a string when sent to the infolog. </span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-size: large;"><br /><span style="font-family: Verdana, sans-serif;"></span></span></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-size: large;"><span style="font-family: Verdana, sans-serif;"><strong>Disclaimer</strong>: Since this is not a documented feature, it can theoretically change in the future releases, but I doubt it in this particular case.</span></span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5018157231702696644.post-7370843453585095102010-09-17T07:40:00.000-07:002012-02-04T00:42:42.962-08:00Microsoft Annual Review 2010<p>Just a quick post: some of you enjoy posting information relevant to your review, both looking at numbers and a critical view of the message given to you. It has started to happen a bit in the last post (<span style="font-style: italic;">I'm going through the comments now</span>) so I'm just going to capitulate (<span style="font-style: italic;">again</span>) and put this small post up for the 2010 Annual Review share and compare. Yes, this is a bit late.<br /></p><p>Oh, and obviously grab yourself a few grains of salt. Folks seem to like this format:</p><ul><li>L# (promo'd?)</li><li>(Exceeded|Achieved|Underperformed) / (20|70|10)</li><li>Bonus $K</li><li>Stock $K</li><li>Merit % (/Promo %)</li><li>Optional comments about Division / Group, discipline, impression of review</li></ul><p><span style="font-style: italic;">Administrivia</span>: yeah, that was another long pause moderating and posting and all that. I was on an extended vacation that continued as an extended vacation of the mind. My apologies. I've got at least one short post in mind before our Company Meeting 2010.<br /></p>Unknownnoreply@blogger.com0