Giter VIP home page Giter VIP logo

reactivex.github.io's Introduction

reactivex.github.io

ReactiveX Website - Jekyll + Bootstrap.

If you want to contribute, please make sure to make your changes to the develop branch, from which the master branch is generated.

Use Docker to Build & Run (Optional)

If you have Docker installed, you can use the Dockerfile in this repository to build and run the ReactiveX website. This one-liner will perform the build and run: docker build -t reactivex.io - < Dockerfile && docker run -p 4000:4000 -it --rm -v $PWD:/app -t reactivex.io

Install tools

Jekyll is the static site generator. Uglifier, LESS, and Rake are build tools necessary for JavaScript and CSS compilation prior to Jekyll.

$ gem install jekyll uglifier rake
$ npm install -g less

Run

Rake's default task will compile styles the run jekyll serve.

$ rake

Marble diagrams

The marble diagrams are created in OmniGraffle. The source file is found at the RxJava Wiki (https://github.com/Netflix/RxJava.wiki.git) or can be downloaded here: https://raw.githubusercontent.com/wiki/ReactiveX/RxJava/images/rx-operators.graffle

If you want to make changes to this file, please check it out from the wiki, make changes, and check it back in there.

As of this writing, this OmniGraffle source is used to make two separate copies of the .png marble diagrams: one set hosted at the RxJava wiki which also serves as the source for the images in the javadocs, and one set hosted at this reactivex.github.io site. You have to generate these yourself by using OmniGraffle's "export" feature. If you check in a change that you want to be visible in both places, you'll have to check in the images in both repos.

The OmniGraffle file has grown to be cumbersome, and so there are some false-canvases with names that begin and end with lots of equals signs that are used as separators/headings to make individual diagrams easier to find. When you export the .png images based on this OmniGraffle file, it will also spit out empty .png images for these false-canvases. You'll just have to delete those manually or put them in your .gitignore or something. At least they're easy to spot.

reactivex.github.io's People

Contributors

0x5010 avatar 38elements avatar amitshekhariitbhu avatar beelzenef avatar benjchristensen avatar carlosypunto avatar choimyungji avatar dallasgutauckis avatar daniel-dos avatar darrensapalo avatar davidmgross avatar davidwdan avatar felipecsl avatar flatmap13 avatar freak4pc avatar hamen avatar koke avatar lascorbe avatar mchapman avatar meligy avatar mgp avatar moroshko avatar mrcljx avatar packtpartner avatar phajduk avatar r3h0 avatar samuelgruetter avatar staltz avatar tamirdresher avatar zsxwing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reactivex.github.io's Issues

The "Computer Science" Explanations

I think reactivex.io site deserves the @headinthebox treatment with a few sections walking through the theory and computer science of Reactive Extensions. What do you think @headinthebox ?

Thoughts on topics:

  • the duality explanation ... Iterable vs Observable
  • push vs pull
  • how does Rx differ from event driven and callbacks?
  • comparisons against promises, futures, channels, CSP
  • async vs concurrent vs parallel execution
  • where it fits into lambda calculus, pi calculus, join calculus, actors approaches to concurrency models
  • reactive pull and flow control

I would like for www.reactivex.io to be the definitive source of truth for these topics in relation to Rx rather than blogs, whitepapers, comments and wikis all over the net.

Who uses ReactiveX

On the frontpage, I'm planning to include a section "Who uses Rx" listing a few companies that use Rx in a significant way or as a core technology. My memory is very bad at the moment and honestly I can just think of Netflix and Couchbase.

So, could you guys list a few more so I can fill this list?

UPDATE:

If you wish to have your companies' logo and link on the frontpage, just provide a png image of size approx. 500x200 (or better), with white or transparent background, and a link to the page. We can include logos as much as there is incoming, but at some amount (maybe 12?), we should reconsider which ones are stronger for social proof.

Logos will be sorted by decreasing Alexa ranking (global), and with a max of 12 logos on the frontpage.
Current sorting as of 19 September 2014:

  1. Microsoft (42)
  2. Netflix (81)
  3. GitHub (133)
  4. SoundCloud (180)
  5. Trello (531)
  6. Treehouse (2,224)
  7. SeatGeek (14,258)
  8. ooVoo (24,278)
  9. Couchbase (49,285)
  10. Futurice (385,110)
  11. Welbe (1,573,204)

GitHub API Rate Limit

The GitHub API rate limit might become a problem for the dynamic code examples (loaded client-side).
The API allows only 60 requests per hour for unregistered users...
Registered users are permitted to do 5000 requests per hour, but that would require user authentication (Basic/OAuth).

Why Google Closure?

I found it in the JS folder, and it's huge (25M). Why do we need it? I tried looking for its usage, but it's not clear why it is necessary.

@GeorgiKhomeriki ?

Make documentation code samples subject to regular automated tests

(This was discussed in Issue #20 by @headinthebox, @GeorgiKhomeriki, @samuelgruetter, @benjchristensen, @staltz & @DavidMGross but deserves a stand-alone issue.)

The documentation is full of code samples. To ensure that these are (and remain) accurate, they should be tested and these tests should be re-run whenever changes are made to the samples, the ReactiveX implementation they are written against, or relevant parts of the language/OS they run within.

How to do this well is a bit of a puzzle. Some of the issues/ideas:

  • we could have the code samples in the test suites for the various ReactiveX implementations, and then pull the code directly from those samples to insert in the appropriate places in the web pages; single-sourcing the samples in this way would ensure that they don't get out-of-sync.
    • however: many code samples are just sections of code that aren't executable stand-alone. To make them testable would mean adding a lot of cruft around them that would make for inappropriate noise in the documentation context. We'd need to have some way (or perhaps a variety of language-specific ways) of isolating the part of the code that is meant for documentation from the part that's necessary to make it testable.
    • we'd need a strategy for pulling the code samples into the documentation
      • if we do this dynamically when the page is requested, this puts extra load on the server
      • if we periodically build static pages via a make-like process, we need to trigger the make appropriately
  • Many of the samples in the documentation also show the expected output; is there a way to keep that automatically in sync with the tests run on the samples, or, in order to make that synchronicity testable would we have to change these so instead of the expected output we show the tests the code is expected to pass (a bit like the Hystrix docs do here: https://github.com/Netflix/Hystrix/wiki/How-To-Use#Synchronous-Execution) -- something I think would make for more awkward and less clear documentation in our case, but maybe it's worth that cost.

Thoughts?

Make "develop" branch the default branch, rather than "master"

I don't have sufficient permissions to do this, I don't think. @benjchristensen maybe?

We do our site development in "develop" and then periodically generate the site locally using rake before checking it in to the "master" branch -- that is to say, nobody should be checking in incremental changes to "master."

New contributors are confused by this and often try to alter "master" directly as it's the default branch.

Documentation and Navigation

Right now the documentation is too implementation specific.

For example, this page assumes RxJava: http://reactivex.io/documentation.html ... particularly in how it puts binaries as the first thing being shown.

Right from the start this page needs to include at least RxJS and RxJava.

I suggest we start with just a simple page with links to existing RxJS, RxJava and soon to arrive documentation from RxScala, RxAndroid etc.

Then we can start to shape it into this new model

I'd like to use this site as the landing page now even though we don't have the docs in place.

No content is shown in IE11

In IE11, only a menu bar is shown, but no content. This also seems to be the case in IE9 and 10.

Developer tools show the following javascript error:

"Unable to get property 'language' of undefined or null reference."

Docs Folder

Right now it looks like the docs are in /observables/. It took me a bit to find it. Should we have all docs under a folder such as /docs/ or /documentation/?

Strange UI on IE 11

At least on IE 11 the site's UI looks everything other than "reactive". Menu items are hidden by the logo, don't think it is a desired effect? ;-)

2015-02-18 14_37_34-reactivex - internet explorer 11

Tutorial Topics

Issue for tracking discussions about what topics we should have tutorials for. This is slightly different than the normal docs which often are focusing on operators and creation/consumption. This is more for the end-to-end docs, how to solve use cases and problems.

As we agree upon ideas new issues for individual work can be created to track execution.

Add syntax-highlighting to code samples on ReactiveX web pages

I'm not sure if we can leverage something in the CSS / site generation we're already working with or if we'd need to pull in some additional CSS/JS to make this work.

Most of what is in the operator pages, including the sample code sections, is in HTML rather than markdown, although those pages go through the markdown->html generator like the rest of them, so maybe we could leverage that.

The code sample sections are currently marked with <div class="codelanguageName"> in anticipation of being able to accomplish this at some point.

Schedulers documentation improvements

(Copied over from ReactiveX/RxJava#2955)

JensRantil:

Source: http://reactivex.io/documentation/scheduler.html

  • Neither of the schedulers has a working link to corresponding JavaDoc.
  • Schedulers#computation documentation doesn't state how many threads it runs. Whether it runs async or really anything. I had to dig into source code and finally ended up on https://github.com/ReactiveX/RxJava/pull/2580/files which states it defaults to number of processors threads.
  • Schedulers#io is missing the same documentation; how many threads? Does it grow infinitely?

Interactive (RxMarbles) diagrams don't render in Safari

I tested the new embedded RxMarbles diagrams in Chrome, Firefox, and Safari 7.1.3, and while they seem to work in the first two, they don't render at all in Safari.

When I view-source, the RxMarbles line is <rx-marbles key="foo"></rx-marbles>... that is, unchanged from the static source.

There's a javascript error that only seems to show up in Safari ("TypeError: Attempted to assign to readonly property." at patches-mdv.js, line 57)... not sure if that would have anything to do with it (that error also turns up on pages that don't have embedded RxMarbles diagrams). I don't see any other javascript errors or warnings.

Frontpage details broken on some browser

I saw this from Ben's recently published presentation:

screen shot 2014-09-30 at 19 32 55

There are a couple of things broken here: jumbotron arrow position, jumbotron height, and diagram arrow heads. Which browser were you using here, @benjchristensen ?

(I intend to fix these once I know)

Fix footer and header for phones

On phones, the jumbotron background image should be statically positioned to perform better. Its height also needs to be improved.

This is how the footer looks on iPhone.
ios simulator screen shot 11 sep 2014 11 43 10

I can fix this issue.

Interactive marble diagrams

One basic question: where should the interactive marble diagrams be placed on the website? Under a dedicated section? One interactive diagram under each documented operator? Somewhere else?

That's important to know because it affects how I should adapt http://staltz.github.io/rxmarbles to this website.

UI facelift

Can I take the initiative to improve the looks of the site? I'll do this in a separate branch, and we can iterate over the pull requests I send, so that you guys can give your opinions before merging the changes.

Things I'd like to improve:

  • Typography. The line width is currently too long, which makes text a bit less readable. Line width should be about 2 * abcd...xyz (the alphabet). Also making the font a bit bigger helps. These changes would bring the site closer to what typical Github markdown docs look like with regard to typography.
  • Better fonts. The title "ReactiveX" on the hero could get a nicer font which is not the same as the content font.
  • Favicon: matching the purple/pink logo.
  • Other tweaks.

Is this ok?

Java: Sonatype Setup

We need to get setup with Sonatype so we can publish projects with the orgId io.reactivex.

NOTE: This is specific to Java based projects.

Moving rxscala.github.io to reactivex.io

About a year ago, I made a small website for RxScala (http://rxscala.github.io/). Now that there is one central http://reactivex.io/, it would be good to move the contents of http://rxscala.github.io/ to http://reactivex.io/.

Currently, http://rxscala.github.io/ contains the following:

The markdown source for the general info is page is here.

The scaladoc can be obtained by running ./gradlew scaladoc in the RxJava repository, or by copying this folder.

The comparison table is auto-generated by the printMarkdownCorrespondenceTable method in CompletenessTest.scala, and the generated markdown of the most recent version (0.20.4) is here.

I'm not a web designer at all, and I'm opening this issue hoping that a web wizard (such as @GeorgiKhomeriki or @staltz) will take care of this ;-)

Of course I'm available for answering any RxScala specific questions, or questions on the http://rxscala.github.io/ website.

Site failing to render properly in IE

The dropdown menus are not behaving correctly in IE.

I'm noticing a "Popover requires tooltip.js" error in the javascript console window, from bootstrap.min.js.

www.ReactiveX.io Website

This issue is intended to kickoff the discussion of what the www.reactivex.io website should include and get the work started on it.


  • Intro, what it is, what it solves, why it exists.
    • how to get started quickly
    • dependency management for each language and hello world
    • links to latest releases for each language
  • Documentation
    • common across all languages
    • language specific details
    • each operator can have the common marble diagrams, then per-language examples, idioms, synonyms, etc
  • Languages
    • list of languages with news, release notes, documentation etc specific to each implementation
  • Related Projects
    • other projects that are not Rx implementations, but related to it … projects that use or leverage Rx
  • Media
    • presentations, talks, conferences etc
  • Community
    • google groups, twitter etc
  • Github
    • github.com/ReactiveX for all code, issues, etc for each language
  • Releases and Binaries
    • Apache (eventually)

Here are example sites:

http://vertx.io (particular see how code examples are done for each language)
http://netty.io
http://www.ratpack.io
http://akka.io
http://emberjs.com
http://angularjs.org
http://spark.apache.org

Pages Load Slow

When clicking around documentation the pages load slowly. They first open to a blank page, then a second later the content appears.

It feels like it is loading javascript, processing it, then downloading content.

The assumption is that our pages are simple, pre-generated HTML so we should be able to hit static HTML and only have javascript involved when doing the embedded code snippets.

Java: Continuous Build Server

We need to get setup with CloudBees, Travis (https://travis-ci.org) or something like that for automated building.

We also need a mechanism for releases (today done by Netflix infrastructure for RxJava).

I don't know what other languages need so keeping this focused to Java.

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.