Next generation's garbage RSS 2.0
# Friday, October 19, 2007

Okay, there are many things I like about Office 12. There are many things I'm not so crazy about. The ribbon is chief among them.

"But you'll get used to it." Really, how far beyond a year straight will it take?

To me, it suffers from the same bummer as personalized menus do… location isn't consistent.

Look below. Okay, pretend I'm John Scherer and I'm trying to tell you where to find "Insert Category". The ribbon is okay, but geez, did you have to take away the menu bar? the old school toolbar? I feel marched.

"But it's more discoverable!" Or is it? I cannot rollover to see what's under "insert" or "add-ins" or "paste", "spelling", "publish" or styles past #11.

Cannot customize it without writing code? Are you kidding me?

Seriously, was backwards compatibility that much of a burden? You kept Lotus slash commands and help for WordPerfect users for umpteen years but you won't keep _the_ way from v.Last?

"But we've maintained keyboard shortcut compatibility for you experts." Uh, no. Alt+F,V doesn't give me print preview, Alt+O, enter doesn't get my font dialog. I gave up after that.

"But it's worth it because it automatically switches ribbons to show you commands related to your action" - so, the UI becomes unpredictable... tell me, what was so horrible about the little floating on-demand toolbars?

Please Microsoft, admit failure and bring back the pdm.

There are several companies selling what looks like the old ui on the ribbon, like this one that I'm trying out now (http://pschmid.net/office2007/ribboncustomizer/index.php) but I cannot do rollover exploration of the menus in it and it doesn't fix the keyboard shortcuts - Alt+F doesn't show me the Classic UI File menu. Doesn't look like it can be drag-drop customized or support mounting / docking toolbars.

Beyond the ribbon, context sensitive help seems to be totally broken. If you can't do context sensitive help, well, fine. Google, I'm feeling lucky.

Those are my biggest gripes.

Friday, October 19, 2007 12:54:00 AM (US Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Office 12
# Thursday, October 18, 2007

The first blog entry I made, initially, had a float clear problem. DasBlog apparently doesn't clear floats from the HTML entry contents in the crazy manner needed to appease the IE quirks gods. See http://www.positioniseverything.net/easyclearing.html.

The problem should be evident on this page:

http://hafthor.com/floatclear.htm

scroll down far enough on IE and you should see the text of the article disappear. This appears to happen because the align=right img floats lower than text. If you don't see that behavior, the image at the end of this article shows the effect. After posting the original article, I moved the image up to avoid this problem. But I wanted to see if I could fix it. Maybe...

http://hafthor.com/floatclear2.htm

I simply added this to the theme.css

.itemBodyStyle:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

.itemBodyStyle {display: inline-block;}

/* Hides from IE-mac \*/
* html .itemBodyStyle {height: 1%;}
.itemBodyStyle {display: block;}
/* End hide from IE-mac */

and got rid of the <div style="clear:both;" /> business from the itemTemplate.blogtemplate.

If this works right, I shouldn't have the float problem on this post.

Edit: Yes, but it doesn't work quite right when shown in RSS Bandit.

Edit: But if I place a <div style="clear:both" /> at the end of the blog article html, it shows up correctly. Hmmm...

Thursday, October 18, 2007 2:25:02 AM (US Mountain Standard Time, UTC-07:00)  #    Comments [0] -
dasBlog | HTML

Last month I was working with some code that used System.Xml.Xsl.XslCompiledTransform. I knew it involved compiling stuff (where did I get that idea?) and making some IL dynamically to run. Neat-o. This month on my road to getting MCPD by month-end, I was reading about RegEx. It didn't really dawn on me before that it could compile the expression vs. interpret it. Pretty cool. But I was always skeptical about these because I had heard that you can Assembly.Load, but there's no such thing as Assembly.Unload... so I thought that this meant these would be memory leaks... but, no. I read (http://blogs.msdn.com/joelpob/archive/2004/04/01/105862.aspx) about something called LGC (lightweight code-gen) and DynamicMethod. I was reading this (http://blogs.msdn.com/bclteam/archive/2004/11/12/256783.aspx) and read that memory leak saga about regular expressions but "We've fixed that problem in Whidbey" caught my attention. They did? Yes, DynamicMethod does by making it so code can be emitted and executed from the managed heap - very cool. I had to know if XslCompiledTransform used this, so I reflected across Microsoft.*.dll and System.*.dll to see what uses DynamicMethod... Yes, XslCompiledTransform does. Nice - but I'm not sure it uses that exclusively. Given it actually spits out .dll files, I have to assume it Assembly.Loads and executes them... We avoided any potential leaks in a web app by holding the tranforms in the Application dictionary. This also made the whole thing faster since each transform was only compiled once.

By the way, I would encourage .NET devs out there to look in to getting certified (MCTS or MCPD). Don't be a wuss and shape-test your way through. (Shape-test refers to the process of getting test guides that so exactly mirror the real test that you can just memorize the shape of the correct answer to ace it. - I bet if given those kind of study guides written in Thai, I could pass the test. That's bull-khrap.)

Thursday, October 18, 2007 1:42:13 AM (US Mountain Standard Time, UTC-07:00)  #    Comments [0] -
.NET Internals | Certification
# Wednesday, October 17, 2007

Well, after much procrastination, I finally spent some quality time with the GoDaddy hosting control center and various dasBlog instructions and got it working.

For anyone trying the same...

  1. From GoDaddy, go to "My Hosting Account".
  2. Click the [open] link under "Control Panel" for the domain.
  3. Under settings, select ASP.NET runtime and make sure it's 2.0.
  4. Under settings, check FrontPage extensions and make sure they are NOT installed.
  5. Select "Directory Management" under "Content".
  6. Create a custom directory where you'll host the blog with "Read", "Web" and "Set Root".
  7. Create the subdirectories SiteConfig and logs and give them each read+write access.
  8. Create another one called content and give it read+write+web access.
  9. Download the dasBlog webfiles zip and extract it locally.
  10. Edit your siteconfig/site.config setting the obvious looking stuff.
  11. Edit your /web.config to get rid of or comment out the line
    <trust level="Medium" originUrl="" /> (a GoDaddy-ism)
  12. Copy all the extracted files to your blog directory (using explorer view on ftp:// works)
  13. Point your browser at your blog.
  14. Sign in using "admin", "admin" (unless you changed the user name in SiteConfig/siteSecurity.config before you uploaded it)
  15. Immediately change that password.

** Disclaimer: I didn't try those steps exactly so they may not be entirely perfect. **

Edit: Okay, I just setup another blog using those instructions and they seemed to work nicely.

Look here for more help on this.

http://www.aakashjain.com/How+To+Setup+DasBlog+On+Godaddy.aspx

Now, to blog from Word 2007 with images… create from the blog post template, set up an account of type "Other" and set the Url to http://domain/blogdir/blogger.aspx, set the picture option to "my blog provider". Publish! It should automatically upload pictures to /content/binary/.

Okay, so what is freachable? It is purgatory for .NET objects with finalizers. During garbage collection, objects that have finalizers need to have their finalizers run, but the GC shouldn't have to wait for them (after all the entire process is stalled while GC runs and finalizer code could affect what the GC is doing), but if there are no references to keep the object alive, it will get collected so the object is made to reachable by the finalizer thread by placing it in its special queue called freachable. GC completes and the finalizer thread wakes up, executes the finalizers in the freachable queue, and clears the queue entry, which is the last remaining reference to the object and now the next time GC runs, the object's memory will be reclaimed.

Read all about GC at http://msdn.microsoft.com/msdnmag/issues/1100/gci/

According to that article, it is pronounced f-reachable. That just sounds l-ame.

So what's the point of this blog? To blog stuff I figure out. I will try not to waste bandwidth on "hey, go read what this other guy figured out". Okay, so most of this post is stuff that someone else figured out, but the web.config mod on dasBlog was not in Aakash's notes.

Wednesday, October 17, 2007 11:53:53 PM (US Mountain Standard Time, UTC-07:00)  #    Comments [0] -
.NET Internals | dasBlog | Office 12
Archive
<October 2007>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
All Content © 2010, Hafthor Stefansson - Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. - Sign In