fluid nexus for the android platform

16
Fluid Nexus for the Android Platform Nick Knouf April , Project Idea Fluid Nexus is an application for mobile phones that is primarily designed to enable activists or relief workers to send messages and data amongst themselves independent of a centralized cellular network. e idea is to provide a means of communication between people when the centralized network has been shut down, either by the government during a time of unrest, or by nature due to a massive disaster. During such times the use of the centralized network for voice or SMS is not possible. Yet, if we can use the fact that people still must move about the world, then we can use ideas from sneaker-nets to turn people into carriers of data. Given enough people, we can create fluid, temporary, ad-hoc networks that pass messages one person at a time, spreading out as a contagion and eventually reaching members of the group. is enables surreptitious communication via daily activity and relies on a fluid view of reality. Additionally, Fluid Nexus can be used as a hyperlocal message board, loosely attached to physical locations. Project Links Website: http://fluidnexus.net Project video: http://vimeo.com/899706 Application: http://fluidnexus.net/code/FluidNexusAndroid.apk Source code (licensed under the GPL): http://fluidnexus.net/code/FluidNexusAndroid-0. 01.tar.gz Subversion repository: https://svn.zeitkunst.org/viewvc/FluidNexusAndroid

Upload: peterbuck

Post on 10-May-2015

4.736 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Fluid Nexus for the Android Platform

Fluid Nexus for the AndroidPlatform

Nick Knouf

April ,

Project Idea

Fluid Nexus is an application for mobile phones that is primarily designed to enable activistsor relief workers to send messages and data amongst themselves independent of a centralizedcellular network. �e idea is to provide a means of communication between people when thecentralized network has been shut down, either by the government during a time of unrest,or by nature due to a massive disaster. During such times the use of the centralized networkfor voice or SMS is not possible. Yet, if we can use the fact that people still must move aboutthe world, then we can use ideas from sneaker-nets to turn people into carriers of data.Given enough people, we can create fluid, temporary, ad-hoc networks that pass messagesone person at a time, spreading out as a contagion and eventually reaching members of thegroup. �is enables surreptitious communication via daily activity and relies on a fluid viewof reality. Additionally, Fluid Nexus can be used as a hyperlocal message board, looselyattached to physical locations.

Project Links

Website: http://fluidnexus.netProject video: http://vimeo.com/899706Application: http://fluidnexus.net/code/FluidNexusAndroid.apkSource code (licensed under the GPL): http://fluidnexus.net/code/FluidNexusAndroid-0.01.tar.gz

Subversion repository: https://svn.zeitkunst.org/viewvc/FluidNexusAndroid

Page 2: Fluid Nexus for the Android Platform

Application Background and Usage

Fluid Nexus is an on-going project that explores mobile phone networking without themobile phone network—that is, ad-hoc local networks without the need for prior repre-sentation (See Figure ). �e application I have submitted for the Android DeveloperChallenge is related to concurrent work on a version of Fluid Nexus for Nokia Series phones running Python.

Fluid Nexus works by using Bluetooth to connect to nearby devices and automaticallyshare messages (or other data). �is means that messages can still be passed even whenthere is no external network connectivity. It uses the fact that people still must move aboutthe world, even if there are repressive regimes or natural disasters. People become carriers ofdata, and their phone becomes a data carrying device. Since the phone can be hidden, datatransmission between people can still occur without any outward activity, thus allowingcommunication to occur surreptitiously.

�e Fluid Nexus application is divided into three components: a series of UI activities,a server Service, and a client Service (there is an associated Bluetooth simulation service thatwas written to get around emulator deficiencies; see the next section). �e server waits forconnections from nearby phones, advertising the “FluidNexus” service, as well as advertisinghashes of messages that are already on the phone (see the section “Message Passing ProtocolDetails” for information on the message passing protocol). �e client actively searches forother phones or devices running Fluid Nexus and tries to send messages that are in thephone’s “outgoing” box using the message passing protocol.

All messages are saved on the phone itself in an SQLite database; nothing travels overthe network. No identifying information is kept in the database excepting a hash of themessage sender’s phone’s IMEI number to enable future passing of messages based onpre-determined groups. �is structure ensures that identifying information cannot fall intothe wrong hands, as long as this information is also kept out of the contents of the messagesthemselves.

�e application comes with the Bluetooth simulator enabled, so upon starting theapplication you will see simulated Bluetooth events occurring: some will be new messages,some will refer to “searches” and “discovery” of other Bluetooth devices. �e default messagesillustrate some of the expected usages of Fluid Nexus. You can play around with addingmessages, sorting by application type, deleting messages, looking at Notifications, andreading more about the project concept and related work.

