background preloader

David.mccrory

Facebook Twitter

David D. McCrory

Understanding Code Visually: Three Ways that Work | Architexa – Working with Large Codebases » Blog Archive. Monday, November 8th, 2010 - By Seth Rosen In trying to help developers understand code we have made sure to listen to what they have to say. We’ve noticed that many developers utilize UML style diagrams to try to understand code. However many problems exist with existing tools.

I have tried using a number of UML tools and found that the reverse-engineering capabilities in the majority of them were not helpful for understanding tasks. It is important to think about which specific perspectives you need to understand. The Mile High View: A layered architectural diagram can be really helpful to know how the main concepts in a project are related to one another.

A layered diagram showing how the different components of Apache Log4J are related. The Core: It is important to try to figure out how the code works with regards to the main concepts. A Class diagram showing the heirarchy model of Apache HttpClient. A sequence diagram describing the procedure for searching a Lucene 3.0 index. Technology | Between a rock and an interface.

The web regularly delights Bill Thompson with what it finds for him Designers and developers should be consulting their psychologists, says Bill Thompson One of the most wonderful things about spending a lot of my day online is that there is always something interesting to read when work gets boring or I'm waiting for the coffee to brew. And I don't even have to go looking for things to read, as the Bloglines news aggregator brings the latest postings from the ninety-two websites I'm most interested in to one place, checking their RSS feeds and managing them for me. All I have to do is skim through looking for anything that catches my eye and seems worth a little attention. So today I got to see what claims to be the best ever photograph of Jupiter taken from an earth-based telescope, captured by an 8.2m telescope in Chile using new "adaptive optics", and learned that Superstruct, the Institute for the Future's "massively multiplayer forecasting game", has just gone live.

Winding way. Forking is a Feature. How Limitations Improve Design. We often complain about the multitude of limitations which we’re faced with every day as designers. From browsers, to screen resolutions, to user interactions, we seem to constantly be struggling to find some way of thinking outside the tiny little box of “best practice” which we’re constrained by. Limitations are abundant but are they really such a bad thing? Is it possible, even, that they actually produce far better results than if we did not have them?

Ikea for example, starts with price and then work backwards. 37Signals wrote a whole book about how they operate with similarly heavy restrictions when building web apps; they set a date to launch and then they stick to it, no matter what. Sometimes Freedom Isn’t a Good Thing Without constraints, things can get crazy. Now I’m not saying that all Flash sites are bad, or that all people who make them are bad designers. An animation, graphic, sound effect, or interaction without purpose isn’t design, it’s decoration. Limiting Color Conclusion. Some lesser-known truths about programming | Dot Mac. My experience as a programmer has taught me a few things about writing software. Here are some things that people might find surprising about writing code: Averaging over the lifetime of the project, a programmer spends about 10-20% of his time writing code, and most programmers write about 10-12 lines of code per day that goes into the final product, regardless of their skill level.

Good programmers spend much of the other 90% thinking, researching, and experimenting to find the best design. Bad programmers spend much of that 90% debugging code by randomly making changes and seeing if they work.A good programmer is ten times more productive than an average programmer. 10 Free Online Books for Web Designers. There’s a never ending supply of information out there for us web designers. If there’s something we need to learn, we can find it in one form or another. Sometimes it may be on a blog or it could be in a book. While you may have to shell our some money for a good web design book, there are a number of them out that have online versions that are totally free. Here are 10 you should find very useful.

A Practical Guide to Designing for the Web A Practical Guide to Designing for the Web aims to teach you techniques for designing your website using the principles of graphic design. Getting Real Getting Real is the business, design, programming, and marketing philosophies of 37signals — a developer of web-based software used by over 1 million people and businesses in 70 countries.

