Showing posts with label SwDev. Show all posts
Showing posts with label SwDev. Show all posts

Wednesday, August 31, 2011

Safari Books Online

Abstract: Safari Books Online is a development resource I wish I had subscribed to a long time ago.  There are some advantages over dead-tree books. The subscription would have saved money because I would have bought fewer books.  It works well in my multiple-monitor, multiple-computer development environment.  Like all software there is room for improvement.  The major limitation is that it is realistically an online-only product.  Most books I would like to download cost a token per chapter.


I loved to introduce myself to new programming technology sipping coffee while carefully & deliberately pruning a stack of possible books into the optimal subset I could carry and afford.  In general I was disappointed by the few books I bought sight unseen over the internet based solely on reviews.  The books were fine and the reviews accurate, just not a good match for my learning style.  It was worth it to buy a less comprehensive book I could grok quickly vs. a book with stellar reviews but not targeted to my learning style and tree-based bookstores gave the comparison opportunity.  I did my part to help keep them going and have the receipts to prove it.  But bookstores are closing so I had to try another way to find those authors that quickly make the MSDN Library my first reference.  Winking smile

I did a trial of Safari Books Online.  The trial has limitations and I could not determine from the trial – or Safari’s web site – if a full subscription would meet my needs.  I signed up for the Unlimited Access Safari Library ($43 / month) and am glad I did.

Key Features

If I could have found this information on the Safari site I would have subscribed long ago.  If one or more of these features go away I may discontinue my subscription.

  • Multiple-Device Simultaneous Access.  I can use the Safari Library on my laptop, desktop and Android tablet at the same time.  This supports the way I prefer to work.
  • Multiple Books Open At The Same Time.  Safari has never complained that I have too many books open, and I’ve had 10 +/- open as a result of searching.
  • One Book Open Multiple Times.  It is great to have a book open to every page you want.
  • Multiple Monitor (MM) Friendly.  Safari works fine on my MM desktop.  I have invested a lot of time and money to have sufficient screen space to have everything of immediate interest visible.  I can glance at another monitor quicker than anyone can <Alt>-Tab.  I tolerate few MM-unfriendly programs and no MM-hostile programs.  When needed I can have a Safari book open to 3 or more different pages in side-by-side-by-side windows.  You can’t do that with one copy of a dead-tree book!

    9-MonitorsVista

Nice Features

  • Portrait Monitors Ok.  When I’m doing a lot of work with portrait-oriented documents I like to rotate the top row monitors to portrait to see more and scroll less.  Some programs look awful in portrait mode and some fail. I’m glad that Safari in Firefox looks fine in portrait mode.  There is a little “fuzziness” that as I understand cannot be avoided because of how the LCD pixels are manufactured.  But I didn’t notice it until writing this post.  Portrait mode is acceptable.  I don’t know or care what the ClearType settings are, no change is needed.
  • “Related Information” Helpful.  The related information feature has pointed me to genuinely useful data in other books in the library.  Note this feature is part of the Safari Library but not the Bookshelf.

Room for Improvement

  • Android Support.  I have not found a browser for my Android 3.1 Acer A500 that works well in both portrait and landscape modes.  Don’t know if this is a Safari, Android or user issue.  The form factor is nice but usability is poor.
  • Two-Page View.
    • Needs a Non-Continuous Mode like Adobe Reader.
    • “The Matrix” Related Content bug looks cool but is unreadable. Winking smile

      TheMatrixBug
  • Bookmarks & Other UI / Metaphor Topics.  Future posts.  Applicable to most eDoc systems, not just Safari.

Monday, November 01, 2010

TortoiseSVN Log Messages Filtering–Oh Duh!

I suppose it’s because I work in small teams or alone that I never realized how useful TortoiseSVN’s Log Messages filtering is.  The highlighted regular expression shows just those revisions with either or both of these two files:

  • SubField.cs
  • SubFieldElement.cs

image

SubField(Element)?\.cs

is the regular expression and RegexBuddy explains it well.

image

Saturday, April 24, 2010

Using VS 2008 & 2010 On The Same Code

A StackOverflow thread indicates incompatibilities in VS 2008/2010 solutions, projects, app.config’s & WCF Service References.  Links to a tool to switch back & forth between 08/10.

More related threads:
http://stackoverflow.com/questions/tagged/visual-studio-2010+visual-studio-2008

Thursday, April 22, 2010

URL Rewriting

From Joannes Vermorel's blog:

