MongoDB? What's that, some kind of fruit? Give me a real database!



  • mysql workbench is reasonably good


  • Garbage Person

    @fbmac shame mysql is shit.



  • @Weng far better than mongo it is



  • @blakeyrat said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    Sure you can use ANY DB system to simulate a key/value store, that's not difficult. But it's also using pretty much EVERY DB system other than Redis and its competitors in a broken inefficient way, and throwing the last 30 years of database theory in the trash.

    Paging @topmind ...


  • Garbage Person

    Visual Studio installed (god why does it take so long!), SQL installer is doing its unending SQL Installer dance now.

    So at some point, I'm going to need to load test this. And when I say 'load test' I actually mean it.

    I'm envisioning doing a massive database prepopulate and then simulating 40-50 simultaneous, actual running, Javascript-chugging logged in users performing synthetic but realistic post/read/reply/chat/etc. operations continuously, plus the activity of a couple of really big crawlerbots.

    Problem is, I have no idea how to do that. My web app load testing skills stop at "spam HTTP actions at it" and don't cover things like "You have cookies and you should do the things the Javascript tells you to do!" headless browser kind of stuff, and I don't really know what modern crawlers actually bother to do. Just load static content? Do everything in the Javascript onload? Actually interact with on-page Javascript? In my normal line of work, if a crawler can see it, ITSec has failed at life.

    So, uh, anybody know anything about that? @Yamikuronue ?



  • @Weng For the last 24 hours:

    0_1459559965019_Screenshot 2016-04-01 at 20.18.51.png

    So mostly just accessing random topics would reproduce the load. Anything prefixed with /api is the same as without that prefix, but accessed after the initial page load. There are a few socket.io requests that are interesting, like notifications.get, too.


  • I survived the hour long Uno hand

    @Weng JMeter. I don't think it can do on-page JS, but it can record the AJAX requests that were sent as you interacted with the site in a browser and then play them back by the hundredfold. Which is all the server really sees anyway.


  • Garbage Person

    @Yamikuronue hm. Not as optimal as my fantasy version, but looks like a useful surrogate and probably more reproducible anyway.


  • I survived the hour long Uno hand

    @Weng I mean, you can also use webdriver to load the page in a real browser, but that's piss for generating load, they usually suggest doing a load in the background and having webdriver just figure out what the degraded experience looks like.


  • Notification Spam Recipient

    @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    I am a masochist and love torturing myself in public

    @DoctorJones may claim this about me as well.
    Unfortunately, I don't as yet have too much time to devote on personal projects (maybe in May?).

    Best of luck!


  • Garbage Person

    @ScholRLEA Variable domains really aren't all that hard in SQL. WtfFramework does it all day every day. Putting an OOP ORM on top of it is Fucking Hard, though, unless you build classes at runtime and why the fuck would you want to do that?

    So here's the minimum viable product plan:
    0_1459565183825_upload-4e8d9c18-a323-42e1-b50f-a4afbb9eb32b

    The MSSQL-Mango Hybrid Engine (henceforth MMHE) and MSSQL Connector will both likely depend on or together constitute a lightweight object model, where each object consists mostly of a generator for some highly-optimized laser-focused SQL.

    Once we get to that point for the basic objects, I'll start in on the dynamic schema, self-indexing and self-learning, eventually excising the Mongo fallback.


  • Garbage Person

    Currently fighting the "Get the damn thing to build in Visual Studio" clown.

    npm is broken again. $10 it's because it somehow thinks it's looking for in C:\Program Files\nodejs\node.exe and can't deal with that empty path node. Where it got that path I cannot tell you.

    
    ====Executing command 'npm install'====
    
    npm WARN `git config --get remote.origin.url` returned wrong result (git://github.com/wzrdtales/simple-recaptcha) 
    npm ERR! git clone git://github.com/wzrdtales/simple-recaptcha 
    npm ERR! Error: spawn ENOENT
    npm ERR!     at errnoException (child_process.js:1011:11)
    npm ERR!     at Process.ChildProcess._handle.onexit (child_process.js:802:34)
    npm ERR! If you need help, you may report this *entire* log,
    npm ERR! including the npm and node versions, at:
    npm ERR!     <STOP ONEBOXING YOU POS>
    npm ERR! System Windows_NT 6.1.7601
    npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
    npm ERR! cwd C:\Users\Weng\Documents\GitHub\WTDWTF\NodeBB-SQL
    npm ERR! node -v v0.10.35
    npm ERR! npm -v 1.4.28
    npm ERR! syscall spawn
    npm ERR! code ENOENT
    npm ERR! errno ENOENT
    
    ====npm command completed with exit code 1====

  • Garbage Person

    Awesome. Even attempting to reproduce the manual build/start process I did yesterday fails now.


  • Garbage Person

    Well, looks like if I avoid the spam-be-gone plugin, things will be fine.

    Edit: Except that it's not.

    Le sigh.

    Edit 2: There we go. Had to reuse the DB from yesterday, it doesn't seem to want to autopopulate with the baseline if it warns on a missing plugin.

    Edit 3: Except that's totally not even close to when the population code is supposed to run. WTF.

    Edit 4: Running setup again and it behaves differently. And then hung partway through populating the database.

    Excuse me. Computer. I like it better when you behave deterministically.


  • Garbage Person

    Oh, that's a really charming thing the node debugger does. It decided I didn't want to keep stepping through that code after all.

    Very helpful, that.



  • @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    The MSSQL-Mango Hybrid Engine (henceforth MMHE) and MSSQL Connector will both likely depend on or together constitute a lightweight object model, where each object consists mostly of a generator for some highly-optimized laser-focused SQL.

    Doesn't mssql have some document handling too? or is that only for xml?



  • @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    "C:\Program Files\nodejs\\node.exe"

    a slash too many there


  • FoxDev

    @swayde IIRC, WIndows normally collapses multiple \s into a single



  • @RaceProUK that must depend on context, I've been bitten by double slashing before


  • Discourse touched me in a no-no place

    @swayde said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    I've been bitten by double slashing before

    :giggity:



  • @swayde said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    that must depend on context, I've been bitten by double slashing before

    Unix will always collapse multiple slashes.

    Windows assigns a specific meaning to a leading double slash: the name is interpreted as a UNC name, and the component following the double slash is taken to be the name of a server.

    If there's a double slash immediately following a drivespec, like X:\\vboxsvr\root, the drivespec is ignored and the rest is interpreted as a UNC name.

    Other multiple slashes are collapsed the same way Unix does.

    The Unix rationale for this behavior is that the way to make a full pathname out of the pathname for a directory and the name of a file is by joining the two with a slash; multiple slash collapsing lets this work properly even if the directory pathname ends with a slash. Since the most common reason for a directory pathname to end with a slash is that the directory concerned is the root directory, the most common place you find double slashes in Unix pathnames is right at the beginning. Microsoft's convention stomps this. In this respect it's consistent with Microsoft's approach to everything Unix: they have always grabbed Unix ideas and features and bolted them onto their shitty operating systems without ever actually grokking them, and the result is that MS operating systems can do everything that Unix does but it's always just that little bit fiddlier.


  • I survived the hour long Uno hand

    @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    Where it got that path I cannot tell you.

    There's a stupid thing in NPM where it tries to grab the user's default version of node. So instead of path-sniffing from where NPM's executable is to the nearest Node executable, or asking for the node executable location, it uses whatever's on the user's path, which breaks multi-version environments like my build server.

    I bet you on Windows it's trying to do something similar, only it's probably using some non-path environment variable like NODE_PATH or something to boot.



  • @Yamikuronue said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    I bet you on Windows it's trying to do something similar, only it's probably using some non-path environment variable like NODE_PATH or something to boot.

    I'd be checking to make sure that my PATH variable didn't include any components with C:\Program Files as a prefix, and if it did, replacing those with C:\PROGRA~1. On 64-bit I'd do dir /x C:\ first to find out which way around the C:\Program Files and C:\Program Files (x86) to C:\PROGRA~1 and C:\PROGRA~2 mapping had ended up.



  • @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    Oh, that's a really charming thing the node debugger does. It decided I didn't want to keep stepping through that code after all.
    Very helpful, that.

    Yeah it does that sometimes. PHP debugger too.

    Only C# debugger fucking works every time, no matter the call stack, no matter the code format.

    Best advice I can give you, if you have to step too far, set up a break point.



  • @flabdablet said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    Microsoft's convention stomps this. In this respect it's consistent with Microsoft's approach to everything Unix: they have always grabbed Unix ideas and features and bolted them onto their shitty operating systems without ever actually grokking them, and the result is that MS operating systems can do everything that Unix does but it's always just that little bit fiddlier.

    That's utter tripe.


  • Discourse touched me in a no-no place

    @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    Also, would "Error: No Entry Permissions for C:\Users\Weng\Appdata\Roaming\npm" have been too fucking hard? ENOENT? Really?

    Unix devs, what would you expect? They never give you human-readable errors when they can give you terse ones.



  • @FrostCat ENOENT is the same as FILE_NOT_FOUND, nothing to do with permissions.


  • Garbage Person

    @swayde 2016 has it.I mean, I guess this could go Bleeding Edge.


  • Discourse touched me in a no-no place

    @ben_lubar said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    @FrostCat ENOENT is the same as FILE_NOT_FOUND, nothing to do with permissions.

    I didn't mention permissions, @weng did.


  • Garbage Person

    @swayde Looks like the Node installer added node to %PATH% as C:\Program Files\nodejs
    The trailing \ is unnecessary and dumb.

    This, however, did not actually fix the issue (or change npm's behavior).


  • Garbage Person

    @ben_lubar Would "Error: File not Found for C:\Users\Weng\Appdata\Roaming\npm" have been too fucking hard? ENOENT? Really?

    :)

    Of course, I am now wrangling with ENOENT that doesn't even bother telling you WHAT FILE.





  • @Weng I'll bet you a dollar that the file it's not finding is C:\Program. Somewhere in a shitty build script, a shitty build script developer will have failed to quote a pathname.


  • Discourse touched me in a no-no place

    @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    @swayde Looks like the Node installer added node to %PATH% as C:\Program Files\nodejs
    The trailing \ is unnecessary and dumb.

    Um...

    0_1459611633937_Screenshot from 2016-04-02 16:40:08.png

    And it didn't make it into the quote either.


  • Garbage Person

    Alright, so looking at this again:

    npm WARN `git config --get remote.origin.url` returned wrong result (git://github.com/wzrdtales/simple-recaptcha) npm ERR! git clone git://github.com/wzrdtales/simple-recaptcha npm ERR! Error: spawn ENOENT npm ERR! at errnoException (child_process.js:1011:11) npm ERR! at Process.ChildProcess._handle.onexit (child_process.js:802:34) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! FUCK YOU STOP ONEBOXING IN THE MIDDLE OF CODE TAGS npm ERR! System Windows_NT 6.1.7601 npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "update" "nodebb-plugin-spam-be-gone" "--save" npm ERR! cwd C:\Users\Weng\Documents\GitHub\NodeBB-SQL npm ERR! node -v v0.10.35 npm ERR! npm -v 1.4.28 npm ERR! syscall spawn npm ERR! code ENOENT npm ERR! errno ENOENT npm

    It warns It successfully runs git config.
    It then errors running git clone with some kind of file not found.

    What files could it not find?
    git? It just ran git config, so that's out.
    The current working directory where it's going to write the clone to? If I go run that git clone in that directory, it works.

    Node? Upon further examination of node.cmd, npm cannot be running if it hasn't successfully hit that node.exe path with the janky empty filenode in it and the space in the path. If npm weren't running, we wouldn't see this at all.

    Conclusion: It's having kittens about some file it's not telling us about.


  • Garbage Person

    @PJH

    0_1459611984529_upload-ec911742-57f8-4556-89a8-cf8056271cab

    Nice.


  • Discourse touched me in a no-no place


  • I survived the hour long Uno hand

    @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    What files could it not find?

    That first line is interesting: npm's package of simple-recaptcha comes from https://github.com/zeMirco/simple-recaptcha , but your git clone was from https://github.com/wzrdtales/simple-recaptcha

    I wonder if that's part of the issue?

    Nope. Apparently not, some googling gave me:

    For those on Windows: you need to have Git in the PATH

    IS Git in your path?


  • Garbage Person

    @Yamikuronue Given git starts from a commandline, I'd hope so....

    ... Except it isn't.

    WTF.


  • I survived the hour long Uno hand


  • Garbage Person

    @Yamikuronue Well, I added it and no behavior changed. So presumably whatever dark magicks the OS was doing before worked.


  • Garbage Person

    Okay. So. Two possibilities:

    1. There isn't a node_modules\nodebb-plugin-spam-be-gone for it to build (though it might clean that up when it fails)
    2. When trying to build nodebb-plugin-spam-be-gone it vomits because it's pulling the wrong simple-recaptcha.

    C:\Users\Weng\Documents\GitHub\NodeBB-SQL>npm install nodebb-plugin-spam-be-gone
    --loglevel verbose
    npm info it worked if it ends with ok
    npm verb cli [ 'C:\Program Files\nodejs\\node.exe',
    npm verb cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
    npm verb cli 'install',
    npm verb cli 'nodebb-plugin-spam-be-gone',
    npm verb cli '--loglevel',
    npm verb cli 'verbose' ]
    npm info using npm@1.4.28
    npm info using node@v0.10.35
    npm verb node symlink C:\Program Files\nodejs\node.exe
    npm WARN package.json nodebb-plugin-soundpack-default@0.1.6 No README data
    npm WARN package.json passport@0.3.2 No README data
    npm verb readDependencies using package.json deps
    npm verb cache add [ 'nodebb-plugin-spam-be-gone@0.4.6', null ]
    npm verb cache add name=undefined spec="nodebb-plugin-spam-be-gone@0.4.6" args=[
    "nodebb-plugin-spam-be-gone@0.4.6",null]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: null,
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: 'nodebb-plugin-spam-be-gone@0.4.6',
    npm verb parsed url path: 'nodebb-plugin-spam-be-gone@0.4.6',
    npm verb parsed url href: 'nodebb-plugin-spam-be-gone@0.4.6' }
    npm verb cache add name="nodebb-plugin-spam-be-gone" spec="0.4.6" args=["nodebb-
    plugin-spam-be-gone","0.4.6"]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: null,
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: '0.4.6',
    npm verb parsed url path: '0.4.6',
    npm verb parsed url href: '0.4.6' }
    npm verb addNamed [ 'nodebb-plugin-spam-be-gone', '0.4.6' ]
    npm verb addNamed [ '0.4.6', '0.4.6' ]
    npm verb lock nodebb-plugin-spam-be-gone@0.4.6 C:\Users\Weng\AppData\Roaming\npm
    -cache\ccb15ffd-nodebb-plugin-spam-be-gone-0-4-6.lock
    npm verb request where is /nodebb-plugin-spam-be-gone
    npm verb request registry https://registry.npmjs.org/
    npm verb request id 67729f9b9343e1cf
    npm verb url raw /nodebb-plugin-spam-be-gone
    npm verb url resolving [ 'https://registry.npmjs.org/',
    npm verb url resolving './nodebb-plugin-spam-be-gone' ]
    npm verb url resolved https://registry.npmjs.org/nodebb-plugin-spam-be-gone
    npm verb request where is https://registry.npmjs.org/nodebb-plugin-spam-be-gone
    npm info trying registry request attempt 1 at 12:14:40
    npm verb etag "6DHTRKHXN1DV0I29W54G4OHOR"
    npm http GET https://registry.npmjs.org/nodebb-plugin-spam-be-gone
    npm http 304 https://registry.npmjs.org/nodebb-plugin-spam-be-gone
    npm verb etag https://registry.npmjs.org/nodebb-plugin-spam-be-gone from cache
    npm info install nodebb-plugin-spam-be-gone@0.4.6 into C:\Users\Weng\Documents\G
    itHub\NodeBB-SQL
    npm info installOne nodebb-plugin-spam-be-gone@0.4.6
    npm verb node_modules\nodebb-plugin-spam-be-gone unbuild
    npm verb tar unpack C:\Users\Weng\AppData\Roaming\npm-cache\nodebb-plugin-spam-b
    e-gone\0.4.6\package.tgz
    npm verb lock tar://C:\Users\Weng\Documents\GitHub\NodeBB-SQL\node_modules\nodeb
    b-plugin-spam-be-gone C:\Users\Weng\AppData\Roaming\npm-cache\3b006e79-dules-nod
    ebb-plugin-spam-be-gone.lock
    npm verb lock tar://C:\Users\Weng\AppData\Roaming\npm-cache\nodebb-plugin-spam-b
    e-gone\0.4.6\package.tgz C:\Users\Weng\AppData\Roaming\npm-cache\57f84d64-n-spam
    -be-gone-0-4-6-package-tgz.lock
    npm info preinstall nodebb-plugin-spam-be-gone@0.4.6
    npm verb readDependencies using package.json deps
    npm verb readDependencies using package.json deps
    npm verb cache add [ 'akismet@^1.0.0', null ]
    npm verb cache add name=undefined spec="akismet@^1.0.0" args=["akismet@^1.0.0",n
    ull]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: null,
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: 'akismet@^1.0.0',
    npm verb parsed url path: 'akismet@^1.0.0',
    npm verb parsed url href: 'akismet@^1.0.0' }
    npm verb cache add [ 'project-honeypot@~0.0.0', null ]
    npm verb cache add name=undefined spec="project-honeypot@~0.0.0" args=["project-
    honeypot@~0.0.0",null]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: null,
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: 'project-honeypot@~0.0.0',
    npm verb parsed url path: 'project-honeypot@~0.0.0',
    npm verb parsed url href: 'project-honeypot@~0.0.0' }
    npm verb cache add [ 'simple-recaptcha@git://github.com/wzrdtales/simple-recaptc
    ha#v1.0.0',
    npm verb cache add null ]
    npm verb cache add name=undefined spec="simple-recaptcha@git://github.com/wzrdta
    les/simple-recaptcha#v1.0.0" args=["simple-recaptcha@git://github.com/wzrdtales/
    simple-recaptcha#v1.0.0",null]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: '#v1.0.0',
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: 'simple-recaptcha@git://github.com/wzrdtales/sim
    ple-recaptcha',
    npm verb parsed url path: 'simple-recaptcha@git://github.com/wzrdtales/simple-
    recaptcha',
    npm verb parsed url href: 'simple-recaptcha@git://github.com/wzrdtales/simple-
    recaptcha#v1.0.0' }
    npm verb cache add name="akismet" spec="^1.0.0" args=["akismet","^1.0.0"]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: null,
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: '^1.0.0',
    npm verb parsed url path: '^1.0.0',
    npm verb parsed url href: '^1.0.0' }
    npm verb addNamed [ 'akismet', '^1.0.0' ]
    npm verb addNamed [ null, '>=1.0.0-0 <2.0.0-0' ]
    npm verb lock akismet@^1.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\8640e9ec-ak
    ismet-1-0-0.lock
    npm verb cache add name="project-honeypot" spec="~0.0.0" args=["project-honeypot
    ","~0.0.0"]
    npm verb parsed url { protocol: null,
    npm verb parsed url slashes: null,
    npm verb parsed url auth: null,
    npm verb parsed url host: null,
    npm verb parsed url port: null,
    npm verb parsed url hostname: null,
    npm verb parsed url hash: null,
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: '~0.0.0',
    npm verb parsed url path: '~0.0.0',
    npm verb parsed url href: '~0.0.0' }
    npm verb addNamed [ 'project-honeypot', '~0.0.0' ]
    npm verb addNamed [ null, '>=0.0.0-0 <0.1.0-0' ]
    npm verb lock project-honeypot@~0.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\46
    8e0682-project-honeypot-0-0-0.lock
    npm verb cache add name="simple-recaptcha" spec="git://github.com/wzrdtales/simp
    le-recaptcha#v1.0.0" args=["simple-recaptcha","git://github.com/wzrdtales/simple
    -recaptcha#v1.0.0"]
    npm verb parsed url { protocol: 'git:',
    npm verb parsed url slashes: true,
    npm verb parsed url auth: null,
    npm verb parsed url host: 'github.com',
    npm verb parsed url port: null,
    npm verb parsed url hostname: 'github.com',
    npm verb parsed url hash: '#v1.0.0',
    npm verb parsed url search: null,
    npm verb parsed url query: null,
    npm verb parsed url pathname: '/wzrdtales/simple-recaptcha',
    npm verb parsed url path: '/wzrdtales/simple-recaptcha',
    npm verb parsed url href: 'git://github.com/wzrdtales/simple-recaptcha#v1.0.0'
    }
    npm verb lock git://github.com/wzrdtales/simple-recaptcha C:\Users\Weng\AppData
    Roaming\npm-cache\d666f563-b-com-wzrdtales-simple-recaptcha.lock
    npm verb addRemoteGit [ 'git://github.com/wzrdtales/simple-recaptcha', 'v1.0.0'
    ]
    npm verb request where is /akismet
    npm verb request registry https://registry.npmjs.org/
    npm verb url raw /akismet
    npm verb url resolving [ 'https://registry.npmjs.org/', './akismet' ]
    npm verb url resolved https://registry.npmjs.org/akismet
    npm verb request where is https://registry.npmjs.org/akismet
    npm info trying registry request attempt 1 at 12:14:40
    npm verb etag "940FJC1SHMOM2ZB2MZT92Z7YJ"
    npm http GET https://registry.npmjs.org/akismet
    npm verb request where is /project-honeypot
    npm verb request registry https://registry.npmjs.org/
    npm verb url raw /project-honeypot
    npm verb url resolving [ 'https://registry.npmjs.org/', './project-honeypot' ]
    npm verb url resolved https://registry.npmjs.org/project-honeypot
    npm verb request where is https://registry.npmjs.org/project-honeypot
    npm info trying registry request attempt 1 at 12:14:40
    npm verb etag "9J2YUAIJIJDTD9A0HTBYNWD9E"
    npm http GET https://registry.npmjs.org/project-honeypot
    npm WARN git config --get remote.origin.url returned wrong result (git://githu
    b.com/wzrdtales/simple-recaptcha)
    npm ERR! git clone git://github.com/wzrdtales/simple-recaptcha
    npm http 304 https://registry.npmjs.org/akismet
    npm verb etag https://registry.npmjs.org/akismet from cache
    npm verb addNamed [ 'akismet', '1.0.0' ]
    npm verb addNamed [ '1.0.0', '1.0.0' ]
    npm verb lock akismet@1.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\2e368150-aki
    smet-1-0-0.lock
    npm http 304 https://registry.npmjs.org/project-honeypot
    npm verb etag https://registry.npmjs.org/project-honeypot from cache
    npm verb addNamed [ 'project-honeypot', '0.0.0' ]
    npm verb addNamed [ '0.0.0', '0.0.0' ]
    npm verb lock project-honeypot@0.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\445
    97801-project-honeypot-0-0-0.lock
    npm verb about to build C:\Users\Weng\Documents\GitHub\NodeBB-SQL\node_modules\n
    odebb-plugin-spam-be-gone
    npm ERR! Error: spawn ENOENT
    npm ERR! at errnoException (child_process.js:1011:11)
    npm ERR! at Process.ChildProcess._handle.onexit (child_process.js:802:34)
    npm ERR! If you need help, you may report this entire log,
    npm ERR! including the npm and node versions, at:
    npm ERR! STOP ONEBOXING

    npm ERR! System Windows_NT 6.1.7601
    npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nod
    ejs\node_modules\npm\bin\npm-cli.js" "install" "nodebb-plugin-spam-be-gone"
    "--loglevel" "verbose"
    npm ERR! cwd C:\Users\Weng\Documents\GitHub\NodeBB-SQL
    npm ERR! node -v v0.10.35
    npm ERR! npm -v 1.4.28
    npm ERR! syscall spawn
    npm ERR! code ENOENT
    npm ERR! errno ENOENT
    npm verb exit [ 1, true ]
    npm verb node_modules\nodebb-plugin-spam-be-gone unbuild
    npm info preuninstall nodebb-plugin-spam-be-gone@0.4.6
    npm info uninstall nodebb-plugin-spam-be-gone@0.4.6
    npm verb true,C:\Users\Weng\Documents\GitHub\NodeBB-SQL\node_modules,C:\Users\To
    ny\Documents\GitHub\NodeBB-SQL\node_modules unbuild nodebb-plugin-spam-be-gone@0
    .4.6
    npm info postuninstall nodebb-plugin-spam-be-gone@0.4.6
    npm ERR! not ok code 0

    C:\Users\Weng\Documents\GitHub\NodeBB-SQL>



  • @Weng Out of curiosity, I did nodebb install on Windows. No problems so far.

    Can you reiterate what exactly did you do, so I can try to reproduce the problem?

    $ which node
    /c/Program Files (x86)/nodejs/node
    
    $ node --version
    v0.12.2
    
    $ which npm
    /c/Program Files (x86)/nodejs/npm
    
    $ npm --version
    2.7.4
    
    $ npm install nodebb-plugin-spam-be-gone
    npm WARN package.json nodebb-plugin-soundpack-default@0.1.6 No README data
    npm WARN package.json passport@0.3.2 No README data
    nodebb-plugin-spam-be-gone@0.4.6 node_modules\nodebb-plugin-spam-be-gone
    ├── project-honeypot@0.0.0
    ├── akismet@1.0.0
    └── simple-recaptcha@1.0.0
    

    All on Windows 10 x64, Msys2 shell.


  • Garbage Person

    @cartman82 point of breakage was somewhere after installing Visual Studio 2015 and the Node.js tools for VS.



  • @Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:

    @cartman82 point of breakage was somewhere after installing Visual Studio 2015 and the Node.js tools for VS.

    Probably clashing with your initial node installation.

    I went through my env variables. This is node-related paths I have in PATH.

    For System:

    C:\Program Files (x86)\nodejs\
    C:\Users\Cartman\AppData\Roaming\npm
    

    For my current user:

    C:\Users\Cartman\AppData\Roaming\npm
    

    I don't have any special node-related variables.



  • @Weng If there's nothing suspicious in PATH, my next step would be to try and step into the npm, see what's going on.

    The error is produced here:

    c:\Program Files (x86)\nodejs\node_modules\npm\lib\install.js

    function installManyAndBuild (deps, targetFolder, context, cb) {
      installMany(deps, targetFolder, context, function (er, d) {
        log.verbose("about to build", targetFolder)
        if (er) return cb(er)
        npm.commands.build( [targetFolder]
                          , npm.config.get("global")
                          , true
                          , function (er) { return cb(er, d) })
      })
    }
    

    Run npm like this:

    node --debug-brk /c/Program\ Files\ \(x86\)/nodejs/node_modules/npm/lib/npm.js
    

    Attach a debugger (eg. node inspector), and pause it at the point where it breaks.

    I'd rather not try to break my own node setup to try this, unless you're really stuck.


  • Garbage Person

    @cartman82 PATH setup matches (except my Node is x64 because FFS it's 2016 - it's been 13 years since the introduction of x64, and fiddling around with x64/x86 hybrid systems is the domain of WtfCorp)

    My Node is older (v0.10.35)
    My NPM is older (2.7.4)

    Those versions are the ones NodeBB's install guide explicitly pointed to, but let me try updating because why not.

    node 5.10.0 (Christ, do they use Chrome's version numbering system?)
    npm 3.8.3.

    Hey, we're gtting somewhere. The output is shoutier!

    C:\Users\Weng\Documents\GitHub\NodeBB-SQL>npm install nodebb-plugin-spam-be-gone

    npm WARN addRemoteGit Error: spawn git ENOENT
    npm WARN addRemoteGit at exports._errnoException (util.js:890:11)
    npm WARN addRemoteGit at Process.ChildProcess._handle.onexit (internal/child
    _process.js:182:32)
    npm WARN addRemoteGit at onErrorNT (internal/child_process.js:348:16)
    npm WARN addRemoteGit at _combinedTickCallback (internal/process/next_tick.j
    s:74:11)
    npm WARN addRemoteGit at process._tickCallback (internal/process/next_tick.j
    s:98:9)
    npm WARN addRemoteGit git://github.com/wzrdtales/simple-recaptcha.git#v1.0.0 re
    setting remote C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git-github-c
    om-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab because of error: { [Error: sp
    awn git ENOENT]
    npm WARN addRemoteGit code: 'ENOENT',
    npm WARN addRemoteGit errno: 'ENOENT',
    npm WARN addRemoteGit syscall: 'spawn git',
    npm WARN addRemoteGit path: 'git',
    npm WARN addRemoteGit spawnargs:
    npm WARN addRemoteGit [ '-c',
    npm WARN addRemoteGit 'core.longpaths=true',
    npm WARN addRemoteGit 'config',
    npm WARN addRemoteGit '--get',
    npm WARN addRemoteGit 'remote.origin.url' ],
    npm WARN addRemoteGit cmd: 'git -c core.longpaths=true config --get remote.ori
    gin.url' }
    npm ERR! git clone --template=C:\Users\Weng\AppData\Roaming\npm-cache_git-remot
    es_templates --mirror git://github.com/wzrdtales/simple-recaptcha.git C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git-github-com-wzrdtales-simple-reca
    ptcha-git-v1-0-0-ce1caeab:
    npm ERR! Windows_NT 6.1.7601
    npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\
    node_modules\npm\bin\npm-cli.js" "install" "nodebb-plugin-spam-be-gone"
    npm ERR! node v5.10.0
    npm ERR! npm v3.8.3
    npm ERR! path git
    npm ERR! code ENOENT
    npm ERR! errno ENOENT
    npm ERR! syscall spawn git

    npm ERR! enoent spawn git ENOENT
    npm ERR! enoent spawn git ENOENT
    npm ERR! enoent This is most likely not a problem with npm itself
    npm ERR! enoent and is related to npm not being able to find a file.
    npm ERR! enoent

    npm ERR! Please include the following file with any support request:
    npm ERR! C:\Users\Weng\Documents\GitHub\NodeBB-SQL\npm-debug.log

    So.
    C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes_templates exists and is empty
    C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git-github-com-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab exists and is empty.

    Doing this works fine:
    C:\Users\Weng\Documents\GitHub\NodeBB-SQL>git clone --template=C:\Users\Weng\App
    Data\Roaming\npm-cache_git-remotes_templates --mirror git://github.com/wzrdtal
    es/simple-recaptcha.git C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git
    -github-com-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab
    Cloning into bare repository C:\Users\Weng\AppData\Roaming\npm-cache_git-remote
    s\git-github-com-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab...
    remote: Counting objects: 64, done.
    remote: Total 64 (delta 0), reused 0 (delta 0), pack-reused 64
    Receiving objects: 100% (64/64), 8.11 KiB, done.
    Resolving deltas: 100% (32/32), done.



  • @Weng So now you know what's breaking

    npm WARN addRemoteGit Error: spawn git ENOENT
    

    I remember having this problem before at some point, but I forgot most of the details :/
    As far as I remember, your current shell has all the paths correctly configured, but node spawns some subprocess that doesn't have correct PATH for git, which is why it can't find it.

    Check PATH-s for git? Restart Windows?

    I have msys2 git, not the official install. If you have git for windows, maybe try running this from bash shell?


  • Garbage Person

    @cartman82 Don't have a working Bash setup, but I dropped into posh-git (basically a Git shell that lives in powershell) and ran npm install.

    And it worked.

    This whole toolchain is from outer fucking space. And that is not a compliment.


  • Garbage Person

    The best part is that I'll get to do this whole part again next weekend, when I build my new workstation. With added Windows 10 for excitement.


Log in to reply