Seeing The Advancement of Messaging Since Before The Internet

I’m old.

popo

By today’s standards, really old.  I’m forty-one (and a half) and I grew up with the Internet and technology.  While I don’t keep up with (or understand) every new trend (case in point, fidget spinners, and SnapChat), I’m not of the generation that just doesn’t understand technology or care about it at all.  In my time being a geek and a nerd (a lot of it before it was cool) I’ve seen a lot of changes in how the world communicates with each other.

The Old Days

I’m not going to be that guy who talks about how Do Not Disturb was taking the phone off the hook (it was) or the fear (or excitement) of the phone ringing and you had **no clue** who was calling (it was).  No, the first generation of “Internet messaging” for me was BBS messaging.

BBS-What?

*Sigh* Damn kids these days. A BBS was something that showed up around the time that the home computer became a thing.  People would set up computers running BBS software (a server by today’s parlance) connected to their home phone line (or a second line, or if they were *really* fancy several phone lines).  People would dial in, log in with their account and then you’d have a text interface that would let you send messages to friends, contribute to forums, download shareware (and non-shareware), photos, etc.

BBS Messaging

This was both the coolest thing in the world and, compared to what we have today, an absolutely horrible way to communicate.  It honestly wasn’t that much better than sending a physical letter, to be honest.  You had no notifications that you had messages; you would just dial in and (if the line wasn’t busy) see if you had new messages.  There may or may not have been what we’d call “read receipts” and If the person you were talking to simply moved away and never logged in, there’d be no way to know that.  Even worse, because BBSs were run by hobbyists, it’s possible that one day the BBS would simply disappear.

So… not awesome.

BBS / Fidonet / Dawn of the Internet

Around this time the Internet started becoming a “thing”.  Email was something reserved for universities and connections between them as the Internet infrastructure we have today.  Getting onto this brand new “information superhighway” was harder than it seems.  Luckily, [FidoNet] came around as an option for BBSs (though it had been around since 1984).  FidoNet was a Store-and-Forward system, allowing you to send an email from your high school friend’s BBS to another BBS, or if you knew someone at the university, you could actually email them.  This seems ridiculously simple now (or old fashioned), but at the time it was pretty amazing.

I remember showing my manager this at my first technology job around 1995, tell him that it would only take two or three days to send an email to someone.

Why that long though?  Well remember it’s a store and forward system, so you dial into your BBS, and send the email.  Sometime that day the BBS would dial up to the next BBS in FidoNet hierarchy and send all it’s mail out.  Then sometime later that day *that* BBS would do the same, and over and over until eventually email was delivered.  When your friend replied, well, the whole thing started all over again.  This is why email addresses in those days looked like this: john.jones@p0.f42.n105.z1.fidonet.org

Definitely not easy to remember.  The email basically described the hierarchy of zones required to get the email to the correct end user, not dissimilar to how the current DNS and MX record scheme works today, just in a world where always-on Internet connectivity wasn’t a thing yet.

Let’s Fast-Forward To Now

This brings us to the world that most of us currently know.  There’s email, instant messaging, and social media from your desktop, laptop, tablet, and mobile phone.  While it took a while to get from the mid to late 1990s to here, as Internet connectivity became the norm and then the smartphone became a thing, messaging continued to evolve with it.

So… The Future

So what’s next?  Right now as long as you have a wifi or cell phone signal, and an app on your device, you can communicate with your friends and family pretty easily.

As long as you have a signal.

If There’s No Signal

These days the next big thing is solving the “what if you have no signal” challenge.  This is what Wave is trying to do.  Ironically the technology is looking to the past to solve the problems of the future.  Just like back in the days of FidoNet the computers with dial-up modems were used to create a mesh to transfer messages back and forth, Wave is doing this for the modern day.

The idea is to remove even the restriction of having to have a signal to have connectivity and communications with your friends and family. If you’re around people who have wave enabled devices and apps, you no longer have to have signal yourself but your messages and file transfers can move seamlessly through a mesh of users via Bluetooth, wifi direct, hotspots and other networking technology to get to their intended recipient.  If the recipient is within reach of the mesh the data never even has to go onto the Internet to get there, or if they’re not, the mesh will eventually an Internet connection to find it’s way to them.

If no Internet connection can be found, the data can be stored on nodes for eventual delivery, just like those old FidoNet nodes.  This may sound a bit backward; I mean, we all have wifi and connectivity everywhere, right?  This will eventually help areas with bad or non-existent infrastructure, disaster areas, and first responders.