�e application has been designed for the m-rc version of the emulator. It has beentested to work in all display modes, although I developed it specifically for the xportrait resolution, with a few changes for the x portrait resolution.

Page 3: Fluid Nexus for the Android Platform

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent eros ante, viverra vel, pulvinar ac, malesuada vitae, neque. Suspendisse quam tellus, venenatis eget, tincidunt vitae, rhoncus vitae, sapien. Vestibulum vitae nisi vel nisi consequat dictum. Sed non justo. Etiam tempor bibendum odio. Phasellus sit amet nibh. Fusce metus. Mauris volutpat mollis est. Praesent accumsan. Proin magna

12

phone

3

BIP!!!

4BIP!!!

BIP!!!BIP!!!

BIP!!!

6

BIP!!!

BIP!!!

BIP!!!

BIP!!!

BIP!!!

BIP!!!

inf...

5

Fluid Nexus

The person first downloads Fluid Nexus to their mobile phone.

La primera persona baja Fluid-Nexus a su móvil.

Next, the user types a message in the interface.

Enseguida, en usuario escribe un mensaje en la interfaz.

The message is saved in a database on their phone.

El mensaje es guardado en una base de datos dentro del móvil.

The message is broadcast via Bluetooth to nearby phones running Fluid Nexus.

El mensaje es emitido para otras personas utilizando FluidNexus enlas cercanías a través de Bluetooth

As the message is passed from one phone to another, it is passed from one person to another—a viral spreading.

En la medida que el mensaje pasa de un móvil a otro, la informaciónpasado de una a otra persona-una distribución viral.

The message can be passed for as long as possible, potentially getting sensitive information out of a dangerous situation.

El mensaje se puede transmitir durante el máximo de tiempo, hasta posiblemente sacar información importante de una situación de peligro.

How it works.

Figure – Fluid Nexus conceptual design

Page 4: Fluid Nexus for the Android Platform

Figure – Fluid Nexus opening screen, showing all messages

Android-Specific information

Writing an application like Fluid Nexus for Android is somewhat difficult given the currentstate of the emulator. Since the emulator does not natively support Bluetooth, I had twooptions for simulation, both of which are detailed in the video and below.

simulated bluetooth

For the submitted application, I simulate Bluetooth by firing Bluetooth device discoveryintents, which are then picked up by my client and server processes. �ese mirror as muchas possible those that exist in the current SDK (following Gabor Paller’s discoveries¹).When there were no existing Intents to be found, I created my own. �ese intents up-

http://mylifewithandroid.blogspot.com/2008/01/hacking-into-androids-bluetooth-support.

html

Page 5: Fluid Nexus for the Android Platform

Figure – Fluid Nexus menu options

date Notifications that let the user know what is going on. For received messages by theFluidNexusServer Service, a Notification is created that lets the user know that a newmessage has arrived; the Intent updates the message view. For the FluidNexusClient Ser-vice, Notifications let the user know that the Service is actively looking for external devicesthat are running Fluid Nexus. In an actual phone, with a working Bluetooth stack, theseNotifications would not be shown.

socket-based bluetooth

In order to show how Fluid Nexus on Android can work with the previous version that runson Nokia Series phones, I developed a bridge that connects the emulator to the Bluetoothadapter on your local machine (using ideas first put forth by Tom Gibara²). �is bridge, forboth the client and the server Services, communicates a subset of Bluetooth information

http://www.tomgibara.com/android/camera-source

Page 6: Fluid Nexus for the Android Platform

Figure – Entering a new message that will show up in the outgoing box

