Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
Initial blog source
Exported from WP and cleaned up a bit.
  • Loading branch information
isaacs committed Jun 21, 2012
1 parent c6f7fd7 commit ddf52bd
Show file tree
Hide file tree
Showing 28 changed files with 1,460 additions and 0 deletions.
28 changes: 28 additions & 0 deletions doc/blog/README.md
@@ -0,0 +1,28 @@
title: README.md
status: private

# How This Blog Works

Each `.md` file in this folder structure is a blog post. It has a
few headers and a markdown body. (HTML is allowed in the body as well.)

The relevant headers are:

1. title
2. author
3. status: Only posts with a status of "publish" are published.
4. category: The "release" category is treated a bit specially.
5. version: Only relevant for "release" category.
6. date
7. slug: The bit that goes on the url. Must be unique, will be
generated from the title and date if missing.

Posts in the "release" category are only shown in the main lists when
they are the most recent release for that version family. The stable
branch supercedes its unstable counterpart, so the presence of a `0.8.2`
release notice will cause `0.7.10` to be hidden, but `0.6.19` would
be unaffected.

The folder structure in the blog source does not matter. Organize files
here however makes sense. The metadata will be sorted out in the build
later.
@@ -0,0 +1,16 @@
title: An Easy Way to Build Scalable Network Programs
author: ryandahl
date: Tue Oct 04 2011 15:39:56 GMT-0700 (PDT)
status: publish
category: Uncategorized
slug: an-easy-way-to-build-scalable-network-programs

Suppose you're writing a web server which does video encoding on each file upload. Video encoding is very much compute bound. Some recent blog posts suggest that Node.js would fail miserably at this.

Using Node does not mean that you have to write a video encoding algorithm in JavaScript (a language without even 64 bit integers) and crunch away in the main server event loop. The suggested approach is to separate the I/O bound task of receiving uploads and serving downloads from the compute bound task of video encoding. In the case of video encoding this is accomplished by forking out to ffmpeg. Node provides advanced means of asynchronously controlling subprocesses for work like this.

It has also been suggested that Node does not take advantage of multicore machines. Node has long supported load-balancing connections over multiple processes in just a few lines of code - in this way a Node server will use the available cores. In coming releases we'll make it even easier: just pass <code>--balance</code> on the command line and Node will manage the cluster of processes.

Node has a clear purpose: provide an easy way to build scalable network programs. It is not a tool for every problem. Do not write a ray tracer with Node. Do not write a web browser with Node. Do however reach for Node if tasked with writing a DNS server, DHCP server, or even a video encoding server.

By relying on the kernel to schedule and preempt computationally expensive tasks and to load balance incoming connections, Node appears less magical than server platforms that employ userland scheduling. So far, our focus on simplicity and transparency has paid off: <a href="http://joyeur.com/2011/08/11/node-js-meetup-distributed-web-architectures/">the</a> <a href="http://venturebeat.com/2011/08/16/linkedin-node/">number</a> <a href="http://corp.klout.com/blog/2011/10/the-tech-behind-klout-com/">of</a> <a href="http://www.joelonsoftware.com/items/2011/09/13.html">success</a> <a href="http://pow.cx/">stories</a> from developers and corporations who are adopting the technology continues to grow.
25 changes: 25 additions & 0 deletions doc/blog/Uncategorized/development-environment.md
@@ -0,0 +1,25 @@
title: Development Environment
author: ryandahl
date: Mon Apr 04 2011 20:16:27 GMT-0700 (PDT)
status: publish
category: Uncategorized
slug: development-environment

If you're compiling a software package because you need a particular version (e.g. the latest), then it requires a little bit more maintenance than using a package manager like <code>dpkg</code>. Software that you compile yourself should *not* go into <code>/usr</code>, it should go into your home directory. This is part of being a software developer.

One way of doing this is to install everything into <code>$HOME/local/$PACKAGE</code>. Here is how I install node on my machine:<pre>./configure --prefix=$HOME/local/node-v0.4.5 &amp;&amp; make install</pre>