It’s a brave new world out there, but it’s hard to appreciate without knowing just how far we’ve come.  Now if you’ll excuse me I think I’m done writing this and it’s time to put the house phone back on the hook so people can get a hold of me again.

Author
Alan Bailward
Lead Technology Dude


Are our networks ready for the future?

Probably not, unless there is a radical and disruptive change.

2017 seems to be the big year for augmented and virtual reality.

There’s been a lot of recent interest in these emerging technologies, and the stage is now set where some of the most immersive AR and VR experiences will be built. There are tons of companies already working on this, but perhaps one of the biggest announcements made in the AR space was at Facebook’s F8 developers conference in San Jose. Mark Zuckerburg said that if there was any one thing to take away from his keynote address, it was that they were making the world’s first augmented reality platform using the mobile phone camera.

f8_zuckerberg_1492575176703Zuckerburg’s keynote address at f8 2017. (Photo credit: NDTV)

To put that into perspective — app developers all over will soon have access to the technology to build rich AR experiences on the world’s largest social platform that reaches more than 1.8 million monthly active users. That in itself is pretty damn exciting.

“Houston, we have a problem.”

The excitement can quickly be dampened however if you stop to think about the entire path of how these new AR and VR experiences will reach mobile users.

valuechain.001

Value chain for a mobile AR experience

No prizes for guessing where the bottleneck will emerge first. That’s right — it’s the connectivity. Think about it, we’ve ALL had that experience when we desperately needed to get an answer from our smartphone — directions to a location, an email, or even a result to a Google search, and all you get back is one of those annoying ‘loading’ wheels spinning on your smartphone screen that doesn’t seem to stop (and you’re ready to throw your phone away.)

Though we’ve all experienced this at some point, it’s perhaps rare and less of a problem for some users and more commonplace for other users depending on where you live and how fast the internet is. The truth is that while it may not be a huge problem right now, it is only going to get worse.

An immersive AR/VR experience is simply unattainable without a strong network to support it. While the AR apps of today (such as Pokémon Go and Snapchat) may not really eat up your data plan, it won’t be too far off before we see more advanced AR & VR apps in the mainstream. And the bandwidth requirements for these type of apps is vastly different and demanding in comparison to other types of applications.

5G

Bandwidth and latency requirements of potential future mainstream apps (image credit & source: GSMA Intelligence)

The Future Network? More of Everything Please

But it’s not only AR and VR that will drive a huge spike in bandwidth consumption. Ericsson predicts that there will be a 12X increase in mobile data consumption from 2015 to 2021, and by that time 70% of that traffic will purely be video.

And then there’s also the massive IoT space that includes connected cars, machines, utility meters, remote metering and consumer electronics, and it is expected that the number of IoT devices will surpass mobile phones as the largest category of connected devices by 2018. The network requirements for IoT devices are slightly different from mobile phones — they require ultra-reliable and available networks with very low latency.

And so unless there are significant upgrades to the entire telco infrastructure chain — the backhaul, the cell sites and the radio interfaces — we will soon be faced with major data traffic jams and as a result, poor user experiences and non-performing devices.

Won’t 5G solve the problem?

But not to fear — isn’t that what 5G is for? Surely 5G will solve all these issues. Or at least some people would like to think so, but the future of 5G is still very uncertain at this point. 5G is touted to be the next big revolution for telcos, and should be a significant improvement over 4G or LTE networks to support the next generation of growing data demands. While moving to 5G in the next several years may seem as a logical evolution, a lot of telcos are still skeptical about the huge investment to be made in 5G without having any credible or lucrative business case in front of them. Sure, there’s a lot of buzz around augmented reality, connected cars and IoT, but the first set of commercially successful applications around these technologies are yet to emerge.

The Digital Divide Is Getting Bigger

There is another rather unfortunate aspect to all of this. While one side of the world continues to advance in better technologies, faster networks and innovative apps, there is another side which is just left behind and is not looked at seriously — the 60% of the world who are not connected today. And any advancements that are made on on end of the digital spectrum without having any impact to the other end will only increase the digital divide further — which already is fairly large.

FullSizeRender_2-750x562

These women from a village in south India travel travel 7 km daily to access the Internet. Using their smartphones they can view YouTube videos to learn new skill sets and start new businesses. (Photo credit and source: TechInAsia)

Affordability still remains as the biggest challenge to access the Internet, and telcos and governments need to work together to bring the price of mobile broadband down to an affordable rate.

It’s Time For A Disruption

From all of these challenges, there’s one thing that remains clear — the current means of providing mobile connectivity is not sufficient to support increasing data demands, nor will it be affordable enough to connect the unconnected. There has to be a disruption. And that disruption needs to involve radically different sets of technologies to work together and lower the cost of access while supporting higher data and low latency requirements.

