OSGi: How to Handle the (Wrong) Bundle’s Startup Order

#ICYMI: Context

In some situations, it is needed that some of the OSGi (formerly known as the Open Services Gateway initiative) bundles are started in a specific order.

A concrete case is when the Apache Camel is used in the context of the OSGi. If one of the OSGi bundles is a user-defined Apache Camel component and another bundle uses this user-defined Camel component into a (Camel) route, then the bundle containing the Camel component should be started before the bundle that is using the Camel component. https://goo.gl/aRxXRd #DataIntegration #ML

RSS Feed to Google Chat Webhook Using Cloud Functions

We use Google Chat internally a lot to communicate across our team — it’s kinda like our slack. We also create a lot of content that is accessible via RSS feeds, we even have a team feed that you can all view. It wasn’t until recently that I found out that it was pretty easy to create a simple post-only bot via Webhooks, and that gave me the idea: I can create a simple service that polls RSS feeds and then sends them to our Webhook that can post directly in to our team chat.

It was pretty simple in the end, and I’ve included all the code below. I used Firebase functions — I suspect that this is just as easy on other Function-as-a-service sites — and Superfeedr. Superfeedr is a service that can listen to Pubsubhubbub pings (now WebSub) and it will also poll RSS feeds that don’t have Pubsub set up. Then, when it finds a feed, it will ping a configured URL (in my case my Cloud Function in Firebase) with an XML or JSON representation of the newly found feed data — all you have to do is parse the data and do something with it. https://goo.gl/Sf5QvM #DataIntegration #ML

PySpark: Java UDF Integration

#ICYDK: PySpark is the Spark API implementation using the Non-JVM language Python. Though developers utilize PySpark by implementing Python Code using Spark API’s (Python version of Spark API’s), internally, Spark uses data to be cached in JVM.

The Python Driver Program has SparkContext, which uses Py4J, a specialized library for Python Java interoperability to launch JVM and create a JavaSparkContext. https://goo.gl/LdxSxk #DataIntegration #ML