To have my paths automatically set I put this inside my <code>$HOME/.zshrc</code>:<pre>PATH="$HOME/local/bin:/opt/local/bin:/usr/bin:/sbin:/bin"
LD_LIBRARY_PATH="/opt/local/lib:/usr/local/lib:/usr/lib"
for i in $HOME/local/*; do
[ -d $i/bin ] &amp;&amp; PATH="${i}/bin:${PATH}"
[ -d $i/sbin ] &amp;&amp; PATH="${i}/sbin:${PATH}"
[ -d $i/include ] &amp;&amp; CPATH="${i}/include:${CPATH}"
[ -d $i/lib ] &amp;&amp; LD_LIBRARY_PATH="${i}/lib:${LD_LIBRARY_PATH}"
[ -d $i/lib/pkgconfig ] &amp;&amp; PKG_CONFIG_PATH="${i}/lib/pkgconfig:${PKG_CONFIG_PATH}"
[ -d $i/share/man ] &amp;&amp; MANPATH="${i}/share/man:${MANPATH}"
done</pre>

Node is under sufficiently rapid development that <i>everyone</i> should be compiling it themselves. A corollary of this is that <code>npm</code> (which should be installed alongside Node) does not require root to install packages.

CPAN and RubyGems have blurred the lines between development tools and system package managers. With <code>npm</code> we wish to draw a clear line: it is not a system package manager. It is not for installing firefox or ffmpeg or OpenSSL; it is for rapidly downloading, building, and setting up Node packages. <code>npm</code> is a <i>development</i> tool. When a program written in Node becomes sufficiently mature it should be distributed as a tarball, <code>.deb</code>, <code>.rpm</code>, or other package system. It should not be distributed to end users with <code>npm</code>.
34 changes: 34 additions & 0 deletions doc/blog/Uncategorized/evolving-the-node-js-brand.md
@@ -0,0 +1,34 @@
title: Evolving the Node.js Brand
author: Emily Tanaka-Delgado
date: Mon Jul 11 2011 12:02:45 GMT-0700 (PDT)
status: publish
category: Uncategorized
slug: evolving-the-node-js-brand

To echo <a href="http://nodejs.org/">Node</a>’s evolutionary nature, we have refreshed the identity to help mark an exciting time for developers, businesses and users who benefit from the pioneering technology.

<strong>Building a brand</strong>

We began exploring elements to express Node.js and jettisoned preconceived notions about what we thought Node should look like, and focused on what Node is: <strong>kinetic</strong>,<ins cite="mailto:EMILY%20TANAKA-DELGADO" datetime="2011-07-09T18:32"></ins><strong>connected</strong>, <strong>scalable</strong>, <strong>modular</strong>, <strong>mechanical</strong> and <strong>organic</strong>. Working with designer <a href="http://www.chrisglass.com">Chris Glass</a>, our explorations emphasized Node's dynamism and formed a visual language based on structure, relationships and interconnectedness.

<img class="alignnone size-full wp-image-184" title="grid" src="http://nodeblog.files.wordpress.com/2011/07/grid.png" alt="" width="520" height="178" />

Inspired by <strong>process visualization, </strong>we discovered pattern, form, and by relief, the hex shape. The angled infrastructure encourages energy to move through the letterforms.

<img class="alignnone size-full wp-image-185" title="nodejs" src="http://nodeblog.files.wordpress.com/2011/07/nodejs.png" alt="" width="520" height="178" />

This language can expand into the organic network topography of Node or distill down into a single hex connection point.

This scaling represents the dynamic nature of Node in a simple, distinct manner.

<img title="Node.js network" src="http://joyeur.files.wordpress.com/2011/07/network.png" alt="" width="560" height="270" />

We look forward to exploring<ins cite="mailto:EMILY%20TANAKA-DELGADO" datetime="2011-07-09T18:30"> </ins>this visual language as the technology charges into a very promising future.

<img title="Node.js nebula" src="http://joyeur.files.wordpress.com/2011/07/node.png" alt="" width="560" height="460" />

We hope you'll have fun using it.

To download the new logo, visit <a href="http://nodejs.org/logos/">nodejs.org/logos</a>.

<ins cite="mailto:EMILY%20TANAKA-DELGADO" datetime="2011-07-09T18:32"><img title="Tri-color Node" src="http://joyeur.files.wordpress.com/2011/07/tri-color-node.png" alt="" width="560" height="180" /></ins>
12 changes: 12 additions & 0 deletions doc/blog/Uncategorized/growing-up.md
@@ -0,0 +1,12 @@
title: Growing up
author: ryandahl
date: Thu Dec 15 2011 11:59:15 GMT-0800 (PST)
status: publish
category: Uncategorized
slug: growing-up

This week Microsoft announced <a href="https://www.windowsazure.com/en-us/develop/nodejs/">support for Node in Windows Azure</a>, their cloud computing platform. For the Node core team and the community, this is an important milestone. We've worked hard over the past six months reworking Node's machinery to support IO completion ports and Visual Studio to provide a good native port to Windows. The overarching goal of the port was to expand our user base to the largest number of developers. Happily, this has paid off in the form of being a first class citizen on Azure. Many users who would have never used Node as a pure unix tool are now up and running on the Windows platform. More users translates into a deeper and better ecosystem of modules, which makes for a better experience for everyone.

We also redesigned <a href="http://nodejs.org">our website</a> - something that we've put off for a long time because we felt that Node was too nascent to dedicate marketing to it. But now that we have binary distributions for Macintosh and Windows, have bundled npm, and are <a href="https://twitter.com/#!/mranney/status/145778414165569536">serving millions of users</a> at various companies, we felt ready to indulge in a new website and share of a few of our success stories on the home page.

Work is on-going. We continue to improve the software, making performance improvements and adding isolate support, but Node is growing up.
14 changes: 14 additions & 0 deletions doc/blog/Uncategorized/jobs-nodejs-org.md
@@ -0,0 +1,14 @@
title: jobs.nodejs.org
author: ryandahl
date: Thu Mar 24 2011 23:05:22 GMT-0700 (PDT)
status: publish
category: Uncategorized
slug: jobs-nodejs-org

We are starting an official jobs board for Node. There are two goals for this

1. Promote the small emerging economy around this platform by having a central space for employers to find Node programmers.

2. Make some money. We work hard to build this platform and taking a small tax for job posts seems a like reasonable "tip jar".

<a href="http://jobs.nodejs.org">jobs.nodejs.org</a>

0 comments on commit ddf52bd

Please sign in to comment.