Simple thing if you want to have min
and max
in SQL query.
ROUND((RAND() * (max-min))+min)
Simple thing if you want to have min
and max
in SQL query.
ROUND((RAND() * (max-min))+min)
So, you have to copy one directory into another on your server and you don’t want to kill the machine?
Instead of
cp -r master master_copy
use
rsync --bwlimit=30000 -av master/ master_copy/
The –bwlimit=KBPS switch is for limiting I/O bandwidth.
Small thing but extremely useful. Getting context with grep
.
-C
– Print num lines of leading and trailing context surrounding each match. The default is 2 and is equivalent to -A 2 -B 2. Note: no whitespace may be given between the option and its argument.
grep -C 5 file.txt
Title: Agile w pracy agencyjnej – z dwóch perspektyw – programisty i project managera
Venue: LoGeek Night #2, 23.01.2014
Slides: Slideshare
If you have to remove large number of files, like hundreds of thousands, and don’t want to kill your production server, instead of rm -fr DIR
you can use this little fella.
while [ true ]; do ionice -c 3 find DIRECTORY_TO_BE_DELETED -type f -print | head -50000 | xargs rm -f; sleep 50; done
Simple, yet useful. -e
option does the trick.
zip -r -9 -e name.zip folder/
Title: Architektura to podstawa. Efektywny rozwój rozbudowanych projektów przy użyciu Symfony 2
Venue: DevCon GigaCon Wrocław, 23.06.2013
Slides: Slideshare
If you would like to dump all tables and triggers and stuff try this one:
mysqldump -uUSER -p -R --opt --triggers DB > DB_DUMP.sql
but if you have some troubles with permissions for locking tables use --lock-tables=false
mysqldump -uUSER -p -R --opt --triggers --lock-tables=false DB > DB_DUMP.sql
and to dump all databases you have
mysqldump -uUSER -p -R --opt --triggers --lock-tables=false --all-databases > DB_DUMP.sql
also, great post on StackExchange with a script for dumping all databases without databases like `mysql`, `information_schema`, `performance_schema`, `sys`.
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
#
# Collect all database names except for
# mysql, information_schema, and performance_schema
#
SQL="SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN"
SQL="${SQL} ('mysql','information_schema','performance_schema')"
DBLISTFILE=/tmp/DatabasesToDump.txt
mysql ${MYSQL_CONN} -ANe"${SQL}" > ${DBLISTFILE}
DBLIST=""
for DB in `cat ${DBLISTFILE}` ; do DBLIST="${DBLIST} ${DB}" ; done
MYSQLDUMP_OPTIONS="--routines --triggers --single-transaction"
mysqldump ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} --databases ${DBLIST} > all-dbs.sql
You have a Facebbok App. When you go to that app you have a Facebook page and your app is embedded via iframe.
Later on it turns out that within your code you have an iframe with something, lets say some kind of form but in different domain. And you have a problem, because due to Same Domain Origin Policy you can’t talk between those iframes. There is a nice solution for that.
You can use a friendly helper from main domain that is embedded in forms iframe, as 3rd level you’d say.
So the main idea is to change iframe src
if you form file, where you can embed this helper.
Take a look on this brief schema.
facebook.html
<html> <body> <p>FACEBOOK</p> <iframe src="http://domain-a.com/app.html" style="width: 500px; height: 300px;"></iframe> </body> </html>
http://domain-a.com/app.html
<html> <body> <p>YOUR FACEBOOK APP</p> <iframe src="http://domain-b.com/form.html" id="form"></iframe> <script type="text/javascript"> function redirect(url){ window.location.href = url; } function resize() { document.getElementById('form').height = 500; } </script> </body> </html>
http://domain-b.com/form.html
<html> <body> <iframe id="helper" src="" width="0" height="0" ></iframe> <p>EXTERNAL FORM</p> <a onclick="redir();">REDIR</a> <a onclick="resize();">RESIZE</a> <script type="text/javascript"> function redir() { var helper = document.getElementById('helper'); helper.src = "http://domain-a.com/iframeparent/helper.html?action=redir"; } function resize() { var helper = document.getElementById('helper'); helper.src = "http://domain-a.com/iframeparent/helper.html?action=resize"; } </script> </body> </html>
http://domain-a.com/iframeparent/helper.html
<html> <body onload="start();"> <script type="text/javascript"> function start(){ var action = getParam('action'); if (action =='redir') { parent.parent.redirect('http://www.onet.pl/'); } else if (action == 'resize') { parent.parent.resize(); } } function getParam( name ) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1]; } </script> </body> </html>
$arr = array(1,2,3,4,5,6); foreach($arr as $v){ $arr[] = 1; echo $v; }
output: 123456
$arr = array(1,2,3,4,5,6); foreach($arr as &$v){ $arr[] = 1; echo $v; }
output: 1234561111111111111111111111111111111111111111111111…
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in /Users/gradzinski/dev/playground/foreach.php on line 7
So within the foreach loop we are adding 1 to referenced array arr
and this is why we are failing into infinite loop.
Below you can find PHP foreach manual explanation that may put some light in that behaviour.
Referencing $value is only possible if the iterated array can be referenced (i.e. if it is a variable). The following code won’t work:
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>