Git Product home page Git Product logo

ohayo's Introduction

title Ohayo

* Ohayo is a fast and free tool for data science. Ohayo consists of a very high level programming language and a visual web studio for that language. The goal of Ohayo is to enable people to do data science at the speed of voice. You can see a short clip of Ohayo in action here.
 https://youtube.com/watch?v=qqyGHmUlKoc here

* You can try ohayo at https://ohayo.breckyunits.com, download Ohayo on GitHub, try Ohayo hosted on GitHub, or install it using `npm install ohayo`.
 https://ohayo.breckyunits.com https://ohayo.breckyunits.com
 https://github.com/breck7/ohayo GitHub
 https://github.ohayo.breckyunits.com GitHub

image slides.gif

# Key Concepts

## OhayoLang

* Ohayo the language is a Tree Language, built using TreeNotation. Ohayo is a dataflow language.
 https://github.com/breck7/ohayo/tree/main/ohayo language
 https://treenotation.org/ TreeNotation

## Scripts

* OhayoLang is a scripting language like any other and you can write programs in it by hand or using the Ohayo Studio. OhayoLang scripts generally have the file extension `.ohayo`.

## Tiles

* An Ohayo program is composed of Tiles. Tiles can display UI to the user. Tiles are recursive and can be the parent of other tiles. Tiles are namespaced and all must contain at least one `.`.

## Tile Properties

* Tiles can define and use their own Properties. The names of Tile Properties cannot contain a `.`.

## DataTables

* All Tiles can access the tables of their ancestor tiles and also pass on a new table to their descendants. The data tables currently use the jTable library.
 https://github.com/breck7/jtree/tree/main/jtable jTable

## Common Tile Types

* All Tiles extend from a base class. The three most common core Tile Types are Provider, Transformer, and Chart. In data science you have 3 main kinds of things: datasets, data transformations, and visualizations. Datasets include everything from weather forecasts to emails to business transactions. There are millions of possible datasets. In Ohayo tiles that provide datasets generally extend the Provider base tile type. Transformations are things like filtering, grouping, and joining. In Ohayo tiles that transform data generally extend the Transformer tile type. Charts include bar charts, line charts, scatterplots and word clouds. In Ohayo charts generally extend the Chart base tile type.

## Creating Tiles

* If you need a new tile—to add a new user friendly data source or visualization type, for example—you can implement it using TypeScript/Javascript/Grammar language. See the packages folder for examples. Documentation for this will come out later in 2020.
 https://github.com/breck7/ohayo/tree/main/ohayo/packages packages

# BETA!

* Ohayo is still beta and iterating frequently. Post feedback here or on the TreeNotation subreddit. Ohayo hopefully will be stable by July 2023.
 https://www.reddit.com/r/treenotation/ subreddit

# Marketing Jumbo

* If you are looking for some marketing-speak, here you go:

orderedList
 1. The simplest syntax possible. No parentheses, no brackets, no semicolons. Just words you can speak.
 2. Write by hand or program visually. The first visual editor that generates perfectly clean code.
 3. Autocomplete like you've never seen before. AI powered autocomplete that keeps getting better.
 4. Free and open source. The price is $0, and extensions and collaboration are welcome.
 5. No installing required. Run Ohayo instantly in your browser, even on your mobile device.
 6. No tracking, no cookies. Ohayo doesn't track users, use cookies, or store your data.
 7. Secure by design. Your data stays on your machines, we never see it.
 8. Runs anywhere. Run it from our sites, host it yourself, or run it on your local machine.

# Other Tools For Data Scientists

* Ohayo is just one of my tools that are trying to make data science easier. Here's a list of related products:

