Monday, May 14, 2018

The Effect of Ubiquitous Computing on Interaction

I have been involved in messaging solutions for a few years already. I have learned with some of the best in the industry and I have had the privilege to work at Red Hat, with full support in Open Source at the messaging land.

But today, my daughter Julia Suconic, taught me something on my own field. A 15 years old student on 10th grade at Marjory Stoneman Douglas wrote an AP (Advanced Placement) paper around Ubiquitous Computing, touching areas of sensors, software and things that I do on my daily basis and she did it all on her own with support of her teachers.

So, I hope you excuse me a bit to just be a proud father while I share a paper talking about symbiotic evolution of species, and how privacy is affected by Ubiquitous computing. I hope you enjoy it:


The Effect of Ubiquitous Computing on Interaction, by Julia Suconic
Nowadays, the world is teeming with technology as it becomes present in almost every aspect of people's lives. When humans were first introduced to the internet, it was a revolutionary phase in which the access to information was made possible with the click of a button. Now, the world is filled with electronic sensors that are all interconnected. However, there are silos that make most of the data from these sensors invisible to people. A silo is a system that is closed off from other systems. When silos are eliminated from the equation, ubiquitous computing will flourish and continue to develop. Ubiquitous computing is defined by Mark Weiser, chief technology officer at Xerox's Palo Alto Research Center,  as the method of enhancing computer use by making many computers available throughout the physical environment (Weiser). The interaction of humans with computers is enhanced through ubiquitous computing. As stated by Bill Gates, co-founder of Microsoft and an American business magnate, there is nothing that can stop the rapid advancement of technology as the relationship between computers and humans continue to develop (Gates). As ubiquitous computing becomes embedded into society, the relationship between computers and humans will be augmented. Ultimately, it enhances the way people interact by altering the way they interpret their environment, by benefiting human interaction through several programs, and by creating an advantageous symbiotic relationship between humans and computers.
Gershon Dublon and Joseph A. Paradiso, researchers at the Responsive Environments group at MIT, explore how sensory networks augment human experience. Their research is described in the stimulus ‘Extra Sensory Perception’ in which they explain the integration of ubiquitous computing into society. Dublon and Paradiso state that with ubiquitous computing, information is gathered in new ways that are capable of redefining human senses, with the possibility of virtually travelling to a different environment through the senses . Their research demonstrates the impact that ubiquitous computing has and will have on human senses. As the human sensory world is altered by ubiquitous computing, it will ultimately affect the way people think and socially interact. The senses play a crucial role in the way people interpret information from their environment, which affects their perception on reality. Richard Axel, a molecular biologist and University Professor in the Department of Neuroscience at Columbia University, makes the nobel lecture ‘Scents and Sensibility: A Molecular Logic of Olfactory Perception’ in which he explains the relationship between the senses and the way people act, specifically olfactory perception. He states that, “sensory input is ultimately translated into meaningful neural output: thoughts and behavior.” With this in mind, Axel is conveying the point that the way people see the world through their senses affects their behavior . The ideas from Axel, Dublon and Paradiso in the stimulus led me to my research question; how will the continuous development of ubiquitous computing affect human interactions?
Interaction is enhanced by ubiquitous computing. There are several programs already being developed with ubiquitous computing that alter the way people interpret the world around them. M.I.T Media Lab, an antidisciplinary research laboratory, is developing a sensor-browsing software called DoppleLab. DoppelLab is a cross-reality virtual environment that gathers information from sensors and translates it to the human perception. It is designed to contribute to visualization, sonification, and application development through the way people analyze the electronic data (M.I.T). According to Dublon and Paradiso, this reality browser has several of implications that can be beneficial in the future. The software gathers and interprets data through sensors located in a building, including: temperature, motion and sound. It is then able to overlay the data that it gathers on an architectural computer-aided design model so that it can be viewed by people to assess any problems that occur in a building before the issue grows out of hand. In DoppleLab, people interpret the ubiquitous computing through a new sensory world, ultimately affecting perception. Another software that is being developed is a wearable device that allows the brain to adapt to new stimuli. It is capable of augmenting the senses by allowing people to hear faraway sounds or be able to smell something from another environment (Dublon and Paradiso). This approach can begin the connection between network sensor data and the human sensory system. When ubiquitous computing makes it possible for humans to smell something from an alternative location, their olfactory sense are affected. Sarafoleanu C, Mella C, Georgescu M, Perederco C, researchers at US National Medicine Library, concluded that the olfactory sense is linked with emotions and interaction. By altering olfactory senses, emotions and interactions are consequently altered. Not only this, they found that intense participation of the five senses is required in order to have a normal social life (Sarafoleanu et. al). Ubiquitous computing has an affect on all of the senses in the human sensory world, meaning that people's social lives would completely change from what they are accustomed to.
Following English philosopher Gordon E. Moore’s law ubiquitous computing will only get smaller and more powerful. These technological developments will lead to an increasingly interconnected world.  Dr. J.H. Abaway, affiliated to the Department of Information Technology at Deakin University, states that as a result of Moore’s law technology will become extremely interconnected with the world (Abaway). In 1975, Moore stated that, “The future of integrated electronics is the future of electronics itself” (Moore). This statement can be applied to ubiquitous computing due to fact ubiquitous computing involves the growing interconnectivity of technology with the physical world. An interconnected world uses ubiquitous computing to enhance interaction in humans. Zhiwen Yu and Xingshe Zhou, two professors at the school of Computer Science, Northwestern Polytechnical University, explain ubiquitous computing as socially aware computing that aims to leverage sensory data to support human communication and collaboration. Sensory computing accomplishes the enhancement of interaction by establishing a relationship between the physical world and the macroscopic society. This relationship is shown in figure 1 in which the socially aware computer takes in sensory data from the physical world and is able to give back theoretic guidance from the macroscopic society. The theoretic guidance given by the computer is used in order to assist the person in coming up with the best solution based on the situation and calculations the computer has done (Yu and Zhou). Ultimately, the interaction with the ubiquitous computing system gives the person control over the situation and enhances communication as they will interact with peers on what they believe ethically is the best approach to solve the problem. Using ubiquitous computing to enhance human interaction is very beneficial as it increases productivity and improves solutions.

