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

Add quicli post #14

Merged
merged 7 commits into from Jan 30, 2018

Conversation

4 participants
@killercup
Owner

killercup commented Jan 29, 2018

No description provided.

@killercup

This comment has been minimized.

Owner

killercup commented Jan 29, 2018

Thanks so much for offering to review this, @jamesmunns! :)

@killercup

This comment has been minimized.

Owner

killercup commented Jan 29, 2018

@mgattozzi pong! :)

@jamesmunns

👍

A few grammar/spelling comments, but other than that thanks for sharing!

[#19]: https://github.com/killercup/quicli/issues/19

That sounded pretty awesome and made me really proud:
Did me library

This comment has been minimized.

@jamesmunns

jamesmunns Jan 29, 2018

s/Did me/Did my


But, before blindly agreeing to this,
I needed to take a step back
and evaluate what I want quicli to be.

This comment has been minimized.

@jamesmunns

jamesmunns Jan 29, 2018

want => wanted (consistent past tense)

I just wanted a small framework-like thing
that made writing CLI apps less of a pain.
But how exactly do I want to to this?
Thanks to Garretts' questions and comments

This comment has been minimized.

@jamesmunns

In its implementation,
you get what I'd call
"a small framework around you main function":

This comment has been minimized.

@jamesmunns
In its implementation,
you get what I'd call
"a small framework around you main function":
quicly's `main!` macro set up some basic things,

This comment has been minimized.

@jamesmunns

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

This is embarrassing

Sadly, for newcomers/forgetful people/drunk programmers/etc.
they are also _wonderfully complex._

So, instead of offering the user "everything,"

This comment has been minimized.

@jamesmunns

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

Oh, I went with the American style here, as I'm also using American spelling everywhere (I think)

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

You are. What @jamesmunns put is how I always spell everything. I really don't see it split up often but both are valid!

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

You know what: You're both right and I actually like the ", version more because it makes way more sense when parsing a sentence. It's just that I really like typography and the hanging quotes look so pretty. Oh well, I'm rendering everything in shitty monospace markdown style anyway :)

So, instead of offering the user "everything,"
I want to introduce some abstractions that are simple to use,
and have simple but useful examples.
Not not get stuck,

This comment has been minimized.

@jamesmunns

jamesmunns Jan 29, 2018

"not to get stuck"

Since then, I've written two more guides,
and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.

This comment has been minimized.

@jamesmunns

jamesmunns Jan 29, 2018

quicly => quicli

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

This is sooo embarrassing

and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.
(More on the aspect of hosting and testing these docs in a future post!)

This comment has been minimized.

@jamesmunns

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

The whole sentence is in parentheses

It gives you a way of quickly writing CLI programs in Rust.
(Hence the name.)
In this post,
I want to present the ideas and underlaying philosophies of this project.

This comment has been minimized.

@jamesmunns
@killercup

Thanks so much! Pushed an update that addressed everything I didn't explicitly comment on :)

In its implementation,
you get what I'd call
"a small framework around you main function":
quicly's `main!` macro set up some basic things,

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

This is embarrassing

(as well as my ergonomic requirements).

What I want you to end up with is code that is
concise,

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

Well-structured and boilerplate-free and part of the same point! See below

Sadly, for newcomers/forgetful people/drunk programmers/etc.
they are also _wonderfully complex._

So, instead of offering the user "everything,"

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

Oh, I went with the American style here, as I'm also using American spelling everywhere (I think)

Since then, I've written two more guides,
and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

This is sooo embarrassing

and for both I added features to the framework,
exposed new functionality,
and thought more about how I want quicly-based code to feel.
(More on the aspect of hosting and testing these docs in a future post!)

This comment has been minimized.

@killercup

killercup Jan 29, 2018

Owner

The whole sentence is in parentheses

@killercup

This comment has been minimized.

Owner

killercup commented Jan 29, 2018

@skade pong! :)

@mgattozzi

This comment has been minimized.

Contributor

mgattozzi commented Jan 30, 2018

@killercup ping! :D

@mgattozzi

Not bad! Mostly some grammatical, formatting, and spelling nit picks :D


I've been writing CLI tools in Rust for a while now.
It really surprised me how this language
that works really well for system programming

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

system -> systems

["5 Tips for Writing Small CLI Tools in Rust"][cli-tips]
at the end of August 2017
that you may have read,
where I describes some of my take-aways from that

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

describes -> describe

that you may have read,
where I describes some of my take-aways from that
in the form of short tips.
I've got some great feedback to that post,

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

I've got -> I've gotten
to -> from

I didn't have the time or concentration
to sit down and really do this.
And here's the good news:
For some reason[^9e-talk],

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

Does this link render funny?

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

Yes: It renders a footnote :)


[cli-tips]: {% post_url 2017-08-31-rust-cli-tips %}

[^9e-talk]: Okay, I admit, I promised to give a talk about Rust, and I wanted to present some nice, clean example code. (Of course, in the end I didn't show quicli in the talk.)

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

Since you've made these two separate sentences rather than an aside you can remove the ( and )

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

yeah, the create-react-app setup tools famously has this feature

So, instead of offering the user "everything,"
I want to introduce some abstractions that are simple to use,
and have simple but useful examples.
Not to get stuck,

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

Were you intending this to be part of the previous sentence? Otherwise I have no idea what you were trying to convey here with this sentence or what you mean by Not to get stuck

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

Messed up the fix, should've been "To not get stuck"

Indeed, instead of adding any feature flags to this crate
(that enable additional components to be loaded/exposed),
I want to have a clear line
where a user is supposed to stop relying on quicli.

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

Yeeeeah

(that enable additional components to be loaded/exposed),
I want to have a clear line
where a user is supposed to stop relying on quicli.
I'd rather have an "eject" option

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

react-cli (I think) does this and it's nice.

but another important aspect to me is to prove that it is useful
for writing small tools
-- even if you've only just started with Rust.
This is why I initially wrote the Readme file

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

Readme -> README

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

but but… my file is Readme.md :O

for writing small tools
-- even if you've only just started with Rust.
This is why I initially wrote the Readme file
in form of a How To:

This comment has been minimized.

@mgattozzi

mgattozzi Jan 30, 2018

Contributor

in -> in the

@mgattozzi

This comment has been minimized.

Contributor

mgattozzi commented Jan 30, 2018

I say a few but there were like 34 there lol woops

@killercup

This comment has been minimized.

Owner

killercup commented Jan 30, 2018

@skade

This comment has been minimized.

skade commented Jan 30, 2018

I like it. I'd reread the introduction and see if you could make it a little shorter.

I haven't quite gotten out of it if you will merge stdcli and quicli now?

@killercup

Addressed a bunch of comments :)

Sadly, for newcomers/forgetful people/drunk programmers/etc.
they are also _wonderfully complex._

So, instead of offering the user "everything,"

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

You know what: You're both right and I actually like the ", version more because it makes way more sense when parsing a sentence. It's just that I really like typography and the hanging quotes look so pretty. Oh well, I'm rendering everything in shitty monospace markdown style anyway :)

I didn't have the time or concentration
to sit down and really do this.
And here's the good news:
For some reason[^9e-talk],

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

Yes: It renders a footnote :)

it is very concise.

Another aspect of conciseness:
Instead of using `.unwrap` to deal with errors,

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

Hm, I actually added the dot to note that it is a method and not a free function. But you're right, they're all the same :)

and good error messages.
Similarly, you get logging for free,
and if you add two more lines,
you also get a `--verbose`/`-v` CLI argument to control the log level

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

I <3 consistency and will go with 'flag'

So, instead of offering the user "everything,"
I want to introduce some abstractions that are simple to use,
and have simple but useful examples.
Not to get stuck,

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

Messed up the fix, should've been "To not get stuck"


[cli-tips]: {% post_url 2017-08-31-rust-cli-tips %}

[^9e-talk]: Okay, I admit, I promised to give a talk about Rust, and I wanted to present some nice, clean example code. (Of course, in the end I didn't show quicli in the talk.)

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

yeah, the create-react-app setup tools famously has this feature

but another important aspect to me is to prove that it is useful
for writing small tools
-- even if you've only just started with Rust.
This is why I initially wrote the Readme file

This comment has been minimized.

@killercup

killercup Jan 30, 2018

Owner

but but… my file is Readme.md :O

@killercup killercup merged commit 7391dde into gh-pages Jan 30, 2018

@killercup

This comment has been minimized.

Owner

killercup commented Jan 30, 2018

Thank you three! The post is now live at https://deterministic.space/quicli.html :)

@killercup killercup deleted the post/quicli branch May 31, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment