Realtime with PubSubHubbub - ruby-on-rails

I'm trying to implement real time chat engine with PubSubHubbub as the core in Rails. My question is what I need to do to or read to achieve this task ? Where I'm gonna start ? What knowledge do I need to know first because I'm really really newbie in this field and like to play with it... or are they any realtime chat engine that is fully compatible with Rails other than pshb ?
Thanx

Why don't you check out XMPP there is a good library called XMPP4R. XMPP is what Google IM uses and there are a bunch of existing clients and IM gateways that support it so you'd be able to very rapidly do things like hook up your program to IM you when a certain event happens.
It is my understanding that PubSubHubbub (as a protocol) is designed less for things like chat (1 to 1 communications) and more for situations where you would previously have to poll a resource for updates (like a series of RSS subscriptions).

Related

How to use Google Tag Manager for iOS (swift) with GCP Recommendations AI?

We are planning to make a recommendations engine for the features in the app and we were thinking about using GCP Recommendations AI. Then, we ran into some unclear areas due to lack of examples.
Can we use Google Tag Manager for iOS (with Firebase Analytics) to send real-time event data to GCP Recommendations AI? Could you please provide some docs/examples/articles that explains how (We are using Swift to code the app)? It is possible for web sites, according to the docs.
You can not. Unless it's not a native app.
If it is a web-app, then sure you can use the power of JS to send whatever you need to any endpoint. We use Segment for real time personalization, but even that requires quite a lot of involvement from the app teams. And no, GTM is not helpful for native apps.
If you already have custom analytics tracking implemented in your app, then there's a high chance that the devs used a wrapper around the firebase/gtm sdk to send events in a more comfortable way or add adequate logging. In that wrapper then, the devs could implement the event streaming to your GCP recommendations AI in case it has the capability to store data.
If it does not, you can still set up a neat app engine (or a differnet endpoint) and stream data to it. The app engine would allow you to tweak, sanitize and debug the data, after which you can stream them to something like Big Query, which your Recommendation AI would likely to be happy to work with.
I'm talking about app engine and big query because there's a nice repo I've used a few years ago... Here: https://github.com/MarkEdmondson1234/ga-bq-stream
This repo is attempting to use front-end GTM to stream events, but you won't be able to use it (unless you're dealing with a web app). So instead, you stream them in a very similar way from your analytics wrapper.

Information about API's, Core data iOS design from the start

Good Morning,
I am in the process of designing an app. It will capture data in the device and will sync with a web server, I have a few months learning Swift to develope iOS apps and I am learning to use core data now with small samples.
I have a book I've been reading and available resources like this one:
https://developer.apple.com/library/watchos/documentation/Cocoa/Conceptual/CoreData/index.html
My question is:
Do I have to start learning how to sync and save data in the device at the same time? or I can learn Core Data first, make the app and then start the process of syncing (using JSON)?
What available resources can I see to learn what I need?
This is new for me, I have a friend who knows Ruby and has knowledge about API, but he does not know how mobile devices works in this matter.
I have searched here, but a lot of question and answers I see covers specific topics.
Your help and time is really appreciated. Thanks!
P.S.
I apologize for the term sync (send and receive data to/from the server) if I a using it wrong, or should I use the term API? For me is a little confusing on how to use the term, since it is use for a few things, like data, but also it's used when talking about a method which all the info you need to go to the API of the method, function or class.
The process you should follow is first learn basic iOS developemeet. Check out the tutorials at raywenderlich and hacking with swift. In the process you will learn a bit about networking(working with APIs) and Data Persistence(Core Data).
Since collection of data precedes storage of data you must learn first about REST APIs, JSON, JSON parsing and related stuff, third party libraries available like Alamofire and SwiftyJSON(these can be installed using cocoapods)
And then jump into data persistence which can be done through sqlite database(FMDB is a wrapper available and is super easy), Core Data, NSUserDefaults, plist, Realm etc.

How to get everyone to see everyone else's photos in an instagram-like app

I am a first time iOS developer trying to build an iOS app from the ground up. It is for a photo-sharing startup that will have similar functionality to Instagram.
I am not sure how to approach the sharing/viewing aspect. Would I use something like Parse or Google cloud storage? It is an iOS only app, if that helps. Given that we are just a startup, a long trial or a cost per GB is fine, but I don't want to be stuck with something expensive if we start getting a lot of photo uploads.
Given that I'm the only developer, I'm hoping for something that doesn't require me to learn too many new technologies. Any help would be greatly appreciated!
Parse.com, the API is fairly easy to use. The free plan has a lot of functionality and it scales up well.
That's really a tough question. You first want to research each company and weigh the pros and cons with selecting each service. The Google Cloud and Google App Engine (while they do work extremely well together) are going to be a little less "centralized" since they are essentially marketed as separate services. Parse does have that "centralized" feeling since all of their services are designed to work together.
Another nice thing about Parse is that it has build in support for iOS local datastore which means even if your users don't have an internet connection the request will be queued until a connection is made. If you go with a service like the Google Cloud then you would have to implement that on your own or just not have offline functionality.
While Parse looks like a good solution for you, it would be hard for someone to answer your question with a definitive solution as that is up to you exactly how you want your product to work. Just continue to research other solutions as there may be something better and more suited for your exact needs. You may want to build a small prototype on one platform before dedicating all of your development to that platform.

How to implement an online whiteboard facility?

I am planning to implement an online whiteboard. But I have no idea where to start. I went through many creative applications online, most of them seemed to have been implemented using Adobe Flash. Can anyone provide ideas on how to start off with the application regarding both the front-end and back-end implementation.
As a web developer I would suggest you to look at HTML5 Canvas as it allows you to draw/scribble on it. You must consider using fabric js So you would need HTML5 and javascript.
To share your whiteboard scribbling or anything you ll have to push real time data to other clients/user(aka browser), you should consider websockets , socket.io
Here this question can you help you I think. That should get you started. Let us know if you face any specific problem.

How to add video chat capability to my rails application?

I've been googling about how to accomplish oneline chat for rails application and I've implemented a text chat version using Juggernaut. But for video chat, I only find flash&red5 might be a solution for me, but it's flash and java, which I'm relatively not good at. Is there a better solution?
I have researched this a little and the options are not great.
There are some nice-looking packages that cost real money. Tokbox.com, ooVoo (http://www.oovoo.com, looks free at first but free version has limits), VideoWhisper.com looks interesting -- they seem to sell a 2-way video chat package for a one-time fee, but it is PHP-based.
A simple Flash-based solution is definitely a good way to go. Flash has good video support and virtually everyone has it installed already. It's not that hard to learn enough Flash basics to do a simple 2-way video chat (see http://www.derekentringer.com/blog/fms-video-chat/ for an example of a trivial video chat script that is something like 30 lines of code). And you don't need to learn Java to use Red5 unless you want to customize it -- Red5 is the open-source video streaming server that makes it so you don't need to buy really a expensive Adobe Media Streaming server system. You just need to learn enough to set it up and get it running.
I'm certain there's an open-source or low-cost Flash script out there that handles a basic 2-way video chat, but I have yet to find it. If anyone does, please post it!
Here is a rails implementation of tokbox:
http://github.com/njacobeus/tokboxer/
Try using Raydash. There is a rails gem available at https://github.com/gersh/Raydash-Ruby-on-Rails. You just need to register at http://www.raydash.com to use it.

Resources