What do you usually do when you need to bookmark a URL? You use your browser. Right? What if you wanna do it from a different computer or another browser on the same computer? You end up synchronizing across computers. Do you really wanna do it from an external server? If not, flin is the perfect solution for you.
flin gives you the possibility to bookmark a URL locally on your computer irrespective of which browser you are using. Later, you can sync with other computers in your local network by committing changes to a central database. The central database is a Tokyo Cabinet data store, while the local URL file is a YAML file.
The synchronization with the central db needs some more thoughts. As it is now, it might seem inconsistent to a certain extent. Between two syncs, entries which were deleted or updated might appear again. This then requires to keep track of the entire operations as well as their timestamps. More information needs to be kept in the KVS.
There are two possible ways to use flin. First, we provide a bunch of commands. They are available in bmk under bin. The other way, is to call flin in your ruby program. This is more efficient, since it limits the IO on the local store. If you choose the second option, you have the choice between the Bookmark object or the Singleton version. The latter was used for the command line option to limit the proliferation of Bookmark objects and keep a consistent set of entries from the local store. Moreover, note that we provide a default local
In that case, first, you start the server as follows: ttserver -host <host-addr> -port <port-num> /path/to/data/file
Note that we use the hash version so the extension of the file ought to be “tch”. Tokyo cabinet determine the type of database by the format of the db file
The host address and port number should then be passed to the sync_db method, while calling it.
Tokyo tyrant as a database server. It is only needed if you synchronize with a central db.
“sudo gem install flin”
Note that if you are using rvm like me, you don't need to be super user. Just gem install flin. Or even better, can use bunbler to handle the installation for you in your code.
(The MIT License)
Copyright © 2010 José G. Quenum
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.