silliness in the Dynamics AX compare tool

I had a small issue crop up in AX a couple of weeks ago. It wasn’t big enough to spend any time on, but it was a bit of an annoyance. Well, I had some spare time yesterday, so I decided to see if I could fix it. The end result was that I did indeed fix it, but the journey to that point was kind of ridiculous, so I thought I’d write it up.

AX has a built-in compare tool, for comparing different versions of code in different AX layers, or in source control. It’s not a terribly great tool, and I’d rather have WinMerge or Beyond Compare, but it’s good enough. The initial form shows the names of the two files being compared, with a red box next to one, and a blue box next to the other, to indicate the colors that will be used to highlight the differences between the two files.

Well, the color in those little boxes mysteriously disappeared a couple of weeks ago. The tool still works, and the text is highlighted in red & blue, but there’s no visual indication of which text is from which file. Not a really big deal, but inconvenient.

Most of the tools built into AX are written in X++, and we have full source, so I went ahead and dug up the source for the form named “SysCompareForm.” I don’t think I should post any of the source here, but what I found is that those little red and blue boxes were actually HTML controls, each one displaying a web page, constructed in the code! I’d never really noticed before, but the boxes were not actually displaying solid red & blue, but rather were displaying red-to-white and blue-to-white gradients. And, of course, this being Microsoft, they were doing so in a way that only worked in older versions of IE. And, yeah, I’d recently upgraded IE on my VM from 8 to 10. So that was the problem: each of those little squares was actually rendering a web page with IE, just to get little red & blue swatches!

The cross-browser gradient situation has been a bit of a mess for a long time now, and you generally need to add about 10 lines to your CSS file just to do one gradient that works well across all browsers. So, I tried to update the code so it would render out OK in IE 10. Well, I messed around for a while, and couldn’t quite get it right. Then, I did some searching, and found this thread from a Russian web site, from someone else who had the problem and solved it. So, I just copied his code and went on with my life.

Apparently, this problem was fixed by Microsoft in a recent CU, but I guess it’s one that we haven’t applied yet. I wonder how much other stuff in AX is being done like this, and relying on HTML/CSS that only works in IE 8. Geez.

comic-con blues

So I didn’t get to SDCC this year, nor have I really been following the news out of the con. I’ve caught a few things via Twitter, but haven’t really seen anything that’s caught my attention. Usually, there would be a handful of interesting tidbits coming out of the con that I could link to in a post like this, but there’s really nothing that seemed all that interesting to me. I’m sure there’s some really cool stuff going on, but either it’s not my kind of cool stuff, or I just haven’t stumbled across it. There’s been a good bit of coverage of the con on The Beat. (That link should show all posts tagged SDCC 2013.)

Still, I really wish I had gone to the con. This past week, the weather in NJ/NY has been brutal, while San Diego has been quite nice, apparently. Even just for that, I would have rather been in San Diego for the past week! If I don’t get a ticket next year, I may just go anyway, and enjoy the weather and some of the related events that don’t require a ticket.

Meanwhile, at home, I’ve been catching up on Fables. I’ve read volumes 6 to 9 of the trade paperback collections over the last few days, and I’m reading “1001 Nights of Snowfall” right now. Fables continues to be a really good series, and I’m glad to see that it’s still being published. I still have a ways to go before I’m all caught up on the collections, and after that, I could probably read Jack of Fables, and some of the other spin-off series. So, I can look forward to enjoying this series for some time.

Vacation

I took this week off from work, as a little summer vacation. I didn’t manage to get a ticket for Comic-Con this year, and there wasn’t really anything else going on over the summer that I was too enthusiastic about, so I just picked a week that nobody else was taking off. Of course, this wound up being a very hot week here in the NJ/NY area, so now I’m regretting not having made plans to get out of the area to someplace cooler.

I spent the earlier part of the week in NYC, mostly visiting museums. I was successful in getting to all the museums I wanted to visit, plus a couple more. I actually visited six museums over three days, which isn’t half bad, considering the difficulty of getting around in the heat. I’m going to list out all my museum visits below. I’m not sure I’ll have much that’s terribly insightful or useful to say, but I’d like to list everything out, for my own future reference, if nothing else.

Sunday
I started out on Sunday with a visit to the Guggenheim. I’d never been to the Guggenheim, but of course I’m familiar with the iconic architecture. The main exhibit running right now is a “re-imagining” of the main space in the museum by James Turrell. It’s interesting, but I wish I could have seen the main space in it’s usual configuration; maybe I’ll go back in the fall, after the Turrell thing is gone. There wasn’t much else going on that was interesting to me, though the Kandinsky exhibit was nice.

I also visited the Whitney on Sunday, another museum I’ve never been to. I actually really liked the Whitney. The Edward Hopper exhibit was really cool. I’ve always liked “Nighthawks”, in particular, and they had some of the preliminary drawings for that on display. The Whitney is scheduled to move to a new building in 2015, so I don’t know if I’ll likely get back to the old one again before they close it. But, I’m going to keep an eye on their site, and if they have any more exhibits that sound interesting, maybe I’ll go back.

And I also made a brief stop at the Met on Sunday. I’m a member there, so it doesn’t cost me anything to get in. The Sunday visit was brief. I went back Monday and Tuesday, so I’ll post more about those visits below.

Monday
On Monday, I returned to the Met, and spent a bit more time there. The Met used to be closed on Mondays, and I suspect that many people still don’t know that they’re open on Mondays now. I got to the museum just after 10, and had no problem walking right in. Many of the areas I visited were empty (or nearly empty) of other visitors. It was nice to be able to stroll through certain sections and enjoy them quietly, without anyone else there to distract me. I checked out the Punk exhibit, which really didn’t do anything for me. I understand why they do these kinds of exhibits, and I guess some people find them interesting, but I’m just not one of them.

Later in the day, I went to MoMA, which was a lot more crowded than the Met was. I avoided the rain room, which is apparently crazy hard to get in to see, though it sounds like it would be fun. (I should also mention that I did not buy a cronut while I was in NYC, or attempt to bring one into the rain room…) Oh, and to illustrate a bit of the difference between the Met and MoMA that day, I had no trouble standing in front of the Met’s big Jackson Pollock painting for a minute or two, alone, in quiet contemplation, but MoMA’s big Pollock had attracted a crowd, including one guy who was posing for a photo in front of it. There was quite a bit of photo-taking going on at MoMA, actually. The crowd in front of Starry Night was impressive, many of whom were taking photos, to the point that you really couldn’t just get in there are get a good look at the painting. I don’t see much of a point in taking photos of a painting like that, given how easy it is to find good images of it on the net.

Tuesday
On Tuesday, I hit a couple of smaller and less well-known museums. I first went to the Frick. I’d been wanting to go there for a while now. As a comic book nerd, I was curious to see the building that was used as the model for Avengers Mansion. And as an art nerd, I was interested in seeing their collection of paintings, including a Monet, Manet, Renoir, and a few Rembrandts. The building itself is quite nice, and though their collection isn’t huge, they do have some very nice paintings. And their exhibit of clocks was pretty cool too. (It would have been nice to see the bowling alley too, but alas that’s closed to the public…)

After that, I went to the Morgan. The original building, including the impressive library room, is quite a thing to see. I honestly didn’t get much out of the current exhibitions though. Maybe I was just suffering from museum overload at that point, but I’m really not keen to go back there again.

And finally, I went back for one more visit to the Met. The Met really is a big enough museum that you can make three visits there over three days, and see different stuff each day. On this last visit, I took in the “Birds in the Art of Japan” exhibit, which I’d managed to miss on the first two days.

So, overall, I managed to stay (mostly) out of the heat for a few days, and visited a few museums I’d never had the chance to visit before. I do wish I could have had some nicer weather for my vacation, as I would have liked to have done a lot more walking around this week. But, as it was, I did a good job of getting around via subway, bus, and taxi, with a fairly minimal amount of time spent outside in the sun.

