Women in Software Architecture
As part of National Women’s History Month, Pittsburgh Urban Media salutes Dr. Mary Shaw, recipient of the National Medal of Technology and Innovation in 2014. Dr. Shaw is a leader in software engineering research whose work on software architecture helped establish it as a recognized discipline, and PUM’s interview with her reveals how she got an early start in a field dominated by men and what she is most proud of today. We are pleased that Dr. Shaw will give a keynote talk at SATURN 2015, and we use this week’s link roundup to highlight other women of the software architecture discipline who will also present at SATURN 2015.
Discovering Alexander’s Properties In Your Code: In this presentation from Smalltalks 2014, Rebecca Wirfs-Brock of Wirfs-Brock Associates explains how Christopher Alexander, the building architect, inspired the first software patterns with his patterns for buildings and architecture and why she thinks his latest work could influence how you code.
Posted in Architecture-Centric Engineering, Architecture-Centric Practices, Link Roundup, SATURN Conference
Tagged agile, agile development, DevOps, SATURN 2015, SATURN Conference, software architecture, software design, software development, software engineering
Billions and Billions Served: Real-Time Distributed Messaging
Dissecting Message Queues: Tyler Treat at Brave New Geek reports an analysis of several different message queues and describes the differences in throughput and message latency between brokered systems (such as NSQ) and brokerless systems (such as ZeroMQ). Graphs of his results may provide information about which type of system is best for different contexts and needs.
NSQ: A Realtime Distributed Messaging Platform: Bitly developers Matt Reiferson and Jehiah Czebotar have designed NSQ to “operate at scale, handling billions of messages per day.” It serves as the backbone of an infrastructure composed of loosely connected services running on many computers. With no single point of failure, it has high availability, reliability, and fault tolerance. For use with any data format, NSQ is easy to configure and deploy.
The Fun of Experimenting with a More Advanced Microservice Application – Building a Slack “Done This” Tracker: Ad Van der Veer at Giant Swarm explains how he used NSQ as one of three components of a method to manage complexity in the architecture layer of a microservice setup. Continue reading
Software Architecture Modeling
Coding Is Not the New Literacy: In a recent blog post, Chris Granger argues, “We build mental models of everything—from how to tie our shoes to the way macro-economic systems work. With these, we make decisions, predictions, and understand our experiences. If we want computers to be able to compute for us, then we have to accurately extract these models from our heads and record them. Writing Python isn’t the fundamental skill we need to teach people. Modeling systems is.” Continue reading
Posted in Architecture-Centric Engineering, Architecture-Centric Practices, Link Roundup, SATURN Conference
Tagged architecture modeling, model-based engineering, SATURN 2015, SATURN Conference, software architecture, software architecture requirements, software design, software development, software engineering
At Phys.org, Dr. Norbert Aschenbrenner recently wrote about the First Series Production Vehicle with Software Control. Siemens and partners are developing information and communications technology for electric cars, and their first production vehicle uses a central electronics and software architecture called RACE. This centralized architecture is intended to reduce development time and make it easier to add new functions later. This SATURN link roundup offers several recent blog posts and a podcast on the topic of centralized architecture.
Selecting the Right Computing Architecture for Your GIS: Dave Peters at Esri Insider offers some advice on how to choose between centralized and distributed architectures.
IoT Drives Business Decisions: In a podcast from the 2014 IoT Summit, Gary Butler, Chairman and CEO of Camgian Microsystems, and Gary Audin, President of Delphi, discussed two approaches to connecting the Internet of Things (IoT), centralized architectures and architectures distributed at the network edge. Continue reading
Clouds at Hyperscale
For media services everywhere, January is the time to write summaries of the previous year and make forecasts about the next one. Lisa Wirthman of Forbes Magazine helps us transition to the new year with How the Top 5 Cloud Trends of 2014 Will Impact the Enterprise in 2015. The fourth of Wirthman’s five trends is about the maturing cloud market in 2014 and the growth of a few cloud providers operating at a global scale in 2015. This SATURN link roundup offers a few recent blog posts on clouds at hyperscale.
A Rare Peek Into The Massive Scale of AWS: Amazon Web Services has revealed the size and scope of its cloud, and Timothy Prickett Morgan at EnterpriseTech reports that it is really, really big. Morgan runs through some of the numbers and discusses the datacenter architecture of the AWS cloud. You can also watch AWS Senior Vice President Andy Jassy’s keynote talk from the AWS Re:Invent 2014 Conference. Continue reading
In December 2014, Andre Infante of CoinReport wrote about a Bitcoin developer’s warning that the rapid development of Bitcoin software may be “introducing consensus bugs.” In Peter Todd Warns of Potential for Accidental Bitcoin Forks, Infante describes how the pace and scale of refactoring may have created a fork in the development. If the fork is not corrected, the network may not be able to achieve consensus about official versions of events, which could wreak havoc for a payment system. This link roundup offers several recent blog posts and a conference presentation on the topic of refactoring.
Sacrificial Architecture: Martin Fowler of ThoughtWorks, and author of Refactoring, explains why he hopes that in a few years you’ll need to throw away the code you are creating today.
Architecture Seams: Jean Barmash at Hello FooBar! expands Michael Feathers’ term seam from the book Working Effectively with Legacy Code from code to architecture, then discusses how to exploit architecture seams in a large-scale refactoring project. Continue reading
In a Huffington Post article titled “What Global Warming, Energy Efficiency and Erlang Have in Common,” Noah Gift says, “Hidden in the discussion of rising energy costs and consumption in datacenters is the selection of software language.” Gift’s emphasis is on how the constraints many languages have limit them to one processor and how the languages used to write software can affect the way that processors use energy. This inefficiency would seem to extend backward from running software to developing software. Nowadays, developers must contend not only with multiple desktop platforms but also with multiple mobile platforms, and do so in multiple languages. This week’s link roundup highlights some tools for simplifying the processes of developing across languages and platforms.
Apache Thrift: The Apache Thrift software framework combines a software library with a code-generation engine, and the compiler generates code that can communicate across programming languages, enabling efficient development of scalable backend services. A white paper discusses motivations and design choices. Continue reading
Minimum Viable Architecture
In his Introduction to Minimum Viable Architecture, Savita Pahuja at InfoQ recalls an older blog by Kavis Technology that described the role of agile methods as serving a balancing function between the minimum viable product and the minimum viable architecture. Below are several recent opinions on this topic and a project that is putting the theory into practice.
Less is More with Minimalist Architecture: Ruth Malan and Dana Bredemeyer wrote in the October 2002 issue of IT Professional that you should “sort out your highest-priority architectural requirements, and then do the least you possibly can to achieve them!”
Good Enough Is Good Enough: Minimum Viable Architecture in a Startup: In a presentation given at the San Francisco Startup CTO Summit, Randy Shoup encourages startups to ignore the advice he’s been giving for a decade on building large-scale systems. Continue reading
The Watson Explorer
The Watson Developer Cloud brings Watson to developers and the cognitive cloud to Internet applications. Watson offers a variety of services for building cognitive apps, including language identification and translation, interpreting meaning based on context, and communicating with people in their own styles. Here are some reviews and links to APIs and sample code.
IBM’s Watson Supercomputer Gives Developers Access to Cognitive Cloud: George Lawton at TechTarget provides an early review of the Watson Explorer’s unified view of enterprise information. The cloud allows the technology to be accessible for a greater variety of applications and improves the scale and time to market of those applications.
IBM Debuts First Watson Machine-Learning APIs: Serdar Yegulalp at Java World previews the eight services that developers can access for building cognitive apps based on Watson’s machine intelligence service. He focuses on visualization rendering as the service least limited by data training. Continue reading
Posted in Architecture-Centric Engineering, Architecture-Centric Practices, Cloud Computing, Link Roundup
Tagged cloud computing, SATURN 2014, SATURN Conference, SOA, software architecture, software design, software development, software engineering
Deep Neural Networks
“At some fundamental level, no one understands machine learning.” —Christopher Olah
“Neural networks are one of the most beautiful programming paradigms ever invented.” —Michael Nielsen
This week, we round up a few examples on deep neural networks (DNNs), a subfield of machine learning that deals with developing training algorithms and uses raw video and speech data as input.
Replicating Deep Mind: Kristjan Korjus is working on a project to reproduce the results of Playing Atari with Deep Reinforcement Learning, by Volodymyr Mnih and colleagues of DeepMind Technologies. Mnih et al. presented a deep learning model that used reinforcement learning to learn control policies from sensory input and outperformed human experts on three of seven Atari games.
Deep Learning, NLP, and Representations: Christopher Olah at Colah’s Blog looks at deep learning from a perspective on natural-language processing and discusses how different DNNs designed for different language-processing tasks have learned the same things. Continue reading