This kind of social support from ubiquitous computing can also be seen in the work environment. Zhiwen Yu, Zhiyong Yu, Xingshe Zhou, and Yuichi Nakamura, researchers from Northwestern Polytechnical University in China and Kyoto University in Japan, state that ubiquitous computing can present the groups social dynamics in the group by taking into account the users attention and attitude towards an issue. Ubiquitous computing accomplishes this with motion sensors and cameras that are successful in analyzing the meeting. After interpreting the social dynamics of a meeting it suggests multiple methods to enhance the interaction and productivity of the group (Yu et. al). This would ultimately improve the productivity and participation of a business meeting as the social dynamics of a group is essential in how effective the meeting will be. Not only can socially aware ubiquitous computing be seen in the business setting, it is also applied in order to enhance social interaction and develop relationships. Programs take a person's surroundings into consideration in order to analyze plausible relationships for the user of the software. Yu and Zhou explain VENETA as an example of this type of social support given by ubiquitous computing. VENTA recommends new friends based on the proximity of the person and mutual friends that they both may share, which enhances social interaction as people are encouraged to interact with one another. This software is able to assess mutual friends by comparing the contact book entries of phones that are both in the same bluetooth connection range (Yu and Zhou). Ubiquitous computing enhances human interaction through several programs that are socially aware.
On the other hand, there are people who disagree that ubiquitous computing enhances interaction. Rather, the opposing argument is that it makes us over reliant on technology. Sherry Turkle, a cultural analyst that studies how technology is shaping modern relationships, states in a Ted Talk that people rely more on technology than themselves as it advances to help with everyday tasks (Turkle). Contrary to the views of Yu and Zhou, Turkle believes that technology is hindering humans and that people should become more self reliant. However, according to J.C.R Licklider, an American psychologist and important figure in computer science, wrote his theory of man-computer symbiosis in 1960. In this idea, Licklider explains the cooperation that exists between technology and men. Computers are used by men to facilitate solutions and men use the complex information given by technology to control the complex solution (Licklider). This paper was written by Licklider decades ago, however it is still just as applicable today. Ian Foster, director of the Data Science and Learning division at Argonne National Laboratory, applies Lickliders idea of augmenting human intellect with computers. He concluded that the symbiotic relationship suggested by Licklider had not changes as both humans and computers continue to coexist and advance. The only difference from 1960, when Licklider published his paper, is that now more is demanded from computers as they have become more advanced. This symbiotic relationship can be applied to ubiquitous computing as it becomes increasingly embedded into society. As we continue to develop ubiquitous computing, it will further enhance interactions and productivity through a coexisting relationship. Rather than rely on computers, people use computers to their advantage so that they can advance along with advancing in their technology.
Lack of privacy has become a rising concern to several as ubiquitous computing is embedded into society. This implication is due to the ability of ubiquitous computing to retrieve and use sensitive data, such interactions and attitudes. Richard Volkman, an Associate Professor of Philosophy at Southern Connecticut State University and Associate Director of the Research Center on Computing and Society, states that “the right of privacy” comes from the Neo-Lockean theory of natural rights including life, liberty and property (Volkman). Therefore, he believes that we deserve the freedom to privacy and computing should not conflict with that human right. To add on to Volckmans perspective, Dr. J.H. Abaway discusses the issue on privacy that comes with ubiquitous computing in his paper “Human-Computer Interaction in Ubiquitous Computing Environments”. Abaway states that a person’s body movements can reveal a vast amount of information about the individual(Abaway). As ubiquitous computing continues to advance to be able to analyze this kind of information, privacy becomes a serious issue. However, there are several plausible solutions that can make ubiquitous computing more privacy-aware. Ivan Gudymenko, and Katrin Borcea-Pfitzmann, researchers at Dresden University of Technology on privacy protection in ubiquitous computing, have made several suggestions to allow for more privacy through ubiquitous computing. One such suggestion is to have the ubiquitous computing provide all details to the user in a transparent way so that they are aware of what information the computing is gathering. By doing this, privacy of the people is protected as they are giving permission to disclose data to the computing. Gudymenko and Pfitzmann also propose that proper privacy precautions should be built into the functionality of the ubiquitous computing in order for privacy to be enforced properly (Gudymenko and Pfitzmann). Even though privacy is a limitation to ubiquitous computing, there are ways to surpass it and continue to use ubiquitous computing to our advantage.
To conclude, interaction is enhanced by ubiquitous computing.  It affects our sensory perception of the world by displaying information through the use of extra-sensory perception. As a result, the way people interact with one another is affected. Several socially-aware programs are enhancing the way people communicate with one another in order to be more successful. If the development of ubiquitous computing continues to be encouraged, it will be advantageous to human success and productivity.

