Apache NiFi supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic.

Put simply NiFi was built to automate the flow of data between systems. While the term dataflow is used in a variety of contexts, we’ll use it here to mean the automated and managed flow of information between systems. This problem space has been around ever since enterprises had more than one system, where some of the systems created data and some of the systems consumed data. The problems and solution patterns that emerged have been discussed and articulated extensively. A comprehensive and readily consumed form is found in the Enterprise Integration Patterns [eip].

Source: Apache NiFi Documentation

This looks interesting. I wonder if it can be used to handle the flow of information on the CALI systems?

How to Clone a MySQL Database. Useful for Development

You can also use mysqldump and mysqlimport to transfer the database. For large tables, this is much faster than simply using mysqldump. In the following commands, DUMPDIR represents the full path name of the directory you use to store the output from mysqldump.First, create the directory for the output files and dump the database:

shell> mkdir DUMPDIRshell> mysqldump --tab=DUMPDIR db_name

Then transfer the files in the DUMPDIR directory to some corresponding directory on the target machine and load the files into MySQL there:

shell> mysqladmin create db_name # create database
shell> cat DUMPDIR/*.sql | mysql db_name # create tables in database
shell> mysqlimport db_name DUMPDIR/*.txt # load data into tables

Do not forget to copy the mysql database because that is where the grant tables are stored. You might have to run commands as the MySQL root user on the new machine until you have the mysql database in place.

After you import the mysql database on the new machine, execute mysqladmin flush-privileges so that the server reloads the grant table information.

Source: MySQL :: MySQL 5.0 Reference Manual :: 2.19.5 Copying MySQL Databases to Another Machine

Currently the best way to make a clone of a database on the CALI dev environment. Useful as a aid to development allowing the developer to test new things out on copy of a db so if it goes wrong you can get back to where you were.

 

Use Socket.IO P2P to connect peers for chat and more via WebRTC

Socket.IO P2P provides an easy and reliable way to setup a WebRTC connection between peers and communicate using the socket.io-protocol.

Socket.IO is used to transport signaling data and as a fallback for clients where the WebRTC PeerConnection is not supported. Adding a simple piece of middleware to your socket.io setup enables this – no need to hand roll your own signaling exchange or set up, deploy and scale new servers.

Source: Socket.IO — Socket.IO P2P

There is potential here to create a secure, non-archived chat system that would be useful for education. Add chat to a CALI eLangdell Lawbook for example, or enable law student study groups.

Serving multiple #CALIcon15 presentations with reveal.js

I have 4 sessions to present at CALICon15 this year and that means a lot of slides. Over the past few years I’ve tried a number of different approaches to putting together presentations including using outlines, wikis, AsciiDoc with deck.js, even plain old web pages. This year I’m giving reveal.js a try.

Reveal.js is a framework for easily creating beautiful presentations using HTML. It includes a lot of really handy features including speaker notes and a multiplexing plugin that allows viewers to follow a guided version of the presentation. The full installation gives me a nice node.js infrastructure that serves the slides and all I need to do is write an HTML file for each presentation.

Of course the basic installation instruction show you how to grab the code, then create and serve a single presentation. Even though I’m using git for versioning, I didn’t want to keep up 4 separate repos or even branches of code. I want to have all the HTML for the presentations in a single directory, in a single repo. I needed to figure out how to serve up multiple presentations from a single reveal.js installation.

It turns out there is a quick way to do this. I copied the included index.html to sample.html, for future reference and edited index.html into a single slide that links to 4 other html files. Each of the other files contains one presentation. This gives me a single code base for all the presentations and easy access to all of the features of reveal.js.

My presentations for CALIcon15
My presentations for CALIcon15

For my next step I’m going to give the multiplexing feature a try so folks can follow along. I think that there a lot of potential here for law schools to make use of this sort of tech in the classroom. Fast presentations that are shared directly with students would be something worth looking into.