00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:10  * ircretaryjoined
00:02:08  <Raynos>I dont know
00:02:13  <Raynos>I dont operate on buffers
00:02:29  <Raynos>I tend to deal with _write(jsonObject, null, cb)
00:08:32  <isaacs>wel, that's what you'll get :)
00:08:34  <isaacs>good news!
00:16:21  * alunnyjoined
00:19:07  * saijanai_joined
00:35:12  * mirkokquit (Quit: mirkok)
00:50:19  * shuaibjoined
00:54:06  * mikolalysenkoquit (Ping timeout: 264 seconds)
00:54:25  * mikolalysenkojoined
00:56:37  * dominictarrquit (Quit: dominictarr)
01:03:52  * mikolalysenkoquit (Ping timeout: 256 seconds)
01:04:45  * mikolalysenkojoined
01:24:51  <ralphtheninja>would anyone in the SF/Oakland area be up to lending me their couch a few days around NodeConf?
01:27:58  <substack>ralphtheninja: I've got a cot
01:28:16  <substack>if jjjjohnnny is down for more visiting hackerfolk
01:28:20  <Raynos>ralphtheninja: arent you going to sleep there at nodeconf?
01:28:36  <Raynos>Oh wait you mean before / after ?
01:28:49  <Raynos>I have a spare mattress in SF
01:31:26  * dominictarrjoined
01:34:07  * mikealquit (Quit: Leaving.)
01:37:55  <ralphtheninja>yeah I meant before and after, might as well stay a few days more if possible :)
01:38:56  <ralphtheninja>haven't decided on exact dates yet, nice to know there is some backup to be found, thanks!
01:39:09  * mikealjoined
01:40:45  * intabulasquit (Read error: Connection reset by peer)
01:41:11  * intabulasjoined
01:56:19  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
01:57:34  <dominictarr>so Raynos I'm thinking how to explain the need for lock in level-update
01:58:55  <dominictarr>basically - for level-update to work, it needs to guarantee that the key in question does not change in between the GET and PUT that the conditional update uses.
01:59:59  <dominictarr>it's necessary to use locks to make the operations atomic
02:00:24  <dominictarr>like in a single threaded event loop, it's basically a global lock on memory
02:00:39  <dominictarr>that releases when the sync code has finished.
02:01:21  <dominictarr>that means you can do atomic operations on any in memory datastructure
02:03:22  * saijanai_quit (Quit: saijanai_)
02:15:15  <dominictarr>if you are gonna expose keys to async events, like over http, then you need to use locks (or something) to make sure the updates where deterministic.
02:15:35  <dominictarr>although, another option would be to use an append-only model
02:15:50  <ralphtheninja>append only ftw! :)
02:15:57  <dominictarr>but that would mean every put is saved as put(key+timestamp)
02:16:04  <ralphtheninja>hehe i know Raynos wants that too :)
02:16:28  <dominictarr>the problem with this is that you couldn't use get(key)
02:16:34  <ralphtheninja>trade offs, they become so apparent when it comes to databases
02:16:41  <ralphtheninja>nodnod
02:16:54  <dominictarr>because the key it's saved in isn't gonna be known
02:17:09  <dominictarr>you'd need to always do a range query instead
02:17:21  <dominictarr>more like getLast(key)
02:17:36  <dominictarr>and it would search backwards from get(key+'~')
02:17:57  <dominictarr>it all depends on your use-case
02:18:00  <dominictarr>...
02:18:02  <ralphtheninja>but if you call with put(key) and the db does _put(key+timestamp) internally and returns key+timestamp to you
02:18:30  <ralphtheninja>like in couchdb where you get the _rev id (or whatever it's called)
02:18:54  <dominictarr>in couchdb you don't need the _rev to request the document,
02:19:00  <dominictarr>so it's not really the same
02:19:30  <dominictarr>what couchdb has is more like level-update, with locks, and it reads the current value first
02:19:37  <ralphtheninja>true, I was thinking of getting some kind of token back
02:20:37  <dominictarr>ralphtheninja: I implemented a thing like that https://github.com/dominictarr/level-update/blob/master/hash-version.js
02:20:42  <Raynos>I WANT ALL THE TINGS
02:20:42  <LOUDBOT>SHAMWOW ABSORBS TEN TIMES ITS WEIGHT IN OLYMPIC DIVERS
02:21:20  <dominictarr>wanting all the things is much more reasonable than wanting a thing that does everything.
02:21:26  <Raynos>dominictarr: you never call getLast
02:21:38  <dominictarr>?
02:21:50  <Raynos>your map-reduce-a-gic always creates and caches a computed view in leveldb under a known key
02:22:12  <dominictarr>oh yeah, that works too
02:22:50  <dominictarr>actually, that is the right way to do it
02:23:27  <dominictarr>you should implement that, Raynos
02:23:40  <ralphtheninja>I want to know more about that, how does it work?
02:24:19  <ralphtheninja>level-view
02:27:11  <dominictarr>it just uses level-live-stream, but reads ranges in the way the level-map-reduce sets them up
02:27:28  <dominictarr>that is described in the plugin patterns page in the wiki
02:28:51  <ralphtheninja>ok
02:30:20  <dominictarr>Raynos: either of these methods would enable replication
02:40:47  * thatguydanjoined
02:44:54  * mikolalysenkoquit (Remote host closed the connection)
02:45:30  * ins0mniaquit (Ping timeout: 276 seconds)
03:11:22  <Raynos>I think its the correct way to do things
03:11:39  <Raynos>you partition the db into two sections
03:11:49  <Raynos>write only / append only section of the database with raw data
03:11:57  <Raynos>which gets replicated / sharded
03:12:16  <Raynos>and the mutative view section. i.e. map-reduce RAW data into nice keys with efficient reads
03:19:25  <dominictarr>yeah, and you just cleanup the old appends that have been bundled
03:19:26  <ralphtheninja>aah so you use a part of the db for the db :)
03:19:47  <dominictarr>this will basically be like github.com/dominictarr/repred
03:21:20  <dominictarr>another thing that would be really good about that model is that you can read the current state really fast
03:21:28  <dominictarr>since it's a single key
03:21:48  <dominictarr>and you can still read them within a range too
03:23:26  <ralphtheninja>dominictarr: what do you mean with bundled appends?
03:23:42  <ralphtheninja>like in merged updates?
03:24:43  <dominictarr>bundle = reduce(updates, reduceFunction)
03:25:38  <dominictarr>if reduceFunction is of type X = reduce(Xs, reducer)
03:25:38  <ralphtheninja>ok
03:26:03  <dominictarr>then you can just remove the old updates and replace it with the new one.
03:26:15  <dominictarr>so, future reduces will be faster
03:26:30  <ralphtheninja>gotcha
03:26:31  * mikolalysenkojoined
03:27:55  <dominictarr>in this case, the types of updates will be dependent on the put… maybe it's better to access it via an abstraction like scuttlebutt
03:28:08  <dominictarr>but maybe it's simple enough that you can just write custom ones
03:28:57  <dominictarr>but probably… there are a few simple things that work well… so you can just reuse them, or a simple basis that you can expand on - like through for transform streams
03:36:33  <ralphtheninja>seems level-update is growing
03:37:25  * mikolalysenkoquit (Ping timeout: 256 seconds)
03:37:30  <ralphtheninja>need to feed it and nurture it properly :)
03:39:33  * mikolalysenkojoined
03:41:32  <ralphtheninja>I want to fork bitcoin-server.js and make it talk to the namecoin network, that way we could get access to distributed dns directly in node
03:42:03  <ralphtheninja>or you could just install namecoind and speak json-rpc with it, but it would be cool to have it completely in js
03:43:04  <ralphtheninja>well, just an idea
03:43:48  * mikolalysenkoquit (Ping timeout: 248 seconds)
03:56:35  * ralphtheninjaquit (Ping timeout: 255 seconds)
04:08:52  * alunnyquit (Ping timeout: 248 seconds)
04:20:33  <Raynos>dominictarr: never cleanup old appends !
04:20:37  <Raynos>That's destroying history
04:23:57  <dominictarr>it's mixed into a new value
04:24:20  <dominictarr>growing the history won't scale for things that are constantly updated
04:24:44  <dominictarr>if the number of updates tend to a small number, it would be okay to keep them
04:25:17  <dominictarr>but if you needed to represent, say, the players position, then you have to delete.
04:25:30  <dominictarr>not to save space, but to save time when reading.
04:33:16  * AvianFluquit (Remote host closed the connection)
04:38:48  * mikolalysenkojoined
04:46:07  <Raynos>dominictarr: you store the history on disk on the server
04:46:21  <Raynos>Well yes sure you dont re-read the history
04:46:32  <Raynos>but it has to be stored
04:46:53  <dominictarr>okay, then… copy it to another db for archiving
04:47:02  <dominictarr>but don't use it for the realtime stuff
04:47:41  <dominictarr>the reason you use append-only & reduce is because it's friendly to concurrent updates
04:48:09  <dominictarr>that is the most important thing, if you are interested in making a system that behaves predictably
04:48:43  <dominictarr>and there are plenty of cases when you don't care about the history
04:48:45  <dominictarr>potentially
04:50:36  <dominictarr>anyway, the reduced value holds all the information you need to create the current state...
04:52:22  <Raynos>agreed
04:52:36  <Raynos>but real time and raw data is seperate
04:52:43  <Raynos>they go into two different databases
04:58:58  <dominictarr>yes, totally different usecases
04:59:30  <dominictarr>once we get the clean separation thing happening, setting up stuff like this will be easy.
05:40:42  * mikealquit (Quit: Leaving.)
05:43:35  * mikealjoined
05:54:57  <substack>http://www.reddit.com/r/node/comments/17tjta/fsextra_drop_in_replacement_for_fs_adds_a_few/
05:55:04  <substack>Raynos jesusabdullah ^
05:55:42  <Raynos>lol
05:56:17  * mikolalysenkoquit (Ping timeout: 255 seconds)
05:56:37  <mbalho>f sextra
05:56:48  <substack>fSEXtra
06:17:37  <dominictarr>substack: I'm getting tape exiting with 1 but reporting a passing test
06:18:23  <Raynos>dominictarr: most likely not calling .end() on one of your tests
06:18:38  <dominictarr>it reports that
06:18:40  <Raynos>check to see whether there's an empty "# test name" at the bottom
06:19:14  <dominictarr># disconnect
06:19:14  <dominictarr>error
06:19:15  <dominictarr>ok 39 should throw
06:19:17  <dominictarr>1..39
06:19:18  <dominictarr># tests 39
06:19:19  <dominictarr># pass 39
06:19:20  <dominictarr># ok
06:19:39  <dominictarr>"error" is just logging
06:19:59  <substack>odd
06:20:05  <substack>the latest version?
06:22:25  <dominictarr>0.2.2
06:22:38  <dominictarr>oh, looks like raynos is right
06:22:47  <Raynos>:3
06:22:51  <dominictarr>but it's not reporting the unfinished test
06:23:04  <Raynos>it never reports unfinished tests for me
06:23:17  <Raynos>probably because there are two code paths that exit 1 and only one reports
06:29:59  <dominictarr>it exists 0 though
06:30:05  <dominictarr>non zero, i mean
06:35:18  <dominictarr>okay! got it working…
06:35:27  <dominictarr>and mux-demux tests are now ported to tape
06:35:28  <dominictarr>!
06:35:49  <dominictarr>is there a tool to ci.testlingify a module?
06:36:33  <Raynos>nope
06:39:10  <substack>you can just browserify tests and see what the console.log() output is in the browser console
06:41:05  <dominictarr>substack: I mean, to add all the package stuff
06:43:13  <substack>package stuff?
06:45:07  * mikealquit (Quit: Leaving.)
06:46:48  <dominictarr>the stuff you have to put in the package.json
06:47:06  <dominictarr>hmm, okay I'm getting some weirdness again
06:47:11  <dominictarr>http://ci.testling.com/dominictarr/mux-demux
06:49:39  <substack>ah
06:50:28  <substack>do the tests require() the module like usual?
06:51:51  * mikealjoined
06:53:00  <dominictarr>yes
06:53:03  <dominictarr>of course
06:53:19  <dominictarr>ah, one thing is that require('..') doesn't work with browserify
06:53:26  <dominictarr>you have to use require('../')
06:53:45  <dominictarr>but it doesn't error early
06:54:01  <dominictarr>it just returns undefined
06:55:03  <substack>oh pesky
06:55:22  <substack>require('..') didn't used to work
06:55:24  <substack>is probably why
06:56:21  <substack>oh the require() in the browser code probably messes it up
06:56:28  <substack>but it works in the server-side bundling
07:03:56  <dominictarr>yes
07:04:00  <dominictarr>that makes sense
07:06:05  <dominictarr>substack: if I just leave the browser tab open will it update with fresh results?
07:07:20  <dominictarr>substack: pkrumins seems to only be running ie8 sometimes http://ci.testling.com/dominictarr/mux-demux
07:10:14  <substack>it might be running tests
07:20:52  * slaskisjoined
07:21:25  <substack>yep check it now
07:21:33  <substack>logging in to see if the launcher crashed
07:24:48  * CryptoQuickjoined
08:01:44  <substack>the launcher was having some issues it seems
08:04:57  * alunnyjoined
08:09:11  * alunnyquit (Ping timeout: 245 seconds)
08:12:34  * dominictarrquit (Quit: dominictarr)
08:28:38  * CryptoQuickquit (Quit: CryptoQuick)
08:34:07  * thatguydanquit (Ping timeout: 246 seconds)
08:47:41  * mirkokjoined
09:22:34  * mirkokquit (Quit: mirkok)
09:40:35  * thatguydanjoined
09:45:21  * thatguydanquit (Ping timeout: 256 seconds)
10:19:05  * nk109quit (Read error: Connection reset by peer)
10:33:46  * mirkokjoined
10:39:48  * slaskisquit (Remote host closed the connection)
10:41:41  * mirkokquit (Read error: No route to host)
10:42:04  * mirkokjoined
10:42:10  * mirkokquit (Client Quit)
10:53:57  * dominictarrjoined
10:59:58  * on9joined
11:06:36  * slaskisjoined
11:13:44  * ralphtheninjajoined
11:20:35  <dominictarr>substack: now I'm not getting any logging output at all for mux-demux… it just says that the test has failed
11:27:02  * dominictarrquit (Quit: dominictarr)
12:18:07  * on9quit (Ping timeout: 246 seconds)
12:26:01  * fotoverite_joined
12:26:22  * Altreusquit (Read error: Operation timed out)
12:27:50  * fotoveritequit (Read error: Connection reset by peer)
12:27:50  * pikpikquit (Ping timeout: 252 seconds)
12:27:50  * fotoverite_changed nick to fotoverite
12:28:57  * Altreusjoined
12:30:53  * on9joined
12:41:41  * ins0mniajoined
12:49:06  * yorickjoined
12:49:06  * yorickquit (Changing host)
12:49:06  * yorickjoined
13:41:23  * on9quit (Ping timeout: 248 seconds)
13:52:27  * pikpikjoined
13:54:52  * on9joined
13:55:39  <ins0mnia>substack: Why not allow seaport.register() to return meta instead of meta.port? this was the service can know its own id as registered in seaport..
13:55:55  <ins0mnia>substack: was=way
14:00:13  <ins0mnia>substack: or even just the id, other information can easily be looked based on that
14:37:07  * saijanai_joined
15:06:06  * intabulasquit (Remote host closed the connection)
15:23:58  * CryptoQuickjoined
15:43:39  * AvianFlujoined
15:48:13  * mikolalysenkojoined
16:13:08  * intabulasjoined
16:15:10  * defunctzombie_zzchanged nick to defunctzombie
16:29:00  * shuaibjoined
16:31:42  * dguttmanjoined
16:34:20  <defunctzombie>isaacs: thoughts on making it impossible to push to npm unless you have a LICENSE file or a license field in package.json?
16:34:35  <defunctzombie>otherwise it is quite dangerous to use npm modules from a legal standpoint
16:35:13  * marcello3djoined
16:35:25  <marcello3d>allo
16:36:58  <defunctzombie>\o/
16:48:42  * mikolalysenkoquit (Ping timeout: 252 seconds)
16:55:55  * LOUDBOTquit (Remote host closed the connection)
16:56:03  * LOUDBOTjoined
16:56:52  * LOUDBOTquit (Remote host closed the connection)
16:57:00  * LOUDBOTjoined
16:57:15  * LOUDBOTquit (Remote host closed the connection)
16:57:22  * LOUDBOTjoined
16:57:50  <isaacs>defunctzombie: it's not that dangerous.
16:57:56  <isaacs>defunctzombie: and no, we're not going to start requiring licenses.
16:58:31  <defunctzombie>how is it not an issue?
16:59:45  <marcello3d>express.js is technically copyright/closed source due to dependencies :(
16:59:57  <defunctzombie>isaacs: if there is no license, then anyone using the code in a closed project is taking a risk that they are violating something
17:00:08  <marcello3d>and request.js
17:00:31  <marcello3d>defunctzombie: even open source, no?
17:00:37  <isaacs>defunctzombie: yeah. if you're doing proprietary dev, be careful.
17:00:43  <isaacs>defunctzombie: caveat emptor
17:00:56  <defunctzombie>isaacs: that is a weak argument imho
17:01:08  <defunctzombie>isaacs: why run a registry meant for open source code
17:01:27  <defunctzombie>isaacs: if you don't want to ensure that people actually understand the licenses under which they publish?
17:04:00  <isaacs>defunctzombie: we should just say that if you don't provide a license, it's new-BSD
17:04:13  <defunctzombie>marcello3d: ^
17:04:21  <isaacs>defunctzombie: maybe make people accept an End User License Agreement popup before they start using npm
17:04:21  <defunctzombie>isaacs: why is that better than require license?
17:04:30  <defunctzombie>you should not silently re-license my code
17:04:43  <isaacs>defunctzombie: because requiring a license is ceremony.
17:05:01  <defunctzombie>ceremony in what sense?
17:05:13  <defunctzombie>it requires you to specify the licensing for your code when others re-use it
17:05:16  <isaacs>defunctzombie: an extra step between "write some code" and "use some code"
17:05:20  <defunctzombie>what if I want to publish a GPL module
17:05:21  <isaacs>defunctzombie: a smart default is better.
17:05:41  <defunctzombie>isaacs: you can't just write some code and use some code in our system
17:05:42  <isaacs>defunctzombie: if you want to publish a GPL module, you're already an insane license-fetishist, and you've put a 50-page license on your code.
17:05:47  <defunctzombie>isaacs: you need to live in the reality
17:05:57  <defunctzombie>and that reality is that licensing does matter for companies
17:06:10  <defunctzombie>isaacs: you are making assumptions
17:06:11  <isaacs>node users who don't specify a license want their stuff to be used under a liberal non-copyleft oss license.
17:06:17  <isaacs>defunctzombie: find me a counter-example.
17:06:27  <isaacs>defunctzombie: someone who *didn't* put a license in their code, and *didn't* want bsd/mit
17:06:28  <defunctzombie>counter example of what?
17:06:57  <defunctzombie>I just don't see why you want to auto default people to a license versus just asking them to specify one?
17:07:11  <defunctzombie>why not default to MIT?
17:07:14  <defunctzombie>why BSD?
17:07:25  <isaacs>defunctzombie: because the weather is nicer.
17:07:41  <defunctzombie>you are just forcing what you think is the way on people, versus just making a requirement to have a license and suggesting one
17:07:58  <Raynos>isaacs: no licence means this is mine and I give you zero rights to use it
17:08:15  <isaacs>Raynos: no license means nothing, actually.
17:08:18  <isaacs>Raynos: it MIGHT mean that.
17:08:18  <defunctzombie>I think that is not so nice personally when having an open community
17:08:31  <guybrush>no license means what Raynos said
17:08:38  <defunctzombie>isaacs: no license is technically VERY unsafe to use
17:08:58  <defunctzombie>if you don't realize this then it may be important to review your licenses :D
17:09:00  <fotoverite>isaacs: I agree with not making in mandatory
17:09:18  <guybrush>but it depends on the country or something, didnt investigate further after finishing the class haha
17:09:19  <fotoverite>defunctzombie: We should make license especially MIT or BSD standard and best practice
17:09:47  <defunctzombie>fotoverite: what you are saying is not related to requiring a license
17:10:10  <fotoverite>defunctzombie: You can't dictate how people in the open operate.
17:10:10  <guybrush>defunctzombie: why do you want to force people to add a license?
17:10:11  <Raynos>isaacs: what about defaulting the licence field to BSD/MIT in package.json if author doesn't set one
17:10:13  <defunctzombie>fotoverite: you cannot just relicense my code (certainly without asking)
17:10:26  <guybrush>just let em decide what they want to do, ie how it currently is
17:10:40  <fotoverite>that's because of copyright defunctzombie
17:10:53  <defunctzombie>fotoverite: I live in reality
17:10:58  <defunctzombie>not some made up fairy tale
17:10:58  <fotoverite>Copyright exists without a license
17:11:06  <defunctzombie>and reality dictates certain things for companies
17:11:17  <fotoverite>Yes but open source is not about companies
17:11:18  <defunctzombie>guybrush: that is unsafe
17:11:25  <guybrush>why?
17:11:33  <defunctzombie>guybrush: without a license I cannot safely use the code
17:11:41  <guybrush>if i dont want to put a license into my code i just wont do it anyway
17:11:41  <defunctzombie>licenses are very different in permissibility
17:11:45  <fotoverite>defunctzombie: this is why you get people to understand that and do so because of social rewards not because NPM requires it.
17:11:51  <defunctzombie>guybrush: then you can't publish
17:11:58  <guybrush>oh i can :9
17:11:59  <defunctzombie>fotoverite: that is bullshit
17:12:10  <defunctzombie>social rewards my ass
17:12:15  <fotoverite>how so that' s how the world worked for a very long time.
17:12:17  <defunctzombie>if it isn't required, people won't do it
17:12:29  <fotoverite>Is that why the substack method has taken off?
17:12:33  <defunctzombie>why run an unsafe registry?
17:12:35  <fotoverite>because it's required?
17:12:45  <fotoverite>Same reason github doesn't require licenseing
17:13:00  <defunctzombie>github is not a registry
17:13:15  <defunctzombie>I am not saying there is some law requiring people have licenses
17:13:16  <Raynos>github is different
17:13:27  <guybrush>npm is also different :D
17:13:29  <Raynos>Actually it isnt but its weird
17:13:53  <Raynos>defunctzombie: why do you care
17:14:04  <Raynos>your not some corporate cubicle boy
17:14:19  <guybrush>basically (thats just my opinion) when you put something into the open internet, you want others to use it
17:14:24  <guybrush>licenses are stupid
17:14:25  <fotoverite>We all should care but making NPM police is not the solution
17:14:34  <fotoverite>Besides then you get things like the WTF license
17:14:41  <fotoverite>which is worse then no license in most ways
17:14:42  <guybrush>if you dont want to share something just dont put it in public internet haha
17:15:19  <guybrush>there should be a law
17:15:24  <guybrush>everything you find is yours
17:15:45  <guybrush>for internet ofc
17:15:58  <guybrush>for information in general
17:17:10  <marcello3d>requiring a license on npm publish is the same as what you're saying, guybrush
17:17:13  <guybrush>most people treat information like that anyway
17:17:20  <marcello3d>it's just making it legally clear
17:17:51  * on9quit (Ping timeout: 260 seconds)
17:18:21  <isaacs>Raynos: well, we already set the license field to BSD in npm init by default
17:18:49  <fotoverite>isaacs: Why bsd instead of MIT?
17:19:14  <isaacs>fotoverite: the weather is nicer.
17:19:25  <fotoverite>Point taken
17:19:50  <isaacs>srsly, have you ever BEEN to berkeley? it's gorgeous. Cambridge has like 3 nice months a year. 2 in the spring and one in the fall.
17:19:54  <guybrush>i like the spelling of MIT more than BSD :D
17:20:11  <marcello3d>you guys are all wrong, clearly. I use zlib
17:20:20  <isaacs>the zlib lic is pretty nice, too
17:20:24  <marcello3d>(but if there were a commonly used stanford license, I'd use that)
17:20:47  <marcello3d>zlib doesn't have all that scary uppercase
17:20:50  <marcello3d>and bsd has too many versions
17:21:53  <isaacs>marcello3d: i sort of see bsd's many versions as a feature.
17:22:25  <isaacs>marcello3d: i like occasionally just putting "license":"BSD" in package.json, without a LICENSE file, to make IP wanks' heads exploe.
17:22:38  <defunctzombie>Raynos: I care because even for my closed source stuff it is unsafe
17:22:48  <marcello3d>"license":"bsd" is good enough for me
17:22:54  <marcello3d>it's a clear state of intent
17:23:01  <defunctzombie>guybrush: your opinion is not legal stature tho
17:23:11  <marcello3d>but nothing in package.json, no license file, nothing in readme—I can't even guess
17:23:12  <defunctzombie>so unfortunately it doesn't meant anything when I get sued :)
17:23:38  <defunctzombie>fotoverite: at least then you know what the license is and can avoid it
17:23:43  <guybrush>defunctzombie: yes i agree, i should put an oss license into my code - but most of the time i just dont do it because my code sucks anyway
17:23:46  <defunctzombie>fotoverite: code without a license is unknown
17:24:48  <defunctzombie>the point is that unlicensed code has no permissions technically
17:24:55  <defunctzombie>no matter what you may "think" about it
17:24:57  <guybrush>but npm init actually makes me do it :)
17:25:11  <defunctzombie>your thoughts don't matter to the legal system
17:25:55  <isaacs>you guys are so CUTE.
17:26:03  <isaacs>playing lawyer.
17:26:08  <isaacs>;P
17:26:11  <fotoverite>:P
17:26:21  * shamajoined
17:26:35  <isaacs>code without a license IS unknown. it could be anything from "you're not allowed to even be reading this" to "you can claim that you wrote it"
17:26:55  <isaacs>corporations are rightly very timid about using code with an unspecified license, because they have more to lose.
17:27:11  <isaacs>for me personally? i know that fotoverite or Raynos or substack or mbalho are not going to sue me for using some code that they wrote.
17:27:28  <marcello3d>but someone might buy them out and sue you :)
17:27:29  <fotoverite>of course we all will also add a license. :D
17:27:34  <guybrush>seriously, putting stuff on github with a license that says "you are not allowed to use this" is just trolling
17:27:40  <fotoverite>I'm unbuyable
17:27:44  <marcello3d>no one would use node.js if it didn't have a license
17:27:52  <marcello3d>what if joyent started suing everyone
17:27:56  <marcello3d>who didn't run on their cloud
17:28:04  <isaacs>if someone from facebook or yahoo or microsoft wants to use some code of mine, and they post an issue that it lacks a license, it's a 15-second fix
17:28:08  <isaacs>this is a non-issue.
17:28:14  <marcello3d>anyways
17:28:14  <isaacs>let those who care about it care about it.
17:28:16  <marcello3d>I wrote this module
17:28:17  <marcello3d>https://github.com/marcello3d/node-licensecheck
17:28:34  <marcello3d>that's how I figured out that express.js and request depend on things that have no license
17:28:40  <Raynos>isaacs: and thats how I make money :D
17:28:49  <Raynos>naive people assume I dont fuck them over
17:28:50  <fotoverite>So go and ask them to add a license
17:28:59  <guybrush>rofl Raynos
17:30:12  * on9joined
17:38:58  * mikealquit (Quit: Leaving.)
17:46:16  * shamaquit (Quit: shama)
17:46:36  * shamajoined
17:57:22  * mikolalysenkojoined
18:02:57  * defunctzombiechanged nick to defunctzombie_zz
18:04:27  * alunnyjoined
18:06:54  * dguttmanquit (Quit: dguttman)
18:09:52  * mikealjoined
18:18:21  * mikealquit (Ping timeout: 245 seconds)
18:38:00  * dguttmanjoined
18:45:30  * mikealjoined
18:47:56  * on9quit (Ping timeout: 245 seconds)
18:58:03  * defunctzombie_zzchanged nick to defunctzombie
19:01:21  * on9joined
19:21:55  * st_lukejoined
19:35:10  * thatguydanjoined
19:39:01  * mikealquit (Quit: Leaving.)
19:43:16  * AvianFluquit (Remote host closed the connection)
19:46:07  * marcello3dquit (Remote host closed the connection)
19:46:49  * wiwilliajoined
19:48:16  <defunctzombie>hij1nx: https://github.com/shtylman/chrome-socket
19:48:19  <defunctzombie>you might be interested in that
19:48:31  <defunctzombie>and https://github.com/shtylman/node-abe that
19:48:40  <defunctzombie>given your node-chrome repo :)
19:49:15  <defunctzombie>I played around with making desktop apps with chrome and node style apis/js bundles a while back.. it is awesome!
20:01:44  * alunnyquit (Ping timeout: 255 seconds)
20:09:14  * mikealjoined
20:14:50  * dominictarrjoined
20:15:54  * mikeal1joined
20:16:16  * mikealquit (Read error: Connection reset by peer)
20:16:39  * alunnyjoined
20:18:30  * on9quit (Ping timeout: 256 seconds)
20:24:16  * dominictarr_joined
20:26:01  * dominictarrquit (Ping timeout: 240 seconds)
20:26:02  * dominictarr_changed nick to dominictarr
20:33:53  * mikeal1quit (Quit: Leaving.)
20:34:43  * on9joined
20:35:01  * mikealjoined
20:42:40  * defunctzombiechanged nick to defunctzombie_zz
20:53:52  * mikolalysenkoquit (Ping timeout: 256 seconds)
20:57:22  * thatguydanquit (Quit: thatguydan)
20:59:07  * AvianFlujoined
20:59:31  * on9quit (Ping timeout: 260 seconds)
21:00:51  * calvinfoquit (Ping timeout: 245 seconds)
21:02:39  * calvinfojoined
21:12:23  * on9joined
21:15:35  * simcop2387quit (Excess Flood)
21:16:17  * slaskisquit (Remote host closed the connection)
21:17:37  * simcop2387joined
21:18:13  * defunctzombie_zzchanged nick to defunctzombie
21:19:29  * mikolalysenkojoined
21:22:57  * st_lukequit (Remote host closed the connection)
21:27:24  * mikolalysenkoquit (Ping timeout: 276 seconds)
21:29:03  * thatguydanjoined
21:31:32  * niixjoined
21:38:05  * mikolalysenkojoined
21:56:23  * thatguydan_joined
21:57:29  * thatguydanquit (Ping timeout: 255 seconds)
21:57:30  * thatguydan_changed nick to thatguydan
21:58:25  * dominictarrquit (Ping timeout: 246 seconds)
21:59:06  * dominictarrjoined
22:02:10  * CryptoQuickquit (Ping timeout: 244 seconds)
22:05:40  * CryptoQuickjoined
22:27:15  * CryptoQuick_joined
22:29:55  * CryptoQuickquit (Ping timeout: 248 seconds)
22:29:56  * CryptoQuick_changed nick to CryptoQuick
22:32:52  * defunctzombiechanged nick to defunctzombie_zz
22:35:24  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
22:52:23  * defunctzombie_zzchanged nick to defunctzombie
22:57:27  * st_lukejoined
23:09:43  * on9quit (Ping timeout: 260 seconds)
23:46:00  <hij1nx>defunctzombie: its great, but generally not practical. i dont want to get deeply invested in anyone's api when it comes to building a desktop app with JS. I want it to just be plain JS/HTML/CSS, etc. so that's why i made node-chrome -- because it should be simple, no cef or any complicated binding.
23:46:27  <defunctzombie>hij1nx: that was the point of those libs
23:46:38  <defunctzombie>to not use the chrome apis and expose something else
23:46:49  <hij1nx>defunctzombie: im referring more to other more complex libraries
23:46:56  <defunctzombie>gotcha
23:47:17  <Raynos>mbalho: `document.write` ftw
23:47:30  * AvianFluquit (Remote host closed the connection)
23:47:46  <hij1nx>defunctzombie: also, both of the libs you pointed me at are for stream interfacing, correct?
23:48:15  <hij1nx>defunctzombie: ah yes. slight problem i had with crx files
23:48:19  <defunctzombie>hij1nx: yea
23:48:26  <hij1nx>defunctzombie: have you looked at crx-less?
23:48:31  <defunctzombie>nope
23:48:54  <hij1nx>defunctzombie: i'd love to be able to specify a crx-less extension and leverage built-in tcp server
23:49:13  <hij1nx>defunctzombie: but its odd, and unstable.
23:49:20  <hij1nx>(according to chrome hackers)
23:49:33  <defunctzombie>huh
23:49:47  <hij1nx>defunctzombie: https://developers.google.com/chrome/apps/docs/no_crx#installcall
23:50:17  <hij1nx>defunctzombie: this simply does not work (as far as i cant tell, looking at trunk it seems unfinished)
23:50:22  <defunctzombie>yea just been reading that
23:50:35  <defunctzombie>hij1nx: seems very new
23:50:42  <defunctzombie>when I explored chrome apps I hadn't seen this yet
23:51:14  <hij1nx>defunctzombie: yes, but i've been talking with some people who are working on it, i may be able to support it soon
23:51:45  <hij1nx>this would add some level of complexity though. i love how dead simple node-chrome is. its almost simple enough ;)
23:51:52  <defunctzombie>I don't quite see how it is different than putting the app in the app store
23:52:41  <defunctzombie>hij1nx: the thing with node chrome is it requires node
23:52:50  <defunctzombie>for what tho?
23:52:59  <hij1nx>distrobution, silent-forced-installs, etc.
23:53:12  <hij1nx>defunctzombie: lol
23:53:25  <hij1nx>defunctzombie: it also requires chrome ;)
23:53:33  <defunctzombie>I guess when I was playing around with the chrome apps I just used js to write the app but was on top of chrome socket apis
23:53:38  <defunctzombie>so node was not needed
23:53:57  <defunctzombie>I saw chrome as filling the functionality that node does on the server
23:54:10  <defunctzombie>hij1nx: https://github.com/shtylman/eyersee
23:54:14  <defunctzombie>that was my toy project
23:54:27  <defunctzombie>I used node only to build the bundled js
23:54:56  <hij1nx>defunctzombie: i mean, node and chrome should really have feature parity, imo. the only difference is that one has no human interface.
23:55:11  <defunctzombie>hij1nx: kinda.. I don't buy into node's networking api
23:55:16  <defunctzombie>but yes
23:55:17  <defunctzombie>I agree
23:55:30  <defunctzombie>(more or less) :D
23:55:44  <hij1nx>defunctzombie: node is the answer to your unwanted house guests, weight problem, hair loss and nail biting problem.
23:55:53  <hij1nx>hehe ;)
23:55:56  <defunctzombie>o.o
23:56:37  <hij1nx></sarcasm>
23:57:00  <guybrush>why not just start a local node-server and browse it with chrome?
23:57:11  <hij1nx>guybrush: sure, why not not
23:57:32  <hij1nx>why have desktop apps at all
23:57:42  <defunctzombie>guybrush: the argument is you don't need to have the node server to have an app
23:57:50  <defunctzombie>at least that is one possibility
23:57:56  <hij1nx>different UX.
23:58:07  <defunctzombie>guybrush: chrome has socket apis, that is all you are using node for
23:58:15  * intabulasquit (Ping timeout: 252 seconds)
23:58:40  <guybrush>i use node because of its module-system :)
23:59:04  <guybrush>i kind of get the UX-thing, but really dont see it as a big thing
23:59:12  <hij1nx>for some products, a browser is not the right user experience.
23:59:15  <defunctzombie>guybrush: right, but the module system is not node
23:59:18  <guybrush>just make a bookmark and its pretty good UX
23:59:31  <defunctzombie>guybrush: the module system is independent of node ;)
23:59:45  <guybrush>in windows you can make it all into a .bat and it works preeeetty nice
23:59:47  <hij1nx>guybrush: just have them use vim, vim and sublimetext are basically the same right?