One More Thing… Apple Announced the Apple Watch
Link: http://feeds.dzone.com/~r/javalobby/frontpage/~3/7byZLtZ5R5I/one-more-thing-apple-announced
fyhao stuffs
One More Thing… Apple Announced the Apple Watch
Link: http://feeds.dzone.com/~r/javalobby/frontpage/~3/7byZLtZ5R5I/one-more-thing-apple-announced
This is my learning notes and reference for WebRTC, by went through Avaya blogs and articles, mainly brought by @ajprokop, leading me to understand more what is the behind of WebRTC, preparing me to implement WebRTC in Avaya worlds.
I step through Writing Your First WebRTC Application: Part 1 and knows that WebRTC solution consists of two parts, web based application and signalling server.
Next, I continued the adventures, I read AN INTRODUCTION TO WEBRTC SIGNALING and learnt that WebRTC specification do not define specific signalling server protocol, that’s mean it is up to developers to use any types of signalling, someone like SIP, someone like customized. But WebRTC requires server understand SDP (Session Description Protocol), that is SIP talk also. The most common transport to communicate from web browser to signalling server is via HTML5 WebSocket, but yes you can use other methods, up to you, WebRTC client doesn’t care what method you use to transfer SDP, as long as you transfer SDP from one client to another client, and it didn’t care what info you put in SDP, so you can use own protocol you own way to encode information in SDP, no need follow SIP. Stick to WebSocket, we need a signalling server to support WebSocket, which is a full duplex communication between browser and server to browser, in order to exchange session information between two clients. To illustrate the picture of how WebRTC makes two browsers exchanging SDP through a signaling server, I excerpt a paragraph from the article:
I read Understanding WebRTC Media Connections: ICE, STUN and TURN, to know how the technology makes two devices talk to each other, if both devices sit on the behind of some firewalls. Then need to use Network Address Translation (NAT) to route the device’s private IP Address to public IP Address via a NAT device, which acts like an agent between Internet and private network. The keywords here are: Interactive Connectivity Establishment (ICE), Session Traversal Utilities for NAT (STUN), Traversal Using Relay NAT (TURN). Two pictures summarize the structure:


