Tech C**P
https://blog.shippable.com/why-we-moved-from-nosql-mongodb-to-postgressql #mongoDB #posgreSQL
سایت shippable به دلایلی که در لینک بالا عنوان کردند مجبور به انتقال اطلاعات از مونگو به postgreSQL شدند. اما بنده در کامنت زیر اشتباهاتشان بررسی کردم و بهشون پاسخ دادم:
Basic principles are neglected as you have tried to store structured data there in MongoDB! One of the biggest problems is that you had a delay in data retrieval and without knowing the culprit you just wiped the question out! MongoDB profilers are good enough in order to see what's going on under the hood or using iostat to see where is the bottleneck. You couldn't even detect the bottleneck and just rebuilt the server, a big mistake here too!
In order to keep data model consistent at a specific level in MongoDB you need to create a model to map data to it and return default values for field not present in the real document. Here you tried to solve this problem from mongoDB side and updated all data!!! Again a big big mistake here as updates are very costly and MongoDB would have to relocate documents in disk in case they don't fit there (here all data will get fragmented and data need to be compacted to help a little bit).
Basic principles are neglected as you have tried to store structured data there in MongoDB! One of the biggest problems is that you had a delay in data retrieval and without knowing the culprit you just wiped the question out! MongoDB profilers are good enough in order to see what's going on under the hood or using iostat to see where is the bottleneck. You couldn't even detect the bottleneck and just rebuilt the server, a big mistake here too!
In order to keep data model consistent at a specific level in MongoDB you need to create a model to map data to it and return default values for field not present in the real document. Here you tried to solve this problem from mongoDB side and updated all data!!! Again a big big mistake here as updates are very costly and MongoDB would have to relocate documents in disk in case they don't fit there (here all data will get fragmented and data need to be compacted to help a little bit).
How to limit bandwidth of
far better in terms of features and incremental copy mechanism. To limit bandwidth use
The general form:
An example of usage with 2MB limit per second transfer:
#linux #sysadmin #rsync #bandwidth
rsync
linux command?rsync
is an awesome tool in order to move files via ssh
into another server or from server to local system like what scp does butfar better in terms of features and incremental copy mechanism. To limit bandwidth use
bwlimit
like below:The general form:
rsync --bwlimit=<kb/second> <source> <dest>
An example of usage with 2MB limit per second transfer:
rsync --bwlimit=2000 /backup/folder user@example-host:/remote/backup/folder/
#linux #sysadmin #rsync #bandwidth
How to upgrade
The procedure is dead simple! Mail server itself notifies you about the new updates in its admin panel. Head over to the given link and download the the appropriate file related to your OS. Usually a
1- First make it executable:
2- Now stop
3- Run the installer and go in an interactive way. JUST be sure to skip the
4- Now start
#mail_server #axigen #upgrade #update
Axigen
mail server?The procedure is dead simple! Mail server itself notifies you about the new updates in its admin panel. Head over to the given link and download the the appropriate file related to your OS. Usually a
.run
file.1- First make it executable:
chmod +x axigen-10.2.2.x86_64.rpm.run
NOTE:
here my version update may differ from yours.2- Now stop
Axigen
.3- Run the installer and go in an interactive way. JUST be sure to skip the
Axigen
post-install configuration wizard.4- Now start
Axigen
.NOTE:
in case you want to take backup copy the folder /var/opt/axigen
in a safe place. This path may differ based on your OS and your distro.#mail_server #axigen #upgrade #update
Have you heard about
If you know it, but like me you don't know it as you should and every time the bowser gives you a new error in
#browser #mozilla #CORS #cross_origin #cross_origin_resource_sharing
CORS
(Cross Origin Resource Sharing)?If you know it, but like me you don't know it as you should and every time the bowser gives you a new error in
console
you again get wandered in the wilderness, I'd suggest going to the awesome link below and read thoroughly line by line:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
NOTE:
this article is fantastic! Believe you me. You will understand eveything you need to know exactly what is CORS
and how to handle it properly.#browser #mozilla #CORS #cross_origin #cross_origin_resource_sharing
An interesting thing in
You give ANY styling to
By using
#css #console #developer_tools #text_formatting
console
of browsers:You give ANY styling to
console.log
outputs! Here is how:const style = [
'background: linear-gradient(to right, #5433ff, #20bdff, #a5fecb);',
'color: #fff',
'padding: 10px 20px',
'line-height: 35px'].join(';');
console.log('%cHi there!', style);
By using
%c
you can give styles to your text outputs.#css #console #developer_tools #text_formatting
nginX
by default does not set CORS
headers for requests with error status codes like 401. There are 2 options here to add CORS
headers:1- If your nginX version is new you have the option of
always
to add to add_header:add_header 'Access-Control-Allow-Origin' $http_origin always;
2- If you got error of
invalid number of arguments in "add_header" directive
, then use more_set_headers
:more_set_headers -s '401 400 403 404 500' 'Access-Control-Allow-Origin: $http_origin';
NOTE:
when this error happens then in $.ajax
or any similar method you wont have access to status codes. So be extremely catious!!!#nginX #web_server #CORS #more_set_headers #add_header #ajax
How to upload a text content as a file in
We have created a binary data from the text which is in the format of
The
#javascript #jQuery #ajax #FormData #Blob #upload
$.Ajax()
?FormData
class is used to create a multipart/form-data
inside of JS code. A sample code speaks thousand words:var formData = new FormData();
var blob = new Blob([YOUR_CONTENT_HERE], { type: "text/html"});
formData.append("file", blob);
We have created a binary data from the text which is in the format of
text/html
, then I have appended the data as an input file with the name of file
(which will be captured on server-side).The
Ajax
part is utterly simple:$.ajax({
type: 'POST',
url: 'https://www.example.com/storage',
data: formData,
processData: false,
contentType: false
}).done(function(data) {});
NOTE:
DO NOT OMIT processData
, contentType
parameters.#javascript #jQuery #ajax #FormData #Blob #upload
Today's Tech Term:
D2D:
D2D is shorthand for Disk-To-Disk and refers to data backups using disks.#tech_terms #D2D #disk_to_disk
https://stackoverflow.com/questions/1964839/how-can-i-create-a-please-wait-loading-animation-using-jquery
#jquery #ajax #loading
#jquery #ajax #loading
Stack Overflow
How can I create a "Please Wait, Loading..." animation using jQuery?
I would like to place a "please wait, loading" spinning circle animation on my site. How should I accomplish this using jQuery?
By using the below library in
- https://github.com/faisalman/ua-parser-js
#github #uaparserjs #ua_parser_js
JS
you can get OS name, Browser name and version and many more stuff from within Java Script
:- https://github.com/faisalman/ua-parser-js
#github #uaparserjs #ua_parser_js
GitHub
GitHub - faisalman/ua-parser-js: "Unmask Your Traffic" - UAParser.js: The Essential Web Development Tool for User-Agent Detection
"Unmask Your Traffic" - UAParser.js: The Essential Web Development Tool for User-Agent Detection - faisalman/ua-parser-js
DAAS
: DAAS (short for Data As A Service) is a “central repository”/”cloud strategy” that facilitates on-demand accessibility of business-critical data by an organization’s users in a timely manner.#tech_term #DAAS
What is the difference between the below exceptions:
Vs:
A bare
A better
#python #PEP8 #try #except #try_except #exception
try:
// Your code block
except:
// Your exception block
Vs:
try:
// Your code block
except Exception:
// Your exception block
A bare
except:
clause will catch SystemExit
and KeyboardInterrupt
exceptions, making it harder to interrupt a program with Control-C
, and can disguise other problems. If you want to catch all exceptions that signal program errors, use except Exception:
(bare except is equivalent to `except BaseException:`).NOTE:
When catching exceptions, mention specific exceptions whenever possible instead of using a bare except:
clause.A better
try & except
:try:
import platform_specific_module
except ImportError:
platform_specific_module = None
#python #PEP8 #try #except #try_except #exception
Does that happen for you too, to
Let's say you are in a long path like
#linux #cd
CD
into a wrong directory and need to get back to the previous directory?Let's say you are in a long path like
/mnt/new_volume/backup/files/archive
, now you switch to home of your directory. In order to get back to the previous directory, you just need to issue the below command:cd -
#linux #cd