The Elements of Typographic Style Applied to the Web jQuery Fundamentals Web Style Guide, 3rd Edition Access by Design Web Designer’s Success Guide The Web Book Dive Into HTML 5. Code-First Development with Entity Framework 4. .NET 4 ships with a much improved version of Entity Framework (EF) – a data access library that lives in the System.Data.Entity namespace. When Entity Framework was first introduced with .NET 3.5 SP1, developers provided a lot of feedback on things they thought were incomplete with that first release. The SQL team did a good job of listening to this feedback, and really focused the EF that ships with .NET 4 on addressing it. Some of the big improvements in EF4 include: POCO Support: You can now define entities without requiring base classes or data persistence attributes.Lazy Loading Support: You can now load sub-objects of a model on demand instead of loading them up front.N-Tier Support and Self-Tracking Entities: Handle scenarios where entities flow across tiers or stateless web calls.Better SQL Generation and SPROC support: EF4 executes better SQL, and includes better integration with SPROCsAutomatic Pluralization Support: EF4 includes automatic pluralization support of tables (e.g.

Prog21: Explaining Functional Programming to Eight-Year-Olds. "Map" and "fold" are two fundamentals of functional programming. One of them is trivially easy to understand and use. The other is not, but that has more to do with trying to fit it into a particular view of functional programming than with it actually being tricky. There's not much to say about map. Given a list and a function, you create a new list by applying the same function to each element. [X + 1 || X <- List] Fold, well, it's not nearly so simple.

Lists:foldl(fun(X, Sum) -> X + Sum end, 0, List) It's short, but it's an awkward conciseness. Compare this to the analog in array languages like APL and J. Turns to this: giving a result of 21. Now there are some edge cases to worry about, such as "What does it mean to insert a function between the elements of a list of length 1"? But in terms of raw simplicity of understanding, insert flat-out beats fold. (If you liked this, you might like Functional Programming Archaeology.)

Pearltrees videos

Help. Cool stuff. Five big questions about cloud computing. By Eric Knorr December 22, 2009 06:32 AM ET Recently InfoWorld's David Linthicum examined the flip side of this question: the cloud as an engine of job creation. Notes Linthicum: "This seems to be the largest inflection around a hyped space in IT that I've ever seen, especially considering we've been in a downturn in which many companies have reduced IT jobs. " But where will those IT recruits for cloud service providers come from? Perhaps the biggest faux pas of the 2009 cloud season came from Richard Marcello, president of technology, consulting, and integration solutions at Unisys, who noted that the cloud is a great way to save money by eliminating U.S. jobs and hiring workers in India to run cloud services instead. 5.

Does the cloud really enable anything new? Here's where things get interesting. And MapReduce isn't the only game in town. Cloud-based development platforms also provide capabilities difficult to get elsewhere. WCF Callbacks; a beginners guide. On Channel9 last week Amiga forever! Wanted to know how to pass multiple parameters to a WCF callback; so as I covered callbacks at DDD Scotland briefly this seemed like a perfect excuse to illustrate how to create a callback in WCF. So why do we want callbacks? One of remoting's more useful features was the ability for a server to trigger events on a client; WCF callbacks provide the same sort of facility. To start lets create a new WCF project by choosing the WCF Service Library in VS2008; You can see I'm targeting .NET 3.0; just to prove it will work in Visual Studio 2005 as well.

Next we need to define our service contract. To illustrate callbacks I am going to have three command line applications; one to host the service, one to send messages to the service and one to listen for events from the service. So we add a new interface, IMessage, which will become our service contract. You will notice that the callback interface is not marked as a ServiceContract. Windows 7 Development Gotchas | IT Expert Voice. In this article, developers identify common problems in porting custom business applications to Windows 7 from Windows XP or Windows Vista, and in taking advantage of the OS’ new features.

Why make your own mistakes when you can learn from others’ experiences? Find out where the bodies are buried. My father-in-law once said that the best way to fix his old, broken-down car was to “Jack it up and drive a new one underneath.” Depending on the state of your software, that may be how you have to “update” an old Windows application: Replace it. One developer, Rob, has been trying to update a Windows XP Visual Basic 6 application for months and it’s turned into a complete rewrite. Before your company can migrate its computers to Windows 7, it has to make sure that all the business’ existing software will work with the new OS. I don’t mean to give the impression that code changes are always necessary.

I only address custom applications in this article. OS version changes. Showcase Of Modern Navigation Design Trends - Smashing Magazine. Advertisement The navigation menu is perhaps a website’s single most important component. Navigation gives you a window onto the website designer’s creative ability to produce a functional yet visually impressive element that’s fundamental to most websites. Because of their value to websites, navigation menus are customarily placed in the most visible location of the page, and thus can make a significant impact on the visitor’s first impression. The design of a navigation menu has to be outstanding in order to sustain the user’s interest. You should also read the following related posts: 3-D Navigation Lately, we’ve seen a trend towards design elements that sit on a higher z-plane; that is, they appear closer than other elements on the page. DelibarThe content area on the Delibar website looks like a pile of two pieces of paper, with the navigation items holding them together.

Mystery TinThe Mystery Tin navigation menu is arranged vertically. Speech Balloons Rounded Corners Unusual Shapes. Ford adapts Sync to create myFord Touch driver interface. News By Elizabeth Heichler January 7, 2010 12:05 AM ET Meanwhile, Ford is also "betting that you'll be one with your phone," as Mulalley put it, and is tapping into the booming ecosystem of applications for mobile devices. Julius Marchwicki, product manager for mobile application connectivity, demonstrated the end result of sharing the Sync SDK with Internet music service Pandora.com, in a car outfitted with Sync (but not the new myFord Touch interface).

It took a total of ten days for developers of mobile apps -- which also included Stitcher.com and Twitter client OpenBeak -- to ready their products to work with Sync, Marchwicki said. Marchwicki noted that Ford has a fairly complex set of rules that prevent third-party applications from doing malicious things or presenting information to drivers in distracting ways. Ford shared the Sync API with students at the University of Michigan, among other institutions, to see what applications they might come up. 45 Powerful CSS/JavaScript-Techniques - Smashing Magazine. Advertisement CSS and JavaScript are extremely powerful tools for designers and developers. However, sometimes it’s difficult to come up with the one excellent idea that would solve a problem that you are facing right now. Good news: almost every day designers and developers come up with fresh and clever CSS tricks and techniques and share them with other developers online.

We regularly collect all these tricks, filter them, sort them, revise them and prepare them for Smashing Magazine readers. In this post we present 45 useful CSS/JavaScript-techniques that may help you find clever solutions to some of your problems or just get inspired by what is possible with CSS. We cover interesting CSS-techniques, navigation menus, CSS typography, CSS lists and CSS buttons. Please notice that this is the first part of our large round-up of fresh CSS/JavaScript-techniques. Interesting CSS Techniques CSS Navigation Menus Sproing! CSS Typography and Body Copy CSS Lists CSS tricks for custom bullets.

15 Signs Your Workplace is Dysfunctional. Tuples, Anonymous Types, and Concrete Types. Var point = new { X = 50, Y = 100 }; point is an object of an anonymous type. You can declare anonymous types with any number of properties, and those properties do not need to be the same type: var person = new { FirstName = "Bill", LastName = "Wagner", DateOfBirh = default(DateTime?) }; The compiler generates an internal sealed class that models the anonymous type. The anonymous type is immutable; all the properties are read only. You don’t write any of the code for anonymous types. So if anonymous types are so limited, why use them at all? Tuples solve a related problem. Like anonymous types, tuples override Equals() and GetHashCode() to impose value semantics. This tuple: var origin = Tuple.Create(0, 0); Would display as There is no point in displaying the names of members, those names have no semantic meaning.

Tuples, like anonymous types, should be used when you want immutable data containers that don’t define behavior. OFCGWT Demo. Design Patterns: Architecture of an Autonomous Application. Design Patterns Architecture of an Autonomous Application Sten Sundblad and Per Sundblad No man is an island. That's even true of developers. Software architects, designers, and developers need to communicate with each other in order to be successful.

The same is true with applications. This isn't so anymore. Obviously, when we architect and design applications, we should consider this need for integration across computing platforms. What Is a Fiefdom? A service should be a completely autonomous application. Pat Helland, an architect at Microsoft, was one of the first people to talk about autonomous applications, but he's not the only one anymore. A fiefdom keeps, manages, guards, and protects its main resource—its data. A fiefdom doesn't allow an outsider to put a lock on any of its data. Most fiefdoms insist on managing their own transactions. An example of a compensating transaction is one that follows the Web Services Transactions specification, Part II: Business Activity (BA). Framework Design Guidelines: Domain Logic Patterns > Transaction.

Microsoft tries to reinvent the bar code | Beyond Binary. 11 Outstanding Online Resources for Web Developers. How-To: Remotely Wipe an iPhone Using Exchange. The iPhone is the new Internet Explorer 6, says mobile developer. Spatial Search: The Next Frontier - Search Blog - Bing Community. Getting Lazy with System.Lazy - Derik Whittaker - Devlicio.us - Do More with Google Latitude and Your Location Using the New Lat.

Criminal Overengineering « yield thought. How to Create Your Own Email Aliases On The Fly. HTML5 Programming with F# - Don Syme's WebLog on F# and Related.