About
246
Publications
129,079
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
24,011
Citations
Introduction
Skills and Expertise
Current institution
Additional affiliations
July 1994 - present
Publications
Publications (246)
Increased sensing and data collection in electric power systems from utility to minigrid to individual household scale are resulting in an explosion of data collection about users and providers of electricity services. In the push to expand energy access for poor communities, the collection, use, and curation of these data have historically taken a...
The increased penetration of uncertain and variable renewable energy presents various resource and operational electric grid challenges1. Micro-level (household and small commercial) demand-side grid flexibility could be a cost-effective strategy to integrate high penetrations of wind and solar energy, but literature and field deployments exploring...
We present the design and experimental validation of a scalable dc microgrid for rural electrification in emerging regions. A salient property of the dc microgrid architecture is the distributed control of the grid voltage, which enables both instantaneous power sharing and a metric for determining the available grid power. A droop-voltage power-sh...
This work in progress explores a database designed to enable data sharing on custom hardware data collection devices and prototypes. Projects and systems are frequently based on the Arduino framework, examples include ODK's FoneAstra [3], the Open Energy Monitor [7], and the Grove system of sensors [5]. The Arduino platform is targeted because of i...
In this paper, we present preliminary site survey findings for a community cellular network project in the Philippines. We document our observations from our visits to unserved communities, notably on how they deal and adapt to the lack of cellular access. We also identify challenges in deploying the technology in the Philippine setting.
The increased penetration of uncertain and variable renewable energy presents various resource and operational electric grid challenges. Micro-level (household and small commercial) demand-side grid flexibility could be a cost-effective strategy to integrate high penetrations of wind and solar energy, but literature and field deployments exploring...
Though Widespread Interest in software containers is a relatively recent phenomenon, at Google we have been managing Linux containers at scale for more than 10 years and built three different containermanagement systems in that time. Each system is heavily influenced by its predecessors, even though they were developed for different reasons. This a...
Lessons learned from three container-management systems over a decade
In Sub-Saharan Africa, 600 million people live without electricity. Despite ambitions of governments and donors to invest in rural electrification, decisions about how to extend electricity access are being made in the absence of rigorous evidence. In this paper, we present high-resolution spatial data on electrification rates in rural Kenya in ord...
Global poverty reduction efforts value monitoring and evaluation, but often struggle to translate lessons learned from one intervention into practical application in another intervention. Commonly, data is not easily or often shared between interventions and summary data collected as part of an impact evaluation is often not available until after t...
We are in the midst of an important shift to higher levels of abstraction than virtual machines. Kubernetes aims to simplify the deployment and management of services, including the construction of applications as sets of interacting but independent services. We explain some of the key concepts in Kubernetes and show how they work together to simpl...
The smartphone has been touted as the technology of the 21st century. Global smartphone adoption rates are growing rapidly, up to over 24% in 2014, with usage increasing 25% in the last year. However, rural areas are often the last places to benefit from these technological trends. Utilizing cellular network registration logs, we explore the adopti...
We present the design and experimental validation of a scalable dc microgrid architecture for rural electrification. The microgrid design has been driven by field data collected from Kenya and India. The salient features of the microgrid are distributed voltage control and distributed storage, which enable developed world grid cost parity. In this...
An exemplary methodology, procedure, system, method and computer-accessible medium can be provided for authenticating a portion of a non-digital medium for a document, by receiving at least one image of at least one first marked portion of the non-digital medium for the document, extracting at least one first speckle pattern of the at least one fir...
We present nesC, a programming language for networked embedded systems that represent a new design space for application developers. An example of a networked embedded system is a sensor network, which consists of (potentially) thousands of tiny, lowpower "motes," each of which execute concurrent, reactive programs that must operate with severe mem...
The GSM network is the largest network on Earth, providing vital communications service to billions of people. Yet hundreds of millions of people live outside the coverage of existing cellular providers. Recently, researchers have demonstrated a new model of cellular connectivity, community cellular, that has the potential to bring coverage to extr...
When engaged in ICTD research, it is often simpler to focus efforts on a single specific technology, whether that entails computers for telecenters, mobile phones for data collection, or text messages for public health education. In practice, however, people and organizations use a variety of technologies together, smoothly interweaving them as the...
Over five billion people are active cellular subscribers, spending over a trillion dollars a year on communications. Despite this, hundreds of millions of people are still not connected.
Implicit in these networks is a top-down design, with large nation-scale telecommunication firms deciding when and where coverage will be available. This is enforc...
Lack of access to cellular service often goes hand-in-hand with lack of access to power. For example, the GSM Association estimates that 95% of people living without cellular access in East Africa also lack access to grid power. This situation forces cellular network operators to build out power infrastructure along with their network infrastructur...
Roughly 1.3 billion people in developing countries still live without access to reliable electricity. As expanding access using current technologies will accelerate global climate change, there is a strong need for novel solutions that displace fossil fuels and are financially viable for developing regions. A novel DC microgrid solution that is gea...
The cellular system is the world's largest network, providing service to over five billion people. Operators of these networks face fundamental trade-offs in coverage, capacity and operating power. These trade-offs, when coupled with the reality of infrastructure in poorer areas, mean that upwards of a billion people lack access to this fundamental...
Software-defined networks (SDNs) have simplified management of complex data center and enterprise networks. We argue that SDNs can play a similar role in rural wireless networks, especially those in developing regions. Operating a rural network in the developing world means coping with unpredictability, low profit margins, and resource constraints;...
The Software-Defined Networking (SDN) paradigm is typically applied to data center and enterprise networks. We argue that SDN is also promising for rural wireless networks,
especially those in developing regions. Operating a rural network in the developing world means coping with unpredictability, low profit margins, and resource constraints; the i...
The natural randomness of microscopic paper texture is used to extract a unique signature for a region of paper.
The CAP theorem asserts that any networked shared-data system can have only two of three desirable properties. However, by explicitly handling partitions, designers can optimize consistency and availability, thereby achieving some trade-off of all three. The featured Web extra is a podcast from Software Engineering Radio, in which the host intervie...
We believe datacenters can benefit from more focus on per-node efficiency, performance, and predictability, versus the more common focus so far on scalability to a large number of nodes. Improving per-node efficiency decreases costs and fault recovery because fewer nodes are required for the same amount of work. We believe that the use of complex,...
Paper forgery is among the leading causes of corruption in many developing regions. In this paper, we introduce PaperSpeckle, a robust system that leverages the natural randomness property present in paper to generate a fingerprint for any piece of paper. Our goal in developing PaperSpeckle is to build a low-cost paper based authentication mechanis...
Cloud computing opens new possibilities for computational biologists. Given the pay-as-you-go model and the commodity hardware base, new tools for extensive parallelism are needed to make experimentation in the cloud an attractive option. In this paper, we present EasyProt, a parallel message-passing architecture designed for developing experimenta...
Technology users in the developing world face a varied and complex set of computer security concerns. These challenges are deeply tied to a range of contextual factors including poor infrastructure, non-traditional usage patterns, and different attitudes towards security, which make simply importing security solutions from industrialized nations in...
Computer assisted learning (or E-learning) is used broadly in the developed world. However, comparable technologies are only recently beginning to be used in rural and developing regions. In these environments, obstacles to the successful deployment of edu-cational software include a lack of basic infrastructure, low student attendance, necessary s...
Many children, especially in the developing world, must share a computer at school. Often, more advanced or aggressive students dominate, leaving others frustrated and dis-engaged. One promising approach is to provide each student with their own input device, usually a mouse, while sharing a common computer and display. Previous multiple mouse shar...
Short Messaging Service (SMS) based mobile information services have become increasingly common around the world, especially in emerging regions among users with low-end mobile devices. This paper presents the design and implementation of SMSFind, an SMS-based search system that enables users to obtain extremely concise (one SMS) message of 140 byt...
At PODC 2000, the CAP theorem received its first broad audience. Surprisingly for an impossibility result, one important effect has been to free designers to explore a wider range of distributed systems. Designers of wide-area systems, in which network partitions are considered inevitable, know they cannot have both availability and consistency, an...
WiFi has been promoted as an affordable technology that can provide broadband Internet connectivity to poor and sparsely populated regions. A growing number of deploy-ments, some of substantial scale, are making use of WiFi to extend connectivity into rural areas. However, the vast majority of the 3.5 billion people living in rural villages [1] are...
Cellular communications, including handsets and base stations, have become ubiquitous technologies throughout the developing and developed world. Roughly three billion users spend large portions of their income on these basic communications [1]. However, the remaining half of the world currently has limited access, in large part due to lack of netw...
The emergence of many-core architectures necessitates a redesign of operating systems, including the interfaces they expose to an application. We propose a new operat-ing system, called ROS, designed specifically to address many limitations of current OSs as we move into the many-core era. Our goals are (1) to provide better sup-port for parallel a...
(Keynote Talk) The historic focus of development has rightfully been on macroeconomics and good governance, but technology has an increasingly large role to play. In this talk, I review several novel technologies that we have deployed in India and Africa, and discuss the challenges and opportunities of this new subfield of EECS research. Working wi...
The historic focus of development has rightfully been on macroeconomics and good governance, but technology has an increasingly large role to play. In this talk, I review several novel technologies that we have deployed in India and Africa, and discuss the challenges and opportunities of this new subfield of EECS research. Working with the Aravind...
Although existing write-ahead logging algorithms scale to conventional database workloads, their communication and synchronization overheads limit their usefulness for modern applications and distributed systems. We revisit write-ahead logging with an eye toward finer-grained concurrency and an increased range of workloads, then remove two core ass...
Information and communication technology for development (ICTD) is not new -- numerous important though relatively low-profile projects have been building the foundations of ICTD for many years. What's new are its name and, more important, the increased recognition the field has lately been receiving and its potential for exerting greater influence...
A group of database researchers, architects, users, and pundits met in May 2008 at the Claremont Resort in Berkeley, CA, to discuss the state of database research and its effects on practice. This was the seventh meeting of this sort over the past 20 years and was distinguished by a broad consensus that the database community is at a turning point...
Abstract—Traditional Single Display Groupware (SDG) solu- tions have been used to create software for developing regions. SDG allows for greater utilization of the limited infrastructure available in such areas. This technology is particularly appropri- ate in classrooms where groups of children often use educational software on a single computer....
The personal computer and the Internet have had a large impact on computing research. The personal computer was built originally to run applications such as office tools (document preparation systems, spreadsheets, inventories, etc.). The combination of the personal computer and the Internet enabled email. The web browser, invented at the Universit...
Sensors integrated into mobile phones have the advantage of mobility, co-location with peo- ple, pre-built network and power infrastructure, and potentially, ubiquity. These characteristics, however, also present significant challenges. Mobility mea ns non-uniform sampling in space, and also constrains the size and weight of the sensors. In thi s p...
The throughput of a wireless network is often limited by interference caused by multiple concurrently active nodes. The conventional approach of using a "one-transmission-at- a-time" MAC protocol to combat interference leads to a sig- nificant loss of achievable throughput compared to schemes such as interference cancellation that keep all transmit...
We consider the problem of efficient MAC design for long-distance WiFi-based mesh networks. In such networks it is common to see long propagation delays, the use of directional antennas, and the presence of inter-link interference. Prior work has shown that these characteristics make traditional CSMA-based MACs a poor choice for long-distance mesh...
Rose is a database storage engine for high-throughput replication. It targets seek-limited, write-intensive transaction processing workloads that perform near real-time decision support and analytical processing queries. Rose uses log structured merge (LSM) trees to create full database replicas using purely sequential I/O, allowing it to provide o...
Supply chain systems in rural developing regions are ex-tremely fragile and are vulnerable to a wide range of se-curity threats including theft, fraud and counterfeit goods. In this paper, we propose the design of a secure, low cost supply chain management system that leverages cheap cell-phones and a low-cost paper watermarking system that can aut...
By attaching sensors to GPS-enabled cell phones, we can gather the raw data necessary to begin understand how urban air pollution impacts both individuals and communities. In this paper we introduce a hardware and software platform for exploring algorithms and data gathered from pollution sensors integrated into cell phones, and discuss our main re...
Rose is a database storage engine for high-throughput replication. It targets seek-limited, write-intensive transaction processing workloads that perform near real-time decision support and analytical processing queries. Rose uses log structured merge (LSM) trees to create full database replicas using purely sequential I/O, allowing it to provide o...
Abstract The wireless sensor network community,approached,net- working abstractions as an open question, allowing answers to emerge with time and experience. The Trickle algorithm has become,a basic mechanism,used in numerous,protocols and systems. Trickle brings nodes to eventual consistency quickly and efficiently while remaining remarkably,robus...
A primary concern for projects supported by aid programs is sustainability. Although there is a growing belief that information and communication technologies (ICT) can significantly impact development, in practice creating sustainable ICT projects is extremely difficult. A typical project consists of a pilot stage that aims to demonstrate the basi...
In TDMA-based point-to-multipoint rural wireless deploy-ments, co-located base station radios and sector antennas are used to increase base station capacity. To achieve max-imum capacity with limited availability of non-overlapping wireless channels, we need to operate as many radios as pos-sible from different sectors on the same channel. However,...
Unintended or unmediated data sharing is a frequent cause of insidious bugs in multithreaded programs. We present a tool called SharC (short for Sharing Checker ) that allows a user to write lightweight annotations to declare how they believe objects are being shared between threads in their program. SharC uses a combination of static and dynamic a...
Wikis have proven to be a valuable tool for collaboration and con- tent generation on the web. Simple semantics and ease-of-use make wiki systems well suited for meeting many emerging region needs in the areas of education, collaboration and local content genera- tion. Despite their usefulness, current wiki software does not work well in the networ...
Very few computer systems that have been deployed in rural developing regions manage to stay operationally sustainable over the long term; most systems do not go beyond the pilot phase. The reasons for this failure vary: components fail often due to poor power quality, fault diagnosis is hard to achieve in the absence of local ex- pertise and relia...
Unintended or unmediated data sharing is a frequent cause of in- sidious bugs in multithreaded programs. We present a tool called SharC (short for Sharing Checker) that allows a user to write lightweight annotations to declare how they believe objects are be- ing shared between threads in their program. SharC uses a com- bination of static and dyna...
TierStore is a distributedfilesystem that simplifies the de- velopment and deployment of applications in challenged network environments, such as those in developing re- gions. For effective support of bandwidth-constrained and intermittent connectivity, it uses the Delay Toler- ant Networking store-and-forward network overlay and a publish/subscri...
Intel® Mash Maker is an interactive tool that tracks what the user is doing and tries to infer what information and visualizations they might find useful for their current task. Mash Maker uses structured data from existing web sites to create new "mashed up" interfaces combining information from many sources.
The Intel® Mash Maker client is curre...
Although mobile phone usage has proliferated in urban areas of developing countries, many rural or poor users remain completely unconnected, particularly in Africa. In this paper, we advocate an alternative voice message mostly mobile phone architecture to reach the "next billion" users. Using analyses of mobile phone usage and rural power data, we...
We present HeapSafe, a tool that uses reference counting to dynamically verify the soundness of manual memory man- agement of C programs. HeapSafe relies on a simple ex- tension to the usual malloc/free memory management API: delayed free scopes during which otherwise dangling refer- ences can exist. Porting programs for use with HeapSafe typ- ical...
The historic focus of development has rightfully been on macroeconomics and good governance, but technology has an increasingly large role to play. In this talk, I review several novel technologies that we have deployed in India and Africa, and discuss the challenges and opportunities of this new subfield of EECS research. Working with the Aravind...
WiFi-based point-to-multipoint systems are a cost-effective solution for providing high-bandwidth connectivity to re- mote rural regions. However, current point-to-multipoint de- ployments are hampered by several challenges. Their capac- ity to support a large number of clients simply by increas- ing the number of radios at the base station is limi...
The last three years have seen a lot of work in making WiFi-enabled Long Distance (WiLD) networking a reality in rural areas. Generally these networks are managed by non-local users who cannot guarantee long term support beyond a pi-lot. For long term operational sustainability, it is essential that maintenance duties be transferred to local admini...
Despite the increasing number of WiFi-based Long Distance (WiLD) network deployments, there is a lack of understanding of how WiLD networks perform in practice. In this paper, we perform a systematic study to investigate the commonly cited sources of packet loss induced by the wireless channel and by the 802.11 MAC protocol. The channel induced los...
It is time for us to focus on sound analysesfor our crit- ical systems software—that is, we must focus on analy- ses that ensure the absence of defects of particular known types, rather than best-effort bug-finding tools. This pa- per presents three sample analyses for Linux that are aimed at eliminating bugs relating to type safety, deallo- cation...
WiFi-based Long Distance (WiLD) networks with links as long as 50-100 km have the potential to provide con- nectivity at substantially lower costs than traditional ap- proaches. However, real-world deployments of such net- works yield very poor end-to-end performance.First, the current 802.11 MAC protocol has fundamental short- comings when used ov...
This article evaluates CDMA450 as a potential solution for rural data and voice connectivity. We begin by analyzing the main strengths of CDMA450, but also some of the potential limitations for rural coverage, from both a technical and an economic standpoint. We argue that CDMA450 is a promising technology, competitive in both capacity-centric urba...
We present SafeDrive, a system for detecting and recovering from type safety violations in software extensions. SafeDrive has low overhead and requires minimal changes to existing source code. To achieve this result, SafeDrive uses a novel type system that provides fine-grained isolation for existing extensions written in C. In addition, SafeDrive...
The movement to multi-core processors increases the need for simpler , more robust parallel programming models. Atomic sections have been widely recognized for their ease of use. They are simpler and safer to use than manual locking and they increase modu-larity. But existing proposals have several practical problems, including high overhead and po...
The Akshaya project in the rural Malappuram district of Kerala, India is home to the first and largest district-wide e-literacy project in India, and one of the largest known Internet Protocol-based networks. Through a network of 600 kiosks, the project has been designed to reach computer literacy into over 600,000 households, and bring 3.6 million...
This paper presents a study of the Flexible Power Scheduling protocol and evaluates its use for real-world sensor network
applications and their platforms. FPS uses dynamically created schedules to reserve network flows in sensor networks allowing
nodes to turn off their radio during idle times. We show that network power scheduling has high end-to...
The movement to multi-core processors increases the need for simpler,
more robust parallel programming models. Atomic sections
have been widely recognized for their ease of use. They are simpler
and safer to use than manual locking and they increase modularity.
But existing proposals have several practical problems, including
high overhead and poor...
Computer-aided learning is fast gaining traction in developing regions as a means to augment classroom instruction. Reasons for using computer-aided learning range from supplementing teacher shortages to starting underprivileged children off in technology, and funding for such initiatives range from state education funds to international agencies a...
In this paper we present an analysis of HTTP trac cap- tured from Internet caf es and kiosks from two dieren t de- veloping countries { Cambodia and Ghana. This paper has two main contributions. The rst contribution is a anal- ysis of the characteristics of the web trace, including the distribution and classication of the web objects requested by t...
The work we've done in the world's developing regions has been immensely rewarding and helped make us all strong advocates for technology. The first reward is simply the experience of these countries, their surprising happiness, and the technology insights that come from being there. The deeper reward is of course actually helping people by creatin...
In this paper we describe PRELUDE, a programming language and accompanying system support for writing portable MIMD parallel programs. PRELUDE supports a methodology for designing and orga. nizing parallel programs that makes them easier to tune for particular architectures and to port to new architectures. It builds on earlier work on Emerald, Amb...
An increasing range of applications requires robust support for atomic, durable and concurrent transactions. Databases provide the default solution, but force appli- cations to interact via SQL and to forfeit control over data layout and access mechanisms. We argue there is a gap between DBMSs and file systems that limits design- ers of data-orient...
We present Adaptive Multi-Policy disk caching (AMP), which uses multiple caching policies within one application, and adapts both which policies to use and their relative fraction of the cache, based on program-context specific information. AMP differentiate disk requests based on the program contexts, or code locations, that issue them. Compared t...
We believe that wireless infrastructure can have an unprecedented positive impact on the eco- nomic and social development of the rural areas of developing regions. We look at four aspects of rural connectivity that are poorly understood and that should affect both proposed solutions and policy: the limitations of cellular, the need to focus on non...
The C language is among the most widely used in the world, particularly for critical infrastructure software. C programs depend upon macros processed using the C preprocessor, but these macros are difficult to analyze and are often error-prone[4]. Existing tools that analyze and transform C source code have rudimentary support for the preprocessor,...
The Akshaya project in the rural Malappuram district of Kerala, India is home to the first and largest district-wide e-literacy project in India, and one of the largest known Internet Protocol-based networks. Through a network of 600 kiosks, the project has been designed to reach computer literacy into over 600,000 households, and bring 3.6 million...
The C language is among the most widely used in the world, particularly for critical infrastructure software. C programs depend upon macros processed using the C preprocessor, but these macros are difficult to analyze and are often error-prone[4]. Existing tools that analyze and transform C source code have rudimentary support for the preprocessor,...
We propose a system architecture for real-time hardware speech recognition on low-cost, power-constrained devices. The system is intended to support real-time speech-based user interfaces as part of an effort to bring information and communication technologies (ICTs) to underdeveloped regions of the world. Our system architecture exploits a shared...
We propose a system architecture for real-time hardware speech recognition on low-cost, power-constrained devices. The system is intended to support real-time speech-based user interfaces as part of an effort to bring information and communication technologies (ICTs) to underdeveloped regions of the world. Our system architecture exploits a shared...
Moore's Law and the wave of technologies it enabled have led to tremendous improvements in productivity and the quality of life in the industrialized world. Yet, technology has had almost no effect on the four billion people that make less US$2000/day. In this talk I argue that the decreasing costs of computing and wireless networking make this the...
Alongside good governance, technology is considered among the greatest enablers for improved quality of life. However, the majority of its benefits have been concentrated in industrialized nations and therefore limited to a fraction of the world's population. We believe that technology has a large role to play in developing regions, that "First Wor...
We present our experience with Twinkle, the first implementation of network-layer power scheduling with real applications. Twinkle uses dynamically created schedules to schedule network flows in sensor networks. The scheduling allows nodes to turn off their radio when idle, thus saving power. Twinkle supports broadcast and partial flows for flexibi...
We present Adaptive Multi-Policy disk caching (AMP), which uses multiple caching policies within one application, and adapts both which policies to use and their relative fraction of the cache, based on program-context specific information. AMP differentiate disk requests based on the program contexts, or code locations, that issue them. Compared t...
Thirty years after its creation, C remains one of the most widely used systems programming languages. Unfortu- nately, the power of C has become a liability for large systems projects, which are now focusing on security and reliability. Modern languages and static analyses provide an opportunity to improve the quality of systems soft- ware, and yet...
We present TinyOS, a flexible, application-specific operating system for sensor networks. Sen-sor networks consist of (potentially) thousands of tiny, low-power nodes, each of which ex-ecute concurrent, reactive programs that must operate with severe memory and power con-straints. The sensor network challenges of limited resources, event-centric co...
We present Tython, a Python-based scripting extension to Tiny- OS's TOSSIM simulator. Tython includes a rich library of script- ing primitives that enable users to describe dynamic but repro- ducible simulation scenarios. We take advantage of TinyOS' event driven execution to allow users to attach script callbacks to partic- ular simulation scenari...
The recently proposed Delay Tolerant Networking (DTN) architecture aims at supporting efficient message- based communication over intermittent networks. This paper describes our experience in creating and evaluating a DTN reference implementation. We found that several concepts are not fully specified in the DTN literature, including the treatment...
Quite often on the Internet, cryptography is used to protect private, personal communications. However, most commonly, systems such as PGP are used, which use long-lived encryption keys (subject to compromise) for confidentiality, and digital signatures (which provide strong, and in some jurisdictions, legal, proof of authorship) for authenticity....
We present a technique that masks failures in a cluster to provide high availability and fault-tolerance for long-running, parallelized dataflows. We can use these dataflows to implement a variety of continuous query (CQ) applications that require high-throughput, 24x7 operation. Examples include network monitoring, phone call processing, click-str...
This paper proposes a neighborhood programming abstraction for sensor networks, wherein a node can identify a subset of nodes around it by a variety of criteria and share state with those nodes. This abstraction allows developers to design distributed algorithms in terms of the neighborhood abstraction itself, instead of decomposing them into compo...