pipeTable
 Name|NameLink|Year|Wikipedia|WikipediaLink
 Rows.com|https://rows.com/|2020||
 Explo.co|https://explo.co/|2020||
 Arquero|https://github.com/uwdata/arquero|2020||
 Basedash|https://www.basedash.com/|2019||
 Grid Studio|https://github.com/ricklamers/gridstudio|2019||
 Workbench|https://workbenchdata.com/|2018||
 ActionDesk|https://www.actiondesk.io/|2018||
 Data Illustrator|https://data-illustrator.com/|2018||
 Observable|https://observablehq.com/|2017||
 Idyll|https://idyll-lang.org/|2017||
 VisiData|https://www.visidata.org/|2017||
 Google Data Studio|https://datastudio.google.com/overview|2016|W|https://de.wikipedia.org/wiki/Google_Data_Studio
 Flourish|https://flourish.studio/|2016||
 Tidyverse|https://www.tidyverse.org/|2016|W|https://en.wikipedia.org/wiki/Tidyverse
 Vega Editor|https://vega.github.io/editor/|2015||
 Amazon QuickSight|https://aws.amazon.com/quicksight/|2015||
 GapMinder Vizabi|https://vizabi.org/|2015||
 Toucan|https://toucantoco.com/en/|2015||
 xsv|https://github.com/BurntSushi/xsv|2014||
 metabase|https://www.metabase.com/|2014||
 dplyr|https://dplyr.tidyverse.org/|2014||
 JupyterLab|https://github.com/jupyterlab/jupyterlab|2014|W|https://en.wikipedia.org/wiki/Project_Jupyter
 OmniSci|https://www.omnisci.com/|2013|W|https://en.wikipedia.org/wiki/OmniSci
 xlwings|https://www.xlwings.org/|2013||
 redash|https://redash.io/|2013||
 RAWGraphs|https://github.com/rawgraphs/raw|2013||
 DataBricks|https://databricks.com/|2013|W|https://en.wikipedia.org/wiki/Databricks
 Quadrigram|https://www.quadrigram.com/|2012||
 Snowflake|https://www.snowflake.com/|2012|W|https://en.wikipedia.org/wiki/Snowflake_Inc.
 Julia|https://julialang.org/|2012|W|https://en.wikipedia.org/wiki/Julia_(programming_language)
 Looker|https://looker.com/|2012|W|https://en.wikipedia.org/wiki/Looker_(company)
 AirTable|https://airtable.com/|2012|W|https://en.wikipedia.org/wiki/Airtable
 Anaconda|https://www.anaconda.com/|2012|W|https://en.wikipedia.org/wiki/Anaconda_(Python_distribution)
 Plotly|https://plot.ly/|2012|W|https://en.wikipedia.org/wiki/Plotly
 DataWrapper|https://www.datawrapper.de/|2012||
 ThoughtSpot|https://www.thoughtspot.com/|2012|W|https://en.wikipedia.org/wiki/ThoughtSpot
 Infogram|https://infogram.com/|2012|W|https://en.wikipedia.org/wiki/Infogram
 RStudio|https://www.rstudio.com/|2011|W|https://en.wikipedia.org/wiki/RStudio
 Microsoft SandDance|https://github.com/microsoft/SandDance|2011|W|https://en.wikipedia.org/wiki/Microsoft_Garage
 Microsoft PowerBI|https://powerbi.microsoft.com/en-us/|2011|W|https://en.wikipedia.org/wiki/Power_BI
 d3|https://d3js.org/|2011|W|https://en.wikipedia.org/wiki/D3.js
 piktochart|https://piktochart.com/|2011|W|https://en.wikipedia.org/wiki/Piktochart
 Google Kaggle|https://www.kaggle.com/|2010|W|https://en.wikipedia.org/wiki/Kaggle
 ChartIO|https://chartio.com/|2010||
 Google BigQuery|https://cloud.google.com/bigquery/|2010|W|https://en.wikipedia.org/wiki/BigQuery
 OpenRefine|https://github.com/OpenRefine/OpenRefine|2010|W|https://en.wikipedia.org/wiki/OpenRefine
 Zoho Analytics|https://www.zoho.com/analytics/|2009||
 Wolfram Alpha|https://www.wolframalpha.com/|2009|W|https://en.wikipedia.org/wiki/Wolfram_Alpha
 HighCharts|https://www.highcharts.com/|2009|W|https://en.wikipedia.org/wiki/Highcharts
 LucidChart|https://www.lucidchart.com/|2008|W|https://en.wikipedia.org/wiki/Lucidchart
 Pandas|https://pandas.pydata.org/|2008|W|https://en.wikipedia.org/wiki/Pandas_(software
 Apple Numbers|https://www.apple.com/numbers/|2007|W|https://en.wikipedia.org/wiki/Numbers_(spreadsheet)
 scikit-learn|https://scikit-learn.org/stable/|2007|W|https://en.wikipedia.org/wiki/Scikit-learn
 Smartsheet|https://www.smartsheet.com/|2006|W|https://en.wikipedia.org/wiki/Smartsheet
 Google Sheets|https://www.google.com/sheets/about/|2006|W|https://en.wikipedia.org/wiki/Google_Sheets
 Alteryx|https://www.alteryx.com/|2006|W|https://en.wikipedia.org/wiki/Alteryx
 RapidMiner|https://rapidminer.com/|2006|W|https://en.wikipedia.org/wiki/RapidMiner
 Sisense|https://www.sisense.com/|2004|W|https://en.wikipedia.org/wiki/Sisense
 KNIME|https://www.knime.com/|2004||
 Matplotlib|https://matplotlib.org/|2003|W|https://en.wikipedia.org/wiki/Matplotlib
 Tableau|https://www.tableau.com/|2003|W|https://en.wikipedia.org/wiki/Tableau_Software
 Visual-Paradigm Chart Maker|https://online.visual-paradigm.com/features/chart-maker/pyramid-chart-maker/|2002|W|https://en.wikipedia.org/wiki/Visual_Paradigm
 NumPy|https://www.numpy.org/|1995|W|https://en.wikipedia.org/wiki/NumPy
 Qlik|https://www.qlik.com/|1993|W|https://en.wikipedia.org/wiki/Qlik
 JMP|https://www.jmp.com/|1989|W|https://en.wikipedia.org/wiki/JMP_(statistical_software)
 Mathematica|https://www.wolfram.com/mathematica/|1988|W|https://en.wikipedia.org/wiki/Wolfram_Mathematica
 Microsoft Excel|https://products.office.com/en-us/excel|1987|W|https://en.wikipedia.org/wiki/Microsoft_Excel
 MATLAB|https://mathworks.com/products/matlab|1984|W|https://en.wikipedia.org/wiki/MATLAB
 SAS|https://www.sas.com/|1976|W|https://en.wikipedia.org/wiki/SAS_language
 SPSS|https://www.ibm.com/us-en/marketplace/spss-statistics|1968|W|https://en.wikipedia.org/wiki/SPSS

# How to Give Feedback

* Open an issue here, the Tree Notation subreddit or email [email protected].
 https://www.reddit.com/r/treenotation/ subreddit

# ❤️ Public Domain ❤️

import settings.scroll

ohayo's People

Contributors

breck7 avatar dependabot[bot] avatar celtic-coder avatar

Stargazers

Mohamed Akram avatar Syeam Bin Abdullah avatar Benjamin Kane avatar anhnhoktvn avatar  avatar Markus Binsteiner avatar Aliaksei avatar Alexander Pushkov avatar Boticello avatar Tim Kersey avatar Joubin Houshyar avatar  avatar dodola avatar Oliver Yerbury-Hodgson avatar Gustavo Argote avatar Elizabeth Marston avatar Shane Chin avatar  avatar Evan Boehs avatar ابو الحسن الجاوي avatar Suminda Sirinath Salpitikorala Dharmasena avatar Leon Sorokin avatar Ege avatar Simon avatar Yeonju Hwang avatar Pradeep Kishore Gowda avatar Alexander Chichigin avatar Jack Harrhy avatar Gnlow avatar ptruser avatar Shiimizu avatar Chris Mountford avatar Kernel Soe avatar wesley deglise avatar Hessam Mehr avatar Pierre-Alexandre Kofron avatar Daniel Bachler avatar Daniel Hines avatar Marek Kowalczyk avatar Mac Cowell avatar AM avatar Oleg Lavrovsky avatar Jonny Dubowsky avatar Tamas Kenez avatar Josef Pospíšil avatar Helder S Ribeiro avatar Samuel S. Watson avatar  avatar Dustin Getz avatar Delon R. Newman avatar  avatar  avatar dann toliver avatar Dragos Tudor avatar Jesse Aldridge avatar Alex Kreidler avatar Max Krieger avatar javajosh avatar Huw Pritchard avatar Alex Krolick avatar Jiashu Wang avatar Zachary Kim avatar Jack Park avatar mitchell amihod avatar Priyal Kumar avatar Liam Clancy avatar Diwank Singh Tomer avatar  avatar Ivan Symchych avatar Devan Carpenter avatar Pomin Wu avatar Cosmo avatar Chia-liang Kao avatar  avatar Ajinkya Kulkarni avatar Ramakrishna R avatar John Leung avatar Arjun Menon avatar Breck Yunits avatar Soam Vasani avatar Alan Grosskurth avatar  avatar Austin Pray avatar Flower Ornament avatar  avatar  avatar C. Jackson N. M. avatar Andres Mariscal avatar Diogo Felix avatar  avatar Ian Kirker avatar LeinadLime avatar Colin Barrett avatar Nick McCurdy avatar Lord AGNUcius avatar Martin Milan avatar Jake D'Cruz avatar Dima avatar  avatar Martin Mauch avatar

Watchers

Leon Sorokin avatar  avatar James Cloos avatar Martin Milan avatar 郑达里 avatar  avatar Marcus Windle avatar  avatar  avatar

ohayo's Issues

Show static tile

Should have a show static tile where you can just plugin a hard coded number.

Spotlight aka command search/autocomplete

Let's add a spotlight tree component that shows available commands and has autocomplete...Like sublime text...Especially as number of commands grows this would be helpful...

Could be a generic reusable tree component in jtree

Make it easy to turn a CSV into an autocomplete web service

Trying to add the Gutenberg tile (#24), I realize for most interesting public datasets even if you just keep the minimum in CSV it's still going to be a huge download which means huge parse time as well (at least 3MB uncompressed min for this particular set).

As the saying goes "easier to move the compute to the data than the other way around".

I wonder if there's a simple way to turn any CSV into a web service? Perhaps using BurntSushi's awesome xsv library or some equivalent in Go.

Bug: iPad bugs

  • Plus sign in the bottom right?
  • Click to add?
  • toggle full screen
  • toggle gutter keeps space there
  • can’t right click
  • can’t double click to add
  • need better suggestions

Infra: Test improvements

[] when running tests should we check to see if fabServer is started? perhaps start it for having the web.get test pass?
[] have tests for server methods for desktop version. perhaps create a temp project directory?

Redirect ohayo.computer to vLatest.ohayo.computer

Perhaps the best way to deal with breaking changes to Maia is:

  • going to ohayo.computer just redirects to latest stable version
  • deep links thus will always work since those versions will always be up
  • we could have a migrate.ohayo.computer or something, basically branches dedicated to migrating versions if someone wants to auto do it

Add a visible keyword to tiles

Idea: scan the program. If you encounter a "hidden", then default program tile is visible. If you encounter a "visible", then the default is hidden.

Studio: add workspaces

Add an easy command to export/import all data from localStorage to faciliate easy switching between servers and backups

OhayoLang: Sibling data flow experiment

experiment with sibling data tile flow

instead of:

samples.portal
 vega.bar

should we allow:

samples.portal
vega.bar

Could potentially use newlines as sort of a "clear".

Historical Counterparts?

So, out of curiosity, how is this different from things like TreeSheets, or "sweet syntax" or various lisps that use deeper tree notations (think SRFI-101-based lisps) or things like Lush or Klone? YAML and Rebol seem to be similar predecessors…

I'm just curious if I missed something obvious, but the papers didn't demonstrate anything that made these wholly unique compared to other previous attempts.

Thanks!

OhayoLang: Qualifier and dictation research

  • let's rigorously explore and define the "." qualifier and how it will work going forward, and how contributions will work

  • experiment with a "doc.use samples vega" syntax for shortening tile names?

  • experiment with short dictation dialect

Bug: browse files

repro:

  1. go to ohayo.computer
  2. shift+m

expected:
i should see all files in folder

actual:
Screen Shot 2019-11-18 at 2 37 05 PM

sample program:

https://ohayo.computer/?filename=myprograms.maia&nodeBreakSymbol=%7E&edgeSymbol=_&data=editor.files%7E_hidden%7E_rows.sortBy_link%7E__hidden%7E__editor.gallery

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.