I've recently been down the NuPIC road from the MS side.  Here's where I
ended up.  (I realize it doesn't directly answer your questions, but if
somebody had handed me this info when I was looking at Docker containers,
it would have saved me a lot of time.)

1) NuPIC can now run natively on Windows.  It's very new and experimental,
but I'm doing it, and it works!  Someone at Numenta deserves a gold start
for doing this.

These instructions should get you a working environment:

https://github.com/numenta/nupic/wiki/Running-NuPIC-on-Windows

Notes:
A) Requires Python 2.7, 64-bit, make sure it's in your PATH
B) You don't need to setup the C++ compiler to run the python samples, as
the pip install will download a compiled version of the core libraries
C) Swarming requires the MySQL stuff to be setup.  That also works on
Windows.
D) You may need this bit for something...I forget what it was exactly
(maybe building the python code?... but you don't need to do that to run
the samples either).
"set USER=%USERNAME%"

Now, if you need to use NuPIC from another language (in my case, C#), this
is where things get interesting.

2) There's a web server here that you can hack up and do REST/JSON calls
against.

https://github.com/nupic-community/hitc

I've hacked it up and made a C# client that works (which I can try to
locate if you want), but ultimately I didn't settle on this approach, and
left the code in an unknown (but somewhere close to working) state.

https://github.com/erinloy/hitc

(There's also a project somewhere that uses RabbitMQ, but I think that it
was focused on anomalies, which wasn't what I was looking for at the time.)

3) I wrote a COM server that wraps the OPF bits.  It's usable from any
Windows app, and can be modified easily enough by starting with the IDL
file.  At some point, I plan to make it a little more configurable, and
publish my C# test code.  But it should give you an idea of what's
possible.

https://github.com/erinloy/nupic_bridge

4) At one point, I explored embedding the Python runtime in a .NET app via
Python.NET.  However, I ran into a number of issues related to that library
(doesn't seem to have been maintained for quite a while).  I had it working
at one point (after a lot of hacking), but ultimately decided it wasn't
worth the trouble, considering the COM server worked fairly well out of the
box.

5) I'm currently playing with htm.java [1], as it's closest to what I'm
used to on the C# side.  I recently gave up trying to access it using IKVM
[2], because it exposes a lot of newer conventions (observables and lambdas
and such) that don't translate well via that tool.  I might try putting a
simpler wrapper around it (as with the COM server) in order to facilitate
access.  If I come up with anything useful, I'll publish it.
[1] https://github.com/numenta/htm.java
[2] http://www.ikvm.net/

Hope this helps.

-Erin

On Sun, Feb 28, 2016 at 8:44 PM, rebolforces <[email protected]> wrote:

> Hi all,
>
> Two Questions ..
>
> Q1. Has anyone looked at porting to dotnetcore .
> https://dotnet.github.io/
>
>
> Q2. Is there a docker file setup with everything installed for the htm
> Engine tutorial? or how to for getting to it to run that way. (like there
> is for swarm)
>
>
> ---------------------
>
>
> Sadly as I mainly swim in MS waters, I am quickly out of my depth in the
> realms of linux & python when things go wrong.
>
> But I am learning… though the extra learning curve means time spent
> progressing with the Nupic is often chewed by installation issues
> (instructions seem to go out of date very quickly.
>
> for example if you currently go to the quickstart instructions box on the
> page at numenta.org with Ubuntu, it still has
> :$ pip install
> https://s3-us-west-2.amazonaws.com/artifacts.numenta.org/numenta/nupic.core/releases/nupic.bindings/
> *nupic.bindings-0.2.2-cp27-none-linux_x86_64.wh*”
>
> That should be pointing to the 0.40 bindings instead shouldn’t it?
>
>
> Cheers,
>
> Allen
>

Reply via email to