Maxis Business Fixed IP Setting

I just migrate to Maxis Business with 5 Fixed IP. The reason I wrote this post is because I can’t find anyone share about this information. And another reason is I explained my current network infrastructure to Maxis Expert they also can’t solved my issue. So I decided to share this post.

This is the correct setup. Below I will be sharing another wrong setup, if you are having the same situation like me.

Correct Network Infrastructure Setting for Maxis Fix IP Broadband

Below is my Maxis Router Setting.

I registered for 5 Fixed IP Address from Maxis.

The correct way to setup your network environment.

Maxis Fix IP Not working with below Setting

Below was my initial network structure which brought me headache like below:-

  • Your internet will work. Your LAN Network working well. But when you want to work with FIX IP, nightmare come.
  • After port forwarding for from the gateway network (WAN IP: 123.123.123.100). Eg. I port forwarding for my PC (192.168.0.100) port 80 for web services. (The PC port forwarding will work) but All my other Fixed IP (other than gateway IP) Network cannot be accessible.
  • Once you had done the port forwarding. You use port scanning website to check your port open, all is opened! But not working!

I called to Maxis Expert and explained my network infrastructure. They said everything is working and blame my Application Server / Database Server is making the trouble. (In my mind, WHAT?! I just switch from one Static IP – From another provider to you, then the services is screw. In my mind, definitely not my server problem!)

My mistake was when the maxis installer was here at that time I was not around and need to clean up this sh*t, lol… Conclusion is when they are around asked them fix everything only leave them go.

Buggy Router

Second thing want to complaint is their router interface. I called the Maxis Expert. He asked me to re-enter the Easy Setup page info. As you can see the user Static IP Address is off. No matter how many thing I On and enter all the detail. After I apply changes. It will reset to this page again. I told them is the bug, they said they never encounter this..

In the end of the story, I don’t care about this as long as it is working… So Maxis please improve your team knowledge OK? PEACE~

TM Unifi Maxis Broadband using ASUS Router Setup Configuration

I am using Maxis Broadband.

However, Maxis provided the router is for basic usage. What if we need a better route to handle internet traffic?

I got an ASUS RT-AC88U Router. How do I handle the Maxis Phone line problem?

Here is my setup.

If you are not using ASUS router or different model please purchase those brand support Unifi. Every brand and model have its own setup.

For my case ASUS RT-AC87U, when I select Unifi+Maxis, only LAN2 is the specific port can link to their router and I can use Maxis phone.

 

Synology High Availability (HA) Heartbeat Link Aggregation vs Single LAN

I purposely did another Synology High Availability (HA) Heartbeat Link Aggregation for this test.

First I did my Synology HA with Single LAN Cable (Direct Cable).

Single LAN Cable

It took about 2 days, 12 hours, 44 minutes, 32 seconds (±3644 minutes)

2018/03/31 10:31:00 to 2018/04/02 23:15:32

Link Aggregation

To have Link Aggregation in your HA. You must create the bond network before you build the HA. Or else you will need to redo. Just like what I did…

It took about 2 days, 13 hours, 35 minutes and 58 seconds (±3695 minutes)

2018/04/04 12:27:03 to 2018/04/06 02:03:01

 

My Data is about 8TB. It is running in RAID10.

 

Conclusion:

Link Aggregation make thing faster?

From the build time, it seems like look slower that single LAN connection. However, when I tried to copy some big files.  Bond 1 (Heartbeat) it actually does fully use the throughput. 

So my advice is get a Link Aggregation if you got extra network port.

Thanks for reading!

 

Synology iperf3 Performance Test

iperf3 is a good to opensource software.

In order to install to your Synology. You have to check what kind of CPU your Synology is using. You can check from below link.

https://www.synology.com/en-global/knowledgebase/DSM/tutorial/General/What_kind_of_CPU_does_my_NAS_have

After you have checked your CPU model. You may download per-compiled iperf by jadahl.

