15 ms·
New MySpace done with Node + Express
- deleted 14y ago[deleted]
- tferris 14y agoWondering how many startups are on Node nowadays
- camus 14y agoA lot ! i bet as much as startup using python or ruby as their backend. NodeJS is not for everything so it would be interesting to know how they use it. I'll be curious about what their persistance layer is too. I like the new interface , it's cleaner that it has ever been , BUT if i get pushed too much spammy stuffs i'll quit. Right now i dont see why i should use that, all my connections are gone ...
- jmspring 14y agoNodeJS and Python Twisted have a commonality in terms of async development. If you are wanting to stick with "one" language for both server and client-side, then Node is a good choice.
- prezjordan 14y agoWhen does sharing code between the client and server actually happen? I can't think of any use-cases.
- va9 14y agoNot sure though. But top of it you would probably use backbone.js in both server and client. Another advantage is we have UI developers who are now writing server code to be much more. To some level it is giving a path way for one language everywhere paradigm. However, server side coding required much more capabilities like performant code, scaling etc., but for normal websites it is easy to go with node as it kills some amount learning curve.
- untog 14y agoMy situation was different to this, but when sharing C# between a backend server and an iPhone app I found it tremendously useful to use the same models, and just JSON encode/decode them to transmit between the two.
- dpup 14y agoOff the top of my head: Data types - Both concrete classes or helpers for manipulating data. Input Validation - Do it client-side to do it fast, but double check on the server. Formatting - Larger web apps often need to format things from dates to users to numbers on client-side generated data without the server hop. Templates - Many templating systems are compatible with multiple languages, but its easier if there's just one output type.
- deoxxa 14y agoVery, very rarely. Along with "now you can get your frontend developers to write backend code!", it's one of those oft-cited but spectacularly bad reasons to start using JavaScript for non-client stuff. In saying this, I use node for a heck of a lot at work, but that's mostly because some of the workflows available (streams and events specifically) are perfectly suited to the programs I write in it; not because it lets jQuery monkeys crank out substandard backend code.
- coenhyde 14y agoI just built and launched https://popbasic.com/ https://popbasic.com/. It shares the router, controllers, actions and templates between the client and server. I have the "frontend" that runs client and server which then talks to an api. It works pretty good because i can serve out a full page request (good for SEO and fast load times) then boot the same application on the client so subsequent navigation is fast.
- bdcravens 14y agoEven if never, the idea is to reuse skills, not code. (In the same way that you reuse little code from Rails apps when build Chef recipes) That's not entirely true - you can reuse some libraries between client and server-side: underscore's utility functions are the underpinning for many node modules, sizzle and jQuery is great for DOM parsing when writing screen scrapers, etc. There's browserify if you want to run node modules in the browser.
- rdwallis 14y agoThere are tons and tons of use cases for sharing code between server and client. Why would you want to write things twice? The only reason it is not more common is that programming is generally done in different languages on the server and client. I built an ebook reader that can process ebooks in javascript. Because IE does not support the File API the server needs to pick up the slack when users are on that browser. Sharing code means I don't need to program two versions and I only have to patch bugs once. It's also common to share validation code. This allows you to check data client-side and then again once it reaches the server using the same code.
- deleted 14y ago[deleted]
- untog 14y agoA lot (and I code in it day-to-day) but part of me actually wonders why. Node is great for websocket-type, async operations. As a normal web server, serving pages? I feel as though other platforms might work better.
- tferris 14y agoI just signed up: - extremely well designed form fields when signing up (kind of plain, reduced and flat but more colourful than Metro) - in general very clean, subtle UI/design - low latency, responsive servers, feels snappy Well done (from a webdev perspective, don't know if MySpace has still a valid use case but I read that it should be more like Spotify now) EDIT: after playing around a bit I have to stress again how responsive the site feels => ultra low server response times EDIT2: when watching a video and surfing around, the video stays as a small inscreen window on the screen
- jonathanjaeger 14y agoLove the typography and the aesthetic, but the horizontal scrolling is killing me. I just can't get into it.
- jmcdonald-ut 14y agoThat's how I feel. Design wise it's a great website, but I don't like the feel of horizontal scrolling.
- deleted 14y ago[deleted]
- adamors 14y agoThe password reset page is still vomit inducing though https://www.myspace.com/auth/resetpassword/# https://www.myspace.com/auth/resetpassword/#
- ErikAugust 14y agoI think Express will make me take a leap into Node.
- nobleach 14y agoThere is plenty of hate here and on Reddit for Node. My experience was fairly painless. My unit tests ran incredibly fast... that was such a relief coming from JRuby/Ruby. Otherwise, the language does feel a bit constraining. If you've done plenty of work in JS though, it's not bad to get into. I really loved Express.js for the project I did.
- pacomerh 14y agoOk, everytime I read about Node it's usually made clear that is perfect for websocket type of apps that can network and have multiple users interacting between each other. So, in this case Myspace, seems to me like a regular app/site that does normal operations. So, Hopefully someone can explain to me if Node is also being considered as a replacement to the popular backend languages to build regular sites?.
- dangrossman 14y agoIt can be. Have you tried Trello, Geekli.st, Klout, Prismatic or Clipboard? They're all Node too. It's had frameworks for developing web applications for some years now.
- jaytaylor 14y agoCiting all those projects as Node successes may be flawed -- several of them are largely considered to be engineering failures.
- dangrossman 14y agoNobody said anything about successes. The question was whether anyone was building regular websites (as opposed to just websocket/API stuff) with node.
- jaytaylor 14y agoFair enough.
- pacomerh 14y agoThats great , its been several days since I posted this question and based on these great answers I decided to start learning it, so far so good. I got the book "node.js applications with mongo.db and backbone.js" , since I have messed with mongo and php before, seemed like a good idea.
- aroman 14y ago
- trimbo 14y agoSo they rewrote it in ASP.NET[1] and now rewrote it again in Node? Can someone explain to me how this helps their business? [1] - http://highscalability.com/myspace-architecture http://highscalability.com/myspace-architecture
- citricsquid 14y agoThe Myspace you're referencing to is not the current Myspace. The company was bought for $35 million in 2011 by Specific Media and Justin Timberlake. Same brand, different product. http://online.wsj.com/article/SB10001424052702304584004576415932273770852.html http://online.wsj.com/article/SB1000142405270230458400457641...
- jondot 14y agoWhat is really interesting to me is how are they doing persistence. Node and SQLServer? Sounds very harsh. MongoDB? does that run on Azure? My bet - their Node servers proxy to the old servers via dedicated API for data. Node should be fine at doing these requests due to its async nature. Even when you run with Express, to build such a feat requires a TON of infrastructure (did you notice the X-Tracking, X-Response, etc headers?). Much of the open source/public infrastructure in the Node ecosystem feels raw (example: loggers. did you see how many loggers there are? do you think they're production worthy?). Though I would accept this and fix whatever I can (took me a while to find a proper hierarchical logger that is also async, for example), I find it hard to grasp how Microsoft would. This makes me assume they built everything from scratch.
- benmccann 14y agoMongoDB does run on Azure.
- jondot 14y agoThanks. Without getting into FUD - I have my own MongoDB battle scars as it is on Linux. I can't imagine running it on Windows, sounds like I'd be very lonely should any problem arise there.
- tga 14y agoNode and SQL Server aren't as far from each other as you might think. In its latest mood swing, Microsoft is actually promoting Node. Look at WebMatrix, their simplified web development tool, I was surprised to see that it supports Node: http://www.microsoft.com/Web/webmatrix/node.aspx http://www.microsoft.com/Web/webmatrix/node.aspx Same goes for Azure: http://www.windowsazure.com/en-us/develop/nodejs/ http://www.windowsazure.com/en-us/develop/nodejs/
- jondot 14y agoDidn't say they're far from each other, of course it may be possible. I'm also aware of Microsoft's support for Node and Azure, and their contributions to Node. Last time I wanted to integrate postgres with Node, I had flashbacks of myself, 10 years ago, building an ORM before ORMs were that hip - this is true for any of the impedance mismatch offered by taking an RDBMS and plugging it with Node. I think there's something with using stores such as MongoDB with Node that feels very right, almost essential.
- arrowgunz 14y agoTJ Holowaychuk ftw!
- tferris 14y agoWell said. TJ is basically one of those who's pushing Node and its ecosystem to the max -- this guy is brilliant.