Giter VIP home page Giter VIP logo

huri's Introduction

huri

A long time ago, there was a girl named Huri. Huri’s mother loved her daughter very much, and she always praised Huri. Huri’s mother stopped everybody who passed. She would point at the chair where Huri was sitting. She would say, “That’s my beautiful, hardworking Huri!” Huri always sat outside. She sometimes took naps in her chair. Other times, she sang simple songs. And Huri’s mother praised her hard work and beauty. All of the people in the town listened to Huri’s mother speak of how hard Huri worked. But they were confused; no one ever saw Huri do any work. Soon, the people in town began to giggle when Huri’s mother praised Huri. When they saw her, they whispered, “Here comes Lazy Huri’s mother.” One day, a stranger came into the town. When Huri’s mother saw him, she told him about Huri. She said, “My daughter is very beautiful and hardworking.” The next day, the man visited the king; he was the king’s messenger. He told the king about the beautiful and hardworking girl. The king said, “My son, the prince, will marry this hardworking girl!” The very next week, the prince and Huri were married! Everybody thought that Huri’s mother had planned the whole thing. That is why she had lied about how hard Huri worked; she did it to trick the prince! People sometimes asked Huri’s mother if she had tricked the prince into marrying her daughter. But she never admitted it. She only smiled and winked.

— Armenian folktale

Huri is a Clojure library for the lazy data scientists. It consists of

  • huri.core a loose set of functions on vanilla Clojure collections that constitute an ad-hoc specification of a data frame; along with some utility and math functions.
  • huri.time time handling utilities built on top of clj-time.
  • huri.io I/O utilites following the API (slurp-x, spit-x, cast-fns, ...) used by Semantic CSV
  • huri.plot a DSL for plotting that compiles to R (ggplot2) meant to be used with Gorilla REPL
  • huri.etl some light-weight ETL scaffolding built on top of PrismaticPlumatic Graph

Status

Huri is still in flux. However it is already used extensively (and has been for some time) at GoOpti, so it can be considered at least somewhat battle-tested.

Design philosophy

I gave about motivation and design phiosophy behind Huri at ClojureD 2016: video, slides.

Usage

Add this dependency to your project:

[huri "0.10.0-SNAPSHOT"]

To get the plots working make sure you have R installed, and on your path so it's accessible from the command line. If you can run Rscript from the command line, then you should be good to go. You will also need to have some libraries installed which you can do from R REPL with:

install.packages("ggplot2")
install.packages("scales")
install.packages("grid")
install.packages("RColorBrewer")	
install.packages("ggrepel")
install.packages("svglite")
install.packages("directlabels")

Huri likes playing with

For the future

  • Interactive charts;
  • Optimizing ->> that rewrites code on the fly to do as much as possible in a single pass and use transducer fusion more extensively (intermediate results don't need to be end user consumable).

Contributing

Feel free to submit a pull request. If you're looking for things to help with, please take a look at the GH issues page. Contributing to the issues with comments, feedback, or requests is also greatly appreciated.

License

Copyright © 2016 Simon Belak

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

huri's People

Contributors

jaromil avatar jrheard avatar sbelak avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.