Article :: Designing the iPhone User Experience: Prototyping App Concepts

This chapter looks at various iPhone prototyping approaches — paper, software, and video — and suggests how to choose the best approach for your iPhone app.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: An Interview with Watts Humphrey, Part 28: Early TSP Trials and the Teradyne Team Launch

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In Part 28, Humphrey discusses his experiences with TSP trials, why business continuity is a real problem for the software community, and the difference between a team leader and a coach.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Designing Abstractions

David Chisnall points out what makes a good abstraction and how to avoid some common mistakes when designing complex systems.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: An Interview with Watts Humphrey, Part 26: Catastrophic Software Failures and the Limits of Testing

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In Part 26, Humphrey discusses the software failures of the Therac-25 and the V-22 Osprey, why testing catches less than 1% of all scenarios, and why good software is like a symphony, where one bad line of code -- or one bad musician -- can ruin the entire piece.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: An Interview with Watts Humphrey, Part 25: SEI Strategy and the Trouble with Trivial Errors

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In Part 25, Humphrey talks about how the SEI strategy came about, the value of monthly reports, and why you can't count on testing to find all of your defects.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Interview with Andrei Alexandrescu (Part 3 of 3)

Eric Niebler and Andrei Alexandrescu conclude their conversation about the D programming language by discussing concurrency, the complications of sharing data, dynamic loading, specification and licensing, and the future of D.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: The Developer's Guide to Social Programming: Application Discovery, Tabbed Navigation, and the Facebook JavaScript Library

This chapter explores how you can use dashboards in your Facebook Platform application through the Dashboard API and how you can use application tabs as a way of sharing your application's information with users and their friends.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Building Dynamic Systems with Expressions in .NET

The Expression API and the capabilities of the DLR lower the barriers to entry for creating systems where code and algorithms are created at runtime. Bill Wagner, author of Effective C#: 50 Specific Ways to Improve Your C#, Second Edition, shows how to use the Expression API and dynamic runtime support to build dynamic systems based on the data in your application.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: An Interview with Watts Humphrey, Part 27: Formal Methods, the Failure of PSP, and Tragedy of Beautiful Software

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In Part 27, Humphrey discusses his work with formal methods, why he had to move away from the PSP process, and why beautiful work in software does not get noticed.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: All Systems Are Go: An Interview with Rob Pike, the Co-developer of Google's Go Programming Language

Danny Kalev talks with Rob Pike, the co-developer of Google's new Go programming language. In this interview, Pike speaks about the limitations of C++ in large-scale projects, the design philosophy of Go and its unusual type-system, and Go's future.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Writing Portable C

C is often called a "portable assembly language," but in a lot of situations it's possible to write nonportable C — sometimes by design, sometimes by accident. David Chisnall considers how to avoid portability issues when writing C code.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: A Practical Guide to Distributed Scrum: Distributed Daily Scrum Meetings

This chapter talks about how to answer the three Daily Scrum questions and provides some tested techniques for conducting effective Daily Scrum meetings with distributed teams.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: The Pattern Challenge: How to Successfully Deliver Software Solutions via Patterns

Lee Ackerman and Celso Gonzalez, authors of Patterns-Based Engineering: Successfully Delivering Solutions via Patterns, offer some practical ideas for dealing with the obstacles that organizations typically encounter when attempting to use patterns in the software development lifecycle.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Interview with Andrei Alexandrescu (Part 1 of 3)

In part 1 of this three-part series, Eric Niebler talks with his pal and fellow InformIT contributor Andrei Alexandrescu about the D programming language and Andrei's new book about it: what makes D different from other languages, whether D's class libraries rival those of Java and .NET, and why Andrei claims not to be a guru.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Introduction to SharePoint Development in Visual Studio 2010

This chapter helps you create your first SharePoint solution by introducing you to some of the projects, project item templates, and tools that are in Visual Studio 2010 for SharePoint development.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Interview with Andrei Alexandrescu (Part 2 of 3)

Part 2 of this interview about the D programming language finds Eric Niebler and Andrei Alexandrescu deep in discussion about structs versus classes, the difficulties of copy semantics, rvalue references, the intricacies of garbage collection, and Andrei's occasional failure in serving as the standard-bearer for policy-based design.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: An Interview with Watts Humphrey, Part 23: IBM Tool Development, the Academic Advisory Board, and the Speak Out Article

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In Part 23, Humphrey discusses the quest for high quality code, the reason for bringing on an academic advisory board at IBM, and the to-do surrounding his article on Ronald Reagan's "Star Wars" program.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Software [In]security: Software Security Crosses the Threshold

The software security space exceeded the $500 million mark in 2009. Software security expert Gary McGraw examines the sales of security tools providers and services firms to find out how quickly the market is growing, and which parts of the market are driving growth.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: An Interview with Watts Humphrey, Part 24: Mary Shaw Meetings and the Ashton-Tate Story

In this transcript of an oral history, Grady Booch interviews SEI Fellow Watts Humphrey. In Part 24, Humphrey talks about his first days at SEI, his regular "meetings" with Mary Shaw, and why Ashton-Tate failed because they chose to believe their own mythology rather than focus on reality.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology
Article :: Basic Rendering in OpenGL

Objects and scenes that you create with OpenGL consist of smaller, simpler shapes, arranged and combined in various and unique ways. This chapter explores these building blocks of 3D objects, called primitives, and the various ways you can combine them on-screen.

Categories: Computers | InformIT | InformIT Programming | Programming | Technology