http://www.jadahl.com/iperf/

From my case. My synology is DS1815+. My CPU Model is Avoton. My DSM Version is 6.1.

I went to  http://www.jadahl.com/iperf/DSM_6.1/, and download below file.

[   ] iperf_avoton-6.1_3.2-1.spk 13-Oct-2017 14:21 1.7M

Next, Login to your Synology. Go to Package Center. Click on the Manual Install.

Select *.spk (depend what model you are using). In my case, my file is iperf_avoton-6.1_3.2-1.spk. Click and install. Once installed successfully. It will appear in the Installed list.

Once your iperf3 installed and running successfully. You can access to your SSH and run as server/client depend your usage.

To Enable SSH, you need to go to Control Panel -> Terminal & SNMP -> Enable SSH service.

In Windows You can use putty program to SSH to your Synology and run your iperf3.

That’s all. Thanks for reading.

 

 

How to upgrade laravel installer to v2

laravel/installer package was updated to v2 on Feb 2018.

Even you have run composer global update, still only got v1.5.0.

It is because in your ~/.composer/composer.json file. It is referenced as “^1.3”. It will not update to v2. Maximum only upgrade to v1.5.0.

Easy way is required again.

run composer global require laravel/installer:^2.0.1

another way is like below:-

Now you have to do is edit your ~/.composer/composer.json file, update the “^1.x” to “^2.0.1”.

macOS install mysql 5.7 homebrew

Today I decided to upgrade my MySQL database from 5.6 to 5.7. Previously I was using Bitnami MAMP DB version. Today I decided use homebrew version upgrade my MySQL.

To install MySQL is pretty simple. However, if you installed previous MySQL version before. It will be a challenge for you. My advice is to delete all your old data to avoid running in mysql_upgrade command required by MySQL when you need to run some command related to sys database.

To install MySQL with homebrew is:

You can check what are you going to install via this command.

brew info mysql it will prompt and listed what will be version will be installed. For my today case, it is 5.7.21. Then I confirmed I wanted to install.

brew install mysql

That’s all

If you want to restart MySQL run brew services restart mysql

Please take note that, once you have restarted your mysql. Homebrew will copy /usr/local/Cellar/mysql/your version/homebrew.mxcl.mysql.plist to ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

So whatever you want to edit, please edit on /usr/local/Cellar/mysql/your version/homebrew.mxcl.mysql.plist

Regarding my.cnf

MySQL 5.7 does not have default my.cnf, you also cannot find in the default support-files that ship together. You may just create one at /etc/my.cnf, please take note that not all the setting will be applied via this file.

For example. bind-address. Sometimes it binds together with start process.

More info:- https://dba.stackexchange.com/questions/55958/cant-remote-access-mysql-server-running-on-mac-os-x

Remove old MySQL data in homebrew

ps -ef | grep mysql with this command, you actually can see the mysql process bind to what parameter.

So for my case, mysql datadir=/usr/local/var/mysql, you may delete this one first before you install.

Laravel Multiple Login Logout Password Reset User/Member and Admin Tutorial

When you work in CMS, it is pretty common you have multiple roles and permission.

Setting Up Multi-Authentication in Laravel 5.4+ (Part 1)

Or from Forum

https://laracasts.com/discuss/channels/laravel/password-reset-for-multiple-tables?page=1

However, for my own appoach kind of different from above solution.

I am using subdomain to different out the session. So I do no need to duplicate the controller. I can use the same flow as main domain used.

 

Convert Excel Text Number String to Number for calculating used

I am sure you experience after export from some software. The number treated as String. And you can’t use it for doing calculation.

  1. Copy the data to new sheet or new workbook.
  2. paste in this formular `=IF(ISBLANK(B2),””,VALUE(B2))`
    What this formular do is first check is the cell is it blank or not, if it is blank then show it is blank, else, show the value of that cell (this is the part convert it from string to number)
  3. Next, you just copy and paste the formula accordingly.
  4. Final step, you select all the formular area, then paste it as VALUE.
  5. DONE!

