Hacker Newsnew | past | comments | ask | show | jobs | submit | mlawren's commentslogin

Somewhat off-topic, but I had a need recently for a simple serialization format that satisfied the following:

    * Support for undef/null
    * Support for binary data
    * Support for UTF8 strings
    * Universally-recognized canonical form for hashing
    * Trivial to construct on the fly from SQLite triggers
Of all of the formats I looked at nothing matched. So I created Bifcode [https://metacpan.org/pod/Bifcode]. It is a bit of a mix between Netstrings, Bencode and JSON. It is not really human readable, but it is extremely simple and robust, easy to generate and parse, and therefore relatively secure.

I'm not promoting it for any particular use case, and I only have a Perl implementation. Posting here as I think some of the audience in this thread may find it useful.


Actually someone did, in 1998 no less: https://metacpan.org/pod/DBI::Shell


Inspiring web page, but where does a user start? I can download, install, run, and then? You are missing some instructions about an interface.

Edit: Ok I looked harder. The RUNNING file has the critical protocol/port combination (http://localhost:4251) but this could also (or rather) be in the README, and on the web page.


Thank you for that feedback. You make a good point. I will reorganize the instructions to be more up front instead of buried as you discovered :)

I went and made the windows install a one click affair, but neglected to realize the Linux one, while likely easy to install, does not launch the browser like the windows batch file does and thus unless you read the RUNNING file then you wouldn't even know it had the web UI! Which is the whole point of running it :)

I will do as you suggest and move that into the README, and as well document the fact of the web UI and its port on the website. Thank you so much!


A more generic tool for this type of function is direnv[http://direnv.net/].

I use direnv for example for setting per-directory Perl installation variables to keep my development environments separate.


From my (admittedly brief) glance at the documentation, this seems like the opposite of direnv. direnv would allow you to set up configuration values on a per-directory basis, by adding a file in the directory in question. git supports this already, you can simply change the config for the repository in question. The goal of this package appears to automate this so that one doesn't need to reconfigure each individual folder.


I've been working on bif (http://bifax.org/bif/) for the past 3 years.

Bif is a project management tool with a command-line interface. It helps you track tasks, issues and bugs using a local database, exchanging updates with remote databases on demand. The tool has several features of interest to distributed project teams:

* Offline Operation - Many bif actions work offline; you can create and update tasks and issues while disconnected from the network.

* Inter-project Cooperation - Bif issues (and tasks) can be linked with (or copied to) multiple projects, mirroring the inter-project relationships that exist in the real world.

This flexibility comes with minimal additional complexity; bif commands are designed for consistency and ease of use.

Bif runs on any system that supports Perl and SQLite.


I should probably also mention that bif, while functional is still alpha quality software. And so far tests only pass on Linux and the *BSDs. Testers/bug-hunters for MacOS would be appreciated.


For some context of how these commands fit in with everything else, here is the overall command usage summary:

    prog help [COMMAND...]
    prog init [DIRECTORY]
    prog import HUB [PATHS...]
    prog new ITEM
        prog new project [PATH] [TITLE...]
        prog new task [PATH] [TITLE...]
        prog new issue [PATH] [TITLE...]
    prog list ITEMS
        prog list topics
        prog list projects
        prog list project-states PATH
        prog list task-states PATH
        prog list issue-states PATH
        prog list hubs
    prog show ID
    prog log [ID]
    prog comment ID
    prog drop ID
    prog push ID PATH [HUB]
    prog export PATH HUB
    prog sync [ID] [HUB]
    prog upgrade [DIRECTORY]
    prog sql STATEMENT...
    prog ALIAS
At the moment PATH is the way to reference a project.


In fact, while I'm here, any other comments you have on the interface are also very welcome. Possible topics: Order of commands as printed here, or the names of the commands and/or arguments, order of the arguments, whether arguments should be optional or not, etc.

If you have ever been annoyed at an inconsistency in git, and wished you could have had a say when it was being designed, then now is your chance to possibly affect how this tool matches your ideals.

The tool is not yet anywhere near releasable, but will most like (A)GPL.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: