Daily Archives: May 20, 2018

Microsoft acquires Semantic Machines, advancing the state of conversational AI

Group shot of team members from Semantic Machines.
Team members from Semantic Machines.

AI researchers have made great strides in recent years, but we are still at the beginning of teaching computers to understand the full context of human communication. Most of today’s bots and intelligent assistants respond to simple commands and queries, such as giving a weather report, playing a song or sharing a reminder, but aren’t able to understand meaning or carry on conversations. For rich and effective communication, intelligent assistants need to be able to have a natural dialogue instead of just responding to commands. We call this “conversational AI.”

We are excited to announce today that we have acquired Semantic Machines Inc., a Berkeley, California-based company that has developed a revolutionary new approach to building conversational AI. Their work uses the power of machine learning to enable users to discover, access and interact with information and services in a much more natural way, and with significantly less effort.

The company is led by many pioneers in conversational AI, including technology entrepreneur Dan Roth and two of the most prominent and innovative natural language AI researchers in the world, UC Berkeley professor Dan Klein and Stanford University professor Percy Liang, as well as former Apple chief speech scientist Larry Gillick.

Microsoft has driven research and breakthroughs in the fundamental building blocks of conversational AI, such as speech recognition and natural language understanding, for more than two decades. The goal has been to expand our vision of computers all around us to a world where they could see, hear talk and understand as humans. In 2016, we took another big step toward realizing this vision of conversational computing with the introduction of a framework for developing bots and the release of pre-built Cognitive Services for infusing speech recognition and natural language understanding into intelligent assistants. Today, there are more than 1 million developers using our Microsoft Cognitive Services and more than 300,000 developers using our Azure Bot Service, all helping to make computing more conversational.

We are further developing our work in conversational AI with our digital assistant Cortana, as well as with social chatbots like XiaoIce. XiaoIce has had more than 30 billion conversations, averaging up to 30 minutes each, with 200 million users across platforms in China, Japan, the United States, India and Indonesia. With XiaoIce and Cortana, we’ve made breakthroughs in speech recognition and more recently become the first to add full-duplex voice sense to a conversational AI system, allowing people to carry on a conversation naturally.

With the acquisition of Semantic Machines, we will establish a conversational AI center of excellence in Berkeley to push forward the boundaries of what is possible in language interfaces. Combining Semantic Machines’ technology with Microsoft’s own AI advances, we aim to deliver powerful, natural and more productive user experiences that will take conversational computing to a new level. We’re excited to bring the Semantic Machines team and their technology to Microsoft.

For more information on Semantic Machines, visit  http://www.semanticmachines.com/.

The post Microsoft acquires Semantic Machines, advancing the state of conversational AI appeared first on The Official Microsoft Blog.

masscan, macOS, and firewall

One of the more useful features of masscan is the "--banners" check, which connects to the TCP port, sends some request, and gets a basic response back. However, since masscan has it's own TCP stack, it'll interfere with the operating system's TCP stack if they are sharing the same IPv4 address. The operating system will reply with a RST packet before the TCP connection can be established.

The way to fix this is to use the built-in packet-filtering firewall to block those packets in the operating-system TCP/IP stack. The masscan program still sees everything before the packet-filter, but the operating system can't see anything after the packet-filter.


Note that we are talking about the "packet-filter" firewall feature here. Remember that macOS, like most operating systems these days, has two separate firewalls: an application firewall and a packet-filter firewall. The application firewall is the one you see in System Settings labeled "Firewall", and it controls things based upon the application's identity rather than by which ports it uses. This is normally "on" by default. The packet-filter is normally "off" by default and is of little use to normal users.

Also note that macOS changed packet-filters around version 10.10.5 ("Yosemite", October 2014). The older one is known as "ipfw", which was the default firewall for FreeBSD (much of macOS is based on FreeBSD). The replacement is known as PF, which comes from OpenBSD. Whereas you used to use the old "ipfw" command on the command line, you now use the "pfctl" command, as well as the "/etc/pf.conf" configuration file.

What we need to filter is the source port of the packets that masscan will send, so that when replies are received, they won't reach the operating-system stack, and just go to masscan instead. To do this, we need find a range of ports that won't conflict with the operating system. Namely, when the operating system creates outgoing connections, it randomly chooses a source port within a certain range. We want to use masscan to use source ports in a different range.

To figure out the range macOS uses, we run the following command:

sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last

On my laptop, which is probably the default for macOS, I get the following range. Sniffing with Wireshark confirms this is the range used for source ports for outgoing connections.

net.inet.ip.portrange.first: 49152
net.inet.ip.portrange.last: 65535

So this means I shouldn't use source ports anywhere in the range 49152 to 65535. On my laptop, I've decided to use for masscan the ports 40000 to 41023. The range masscan uses must be a power of 2, so here I'm using 1024 (two to the tenth power).

To configure masscan, I can either type the parameter "--source-port 40000-41023" every time I run the program, or I can add the following line to /etc/masscan/masscan.conf. Remember that by default, masscan will look in that configuration file for any configuration parameters, so you don't have to keep retyping them on the command line.

source-port = 40000-41023

Next, I need to add the following firewall rule to the bottom of /etc/pf.conf:

block in proto tcp from any to any port 40000 >< 41024

However, we aren't done yet. By default, the packet-filter firewall is off on some versions of macOS. Therefore, every time you reboot your computer, you need to enable it. The simple way to do this is on the command line run:

pfctl -e

Or, if that doesn't work, try:

pfctl -E

If the firewall is already running, then you'll need to load the file explicitly (or reboot):

pfctl -f /etc/pf.conf

You can check to see if the rule is active:

pfctl -s rules



The Pentagon has a project that aims to verify identity via smartphone

If a project funded by the Defense Department goes well, then new technology to verify identity and ultimately to assign a “risk score” to you could be new smartphones within two years.

The identity verification tech will be embedded in the hardware of smartphones. Steve Wallace, technical director at the Defense Information Systems Agency (DISA), told Nextgov that the tech “will analyze a variety of identifiers that are unique to an individual, such as the hand pressure and wrist tension when the person holds a smartphone and the person’s peculiar gait while walking.”

To read this article in full, please click here