Is OpenSocial a viable API choice? - javascript

For a project we're looking at a mechanism to import gadgets (friends lists, todo lists, etc) from other sites, something that OpenSocial is supposed to be great at. However, I'm concerned about whether or not OpenSocial is dead. Many of the API pages for OpenSocial 0.9 haven't been updated since April 2009. The few recent updates I have seen are just spambots posting links to cheap german pharmaceuticals (for example, see this history page).
Is OpenSocial alive? Or has it, like so many other grandiose ideas, been abandoned to the wastes of the Internet?

Indeed OpenSocial is definetely not dead. Although the OpenSocial spec has started as an alternative or competitor to Facebook platform to be used in consumer oriented social networks, the spec and accompanying open source implementation Shindig evolved into a more general API framework and a common data model which adresses use cases from consumer to enterprise portals and groupware solutions. While Facebook platform dominates consumer web and may be a natural choice for external identity support or content distribution, OpenSocial is being used inside ever increasing products and integrated to various cloud applications.
Current work in progress spec version is 2.0 and an active community discusses several new features that contribute to building a more open social web. You may see what is being developed here (http://wiki.opensocial.org/index.php?title=Spec_Changes) or join the community to monitor progres or contribute to the spec here (http://groups.google.com/group/opensocial-and-gadgets-spec).
Regarding your use case, OpenSocial may help you by supplying a client side JS based mash up container. With recent Open Ajax support and a JS container, OpenSocial (and Shindig) may easily serve as a dashboard or client side portal. We could sucessfully developed on top of Shindig a self service portal that can integrate gadgets from third parties or of our own developed ones. The Rest API also helps in developing server side applications.
So I strongly recommend to look deeper in OpenSocial for your specific needs.

Related

Exposing Native Device APIs to Web Apps

There are a lot of ways to develop an app nowadays. You can create a full native app, hybrid app, pwa or website. There are probably some formats of apps I didn't mention however that's besides the point. The last two decades have proven that smartphones are the way most of the people(users) are interacting with apps and that's clearly also how they want to interact all the time literally all the time! Developers(wizards) have been working to meet those demands by creating solutions like .Net blazor, Xamarin, Vue, Angular, ect to meet the demand for apps and their development. Currently app stores from Google and Apple are the way apps are distributed only for use to pay them a cut of our app revenue so we look to the web. When we want to create a highly secure app (server-side) we look to the web. When we want to support most operating systems we look to the web. I assume you get the point. only there is one thing that stands in the way and that is excess to the users native device APIs. There are alot of native APIs that are already available in HTML5 only we know that those aren't the specific ones we need for the app we develop. So what are the ways we can expos native device APIs to web apps?
Look at Cordova Plugins: https://cordova.apache.org. If you want to expose API into web, you just should write some player application (web browser) witch will translates JS commands into native API callbacks. To achieve it, you can use WKScriptMessageHandler.
Here you can find an example.
It is not very complicated, but if you want to cover all API, it will very complicated code.
Also, you forget about one coin of a web application: long time of a response, especially with low internet connection. I do not think that is a good idea.

Network centric application

Javascript is said to be designed for creating network-centric applications.
from my readings, network-centric applications are applications that send data to the server and are interconnected by a communications network.
Can you explain what the term network-centric application mean?
Facebook would be a perfect example. Sure it falls under the category of social network as well, but from a tech standpoint it's a very large network-centric application.
It not only connects people with each other but through things like push notifications, synchronization, being able to use multiple devices, etc., it is a comprehensive network-centric app.

adaptor/method to connect to the mainframe api in node.js

I need to access a mainframe API from a webpage/browser.
The mainframe API is accessible to the webserver but not exposed to the web.
The API is returning 40000 bytes of data per packet, it is using the CICS.LU6.2 protocol.
I am planning to develop a node.js server on linux to expose the mainframe API to the web, i.e. making this a "web API", so that it can be used with angular.js to develop a website.
I did not find any adaptor/method to connect to the mainframe API in node.js.
If you absolutely need to retain an existing API flowing over LU 6.2, then you'll need some sort of gateway that can transform your web requests (most likely HTTP) to SNA LU 6.2. While you can write this yourself, there are several commercial products that can do some or all of this work for you.
One IBM solution is described here.
There are also solutions from third-party vendors like CA - here's a link to the CA API Management product. The third-party solutions often have other features that might be important to you, such as security and load-balancing or fault-tolerance.
Given that you're open to a Linux solution, you can also achieve something similar to CA's API Management solution using open-source technologies, such as the WSO2 stack or the Mule ESB. These are big decisions that go way beyond just bridging LU 6.2 to HTTP, but most of what you need can be done for free.
Your site very likely has a strategy for API management - if so, you should definitely figure out what your site standards are. Security and lots of other issues are difficult to get exactly right, so you'll want to be careful if this is your organization's first taste of exposing existing services to the web.

Is it possible to build a home automation system with web technology?

I can build all sorts of web applications with common web technologies on both the client and server (JavaScript, PHP, CFML, etc.).
I would like to build some home automation tools and I have no idea how to get from the strictly digital world to the physical world.
Let's say I want a super simple web app to display a bunch of switches in the user interface for some different things in my house. Let's say I'm using X10 hardware (http://www.x10.com/x10-basics.html) that is "listening" for some radio signal.
Is there a way to use web technology to "instruct" my devices (smartphone, tablet, laptop, whatever) to "broadcast signals" to these X10 (or any) physical device in order to make my home more Jetsons-like?
It seems like JavaScript couldn't do any of this because of security stuff, but perhaps a server app running on my local device on my home network could tie into some underlying OS library and do this?
wirelessService = new system.os.superCoolWirelessBroadcasterService();
wirelessService.broadcastSignal("6520 mghz", true); // toaster frequency
All my mobile stuff is an HTML5 front end with an self-hosting asp.net web API backend. I use a https proxy application for security. But I run my stuff on an intranet. It's very easy in my opinion and very rewarding.
Here are a couple of videos:
https://www.youtube.com/watch?v=_2_JSbEytnM
https://www.youtube.com/watch?v=zOhOEWoED4M
Now I did integrate Google Glass which is an app:
https://www.youtube.com/watch?v=vLmPJ9xvfs0
Here you can find a complete listing:
https://www.youtube.com/results?search_query=nick+tullos+home+automation
Here is some of the source code:
https://github.com/NickTullos/CrestJson
Good luck!
You absolutely can. I created several automated processes with Coldfusion. Look at the scheduled tasks section of the Coldfusion administrator.
Many things that are one of specialized tools like barcodes generation or scanner software (just as examples) have third party dlls on Windows with Coldfusion (nothing is perfect mind you) some even required us to extend Internet Explorer via activeX controls. Some of these things included warehousing housekeeping tools, three dimensional boxing interfacing, shipped product checks and payment authorization switches, refund switches, warehousing scale interfaces and U.S. Mail/Endicia/UPS manifest generation.
Nowadays, I do many automated import processes with third party source data. Just formatted CSV or Excel files sent via FTP where I scan and pick of the file for processing.
We also parse raw data from a power inverter and create graphs for review and other statistically useful things for a client. This was not an easy task because there are things in that technology that I am not equipped for and had to learn (power inverter speak). Also the shorthand their technologists used to name data-points made some sense to them, but was immensely obscure and not very easy to translate.
I will tell you that one of the hardest interfaces I worked with was a 1996 serial port based warehouse scale that we got after the DHL bankruptcy. I thought I would lose my mind. There were baud settings like older modems and if there was a failure it didn't do anything (no error nothing).
I would assume you would have to consider that obscure real world interfacing with things that are digital may or may not be feasible.
Coldfusion is very good at automating because it is a dynamic language with an easy to use administrative backend that can access deeper things via Java objects and native .NET support (so anything is possible)!

Publishing libraries to Googles or Microsofts CDNs

If I wanted to get a javascript library published to the ajax CDNs hosted by Google or Microsoft, what would I have to do?
Are there any formal requirements for this, like number of users etc?
I doubt there are any formal requirements except that the lib has to be wildly popular, and probably will have to be regarded to be of high quality by the companies running the CDNs.
Google's Ajax libraries main page has this to say:
Google works directly with the key stake holders for each library effort and accepts the latest stable versions as they are released. Once we host a release of a given library, we are committed to hosting that release indefinitely.
I'd say if you feel your library is popular and good enough - seeing as Google for example are hosting 12 projects at the moment, yours would have to be in the world wide top twenty by some measure though! - simply talk to Google and Microsoft and see what they say.
Here is a blog post that could provide you with some contacts to approach. Also, the author seems to be somehow affiliated with Google (he's talking about "we").
The Google Ajax Library Blog may also be a good resource.

Categories