Hello,
This is my 20th contribution to Node.js. I’m currently translating this project into Spanish, along with an awesome group of translators and moderators from Utopian + Da Vinci, we are doing our best to do everything correctly. If you are interested in open-source projects, I encourage you to keep reading.
Node.js is a very extensive project, it may seem impossible to translate it completely, but the Spanish team is working really and we are slowly making progress. It’s currently at 32% on Crowdin:
Repository
https://github.com/nodejs/i18n
Project Details
Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser. It achieves low latency and high throughput by taking a “non-blocking” approach to serving requests. Basically, Node.js can open, create, read, write, close and delete files on a server, using JavaScript. It also includes tasks that will be executed on certain servers.
I know it can be a bit confusing at first, so let me explain it to you in simpler words:
Let’s say you want to build a software to keep record of your company’s earnings. A feature where viewing your monthly earnings is updated live can be very useful. In that way, if one of your sales employees is busy, another employee could still be seeing the updates live, without reloading the page.
This has been done before using another technologies. However, Node.js is way faster and better. So, yes it is the best option for developers who want to build real-time applications where both the server and the client can exchange data freely with no restrictions.
Contribution Specifications
Being such an important project, Node.js is being translated to several languages so it can reach many people around the world. As it for me, I am contributing to the Spanish language.
Translation Overview
During this contribution I finally finished the folder buffer.md on v6. The Spanish team started to translate files of the v10, now we’re progressively moving to the version 6. Since I’m not a guru in computer science I had to read a lot before I could feel confident enough to translate the content of this folder, which is something you must regularly do while translating Node.js since it has many specific terms related to computer science.
buffer.md talks about the Buffer class and all of its functions inside Node.js. This time I translated the methods: buf.writeUInt8(value, offset[, noAssert]), buf.writeUInt16BE(value, offset[, noAssert]), buf.writeUInt32BE(value, offset[, noAssert]), buf.writeUIntBE(value, offset, byteLength[, noAssert]), buffer.INSPECT_MAX_BYTES, and buffer.kMaxLength. As well as the class SlowBuffer and its method new SlowBuffer(size).
In my previous contribution I explained how streams are basically a sequence of data (normally bytes) being moved from one point to another over time. Binary data is the only type of data that can be executed by a computer and it’s represented in combinations of ones and zeros. And a Buffer is a portion of the memory that stores a stream that's then collected and stored in variables inside the same Buffer.
So the Buffer class is basically a “waiting area” for information! When Node.js receives data that’s not ready to be processed yet it will send it to the Buffer and store it there until it’s ready.
I must say it feels very good to finish translating a Node.js folder, so I believe this deserves a celebration:
This time the SlowBuffer class caught my attention so I did my research and this is what I understood:
Please take into account that this class is currently deprecated.
Basically, Node.js provides two types of Buffer objects. While the object Buffer
is a JavaScript native structure, SlowBuffer
is implemented by a C++ module, therefore it costs extra CPU time to be executed (you can guess now why the class is called “slow”). This happens because it’s using C++ modules from the JavaScript environment.
SlowBuffers are separate chunks of memory, each with separate calls, and the object Buffer is a way of saving those calls.
I had to read many forums about this same subject. I tried to compile the information the best I could. In case you’re interested in reading programmers arguing, these some of the websites I visited:
Here is the original paragraph inside Node’s documentation:
And here is my translation:
After I finished the buffer folder I started to work on another one called “child_process”, also inside the version 6. This module has several purposes: it allows the user to access the Operating System functionalities by running any system command, as well as controlling the arguments to be passed to the underlying OS command.
The module child_process has three ways to create a child process: [child_process.spawn()][], [child_process.fork()][], [child_process.exec()]. They all return a ChildProcess instance and they implement the Node.js [EventEmitter][]
API, allowing the parent process to register listener functions that are called.
Since I only translated a small part of this folder this time I don’t want to go too deep because I will do it on my next contribution.
Here is the original paragraph:
And this is my translation:
Other translation samples:
English:
In many cases, however, the synchronous methods can have significant impact on performance due to stalling the event loop while spawned processes complete.
Spanish:
Sin embargo, en muchos casos, los métodos sincrónicos pueden tener un impacto significativo en el rendimiento debido al bloqueo del bucle de eventos mientras se completan los procesos generados.
English:
For convenience, the child_process module provides a handful of synchronous and asynchronous alternatives to [child_process.spawn()][]
and [child_process.spawnSync()][]
.
Spanish:
Por conveniencia, el módulo child_process proporciona un puñado de alternativas sincrónicas y asincrónicas para [child_process.spawn()][]
y [child_process.spawnSync()][]
.
Languages
Source Language: English
Translated Language: Spanish
I have worked as a translator for the project Da Vinci Polyglot and I am currently working as a language moderator for the Utopian + Da Vinci translation category.
And of course, I am part of the Spanish team!
Word Count
I translated 1109 words on this contribution.
Greetings, @marugy99. Thanks for submitting your contribution!
Applauses on this contribution!
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Chat with us on Discord
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for your review, @alejohannes! Keep up the good work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @marugy99!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey, @marugy99!
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit