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.

 

I’ve gone back to the dark side…

While I super enjoy Linux, Ubuntu and all things related to it, I have gone back to Windows.  A few reasons include, many of the programs I’ve spent a lot of money on don’t run in Linux and I have gotten used to using them, yes I know their are alternatives on Linux, but when you get used to something I’d rather not have one more thing I need to learn in the process at this point.  Along with this, I still want to play some of the games I know won’t run, even with Wine sadly.

Not that I won’t be using Linux, my web application will fully be setup for Linux/Ubuntu/CentOS.  I will mainly be using a VM for most of that work now.  In the end I’d love to have a Mac that can do dual display and use that as my primary, but still would have some game issues.  I spent half a month working with Linux as my primary and I do enjoy it a lot.

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.