Open david-ragazzi opened 10 years ago
Hi David,
+1 on changing NTA into something more meaningful. I have a slight twist on your list:
Regards,
Fergal Byrne
On Tue, Apr 15, 2014 at 1:03 PM, David Ragazzi notifications@github.comwrote:
Ok, I hope this is not a controversial issue, but I feel that more people (experts and newbies) wish that the NTA acronym spread over the code was replaced to more intuitive and specific names.. (from my cristal ball, I guess that NTA could be an acronym for _N_umenTA, right?)..
Although is not an easy issue to be solved in a single step we can achieve this goal gradually.. I mean that we don't need a single PR but several minor PRs along time in order to avoid any throubles..
So if you agree with this improvement, I suggest the following changes which be made individually for each situation bellow:
1. $NTA envinroment variable:
As $NTA is the location of the Nupic release, I think a more intuitive name would be $NUPIC_RELEASE (until we discard fully env variables, of course).
2. nta namespace:
Nupic.Core uses the nta namespace in all CPP projects.. I think that we should use a name like Nupic.Core, in order to we have class names calls easy to follow like Nupic.Core.Region for example..
_3. NTA__ compiler flags*:
All of these flags are used in both Nupic and Nupic.Core projects.. So flags like NTA_INTERNAL could be renamed to NUPIC_INTERNAL, NTA_PLATFORM__to NUPIC_PLATFORM__, and so on..
4. nta folder:
In all CPP projects we have #include directives like #include <nta/algorithms/Region.hpp>.. If we rename this submodule folder we would have #include <nupic_core/algorithms/Region.hpp>.
Yes, I know this is a extensive issue and requires a lot of work, but I think if we solved it, we would avoid a lot of confusion which we seen until now..
— Reply to this email directly or view it on GitHubhttps://github.com/numenta/nupic/issues/811 .
Fergal Byrne, Brenter IT
Author, Real Machine Intelligence with Clortex and NuPIC https://leanpub.com/realsmartmachines
http://www.examsupport.iehttp://inbits.com - Better Living through Thoughtful Technology http://ie.linkedin.com/in/fergbyrne/ https://github.com/fergalbyrne
e:fergalbyrnedublin@gmail.com t:+353 83 4214179 Formerly of Adnet editor@adnet.ie http://www.adnet.ie
Hi @fergalbyrne I feel we should keep the "core" sub-division. On the contrary, how a newbie could distinguish Nupic.Region from Nupic.Cerebro or Nupic.Tools sub-projects? This sound weird.. Trust me.. So I strongly recommend keep these files grouped by the Core keyword (unless they have a more global scope like NTA_*
compiler flags, and are not specific from Core algorithms).. So I'm suggesting these names just for avoid any confusion!
@david-ragazzi I'm a bit confused. I thought we were moving in the direction of removing these variables altogether.
@david-ragazzi I'm a bit confused. I thought we were moving in the direction of removing these variables altogether.
Yes, but only the environment variables will be removed soon (rename $NTA to $NUPIC_RELEASE would be only in case if this process of removal get very slow).. The remain code still will contain compiler flags, include directives, folder names, etc, using NTA acronym..
Anyway, I updated the text related to $NTA env variable to avoid confusion..
Hi David,
In C++, there's only nupic.core, so there's no need to include core in the namespace. Nupic.Region etc is fine. If we wish to build new C++ stuff, it'll be in new namespaces like Nupic.Clients.Cerebro (or I'd prefer nupic.clients.Cerebro ie lowercase for namespaces, CamelCase for ClassNames).
I'm not religious on the issue, but it's easy to discuss now rather than after we've implemented the changes..
Fergal
On Tue, Apr 15, 2014 at 4:50 PM, David Ragazzi notifications@github.comwrote:
@DavidRagazzi https://github.com/DavidRagazzi I'm a bit confused. I thought we were moving in the direction of removing these variables altogether.
Yes, the env variables will be removed soon.. but the remain code still will contain components (compiler flags, include directives, folder names, etc) using NTA acronym..
— Reply to this email directly or view it on GitHubhttps://github.com/numenta/nupic/issues/811#issuecomment-40498613 .
Fergal Byrne, Brenter IT
Author, Real Machine Intelligence with Clortex and NuPIC https://leanpub.com/realsmartmachines
http://www.examsupport.iehttp://inbits.com - Better Living through Thoughtful Technology http://ie.linkedin.com/in/fergbyrne/ https://github.com/fergalbyrne
e:fergalbyrnedublin@gmail.com t:+353 83 4214179 Formerly of Adnet editor@adnet.ie http://www.adnet.ie
Yes, but only the environment variables will be removed soon (rename $NTA to $NUPIC_RELEASE would be only in case if this process of removal get very slow)..
In that case I suggest we just focus on the variable removal rather than rename and then remove. Both changes are backward incompatible changes, so each change will take some time even renaming. From me, :-1: on changing environment names right now.
:+1: on the idea of making the namespace clearer. I agree with @fergalbyrne - I would recommend just nupic
as well. In general I don't think we should create a deep hierarchy of name spaces - it gets awkward very quickly. We should try to keep it as flat as possible. Let's introduce more complexity only if we need it.
:+1: on the compiler flag changes.
:+1: 'nta' folder -> nupic
. Again I don't think we need nupic_core
.
@fergalbyrne wrote: nta folder => nupic folder, again no need for core.
@subutai wrote: 'nta' folder -> nupic. Again I don't think we need nupic_core
Guys, I still think it's interesting we use the same name of the nupic.core repo to keep the names aligned..
In the end, core
means CLA
, doesn't? For those that read the CLA white paper, it's very easy recognize nupic.core or nupic/core or nupic_core as the main algorithms while the remain code are support or client apps or whatever.
Please take a loot at my proposed default structure that aims to make nupic pip-instalable:
https://github.com/numenta/nupic/issues/809
Note that in the tree, CPP projects are separated from Python projects.. In the CPP sub-projects folder (/submodules
folder in root), we have a /nupic_core
folder that means "the core algorithms of nupic in CPP language".. In the Python projects that are spread over root, we have a /nupic/core
folder that means "the core algorithms of nupic in Python language".. But why /nupic/core
instead of /nupic
? Because we need a folder called /nupic
in root in order to distutils/pip know that folder is the main package and within this folder we would have core
as mentioned and regions
subfolder.. If we adopt nupic as global name as you are sugesting, we would have a folder or module with the /nupic/nupic
namespace/path.. Is this ok for you?
@david-ragazzi What do you think the status of this ticket is now?
@david-ragazzi What do you think the status of this ticket is now?
Sorry, @rhyolight .. Now I see your message.. Its status is "paused". Each item on this PR requires changes throughout repositories.
nta namespace and folder need to be done at the same time. Otherwise, :+1: from me.
Looks like # 3 in the description is the last one that needs work. I'm going to mark this under-review
until someone creates a subtask for that issue.
Ok, I hope this is not a controversial issue, but I feel that more people (both experts and newbies) wish that the
NTA
acronym spread over the code was replaced to more intuitive and specific names.. (from my cristal ball, I guess thatNTA
could be an acronym for NumenTA, right?)..Although is not an easy issue to be solved in a single step we can achieve this goal gradually.. I mean that we don't need a single PR but several minor PRs along time in order to avoid any throubles..
So if you agree with this improvement, I suggest the following changes which be made individually for each situation bellow:
$NTA
envinroment variable (solved by https://github.com/numenta/nupic/pull/917):As
$NTA
is the location of the Nupic release, I think a more intuitive name would be$NUPIC_RELEASE
. Anyway, as we make Nupic a pip-instalable package (https://github.com/numenta/nupic/pull/813), we'll discard environment variables.. So maybe we don't need create a PR for this (unless this removal process get slow).nta
namespace (solved by https://github.com/numenta/nupic/pull/1568 and https://github.com/numenta/nupic.core/pull/243):nupic.core
uses thenta
namespace in all CPP projects.. I think that we should use the namenupic
, in order to we have class names calls easy to follow likenupic.region
for example..NTA_*
compiler flags and and internal elements:All of these flags are used in both Nupic Python and Nupic C++ projects.. So flags like
NTA_INTERNAL
could be renamed toNUPIC_INTERNAL
,NTA_PLATFORM_*
toNUPIC_PLATFORM_*
, and so on..nta
folder (solved by https://github.com/numenta/nupic/pull/1568 and https://github.com/numenta/nupic.core/pull/243):In all CPP projects we have #include directives like
#include <nta/algorithms/Region.hpp>
.. If we rename this folder we would have#include <nupic/algorithms/Region.hpp>
.Yes, I know this is a extensive issue and requires a lot of work, but I think if we solved it, we would avoid a lot of confusion which we seen until now..
Update:
I removed
.core
extension in the namespaces.