History has shown disruption to be a force of nature — we as humans are naturally inquisitive and always looking for new and better ways of doing things. And it is that inquisitiveness, curiosity and passion that drives us to build the WAVE platform — our mobile mesh connectivity platform that connects people, applications and devices together a distributed fashion without being dependant on any central connectivity. Granted that we are still early in this journey, and that we have many wrinkles to still iron out, but we firmly believe in its potential to be a disruptor. A disruptor that can complement existing technologies to significantly reduce the cost of data access, become more energy efficient, and connect more people and devices in a cost-effective manner.

And who knows, wouldn’t it be neat to develop an augmented reality experience that uses the mesh network to connect to nearby people and devices? We’re very excited about the future that’s full of possibilities, and we’ll be there soon, one step at a time.

(PS — we’re almost ready to launch WAVE in private beta! Get in touch if you’d like to be one of the first to try it out!)

Author
Saju Abraham
Chief Product Officer


On Developing Magic

Most descriptions of the Wave platform focus on its technical details. While they try to stay abstract and high-level, they will usually explain how we are creating a new way of connecting devices directly to each other without using the internet, or how we’re combining wireless communication devices to create a heterogeneous “mesh” network, or sometimes even the actual possible configurations devices may be in to form a mesh. It can be easy to get lost in the uses and implementations and opportunities that Wave can be used or, so day-to-day we focus on what it is, which is easier to think and talk about.

Lately, however, I have started using a much less specific term when describing my work to friends and family: the “magic network.”

The Wave platform is very complex piece of software, designed to enable the integration of ever more technologies and networking techniques to make mesh networks larger, faster, more reliable, and available on an ever-increasing group of devices. If I’m being very honest there are parts of it where the fine details are lost on me, and my co-workers are starting to reach that state as the number of contributors and features climbs.

Throughout development, though, the team at Left has been working hard to keep all of the complexity as hidden away as possible, cloaking all the implementation details and performance optimizations into an easy-to-use package. We focus on keeping the work required for a developer to use our technology minimal, and keeping the need for intervention from the end user to as close to zero as possible.

Making Wave, for most intents and purposes, magic.

Some day soon, everyday smartphone users will be able to install apps that simply connect to each other, whether it’s two people, a household, a university, a city. They could be doing lightweight activities like sending messages or editing documents, or heavy network actions like sharing videos and downloading apps without having to worry about prohibitively expensive data caps, or even being connected to a cell tower. These users may never know what “Wave” is, or that they’re a part of some “mesh network” – to them, it can be magic.

Part of my job as a developer on the Wave project is to make an experience for other developers that is just as magical. When you are developing an app, it is very difficult to structure your code in a way that makes sense and is easy for you to work with. It is made even harder when the tools you are using force you to work in particular ways, or to add a lot of extra junk to your code. The job of the Wave framework is to make it easy for developers to connect their users then stay out of the way, balancing the desire to provide lots of functionality while avoiding the headache of unneccessary complexity.

This is my favourite part of working on the Wave platform at Left. I enjoy the challenge of creating new, groundbreaking technology, while making it a seamless experience for both other developers and their end users. In a way, developing magic.

Author
Frazer Seymour
Mobile Mesh Developer 


Come Join the WAVE… Work for us!

There are exciting times here at WAVE as our MVP nears completion. As we get set for our first release, we are also eagerly anticipating the future. As such, we are looking to grow and expand our team. Up until now, the WAVE team has been a small but mighty group and what they have achieved in a very short time is truly incredible.

We are in search of people who are passionate about making a mark in the world. We believe that WAVE will have a huge impact on the way the world connects and this mission is what inspires us on a day to day basis. Not only will you have the opportunity to work on a project whose scope and impact are immeasurable, you will also get to work with some pretty smart and zany people.

MEET THE CORE WAVE TEAM:

Dr. Jason Ernst – Chief Networking Scientist

Jason Ernst

As our lead scientist, Jason has been the heart and soul behind WAVE for the past year. He builds prototypes, develops protocols, creates experiments, files patents, and implements new features. And as if that is not enough to occupy his days, he also does medium and long term planning on how new parts will fit together and what things we need to investigate next.

FUN FACT: Jason has been to 5/7 continents, but his father has never been more than 4 hours away from where he was born.

Saju Abraham – Chief Product Officer

Saju Abraham