over a TCP socket, enabling the emulator to send and receive messages from the phone,and vice versa. �e project video (http://vimeo.com/899706) makes this process clear.

In order to run the bridge, you need to do the following:

. Install the lightblue library for Python: http://lightblue.sourceforge.net/

. Start the emulator

. Type adb forward tcp:7010 tcp:7010 to setup the necessary port forwarding

. From within the source code archive, go to the assets directory

. Start the Server and Client bridges: python bridgeServer.py and python bridge-

Client.py

. Start Fluid Nexus in the emulator. Go to “Settings” and make sure that “SimulateBluetooth” is unchecked. Restart the emulator if necessary.

Page 7: Fluid Nexus for the Android Platform

Figure – Viewing the details of a message

You will now be able to connect between the emulator and your host’s Bluetooth adapter.Of course, this still requires a phone that is running Fluid Nexus for Series ; you can getinstallation instructions for that version online³.

Future work

• Integrate with Android Bluetooth API once it is stabilized and functional withinthe emulator

• Integrate message hash advertisements with the stabilized Bluetooth API

• Work with the WiFi API to perform similar message passing activities

http://fluidnexus.net/#install

Page 8: Fluid Nexus for the Android Platform

• Develop means, and easy-to-use UI, to enable the creation of groups that limit whocan or cannot receive a message

• Consider issues of security. While this system is completely open, it can work becauseof the cat-and-mouse game we are playing. Further refinements to the system andprotocol will have to occur as situations change on the ground.

• Consider geo-location of messaging events. �is may have the downside, however,of highlighting activity in a manner we might not want.

• Code clean-up and documentation

Detailed project information

What would happen if the cell phone became a repository for data, transmitting its store toother cell phones as they came into local proximity? Cell phones are (in most cases) associ-ated directly with people, but do not necessarily represent them, an important considerationgiven problems with representation in networks. Nevertheless, cell phones travel withpeople and can be considered a proxy for the short-term, ad hoc, unconscious links betweenpeople as they travel about their day. �ese are links of a strange sort, because they do notnecessarily represent any connections between people that are often attributed to edges insocial networks. Rather, they simply represent local proximity, dying away as soon as I havepassed someone else on the street. Additionally, cell phones provide ever increasing amountsof storage space, and many come with a form of ad-hoc networking already: Bluetooth. Wecould consider the possibility of using short-term Bluetooth connections to share forbiddendata amongst cell phones within the Bluetooth range, hoping that blanketing all phoneswithin an area, coupled with geographic dispersion of people, might enable the transmissionof data over distances not otherwise possible.

�us the person using the cell phone becomes part of a “sneaker-net”, carrying data thatis highly sensitive but possibly without knowledge of its contents. �e "links" between thecurrent "node" and other nodes are serendipitous, making any determination of a networkstructure impossible and unnecessary: the network is, for many purposes, simply a randomone that would be different for each particular data transmission.

�is form of network is therefore constructed partially as a response to concerns aboutrepresentation in networks. First, it does not try to represent people, yet it uses what peopleare good at: geographic travel and random interconnections. Second, the network is used fora political and activist end, enabling those who would otherwise be marginalized the abilityto subvert the dominant power. �ird, the network structure is entirely undetermined,

Page 9: Fluid Nexus for the Android Platform

with any definition of structure being undetermined. �is differs from other work suchas TxTMob⁴ that used lists for wide dissemination of data on cell phones; the networkswere thus pre-determined. �is is a type of hybrid network that uses the power of peopleto make short-term links but without explicitly trying to represent them within a model.�e network can be used by people often ignored or eliminated by the networks that are inpower, suggesting a way in which technology can have an emancipatory role.

Conceptual Motivation

problems with the network view of reality

I would like to approach the problems with the network view of reality from a science andtechnology studies (STS) lens. From this perspective I want to ask: what happens when wetry to model behavior through the domain of nodes and edges? What happens to humanswhen we try and force them into a model or prior representation? I want to suggest thatthe view that we can model behavior assumes that there is one true representation of theworld, if only we can find it. Other types of perspectives, like those of STS, would suggestotherwise: that there are actually many different ways to represent the world. My work as atechnologist with an STS view, then, is to show how we might be able to create technologicalartefacts that might not reduce the world to an imperfect mathematical equation.

Yet STS has not been immune to the network phenomenon. Indeed, there is a method-ological approach known as “actor-network theory” (Latour ; Law ; Latour )which attempts to look at how different types of human (and importantly, non-human)agents work to construct a scientific or technological artefact. However, the choice to viewthings as a network implies then a certain ontological stance towards the world: you beginto think that everything can be reduced to nodes and edges. �is is perhaps the reasonwhy Watts () is so excited about the possibilities of network models of the world:one type of mathematical formalism can be applied across a number of domains, therebypotentially unifying disparate fields. �ere are severe critiques of the network view, however,and these have to do with political and representational concerns. By political, I do notnecessarily mean the explicit politics of elections, government, and so on; rather, I meanhow you choose to view people and the groups that they may or may not belong to. �emain question with the network view, then, is who gets left out? Who makes the choiceof membership in the network? �is is exactly the concern of some STS scholars withactor-network theory (Star ; Winner ) and it is my concern with network modelsof social behavior. �ese decisions about representation then become not only political

http://txtmob.com

Page 10: Fluid Nexus for the Android Platform

but ethical as well: as a designer of a network model, who do I choose to represent in thenetwork? What about marginal people who do not fit into my “mold”? What types of poweram I reifying by choosing a particular network structure?

once you have a network, everything begins to look like a node…

�ese questions about power, ethics, and politics of viewing the social world as a networkhave been raised by a number of contemporary social theorists. In fact, a recent conferenceentitled “New Network �eory” had a number of panels and discussions of the ways inwhich the dominant views of networks enforce certain types of understandings of socialbehavior⁵. In fact, one of the participants of the conference, Bernhard Rieder, has discussed⁶the ways in which the software we use to map out networks influences how we then viewthese networks: “�e point I’m trying to make is the following: the way we map networksis in large part channeled by the software we use and these tools are therefore not mereaccessories to research but indeed epistemological agents that participate in the productionof knowledge and participate in shaping research results.”

�us these political and ethical questions are actually technical ones as well. What wedecide to represent in a technical form determines what types of worlds we can have. Forexample, if I decide to store only sex and not age, my system can never know how old myusers are. Similarly, if I assume that people are always linked symmetrically with peopleand have a stable number of links, then my representation of the world will embody thesefacts, setting up a particular political situation where things remain static and bidirectional,even if Joe might see the connection with Sue more strongly and is always trying to re-framehis social circle. �e analyst might decide to make these decisions based on questions oftractability: adding in the messiness of the social world makes the calculations too difficult.But since I am not a modeller, nor a developer of algorithms, and am in fact specificallyinterested in this messiness, I view things from a different perspective, one that tries to notwipe away what cannot be fit within an equation and rather attempts to use this messinessfor a particular goal. �us the model is only one representation of reality, one that, perhapsunexpectedly, embodies a particular politics. My approach embodies a politics as well, onethat tries to see where models fail the individual and where particular people are not able tofit into the model and are thus forgotten.

http://www.networkcultures.org/networktheory/index.php?onderdeelID=12&paginaID=

75&itemID=197http://thepoliticsofsystems.net/2007/10/11/the-epistemology-of-research-tools-in-network-exploration/

Page 11: Fluid Nexus for the Android Platform

networks without stable links: an activist approach

My previous discussion should show the ways in which a movement away from a desirefor complete representation of people in a social network might be beneficial. If this isthe case, then what comes of the study of social networks? Perhaps instead of trying tomodel behavior within networks, explicitly formulating rules and functions that rational“actors” (i.e., individual humans) follow, we can instead use that behavior as a means to anend, taking advantage of what already exists without having to approximate and thereforemisrepresent a single person.

One motivating example conveys how extremely ad-hoc networks of people, where theedges exist for the most fleeting of moments, could be used for the propagation of politicaland activist information in war zones or other dangerous physical locations.

burma: fall 2007

�e protests that began in Burma last fall, first with Buddhist monks and then later withmembers of the general population, were the largest the country had seen since . Giventhe near-total control the military junta has on the infrastructure of the country, it wasamazing that anyone was able to get information out and to external media outlets. Indeed,even things like cell phone service were cut⁷, leaving only landline connections. What mightbe the possibility, then, of using technology to spread information in tightly-controlledsituations such as this? Could we use the movement of people as a proxy for the movementof data? �is is one of the motivating use cases for Fluid Nexus.

Message Passing Protocol Details

using stigmergy in the design of the forwarding protocol

Mass-forwarding of messages, while the most obvious way to approach the problem of shar-ing data within a local area, is not necessarily the best given the limitations of our underlyingnetwork protocol. To understand this, we need to understand how we communicate overBluetooth connections. Communication is a three step process:

. Device Discovery: a device scans the local neighborhood, finding other devices thatare advertising their presence over Bluetooth

http://www.concernedjournalists.org/niemanwatchdog-filing-reports-burma-between-gunshots

and http://www.commsday.com/node/192

Page 12: Fluid Nexus for the Android Platform

. Service discovery: once a particular device is found, this step queries the device foravailable services

. Message transmission: once the relevant service has been found, the device transmitsdata or a message via the provided service. �is is also the step where we would querywhether or not a particular message should be sent.

Individual steps in this process can take to seconds or more. Given that Bluetoothdevices, at least when carried by humans, are likely to be highly mobile, any time we caneliminate from these steps increases the chance we will be successful in transmitting ourmessage. If we could even eliminate parts of one of the steps we would be in better shape.To figure out which part of the chain we can cut out, I have to make a slight detour intoideas from swarm intelligence which has interesting parallels with the current problem.

It has long been an interest of researchers to better understand how groups of agents,each with simple abilities, can self-organize into a very complicated systems. In biologicalsystems these types of behaviors often rely quite strongly on the leaving of perceptiblemarkers of recent behavior. For example, ants will leave pheromones on the trail of food; asmore ants follow one particular path, there will be more pheromones left, and thus later antswill follow the stronger scent. �is is an example of active stigmergy. In general, stigmergy iswhere “individual behavior modifies the environment, which in turn modifies the behaviorof other individuals” (Bonabeau, Dorigo, and �eraulaz , p. ). On the other hand,passive stigmergy is when agents modify parts of the environment in line with their normalbehavior, but this modification sends signals to other agents to change their behavior. Anexample of this is the building of structures in certain shapes that cause other agents tochoose one path over another.

�ere has been much work on the “optimal” design of broadcast or epidemic forwardingprotocols in mesh or ad-hoc networks. Many of the refinements to these transmissionprotocols relied on knowing some prior information about community affiliation (Hui andCrowcroft b), “concentration” of files (Hui, Leguay, Crowcroft, Scott, Friedmani, andConan ), or hierarchical rankings of communities (Hui and Crowcroft a). Eachapproach requires the imposition of some underlying structure on the network that, inour case, may not be there. Additionally, and perhaps more worryingly, is the fact that anylookup of data requires that we go through all three steps of the process described earlier:in order to get information about “concentration” of files, or to determine whether or notwe should send a file, requires that we find the device (step one), find the right service (steptwo), and successfully transmit and receive data about server holdings (step three) beforewe can even transmit our desired message.

Page 13: Fluid Nexus for the Android Platform

Yet if we use ideas from stigmergy, we can eliminate the third step entirely. To see how,we have to go into depth how we advertise services using Bluetooth.

Listings and show how we use Bluetooth service advertising as a means of stigmergy.�is is the second step of the three-step data transmission chain described previously. �elists of services were made from commands entered at a Python prompt⁸. Each entry inthe list is a tuple of three elements: Bluetooth address, service port, and service name.We can see in Listing the Fluid Nexus service is active at port number . �is is theservice and port that clients would connect to in order to send data to the server. Moreinteresting, for our purposes of exploring stigmergy, is the service at port number . �isservice does not have any methods that listen for connections; rather, the service is there toadvertise the hash⁹ of a recent message that was accepted by the server¹⁰. Instead of havingto query the “Fluid Nexus” service at port number in order to determine whether or notto transfer a particular message, a client can merely query for the list of services, comparingthe discovered hashes with local ones and streamlining the data transmission process.

Listing – List of services before acceptance of new item

>>> findservices(psont)

[(’00:02:EE:6B:86:09’, None, u’SDP Server’),

(’00:02:EE:6B:86:09’, 1, u’Hands-Free Audio Gateway’),

(’00:02:EE:6B:86:09’, 10, u’OBEX File Transfer’),

(’00:02:EE:6B:86:09’, 11, u’SyncMLClient’),

(’00:02:EE:6B:86:09’, 12, u’Nokia OBEX PC Suite Services’),

(’00:02:EE:6B:86:09’, 9, u’OBEX Object Push’),

(’00:02:EE:6B:86:09’, 2, u’Dial-Up Networking’),

(’00:02:EE:6B:86:09’, 3, u’AppleAgent’),

(’00:02:EE:6B:86:09’, 4, u’Fluid Nexus’),

(’00:02:EE:6B:86:09’, 5, u’:f51ffdfc71bc943e9ac1d6515b3e7c31’)]

�is is a form of active stigmergy, where the server explicitly leaves traces of previousinteractions for other clients (mobile phones) that might interact with the server. Becauseof the multi-step process of the Bluetooth protocol, and the fact that devices are going to bein constant motion, using this active leaving of traces of previous interactions at the secondstep of the process cuts down on unnecessary traffic and hopefully will lead to more data

All Bluetooth code, on the phone and for testing on the laptop, used the open-source lightblue(http://lightblue.sourceforge.net/) library

�e hash is the md sum of the title and data of a message; this gives a unique fingerprint of anymessage we transmit or receive.

�e hash has an additional “:” given as a prefix in order to enable quick programmatic differenti-ation of this service from the other advertised services.

Page 14: Fluid Nexus for the Android Platform

transmissions occurring. Using stigmergy we have eliminated the third step entirely whendeciding whether or not to transmit a message.

Listing shows another example of stigmergy, after we have successfully transmitting adifferent message to the same server. We see that two hashes are now advertised. If a newclient communicated with this server, the client would know not to send messages withthose hashes, if the client were in possession of them.

Listing – List of services after acceptance of new item

>>> findservices(psont)

[(’00:02:EE:6B:86:09’, None, u’SDP Server’),

(’00:02:EE:6B:86:09’, 1, u’Hands-Free Audio Gateway’),

(’00:02:EE:6B:86:09’, 10, u’OBEX File Transfer’),

(’00:02:EE:6B:86:09’, 11, u’SyncMLClient’),

(’00:02:EE:6B:86:09’, 12, u’Nokia OBEX PC Suite Services’),

(’00:02:EE:6B:86:09’, 9, u’OBEX Object Push’),

(’00:02:EE:6B:86:09’, 2, u’Dial-Up Networking’),

(’00:02:EE:6B:86:09’, 3, u’AppleAgent’),

(’00:02:EE:6B:86:09’, 4, u’Fluid Nexus’),

(’00:02:EE:6B:86:09’, 5, u’:063ab2111a1c5499ab4fc128bcdb490e’),

(’00:02:EE:6B:86:09’, 6, u’:f51ffdfc71bc943e9ac1d6515b3e7c31’)]

We can now describe the networking protocol in detail for both the server and theclient.

server protocol

. On startup, advertise hashes of messages on the phone

. Loop:

a) Accept connections from clients

b) Add new data to the database and to the list in the UI

c) Add the hash of the new data to the database and advertise the hash

As far as I can tell from the Bluetooth Specification (SIG ), there is no limit asto the number of services that any one device can advertise. Whether advertising servicesthat do not accept connections is a violation of the protocol or not is something I still needto determine. But this re-appropriation of service advertisement should significantly cutdown on the amount of time to transmit a large number of messages.

Page 15: Fluid Nexus for the Android Platform

REFERENCES

client protocol

. Loop:

a) Search for available devices

b) For each available device

i. Get list of services available on deviceii. Use discovered hashes as a blacklist of hashes to not send

iii. Until device is not in range anymoreA. Send messages marked as “outgoing”B. Send send other messages

�e client protocol actively uses the provided stigmergy of the server to create a “blacklist”of messages hashes to not send, thereby improving on epidemic forwarding algorithms, aswell as cutting down the amount of time that would be needed to find out this informationin standard ways.

References

Bonabeau, Eric, Marco Dorigo, and Guy �eraulaz (). Swarm Intelligence: From Naturalto Artificial Systems. New York, NY, USA: Oxford University Press.

Hui, Pan and Jon Crowcroft (a). Bubble Rap: Forwarding in small world DTNs in everdecreasing circles. Tech. rep. UCAM-CL-TR-. University of Cambridge.

Hui, Pan and Jon Crowcroft (b). “How Small Labels Create Big Improvements”. In:Proeedings of the Fifth Annual IEEE International Conference on Pervasive Computingand Communications Workshops, . PerCom Workshops ’. Pp. –.

Hui, Pan, J. Leguay, J. Crowcroft, J. Scott, T. Friedmani, and V. Conan (). “Osmosis inPocket Switched Networks”. In: pp. –.

Latour, Bruno (). Science in Action: How to follow scientists and engineers through society.Cambridge, MA, USA: Harvard University Press.

— (). Reassembling the Social: An Introduction to Actor-Network-�eory. ClarendonLectures in Management Studies. New York, NY, USA: Oxford University Press.

Law, John (). After Method: Mess in social science research. New York, NY, USA:Routledge.

SIG, Bluetooth (). Specification of the Bluetooth System. Bluetooth SIG.Star, Susan Leigh (). “Power technologies, and the phenomenology of conventions: on

being allergic to onions”. In: A Sociology of Monsters: Essays on Power, Technology, andDomination. Ed. by John Law. London, UK: Routledge. Pp. –.

Page 16: Fluid Nexus for the Android Platform

REFERENCES

Watts, Duncan J. (). “�e “New” Science of Networks”. In: Annual Reviewof Sociology .. Pp. –. DOI: 10.1146/annurev.soc.30.020404.104342.URL: http://arjournals.annualreviews.org/doi/abs/10.1146/annurev.soc.30.020404.104342.

Winner, Langdon (). “Upon Opening the Black Box and Finding It Empty: SocialConstructivism and the Philosophy of Technology”. In: Science, Technology, & HumanValues .. Pp. –.