Join me and other HTM enthusiasts for this month’s HTM Hackers’ Hangout this Friday at 5PM UTC (that’s 10AM California time). This is a different time than usual! So mark your calendars if you want to join in.
Anyone with a Google account can join the hangout and chat with use live, or you can just watch it from the G+ page I linked above. As always, the event will be saved on the HTM Hackers’ Hangouts playlist.
I’ll be addressing some of the discussions that have been going on here on the forum, including:
As always, I will post a link here and on the G+ page about 10 minutes before the event starts where you can join the hangout.
Reminder, this online hangout is happening in 1 hour.
If you manage to get to 1.0, I’ll take a look at doing JNI bindings for Android.
@Paul_Lamb Hey Paul, Isn’t that the opposite?
Doesn’t Android translate to a JVM (Dalvik specifically or later OpenJDK now that they’re switching over?) core, and not a C++ core? I thought we were talking about interfacing to the C++ core by wrapping it with another language - not the other way around? Though that would be interesting to have a Python or C++ wrapper around HTM.Java?
Android JNI can be used for bi-directional communication between java and native libraries. I am suggesting providing Java bindings in Android’s java-based API for access to the native nupic core libraries. I did something very similar to this when I built Mupen64Plus AE (JNI bindings to native core Mupen64Plus, allowing a mobile front-end). In this case, HTM could be incorporated into mobile apps, which would be pretty awesome. Something similar can be done in iOS (that is a different binding of course)
I understand that. But in this case, what is the native library you’re speaking of? nupic.core is C++ which doesn’t compile down to either Android or iOS machine code? <— That’s a question, by the way
For Android, using the NDK, C++ is compiled into ARM, x86, MIPS, etc binaries (.so libraries). These are packaged into the APK, and are accessed on the Java side via the JNI bindings. The process is similar for iOS (except not Java in that case).
EDIT – of course any OS - specific code (UI’s namely) would not compile in the NDK. I am assuming that the nupic core (or a core component of it) is a headless library with no UI (or at least minimal and isolatable with precompiler conditions).
Why compile nupic.core on Android when you can just run HTM.Java straight? (I assuming though haven’t tested it) - for iOS it might make sense though…?
Main reason would be memory limitations. This is an Android - specific problem. The Java elements of each app are allotted a limited amount of memory. Native libraries, on the other hand, have access to a lot more memory (can be abused and trigger background apps to close, slow down the phone, and get you bad ratings, but useful for memory - intensive applications).