00:13:02  * un-jonquit (Ping timeout: 245 seconds)
00:16:29  * jwulfjoined
01:55:08  * hipertrackerquit (Quit: hipertracker)
02:32:49  * bnoordhuisquit (Ping timeout: 260 seconds)
03:54:21  * jwulfquit (Ping timeout: 248 seconds)
06:06:55  * hipertrackerjoined
06:43:23  * jzjoined
06:43:47  * jzchanged nick to Guest34463
06:45:15  * hipertrackerquit (Ping timeout: 265 seconds)
06:47:38  * Guest34463quit (Client Quit)
08:06:39  * hipertrackerjoined
08:38:20  * flyingmanajoined
08:41:28  * dannygjoined
09:53:34  * mikedeboerjoined
10:43:38  * un-jonjoined
10:50:30  * jwulfjoined
11:06:34  * un-jonquit (Quit: Page closed)
11:16:04  * bnoordhuisjoined
11:18:42  * adrianFjoined
13:46:34  * piscisaureus_joined
13:57:20  * Ineenthojoined
13:59:20  * merrihewquit
14:22:46  * mikedeboerquit (Quit: mikedeboer)
14:48:00  * adrianFquit (Read error: Connection timed out)
14:48:52  * mikedeboerjoined
15:39:56  * ggoodmanjoined
15:46:31  * jcollierjoined
15:46:43  <jcollier>anyone here from c9 that can help me?
15:47:12  <jcollier>trying to use ssh with private project and get this bug https://github.com/ajaxorg/cloud9/issues/1851
15:58:37  * mikedeboerquit (Quit: mikedeboer)
16:00:17  * dannygquit (Quit: Leaving.)
16:31:10  * jcollierquit (Quit: Page closed)
16:33:39  * ggoodmanquit (Quit: Page closed)
16:44:49  * Ineentho_joined
16:46:10  * Ineenthoquit (Ping timeout: 244 seconds)
16:46:14  * Ineentho_changed nick to Ineentho
20:52:02  * mattpardeejoined
21:04:14  * xrosnightjoined
21:19:26  * Ewoutjoined
21:19:43  <Ewout>Hi does anybody have experience with FTP projects?
21:19:54  * hillctjoined
21:20:00  <mattpardee>hey Ewout
21:20:01  <mattpardee>what's up
21:20:28  <Ewout>Hey
21:20:44  <Ewout>I'm having trouble setting up a ftp project
21:21:39  <Ewout>I can't get past the login test ... my credentials are correct (tried same in fileZilla) but it won't connect
21:22:05  <hillct>Does anyone know what the story is with the current Architect code? It seems to use a https://github.com/creationix/stack based http middleware setup, but it's hard to say whether or not it will play nice with connect style middleware
21:22:08  <Ewout>and I have tried with another host and that worked ... so it is probably something on my end, but I can't think of anything
21:22:56  <mattpardee>Ewout does it give you any kind of error?
21:23:25  <Ewout>Well after like 2 minutes: "Connection failed!
21:23:25  <Ewout>Please check your ftp credentials.."
21:24:38  * creationixjoined
21:24:43  <creationix>some asked about architect?
21:24:46  <mattpardee>hillct here's Tim :)
21:24:52  <mattpardee><hillct> Does anyone know what the story is with the current Architect code? It seems to use a https://github.com/creationix/stack based http middleware setup, but it's hard to say whether or not it will play nice with connect style middleware
21:25:06  <hillct>creationix: Yes! Good to see you!
21:25:13  <creationix>architect doesn't have any preference for either connect or stack
21:25:25  <creationix>I just use stack in the example because it's simpler
21:25:29  <creationix>we use connect for c9.io
21:25:58  <creationix>today I was actually thinking about what the ideal http service for c9.io would look like
21:26:04  <hillct>creationix: I'd been building an app based upon architect 0.0.3 using Fabian's connect-architect as a model, but I can't work out how to make my app compatible with the newer versions of architect
21:26:31  <mattpardee>Ewout it's possible there is a deeper bug in our FTP connection code
21:26:40  <creationix>https://github.com/c9/smith.io/blob/master/demo/server.js
21:26:58  <creationix>that's a tiny architect app using connect-architect I think
21:27:03  <mattpardee>Ewout would it be possible for you to create a sandboxed user on your FTP server, and then send us the credentials so we can test internally?
21:27:09  <Ewout>well, it worked with other webhosts, AND i tried with 2 accounts from the same host
21:27:16  <mattpardee>If you have a consistently failing test case, that's a really great way to get it fixed
21:27:25  <mattpardee>oh two separate users?
21:27:27  <mattpardee>on the same FTP server?
21:27:35  <hillct>creationix: I'd gone through the effort to implement my own router middleware to get the newer versions of connect to play nice with the older architect, and allow me to construct architect modules, for distinct classes of endpoints, etc
21:27:42  <Ewout>ehm, well 2 webhosting accounts at the same hoster
21:27:53  <mattpardee>hmm interesting
21:28:01  <Ewout>but
21:28:10  <Ewout>it's ALL the ftp accounts from that hoster
21:28:18  <Ewout>well mine right
21:28:19  <creationix>hillct, so you have multiple architect instances embedded in connect routes?
21:28:51  <mattpardee>Ewout, if you would be wiling
21:28:54  <mattpardee>willing
21:29:00  <mattpardee>you could send me the details, [email protected]
21:29:12  <mattpardee>I can test it in my own environment and see what error is occurring
21:29:15  <Ewout>sandbox account, is that something special? :$
21:29:26  <Ewout>or just blank target?
21:29:32  <mattpardee>not exactly, I just didn't want you to feel like you had to give out your own credentials :)
21:29:42  <Ewout>ok sure
21:29:45  <mattpardee>but if you wanted to send them directly to me, I could test it then delete the e-mail forever
21:29:48  <hillct>creationix: no. I started with connect0architect, then added a router middleware that eported a routerAdd method (missing from the newer Connect versions) then implemented plugins in the architect style, to manage each endpoint
21:30:01  <mattpardee>Ewout anything that fails consistently, that I can use
21:30:07  <mattpardee>would be awesome
21:30:09  <Ewout>hehe thx :)
21:30:51  <creationix>hillct, I've only started looking at connect-architect today. It looks like it was optimized for fast migration from our old connect-based codebase
21:31:01  <hillct>creationix: I'm just trying to work out an upgrade path, given the recent changes to architect, which it seems would involve replacing Connect with Stack or it's equivalent http plugin within architect
21:31:01  <creationix>I would have done things very differently if it was a new project
21:31:21  <creationix>I'm not aware of any architect changes that would make it not work with connect
21:31:28  <hillct>creationix: I'm rapidly coming to the same conclusion
21:31:28  <creationix>mainly I removed the containers idea
21:31:49  <hillct>creationix: that I should have done it differently I mean
21:31:58  <creationix>hillct, remember that since we're not using architect containers, anything can be in the service object that's exported
21:32:04  <creationix>and a single plugin can export multiple services
21:32:23  <creationix>so one service could be a reference to the connect module itself (or any collection of middleware modules)
21:32:32  <creationix>and another service could give direct access to the app object
21:33:10  <creationix>so my plugin could consume "app" and "middlewares" and imports.app.get(imports.middlewares.someFilder, function (req, res) {})
21:33:13  <creationix>does that make sense?
21:33:40  <hillct>creationix: I have a number of plugins, one for mongo, one for my user endpoints, one for my /image endpoints, and so on. In my case the plugins divide the endpoints such that I can scale my API by adding 2 servers to process my /image endpoints while only one server to handle my /user endpoints
21:34:34  <creationix>scale by adding servers? Are you talking about the containers feature I removed?
21:34:44  <hillct>no
21:35:03  <creationix>ok, good. Because using http services across containers never worked out
21:35:11  <creationix>not auto-magically at least
21:35:17  <creationix>doing it manually over smith works great
21:35:44  <hillct>I mean the code is stateless, so I can put it behind a Varnish cache instance, and each physical server I spin up, can register with the reverse proxy to handle the certain subset of endpoints I need additional capacity pn
21:35:45  <hillct>on
21:36:03  <creationix>right, that works fine
21:36:10  <creationix>the reverse proxy handles the routing to the right server
21:36:20  <hillct>my point being, that's my approach to plugin organizartion
21:36:23  <creationix>and each server has a unique architect config with internal port and which plugins to initialize
21:36:31  <hillct>exactly
21:36:39  <creationix>yep, perfect
21:37:01  <hillct>however, when I sub in the new version of architect, it all blows up with an error about object does not have method foreach
21:37:48  <hillct>not really sure what to make of it, though I haven't taken the time to methodically analyze the issue. I wanted to get your feedback first so I had an idea where I should be looking
21:38:11  <creationix>I don't remember any changes that would have caused that
21:38:17  <creationix>but it's been a while since I touched architect
21:38:25  <creationix>and like I said, I've never used connect-architect
21:38:36  <hillct>one sec. I'll pull in the new version and test to be sure of the issue I was seeing
21:38:50  <creationix>ok
21:40:23  <creationix>looking at the history, architect hasn't been touched in 2 months. There was one minor cleanup after the 0.1.14 release https://github.com/c9/architect/commit/324807d85613795694622ea8b7b05c43d0e5feec
21:42:59  <hillct>yeah
21:44:02  <hillct>DO I just need to export an array of the plugins, rather than the containers, and master plugins structure?
21:44:41  <hillct>see PM
21:44:46  <creationix>yes, the structure changed
21:45:27  <creationix>https://github.com/c9/architect/blob/master/demos/calculator/config.js
21:45:36  <hillct>module.exports = [ {plugin 1 stuff here }, {plugin 2 stuff here } ];
21:46:20  <creationix>yep
21:46:57  <creationix>containers was a noble effort, but in the end it didn't really work and made everything 500% more complicated
21:47:03  <creationix>so I just removed it
21:48:12  <hillct>http://pastebin.com/iZh05sVE
21:49:14  <hillct>my first thought was I screwed up the config file, but it's just an array of the plugin definitions now
21:49:29  <creationix>looks like your config is still an object
21:49:40  <hillct>yeah, but it's not
21:49:59  <creationix>what's in /Users/hillct/Documents/PinnacleDigital/NodeJS/lensflip-api/configs/default?
21:50:20  <hillct>it's default.js
21:50:25  <hillct>pasting. one sec
21:51:21  <hillct>http://pastebin.com/xDYVDgig
21:51:44  <creationix>All architect does is `require(configPath).forEach(...)`
21:52:18  <creationix>hmm, that looks fine
21:52:36  <creationix>do you have a json file or something there by the same name (but .json extension)?
21:52:55  <creationix>what do you get when you `require('/Users/hillct/Documents/PinnacleDigital/NodeJS/lensflip-api/configs/default')` in a node repl?
21:52:55  <hillct>I'm using the directory structure from connect-architect, that is the default.js is in a directory configs and the plugins are in the parent directory
21:53:30  <creationix>is your server.js putting the config into some object?
21:53:37  <creationix>or otherwise munging the value
21:53:39  <hillct>well, first of all, it's default.js not default
21:53:49  <creationix>I know, but require adds the .js
21:54:10  <hillct>server.js is exactly what's found in the connect-architect git repo, unchanged
21:54:39  <creationix>hmm, that should work https://github.com/c9/connect-architect/blob/master/server.js
21:55:15  <hillct>you can reproduce this behavior by cloning connect-architect, then upgrading the architect version it pulls in
21:55:23  <creationix>on line 10, add `console.log(Array.isArray(require(configPath)));`
21:55:38  <hillct>of what? server.js?
21:55:46  * Ewoutquit
21:55:47  <creationix>yes, but actually add it on line 8
21:55:57  <creationix>right before the architect.createApp call
21:57:09  <creationix>hmm, I think the api changed and server.js needs changing
21:57:19  <creationix>architect.createApp expects an object, not a string
21:57:31  <creationix>(well, an array actually)
21:57:55  <hillct>seems to have returned true
21:58:25  <hillct>presumably, an array with one element
21:58:28  <creationix>yep, so your file is good
21:58:33  <creationix>but your server.js is bad
21:58:41  <hillct>ok
21:58:43  <creationix>instead of passing in the configPath, pass in the config
21:58:55  <creationix>config = architect.loadConfig(configPath)
21:59:34  <hillct>http://pastebin.com/tUDQpaDy
22:00:06  <hillct>ok, changing
22:01:14  <hillct>huh
22:01:16  <hillct>it started
22:01:32  <creationix>hillct, http://pastebin.com/Ar1gS4rN
22:01:40  <hillct>I swear I looked at server.js with a fine toothed comb for exactly this sort of change. clearly I missed that
22:02:01  <hillct>Thanks
22:02:02  <creationix>my bad for adding a breaking api change without a proper error message
22:02:14  <creationix>I thought I had a typeof config === "string" check in there
22:02:15  <creationix>I guess not
22:02:19  * hillctruns some unit tests manually
22:02:30  <creationix>anyway, I gotta run, good luck
22:02:43  <creationix>let me know if you come up with something better than connect-architect
22:02:43  <hillct>thanks very much. It's always the one liners that kill ya
22:03:00  <hillct>creationix: one last question
22:03:38  * mikedeboerjoined
22:03:48  <hillct>creationix: it looks like Stack should be compatible with connect style middleware. Is that correct? Intentional?
22:05:14  <hillct>If so, I may yank connect and go with stack, as connect as you say, has tons of extraneous middleware
22:06:19  <creationix>I wrote both connect and stack
22:06:26  <creationix>they are compatable on the surface
22:06:37  <creationix>but connect has expanded over the years since TJ took over
22:06:52  <creationix>and stack doesn't really allow dynamic route registering
22:06:57  <creationix>so it's not good for architect
22:07:28  <creationix>I need to write an architect friendly version of stack
22:07:40  <creationix>I think the calculator example has a little one embedded in it
22:07:43  <creationix>for the http service
22:07:59  <hillct>Oh, I didn't realize you were the original connect author
22:08:47  <hillct>yeah, I saw the comments in architect-http suggesting that
22:10:00  <hillct>In addition to dynamic route registration, It would need dynamic middle are insertion, such that an architect plugin can insert http middleware it needs
22:11:01  <hillct>such that the http object can be automatically slimmed down within the architect model, without having to mess with architect-http directly
22:12:00  <hillct>I wrote an architect friendly router for dynamic route insertion based upon route66, which was based upon the old connect-included router middleware
22:12:09  <hillct>I may try and adapt that
22:13:01  <hillct>I also wrote the routing code for the Scoop CMS (12 years old now) which does some phenomenal regex handling and other cool stuff with dynamic path fragment handling and such
22:13:14  <hillct>I'll see what I can come up with
22:19:17  * jeffnmjoined
22:20:57  * mikedeboerquit (Quit: mikedeboer)
22:42:52  * bmatusiakquit (Remote host closed the connection)
23:05:47  <xrosnight>hey
23:05:52  <xrosnight>what ftp project
23:06:24  <mattpardee>we discovered that his FTP hosting company was being blocked by AWS for some previous DDOS attacks
23:06:35  <mattpardee>so AWS wouldn't allow the connection to take place
23:08:40  <xrosnight>i see
23:09:03  <xrosnight>i am new to cloud9ide. i get this from node.js
23:09:08  <xrosnight>things
23:35:28  * bnoordhuisquit (Quit: Leaving)