Category Archives: Uncategorized

Application folder structure

This is common structure for an application folder. Normally found in most projects.

Folder structure varies by build system and programming language. Here are some standard conventions:

  • src/: “source” files to build and develop the project. This is where the original source files are located, before being compiled into fewer files to dist/public/ or build/.
  • dist/: “distribution”, the compiled code/library, also named public/ or build/. The files meant for production or public use are usually located here.
  • lib/: external dependencies (when included directly).
  • test/: the project’s tests scripts, mocks, etc.
  • node_modules/: includes libraries and dependencies for JS packages, used by Npm.
  • vendor/: includes libraries and dependencies for PHP packages, used by Composer.
  • bin/: files that get added to your PATH when installed.

Markdown/Text Files:

  • README.md: A help file which addresses setup, tutorials, and documents the project. README.txtis also used.
  • LICENSE.md: any rights given to you regarding the project. LICENSE or LICENSE.txt are variations of the license file name, having the same contents.
  • CONTRIBUTING.md: how to help out with the project. Sometimes this is addressed in the README.md file.

Specific

  • package.json: defines libraries and dependencies for JS packages, used by Npm.
  • package-lock.json: specific version lock for dependencies installed from package.json, used by Npm.
  • composer.json: defines libraries and dependencies for PHP packages, used by Composer.
  • composer.lock: specific version lock for dependencies installed from composer.json, used by Composer.
  • gulpfile.js: used to define functions and tasks to be run with Gulp.
  • .travis.yml: config file for the Travis CI environment.
  • .gitignore: Specification of the files meant to be ignored by Git.

 

source

Looking for JS framework to use in future projects

While I’m researching a suitable front-end framework for my future projects, here I list some relevant references that might help the understanding process.

Long time ago there was jQuery that conquer the world. While vanilla javascript is quite hard to learn and the code is not

https://www.youtube.com/watch?v=WJ2PQe-pQJw

Video show why jQuery no longer relevant and sample jQuery vs Vue code

Delete records from multiple tables

This is sample query to delete record from multiple tables.

Specify all joined tables to get the list but can specify records in which tables to be deleted.

DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;

OR

DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;

Reference

https://dev.mysql.com/doc/refman/8.0/en/delete.html (refer section – Multi-Table Deletes)

MySQL Error Code 1166. Incorrect column name

Got this error while importing csv to table in MySQL database using sequel pro.

This error normally because of extra space in field name that mysql cannot accept.

But sometimes you just can’t find where is the extra space.

One way to solve is add additional column, when import, just ignore the last field and you can import it as usual.

Foolproof system

To build a foolproof and super easy to maintain system must be a goal for a system development.

To get to that, it has to have

  1. clear naming standard and convention. e.g. no $i or $anumber kind of variable
  2. clear and easy to read code structure
  3. many small and structured files over one huge file
  4. heavily tested before deploy to live server and start being used by the users
  5. good database design to cater for growth
  6. good settings and configurations either on files or database so it is flexible

Asana workflow

Asana is a  proficient tool to manage tasks in a small team.

Below is the suggested workflow to be followed

  1. Task created by manager or assignee (if the task is assigned offline or via other medium)
  2. Assign to assignee
  3. Assignee comment “in progress” when start processing a task
  4. Assignee and manager communicate in comments for particular task
  5. To add “follower” if need some other people to be in the loop
  6. Assignee assign to manager back once the task complete for verification before can be marked as complete
  7. Manager will verify, set as complete and set the assignee back for record as person who has done the job. Or if it is not complete, task will be assigned back to the assignee

Basic git flow

Basic git flow

from remote “master”, create a branch “develop”.

pull branch “develop”

branch out branch “feature” or “bug” from local “develop”

commit changes to branch”feature”

push branch”feature” to remote branch”feature”

request merge to remote branch “develop”

after merged, pull branch “develop” to local

 

Billplz Notes

Billplz is a malaysian’s payment gateway. It’s free to register, easy to setup and affordable.

Register free here

If you are using postman to test, add the API Key as username in Authorization tab. Choose “Basic Auth” in Type dropdown. Then enter the URL and params as usual

 

Free tools for small businesses

Some free tools you can use to start your business. The providers normally provide the free tools for basic usage. Some limitation on features and users. But if you are small, it doesn’t matter much. At least you can start with some cool softwares to support your small business

CRM – hubspot

Support Ticket/ Help Desk – freshdesk

Accounting – waveapps – need to pay to use payroll and payments

Version control – GitLab