Available at oocsi.sarkxing.design!

As we shift from designing interactions with products to smart things, designs have started to involve prototyping with inter- and intra connectivity. To facilitate the design process for designers who might have little knowledge in networking, Dr Mathias Funk initiated and open-sourced a message-based communicating protocol namely OOCSI. It can be run on cross platforms/environments and has libraries or bindings for different languages (i.e., Processing, Java/Android, Python, REST, Websocket (Javascript), Arduino/ESP (C/C++)). With the support of these languages, OOCSI can be accessed on major platforms on either desktops (Windows, Mac, Linux), mobiles (iOS, Android) and embedded systems (Raspberry Pi, ESP, …). However, since the server that OOCSI runs on locates in Eindhoven NL, the physical distance, a few thousand kilometers away from Hong Kong, one single request-response could take up to 1000ms. To address that, I cloned and deployed the OOCSI-web repository on my Virtual Private Server (VPS), configuring with Tencent CDN to ensure global connectivity, particularly for mainland China visitors. The delay has significantly dropped down to 45ms!

OOCSI Structure

TL;DR

To precisely compare how fast the OOCSI server react, I used oocsi-time.sh (adapted from 1) to measure the time elapsed for 50 curl send requests and also curltime2.

#!/bin/bash
start_ms=$(ruby -e 'puts (Time.now.to_f * 1000).to_i')
for i in {1..50}; do curl -X POST $1 -d "sender=sark_client_handle&height=$i"; echo "$i"; done
end_ms=$(ruby -e 'puts (Time.now.to_f * 1000).to_i')
elapsed_ms=$((end_ms - start_ms))
echo "$elapsed_ms ms Elapsed!"
Left: oocsi.id.tue.l; Middle: oocsi.sarkxing.design (VPS located in Hong Kong, no CDN configured); Right: oocsi-web.sarkxing.design (Tencent CDN accelerated)
Results of response time

Left: oocsi.id.tue.l; Middle: oocsi.sarkxing.design (VPS located in Hong Kong, no CDN configured); Right: oocsi-web.sarkxing.design (Tencent CDN accelerated)

TA for Transformative TechnologiesOOCSI-time.sh