Do not break URLs: When migrating your web pages, it's important to include the proper redirections. I have been using UrlRewritingNet, a nice open-source URL rewriting tool. UrlRewritingNet is very convenient to migrate ASP.NET pages because ISS does not intercept the requests even before they hit the ASP.NET machine.

From Scott Guthrie’s blog:

The most common scenarios where developers want greater flexibility with URLs are:

1) Handling cases where you want to restructure the pages within your web application, and you want to ensure that people who have bookmarked old URLs don't break when you move pages around.  Url-rewriting enables you to transparently forward requests to the new page location without breaking browsers.

2) Improving the search relevancy of pages on your site with search engines like Google, Yahoo and Live.  Specifically, URL Rewriting can often make it easier to embed common keywords into the URLs of the pages on your sites, which can often increase the chance of someone clicking your link.  Moving from using querystring arguments to instead use fully qualified URL's can also in some cases increase your priority in search engine results.  Using techniques that force referring links to use the same case and URL entrypoint (for example: weblogs.asp.net/scottgu instead of weblogs.asp.net/scottgu/default.aspx) can also avoid diluting your pagerank across multiple URLs, and increase your search results.

http://www.google.com/search?q=.net+url+rewriting

Wednesday, April 21, 2010

MSDN: Design Guidelines for Developing Class Libraries

Design Guidelines for Developing Class Libraries

The design guidelines for developing class libraries are for library development that extends and interacts with the .NET Framework. The goal of the .NET Framework design guidelines is to help library designers ensure that their users reap the benefits of API consistency and ease of use by providing a unified programming model that is independent of the programming language used for development. It is strongly recommended that you follow these design guidelines when developing classes and components that extend the .NET Framework. Inconsistent library design adversely affects developer productivity and discourages adoption.

These guidelines are intended to help class library designers understand the trade-offs between different solutions. There might be situations where good library design requires that you violate these design guidelines. Such cases should be rare, and it is important that you have a clear and compelling reason for your decision.

Extensibility, Exceptions, Asynchronous Design Patterns, etc.

Scratch

About Scratch

Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.

As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively.

image

Initial article:  Kid-friendly programming app an unfortunate casualty of Apple’s new app policies  :-(

How to Use altChunk for Document Assembly

From Eric White’s BlogThe link.

Merging multiple word processing documents into a single document is something that many people want to do.  An application built for attorneys might assemble selected standard clauses into a contract.  An application built for book publishers can assemble chapters of a book into a single document.  This post explains the semantics of the altChunk element, and provides some code using the Open XML SDK that shows how to use altChunk.

Instead of using altChunk, you could write a program to merge the Open XML markup for documents.  You would need to deal with a number of issues, including merging style sheets and resolving conflicting styles, merging the comments from all of the documents, merging bookmarks, and more.  This is doable, but it’s a lot of work.  You can use altChunk to let Word 2007 do the heavy lifting for you.

Coding Horror: So You'd Like to Send Some Email (Through Code)

Jeff Atwood is in fine form today.  ;-)

Despite my misgivings, email is the cockroach of communication mediums: you just can't kill it. Email is the one method of online contact that almost everyone -- at least for that subset of "everyone" which includes people who can bear to touch a computer at all -- is guaranteed to have, and use. Yes, you can make a fairly compelling case that email is for old stupid people, but let's table that discussion for now.

From So You'd Like to Send Some Email (Through Code)

P.S. Good solutions in the comments.

Thursday, January 28, 2010

StExBar Regular Expression File Renamer

I use the free utility StExBar on all my computers.  It is a toolbar that adds useful utilities to Windows Explorer.  This is a sample of its regular expression file renaming capability.

image

Another variation.

image

Note:  On some computers StExBar was not available to Windows Explorer until I added it to the Windows Taskbar and/or Internet Explorer.

Tuesday, December 22, 2009

Report says the leading cause of software project failures is complexity (Quote)

http://www.computerworld.com/s/article/345994/The_No._1_Cause_of_IT_Failure_Complexity

Computerworld -  Is the problem a bad set of user requirements? Poor business alignment? No. According to software architect Roger Sessions, the primary cause of software project failures is complexity.

Complexity can create delays, cost overruns and systems that don't meet business needs, according to Sessions, who is chief technology officer at ObjectWatch Inc. and author of Simple Architectures for Complex Enterprises (Microsoft Press, 2008). "Our goal should be to design the least complex architecture possible that solves the business problem," he said in a report he released last month.  …

Sessions' remedy is a software design process called Simple Iterative Partitions, which "partitions business functions into subsystems" in a way that makes the overall system as simple and reliable as possible to achieve the business goal.