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.

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….

Trying to understand some things…

So recently on Hacker News there were two separate articles that go into having millions of requests per second.  Honestly how many people really need something that is made for millions of requests per second, sounds overkill to me.  I didn’t totally have time to look at the articles and the githubs to see if these are even something that is easy to use or something that really isn’t the greatest.  The following are what was on hacker news:

  1. A million requests per second with Python
  2. (More than) one million requests per second in Node.js

This is kind of interesting when you get to higher end projects, but right now this project I’m doing for small businesses seems like it would be overkill.  The only reason I could see this being helpful is to have a very quick responding web application.  May have to do a bit of research to see if Japronto maybe worth it.

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.

The choices are vast…

So I pretty much know I am going to use nodejs with some form of database, still fully undecided on that, my biggest hurdle is to figure out the front end. With so many choices I don’t even know now what will be a good choice. We have vue, angular, react, and many more. I’d like to keep it something that most likely will be around and supported for a while to come but something that if someone wants to make a plugin it will not be a pain to work with.

Biggest problem right now Is that I have used none of them so it will be learning on my end also.   Extra opinions would be nice to be able to figure out which would work for this project. Now if only had some spare time to work on that diagram to start designing aspects of this at a high level then slowly break each down.

Also if any opinions on database you’ve, I am willing to take opinions.

Time to mix it up

So with one of my classes I’m taking now, Python Programming, I’ve learned I do enjoy the use of Python for Programming, but don’t know if it would be something that I could use for a full project.  To me it feels like a good way to get scripting, or data mining done, or in my case, a plugin that can be used to make reporting simple and easy.  Yet that is for down the line.

So, I feel that I will start with a NodeJS Express Web Application.  This web app will have some main features from the start, including:

  1. Login System
  2. Dashboard
  3. Plug-In System
  4. Updating System

To go into a bit more details about each thing, we begin at the login system.  This will start with using Express-Session, PassportJS, and some form of session database.  The database is still something I need to decide on, between using MongoDB, MySQL, or something different like Redis.  Need to do a good compare of each for sessions.

Next comes the Dashboard.  This is going to be the typical style dashboard.  Allow users to get to the different plug-ins that have been installed, allow for the ability to pull information to the front page, and get the work done that is needed to be done.  This area also, if you are the admin, are able to install the plug-ins.

Next is the plug-in system.  This will allow for dependencies between plug-ins.  Say you have an invoice system, that, typically, would involve the usage of an inventory system.  This will also allow certain revisions of each to rely on each other.  I feel this is something good to keep things trying to run as smooth as possible.  This will also go out, on a certain amount of time ( customer configurable) to check for updates and either notify or email the admin.  Other ideas are welcome.

Lastly is the updating system, this integrates with the plug-ins also.  As previously stated, this will notify the administrator of what needs updating, including the core itself.  This I feel is a needed feature to make sure that software is up to date.

In the end I want the whole project to be used for the cloud-aspect, meaning the updating and plug-in serving, and for running for the client.  I believe when something like this is designed it needs to be something that there is enough confidence to use on the every aspect of it being used. Next step is to diagram out the flow of the basic setup of the system.