Work Cited
Abaway, J.H. “Human-Computer Interaction in Ubiquitous Computing Environments.” Nov.  2006.
Axel, Richard. Scents and Sensibility: A Molecular Logic of Olfactory Perception. 8 Dec. 2004.
DoppelLab | Tools for Exploring & Harnessing Multimodal Sensor Network Data.” DoppelLab | Tools for Exploring & Harnessing Multimodal Sensor Network Data
Dublon, Gershon and Joseph A. Paradiso. “Extra Sensory Perception.” Scientific American, July 2014
Foster, Ian. Human-Machine Symbiosis, 50 Years On. 2006.
Gates, Bill. “NVTC.” NVTC Events | Premier Titans Breakfast - Bill Gates of Microsoft | 3/13/08 | 6:45 Am Registration & Networking 7:45 - 9:30 Am Program
Gudymenko, Ivan, and Katrin Borcea-Pfitzmann. Privacy in Ubiquitous Computing. Dresden University of Technology Department of Computer Science, .
Licklider, J.C.R. “1 Introduction.” Warren and Brandeis, "The Right to Privacy", 1960, groups.csail.mit.edu/medg/people/psz/Licklider.html.
Moore, George E. “Cramming More Components onto Integrated Circuits.”
Sarafoleanu, C, et al. Advances in Pediatrics., U.S. National Library of Medicine, 15 Apr. 2009,
Sarafoleanu, C et al. “The Importance of the Olfactory Sense in the Human Behavior and Evolution.” Journal of Medicine and Life 2.2 (2009): 196–198. Print.
Turkle, Sherry. “Connected, but Alone?” TED: Ideas Worth Spreading,
Volkman. R., 2003, “Privacy as life, liberty,property,” Ethics and Information Technology, Vol. 5, pp.199-210.
Weiser, Mark. “Some Computer Science Issues in Ubiquitous Computing.” 23 Mar. 1993.
Yu, Z. W., Yu, Z. Y., Zhou, X., & Nakamura, Y. (2010b). Multimodal sensing, recognizing and browsing group social dynamics. Personal and Ubiquitous Computing, 14(8), 695–702. New York.
Yu, Zhiwen, and Xingshe Zhou. “Socially Aware Computing: Concepts, Technologies, and Practices.” 2014, pp. 10–17.
“Partners in Cognition: Extending Human Intelligence with Intelligent Technologies.” Philosophy of the Social Sciences




Friday, December 9, 2016

50K persistent messages per second on my laptop with Artemis

This is a guide to how to make your producers and consumers fly with Artemis