Below example, as you can see the yellow part is original data, it mixed with string and number. The little green arrow on the top left corner indicate you can convert it to other format, but you have to do it one by one.

On the green part is followed by formular converted it to number.

 

Thanks for reading!

Laravel Validation required keep throw exception the given data invalid.

My Laravel Project happen something strange that, basic Laravel Validation for Required Rule not working correctly. It really drives me crazy…
It keeps throwing the below error:-
Illuminate \ Validation \ ValidationException
The given data was invalid.
Finally I found out it is due to I implemented the new Laravel Whoops with IDE Integration.
I use below code.
https://gist.github.com/adampatterson/1c01aec54ebce7632bddd9e9e8566a65#file-sample-php
In my app/Exceptions/Handler.php
the render() method.
if (config('app.debug') && app()->environment() != 'production') {
    return $this->handleWhoopsies($request, $exception);
}
At this moment I just remove the support for the IDE. Keep thing simple.

Laravel composer fork project for urgent own use

Nowadays, we definitely using other people packages in own project. What if you found a bug or special workflow to suit your own need. But the project owner didn’t accept the pull request or them didn’t maintenance the project anymore.

If you brave enough you can fork it and continue maintaining it. So people can continue with your repo.

However, I don’t think it is the common use case. So what should you do? Thank God, it has an easy fix in your composer.

First, you, of course, need to fork the project. Then create a branch name start with dev- ,e.g  dev-fix-something then do whatever you need then commit to your repo.

Correction: You just create a branch with the feature you need e.g fix-route.  Composer will auto added the prefix. If you added your own dev-xxx, you will have included  duplicated e.g dev-dev-xxxx

This is why all the master branch it is named as dev-master.

In your composer.json file. add the follow lines. Can be before require tag:

"repositories": [{
  "type": "vcs",
  "url": "https://github.com/my-name/awesomeproject"
}],

Then in the require tag, u need to change original package repo to your new branch.

"require": {
    "php": ">=7.0.0",
    "pro-developer/awesomeproject": "dev-fix-something",

Save your composer.json file. Then go to Terminal run composer update

Then you should be using your own fix branch. If the repo owner finally accepted your pull request, then you can switch back to the original require version.

Note:

If you somehow run the composer update got error like below:-

Your requirements could not be resolved to an installable set of packages.

Problem 1
The requested package pro-developer/awesomeproject dev-fix-something exists as pro-developer/awesomeproject[0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.4.1, 1.0.5, 2.0, 2.0.1, 2.0.10, 2.0.12, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 3.0, 3.0.1, 3.0.10, 3.0.11, 3.0.12, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.8, 3.0.9, 3.1, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.2, 3.1.3, 3.1.4, 3.1.4.1, 3.1.6, 3.1.7, 3.1.8, 3.2.0, 3.2.1, 3.2.2, 3.3.0, 3.3.1, 3.3.2, 4.0, 4.0.1, 4.0.10, 4.0.11, 4.0.12, 4.0.2, 4.0.3, 4.0.4, 4.0.5, 4.0.6, 4.0.7, 4.0.8, 4.0.9, 4.1, 4.1.1, 4.1.10, 4.1.11, 4.1.12, 4.1.2, 4.1.23, 4.1.3, 4.1.4, 4.1.5, 4.1.6, 4.1.7, 4.1.8, 4.1.9, 5.0.0, dev-dev-fix-something] but these are rejected by your constraint.

You could be gotten wrong branch name. In the above example the correct name should be dev-dev-fix-something, just make the changes in your composer.json then you can ready to run composer update again. It should be working fine.

After the composer update, you can run composer show -v pro-developer/awesomeproject to see the details. You should be to see the support source is from your own repo.

That’s all. Thanks for reading. Happy Coding! Make more great open source project and contribute more to the community.