Social network analysis studies relationships rather than only individuals. That small shift in perspective — from nodes to edges, from people to the structure between them — can reveal things that individual-level data cannot. Read more
Google announced the Pixel and Pixel XL on October 4, 2016, with the Pixel (5-inch 1080p AMOLED) starting at $649 and the Pixel XL (5.5-inch 1440p AMOLED) starting at $769. Both ran on the Snapdragon 821 with 4GB RAM and a 12.3MP rear camera — the same sensor spec as Sony’s Xperia phones, since Sony manufactured the sensor. HTC manufactured the hardware under contract with Google owning the design. Unlike Nexus devices, Google retained the software experience entirely: no HTC UI overlay, no carrier bloatware from US carriers, and a commitment to three years of OS updates and security patches directly from Google. Read more
In April 2016, Facebook opened the Messenger Platform to developers, allowing companies to build bots that could receive and send messages through Messenger’s API. In the weeks that followed, thousands of bots appeared — bots to order pizza, check weather, browse CNN headlines, get customer support, and more. Microsoft launched the Bot Framework in March 2016 with connectors for Skype, Slack, and other platforms. Amazon Alexa, which had launched with the Echo in November 2014, was drawing attention from developers building voice-driven skills for the device. Read more
Apple announced the iPhone 7 and 7 Plus on September 7, 2016, with both models conspicuously missing the 3.5mm headphone jack that had been on every iPhone since the original in 2007. Apple marketing chief Phil Schiller justified the removal on stage with the word “courage,” which became a widely mocked summary of the decision. In the box: a Lightning-to-3.5mm adapter (so existing wired headphones still worked with the included adapter plugged in, though simultaneously charging was then impossible) and EarPods with a Lightning connector. Separately, Apple introduced AirPods at $159 — its own wireless earbuds, not shipping until December 2016. Read more
Choosing a university department means thinking about both the present and the future. In 2016, Computer Engineering is one of the fields where those two perspectives align better than in most others. Read more
Intel officially announced Kaby Lake (7th generation Intel Core) at Intel Developer Forum (IDF) in San Francisco in August 2016, with mobile SKUs available in September 2016 and desktop processors launching in January 2017. The Kaby Lake announcement formalized Intel’s departure from the two-decade “tick-tock” strategy — alternating between process node shrinks (“tick”) and new microarchitecture designs (“tock”) every year — replacing it with a three-phase “Process-Architecture-Optimization” (PAO) model. Skylake (6th gen, 2015) was the architecture phase on 14nm; Kaby Lake was the optimization phase, also on 14nm (labeled “14nm+” internally, with improved fin geometry and higher drive current enabling higher clock frequencies at similar voltage). IPC (instructions per clock) was essentially unchanged from Skylake — the same Skylake microarchitecture, core design, L1/L2/L3 cache hierarchy, and ring bus topology — but clock speed improvements were meaningful: the desktop Core i7-7700K reached 4.2 GHz base / 4.5 GHz single-core turbo versus the Core i7-6700K’s 4.0 GHz / 4.2 GHz on the same 14nm process. The 14nm+ improvements that enabled higher clocks also reduced leakage current, contributing to slightly better power efficiency in mobile SKUs. Read more
Becoming a good software developer is not only about learning more programming languages. Languages matter. Tools matter. Frameworks matter. But after spending enough time around software, I think the deeper skills are more stable and harder to replace. Read more
Pokémon Go launched on July 6, 2016 in the United States, Australia, and New Zealand, developed by Niantic (which had spun out from Google’s X division in 2015) in partnership with The Pokémon Company and Nintendo. Within two weeks it had expanded to Europe, Canada, and most major markets. The game used GPS location data and real-world map data to place 151 original-generation Pokémon at geographic coordinates in the physical world, requiring players to walk to those locations to encounter and catch them. PokéStops (where players collected in-game items) and Gyms (where players battled) were placed at real-world landmarks — museums, public art installations, parks, notable architecture, historic sites — derived from Niantic’s earlier game Ingress (2012), which had built a global database of “portals” at user-submitted real-world locations. The AR mode that became the game’s visual signature overlaid a rendered Pokémon on the smartphone’s live camera feed using the device’s gyroscope and accelerometer to track orientation, placing the creature in a fixed world-space position that the camera revealed as the player moved the phone. Most players turned off AR mode for the actual catching interaction because of battery drain and targeting difficulty; the GPS-driven exploration of the physical world was the game’s actual core mechanic. Read more
If I were building a gaming PC on July 1, 2016, this is the machine I would actually want. I am not simply choosing the most expensive part in every category. The priority is gaming performance, then reliability, cooling and enough headroom to keep the system useful for years. Read more
Docker announced built-in Swarm mode at DockerCon Seattle (June 19–21, 2016), integrating cluster orchestration directly into Docker Engine 1.12 rather than requiring the separate Docker Swarm standalone tool. The previous Docker Swarm (released November 2014) required a separate daemon, an external key-value store (etcd, Consul, or ZooKeeper) for cluster state, and manual TLS certificate management — significant operational complexity for teams that wanted basic multi-host container deployment. The new Swarm mode embedded all of this into the standard docker swarm init and docker service create commands. Read more
Deployment problems are often environment problems. A program works correctly on a developer’s machine, then fails on a staging server because a library is a different version, a configuration file has a different path, or a system dependency is missing. Debugging these discrepancies is time-consuming and tedious because the mismatch can be anywhere in a large stack. Read more
Google announced the Tensor Processing Unit (TPU) at Google I/O on May 18, 2016, with Jeff Dean revealing that TPUs had already been deployed in Google’s data centers since 2013 — three years of silent production use. The TPU v1 was an inference-only ASIC built on a 28nm process, consuming 40 watts (roughly a quarter of an equivalent GPU), and connected to a host CPU via PCIe. It targeted deployed inference rather than training, focusing entirely on the matrix operations that dominate neural network forward passes during serving. Read more
Vim is one of those tools that looks unfriendly before it starts to make sense. The first time someone opens it, even quitting the editor requires knowledge that is not obvious — :q to quit, :wq to save and quit, or :q! to quit without saving. That has become a standing joke among programmers, but it also explains something important about the editor. Vim does not try to behave like a normal graphical text editor. It is a modal editor with a grammar. Read more
Computer vision has always fascinated me because the task sounds simple when we describe it in human language: “Find the object in this image.” “Recognize this face.” “Tell me what is happening in this picture.” Humans do these things before they can write. For computers, the same tasks have been among the hardest problems in artificial intelligence for decades. Read more
Microsoft announced the Windows Subsystem for Linux (WSL) at BUILD 2016 in San Francisco on March 30, 2016, and released the first public preview on April 6, 2016 as part of Windows 10 Insider Build 14316. The feature was developed in partnership with Canonical — Ubuntu’s creator — and debuted as “Bash on Ubuntu on Windows,” reflecting that the initial user-space environment was Ubuntu 14.04 LTS. The announcement was notable in context: Microsoft had declared “Linux is a cancer” through then-CEO Steve Ballmer in 2001, and the company’s relationship with open-source software had been defined by opposition and IP disputes through much of the 2000s. Under CEO Satya Nadella (appointed February 2014) and developer tools head Scott Guthrie, Microsoft’s position had reversed: the company had acquired developer tooling companies, open-sourced .NET Core, published Visual Studio Code, and introduced extensive Azure Linux support. WSL was the direct expression of that shift for developer tooling on the desktop. The architecture of WSL 1 was engineered by a small team within Microsoft’s kernel group: it used “pico processes” — a lightweight process model introduced in Windows 10 — combined with an NT kernel driver (lxss.sys and lxcore.sys) that intercepted Linux system calls (syscalls) made by Linux ELF binaries and translated them into equivalent NT kernel operations. This allowed unmodified Linux binaries compiled for x86-64 Ubuntu to execute within Windows without a virtual machine or kernel swap: bash, ssh, python, gcc, apt-get, grep, awk, sed, and most standard Unix command-line tools ran as native processes in the Windows process model. Read more
The Raspberry Pi 3 launched last month, and the specifications represent a meaningful jump from the Pi 2 — but the change I find most interesting is not the processor. Read more
AlphaGo, developed by DeepMind (acquired by Google in January 2014), defeated Lee Sedol — a 9-dan professional Go player widely considered the best active player of the 2010s — in a five-game match held March 9–15, 2016 in Seoul, South Korea, by a score of 4–1. The result shocked the professional Go community: Go’s enormous complexity (roughly 10^170 possible board positions versus chess’s estimated 10^44) had led experts to estimate that computers would not reach top-human level for another decade. AlphaGo had already defeated European Go champion Fan Hui 5–0 in October 2015, but Fan Hui was ranked approximately 700th in the world at the time; Lee Sedol was a fundamentally different caliber of opponent. The match was broadcast live on YouTube and watched by an estimated 200 million viewers in China and internationally. AlphaGo’s architecture combined two deep convolutional neural networks: a policy network (trained first by supervised learning on approximately 30 million positions from the KGS Go server, then refined by reinforcement learning through self-play) that predicted the probability distribution over next moves, and a value network (trained by self-play) that estimated the probability of winning from a given board position. These networks guided a Monte Carlo Tree Search that explored the game tree selectively, simulating future positions along the most promising branches rather than searching exhaustively. Read more
Google announced the Accelerated Mobile Pages (AMP) project on October 7, 2015 and began rolling out AMP results in Google Search in February 2016. AMP was conceived as a response to the mobile web’s performance crisis: news and publishing sites serving rich HTML pages with large JavaScript bundles, advertisement scripts, and tracking pixels were taking 8-22 seconds to load on 3G connections — slow enough that users frequently abandoned pages before they finished loading, and that competing closed platforms (Facebook Instant Articles, announced May 2015; Apple News, announced June 2015) offered significantly faster reading experiences by serving content inside native apps rather than the mobile browser. AMP’s technical approach was a restricted HTML subset — AMP HTML — that banned arbitrary JavaScript entirely (replacing it with an AMP component library), required explicit size declarations on all external resources (images, iframes, ads) to prevent layout shifts as content loaded, and mandated asynchronous resource loading to ensure the page’s content was never blocked by an external script or stylesheet. AMP JS was the library that managed asynchronous resource loading, extension components (<amp-img>, <amp-video>, <amp-ad>, <amp-analytics>), and rendering optimization. The AMP specification was open-sourced on GitHub and positioned as a community project rather than a Google-proprietary format, though Google remained the primary contributor. Read more