New MacBook Pro

I got myself a new MacBook Pro this week. (OK, technically not a *new* one, but a refurb.) It’s the 13″ mid-2012 model described here. My previous MacBook was purchased in 2007, so I was definitely due for a new one. I had done a few upgrades on the old MacBook, so the basic specs are pretty much the same — 4 GB of RAM and a 500 GB hard drive. The processor is, of course, newer, and hopefully better (i5 vs Core 2 Duo).

I set it up last night, transferring files from my old MacBook via FireWire. I used the migration capability built into the initial setup program. I’ve used this before, and it always seems to work well. It took about four hours to complete.

The old MacBook was on 10.7, since it’s not upgradeable to 10.8. (The new MBP is, of course, on 10.8.) So, this is also my first experience using OS X 10.8. There’s not much new in it, compared to 10.7, from what I’ve seen so far, so I’m not having any trouble there.

Overall, there really isn’t much difference between this new machine and the old one.The keyboard layout is pretty much the same, so it’s nice not having to get used to a new layout for once. And the general form factor and weight are very similar to the old MacBook.

So far, It doesn’t appear to be noticably faster than the old one, which is a bit disappointing, though I didn’t really expect much in that area. I don’t think I really do much to stress the processor.

I don’t really like the direction Apple is going in, with respect to upgradability, but the basic MacBook Pro is still reasonably upgradeable, per iFixit. So, a year from now, if I want to upgrade it to 8 GB of RAM and maybe replace the hard drive with a bigger one or an SSD, I can probably do that.

Visual Studio 2013 and Build

I watched a little bit of today’s keynote from the Build conference on my iPhone at lunch today. I have to say that Scott Hanselman’s bit was pretty cool. I don’t know if I’ll actually have any reason to use VS 2013 for an ASP.NET project any time soon though. I’m not really doing that kind of work right now, and I’m not sure when I’m likely to get back to it. But I’ll at least have to install the thing and mess around with it on a little sample project, just to keep up with what’s going on in ASP.NET.

On a related subject, I’m somewhat embarrassed to admit that I’ve never really learned much about ASP.NET MVC. I did learn the basics at one point, quite some time ago, but I’ve never used it on a real project, and I haven’t kept up with the most recent releases. Well, I started reading a book on MVC 4 recently. I haven’t gotten very far with it, but hopefully I can get far enough to at least say that I have a clue how it works.

vs 2012 express for web

I thought I was done blogging about VS 2012 for now, but I decided to start messing around with MVC 4 this week, so now I’ve gone ahead and installed VS 2012 Express for Web. I was kind of hoping that the install wouldn’t take that long, since one would assume that most of the components would already be on my machine, from VS Express for Desktop. But no. It took more than an hour to download and install everything. And I had to update NuGet in Express for Web, even though it was already up to date in Express for Desktop. And I had to apply the RemoveAllCaps fix again too. So I’m guessing that there’s less overlap between the Desktop and Web products than I would have hoped. But that’s OK — I’ve got plenty of hard drive space on my ThinkPad!

Meanwhile, Visual Studio 2013 has been announced. That was a bit of a surprise, since I’d assumed that the next major version would be VS 2014. There’s some pretty neat stuff in VS 2013, though a lot of it likely won’t be applicable to anything I’m doing at work or at home right now.

a bit more on Visual Studio 2012

I feel a little bad about yesterday’s screed on the VS 2012 UI. (But not bad enough to delete it or anything. I still wish they hadn’t mucked with the UI so much.) So today I thought I’d try to write a more positive post about VS 2012.

First, I’d like to link to this blog post on how cool it is that Microsoft has kept so much of the functionality of the full VS product in the Express editions. I do agree with him on this, and I am glad that Microsoft is willing to release such a full-featured product for free. Having said that, though, I’d also love to see a $99 “standard” version that comes a bit closer to the $499 “pro” version. I think my biggest issue with the Express product will be lack of support for extensions. I’ve gotten quite used to DPack, for instance, so it’ll be hard to do without that.

Here’s a good article on “Simple but Interesting Features of VS2012“. Some of these features should be pretty useful. I’m glad that Microsoft is still adding little things like this to Visual Studio. It’s easy to let small, useful, features get lost in favor of grand initiatives, and I’m happy to see that someone at MS still thinks about stuff like this.

Finally, here’s a post about some really great new features in VS2012. I was pretty stoked about a few of these, until I realized that it was an April Fool’s post. (Actually, a couple of these *would* be useful, and not that hard to implement…)

Visual Studio 2012, take two

So I managed to get VS 2012 installed. (See previous post for details on my first failed attempt.) I’d love to write up a blog post detailing some weird issue and how I worked around it, but I don’t really have anything useful to offer along those lines. I basically just installed some pending Windows Updates, had a cup of coffee, then tried again.

After the install, I was prompted to install a patch that apparently fixes some compatibility issue. Then, I was prompted to install VS 2012 update 2. I did both of those things, and now have a usable VS 2012 install. I’m still not sure why Microsoft can’t post updated installers for their products when they release patches and updates, but I’m used to the silliness now, so I just grin and bear it.

I had read a good bit of negative feedback about the UI changes in VS 2012, and I have to say that I agree with most of it, now that I’ve seem the product up close. It’s much less pleasant to look at, compared to VS 2010. First, the upper-case menus are ridiculous. Whoever thought that was a good idea has hopefully been fired by now. (Who am I kidding, he probably got promoted!) You can fix that pretty easily with this NuGet package. And the guy who put it together gets extra points for the instructions: “YOU NO LIKE NO SHOUTING?! Run Disable-AllCaps”.

The next easily-fixed interface blunder is the color scheme. The default is called “light”, and it’s kind of an all-grey mess, with a little bit of white, black, and blue.  If you switch to the “blue” theme, you get something a little like VS 2010, and much more usable.

The general flatness of the interface, though, is still pretty blah. There was really nothing wrong with the VS 2010 interface, and no reason to arbitrarily change stuff for the worse like this, and it’s so hard to believe that anybody really thought they were making things better here.

There’s a blog entry on the VS team blog that discusses the all-caps thing in specific. If you read it, you’ll get a good picture of how a very large company can make really poor decisions about specific products, based on big-picture corporate strategies and directions, and how they can be (apparently) clueless about what they’re doing. They talk about how the use of uppercase text is a “strong signature element” of MS user interfaces, including Zune and Bing. Now, really, how much thought does it take to figure out that the menu bar for a complex programming IDE has nothing to do with the user interface on a failed MP3 player or a web search engine? They end the blog post by saying that “we will enable you to customize the casing, and we are exploring options for how to expose that choice.” Well, the blog post is about a year old, VS 2012 has had two update releases, and still no option in the product itself to change the menu casing.

Alright, so that was way too much grumbling about fairly trivial user interface stuff. I guess I’m just in a bit of a cranky mood today! I still look forward to trying out VS 2012, and seeing what useful new features have been added to the product, and to C#!

Visual Studio 2012

I haven’t bothered with VS2012 yet, but today I decided to try to install VS Express 2012 for Windows Desktop on my laptop. I really only want it, at this point, for developing console apps. I wanted to take a shot at using it for the Project Euler stuff that I’ve been playing around with, and I was also interested in trying out some of the async stuff in C# 5. So nothing fancy; I just wanted to get familiar with it.

Well, no luck. The install got about halfway through (judging by the progress bars), then got no further. I know some of the VS installs in the past have been notoriously slow. (I’m looking at *you* VS 2005 SP 1! Or was it VS 2008 SP1…?) But this one just stalled at the same spot for 2 or 3 hours, with no change, so I gave up on it.

I’m starting to wonder if I need to do a fresh install of Windows 8 on that laptop, just to clear up the cruft from previous VS installs. I really wish Microsoft could make an IDE that didn’t cause so much grief just to install…