× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Without meaning to sound rude to Aaron for a brave attempt - the answer is No it doesn’t.

Personally I know just enough about node.js and that whole world to have made a bit of sense out of it. But for your average Joe (or even above-average Joe) it doesn’t start far enough back. Just to give an example of the kind of thing I mean.


Kevin wanted to use a new NoSQL database (Google it if you don’t know what NoSQL is) called Redis.

In order to use that database from node.js he needed to install a package called hiredis. Think of a node.js package as the equivalent of a Service program containing all the necessary subprocedures to enable the database to be used.

Whereas on the IBM i we are used to installing things via GOLICPGM or simply by restoring a library etc. In the world of node.js the task of installing this kind of functionality is most often handled by a function known as Node Package Manager - or npm.

So to install the package Kevin used the command: ""npm install hiredis” which invokes npm and requests that it install hiredis via the internet. The details of how the internet connection is defined will remain a mystery for the time being.

Note that while you may be used to prompting (F4) on commands on IBM i, no such support is provided in PASE. You just have to learn the commands through osmosis and by decoding the error messages. Even when help is supplied it is often as incomprehensible as the command you are seeking help for. (That last bit is tongue in cheek).

Quite often packages such as hiredis use so-called “native” components. That is to say code that needs to be compiled on the target machine. It is for this reason that the IBM OS package includes tools such as GNU, Make, and GCC (that last one is a compiler - you can look the others up). The package includes all of the compiler commands needed to build the various components …

(( Cut to Aaron’t explanation of a CL build program ))


The point I’m trying to make is that you can’t explain jargon with more jargon. It has to be stated in the terms your target user is already familiar with. If learning all this stuff was easy for us old farts a lot more people would be grepping all over the place in the IFS and making far more use of PASE. The fact that so little use is made of what we already had _before_ this OSS stuff came along should have been a hint to IBM.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Jul 13, 2016, at 6:58 PM, Aaron Bartell <aaronbartell@xxxxxxxxx> wrote:

Since I am installing Group PTFs (aka waiting...) I will digress through
some of this and you can ask further questions.

First, what was Kevin Turner trying to accomplish? He wanted to install a
Node Package Module (npm) named hiredis(n1) so he could communicate from
Node.js to Redis, which is a NoSQL database that can run on IBM i (thanks
perzl). The "npm install hiredis" command Kevin was running is how you
install packages from the internet. This particular package has a "native"
component. When you see "native" that usually means the language
(Node.js/Ruby/PHP/Python) wasn't fast enough to do something (in this case
a faster parser, though I don't know what it's parsing; maybe JSON?) or it
wasn't worth rewriting something that already exists (i.e. encryption
algorithms). Because it had a native component (C/C++) it required a
compile. This necessitated a bunch more tools, like GNU Make and GCC. GNU
Make (gmake for short) is a tool that looks at a file named "Makefile" that
has instructions on how to create/make the project (like how we might put
together a CL program full of CRTRPGMOD and CRTSRVPGM commands). In
Kevin's scenario gmake was puking because it didn't like ~something~.
Well, we don't necessarily know what that something was in this case. What
we learned is we should ~never~ use QSH or QP2TERM for anything. We should
always STRTCPSVR *SSHD and ssh into the machine into a bash shell (which
IBM now ships with 5733OPS).

Hope that helps.

n1 - https://www.npmjs.com/package/hiredis

Aaron Bartell
litmis.com - Services for open source on IBM i


On Wed, Jul 13, 2016 at 5:33 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

"So, I get the thrust of what Tony is saying, but I also want to reassure
open source newbies that you don't HAVE to know C to participate fruitfully
in open source.”

I on the other agree fully with Tony _except_ I would replace “C” with
“Unixese” - I do know some C but have rarely found it necessary to
utilizing OS software. However the fact that everything is described in
assorted sub-dialects of Unixese _is_ a major inhibitor.

I try to follow some of the conversations on this list and frankly it is
putting me off trying a lot of the stuff. Take an extract from one of the
recent discussions on this list:

"OK thanks all - a little progress. I was now able to install ibm_db from
npm. However, node-gyp rebuild still fails for things like "hiredis". With
that gmake fails:

gmake: *** virtual memory exhausted. Stop.”

I guess it is English of sorts - but where the heck is one supposed to
start ?

Personally I’d like to see IBM make a lot more effort to make this stuff
comprehensible.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com


--
This is the IBMi Open Source Roundtable (OpenSource) mailing list
To post a message email: OpenSource@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/opensource
or email: OpenSource-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/opensource.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.