Skip to content

Instantly share code, notes, and snippets.

@phated
Created January 8, 2014 10:08
Show Gist options
  • Save phated/8314514 to your computer and use it in GitHub Desktop.
Save phated/8314514 to your computer and use it in GitHub Desktop.
2014-01-08 09:48:39 substack https://gist.github.com/substack/8313379
2014-01-08 09:48:39 substack Raynos: ^^^
2014-01-08 09:48:39 substack a task automation framework to go along with your http framework
2014-01-08 09:48:39 guybrush i knew you are into build-systems now there is the proof
2014-01-08 09:48:39 phated substack: are you an idiot by choice or do you just ignore everything that doesn't come from your own head?
2014-01-08 09:48:39 Raynos substack: :D
2014-01-08 09:48:39 Raynos substack: nice!
2014-01-08 09:48:39 substack phated: I can't understand why people don't just use bash or makefiles or write little scripts
2014-01-08 09:48:39 Raynos That is really good
2014-01-08 09:48:39 Raynos It's actually really good
2014-01-08 09:48:39 phated i am assuming you are trashing on gulp now
2014-01-08 09:48:39 phated which is made to do just what you are saying with a little sugar on the CLI part
2014-01-08 09:48:39 substack gulp isn't so bad, I just don't see the point of it
2014-01-08 09:48:39 phated it's a minimal amount of sugar
2014-01-08 09:48:39 Raynos substack: you should create a module called `dotslashtaskdotjs` on npm
2014-01-08 09:48:39 phated what isn't the point
2014-01-08 09:48:39 substack the minimal amount of sugar is 0 sugar
2014-01-08 09:48:39 phated it is trying to be idiomatic
2014-01-08 09:48:39 phated you wrote sugar on process.env parsing
2014-01-08 09:48:39 phated optimist is sugar
2014-01-08 09:48:39 phated what are you even talk about
2014-01-08 09:48:39 substack I don't use optimist anymore.
2014-01-08 09:48:39 Raynos and substack then stopped using optimist and wrote minimist :D
2014-01-08 09:48:39 substack yep
2014-01-08 09:48:39 phated minimist is still sugar
2014-01-08 09:48:39 Raynos gulp is ok if your doing non trivial stuff
2014-01-08 09:48:39 phated you are abstracting an API that isn't great
2014-01-08 09:48:39 phated (process.env)
2014-01-08 09:48:39 phated that is sugar
2014-01-08 09:48:39 Raynos bluebird & lodash
2014-01-08 09:48:39 Raynos have non trivial shit
2014-01-08 09:48:39 substack minimist is a function that takes an array and returns an object
2014-01-08 09:48:39 substack I don't see how that is "sugar"
2014-01-08 09:48:39 Raynos now whether they should or not is a seperate argument
2014-01-08 09:48:39 Raynos but for those cases gulp is worthwhile
2014-01-08 09:48:39 phated substack: that is sugar
2014-01-08 09:48:39 phated sugar being abstraction
2014-01-08 09:48:39 phated you abstracted something
2014-01-08 09:48:39 phated software is abstraction
2014-01-08 09:48:39 substack what's wrong with abstraction?
2014-01-08 09:48:39 phated all software
2014-01-08 09:48:39 phated nothing
2014-01-08 09:48:39 substack phated: I don't understand.
2014-01-08 09:48:39 phated you shit on it constantly
2014-01-08 09:48:39 phated everything you gist or tweet or reddit is shitting on abstraction
2014-01-08 09:48:39 Raynos we make fun of gulp
2014-01-08 09:48:39 substack applying abstraction in the wrong places can be harmful
2014-01-08 09:48:39 Raynos because its not needed
2014-01-08 09:48:39 substack what Raynos says
2014-01-08 09:48:39 Raynos its not that its not needed
2014-01-08 09:48:39 Raynos its that the complexity it brings
2014-01-08 09:48:39 Raynos in most situations
2014-01-08 09:48:39 Raynos is overkill
2014-01-08 09:48:39 substack it's useful as a hand-holdy kind of thing
2014-01-08 09:48:39 Raynos in some situations gulp is fine
2014-01-08 09:48:39 Raynos just like in some situations express is fine
2014-01-08 09:48:39 substack for people who have a grunt-shaped box in their head and want to stuff something into that hole
2014-01-08 09:48:39 phated gulp is nothing like grunt
2014-01-08 09:48:39 rowbit1 Hourly usage stats: [developer: 0, free: 26]
2014-01-08 09:48:39 timoxley one neat thing about gulp is that it's encouraging people to use streams
2014-01-08 09:48:39 phated the current problem is that people are trying to apply grunt paradigms to it
2014-01-08 09:48:39 phated gulp is just JS
2014-01-08 09:48:39 Raynos so grunt is terrible and we all agree.
2014-01-08 09:48:39 Raynos secondly gulp is still bad
2014-01-08 09:48:39 phated with an abstraction API for CLI
2014-01-08 09:48:39 timoxley so perhaps they'll make some gulp streams and realise, why do I need gulp?
2014-01-08 09:48:39 phated there is no such thing as a gulp stream
2014-01-08 09:48:39 Raynos yes there is
2014-01-08 09:48:39 phated this is the problem, you guys don't actually read shit before trashing it
2014-01-08 09:48:39 Raynos its a special stream
2014-01-08 09:48:39 Raynos where each value is a gulp file
2014-01-08 09:48:39 phated no, vinyl is a stream
2014-01-08 09:48:39 phated based on a glob stream
2014-01-08 09:48:39 Raynos each chunk in a gulp stream has an interface
2014-01-08 09:48:39 phated it has nothing to do with gulp except gulp passes them around
2014-01-08 09:48:39 Raynos maybe its not gulp stream
2014-01-08 09:48:39 Raynos maybe its vinyl stream
2014-01-08 09:48:39 phated the distinction matters
2014-01-08 09:48:39 Raynos phated: are you the author of gulp ?
2014-01-08 09:48:39 phated why would that matter?
2014-01-08 09:48:39 Raynos because i tend to only say bad things
2014-01-08 09:48:39 Raynos I wouldnt say things like "gulp is cool. I want our company to get off grunt and im happy to move to gulp because its really not that bad. im just being an opinionated dick"
2014-01-08 09:48:39 Raynos basically if your the author of gulp, it reminds me not to be a dick on the internet.
2014-01-08 09:48:39 timoxley phated: sure, no gulp streams but there's stuff like this
2014-01-08 09:48:39 timoxley https://github.com/terinjokes/gulp-uglify/blob/master/index.js
2014-01-08 09:48:39 guybrush hey substack did you see the sourcemap-PR in browserify?
2014-01-08 09:48:39 timoxley 'gulp-uglify'
2014-01-08 09:48:39 substack guybrush: yep, still mulling over whether to roll it out or wait a bit
2014-01-08 09:48:39 substack guybrush: I'll probably roll it out soon
2014-01-08 09:48:39 guybrush kk just wanted to make sure :D
2014-01-08 09:48:39 timoxley nothing to do with gulp really, it's just making it into streamy interface
2014-01-08 09:48:39 guybrush is it because not all browsers switched to the new //# ?
2014-01-08 09:48:39 timoxley i.e why isn't it just 'uglify-stream'
2014-01-08 09:48:39 substack one thing I don't like about gulp is how people are writing plugins for it instead of writing generic streaming module interfaces
2014-01-08 09:48:39 timoxley ^ that
2014-01-08 09:48:39 phated timoxley: the idea is to get it to move upstream
2014-01-08 09:48:39 phated but most upstream authors ignore it
2014-01-08 09:48:39 Raynos substack: that is the main problem
2014-01-08 09:48:39 Raynos anything with a plugin eco system when its not needed is weird
2014-01-08 09:48:39 timoxley people like plugin eco systems though because they make you feel safe
2014-01-08 09:48:39 Raynos thats what is cool about hapi
2014-01-08 09:48:39 phated substack: Raynos: I agree, but when you start dealing with globs, things get messy
2014-01-08 09:48:39 substack like why is there a gulp-browserify plugin at all? You can just browserify().bundle() and you get a stream
2014-01-08 09:48:39 Raynos the hapi people say "dont author hapi plugins. author modules, only create hapi plugins when needed"
2014-01-08 09:48:39 phated hold up substack
2014-01-08 09:48:39 guybrush hughsk made a gulp-browserify-thing i think :p
2014-01-08 09:48:39 substack phated: my example has globs in it
2014-01-08 09:48:39 phated hold up
2014-01-08 09:48:39 substack catw works with globs without any weirdness
2014-01-08 09:48:39 phated again
2014-01-08 09:48:39 phated hold up
2014-01-08 09:48:39 phated substack: don't blame a system because some people do stupid shit
2014-01-08 09:48:39 guybrush i love it when people discuss things that are purely a matter of taste and preferences
2014-01-08 09:48:39 phated gulp would work completely perfectly and amazing with the browserify stream
2014-01-08 09:48:39 phated you can return a stream from a task, and orchestrator manages the order of tasks
2014-01-08 09:48:39 phated it would wait for browserify stream to fire the end event
2014-01-08 09:48:39 guybrush its like watching a good film with good conversations in it
2014-01-08 09:48:39 timoxley phated: but now effort, person hours, is going into gulp-browserify instead of just browserify itself
2014-01-08 09:48:39 phated timoxley: that was that person's time, not yours or substacks or Raynos'
2014-01-08 09:48:39 Raynos true
2014-01-08 09:48:39 phated a gulp task can consist of anything
2014-01-08 09:48:39 Raynos but i blame gulp
2014-01-08 09:48:39 Raynos for making anti patterns too easy
2014-01-08 09:48:39 Raynos :D
2014-01-08 09:48:39 phated that's a sad approach to take
2014-01-08 09:48:39 phated and horrible for the community
2014-01-08 09:48:39 phated I know you are smart people
2014-01-08 09:48:39 substack guybrush: haha yeah that's why I wasn't taking that post seriously at all and why it's a gist instead of a full blog post :p
2014-01-08 09:48:39 timoxley phated: horrible for the community is the problem
2014-01-08 09:48:39 guybrush just say what you all fear, once everyone makes stuff with gulp you HAVE to use it
2014-01-08 09:48:39 guybrush and thats where things go wrong :p
2014-01-08 09:48:39 timoxley phated: gulp creating yet another unnecessary silo
2014-01-08 09:48:39 guybrush like connect-middleware
2014-01-08 09:48:39 phated it's not a silo
2014-01-08 09:48:39 phated it is getting people away from the silo of grunt
2014-01-08 09:48:39 phated it is just JS
2014-01-08 09:48:39 phated you can use any node module
2014-01-08 09:48:39 phated most of my shit doesn't even use vinyl streams
2014-01-08 09:48:39 timoxley phated: you've very passionate about this
2014-01-08 09:48:39 phated if i want to use know to push stuff to s3, that is totally fine because it returns a stream
2014-01-08 09:48:39 guybrush my favorite silo is component.io :p
2014-01-08 09:48:39 phated i return that from my gulp task, and orchestrator handles any tasks that depend on that
2014-01-08 09:48:39 guybrush phated: why is grunt bad?
2014-01-08 09:48:39 substack phated: why not just push people onto "plugins" that aren't instead? By having non-standard interfaces for plugins gulp is encouraging people to write more silo code ala connect middleware etc
2014-01-08 09:48:39 Raynos phated: sec, i'll make a counter example for gulp
2014-01-08 09:48:39 Raynos gulp suffers from connect middleware problem
2014-01-08 09:48:39 phated huh
2014-01-08 09:48:39 Raynos really gulp is unnecessary abstraction on top of vinyl streams
2014-01-08 09:48:39 phated so vinyl streams are a fine abstraction?
2014-01-08 09:48:39 guybrush is vinyl actually a js thing? i need to google that
2014-01-08 09:48:39 phated Raynos: are vinyl streams a fine abstraction? your previous statement implies that
2014-01-08 09:48:39 Raynos i dont know what a vinyl stream is
2014-01-08 09:48:39 Raynos maybe, maybe not
2014-01-08 09:48:39 Raynos but i think having some kind of globish stream
2014-01-08 09:48:39 Raynos being some kind of abstraction is fine
2014-01-08 09:48:39 Raynos sec, still working on a counter example for gulp
2014-01-08 09:48:39 phated it's really hard to have an actual debate with you guys when you don't research stuff before trolling
2014-01-08 09:48:39 phated which is where my original (admittedly asshole-ish) comment came from
2014-01-08 09:48:39 Raynos i dont need to.
2014-01-08 09:48:39 phated because you are god Raynos the almighty?
2014-01-08 09:48:39 Raynos i've seen enough
2014-01-08 09:48:39 phated creator of heaven and earth
2014-01-08 09:48:39 phated and all that is JS
2014-01-08 09:48:39 Raynos no, thats bullshit.
2014-01-08 09:48:39 phated exactly
2014-01-08 09:48:39 phated you don't have all ideas, or all thoughts, or even begun to consider the amount of programming knowledge in the world before you
2014-01-08 09:48:39 phated there are other ways to look at things
2014-01-08 09:48:39 phated don't point to one tiny piece of something, give it as the reason that entire thing is wrong
2014-01-08 09:48:39 substack phated: it's more that a bunch of us have seen the problems that some of these ideas can create for code reuse and interoperability
2014-01-08 09:48:39 phated yes, the original discussions that lead to gulp were to just use plain everything
2014-01-08 09:48:39 phated in practice, it doesn't work
2014-01-08 09:48:39 Raynos phated: https://gist.github.com/Raynos/8313682
2014-01-08 09:48:39 phated because huge swathes of things don't interoperate
2014-01-08 09:48:39 Raynos so the problem is not the ideas of gulp
2014-01-08 09:48:39 Raynos its the packaging
2014-01-08 09:48:39 substack phated: gulp doesn't seem to be encouraging people to use vanilla abstractions
2014-01-08 09:48:39 Raynos the fundamental problem is how gulp packages up
2014-01-08 09:48:39 Raynos as "gulp automation framework" and "gulp plugins"
2014-01-08 09:48:39 Raynos instead of "glob streams" and "npm modules"
2014-01-08 09:48:39 phated that is definitely valid
2014-01-08 09:48:39 Raynos my example doesn't work at all, but you can imagine it would work easily
2014-01-08 09:48:39 Raynos but also notice how the code is basically the same
2014-01-08 09:48:39 funkytek gulp is encouraging vanilla abstractions, much more so than grunt at least
2014-01-08 09:48:39 Raynos so gulp isnt doing anything wrong at the abstraction level
2014-01-08 09:48:39 Raynos its doing something wrong at the delivery & execution
2014-01-08 09:48:39 phated Raynos: where is the CLI abstraction?
2014-01-08 09:48:39 Raynos phated: it just works
2014-01-08 09:48:39 phated wat
2014-01-08 09:48:39 Raynos node javascript.js build
2014-01-08 09:48:39 funkytek it's just a little sugar, very light convention so you can have plugins that work ootb
2014-01-08 09:48:39 funkytek instead of writing your own wrapper code
2014-01-08 09:48:39 Raynos https://gist.github.com/Raynos/8313682#file-javascript-js-L60
2014-01-08 09:48:39 Raynos https://gist.github.com/Raynos/8313682#file-javascript-js-L11
2014-01-08 09:48:39 substack phated: why doesn't gulp just encourage people to use a copy module to copy files? I don't understand why that needs to happen through the globbing plumbing
2014-01-08 09:48:39 phated ok
2014-01-08 09:48:39 Raynos parse command as argument, run task.
2014-01-08 09:48:39 Raynos its a bit hard to see in how i organized the code, sec
2014-01-08 09:48:39 phated substack: i believe that was a marketing ploy
2014-01-08 09:48:39 phated substack: because grunt requires a COPY plugin
2014-01-08 09:48:39 phated substack: so gulp was showing that you can just pipe src and dest vinyl streams together
2014-01-08 09:48:39 Raynos https://gist.github.com/Raynos/8313682#file-javascript-js-L54
2014-01-08 09:48:39 Raynos far better ^^
2014-01-08 09:48:39 phated Raynos: yeah, that's better
2014-01-08 09:48:39 Raynos also notice how I wrote a 7 line function thats basically gulp.dest
2014-01-08 09:48:39 substack phated: that's so weird. gulp should encourage use of a copy module instead that is completely separate from gulp
2014-01-08 09:48:39 funkytek but you guys are harping on small bits of sugar
2014-01-08 09:48:39 Raynos another thing i dislike about gulp
2014-01-08 09:48:39 funkytek 7 line function, ok, but its just sugar in the lib
2014-01-08 09:48:39 Raynos is it couples task automation with glob processing
2014-01-08 09:48:39 Raynos like i dont need the idea of `gulp.task` and `gulp.run` in the same module as `gulp.dest` and `gulp.src`
2014-01-08 09:48:39 Raynos too much magic, gtfo.
2014-01-08 09:48:39 phated wat
2014-01-08 09:48:39 substack Raynos: you should cover this in your http-framework talk
2014-01-08 09:48:39 funkytek that's gotta be trolling
2014-01-08 09:48:39 Raynos why gulp.run('scripts') when i can just call the scripts() function
2014-01-08 09:48:41 phated Raynos: please, please, please do some research before you debate
2014-01-08 09:48:45 substack Raynos: then you can run it externally I think
2014-01-08 09:48:52 --> coderzach (~coderzach@cpe-74-71-137-193.nyc.res.rr.com) has joined #stackvm
2014-01-08 09:48:59 -- Mode #stackvm [+cnt]
2014-01-08 09:48:59 -- Channel created on Thu, 18 Mar 2010 01:02:18
2014-01-08 09:49:05 phated gulp exposes an instance of orchestrator
2014-01-08 09:49:15 phated so you could execute tasks from anywhere
2014-01-08 09:49:19 substack but I agree, there should be separate modules to handle globbing and running tasks
2014-01-08 09:49:36 phated substack: globbing is a separate module
2014-01-08 09:49:43 funkytek there are
2014-01-08 09:49:51 substack phated: it's all a grab bag on the `gulp` instance though
2014-01-08 09:49:53 phated there has been discussions in the issue to split out gulp.src and gulp.dest
2014-01-08 09:50:11 Raynos so I guess my problem is
2014-01-08 09:50:11 phated substack: yes, gulp is an abstraction on top of a bunch of libraries
2014-01-08 09:50:15 phated like the stuff you write
2014-01-08 09:50:25 Raynos that gulp is a glue module when using glob-watcher and orchestrator directly
2014-01-08 09:50:27 Raynos is probably better
2014-01-08 09:50:32 phated Raynos: correct
2014-01-08 09:50:34 Raynos that runs into the other problem :/
2014-01-08 09:50:41 Raynos the fact that you need a "glue module" like gulp
2014-01-08 09:50:46 phated you don't need it
2014-01-08 09:50:49 phated gulp is the CLI
2014-01-08 09:50:51 phated seriously
2014-01-08 09:50:53 phated that is all it is
2014-01-08 09:50:54 Raynos to have cohesive documentation and have it be "big enough" that the js community might start "using it"
2014-01-08 09:51:00 phated well, and the src/dest
2014-01-08 09:51:05 substack Raynos: bingo
2014-01-08 09:51:05 phated but that could be split out
2014-01-08 09:51:23 substack people gravitate towards big things
2014-01-08 09:51:25 substack and I have no idea why
2014-01-08 09:51:29 Raynos like its as if the js community needs a fat module before it pays attention and doesnt think about using the underlying parts
2014-01-08 09:51:35 Raynos substack: because search is really hard
2014-01-08 09:51:41 dlmanning substack: the higgs boson
2014-01-08 09:51:46 funkytek it's not big, its small
2014-01-08 09:51:46 phated discovery is horrible
2014-01-08 09:51:49 funkytek people have been interested
2014-01-08 09:51:55 funkytek as an alternative to grunt
2014-01-08 09:51:56 Raynos substack: people are wasiting time making grab bags because they dont want to solve the discovery / search problem
2014-01-08 09:52:02 --> cpup (~cpup@69.183.22.40) has joined #stackvm
2014-01-08 09:52:11 Raynos funkytek: thats like saying "jquery is not big. its really small compared to dojo"
2014-01-08 09:52:24 funkytek it's not at all like saying that
2014-01-08 09:52:37 funkytek i'm saying people are finding it interesting because it is lean
2014-01-08 09:52:47 funkytek because it's more expressive
2014-01-08 09:52:51 funkytek and it's basically just code
2014-01-08 09:52:55 funkytek with a tiny bit of sugar
2014-01-08 09:52:55 Raynos phated: so its non trivial from the gulp docs
2014-01-08 09:52:59 Raynos to know that tasks can have dependencies
2014-01-08 09:53:10 <-- coderzach (~coderzach@cpe-74-71-137-193.nyc.res.rr.com) has quit (Ping timeout: 246 seconds)
2014-01-08 09:53:14 phated https://github.com/gulpjs/gulp#gulptaskname-deps-fn
2014-01-08 09:53:20 phated Raynos: ^
2014-01-08 09:53:23 Raynos because task('default') should have dependencies on scripts & copy instead of calling gulp.run
2014-01-08 09:53:37 Raynos phated: I only bother reading the example
2014-01-08 09:53:48 funkytek you're arguments are muddled, you're mixing "a lib shouldn't exist" with technical criticism
2014-01-08 09:53:51 Raynos im not going to read the entire documentation
2014-01-08 09:53:55 phated Raynos: but you just said docs?
2014-01-08 09:54:03 funkytek you're showing examples that are more vanilla
2014-01-08 09:54:06 guybrush just rename very gulp-module in something without gulp in it, it wont be treated as a framework anymore!
2014-01-08 09:54:08 Raynos i didnt mean to say docs
2014-01-08 09:54:10 guybrush *ervery
2014-01-08 09:54:13 guybrush *every
2014-01-08 09:54:16 funkytek but it's just a little sugar on top of what you basically want
2014-01-08 09:54:27 funkytek with a few exceptions technically, that's fine
2014-01-08 09:54:29 Raynos so what im saying is
2014-01-08 09:54:31 phated funkytek: they said they don't like sugar
2014-01-08 09:54:34 Raynos i dont have much technical critism
2014-01-08 09:54:35 phated even though they do
2014-01-08 09:54:39 Raynos my critism is philosophical
2014-01-08 09:54:40 funkytek but you're mixing that argument with the philisophical
2014-01-08 09:54:50 Raynos as in this is a stupid thing to invest time and energy in because silos
2014-01-08 09:55:18 guybrush Raynos: is connect a silo?
2014-01-08 09:55:20 funkytek but people clearly find it useful, just like they find grunt useful
2014-01-08 09:55:23 Raynos yes 100%
2014-01-08 09:55:24 funkytek for building apps
2014-01-08 09:55:25 Raynos connect is a silo.
2014-01-08 09:55:33 funkytek is connect useful?
2014-01-08 09:55:42 --> ericholscher (~eric@216.151.13.75) has joined #stackvm
2014-01-08 09:55:44 grncdr oh man, I just read so much scrollback twf
2014-01-08 09:55:47 grncdr *wtf
2014-01-08 09:55:47 Raynos funkytek: 90% of everything is shit.
2014-01-08 09:56:04 substack funkytek: to some but everything built for it has a needlessly restricted audience for being built against its divisive api
2014-01-08 09:56:13 Raynos appeal to majority means nothing.
2014-01-08 09:56:25 funkytek -_-
2014-01-08 09:56:28 funkytek not sure if trolling
2014-01-08 09:56:29 Raynos :D
2014-01-08 09:56:38 guybrush so please give me your opinion on that: i use connect because it does everything i want with view lines of code and it is actively developed, so i can patch all the 1000 projects i use it in at once
2014-01-08 09:56:43 guybrush it this a bad thing?
2014-01-08 09:56:51 guybrush i think im driving pretty good with that
2014-01-08 09:57:02 grncdr funkytek: no, connect is not useful, connect is a leaky abstraction
2014-01-08 09:57:08 <-- cpup (~cpup@69.183.22.40) has quit (Ping timeout: 272 seconds)
2014-01-08 09:57:08 guybrush again i like to skip connect in fun-projects
2014-01-08 09:57:09 Raynos > gulp is cool. I want our company to get off grunt and im happy to move to gulp because its really not that bad. im just being an opinionated dick
2014-01-08 09:57:20 Raynos I suffer from "somebody is wrong on the internet"
2014-01-08 09:57:49 grncdr I say this as somebody who wrote a framework, with plugins built up around connect
2014-01-08 09:57:50 Raynos guybrush: connect isn't that bad. I obvouisly like https://github.com/Raynos/http-framework/
2014-01-08 09:58:05 grncdr it provided me approximately zero-value over just doing things myself
2014-01-08 09:58:08 guybrush really i just want to know your opinion on my statement
2014-01-08 09:58:13 guybrush im thinking about this a lot
2014-01-08 09:58:22 grncdr guybrush: which statement...
2014-01-08 09:58:33 phated Raynos: since you have conceded on technical merit, i think it would be super helpful if you would submit a ticket about philosophical problems you have with it
2014-01-08 09:58:55 grncdr guybrush: "i use connect because it does everything i want with view lines of code and it is actively developed, so i can patch all the 1000 projects i use it in at once"
2014-01-08 09:58:55 guybrush that i use connect because its actively developed and does all the things at once that i need to accomplish work
2014-01-08 09:59:01 guybrush right
2014-01-08 09:59:01 funkytek so minus appeal to majority, I find it useful, because I build apps for a living - i want to grab a gulp file and get moving, not discover and build wrappers around a bunch of npm modules
2014-01-08 09:59:09 Raynos phated: not quite true. I think your glob stream interface is probably a little too complex
2014-01-08 09:59:12 funkytek it's much easier to do this with gulp than grunt
2014-01-08 09:59:22 funkytek please file ticket , Raynos
2014-01-08 09:59:25 Raynos having a stream of streams or a stream of buffers feels bad
2014-01-08 09:59:26 funkytek if you're interested
2014-01-08 09:59:34 grncdr guybrush: that's fair, but it's not an argument for connect, it's an argument for better discoverability
2014-01-08 09:59:44 guybrush grncdr: no its not
2014-01-08 09:59:47 phated Raynos: i definitely think that conversation would be helpful to vinyl
2014-01-08 09:59:49 Raynos funkytek: sure, as an app developer yes. gulp really isn't a bad choice
2014-01-08 09:59:50 guybrush its an argument for frameworks
2014-01-08 10:00:09 Raynos but im not an app developer nor am I get stuff done person
2014-01-08 10:00:13 guybrush again i really like to skip connect
2014-01-08 10:00:14 Raynos I'm a do it once and do it right person
2014-01-08 10:00:17 phated Raynos: https://github.com/wearefractal/vinyl
2014-01-08 10:00:21 guybrush its just for work its pretty hard to skip
2014-01-08 10:00:35 funkytek Contra and I build lots of diverse apps all the time, the idea for gulp came out of our dissatisfaction with grunt's config over code
2014-01-08 10:00:39 funkytek it was too inflexible
2014-01-08 10:00:45 grncdr guybrush: the distinction between framework and library get's a bit fuzzy but...
2014-01-08 10:01:12 funkytek and lack of rigid standards for plugins
2014-01-08 10:01:15 --> cpup (~cpup@69.183.22.40) has joined #stackvm
2014-01-08 10:01:21 funkytek as app developers we're productivity driven
2014-01-08 10:01:24 phated funkytek: not only that, but not being able to use the existing ecosystem
2014-01-08 10:01:25 grncdr connect is a grab bag of utiliities that can be glued together with a unifying abstraction: (req, res, next) -> void
2014-01-08 10:01:38 guybrush well you can see it how you want
2014-01-08 10:01:47 grncdr my point is that most of the utiltities don't benefit from that abstraction
2014-01-08 10:01:53 funkytek a gulp plugin is just a function, i understand your philosophical issue with silo's though
2014-01-08 10:02:05 funkytek but from a pragmatic standpoint it is productive
2014-01-08 10:02:28 guybrush grncdr: right, thats what i said before - once the community agrees to use something everyone builds uppon it and there we go
2014-01-08 10:02:30 grncdr the benefit I thought you were talking about was "connect has many things I want and I can put them together easily"
2014-01-08 10:02:43 phated a gulp plugin is a node module that receives a vinyl stream and outputs a vinyl stream
2014-01-08 10:02:46 guybrush you have to go with it, in order to be competitive (not in a bad sense)
2014-01-08 10:02:48 phated a gulp task is just a function
2014-01-08 10:02:51 Raynos funkytek: so i could say your taking a productivity shortcut that hurts the community in the long run
2014-01-08 10:03:05 guybrush somehow this is also true for browserify btw
2014-01-08 10:03:07 funkytek why does it hurt the community
2014-01-08 10:03:24 funkytek i really don't agree with that
2014-01-08 10:03:25 Raynos because time is wasted writing gulp plugins instead of gulp wrappers around standalone modules
2014-01-08 10:03:28 Raynos same with grunt
2014-01-08 10:03:38 Raynos a lot of time is wasted writing grunt plugins instead of grunt wrappers around standalone modules
2014-01-08 10:03:44 funkytek a gulp plugin is a gulp wrapper around a standalone npm module
2014-01-08 10:03:47 Raynos if that wasn't the case then gulp could trivially wrap 90% of grunt code
2014-01-08 10:04:17 guybrush Raynos: but a lot of different opinions/approaches and stuff is a good thing
2014-01-08 10:04:22 funkytek i think gulp plugins are what you want
2014-01-08 10:04:27 funkytek you should look at some :)
2014-01-08 10:04:31 guybrush i welcome gulp (though i will never use it :p)
2014-01-08 10:04:42 Raynos maybe i assume gulp plugin authors are as bad as grunt plugin authors :p
2014-01-08 10:04:46 funkytek gulp plugins are just functions that use streams
2014-01-08 10:04:49 Raynos sec.
2014-01-08 10:04:53 funkytek no the gulp plugin guidelines are very strict
2014-01-08 10:05:03 guybrush funkytek: whats the different between gulp and just node?
2014-01-08 10:05:11 guybrush functions that use streams?
2014-01-08 10:05:16 phated Raynos: gulp plugins wrap an existing node module in a stream
2014-01-08 10:05:18 guybrush why do i need gulp for that?
2014-01-08 10:05:35 <-- ericholscher (~eric@216.151.13.75) has left #stackvm
2014-01-08 10:06:09 funkytek convenience , a little sugar and pluins that work ootb
2014-01-08 10:07:08 timoxley funkytek: another issue with wrappers is they fall out of sync with the original code
2014-01-08 10:07:09 guybrush hmmm its ok
2014-01-08 10:07:17 guybrush as long as i dont have to use it haha
2014-01-08 10:07:22 grncdr guybrush: ok, so I guess the distinction I'm making is that "connect middleware the convention" doesn't actually add a lot of value, but *does* require the caller to either "be connect compatible" or fake it. This requirement on *consumers* of your software is what can occasionally cause friction or awkward API's when you want to use that connect-specific code in a non-connect context (something I've personally run in to)
2014-01-08 10:07:27 grncdr whoa, wall of text
2014-01-08 10:07:29 grncdr :D
2014-01-08 10:07:30 timoxley browserify updates, when does the wrapper update?
2014-01-08 10:07:40 Raynos var File = require('gulp-util').File; instead of `var File = require("vinyl")` is annoying
2014-01-08 10:07:46 grncdr timoxley: "later" ;)
2014-01-08 10:07:59 timoxley bad.
2014-01-08 10:08:00 guybrush grncdr: i ran into that too
2014-01-08 10:08:08 guybrush its why i think about it a lot
2014-01-08 10:08:11 Raynos also just making me look at gulp-util makes me sad :(
2014-01-08 10:08:20 Raynos if you need the name util in a module name then :(
2014-01-08 10:08:24 funkytek timoxley: so it's better to update it yourself
2014-01-08 10:08:35 funkytek what's the difference
2014-01-08 10:08:38 funkytek it has to be updated
2014-01-08 10:08:54 timoxley funkytek: it's better to not have to rely on a 3rd party to update their wrapper to get the latest
2014-01-08 10:09:12 funkytek timeoxley: idk if you've heard of this thing called github
2014-01-08 10:09:13 timoxley it's a real pain in the ass
2014-01-08 10:09:20 funkytek it's pretty cool
2014-01-08 10:09:24 phated Raynos: huh? `var File = require('vinyl');`
2014-01-08 10:09:29 phated that is from the readme
2014-01-08 10:09:31 grncdr guybrush: my thought is that if you *are* using connect, wrapping anything in a 2-line function to make it call `next` at the write time is trivial. Pulling behaviour that's wrapped in a closure out is not
2014-01-08 10:09:40 Raynos i was looking at implementation of gulp.src
2014-01-08 10:09:40 funkytek Raynos: you must have some outdated code
2014-01-08 10:09:49 Raynos https://github.com/gulpjs/gulp/blob/master/lib/createInputStream/index.js#L4
2014-01-08 10:09:53 substack guybrush: yes, it can be a problem in browserify too, which is why browserify plugins are only module.exports = function (file) { return stream } but there can still be issues with that
2014-01-08 10:10:18 phated Raynos: meh, i linked you to the actual repo
2014-01-08 10:10:20 <-- cpup (~cpup@69.183.22.40) has quit (Ping timeout: 246 seconds)
2014-01-08 10:10:41 substack and that's why I tried really hard with browserify not to invent anything new and just use the node APIs verbatim when I could
2014-01-08 10:10:47 guybrush substack: it takes a lot to build something like browserify, its not like i can just write a cool thing that works as good as it
2014-01-08 10:11:01 grncdr geez this is a real rager ;P
2014-01-08 10:11:01 guybrush so... when i make a project
2014-01-08 10:11:06 substack guybrush: but you almost can ;)
2014-01-08 10:11:09 guybrush its not like i can just make it awesome by default
2014-01-08 10:11:13 phated Raynos: gulp-util.File is going to be vinyl in the next release, i believe
2014-01-08 10:11:26 substack guybrush: since module-pack, insert-module-globals, and browser-pack are all completely independent projects
2014-01-08 10:12:13 guybrush i know, i waited a view seconds before i hit enter when i claimed that browserify suffers from the same problem haha
2014-01-08 10:12:16 substack phated: why not just use callbacks or events instead of fitting everything into vinyl streams?
2014-01-08 10:12:23 substack not everything is well suited to streams
2014-01-08 10:12:23 phated substack: it does that
2014-01-08 10:12:32 phated again, it does that
2014-01-08 10:12:41 phated that's the awesome things about docs, they tell you that stuff
2014-01-08 10:12:54 substack phated: all the examples I've ever seen only use .pipe()
2014-01-08 10:13:03 phated substack: https://github.com/gulpjs/gulp#async-task-support
2014-01-08 10:13:13 substack guybrush: it's something I worry about though
2014-01-08 10:13:30 substack I really don't want browserify to create a silo like connect did
2014-01-08 10:13:41 grncdr phated: legitimate Gulp newb question, why use it?
2014-01-08 10:13:56 grncdr I'm not trolling, I've read (most) of the scrollback
2014-01-08 10:13:56 phated substack: from my point of view, browserify is already a silo
2014-01-08 10:13:57 substack the only silo we should have is "the node way", browser and server side alike
2014-01-08 10:13:59 Raynos phated, funkytek: I changed my mind, gulp is cool, im learning from it
2014-01-08 10:14:08 Raynos theres a bunch of cool modules in there that i can use directly
2014-01-08 10:14:33 phated Raynos: I'm glad... there has been a lot of work on gulp, and a ton of splitting things out
2014-01-08 10:14:35 grncdr what is the improvement it's providing over npm & node?
2014-01-08 10:15:08 phated Raynos: i agree that gulp is glue, i disagree that glue is bad, because things people make for the glued pieces will work in the individual pieces
2014-01-08 10:15:21 phated grncdr: it uses npm and node
2014-01-08 10:15:27 phated grncdr: it benefits from it
2014-01-08 10:15:27 funkytek Raynos: i thought you would like it if you checked it out :D
2014-01-08 10:15:28 substack phated: I mean a buffer stream, not an object stream
2014-01-08 10:15:32 funkytek it is fairly vanilla
2014-01-08 10:15:34 phated grncdr: gulp is just JS
2014-01-08 10:15:36 substack just read the docs on that
2014-01-08 10:15:40 phated substack: huh?
2014-01-08 10:15:57 substack gulp plugins are object streams
2014-01-08 10:16:04 phated correct
2014-01-08 10:16:19 grncdr phated: um, I know all that? I really don't understand what it's providing *on top of* npm and node though
2014-01-08 10:16:25 phated substack: the contents property can be a Buffer, stream, or null
2014-01-08 10:16:26 Raynos phated, funkytek: what are your github names, I'll reference you in the gulp issue I'm writing
2014-01-08 10:16:34 funkytek @funkytek
2014-01-08 10:16:38 phated Raynos: @phated
2014-01-08 10:16:53 substack phated: that makes them somewhat silo-esque because you can't just trivially reuse gulp plugins outside of gulp
2014-01-08 10:17:02 guybrush in the end its all ok as long as its at least remotely in the unix-silo
2014-01-08 10:17:15 phated grncdr: it provides a CLI, task deps, the orchestrator stuff, vinyl streams
2014-01-08 10:17:19 phated substack: you actually can
2014-01-08 10:17:29 phated substack: although, you are tied to vinyl streams
2014-01-08 10:17:39 substack phated: that's the thing I'm skeptical about
2014-01-08 10:17:43 phated substack: but i would hope that you don't think vinyl streams are horrible
2014-01-08 10:17:49 phated substack: and they are open to change
2014-01-08 10:17:52 phated substack: i think
2014-01-08 10:17:54 grncdr phated: npm & node provides all that except "vinyl streams"
2014-01-08 10:17:56 timoxley phated: it doesn't matter if they are good or bad
2014-01-08 10:18:27 grncdr and I don't mean in the "provides all that if I write a few dozen lines of boilerplate"
2014-01-08 10:18:30 phated grncdr: it's just glue, as was just being discussed with Raynos, you can use the things by themselves
2014-01-08 10:18:46 substack phated: if plugins are written to an exotic kind of abstraction, that will create silos even if the abstractions are good
2014-01-08 10:18:58 substack like for example
2014-01-08 10:19:06 substack you can't just use browserify directly
2014-01-08 10:19:17 substack because the stream that .bundle() returns isn't a vinyl stream
2014-01-08 10:19:20 phated you can use browserify directly
2014-01-08 10:19:33 substack if that's true, then why does gulp-browserify exist?
2014-01-08 10:19:33 phated you wouldn't be able to pipe it into another vinyl stream
2014-01-08 10:19:39 phated but you can return it
2014-01-08 10:19:43 phated and orchestrator will handle it
2014-01-08 10:20:16 substack gul-browserify shouldn't exist
2014-01-08 10:20:20 substack *gulp
2014-01-08 10:20:21 phated substack: how would you handle this scenario
2014-01-08 10:20:27 substack something is wrong upstream
2014-01-08 10:20:47 phated substack: you have a glob pattern that you want to create a stream for each one
2014-01-08 10:21:07 substack phated: I wouldn't.
2014-01-08 10:21:17 substack can you describe what problem that would be solving?
2014-01-08 10:21:33 phated i can
2014-01-08 10:21:37 phated if you would let me type
2014-01-08 10:21:43 phated before being a jerk
2014-01-08 10:22:01 substack phated: you seem to take offense really easily. Please stop that.
2014-01-08 10:22:11 substack it's getting very annoying and that is not how this place works
2014-01-08 10:23:10 rowbit1 Hourly usage stats: [developer: 0, free: 58]
2014-01-08 10:23:18 phated substack: a glob pattern of CSS files that you need to pipe into a stream that removes unused styles or duplicate styles or something, but you need to output each one as the same filename with .stripped.css instead of .css path
2014-01-08 10:24:37 phated substack: i wouldn't get so offended so easily if you were a giant jerk in real life the one time i met you
2014-01-08 10:25:13 funkytek I think the arguments are getting muddled again, the technical criticisms of gulp are relatively minor, he real criticism is philosophical: the silo problem
2014-01-08 10:25:38 funkytek which is valid, i think the real answer is to people who don't build apps, or a lot of apps, or work on 1 app
2014-01-08 10:25:42 funkytek it's probably not that valuable
2014-01-08 10:25:44 phated funkytek: substack is saying vinyl causes silos, because it isn't a text stream
2014-01-08 10:25:58 phated i gave a technical reason why vinyl streams need to exist
2014-01-08 10:26:12 funkytek but i guess that's what i'm getting at, is the technical arguments are minor and somewhat nuanced, the real problem is silo-ization
2014-01-08 10:26:12 substack I would find a module that would fire a callback for every file in the glob results
2014-01-08 10:26:31 funkytek and substack admits even browserify is subject to this, which i applaud him working hard to avoid
2014-01-08 10:26:38 substack and then do stream.pipe(stripTransform()).pipe(fs.createWriteFile(outfile))
2014-01-08 10:26:46 substack which can be done completely with regular text streams
2014-01-08 10:27:13 funkytek i think our take on gulp is it's pretty vanilla, and you get a ton of value out of it even if it is somewhat silo'd it's vanilla and modular enough it can still have value as raynos pointed out
2014-01-08 10:27:31 funkytek but the real argument here isn't technical it's philosophical
2014-01-08 10:28:12 phated substack: i will agree with you on the gulp-browserify point, it is dumb since browserify has 1 entry point (not a glob) and already deals in streams
2014-01-08 10:28:16 substack there are some technical problems that manifest with ecosystem silos
2014-01-08 10:28:24 substack like maintaining versions upstream
2014-01-08 10:28:40 phated substack: couldn't that be solved by semver?
2014-01-08 10:28:42 funkytek yep and you trade that for convenience basically
2014-01-08 10:29:11 substack phated: not really. If the upstream changes then the plugin needs to change
2014-01-08 10:29:25 substack and who knows if the plugin author will be responsive enough
2014-01-08 10:29:32 phated substack: if the API changes, then yes, but correct semver mitigates that
2014-01-08 10:29:35 funkytek but there's a reason a lot of people are using grunt and now gulp, because there is productivity value in it not because they're all stupid and bad programmers destroying the node ecosystem
2014-01-08 10:29:38 Raynos funkytek: you can have value if you use gulp in a philosophical way
2014-01-08 10:29:42 Raynos i.e. you apply my philosophy
2014-01-08 10:29:46 funkytek :)
2014-01-08 10:29:55 substack phated: the problem is one of needless staleness
2014-01-08 10:29:57 <-- freeall (~freeall@0709ds5-by.0.fullrate.dk) has quit (Quit: Leaving...)
2014-01-08 10:29:58 Raynos and then you put gulp on top of my philosophy as a "optional convenience on the side thing"
2014-01-08 10:30:12 Raynos https://github.com/gulpjs/gulp/issues/110
2014-01-08 10:30:24 phated Raynos: i think gulp is very close to your philosophy
2014-01-08 10:30:26 funkytek it's a convenience and productivity lib, that's what it's there for
2014-01-08 10:30:37 Raynos phated: the problem is that it hides my philosophy
2014-01-08 10:30:53 Raynos i had to look really hard and be convinced by too aggresively defending people to find that it is close
2014-01-08 10:31:07 Raynos its a massive unneccesary layer of friction
2014-01-08 10:31:50 funkytek again for you / your use case
2014-01-08 10:32:16 funkytek whoa im not being that aggressively defensive :)
2014-01-08 10:32:33 Raynos prob not.
2014-01-08 10:32:42 funkytek just having a fun chat with yall
2014-01-08 10:32:51 Raynos its not a bad thing
2014-01-08 10:32:56 Raynos its actually good :p
2014-01-08 10:33:00 * grncdr high fives funkytek
2014-01-08 10:33:12 * grncdr high fives *everybody*
2014-01-08 10:33:24 grncdr this channel needs more LOUDBOT
2014-01-08 10:33:39 Raynos funkytek: so http://www.infoq.com/presentations/Simple-Made-Easy
2014-01-08 10:33:49 Raynos you decided to make something easy instead of simple
2014-01-08 10:33:57 funkytek ehh not true really but
2014-01-08 10:34:05 funkytek i am a big fan of hickey and this talk in particular
2014-01-08 10:34:41 Raynos the convenience gulp gives makes it easier but also adds more complexity / hides simplicity
2014-01-08 10:34:56 funkytek compared to grunt, gulp is much, much simpler
2014-01-08 10:34:59 funkytek it's just code
2014-01-08 10:35:05 grncdr would it be fair there are "simple" parts and "easy" parts to the set of things we are calling "gulp" ?
2014-01-08 10:35:15 funkytek it promotes native node abstractions instead of weird declarative config dsl
2014-01-08 10:35:23 funkytek it is not _pure_
2014-01-08 10:35:37 grncdr like maybe what Raynos is driving at isn't so much "easy == bad" and "simple == good"
2014-01-08 10:35:39 Raynos funkytek: compared to Maven grunt is much, much simpler
2014-01-08 10:35:40 funkytek you can say oh compoared to grunt doesn't mean anything, but again, being pragmatic it does
2014-01-08 10:35:48 funkytek when we all use grunt! :D
2014-01-08 10:35:52 --> cpup (~cpup@69.183.22.40) has joined #stackvm
2014-01-08 10:36:01 Raynos no
2014-01-08 10:36:04 Raynos we dont all use grunt
2014-01-08 10:36:07 Raynos i will remind you
2014-01-08 10:36:10 funkytek that's my point
2014-01-08 10:36:17 phated Raynos: what would you classify as non-trivial?
2014-01-08 10:36:23 Raynos http://nodejsreactions.tumblr.com/post/71426391619/when-the-discussion-turns-to-build-tools-or-front-end
2014-01-08 10:36:23 funkytek i'm saying for people who use grunt
2014-01-08 10:36:25 funkytek it's simpler
2014-01-08 10:36:30 Raynos I really should have run away
2014-01-08 10:36:33 Raynos a long time ago
2014-01-08 10:36:38 funkytek but i'm agreeing with you
2014-01-08 10:36:41 funkytek you shouldn't use gulp
2014-01-08 10:36:47 funkytek it doesn't make sense for your use case
2014-01-08 10:36:52 funkytek im saying the grunt comparison is valid
2014-01-08 10:36:56 funkytek when you're already using grunt
2014-01-08 10:37:04 funkytek gulp is simpler
2014-01-08 10:37:22 funkytek it's sacrificing simplicity for ease vs. 100% vanilla js
2014-01-08 10:37:26 Raynos phated: I'm not entirely sure, but the fact i could rewrite the example in a way i find a lot simpler in an hour is making me feel strongly that gulp is an unneccessary layer of abstraction
2014-01-08 10:37:29 funkytek it's simpler than grunt
2014-01-08 10:37:38 phated i just feel bad for the people who miss out of knowledge because they don't dig into something
2014-01-08 10:37:54 phated Raynos: you rewrote it so simply because gulp did all the work first ;)
2014-01-08 10:37:58 funkytek so for those of us who find value in grunt (me, i build many apps) it is a step in the right direction (simpler)
2014-01-08 10:38:07 Raynos phated: yes and that is really awesome
2014-01-08 10:38:16 --> contrahax (~contrahax@ip24-251-13-101.ph.ph.cox.net) has joined #stackvm
2014-01-08 10:38:20 Raynos the fact that the gulp guys broke some of their pillars out into standalone modules is win++
2014-01-08 10:38:23 Raynos thats why npm is <3
2014-01-08 10:38:30 phated and then contrahax joins in ;)
2014-01-08 10:38:43 contrahax hi
2014-01-08 10:38:44 funkytek for those not using any build tooling because it sacrifices simplicity of vanilla js
2014-01-08 10:38:51 funkytek there is no use of gulp for you, keep doing what you're doing
2014-01-08 10:38:57 funkytek not trying to shoehorn your use case
2014-01-08 10:39:00 contrahax whats going on in here
2014-01-08 10:39:07 guybrush woah _that_ is funny, i just fell from my sittingball http://nodejsreactions.tumblr.com/post/71649072477/look-at-mah-new-framework-it-does-all-the-things
2014-01-08 10:39:12 phated contrahax: gulp debate
2014-01-08 10:39:14 Raynos the fact that the gulp guys do both that for 5-10 modules and then pollute npm with 150 gulp- modules is many many sads
2014-01-08 10:39:15 guybrush (not related to the current discussion)
2014-01-08 10:39:21 contrahax okay
2014-01-08 10:39:28 funkytek i'm saying gulp is a valid alternative to grunt, which has value for app developers
2014-01-08 10:39:36 contrahax well to start this off i dont care what anyone thinks because i made gulp for myself to use
2014-01-08 10:39:39 phated Raynos: the gulp guys don't pollute anything, there is no core lib
2014-01-08 10:39:46 Raynos gulp-util
2014-01-08 10:39:48 Raynos :P
2014-01-08 10:39:58 Raynos pollute is an unneccessary negative word
2014-01-08 10:40:08 contrahax can somebody catch me up
2014-01-08 10:40:26 Raynos im done ranting, because i've gone in circles
2014-01-08 10:40:28 funkytek contrahax: basically the debate is philosophical
2014-01-08 10:40:30 phated contrahax: Raynos likes gulp, but not the philosophy, substack hates it
2014-01-08 10:40:44 Raynos im worried that gulp plugins will be a silo community
2014-01-08 10:40:50 <-- cpup (~cpup@69.183.22.40) has quit (Ping timeout: 272 seconds)
2014-01-08 10:40:51 funkytek the problem being creating a plugin ecosystem (ie having a lib with opinions) creates silos
2014-01-08 10:40:52 contrahax okay i dont care
2014-01-08 10:40:57 contrahax i made it to help me out
2014-01-08 10:40:58 funkytek my point is that
2014-01-08 10:41:01 Raynos and that i wont be able to use gulp plugins outside of gulp.
2014-01-08 10:41:03 funkytek it doesn't matter because it has value
2014-01-08 10:41:07 Raynos which sucks
2014-01-08 10:41:11 phated Raynos: outside of vinyl
2014-01-08 10:41:13 funkytek and thats about it
2014-01-08 10:41:14 contrahax if you dont like it then dont use it
2014-01-08 10:41:17 Raynos because glob-stream & glob-watcher are awesome
2014-01-08 10:41:32 funkytek exactly, im saying to raynos it doesn't fit his or substack's usecases
2014-01-08 10:41:37 funkytek and that's fine
2014-01-08 10:41:49 funkytek just because it's silo'd doesn't mean it doesn't make sense
2014-01-08 10:41:49 Raynos it would be more awesome if there was more things like glob-stream and less things like gulp-uglify
2014-01-08 10:41:59 funkytek it has productivity value for app devs
2014-01-08 10:42:09 contrahax im open to ideas but the whole "ah this sucks because something already exists" argument is invalid to me
2014-01-08 10:42:23 phated Raynos: you don't think things like glob-stream will come out of gulp?
2014-01-08 10:42:54 Raynos from anyone that follows that philosophy yes
2014-01-08 10:42:59 Raynos the core gulp developers seem to align
2014-01-08 10:43:09 floatdrop contrahax one valid phrase was said: orchestrator is unnecessary complex tool, that could be removes/simplified
2014-01-08 10:43:11 Raynos the fractal people seem to align
2014-01-08 10:43:19 Raynos people that write one or two gulp plugins probably wont
2014-01-08 10:43:26 floatdrop contrahax do you using orchestrators deps?
2014-01-08 10:43:29 Raynos This is like the meteor conversation all over again
2014-01-08 10:43:35 floatdrop *use
2014-01-08 10:43:43 phated floatdrop: put it in gulpjs
2014-01-08 10:43:56 floatdrop where?
2014-01-08 10:44:39 contrahax i didnt make orchestrator
2014-01-08 10:44:46 funkytek Raynos: meteor's use case is rapid prototyping, i'm not gonna use it but if it works w/e
2014-01-08 10:45:03 Raynos but as a consequence of making it easy for one group of people
2014-01-08 10:45:06 funkytek a lot more people use grunt than meteor , and get value out of it
2014-01-08 10:45:06 jesusabdullah If you don't embrace npm you're gonna have a bad time
2014-01-08 10:45:09 Raynos they create no value outside of that group of people
2014-01-08 10:45:10 jesusabdullah I say this from experience
2014-01-08 10:45:20 contrahax the code is really complex the last time i looked at it
2014-01-08 10:45:20 funkytek everyone embraces npm here that's for certain
2014-01-08 10:45:37 grncdr oh hey contrahax I just realized you're the same contra from meatspace chats o/
2014-01-08 10:45:48 Raynos ok so maybe my objection is that vinyl streams are too weird to interact with
2014-01-08 10:45:59 jesusabdullah I haven't done meatspace in ages
2014-01-08 10:46:02 funkytek raynos: so is that your real issue with silos is people are writing code and not giving back to 100% of the community
2014-01-08 10:46:04 Raynos the whole stream or buffer thing
2014-01-08 10:46:22 funkytek bottom line is you get power from convention/opinions at the sacrifice of accessibility
2014-01-08 10:46:32 jesusabdullah tbh I dig the cut of gulp's jib
2014-01-08 10:46:32 funkytek you have to find the right balance
2014-01-08 10:46:39 Raynos funkytek: my issue is that I find myself rewriting things that should already be solved problems
2014-01-08 10:46:40 jesusabdullah way better n' grunt that's for sure
2014-01-08 10:46:47 Raynos because the only existing solutions are deeply nested in frameworks
2014-01-08 10:46:55 contrahax thanks jesusabdullah
2014-01-08 10:46:58 Raynos and everyone else seems to be ok with that and just uses the entire framework
2014-01-08 10:47:05 grncdr jesusabdullah: indeed that is something *everybody* agrees on ;)
2014-01-08 10:47:06 contrahax Raynos gulp plugins arent supposed to be a silo
2014-01-08 10:47:19 contrahax i tried to stick with node ideals as much as possible while still providing enough convention to make it easy
2014-01-08 10:47:29 contrahax if you think i did a bad job im open to better ideas
2014-01-08 10:47:37 timoxley mmalecki: does hock do something like, only respond to a mocked route once?
2014-01-08 10:47:50 jesusabdullah I think a lot of that is taste and principoles, contrahax
2014-01-08 10:47:52 Raynos contrahax: https://github.com/terinjokes/gulp-uglify/blob/master/index.js
2014-01-08 10:47:55 jesusabdullah principles*
2014-01-08 10:47:56 phated contrahax: i actually agree with him that gulp-plugins have gotten out of control
2014-01-08 10:48:09 contrahax its hard to find the right balance between the two
2014-01-08 10:48:10 Raynos if fs.createReadStream().pipe(uglify()).pipe(fs.createWriteStream()) worked
2014-01-08 10:48:14 Raynos then that would be really cool
2014-01-08 10:48:14 funkytek raynos: i feel the same way, but as problems increase in complexity you can't solve them generically without any opinions/structue in place
2014-01-08 10:48:21 mmalecki timoxley: yeah, I *think* that might be the case. which is too bad, I don't like this behavior...
2014-01-08 10:48:23 funkytek thats why frameworks exist
2014-01-08 10:48:25 mmalecki timoxley: let me double-check tho
2014-01-08 10:48:35 mmalecki robertkowalski: hey
2014-01-08 10:48:36 contrahax Raynos thats not our fault though
2014-01-08 10:48:36 funkytek i wish everything could just be vanilla, opinions get you power
2014-01-08 10:48:37 phated Raynos: if uglify would accept a patch for streams, then it would be possible
2014-01-08 10:48:38 contrahax most plugins are dealing with 3rd party libs that use strings
2014-01-08 10:49:11 timoxley mmalecki: thanks. I'm trying to mock out downloads for some npm tests and it seems to choke the second time the mocked route is requested
2014-01-08 10:49:14 mmalecki robertkowalski: sorry, I missed your message. let's chat when you're back -- bitswipe is not completely done yet, we have a MVP, but would love to work with you to get it set up
2014-01-08 10:49:15 Raynos funkytek: I'm trying really hard to solve the scope of "web apps" generically without frameworks/opinions/structure ( https://github.com/Raynos/http-framework/ )
2014-01-08 10:49:16 contrahax i tried to set strict enough plugin guidelines to make sure that people used normal modules where it made sense
2014-01-08 10:49:21 jesusabdullah mmalecki: stop telling the internet you do drugs
2014-01-08 10:49:32 mmalecki timoxley: I think it's trying to follow nock's original behavior
2014-01-08 10:49:33 contrahax and built plugins when they needed to
2014-01-08 10:49:34 mmalecki jesusabdullah: no
2014-01-08 10:49:35 Raynos contrahax: ok so that one is uglifies fault
2014-01-08 10:49:39 contrahax if it got out of hand then i tried my best but i cant stop people from publishing garbage
2014-01-08 10:49:39 --> coderzach (~coderzach@cpe-74-71-137-193.nyc.res.rr.com) has joined #stackvm
2014-01-08 10:49:45 jesusabdullah also I really need to sleep but I can't because new york
2014-01-08 10:49:46 mmalecki jesusabdullah: drugs are a hobby like every other fucking hobby out there
2014-01-08 10:50:10 phated Raynos: the reason why i have been arguing so hard for gulp is because i like your work on http-framework
2014-01-08 10:50:16 jesusabdullah yeah but it can have repercussions, that's what I worry about
2014-01-08 10:50:24 phated Raynos: i feel like it is at the same level of abstraction
2014-01-08 10:50:25 mmalecki jesusabdullah: besides that, 5-HTP is not a *real* drug
2014-01-08 10:50:28 timoxley mmalecki: any hints as to a way around it?
2014-01-08 10:50:31 jesusabdullah o
2014-01-08 10:50:33 mmalecki well, it's a diet supplement
2014-01-08 10:50:38 mmalecki check it out, you might like it
2014-01-08 10:50:56 mmalecki oh, you're in NY. ask Avian, he had a bottle lying around XD
2014-01-08 10:50:56 jesusabdullah ehhh
2014-01-08 10:51:05 jesusabdullah I'll be in NY *tomorrow*
2014-01-08 10:51:09 mmalecki ohhh
2014-01-08 10:51:10 Raynos phated: if s/gulp-/vinyl-/ and i bikeshedded a bit about the vinyl interface
2014-01-08 10:51:11 mmalecki okay!
2014-01-08 10:51:13 Raynos then yes its the same
2014-01-08 10:51:27 jesusabdullah Anyways I think I'll stick to cigarettes and coffee
2014-01-08 10:51:34 Raynos its a set of modules that all work on some standard stream of files interface
2014-01-08 10:51:46 Raynos where the new stream of files interface is what creates cohesive composability
2014-01-08 10:51:48 mmalecki jesusabdullah: ask your doctor, he might even recommend it
2014-01-08 10:51:51 mmalecki s/he/she/
2014-01-08 10:51:57 jesusabdullah My doctor sucks
2014-01-08 10:51:58 Raynos although each module should probably work on a stream of files or a single file
2014-01-08 10:52:08 mmalecki jesusabdullah: 5-HTP has *some* reputation in MD world
2014-01-08 10:52:10 jesusabdullah probably the best I can find in SLC
2014-01-08 10:52:20 phated Raynos: i think contrahax would be up for bikeshedding vinyl stuff in issues
2014-01-08 10:52:26 phated i am very interested in it
2014-01-08 10:52:26 contrahax if there was no need for vinyl or gulp plugins i would be a happy guy but sadly all APIs are created different and people want a consistent layer so they dont have to learn the intricacies of every other developers modules
2014-01-08 10:52:28 mmalecki jesusabdullah: you should print out studies Berkeley (I think?) did
2014-01-08 10:52:48 timoxley contrahax: why not standardise around node streams
2014-01-08 10:52:52 mmalecki jesusabdullah: boom, Maryland: http://umm.edu/health/medical/altmed/supplement/5hydroxytryptophan-5htp
2014-01-08 10:52:56 Raynos i guess the big problem
2014-01-08 10:53:06 Raynos is half the modules want file names and the other half want streams
2014-01-08 10:53:17 jesusabdullah timoxley: a stream with only one write?
2014-01-08 10:53:22 jesusabdullah timoxley: I did think about this
2014-01-08 10:53:24 Raynos so you need some kind of File { stream, path, buffer } abstraction
2014-01-08 10:53:34 substack Raynos: npm ERR! 404 'uglify' is not in the npm registry.
2014-01-08 10:53:36 funkytek Raynos: i like this, i guess the thing is if we want real purity and simplicity let's just switch to clojure/clojurescript :)
2014-01-08 10:53:37 mmalecki jesusabdullah: there's a bunch of supporting research and shit
2014-01-08 10:53:38 substack GO
2014-01-08 10:53:39 substack NOW
2014-01-08 10:53:41 substack DO IT
2014-01-08 10:53:43 substack FIX THIS
2014-01-08 10:53:43 LOUDBOT THE PERL COMMUNITY IS NOT AS FRIENDLY AS IT SEEMS.
2014-01-08 10:53:51 contrahax thats what vinyl is
2014-01-08 10:53:51 Raynos substack: there is no uglify stream module :/
2014-01-08 10:53:54 phated substack: uglify-js
2014-01-08 10:53:59 substack Raynos: exactly
2014-01-08 10:54:02 substack until now...
2014-01-08 10:54:05 jesusabdullah substack: fuglifyjs?
2014-01-08 10:54:06 substack anyways I'll do it
2014-01-08 10:54:12 jesusabdullah substack: I think it's time for fuglify.js
2014-01-08 10:54:25 mmalecki jesusabdullah: also, as to repercussions for talking about drugs on the internet, I can't possibly imagine something like that really
2014-01-08 10:54:29 phated yeah contrahax, I think Raynos still needs to look at https://github.com/wearefractal/vinyl
2014-01-08 10:54:33 contrahax vinyl is very much a work in progress if you have better ideas im open to rewriting the entire thing
2014-01-08 10:54:35 Raynos substack: fixing.
2014-01-08 10:54:38 mmalecki jesusabdullah: like, if my potential employer mentioned that I'd just LOL in his face
2014-01-08 10:54:38 substack bwahaha
2014-01-08 10:54:43 Raynos i looked at vinyl
2014-01-08 10:54:45 <-- coderzach (~coderzach@cpe-74-71-137-193.nyc.res.rr.com) has quit (Ping timeout: 272 seconds)
2014-01-08 10:54:49 jesusabdullah mmalecki: in the US that can get you fired immediately
2014-01-08 10:54:51 mmalecki and possibly starve
2014-01-08 10:54:51 timoxley jesusabdullah: streams with one write?
2014-01-08 10:54:55 substack Raynos: just take over the `uglify` name on npm
2014-01-08 10:54:58 substack is what I'm saying
2014-01-08 10:55:11 substack and make it streaming and nice
2014-01-08 10:55:21 contrahax finding the line between convenience and correctness is not easy
2014-01-08 10:55:22 jesusabdullah timoxley: why wrap uglify with a stream if it only works if you pass it the full source string, and calls back with another full source string?
2014-01-08 10:55:27 mmalecki jesusabdullah: yeah, for shitty employers, I can imagine
2014-01-08 10:55:37 jesusabdullah mmalecki: No, even pretty good employers
2014-01-08 10:55:41 mmalecki jesusabdullah: like, y'all still have that lulzy drug test thing going on?
2014-01-08 10:55:47 timoxley jesusabdullah: yeah that's crap
2014-01-08 10:55:56 jesusabdullah mmalecki: yeah, a lot of jobs do
2014-01-08 10:56:17 * funkytek switches to clojure(script)
2014-01-08 10:56:18 mmalecki http://www.secretsofthefed.com/wp-content/uploads/2013/03/drug-test-meme-what-drugs-are-we-testing.jpg
2014-01-08 10:56:19 substack jesusabdullah: that's an implementation detail
2014-01-08 10:56:55 jesusabdullah substack: Sure, of course, but it's a lot of rigamorole to standardize against that interface no?
2014-01-08 10:57:01 jesusabdullah substack: (yes I know, write the module once)
2014-01-08 10:57:54 timoxley jesusabdullah: perhaps there's no good reason uglify couldn't be made to stream natively
2014-01-08 10:58:05 jesusabdullah timoxley: MAYBE
2014-01-08 10:58:09 timoxley maybe.
2014-01-08 10:58:17 phated Raynos: alright, good discussion. hopefully you open an issue on vinyl, i would love to bikeshed API changes there
2014-01-08 10:58:20 jesusabdullah Okay, report back with your findings. GO!
2014-01-08 10:58:25 --> freeall (~freeall@217.116.211.114) has joined #stackvm
2014-01-08 10:58:32 Raynos phated: agreed, I'm tired
2014-01-08 10:58:34 Raynos substack: https://gist.github.com/Raynos/8314369
2014-01-08 10:59:09 mmalecki timoxley: https://github.com/mmalecki/hock/blob/master/lib/hock.js#L181 :(
2014-01-08 10:59:21 mmalecki cc kenperkins
2014-01-08 10:59:49 mmalecki timoxley: I'll discuss that with kenperkins, maybe make it not remove it/add an option
2014-01-08 10:59:54 Raynos contrahax: It is hard. And you made good progress
2014-01-08 11:00:00 timoxley mmalecki: would be good
2014-01-08 11:00:10 timoxley mmalecki: thanks!
2014-01-08 11:00:32 mmalecki timoxley: yeah, np! ideally hock wouldn't have test-related stuff at all
2014-01-08 11:00:33 jesusabdullah okay closing the laptop even though I'm still freaking out a little, maybe I'll fall asleep
2014-01-08 11:00:37 jesusabdullah gnight friends
2014-01-08 11:00:40 mmalecki but yeah
2014-01-08 11:00:52 mmalecki jesusabdullah: good night!
2014-01-08 11:01:21 mmalecki hey, what'd you all recommend for a self-bootstrapping service discovery?
2014-01-08 11:01:42 contrahax Raynos thats basically the whole codebase of gulp minus orchestrator
2014-01-08 11:02:16 mmalecki I have bender, but services still need to know bender's IP, I want to make the whole thing zero-conf
2014-01-08 11:02:55 Raynos contrahax: agreed. gulp just feels SO much heavier then that example
2014-01-08 11:03:02 mmalecki I was thinking DHT but it's only 20 bytes of information I can store
2014-01-08 11:03:15 mmalecki and UDP multicast feels hacky and it wouldn't cross DC borders
2014-01-08 11:03:46 mmalecki I guess I actually have to start with UDP multicast and then handle multi-dc registrations
2014-01-08 11:04:05 Raynos contrahax: using glob-stream directly, inlining a naive implementation of gulp.dest, gulp.src & vinyl makes it so much more transparent and lighter
2014-01-08 11:04:24 Raynos it reduces so much magic
2014-01-08 11:05:08 timoxley mmalecki: https://github.com/mmalecki/hock/issues/5
2014-01-08 11:05:18 contrahax Raynos its not magic its almost exactly the code you just pasted
2014-01-08 11:05:31 mmalecki timoxley: thanks!
2014-01-08 11:05:43 contrahax if you feel better about yourself because you can rewrite gulp at the top of every build file you make then you arent our target audience
2014-01-08 11:06:14 contrahax most people dont have time to reinvent the wheel every time they want to start a new project
2014-01-08 11:06:17 Raynos contrahax: I understand what your saying, I don't think it's just that though.
2014-01-08 11:06:22 funkytek why do you want to re-invent the wheel of what gulp does and rewrite every plugin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment