site optimization cases

Ever site have content for cache or pregenerate.

Why cache need to be part of optimization? - if you know what you do and how it is very fast way to lower server load. So, after load is lowered you will have time to think about logical optimization ;)

What we can cache?

  • content
  • sql results
  • functions results
  • logical results(which isn't design as separate functions)
  • As example, if site have visitors counter its results can be cache for several minutes and this will save little time for executions. Here I need to notice - it very important to cache something which take more time than fetch from cache! of course for our case we need to know how many time/cpu/memory take counter and same values for cache fetch function. There are no sense to cache if we do not save or convert server resources.

Links:

GPix 1.3.3

next features implement for this release.

  • "Remember me on this computer" option for admin
  • order continue functionality after user register/login
  • back link checker http://forum.tufat.com/showthread.php?t=50238
  • multi get/bill, get more that one region per grid functionality

I get more requests for "back link checker", this improvements will be implemented in next version.
Thanks for who help for this release.

Tags:
Links:

Fast file transfer with pseudo HTTP server

Time to time I need to transfer site from server to server very quickly and have not common solution for this, because I have permissios.

Solution is to use http server if you have this one of server with backups or use netcat.
On server side I run

nc -l -p 8080 < mybackup.tar.gz

or
netcat -l -p 8080 < mybackup.tar.gz

and now can use wget, curl or browser for this url:
http://serveradress:8080

if you sent link to client it will best to do little more:

(echo -e "HTTP/1.1 200\nContent-Disposition: attachment; filename=mybackup.tar.gz\n
Content-Type: application/octet-stream\nConnection: close\n"; cat mybackup.tar.gz ) 
| nc -vv -l -p 8080

Links:

server security for sessions

most of PHP application use session module. Commonly to provide user authentication and most of hoster providers store session files in /tmp directory. Session files from all users/sites at one dir, it is big security risk!

Looks like /tmp is shared between users and used to store authentication information, really bad idea.

Session module allow to change default path for session files (configurable is strong PHP side), so it simple for webmasters and PHP coders to solve this problem, just need to change session path like this:

session_save_path('/home/your_own_dir/tmp');

or
ini_set('session.save_path', '/home/your_own_dir/tmp');

Links:

cvs diff usage

Some Joomla and Mamaba solutions is so big. I have not problem with size - I just add new disks to my server.
I use control version software for all my projects (SVN or CVS) and it is very easy to share my work with another coders or track what I did here before year(yes, I provide support for all my projects).

So, common problem which I take latest weeks is that I have big applications and just export:

  cvs export -r release_X_Y project

Produce 30-50 megs, this take time to upload. So, I just put little optimization to my work and get only patches:
cvs diff -N -c -r release_X_Y -r release_X_Y > diffs

upload patch and apply it to existing project is good way to spare time

Links:

what is PDO?

many clients ask me why I suggest to use PDO as part of optimization

it is very simple
PDO structures is native PHP drivers, which mean that was designed and optimized for PHP

Just image, libmysql use buffers and PHP interface use buffers. This mean that functionality is doubled! It is absolutely normal step to remove libmysql as layer. As part of server optimization this step require MySQL 4.1 as minimal version.

At the end, migration from libmysql usage to PDO save up to 40% server resources!

Links:

Favorit editor need to be default

A long time ago, when I start to use my first FreeBSD workstation I used ee as simple editor (it is simple and very useful), after ee I use vi it take a lot more time to understand "how" and "why" it works, but... I don't stop it use.

Only one thing stop me to use vi as default environment for PHP based projects - miss XDebug support.
So, at moment at all my servers I use vi as default editor, sometime I have not root privileges and use next lines in .bash_profile

EDITOR=vi
export EDITOR
alias editor=$EDITOR

Links:

Where our time is going

I work with GPix every day and only now I understood how many time I spent to admin login page

I spent to GPix near 2 hours(average) every day and I login minimum 3(average) times per day. My browser remember login and pass, so I wait page and click login 5-8 secs

All this mean that I spent minimum 90 minutes for latest year to login!!! and all this time I use two computers only! amazing
So, I implement "Remember my computer" button I think that it will be useful for GPix administrators.

Tags:
Links:

backlink checker

I have received several mails from active GPix testers about 'back links' functionality.

It is common way to increase you site rank and don't spend direct money for this.
So, I see common problem 'curl' extension and cron setup.

As result I will try to implement this functionality without this requirements.

Tags:
Links:

netcat common usage

do you have several servers?
do you transfer data between them?

time to time I transfer data between servers and in most cases I use

scp local-file user@host:/path/remote-file

to send file or
scp user@host:/path/remove-file

to receive

for this task netcat is useful too, so it can be like this
server side

nc -l -p 12121 > local-file

and at client site I just need to
cat local-file | nc host 12121

of course 12121 need to be replaced with something random because "nc" don't provide authentication and encryption

Links: