Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turbine 7GUIs #96

Open
stevekrouse opened this issue Dec 10, 2018 · 1 comment
Open

Turbine 7GUIs #96

stevekrouse opened this issue Dec 10, 2018 · 1 comment

Comments

@stevekrouse
Copy link
Member

stevekrouse commented Dec 10, 2018

7GUIs / Turbine devtool

My code for Turbine 7GUIs lives on codesandbox.io here.

Here are the 7GUIs task descriptions, live examples, and React code.

Helpful links to have open

Issues

Steve working on

Documentation

Developer experience

Issues Accepted as Bugs

Issues Opened and Closed

To (maybe) Open Issue

@stevekrouse stevekrouse changed the title Turbine / p4 next steps 7GUIs Dec 11, 2018
@stevekrouse stevekrouse changed the title 7GUIs Turbine Dec 11, 2018
stevekrouse pushed a commit that referenced this issue Dec 12, 2018
* TOC
{: toc }

### Last week

Last week was productive in terms of publishing two podcast and recording a third. I also worked a bit freelance. I only need to do a dozen hours freelance at this point in conjunction with the money from the podcast sponsorship to make ends meet. Eventually with more sponsorship and Patreon, maybe I can slowly lower the number of hours freelance towards zero. 

### Github Issues / Projects

I also started my Dec Regroup Projects, including moving my todos to Github Issues / Github Projects. I now have three Github projects:

* [To Do](https://github.com/stevekrouse/futureofcoding.org/projects/3) is my pipeline of tasks
* [To Research](https://github.com/stevekrouse/futureofcoding.org/projects/2) is my pipeline of links and topics
* [My podcast pipeline](https://github.com/stevekrouse/futureofcoding.org/projects/1) is where I organize my guests

I'm a bit worried about how this new system will interact with this log. While it felt silly to copy and paste todo lists over and over in this log, it's also a bummer doing things in my new system doesn't show up in here. This log is supposed to be a log of all my work on this project, so I'd love to pull in Github issues activity somehow... Now that I say it "out loud" I wonder if I can do that automatically... For now though, I may just copy and paste some things from Github issues here when relevant.

### Jekyll refactoring

I get really fustrated with Jekyll sometimes. My main issues were:

* I was having trouble with importing page snipets 
* I wanted to be able to preview my site locally with all the CSS. (Github Pages had some setting I didn't have set.)

After many annoying hours I was able to make both of these things work. My main next big issue is a navbar on all my pages of: 

* Home
* About
* Podcast
* Log
* Community
* Contact
* Fork

Of course new styles and logo would be nice as well, and maybe a commenting system, but it's not top priority.

And to be honest, starting the Patreon is bigger priority than all of these but I'm a bit scared so I keep procrastinating...

### Turbine 7GUIs!!

After doing 3 hours of emails yesterday (I was sick towards the end of last week, so I took Thursday off and didn't do my emails Friday, sat, or Sun), I spent a few hours messing with Turbine, and then ~7 hours today in it. So fun! Despite being rough around the edges, it feels like there's really something wonderful here - I'm very impressed with the design. Polishing this is a million times better than having to start from scratch.

To take it for a spin, I've been doing the 7GUIs tasks in Turbine, and whenever I get stuck or find a bug, I write it down, and sometimes open an issue. I'm tracking all the progress in [this Github issue](#96), which I will copy and paste here:

#### Issue opened

* [typescript issue on starter kit](funkia/turbine-starter#2)
* [combining model and view](funkia/turbine#81)
* [devtools](funkia/turbine#82)
* [a single page documentation cheatsheet](funkia/turbine#84) 
* [Text input bug](funkia/turbine#86)
* [versioned documentation and various styles of `output`](funkia/turbine#85)

#### To open issue

##### Issues using `lift`:

1. Do I import it from `jabz` and do `lift(f, b1, b2)`? Or I use it as `b1.lift(f, b2)`?
2. It doesn't work in the view with error `Attempt to sample non-replaced placeholder`
3. Doesn't seem to work for 4 behaviors but the documentation says "You can also combine in this fashion any number of behaviors"

##### Constructors need to be documented across all projects

* I need the constant behaviors, streams, `IO.of` to be easier to get at than going to the tests to find them.

##### filterApply bug

`filterApply(Behavior.of(undefined).map(() => () => true), stream).log()` upon an event from `stream` errors: `predicate.at(...) is not a function`. If you replaced `undefined` with `1`, the error goes away.

##### * `time.log()` does nothing

It should at least error if it's not going to show you anything, but I might prefer it to show me all the milliseconds.

##### when doesn't log correctly

`when(Behavior.of(true)).log()` errors `Cannot read property 'Symbol(Symbol.iterator)' of undefined` but `yield sample(when(Behavior.of(true)).map(x => console.log(x)))` outputs an `OfFuture` value

#### To look into more

* What is the `moment` function (described [here](funkia/turbine#51 (comment)))?

* Use [`loop`](https://github.com/funkia/turbine#loop) successfully without `this.source.addListener is not a function` error

* What's the difference between `go` and `fgo`? Also, the placement of arguments here is confusing:

```javascript
const tempView = ({ c, f }) =>
  go(function*() {
```

* When you can do infix dot vs prefix

* I want a dummy model so I can see the view while I mess with stuff and not get `The generator function never yielded a monad and no monad was specified.` without

```javascript
const tempModel = fgo(function* ({  }) {
  yield Now.of(10)
});
```

* Need to call the function created with `performStream` or `performStreamLatest` (I don't get the difference): `performStreamLatest(book_.map(() => withEffects(() => alert('hi'))()))`

* It's also quite annoying to keep the output and inputs in sync always. 

### Priorities 12/12/18 - 12/21/18

* freelance 10 hours
* Patreon   20 hours
* Turbine   20 hours
  * finish 7GUIs
  * work on various issues

### Push to vacation or 2019

* publish Tudor and Vlad episodes
* p4 stuff
* website design and improvements
@stevekrouse stevekrouse changed the title Turbine Turbine 7GUIs Dec 23, 2018
@stevekrouse
Copy link
Member Author

stevekrouse commented Dec 23, 2018

Once I've finished, some next steps:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant