Ah life…

So the joys of life have yet again taken over and not given me nearly enough time to really focus on anything.  I’ve been able to slowly figure out what I want to use as the full stack, which is not what I originally had thought of.  Many reasons come into play in this decision, including:

  1. History – While using something like MongoDB, CouchDB, or anything similar to that has become the newer thing to use, I have decided to pick a SQL based one.  Now honestly it will be up to the end user to decide which they would rather have, but I will be using MySQL.  However, using SQLAlchemy will offer the ability to use any of these dialects, Firebird, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SQLite, Sybase.  I want to make sure that I am able to offer the ability for people to use which database they perfer.
  2. Future Proof – So after messing with NodeJS for back-end, and other little utilities, I have come to realize that I like using it, but hate trying to do back-end with it for some reason.  I believe part of my problem is the super fast changing world of Node and NPM that causes me to actually be put off by it.  Since I started we have already had a new SQL library come into play called Knex that offers great features, but yet again isn’t even Version 1.0 yet.  These are the ever changing area of Node/NPM that causes me to not want to use it as much.
  3. Data data everywhere – I have a fondness for Data, including Big Data, and recently a big look at the world of Fintech.  This has brought me the decision to use Python, and more importantly, Python 3.6.1.  While I know not everyone has this, I feel that in the end it won’t be a bad decision.  Python has some of the best libraries to deal with data and data crunching, as being one that is currently helping with an ERP system conversion, Data is King.  Seeing all the Data and what some areas are doing with that data to manipulate it is very impressive.
  4. Ease of use – Python also offers huge amounts of ease of use.  While some of the documentation for Python Libraries isn’t always the best, I feel that I can deal with it and learn when I need to.  Being able to write fewer lines also means that I can get a MVP/Prototype of the Login/Dashboard/Plugin System to work the way I want.

Those are just some of the reasons why I am going towards Python/SQL based for the back-end of the system now.  This still brings up the front end.  This is always where I get so confused lately on what to use, React, Angular, Vue or something totally different.  This, like Node/NPM, has turned my thoughts way too many times on what to use and to find an answer will not be easy.

This system in the end will offer the initial Login/Dashboard/Plugin System.  This will then be extended by how the end user will want to use it.  Maybe a user wants to just use it as a CRM, they can, or Inventory tracking/POS, they can.  This is the dream of mine and feel it should be something that can be done.  My initial work will be done with Inventory Management/POS system.  This is what my wife has been wanting to see to track items in the home, at least the Inventory Management.

All this will be a lot of work as I’m not the most experienced in Python yet, but want to learn as much as possible.  With this, I am going to go into Pyramid.  While I’ve never used it, from reading everything that their site shows, it is exactly what I need.  Something to allow the beginning to be easier but allow for the expand-ability that is needed.  Everything they say fits what I want, so mine as well bite the bullet and try it.  Well that is a slight update on what I’ve been thinking of.

And just as a reminder, I am not a writer so these thoughts are just thrown out there and put into this.  Most times, I honestly don’t even reread what I write 🙂 but that’s OK to me.  This has been more of a prototype blog setup, to allow me to just throw thoughts and ideas down on something.  Once I begin doing the programming, I may end up making an additional spot to be able to put better posts that have had time and thought more put into them.

Now the last part is, the name, for now I will keep EDEN as the code name, however in the end I may figure out something new.  Been thinking of that along with the fact that I have the newer logo to use.

 

EDIT:  Well here is a prime example of why I’m staying away from Typescript/Node for right now, https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/ another new version of typescript, too hard to keep up with it, Python is pretty stable and slower to update major things.  Sure Typescript has great features and I agree with them a lot, but it just is changing too much.

A Slight Delay/Business Name

So yesterday ended up being way busier than I had expected it to be.  This ended up delaying me starting much of anything yesterday.  I am going to be taking my logo and redoing it slightly to reflect some of the changes I’m thinking of.  Included in this is switching from Intrik8 to something new, got a few choices including:

  1. Shangrila
  2. Eden
  3. Utopia
  4. Arcadia
  5. Or Something else (Willing to take opinions.)

Well that is all for now.  Time to get ready to head to work.

Almost time

Well to begin, wow I haven’t posted in almost a month.  Life has been busy between both kids getting sick, end of school work, wife and I being sick on and off and just a super busy work schedule that I haven’t been able to focus on much programming, other than work and school, or much of anything.  However, I have had time to do random research on many aspects that will help me out.

To begin, I will be prototyping out the project with Python and Django.  Yes Django maybe a bit of overkill for some things, but I am going to use it as a good way to prototype things out, including ideas and processes.  This will be probably also an initial release like this to figure out aspects that can be changed or updated.  It will still be a core, dashboard, and plugin style system.

This then will become a project I will slowly replace with something I have thought long and hard about, GoLang.  While I’ve thought about it for quite awhile to figure out, between Java, C++, Rust, GoLang, and a few others.

To begin, I did look at Java, mainly because I have done a decent amount of Java.  Problem I kept finding with Java is having to use the JVM and people needing to install Java to use that, it made me shy away from it even though it is a good enterprise thing to do.  Along with that is the popularity of it is not as great as it used to be.

Next is C++, well what can I say about C++ that many people already don’t complain about.  The Segfaults that can be made, the garbage collection that needs to be done, the base really doesn’t have much so you are dependent on many other libraries, including things like Boost, which can be big.  And yet again, from many of the indexes, C++ is not as widely used, unless it is for firmware and such, as it used to be.  A huge plus is that this is a systems language, however there are many, personally, better systems languages now out there.

Now Rust.  I don’t know much about it but many people love the language.  Some of the syntax seems a bit odd to get used to but it seems to be a good language.  Part I’m afraid of comes with it being a fairly new language, it maybe hard to really get it going, true it has Mozilla backing it which is great to see.  This being a systems language is another great feature.

Now comes GoLang.  This is something I keep thinking about and going back and forth on.  GoLang has the backing of Google and was solely made because they hated how C++ was and wanted something that could take advantage of today’s technology.  Along with this is a huge focus on concurrency.  This allows for effective applications. There are a few other features that looked interesting in GoLang that originally I was a bit put off by but the more I’ve thought about it and begun my Software Development career I’ve noticed can be helpful.

So I will start by creating the prototyping in Django and Python to get something that is effective and MVP type or product.  Once I am in need of a faster, lower impact project, I will begin to work on version two which will goto GoLang, well it may not be a “true” version two, but you get the idea.  I figure this lets me iron out ideas and get a better handle on the process of making a plugin system/module system and to be able to learn more about making a true production style web application.  Django is also something that I’ve meant to use for building other websites if I need them, including my own website which will connect to EDEN in the end.  This will all begin to be something I will work on once the last little bit of schooling is done.

Time to organize

So I decided to bring things back to the basics.  I am going to focus on getting documents ready as templates for business usage.  These will be the typical SDLC documents.  While I know Agile is the “Thing”, but I feel it isn’t the best for the initial project.  So, to explain, I will be doing the following documents:

  1. Statement of Work (SOW)
  2. Project Plan
  3. Quality Plan
  4. Test Plan
  5. Requirements Specification
  6. Minutes of Meetings (unknown if really needed)
  7. Use Case
  8. Requirement Traceability Matrix
  9. Design Document
  10. Report Design
  11. Code Review
  12. Test Case
  13. Test Result
  14. Finally Delivery Notes

This will involve a good amount of work but in the end will be helpful for when I do software projects.  A nice sweet short post about what I will be working on.

Step 2…maybe…

Well I am going to be starting to get the “design” of the project in place.  I’m using my old project from my Information Systems Design class and starting to modify it as I need.  I figure this would be a good way to start as a base, seeing I’m not much of a design person.  Also did some watching of Devtips on youtube, great channel that has a 12 hour start to finish process that he used to get his site designed and up, including the use of gulp, which I’m thinking about using for my build process.

Organizing myself to focus on a certain thing during my process seems to be my biggest issue, I go back and forth many times on where to begin, and remember my class that taught about mocking/designing up the project first before getting into the guts of it.  So I’m going to be using that design to start, changing colors to more colors closer to my logo that I created and begin to convert it to SASS and also away from bootstrap, which it uses at this point.  I feel like there are many better ways of making a layout without using bootstrap and I really want to learn how to do that.

Also last night worked on getting my Linux VM going with PPAs for each of the programs I will be using, including Node, Mongo, and Atom.

Another day gone…

Well, I thought was going to be able to work on more last night…my plans however drastically changed.  Ended up feeling sick last night so went to bed fairly early.  Really did enjoy the extra sleep, but now feel like I’m a bit farther behind than I already was..ugh.

I’m still working on the README.md and getting a directory structure lined up.  Trying to stay MVC as possible.  Work been a mess so trying to have energy to work on things is hard, motivation is down.    I’m hoping tonight and this weekend are full of working on many things.  Got the house to myself Friday and Saturday, so I am hoping to get tons of school work done, and also be able to work on the initial core of Nikola.  I feel like I have a ton already set up for the documentation so far.  Will be adding as I go, want these to be living documents that I can modify at will.

So tonight, I think I am going to modify the documentation a bit more, check over the mind map, get myself some form of basic requirements.  Want to get the ball rolling on this project so that I can use it at home, and allow others to use it.  Will fully be use at own risk for awhile until I feel enough has been done and fixed.  I need to figure out a good way to install the plug-ins, most likely will be a form of revision control that “checks it out” from a repo (downloads).  Also thought about using tar.gz files for a way of compressing it more, less bandwidth and just would involve un-tarring into it’s directory that is needed.  Oh well more random thoughts and extra features that I want to make.