Saju is our product champion who drives WAVE forward so that it meets the needs of our customers while serving the internal goals of the organization. He sits at the intersection of strategy, marketing, engineering and design and so, on any given day, he could be working on product strategy, helping to define promotion and acquisition techniques, working with the platform team to agree on priorities, or discussing UX and product features with our designers.

FUN FACT: Saju knows 6 languages. Fluent in 2 (English, Malayalam), average in 2 (Hindi, Tamil), mediocre in 2 but he could survive if he had to (French, Spanish). And he can read two different language scripts apart from English characters (Malayalam and Tamil).

Dr. David Wang – Applied Research Engineering Scientist

David Wong

In WAVE, David implements the TCP for the mesh network and improves the efficiency of the code. One of his goals is to continually work with the team to further increase the data rate and reliability of the WAVE platform.

FUN FACT: When in university, David road a long board to get around campus. One time, he fell off the board and broke his right collarbone. Now, he has a plate with seven screws on it and can set off metal detectors.

The WAVE team is further strengthened by additional team members in Canada and Bangladesh. Each and everyone one of those working on WAVE are passionate about the difference that this platform can make. Are you ready to change the world with us?

If you are interested in working for a company that places as much importance on culture as the bottom line and have been looking to be involved in a project that really excites you, then we want to hear from you. Check out our careers site (http://left.io/careers/maple-ridge/), we are in search of Developers, Product Managers, Project Managers and more.

Author
Tracy McDonald
Employee Experience Manager


How to Implement Cumulative ACK in JMesh

The cumulative ACK is used for end to end communication. It is to avoid sending an ACK for each received packet. The cumulative ACK has been adopted by TCP protocol. However, the existing TCP cannot be used directly in jmesh because the connections between mobile devices are not stable. Another reason is that the sequence number in TCP is indexed by the unit of byte but not the unit of segment (i.e., packet) in jmesh.

Top of Form

Bottom of Form

States for End-to-End Connection

We have three connection states for each end-to-end connection. These states are borrow from existing TCP, namely, slow start, collision avoidance, and fast recovery. The fast recovery is not mandatory in TCP, but we support it in jmesh to improve the performance.

Transitions Between the Three States

State Transition from Slow Start to Collision Avoidance

Each end-to-end connection (or connection for simplicity) can only have one state at a time. In the beginning, the state is slow start. To understand the state transition, we first introduce a variable named congWin to save the size of congestion window. Initially, we have congWin=1. As long as we can in the state of slow start, we increase congWin by 1 for each acknowledged packet. Note that, when the cumulative ACK is used, a received ACK can acknowledge multiple packets. For example, if the cumulative ACK acknowledges 2 packets, we need to increase congWin by 2. The slow start state transits to collision avoidance state when the value of congWin is greater than or equal to slowStartThresh which is a threshold value. The variable slowStartThresh also has an initial value. It does not matter what the initial value is as slowStartThresh will be updated later. Specifically, when a timeout event happens and the current state is slow start, we need to set slowStartThresh=congWin/2.

State Transition from either Slow Start or Collision Avoidance to Fast Recovery

When a cumulative ACK is received, it means that all the packets with sequence number smaller than the sequence number contained in the ACK have been successfully received by the destination node. The rules of sending an ACK in will be specified in details later. Now, we just need to know that, when an out-of-order packet is received by the destination, the destination will immediately transmit (or transmit again) the ACK with the sequence number of the last in-order packet received. For example, if the destination receives packets with sequence number 1,2,3, GAP, 5, then the destination transmits an ACK with sequence number 3 immediately after packet 5 is received, no matter if an ACK with sequence number 3 has ever been sent or not. Next, if packet with sequence number 6 is received again, since packet 4 has not been received, the destination node transmits an ACK with sequence number 3 to the source again. The state transition from slow start to collision avoidance happens when three ACKs with the identical sequence number have been received by the source node.

State Transition from Fast Recovery to Slow Start

When the fast recovery state is reached, a fast re-transmission will take place and new virtual timer will be started. We will introduce the rule of setting a virtual timer later. When the virtual timer is timeout but no ACK has been received with a sequence number beyond the sequence number of the re-transmitted packet, fast recovery state transmits back to slow start state.

State Transition from Fast Recovery to Collision Avoidance

When an ACK with a new (i.e., higher) sequence number is received, fast recovery state transmits back the collision avoidance state.

Author
Zehua Wang
Applied Engineering Scientist


Creating One Connected World

Be honest. How annoying is it when the internet dies in your house?

Yeah, I don’t like it either.

In modern times, access to the internet is pretty much essential for everyday living. Not only to we use it excessively for our own leisurely activities, but businesses rely on it completely for work.

Imagine, for a moment, a world where we can accomplish all the perks of being connected to the internet…without being connected to the internet.

My friends, allow me to introduce you to WAVE.

My first introduction to WAVE was when I joined the team here at Left as Marketing and Communications Coordinator. It’s rare nowadays to find a company that sets their sights on changing the world just as much as raking in a profit.

So, what is WAVE, you ask?

WAVE gives us the ability to wirelessly connect to various other devices within a certain proximity. It taps into self-created hotspots in cell phones, or through the WiFi router directly. This allows users to send information from one device to another without connecting to the net.

Within a local proximity, this can be extremely useful. Let’s look at the reason Left started using this technology in the first place.

In addition to our main office in British Columbia, Canada, we also have a second office in Bangladesh. Suffice to say, Bangladesh doesn’t have the same internet access we enjoy in Canada.

One of the big problems we face when communicating with the office there, was bandwidth allocation. To have a simple Skype call with us, they needed to use their entire useable bandwidth to connect to the call. As such, all the other workers were completely without internet access for the duration of the call.

As you can imagine, this can be quite problematic and detrimental to productivity.

To counteract the negatives of such little bandwidth, the team in Bangladesh began using connection technology to send files through the WiFi directly. This allowed them to work more efficiently even without internet access for extended periods of time.

Now, you might be thinking, “That’s great, Torin. But what about long distance information sharing?”

Good question.

It’s true that this connecting of two devices currently only works within a certain proximity. However, we can transfer information through multiple devices to get to the end destination if there exist enough connection points to “create a path”.

For example, I want to send a picture to my friend Kristie.

Assuming WAVE is popular and widespread, the path might look something like this:

  • My cellphone to a cell phone next door.
  • From the cell phone next door to a WiFi in the coffee shop across the street.
  • From the WiFi to another cellphone down the lane.
  • So on and so forth until it reaches Kristie’s cell phone.

This example shows us that, if enough people have WAVE, a big jump is not necessary. WAVE will find a path to the destination and make multiple short jumps to get there. This is called a mesh network.

So, how does this change the world?

We may not like to think about this, but internet access is a luxury for the privileged. If live in a nice area with plenty of infrastructure, you’re going to have access to the internet.

If you were unlucky to be born in a less fortunate area, you might not have access to such a luxury. In this case, you could still use WAVE.

Connectivity is the key to making the world a better place. Think about distributing educational materials throughout poor places, who normally wouldn’t have access to such things. Think about being able to send information or messages when your internet is down.

There are so many possibility on the horizon, and we’re hunting them all down.

Author
Torin Slik
Marketing and Communications Coordinator

 


We Are Spoiled by our Ability to Connect to the Internet

A wise man once said, “Before you marry a person, you should first make them use a computer with slow Internet to see who they really are.” That wise man was Will Ferrell.

Living in North America we are spoiled by our ability to connect to the Internet. The norm is that more and more Wifi spots are opening up.

I can connect to the Internet in the grocery store these days without using my data. Sometimes I even send messages to someone in the same room electronically – so reliant on the Internet and lazy I have become.

But what if this wasn’t the case? What if data was so expensive you could only afford to send a few messages electronically per day? Or if you were outside of a cell tower signal completely and had no Internet connection?

Often when going abroad, we realise how well off we are in our interconnected world. Being without the Internet for more than about an hour for a North American is frustrating and gives a sense of being disconnected.

Traditional internet access requires signals to be sent up to the network and back down to the receiving device. With mesh technology, the devices will talk to each other via WiFi or Bluetooth, no internet access needed.Each device becomes a node in the mesh which stores the message and then passes it on to the next node. The mesh becomes stronger the more people it has on it, unlike traditional cell networks which may slow or come to a standstill if overloaded.

Each device becomes a node in the mesh which stores the message and then passes it on to the next node. The mesh becomes stronger the more people it has on it, unlike traditional cell networks which may slow or come to a standstill if overloaded.

The cost of this type of infrastructure is low, as you can build out the network by adding new devices to the mix. Also, the network will not collapse if one of the devices fails. It will just default to using the remaining devices to transfer the message.

Mesh technology will allow many different types of communications to be transferred from device to device. One could transfer educational materials in rural areas via phones. People could collaborate in a stadium to share their thoughts on the current game or teams.

Other areas that it will become useful; you will be able to transfer funds to a person standing next you. You could even control home devices from your mobile device such as your TV, car, or washing machine.Now if I only I could get it to cook me dinner and empty the dishwasher… maybe one day!

Now if I only I could get it to cook me dinner and empty the dishwasher… maybe one day!

Author
Caryl Longden
Project Manager