Category Archives: Design

[Video 442] Panel discussion: Rustlang , Golang, C++, Dlang

Systems programming” is a category of programming that requires high speed, demanded by such applications as operating systems, network servers, and databases. For many years, and even today, C is the go-to programming language for such work — but over the years, a growing number of other languages have been joining this space, most notably C++, and more recently D, Go, and Rust. What do each of these languages have to offer, and what do the languages’ designers prioritize in their designs? This panel brings together Bjarne Stroustrup (C++),  Rob Pike (Go), Andrei Alexandrescu (D), and Niko Matsakis (Rust) to discuss what they think about programming languages, language design, community, and future directions.

[Video 427] Chris Eppstein: The expanding boundaries of CSS

Cascading Stylesheets (CSS) is the way in which we describe the design and layout of Web pages. But is CSS a programming language, or something less than one? And have those boundaries changed over time? And what does this mean for the people creating and modifying stylesheets; what skills do they need to have? In this talk, Chris Eppstein describes what CSS has been, is, and will be, and how this will affect front-end design.

[Video 421] Robert Brunner: Design is a Process, Not an Event

Certain things — objects, printed pages, and Web sites — are clearly designed well. And others…. well, not so much. What’s the difference between good and bad design? What leads an organization to create products that are beautiful, functional, and demonstrate an understanding of the people who will be using it? In this talk, Robert Brunner describes what goes into good design. In particular, he points to the fact that a good design rarely (if ever) emerges ready for prime time. Rather, it takes time, discussion, considerations, and testing to ensure that a design is appropriate. Given that our lives depend on the designs of other people, and that we as software developers are responsible for designing products (even if virtual) that others will consume, it’s important for us to think about design and consider how we can improve our approach to it.

[Video 414] Lisa Maurer: Learner at the Center — LX Design and Research

Here’s something that you’ve probably heard before: If we introduce technology into classrooms, then students will learn more, better, and more effectively. But the reality is different; just throwing technology at the problem doesn’t help. Which raises the question: What kinds of designs do make for real educational differences? In which classes, and in which ways, can we really use technology to improve learning? In this talk, Lisa Maurer describes work that she and Pearson are doing to research and improve UI/UX design to improve learning outcomes.

[Video 404] Andrew Campbell: Bootstrapping Applications and Dashboards with IPython Widgets

IPython notebook (aka Jupyter) is a well known, Python-based system for working with and collaborating on data science. But sometimes you don’t want to have people work on a data-science project, so much as be able to review certain aspects of that data. In other words, you want to create a small application that lets people review and play with limited aspects of the data. As Andrew Campbell explains in this talk, it’s now possible to create and use widgets from IPython, to create useful and interesting applications — streamlining and speeding up the process even more than before.

[Video 400] Colt McAnlis: The Hard Things about the Internet of Things

The “Internet of Things” is the modern embodiment of an idea that has been around for a while — that not only can people be interconnected on the network, but that our appliances, belongings, buildings, and even clothing can be interconnected on the network. The IoT is attracting a great deal of attention, but it’s also pointing to issues with the current infrastructure of the Internet, and with applications that will need to be solved. In this talk, Colt McAnlis points to the problems with implementing the Internet of Things, and how we might need to think about and solve these problems in order to allow our refrigerator, bathrobe, and skateboard to speak with one another.

[Video 393] Glen Maddern: The Rise of Modular Style

Every modern programming language has a facility for creating modules, or external libraries. Modules allow you to break a program apart, making it easier for multiple people to collaborate, and for programmers to concentrate on smaller, more easily solved problems abstracting away larger and other issues. Even JavaScript, which has famously failed to include modules for many years, now has such a facility. But CSS, which allows us to describe the design of Web sites, is not modular, which means that definitions are repeated, spread across files, and are generally less organized and abstract than they could be. In this talk, Glen Maddern describes work he has done toward creating CSS modules, including how they work and can benefit developers and designers.

[Video 381] Alexandra Leisse: Developers, start designing!

Developers often complain that designers don’t understand software — and that their lack of understanding leads to all sorts of problems. If only designers would start to program, they would finally understand what’s involved, and it would be so much easier to speak and work with them. In this talk, Alexandra Leisse turns the tables, saying that it would also behoove developers to learn to design. If only developers would learn, understand, and internalize design principles, it would be easier to work with them — and most importantly, the users of the software would benefit greatly. She dismisses several myths about design, such as that designers are born, not made, and offers numerous suggestions for how developers can increase their understanding of design, and their sensitivity to the user experience. If you’re a software designer who is either dismissive of design or in awe of it, this talk should provoke you into learning more about it, for everyone’s benefit.

[Video 364] Louisa Barrett: Design Thinking for Rubyists

Developers often talk about the people using our code… but it’s not always in the most positive way. Successful teams think about their users, and the ways in which our users (and customers) will use the products we’re creating. . In this talk, Louisa Barrett talks about how we can and should think creatively, like a designer — not necessarily thinking as an artist, but as someone who wants to  help our customers to achieve their needs, and use our products in the most effective ways.

[Video 338] Mike Monteiro: 13 Ways Designers Screw Up Client Presentations

As a technical or creative professional, you’re likely talking to clients on a regular basis. The way in which you present and speak can make a big difference — often, the difference between getting work, and getting paid, and not.  In this talk, designer Mike Monteiro tells us why it’s important to have good presentation skills, why we shouldn’t be embarrassed to learn how to sell, and what we can do to improve our presentations — so that they will sell our work effectively.