Many users have been using message systems that will favor performance instead of full guarantees of writes.

This is something we have been doing for years with the Artemis codebase, including Artemis and previous versions of HornetQ.

This is a small tutorial to do such thing with Artemis, pretty simple and quite powerful.

This will make sender to be 100% asynchronous, So you never block the producer and you can easily make thousands messages / second.

Even still the guarantees are quite high as the message will be persisted at the journal within milliseconds.

So, here is how you do it:

  • Disable Block on Persistent Messages:

There are two ways you can do that:

I - Disable blockOnDurableSend through a property:


ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
factory.setBlockOnDurableSend(false);



II - Disable blockOnDurableSend through the URI for the connection Factory:

ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616?blockOnDurableSend=false);


  • Send non Transactionally:

A transaction means a hard sync on the world. Make a round trip to the server and sync on disk.
If you send a regular Persistent Message, asynchronously, then you get a large throughput on your producers.


Here is a full example:
package org.apache.activemq.artemis.cli.commands.messages;

import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;

import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
import org.apache.activemq.artemis.jms.client.ActiveMQDestination;

public class FastProducer {

   public static void main(String arg[]) {
      try {
         ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616?blockOnDurableSend=false");
         Connection connection = factory.createConnection();
         Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Destination queue = ActiveMQDestination.createDestination("queue://TEST", ActiveMQDestination.QUEUE_TYPE);
         MessageProducer producer = session.createProducer(queue);

         long time = System.currentTimeMillis();

         for (int i = 0; i < 100000; i++) {
            producer.send(session.createTextMessage("hello guys"));
         }

         System.out.println("Send message in " + (System.currentTimeMillis() - time) + " milliseconds");

         connection.close();
      }
      catch (Exception e) {

      }
   }
}

With this little example here I am able to send 100K messages in less than 2 seconds using my laptop.



Send message in 1772 milliseconds



And we are still improving things. Watch out for more improvements over the next month :)

Tuesday, September 13, 2016

Artemis 1.4.0 Released

Artemis 1.4.0 has been released.


This is an epic release:

- Paging had a lot of improvements. you can have a max-size for the entire broker before the destinations will start to page.

- The producers will block when the disk is beyond a % limit. (Nice feature :) )

- When you kick clients, consumers will disconnect immediately (unless you configured reconnects on core protocol).


Check the sub project page:
http://activemq.apache.org/artemis/download.html


Onward 1.5.0 now. I don't want to spoil the surprise but I am thinking of some nice things, that I will start adding JIRAs towards it :)

Tuesday, September 6, 2016


I am making a quick video on how to download and run an Artemis Broker.

On this video you will be able to hear me with my beautiful Brazilian-English accent.







Saturday, September 3, 2016

Epic change on Artemis 1.4.0 Coming up

I just sent an epic pull request towards ActiveMQ Artemis today.https://github.com/apache/activemq-artemis/pull/749

After this Artemis will monitor disk usage, and block or fail producers.

There is now a global limit for the server's memory before address start into page mode. Before you would need to specify the limit per address. Now you can have a global limit.


Besides this, artemis is getting into a nice shape for 1.4.0. I'm really excited about it coming up this week, and I should post a video or something this week on how to start a server.

Friday, May 14, 2010

Pointers in JNI / C++

When writing native code for Java (JNI), It's a common behaviour to store the pointer as long in a field in Java, and do a type-cast conversion on the native code back to the original pointer.


I did that on the native module on HornetQ, however this seems to eventually fail.

when using different bit sets as the target compilation (32 bits for instance) this seems to fail when you move back and forth.


The best way for that would be to use a Native Byte Buffer. This way you don't need to worry about conversions. You can just use a pointer back and forth:


Example:


In your Java class, you create this signature:

public class SomeClass
{
public native ByteBuffer initPointer();
}


And in your C++ code:


JNIEXPORT jobject JNICALL Java_SomeClass_initPointer
(JNIEnv * env, jobject obj)
{
return env->NewDirectByteBuffer(myPointer, 0); // size = 0, you don't want anyone to change it
}




Later, any C++ code can get back the pointer by doing:


return (MyClass *) env->GetDirectBufferAddress(myPointer);




I know the word pointer makes this a bit sour, but maybe it will be helpful to someone some day :-)

Wednesday, September 2, 2009

HornetQ and Maven

Andy Taylor has written a nice blog on how to use HornetQ on Maven. Very nice article:


http://hornetq.blogspot.com/2009/09/hornetq-simple-example-using-maven.html