Skip to main content

2147483647 and my experience

I finished a project with a large database without any difficulty even when I tested I didn’t find any things hard to do or hard to understand. One day the client called me and asked me to check telephone field for a tables, apparently there was a problem with updating telephone field in the database. I checked and found that sometimes when I try to update the telephone number in return instead of saving the entered number it will saving another number (2147483647), I checked again and again and noticed that always it save the same number although I tried different numbers but same number in the database. mehdix 2147483647 I started for solve this problem by clearing all sessions and double checking my PHP and MySQL code but still same error. I remembered one of lecturer who was so cool but when someone asks a question almost definite he would reply “ask Dr. google”. I am sure he never read this post as once I sent him a link he didn’t click on that link, basically he never read such posts, I guess he only visit a few websites. Anyway come back to my problem, I searched this number in google(basically asked Dr. Google) and found something interesting which I didn’t know before: Wikipedia
The number 2,147,483,647 is the eighth Mersenne prime, equal to 231 − 1. It is one of only four known double Mersenne primes.
And
Euler ascertained that 231 − 1 = 2147483647 is a prime number; and this is the greatest at present known to be such, and, consequently, the last of the above perfect numbers [i.e., 230(231− 1)], which depends upon this, is the greatest perfect number known at present, and probably the greatest that ever will be discovered; for as they are merely curious, without being useful, it is not likely that any person will attempt to find one beyond it.
So as you may already guessed, I figured out what was wrong, telephone field in the database was int and limit was 11 digits. The problem is occurred when the telephone number is bigger the 2147483647, basically overflow condition happen here, well in reality we don’t have a telephone number which is bigger than 2147483647. 
As I always interested in Mathematics, this caused me to read more about such numbers which made story more fascinating

Comments

Popular posts from this blog

I solved GCHQ puzzle and this is how I did it

Today, I was reading the BBC news and I stumbled upon this GCHQ puzzle:
Take the digits 1,2,3 up to 9 in numerical order and put either a plus sign or a minus sign or neither between the digits to make a sum that adds up to 100. For example, one way of achieving this is:
1 + 2 + 34 - 5 + 67 - 8 + 9 = 100, which uses six plusses and minuses. What is the fewest number of plusses and minuses you need to do this? I love to challenge myself with these kind of puzzles, so I solved this and here is how:
We have 9 numbers [1 to 9] and also we have three possible separators [+, - and nothing] which to fill the gap between numbers we have 8 combinations of separators, e.g. we have 1+2+3+4+5+6+7-89 which in this case we have six times plus, one minus and one time nothing. 
So, I need to find all possibilities of combination which total is: 6561

Then, hook the possible combinations into numbers and check the total, easy enough. Now print the solution.
I have written this algorithm in PHP but ea…

Vim cheatsheet

Global

:help keyword – open help for keyword

: o file – open file

:saveas file – save file as

:close – close current pane

Cursor movement

h – move cursor left

j – move cursor down

k – move cursor up

l – move cursor right

H – move to top of screen

M – move to middle of screen

L – move to bottom of screen

w – jump forwards to the start of a word

W – jump forwards to the start of a word (words can contain punctuation)

e – jump forwards to the end of a word

E – jump forwards to the end of a word (words can contain punctuation)

b – jump backwards to the start of a word

B – jump backwards to the start of a word (words can contain punctuation)

0 – jump to the start of the line

^ – jump to the first non-blank character of the line

$ – jump to the end of the line

g_ – jump to the last non-blank character of the line

gg – go to the first line of the document

G – go to the last line of the document

5G – go to line 5

fx – jump to next occurrence of character x

tx – jump to before next occurrence of character x

} – jump to …

Why Prestashop needs improvement for large application?

I have worked with Prestashop 1.6 long enough to know inside/outside of the application and even I developed few modules myself, all is simple and great but in small scale. My application is big, I am talking about millions rows in database. Two databases weight almost 18G (see the picture).

One day at 2AM I received a notification that my website/application is down. I looked at the server the application seems OK but the databases gone crazy big, (see the picture) it has gone from 18G to over 90G less than 6 hours. 
Since there was almost none free space left on the server, all server running really slow even I could not restart NGINX. All was frozen. All my websites/applications run on dedicated server on UKFast, so none of websites would work because all is glued together. 
There are many issues here, e.g. the server infrastructure is wrong (I know that already), there should be monitoring service in place which there was no such thing (I know that too) etc. but why this happened,…