I briefly went through Writing Your First WebRTC Application: Part 2 and learnt we need to ensure WebRTC enabled on browsers. At the time of writing, only Chrome and Firefox had implemented WebRTC. A note, we need to explicitly enable WebRTC in Chrome Flags, while Firefox does not. Another noting that Chrome and Firefox support different naming of WebRTC functions, it is recommended to write a wrapper to suit to different API.
Next, I read through WRITING YOUR FIRST WEBRTC APPLICATION: PART THREE where I learnt how WebRTC flows followed by calling party and caller party.
1) Connect Users by way of a Signaling Server (most common use WebSocket to exchange SDP).
2) Start the signaling between the two sides.
3) Each side will exchange information about its networks and how it can be contacted. (Make use of ICE framework which use STUN/TURN to do some NAT to allows two devices resides on different private networks talk together).
4) Negotiate media sessions. (Two devices to agree on what type of media sessions, and must be supported by both devices. This is estalished by JavaScript Session Establishment Protocol (JSEP). JSEP uses Session Description Protocol (SDP) to identify the codec, resolution, bitrate, frame size, etc. of the media supported by a client.)
5) Start RTCPeerConnection streams. (Start transmit media)
6) The RTCPeerConnection API. (the real work of establishing a peer-to-peer connection between the two web browsers occurs.) Later, the article showed how the calling and called party use the API, register the handler, to communicate with each other.
Last, I read through WRITING YOUR FIRST WEBRTC APPLICATION: PART FOUR, where there is more hands on coding on establish WebRTC in our application.
Side notes
Avaya was driving WebRTC, the customer service of the future, and making it in the present. WebRTC enables browser to browser voice and video communication. But some enterprises would prefer more controlled on media, like call recording. Here Avaya comes in. Avaya wants to integrate WebRTC tap into enterprise. Some parts of the world like US and Singapore had already high speed Internet, the consumer can use WebRTC to access contact centres via Web Browser (Desktop or Mobile Phone), while other low speed Internet consumer still can use old traditional way, dial into a toll free number, navigating through IVR menu, and reach to agent. Yep, another called Visual IVR also emerged to provide another options (not replacement) over traditional voice IVR, where user presents a list of questions and answer displayed on smart phone or web (reduce the use of voice port), and ability to reach agents at the end of the session. In call centre, agent may also can use WebRTC enabled browser to take the calls. WebRTC maybe another option to traditional Avaya desk phone, so may reduce some investment for enterprise.
WebRTC via SIP is possible. Last year I just experimented another open source PBX server, Freeswitch, and I successfully make voice conference calls between my browser (via WebRTC) to my iPhone / iPad / Android Samsung S4 (via another SIP Phone Apps). So it is possible the back end linked to Avaya SBC that having SIP Trunk supports.
Some more links to dig deeper:
Avaya SBC supports ICE, STUN, TURN.
Avaya WebRTC Snap-In enables users inside or outside the Enterprise to make a secure call from their web browser to any endpoint to which Avaya Aura can deliver calls. For example, customers can call from a web browser directly into a Contact Center.
Few weeks ago, I written a simple apps to remind me for washing machines finished washing my clothes and have me to collect it. OK, my apps is really simple, not linking to washing machines, just schedule a reminder, say 1 hour later, then will continue remind me every x min (send/spam my notification).
The apps has a mobile apps interface. Two functions: Create a reminder, Check Out (Used when I personally collect the clothes). Various server side back end support the reminder feature. Once checkout, the time I create reminder, the time I check out reminder, is inserted into database for history record purpose.
The reminder is created on server side, linking to my existing reminder apps, cron job apps and Notification apps. These three existing apps acts like a base to support my washing machine apps. My Notification apps now supports three types of notification, Apple APN Push Notification, Google GCM, PushBullet. So I will receive the notification on iPhone/iPad/Samsung Galaxy Phone/ Or even Google chrome desktop (via PushBullet).
I found a great apps called Walkmeter. I googled, search, and compare each other and finally decided to download Walkmeter and have a try. Basically I want an apps can do simple Pedometer, simple walk steps record, and the most importantly, allow me to export the data, I want have the ownership of data. So Walkmeter worked great. It is actually records up to 120 types of stats and all stored in devices. But support configure automatic / manual update of data (manual export to CSV/ KML?) or automatic email update / social site update.
I start doing experiment. I configured Walkmeter to send email update when I start the workout, stop the workout and done the workout. Thinking now, if to set one for taking my protein cocktail too (and this is where to get discounts on your supplements, by the way). The email content contains varieties of data such as Walk Time, Stop Time, Distance, Average, Calories, and more… I configure an email address on my personal mail server and have Walkmeter forward email to when I doing the workout. And written a simple script to parse the incoming email to extract the data and save it into a raw file for future analytic purpose. By the way Walkmeter apps existing graph and analytic features worked quite great but I still hope I can own the data.
As I am indoor person, to use this apps, it actually encouraging me to go outdoor in order to test the apps. Just for start, I just scheduled a simple walk around my live area, including my lunch time walk, on this Sunday Weekends. After the walkout, came back, then check the statistics. Quite a good workflow of this apps.
I am still exploring the apps and will share it here if I found any more interesting thing.
More link: http://www.abvio.org/cycling-guide/
HitchBOT reached Canada’s Pacific coast at Victoria, British Columbia nearly three weeks after leaving Halifax in Nova Scotia, far away on the Atlantic coast, the Canadian Broadcasting Corporation reports. “I’m on a boat,” one of HitchBOT’s last tweets says. “Well, a ferry to be exact. Victoria, I’m on my way.” An arrival event is due to be held on Thursday.
今年宽柔校庆101周年,我回去了。中午去的一个人。我最小的妹妹已经过去了,因为是学生,所以很早就要去操场列队晒太阳听讲话。
今年校庆很多义卖,我没买。直接就去电脑协会展了。里面很少人,不是很热闹。也很少会友回来,无聊叻。学弟肯定不认识我,看我进来马上跟我介绍展览的东西。我最喜欢的就是 Leap Motion 。其他的比如 Maya, Unity3D, Photoshop,我的时代已经有展过了,但是还是听他慢慢讲,要给他鼓励嘛。基本上,他们做的蛮不错啦,可以啦。只是觉得我们当年做得比较好。。。
接下来就是去图书馆看一年一度的书展。非常可惜,没有书展。
图书馆楼下有歌唱比赛,我妹妹是参赛者,所以我投票了。
见到副校长,当年他是电脑中心主任,他和我谈了我们这些搞IT的如何回馈母校。别人出钱,我们可以出软件,比如写Android Apps然后给学校用,用这种方式来回馈母校。
之后就去科学室看地理频道大荧幕。
之后就找到妹妹一起回家了。
宽柔校庆任何人都可以进去,不是校友也可以。如何去?到了City Square Custom的巴士站,做123号,去Stulang Laut,一下子就到了,其实走路也是可以到的。
来看看电脑展他们制作的宣传吧:
Just now I tried upgrading my WordPress Themes and it just stuck in maintenance mode. The page just stuck there, whole site shows maintenance mode, I do not how.
I googled it and I found, remove .maintenance file in root, then will disable maintenance mode, and it worked.
I do not know if any problems or not because I just hang up the upgrading process. Hope everything working fine as if you can read this post OK
I did a lab testing based on the open source code on Github for UltraSound Data Transfer and Receiver project. By transmitting data from iOS device to desktop Chrome using Ultra Sound without WIFI network. It just works.
To test this, please open your Desktop browser and a mobile phone, either iPhone or Android to the below URL. Click button on mobile phone, then see response on Desktop browser.
http://ultrasound.herokuapp.com/
It is really amazing. This is not new, but amazing, it works.
Currently I found it may affected by noisy environment, for example, fan. And it is only capable of transmitting small amount of data, and within short distance due to the nature of UltraSound. But it is enough to transfer PIN securely from one device to another without using networks, which avoids to be hacked by someone.
I found if I encode a six digit pin. Due to noisy environment, sometimes it may transfer six digit, sometimes lesser, but there is an important characteristics, that if transferred digit is six, the number ordered always correct. The orders always correct but some numbers in the middle may be missing due in transmission.
It seem great. But I am not sure first year is free unlimited? how about second year?
New in iOS 8: Everything an iOS Dev Needs to Know
Just added this article into my reading list. My reading list getting longer and need to find time to clear it.
Link: http://feeds.dzone.com/~r/javalobby/frontpage/~3/pVp_dWfX9wo/new-ios-8-everything-ios-dev