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.

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.

The fork in the road…

While I know the beginning I should be focused on most of my design aspects more than the rest of my project, I have come to something in the design that I am still a bit worried on my choices. I am working on my initial design and requirements and some user stories to begin with.
To begin, I have totally made my choice on my front end, this will be Angular 2, or whatever they want to call it now. This will involve a bit of work seeing they are using Typescript now which I don’t fully know, but do know JavaScript.
Next comes the database, this will be a SQL based database. While I do enjoy Mongo, I don’t know how much I’d like it for what I want to do. Along with this I am comfortable with SQL way of doing things.
So my biggest issue comes into play of choice for back-end. This will be between using something like Flask/WSGI and Python, ExpressJS and Typescript, or PHP and maybe Laravel(?).
A few things are part of what I want are easy to program, easy to maintain, and easy to deploy. While I know these should be always something on everyone’s mind when they work with a major project, I want it do be something that is great for a small business and the easier to maintain and program, allows for dependability, expandability, and cost effective for many small businesses and home use.  And also something that allows for smooth interaction for the customer that will be using it.

Now if only more people read these posts.

 

In need of help to decide….

Well I am looking and doing a lot of reading on python I really have been liking many of the things it comes with and can use. I really wish the NodeJS world would start to be a bit more organized and slow down and focus itself. Out of the two languages, JavaScript and Python, I shockingly like JavaScript more. I know it seems weird seeing most hate the language, but many features of it I really enjoy. I may end up doing a hybrid of python and JavaScript for the web application, I don’t know .

I wish I had time to just sit and focus and do some pros and cons of each language for web applications and use for plugins and what not. Now the question really should be, what is the easiest to deploy, and what is most likely to be able to be easily to get a job and be the most helpful. Sure I know technically PHP would be one of the best seeing it is so widely used, but truly no matter how many times I try I just don’t know where to begin.

In general I don’t know what to pick, to pick something that maybe helpful or something I truly enjoy coding in.  Seeing what people have done with NodeJS is always interesting and I know JavaScript is everywhere and will always have a need, while Python just seems to be there and has taken over the DevOps area.  It is why I’m thinking use NodeJS for a big portion and then for misc scripts in the background use Python.

In other news, I’ve been running just Linux for the past 6 days and have been really enjoying it, but there are still times I miss using Windows, which I thought I’d never say.  Some Windows utilities I just enjoy more….

So the snake bite me again…(decisions are hard)

So between the work I’m doing at work and the class I am taking, along with the podcasts I’ve been listening to, Python keeps coming to mind as being a great solution.  I really wish it was super easy to pick a language but in today’s world it has become harder and harder.  I do believe using something like Flask with a good JavaScript front end could be the best of both worlds.

Python has become so popular in big data and data research that it seems hard to not want to get more into it due to job outlook and the amount of work in Python.  While JavaScript and Node are great technologies the more I’ve been looking again I remember what bothers me, NPM.  I hate how NPM has become a bit bloated with too many packages that are just simple lines of code, or packages that don’t get updated enough and use very old packages, like how is anything still using Jade when Pug is the latest version.

PEP8 is one standard that I truly enjoy, sure beyond PEP8 is a bit better, which can be found at Beyond PEP8.  So in the end I believe Python maybe a better choice for this program, yes I know I am not good at figuring out what to use, it really is a problem ;).  Oh well, now to figure out the front end still.  Now what I may do is Python and MongoDB, which isn’t what you typically hear, but MongoDB has the flexibility to do what I want to do.  So it may become, MongoDB as a database, a back-end of Python/Flask, an API using NodeJS (great for use with restful), and front end of some form of JavaScript framework.