My answer to this question has consistently been, “Only if you value your time”.
As an example, I just started watching Tekpub’s iPhone Development series. There is currently about 2 hours worth of content (and I believe more is on the way). The cost for the series is listed as $25 on the site.
My guess is the videos will save me about 10 to 20 hours of reading, tinkering, and just generally getting things going. Now assuming I put a value of more than $2.50/hr for my time (and i do :), the purchase1 would be a no brainer.
I also have a subscription to Peepcode which I have been loving as well.
1 Disclosure: Rob Conery did comp me a full season pass. However, this came when I was about to personally buy a license so I have no qualms writing this review.
Thanks to everyone who attended the WCF Firestarter event in New York City on June 19, 2010! I had a great time helping organize the event and speaking with many of the attendees about the Windows Communication Foundation. There were over 200 folks who made it out to the Fire Starter in NYC that day, as well as an almost equal number that tuned in via our live simulcast! Special thanks goes out to the event’s speakers Miguel Castro and Don Demsak for assembling and delivering most of the day’s content!
The recordings and content from the event are now available!
NYC WCF Firestarter Content
Miguel Castro’s Blog
Follow Miguel on Twitter
Peter Laudati’s Blog
Follow Peter on Twitter
Don Demsak’s Blog
Follow Don on Twitter
Here are some links to useful information on WCF.
Get Started With WCF NOW!Here are the links to the docs for all 3 major releases of WCF. The WCF 4 documentation is the most current, of course. The deltas between these are minor, but good to have if you’re restricted to using an older version in your organization.
WCF RESTThis is a temporary post that was not deleted. Please delete this manually. (76cd9fff-28ce-4774-b8e1-3a1641765bb1 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
So, you are a .Net developer, and you gone and built some services for your enterprise applications. You’ve spent the time building and deploying the services. You might have written them using ASP.Net, or you went all out and built them “the right way” with WCF. But for some reason, you are not seeing the return on investment. Sure, your applications are more modular, and reusable, but it takes a bit more work building the services, and other applications don’t seem to be taking advantage of the services you built. And if they are using your services, now you have to monitor them, and make sure that any changes you make will not break the other applications that use your services.
There are a couple of things they don’t warn you about when hyping service orientation:
Successful services depend on these 4 aspects of Service Orientation, but they depend on more than just developers. Architects, other developers, testers, and operation support want visibility into them.
So, to take full advantage of all the hard work you put into your services you need a repository to store all this info. And not just any repository, but one that is extremely easy to use and find the information within it. If you are an old time service developer, you might have heard about this thing call UDDI – Universal Data Discovery and Integration. It was supposed to be the way the find out and use services, but it has proven to be incredibly complex and hard to use. So, no one really used it. A much easier solution would be an REST (Resource State Transfer) based service solution. REST service tend to be much easier to use, because they are HTTP based, but because there are so many different flavors of REST implementations, discovery (querying) the data within tended to be custom for each implementation. That is until Microsoft released OpenData (OData) as an open specification. With OData, it becomes just as easy to query a repository as it is to consume it.
SO-Aware does this all for you. You can think of it as 3 separate repositories all exposed using the RESTful OData protocol. It contains:
Sounds great, but what’s in it for you, the developer? Well, the we all know that WCF configuration isn’t easy. Sure, Microsoft has made it a little easier with 4.0, but you still need to fight the WCF Configuration Editor to get the Service configuration correct, and once you do that, do you really remember how to update it when you need to? And how do you tell the operation folks to maintain it, and deploy the configurations to the service farm? Well that is where putting the configuration into a repository really pays off. With SO-Aware, you get a custom Service Host Factory, which will automatically pull the latest service configuration out of the repository for you, and reconfigures the service automatically. Need to make a change to the config, no more updating the config locally, and then trying to put a change control request into operations, or hoping that operations updates the configuration correctly, and then deploy it to all the servers. No more trying to keep the compliance documentation in sync with what is deployed on the services. Instead, those very same changes can be made via the SO-Aware portal, using templates built buy WCF experts, making it so much easier to maintain your WCF configurations.
And what is even better than configuring the service? Well that would be configuring all the clients, too. With SO-Aware, the consumers of your services have it just as easy as you do (even easier, since odds are they know even less about WCF). They can point their client proxies to the SO-Aware repository and automatically configure the client side WCF configuration. Now, there is no reason for .Net developers to be afraid of consuming WCF services. The configuration just happens for them, and they don’t even have to know about how to do it, or how to update it when it changes. All they need is what version of the service they wish to use, and it gets automatically configured for them.
Now that you have your services built and deployed (even to the test environment), as a good enterprise developer, you need to test the services, especially the binding and behavior configuration changes. Well, SO-Aware has you covered there, too. You can put your service tests into the SO-Aware Service Testing Repository via the Management Portal. Since the configuration is in the repository, and SO-Aware is written in .Net, you can sure that your Service Testing tool works with whatever bindings and behaviors you used, no matter how customized you got them. This is where most generic Service Testing tools fall down. They either only support the simplest of WS-* specifications, or don’t align with the versions implemented in WCF. With SO-Aware that isn’t the case, so you don’t have to do things like expose unsecured endpoints to work with your service testing tool. And to make things even easier, to execute your test, since SO-Aware is RESTful, all you have to do is an http get on the url for the test, and it will execute it for you. So, integrating into whatever testing framework or build management tool is a breeze.
So, we have configuration and testing covered, now onto Service Monitoring. Do you have SLAs? Or maybe you just want to know how often your service is called, and which operations are used the most. Or maybe you have a rogue request coming in and you want to record the request and response. Because your services are configured to use the SO-Aware Service Host Factory to get the configuration from the repository, it can also monitor the service and asynchronously publish that information to the SO-Aware Monitoring Repository. You can then review all this data in the SO-Aware Management Portal.
Now you are asking yourself, this tool sounds great, but I’m not sure if my company will be willing to purchase something like this. Maybe you’ve run across other Service Governance applications, and you got a little sticker shock. Or, maybe you just don’t know how valuable a tool like this would be in your enterprise, so you want to try it out in production for a while first. It really doesn’t matter, because Tellago Studios has a number of Microsoft MVPs, and we know how valuable the .Net developer community is. So, we are giving away the Express Edition of SO-Aware. With the Express Edition, you have a fully functioning product, that can be used in production. It isn’t a trial version. The only limit on the Express Edition is that you can only register five services. That, it is it. Well, there is one more thing. If you do use SO-Aware Express Edition in your organization, we would love to get feedback on the product from you. Your feedback will only serve to make future version a better product.
To get your free SO-Aware Express Edition, please fill out the Express Edition Registration Form and we will email you an activation key along with details on how to get and install the SO-Aware Express Edition.
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!Great interview of Fred Brooks in the August 2010 Wired magazine (sorry, no link at this time).
The critical thing about the design process is to identify your scarcest resource. Despite what you think that very often is not money. For example, in a NASA moon shot, money is abundant but lightness is scare; every ounce of weight requires tons of material below. On the design of a beach vacation home, the limitation may be your ocean-front footage. You have to make sure your whole team understands what the scarce resource you’re optimizing.
I haven’t had much free time now that I’m running Panoptic full time, but I just want to throw out what I can remember I’ve done just this week alone:
And, it’s only Thursday …
I know I’m seriously under-selling myself at the moment but I need to build up a solid list of excellent testimonials and references before I can seriously charge market rate for the kind of skills I have. I’ll say this: Elance has been a fantastic resource for me, better than all the other freelance job websites out there.
Okay, enough of this. Back to work …
In this episode, guest host Andrew Brust is back again, joining Dmitry & I to talk about all of the tech news from Microsoft’s Wordwide Partner Conference in Washington, DC. The trio talks about WebMatrix, Internet Explorer 9 Preview 3, Windows Phone 7, and the newly announced Windows Azure Appliance.
A raging Dmitry also shares his poppin’ passion for HTML5.
CLICK HERE TO LISTEN! Show Notes & Resources Items Discussed During Episode #33WebMatrix Stuff:
“The Gu” Gives A New Web Toolset In 4 Days…
IE9 Dev Preview 3 Stuff:
Interop News:
Conference News:
Windows Phone 7 Stuff:
Azure Stuff:
Andrew Brust Stuff:
If you don’t use an RSS reader to read my blog, then you probably noticed that things started looking, um… different, a few weeks ago. My JrzyShr Dev Guy blog is currently part of MSDN Blogs, a developer blogging network comprised of folks who work at Microsoft. In May 2010, the system powering MSDN Blogs was upgraded to the latest version of Telligent Community.
As part of that upgrade, the look-n-feel of this blog has undergone a slew of changes too! I’m happy to reveal the “new” 2010 look of the JrzyShr Dev Guy blog here, and share how I did it for the benefit of others interested in customizing their Telligent Community-based blogs.
The Weather Channel’s website recently updated itself and provided a nice history tour of it’s evolution. I think history is great, so I’ll do the same here…
JrzyShr Dev Guy Through The Years2006 - “Poison Ivy”
2008 - “Paper Clip at the Shore”
2010 – “Going Metro”
(cue the Kenny Rogers music!)
Why The New Look?Why not? The last time I updated the theme of this blog was in April 2008. It was due for a change. (Okay… the reality is that the platform upgrade forced me.)
Like most software upgrades, Telligent Community 5.5 brings plenty of new features and improved functionality. However, to move forward, sometimes you need to take a step back. The previous version of the software that ran MSDN Blogs, Community Server 2.1, was several releases old. The templates and customizations available in CS 2.1 were not compatible with those in TC 5.5.
Migrating the several thousand blogs on MSDN Blogs to a new platform alone was not a trivial task. Migrating several thousand incompatible customized templates was just not feasible. Therefore, the MSDN Blogs team at Microsoft decided to reset everyone’s blog to a single default template with the new MSDN theme.
The new MSDN theme template looks great but I’ve always prided myself on having a site that stands out with my own custom look. In my April 2008 post, I detailed how I themed this blog after my Jersey Shore roots. Knowing that I’d have to start from scratch technically, I figured I’d try to keep most of the Jersey Shore design ideas and elements in the new theme. That includes my banner image featuring a view of New York City from the Jersey Shore taken here!
The Old Way Of Doing ThingsIn Community Server 2.1, administrators could provide a collection of pre-canned themes the (non-admin) blog owner could choose from. These themes controlled the layout of the various content elements on the page. There was very little room for the blog owner to customize where various elements on a page ended up. There were essentially three ways a blog owner could customize their blog theme previously through the management UI:
The last of those three options was often the trickiest bit, having to “hunt and peck” to find the right CSS classes to override!
The New Way Of Doing ThingsIn the new Telligent Community 5.5, all three of those customization options are still available, however, they are somewhat superseded by the newer module & widget based layout. Unfortunately, you will still need to “hunt and peck” to find the right CSS styles to override. (More about that later in the post...) Now, I’ll describe how you customize things in TC 5.5.
Starting From The Wireframe ThemeLuckily, one of the cool things about TC 5.5 is that it is a LOT easier to customize a blog than CS 2.1 ever was! Instead of starting from a selection of existing themes and customizing from there, TC 5.5 provides a “blank” Wireframe theme. When the new platform went live, I immediately switched to the Wireframe theme to keep things simple. The Wireframe theme is essentially a blank slate with a white background and basic Arial fonts.
Layouts & WidgetsIn TC 5.5, all of the content elements on a page are “widgets”. This includes the blog posts, the menus, the title banner, and so forth. The widgets, and the layout of those widgets on the page, are controlled completely by the blog owner via an “AJAX-y” WYSIWYG editing mode. You can enter the editing mode by clicking the “Customize” button that appears at the top of each page after you are logged in to the site as the blog owner.
To customize a page, you have the following steps to complete after entering edit mode:
A “layout” sets up the top level <div> tags that define the columns and/or headers and defines their dimensions, etc. Here is an example of the layout types available in the editing mode:A “widget” is a block of content that can be inserted anywhere within the layout. TC 5.5 provides a whole slew of widgets to choose from, including some default ones. Some examples of widget types:
Many of the widgets have options you can set by clicking on their header while in the editing mode. For example, on the Blog Post List widget, you can control how many posts to display, whether to display a summary view of your posts, or a “detail" view where each post is displayed in its entirety within the list.
The Generic Content and Unfiltered HTML widgets provide you with plenty of flexibility in including content other than your blog posts on your site. This is a huge step up from CS 2.1!
Customizing Blog PagesThere are six different “pages” (or views) in a TC 5.5 blog. Each of these pages has its own layout and set of widgets. The blog owner must customize each of these six pages in order to create a consistent theme across their blog. The six pages are:
Once you have set up the content layout on your blog by customizing each page, it’s time to make it look pretty. Just like in Community Server 2.1, Telligent Community 5.5 allows you to set up your custom styles by entering CSS overrides via the management UI. And just like CS 2.1, this is the hairy & time consuming part of customizing your blog, especially if you’re a CSS-ignorant developer like myself.
As you may have guessed, almost all of the HTML elements and CSS classes used by TC 5.5 are completely different from CS 2.1. So, break out your favorite HTML editing tool and be prepared to hack away to figure out which CSS classes you need to override in order to achieve the look and feel you want. The developer tools in IE8 work fine for this task, as well as Expression Web if you have it.
Not only can you use CSS to set the fonts, colors, & sizes. You can also use CSS to tweak the layout chosen as part of the page customization. You may want to change the size, spacing, or location of various elements on the page. For example, you can use CSS to change the width of the side columns.
Saving Your ThemeOnce you have everything looking the way you like it, back it up! You can do this in the TC 5.5 management UI by exporting your theme customizations to an XML file. If you’re smart, you’ll store that file somewhere safe, like SkyDrive!
Setting Up The JrzyShr Dev Guy Blog LayoutAs I figured out how to customize the site, I decided to have one layout for the Home page, and another shared layout across the five other pages. Unfortunately, there’s no way (that I could figure out) to share a layout across pages. So, I had to customize each one individually, re-adding the same widgets to each page. In the case of the Generic Content and Unfiltered HTML widgets, this meant copying & pasting the same HTML content into the widgets on each page.
The Home Page LayoutAs part of my evangelism job at Microsoft, I frequently direct people I meet to visit my blog as a source of information about Microsoft and the local NJ/NY/CT developer community. Therefore, I wanted the home page to surface as much as that information as possible. To do that, I chose the three column layout with a banner as depicted in the image to the right. This is known as the “Header-Top-Sidebar-Left-Content-Center-Sidebar-Right” layout.
BannerLet’s start at the top! I knew I wanted to bring my banner image of NYC viewed from the Jersey Shore over from the old site. I also wanted to add my picture somewhere prominently on the site as I’ve never had that before. That way folks would know who I am when they visit. TC 5.5 has a “Blog – Banner” widget, but it appears useless to me. It just displays the title of the blog in a large font over white space. There were no options to customize it at all by adding let’s say… a banner image!
To do this, I added a Generic Content widget to the banner section of the layout on all six pages on the site. The Generic Content widget gives you a rich text editor where you can enter content to be displayed. You can alternatively click an “HTML” icon in the editor to enter plain old HTML.
Here is where I cheated. I originally wanted to have my blog title and tag line overlaid prominently on the banner image via HTML and CSS positioning. I couldn’t figure it it out. So, I took the original image and edited it in Paint.NET. In Paint.NET, I added my headshot and the blog title text directly to the image. I then returned to the Generic Content widget, inserted my image via the rich text editor, and that was it.
Center Content Column – Breadcrumbs & Blog Post List
In my April 2008 post, I mentioned how I wanted the content area of my blog posts to be wider in order to fit images and code samples as needed. This led me use a two-column layout previously with a single sidebar. This resulted in a lot of non-post information being pushed “below the fold”, such as upcoming events from Community Megaphone.
TC 5.5 offers a “Blog Post List” widget that lets you choose to have a “summary” view of your posts, or the full “detail” view. I decided to go with the “summary” view for the center column of the layout. The “summary” view displays only the first paragraph or so of your most recent posts. Since readers need to click through to the full “Blog Post” page to read an actual post, having a wider width on the home page was not a concern.
That allowed me to go with a three-column layout with an extra side bar on the right to surface more information. Summary view also lets site visitors see more posts on the Home page, making it easier to catch past posts that normally would be several scrolls of the screen away.
Another benefit of the TC 5.5’s new “Blog Post List” widget is that it enables your blog visitors to filter your posts on Most Commented, Most Viewed, aside from the default Most Recent listing. Blog visitors can also switch to a detailed post view where the entire contents of the posts are displayed on the Home page.
There are two other widgets in the center column on the Home page. The first is the Breadcrumb widget. This widget displays the navigation hierarchy of the blog as horizontal text links as is standard on many websites. The breadcrumb navigation root is the MSDN Blogs home page.
The second widget in the center column is the “Blog Title” widget. This widget outputs the title of the blog in HTML that is “hidden” by default, but enable’s the blog’s title to be displayed in the browser’s title bar. This widget does not need to go in the center column. It just ended up there for me. However, you should have it somewhere on your page.
The Side Bars – Community Events, User Groups, Podcasts, and more…The left and right side bars are made up of several widgets containing various bits of information. The three most important bits of information I wanted to surface above the fold besides the blog post content were community events from Community Megaphone, my latest tweets on Twitter, and my new podcast, The Connected Show. I also brought along most of the previous content, including the the list of Microsoft-focused user groups in the NJ/NY/CT tri-state area.
I mentioned above that in CS 2.1, the only way to add non-blog content to the site previously was by entering HTML in the “News” block or creating “Link Lists” through the management UI. The user group list and my teammates’ blogs list came from the “Lists” I created in CS 2.1. To add them here, I added the “Blog Link List” widget to the layout.
The “Counters, etc” section with links to Brian Hitney’s World Maps and the image of “Old Barney” from my original 2006 blog theme come from the “News” block I had in CS 2.1. To add that, I added the “Blog – News” widget to the layout.
Adding JavaScript & IFrame GadgetsCommunity Megaphone is a service created by my teammate, G. Andrew Duthie to facilitate sharing and discovery of events relating to software development. User group meetings, as well as other developer and IT Pro community events are are posted there. Community Megaphone offers an HTML gadget you can add to your site to display upcoming events in your area. The gadget is implemented as an IFrame which you add to your site with an HTML snippet that Community Megaphone provides.
Note: If you own a blog or a site about technology, I highly recommend you add this gadget to your site!
Twitter also offers an HTML gadget you can add that displays your most recent tweets on your site. It is implemented as a JavaScript snippet that Twitter provides you to add to your site’s HTML. I have also been using a gadget from PostRank that displays a list of my top rated posts. I’m not sure of the value of this gadget yet, or if I’ll keep it. However, it is similarly implemented with a JavaScript snippet provided by PostRank.
Previously, the HTML & JavaScript snippets for these gadgets were inserted into my “News” block within the CS 2.1 management UI. When the new TC 5.5 came online, all three of these gadgets stopped working. After some tinkering, I discovered that in order to execute JavaScript or load an IFrame, you need to insert your snippets into an “Unfiltered HTML” widget. I added “Unfiltered HTML” widgets to the left and right sidebars in the layout to display these gadgets.
Community Megaphone IE8 Web Slice & Search AcceleratorNew in this version of the JrzyShr Dev Guy blog: An IE8 Web Slice for Community Megaphone! When adding the Community Megaphone gadget via the “Unfiltered HTML” widget, Andrew supplied me with some code that also makes the gadget available as a web slice in IE8. That code is displayed below. The web slice enables you to view upcoming events in the tri-state area directly from your Favorites bar without leaving the site you’re on.
There is also a new link that will install the Community Megaphone Search Accelerator for IE8. Once installed, the accelerator allows you to select text on any website and search for event details on Community Megaphone.
Let’s say you saw someone mention a community event in your web-based email, but they didn’t include a link to it. You could select the event name, right-click and choose “Find Events by Keyword”. If Community Megaphone has that event listed, it will open it right up for you!
Note: The Bit.ly links in the snippet below were created by me to make the code more readable. (Community Megaphone generates some LONG URLs by default!)
<div class="hslice" id="cmgadget"> <h3 class="entry-title" style="display: none">Community Megaphone</h3> <a class="entry-content" rel="entry-content" href="http://bit.ly/NJNYCTPACommMegaGadgetURL" /> <!-- Community Megaphone Generated Gadget HTML --> <iframe id="CM" src="http://bit.ly/NJNYCTPACommMegaGadgetURL" frameborder='0' width='230' height='320' scrolling="no"> An iFrame capable browser is required to view this content. </iframe> <!-- End Community Megaphone Generated Gadget HTML --> <br/> <a href="javascript:window.external.AddService('http://www.communitymegaphone.com/Accelerators/KeywordSearch.xml');"> Get the Community Megaphone Search Accelerator for IE 8 </a> </div> Home Page Widget Layout OverviewHere is an overview of what the Home Page widget layout looks like:
The Other PagesWhile there are five other view pages on the site, it is the Blog Post page that is most important in this group. All of these pages have in common the need to display full detailed content (vs. summary content). For these pages, I chose a two column layout with a header, left side bar and right content. This is known as the “Header-Top-Sidebar-Left-Content-Right” layout. By having a two column layout on the actual content pages, the content area can be wider to support images and code snippets.
On these pages, I kept the user group list, link to my podcast, and counters. However, I do away with Twitter & the Tag cloud. Since visitors are likely arriving at these pages from a search engine or their RSS feed, I added the “Recent Posts” widget to display links to the five most recent posts. That let’s folks know what else is going on on my blog.
As noted earlier, both the layout and widgets had to be set up for each of the five pages. Below is the widget layout for the “Blog Post” page.
Setting Up JrzyShr Dev Guy Blog StylingOnce all of the layouts & content widgets were set up, it was time to gussy things up with some custom JrzyShr Dev Guy CSS styles. As noted earlier, this was the most time consuming part of this customization process. Hopefully, sharing my styles here will help save others significant time! I’ll break this part up into two sections. The first is using CSS to tweak the layout. The second is using CSS to set fonts, colors, etc.
Luckily, unlike the layout and widget customization, most CSS style classes apply across all of the pages in the blog site. There were a select few that were specific to the individual pages, but not many.
Disclaimer: These settings are what worked for my blog after “hunting and pecking” at various CSS classes. They in no way constitute “best CSS practices”. I wouldn’t know a “best CSS practice” if it stared me in the face.
Tweaking The Layout With CSSWhile the overall layout of content on the page is controlled through the WYSIWYG editing mode, there are still items that need to be tweaked via CSS. There were three layout tweaks I made.
Setting Overall Layout WidthThe first was to set the width of the page’s layout to match the banner image size. Most of the page content sits within a top level <div> tag of class “layout”. To change the overall width of the page layout, I set the width & max-width CSS properties to 1104px to match the size of my banner image. This centers the 3-column layout within the browser, as well as causes the middle (content) column to expand dynamically to fill the horizontal space. The left & right sidebar layout columns are a fixed width of 270px by default in the Wireframe theme.
//Set overall content layout widthIn the previous version of my blog, I had a beachy tan background color (#cdc9b4) for the area outside of the the page’s content area. In TC 5.5’s Wireframe theme, I had to override the background-color style in two locations to get the effect that I wanted. The first was the main <body> tag. The second was for a top-level <div> with the CSS class name “content-fragment-page”.
//Set the background color for the portion of the pageAnd the end result:
Without Background ColorThe Wireframe theme has a white header bar across the top of every page that contains the links to log in to MSDN Blogs.
I wanted to eliminate this extra white space at the top, but still maintain the login links by having them overlay the banner image. To make this happen required three things:
Here are the CSS styles I applied to make this happen:
//Move the page content & footer up by 34pxThe TC 5.5 “Blog Post List” widget was designed to support a blog with multiple authors or aggregate content from multiple blogs. By default, it displays an avatar of the author next to each post, along with the name of the blog it came from. I thought this clutters the list on the Home page. Since my blog is authored by only one person (me), I figured having a long repeating list of avatar photos of me would be redundant.
Here are the CSS styles I used to clear up and remove the repeating avatars:
//Hide the avatar & blog title from each post.Cleaning things up – Removed avatars & post author name.
Putting On The “Metro” PolishThe final part of customizing the JrzyShr Dev Guy theme was setting the font, font colors, and font sizes to give it a polished look. It seems a lot of Microsoft oriented sites have been following in the footsteps of Zune & Windows Phone 7 with a Metro-like UI. There are even 3rd party applications (MetroTwit & Omnimo) showing up with the Metro UI. The Metro UI is about a lot of stuff in terms of simplicity and layout. The official Metro description from the Windows Phone 7 site:
Metro is our code name for our designed language. We call it Metro because it's modern and clean.
It's fast and in motion. It's about content and typography. And it's entirely authentic.
I kept the same font color scheme from the previous version of the site. All of the post links and post titles are in “Old Barney” burnt orange color (#cc3300). All non-post links (stuff in the sidebars, breadcrumb navigation, etc) are in a Jersey Shore-esque blue-grey color (#7c95b3). The color of the sidebar links makes them more subtle so the reader isn’t distracted by them, versus the brighter color links that jump out in the actual content .
Annoyingly, adjusting the CSS styles was the most tedious and challenging part of customizing the theme. There is no one CSS class that let’s you override the fonts and font sizes of the entire site. I had to manually set the font details on multiple different CSS classes. I’m not sure this is (or was) the best way to do this. I welcome others to point out ways this could have been done easier.
I won’t detail each style override class here. Instead, you can find the complete listing of my custom CSS styles linked here: http://blogs.msdn.com/themes/blogs/wireframe/css/DynamicStyle.aspx?WeblogID=5598
Comic Sans faux pas – Who knew?!I’m not a connoisseur of fonts. When I first set up some temporary changes to the site, I had used the Comic Sans font in my banner image as seen in the image below:
I had no idea that Comic Sans is to typographers like nails on a chalkboard are to most humans?! Apparently, using Comic Sans is considered by some folks to be more distasteful than using HTML <tables> for layout instead of <divs> and CSS! There has even been an entire organization set up to ban the use of Comic Sans, chock full of good humor, and a funny video to go along with it.
Luckily, as part of my “Metro-fication” of the site, this faux pas was resolved in the final version of the theme.
Still to come?Having to upgrade my blog has been a learning experience. Hopefully, my documentation of how I “re-customized” it will aid others by saving them time. The great thing about the new platform is that it is more flexible and much easier to add custom content to the site. Like any website, this is a constant work in progress. I’m sure there will be more tweaks and additions over time. Some ideas right now:
I hope you enjoy the new JrzyShr Dev Guy blog look! And… as always, please share your feedback!
So, my friend Jason asked me:
Why are my MacOS X 10.5+ Samba clients ignoring the “force create mode” and “force directory mode” settings for the share on my Samba server?
He was trying to setgid the directory and force files and directories to be group writable (i.e., “force create mode = 02770” and “force directory mode = 02770“), so that different users creating files and directories on the same share volume that belong to the same group can all write to to them. However, his MacOS X 10.5+ clients were able to ignore these settings somehow.
Turns out, this is a known issue:
The summary is that as of MacOS X 10.5 Leopard, its Samba client uses CIFS UNIX extensions to manipulate permissions, which Samba servers currently don’t enforce restrictions specified by the older “mode” settings. The work-around is to disable these CIFS UNIX extensions on the Samba server by putting “unix extensions = off” in the [global] section of your smb.conf file.
One of the things that I do with my limited free time is sing in a Barbershop chorus, the Ridgewood Cavaliers of Harmony. I love a good harmony and a cappella music really brings that out.
Last Friday, our friend Daniel Bauer treated Sam and me to the opening night of Straight No Chaser’s new show “With A Twist” at Harrah’s in Atlantic City.
While they don’t sing Barbershop, they’re an awesome a cappella group and seeing them perform live was just magical. They’re performing here in New Jersey through August, so don’t miss this opportunity if you’re in the tri-state area.
The most dangerous way to lose time is not to spend it having fun, but to spend it doing fake work.
We all underestimate our ability to massively change our life when it’s gone off track.
The recent update to iBooks added PDF support. Unfortunately, the reading experience is no where near as good as the epub experience.
This was a bummer for me since I own quite a few eBooks in PDF format (and converting them to epub does not yield better results).
Thankfully, a tweet from John Grubber lead me to SimplyPDF which makes the PDF experience much more tolerable by allowing you to focus on a particular area of the page.
Here are too screen shots to compare:
The Default View in SimplyPDF
The Focused View in SimplyPDF
While it is no way near as good as a epub in iBooks or mobi in the Kindle app, it does get the job done for now.
I can’t believe it … ten years ago, she was just a little shrimp on an ultrasound image, and now … my oldest daughter, Charlene, has her own blog.
Last night, she asked if she could have her own website, and I told her, “We can work on one tomorrow.” I figured if she wasn’t seriously interested, she’d just forget about it. This morning, she didn’t forget about it, and wanted to start working on it before heading off to camp! So, I set up the DNS and installed WordPress 3.0 and let her pick out a theme to start, and set her down to write her first blog post. She didn’t have more than a few minutes to write it before having to head out the door for camp, but I think she did great.
I’m really excited for her! I think she’s going to have a lot of fun exploring the available themes and learning how to customize them. It could be a great opportunity for her to make the leap from playing around with Scratch to learning PHP.
Since Oracle owns MySQL through its acquisition of Sun, more Oracle conferences are providing MySQL content. This past Oracle Development Tools User Group (ODTUG) Kaleidoscope 2010 conference from June 27 through July 1 had a whole dedicated track for MySQL.
I was fortunate enough to have the opportunity to speak on MySQL metadata, titled “Using MySQL Meta Data Effectively“. Here’s the abstract:
This presentation discusses what MySQL meta data is available including the ‘mysql’ meta schema, the INFORMATION_SCHEMA (I_S) tables first introduced in MySQL 5.0 and extended in MySQL 5.1, storage engine specific INFORMATION_SCHEMA tables, as well as techniques for writing your own INFORMATION_SCHEMA plug-ins. MySQL also provides a number of SHOW commands that provide easily formatted presentation of MySQL meta data. Dossy Shiobara will also discuss some of the limitations and performance implications of the INFORMATION_SCHEMA.
You can download the materials from my session here:
Two weeks ago, I posted here at about a benefit dinner being held July 7th, 2010 to support one of our own NYC area developers, Wendy Friedlander who has been stricken with a rare form of cancer. This benefit dinner is being organized by multiple folks in the community, spearheaded by Sara Chipps. Stephen Bohlen has posted an update on his blog that I think is worthy of being re-shared here. In short, the dinner will be more than a dinner as some notable speakers in the community have agreed to come and speak to attendees, providing some edu-taining value besides supporting the generous cause of helping Wendy & her family.
Via Stephen Bohlen…
After taking some time to recover from treatment and reconnect with her family, Wendy hopes to return to her coding ways.
And we hope to welcome her back!
What Can *YOU* Do To Make a Difference?To help them financially and to show support for them emotionally, the NYC-area software development community is organizing a benefit dinner to help raise money for Wendy and her family. This brilliant idea was started by Sara Chipps and I have been contributing what effort I can to assist in helping out where needed.
This dinner will be held At 7pm on this coming Wednesday evening July 7th in New York City – the exact location is still awaiting confirmation (and may need to vary based on the number of RSVPs we receive).
The cost of this dinner is $75 per person and 100% of all proceeds go direct to Wendy and her family. Its likely that the dinner will consist merely of the oh-so-common user-group fare of Pizza and Soda so you can rest assured that probably $65 or more of every $75 collected will go to benefit Wendy.
You can RSVP for the dinner here – and the sooner the better so that we can begin to select a location capable of accommodating the right number of attendees. Payment is accepted via most major credit cards, PayPal, and even electronic check if that suits you.
Times are Hard, I can’t Quite Swing the $75If you don’t think you can handle the $75 per person cost of attending the dinner, cannot adjust your schedule in time to attend, or are simply too remote to attend the event, please consider strongly making a donation directly to Wendy and her family.
Donations are accepted here and may be made in ANY amount you feel comfortable contributing. 1$, 5$, $10, $50 or more – the wonderful thing about SCALE is that even the smallest of contributions when added together can often produce GIANT results. If even 100 people each gave $10, that would be $1000 for Wendy and her family.
Think about it. Really. Please.
A Very Special Guest Speaker : Charles PetzoldWe are very pleased to be able to announce that Charles Petzold has graciously agreed to be our featured speaker at the event! Author of about a gazillion books on Programming, Computers, .NET, and more, if you have never had the pleasure of watching him deliver a talk, you are in for a real treat!
Clever, entertaining, enthusiastic, and informative, Charles never fails to deliver a talk worth seeing on just about any topic. For this event, Charles has promised to deliver a very special talk on a unique topic available only to paid attendees at this benefit dinner:
The evening will include a unique presentation by Charles Petzold on an obscure (but interesting) chapter in the history of computing with appearances (in chronological order) by Cicero, Galileo, Kepler, Newton, Fourier, Charles Darwin, Lord Kelvin, Madame Curie, and Albert Einstein.
The intent of this talk is actually to take a look at some of the history of computing in a different and historical light so as to appeal not only to the technology crowd but also to be broad enough to be of interest to spouses, life-partners, and significant-others that might also be interested in attending the event.
Seriously – think about buying an extra ticket and bringing your spouse or significant other to this event – despite the presence of pizza and soda, this evening will prove to be so much more than your typical geek-fest – we promise
Also Starring Miguel CastroVenerable NYC-area (yes, and NJ-area too <g>) “.NET Dude” Miguel Castro has also volunteered to speak at this benefit event!
Boisterous, annoying, flippant, and frequently insulting, if anyone has seen a Miguel Castro presentation before you can rest assured he has promised to deliver something very un-Miguel for this event so you needn’t worry too much!
I am of course kidding :) Miguel actually has promised to deliver a talk just for this event that’s a little different from his usual fare, but I’m sure we can count on his usual personality still being front-and-center for us all to “enjoy” !
(Seriously – Miguel is actually a great speaker who never fails to deliver an excellent and thought-provoking talk on some of the more complex technologies in the MS universe so this is a great chance to see him in perfect form!)
Free 30-day TEKPUB Subscriptions for EVERY Attendee!To sweeten the pot for attendees even more, the great people behind the screencasting / developer education site TekPub have graciously committed to provide a free 30-day unlimited access subscription to all of their content for every attendee who purchases a ticket to the event.
With screencasts on topics ranging from NHibernate to Ruby on Rails to ASP.NET MVC to Entity Framework 4 and more, this 30-day TekPub subscription will permit you to ‘drink from their firehose of content’ as much as you can for 30 days!
To accommodate those that cannot attend, anyone making a donation of $75 or more will also qualify for this guaranteed subscription offer.
Further demonstrating their commitment to the developer community, TekPub has also contributed a single 1-year subscription to their site which is to be raffled off at the event to one lucky attendee!
More Cowbell, More SWAG!We also have commitments from several other vendors (including JetBrains and more!) to donate additional software licenses to raffle off to attendees! All of this points to a whole host of reasons why you should make it a point to try to attend this event next Wednesday evening!
And if by chance you cannot attend due to schedule, finances, geography, or other constraints, please, please, please consider making even the smallest of monetary donations. The economics of scale can easily turn the tiniest of efforts into a very effective campaign!
Help Get the Word Out to all the Corners of the Internet!Please do what you can to share info about Wendy, this event, and the donation link with your friends, acquaintances, connections, followers – heck, even share this with your ENEMIES!
Help get the word out so that we can all collectively do everything in our considerable power to help Wendy and her family through this difficult time.
If the word ‘community’ is to mean anything, then its in support of something like this that it can really show its ability to make a difference in a meaningful way.
Your contribution of money, time, effort, or just spreading the word is much appreciated by everyone!