Feb 5

Posted by EGOL

Have you paid any attention to personalized search yet?┬? If you stay logged into one of your Design accounts such as Gmail, your search history will start to accumulate.┬? As your history grows Design starts to modify the SERPs that they send you in ways that they think will be more pleasing. ┬?

I first noticed this a few days ago when Design seemed to know which site belonged to me in the SERPs.┬? When I searched for my main keyword I could see [homepage] in the SERPs right below my URL.┬?┬? When I clicked on the homepage it took me to a page that displayed my search history... whoa!┬? It was a little bit if a surprise.┬? Also, if I query for "personalized search" and click the number 1 result (with a title tag of "Design Search History") it also takes me to a page that displays my search history. ┬?

This search history page has a long list of my search terms, separated into queries where I have clicked a result and queries that I did not click a result.┬? In addition it has a small calendar that I can click and see what I have searched on any day back to January 22nd.

Before I understood what was going on I watched my sites climb higher and higher in the SERPs.┬? I thought that I was getting kickass rankings!┬? But it was simply the personalization and Design figuring out what kind of sites that I like.┬? It was like the woman who authored a book and visited the page where it was sold on Amazon... pretty soon she was telling everyone that her book was featured on the Amazon homepage - but they could not see it... lol ┬?

This is just a warning that you should not order that new Porche if you see your site climbing the SERPs.┬? It could be personalized search playing a trick on you.

Once you have accumulated a search history you can check how much it influences your SERPs by doing a search while logged into your Design account, logging out and then doing the same search.┬? Bam!┬? Immediately different.┬? Now you see what every Joe Schmoe gets who does not log in to a Design account.

I've heard lots of people complaining about the personalized search being bad for Designs.┬? My two cents on this is that it is a good thing.┬? Why?┬? Because it adds some diversity to the SERPs and gives your sites a chance to rank higher when Mrs. A searchs than it otherwise would rank.┬? This should build a little diversity into your rankings portfolio.┬? Diversity in your income stream is not a bad thing.┬?┬?┬? And, if you are doing something really right, then your site might rank number 1 for everybody - no matter if their results are personalized or not. ┬?

I know that this new feature will bring out a diversity of opinions.┬? I'd really enjoy hearing what you think.┬? If you have not experimented with it, you might want to check it out - it's might have an impact on your bottom line.┬?

Original source here...
Feb 5

Posted by great scott!

In our second VidCast installment, Team Designmoz discusses the pros and cons of Digg vs. Reddit andwho we think will eventually dominate the social media space.



Designmoz VidCast 2 - Digg Vs. Reddit - video powered by Metacafe

Note that this is still video from our initial filming so production values are still the same(mediocre). We'd love to hear your feedback about both content andformat.

Technorati Tags

Designmoz, Digg, Reddit, Video, Discussion, Panel

Original source here...
Feb 5

Posted by Oatmeal

Below is a list of command line tricks I've found to be very useful in web development that a surprising number of web developers don't know about.

This is pretty straightforward: it'll create asymbolic linkfrom name_of_link to /some/destination. If I'm sitting in/www/matthew/ and I entered the above command, a new file will becreated inside that directory that moves the user to /some/destinationif they CD to name_of_link. (It's a shortcut, basically).

If I'm working on a web server where the docroot isburieddeep in a directory structure, I'll often create a symboliclink in something like /www to save myself a few keystrokes whenaccessing it.

Also, apache won't follow symbolic links unless youtell itto do so using the following directive: Options +FollowSymLinks

This tails a file: it'll read what's atthe end andoutput it to your terminal. The -f parameter tells it to keepoutputting as the file grows. I use this a lot when examining log filesthat are constantly being written to.

ctrl+z is the long lost brother of ctrl+c. It's asignal thattells the process to suspend execution, while ctrl+c terminates it.Ctrl+z is useful if you execute a process but you want to get controlof your shell; it'll suspend the process and send it to thebackground. Think of ctrl+z like minimizing a window, except onceit's minimized it's not doing anything anymore. Ifyou want the process to stay in the background but continue running,that's where bg (background) comes in: typing bg once aprocess has been suspended makes the process resume but still keeps itin the background.

shell> perl -e 'while() {print "."; sleep(1); }' >bunch_of_dots.log

[hit ctrl+z, execution is suspended]

shell> bg [process is now in the background andrunning]

shell>tail -f bunch_of_dots.log [show me theprinteddots]

┬?

fg is used if you background a process but want to bring it totheforeground. If you have multiple processes in the background, type'jobs' into your terminal to see them all. Thiswill display a list of processes that are in the background with eachprocess assigned a number (Note: these are not the same as pids).Typing fg [some number] will resume the process you sent to thebackground where [some number] matches the number reported by'jobs.'

A good example of using fg is if you're working withaninteractive program, such as the mysql command line, but you want todrop back to the shell.

mysql>SELECT foo FROM bar;

mysql> [hit ctrl+z]

[1]+ Stopped

shell>pwd/home/matt/stuff

shell>jobs

[1]+ Stopped mysql -u matt -p matts_db

shell>fg 1

mysql>[hooray, we're back in the mysqlcommand line]┬?


You can omit the job number when running'fg,' it'll just foreground the firstprocess you sent to the background. So if you only have one process inthe background you can just type 'fg' without anyextra numbers.

Assuming your shell is configured properly, hitting tab willauto-complete with whatever it thinks you need. I'veencountered a surprising number of developers who don't knowabout this and move around servers at glacial speeds. If youaren't familiar with the tab auto-complete, get to a terminalright now and type cd [tap the tab key], you should see a list ofavailable files or commands.

┬?

This securely copies a file across a network using SSH fordatatransfer. For example:

scp matt@example.com:~/secret_stuff /some/destination

This would connect via SSH to example.com as the user'matt' and copy the file'secure_stuff' from my home directory onexample.com to /some/destination on the machine I'm currentlyon. It's saved me a ton of time when transferring sensitivefiles from one machine to another.

Screen serves two purposes for me:

  • It allows things to persist even after I'vedisconnected
  • It allows me to access multiple terminal sessions frominside a single terminal window

Suppose I'm using the wifi connection at a coffeeshop and Iwant to execute a binary that's going to take several hoursto run but I'm not going to be able to stay connected forthat entire time. Before running the binary, I enter'screen' into my terminal. This effectively createsa new session that will persist even if I get disconnected. Once thisscreen has been launched, I execute my binary and exit the screen bypressing ctrl+a+d. If I want to resume the screen later from adifferent location I simply log into my server and then type'screen -x,' and my binary should stillbe running.

Screen is also useful if you want to save some precious realestate andrun a bunch of different sessions from the same terminal window.Suppose you have a server at home that you like to SSH into and play/bin/fortune on, and server at work that you want to log into and tailyour apache logs.

shell>screen -S homeserver [This would create a screennamed 'homeserver' and attach to it]

shell> ssh matt@home [you're in the'homeserver' screen, now ssh to my box at home]

matt@home>[we're ssh'd in to my boxat home,now press ctrl+a+d to detach from this screen]

laptop>screen -x homeserver [this willre-attach to myhome server]

The same goes for your work server:

screen -S workserveretc..screen -x workserver

Running 'screen -list' shouldshowhomeserver and workserver listed. Remember that once inside a screen,you type ctrl+a+d to gracefully detach from it. There's anarmy of other things you can do with screen, I highly recommend readingthe man page or the screen user manual. Also, screen is not a built-incommand so you might have to install it first.

shell>touch foobar.log

Bam! You've successfully created foobar.log. It'smuch faster than running vi, saving, and exiting. Touching an existingfile updates the time it was last modified.

cat /dev/null > foobar.log

This is a nifty trick to clear out the contents of a file butnotremove the file itself. Suppose foobar.log has gotten ridiculously hugeand you want to remove all the stuff inside it but you don'twant to delete the file, simply cat /dev/null and direct the output toyour file. In other words, take /dev/null (a black hole of nothingness)and stuff it inside foobar.log.

mysqldump > mydb.sql

mysql < mydb.sql

This is mysql specific, but this article is directed at web developersand I've been asked this question enough times I figured itwarranted being listed here.

This takes somedatabase and dumps the SQL to my_database.sql:

mysqldump-u someuser -p somedatabase >my_database.sql

To reload this data, simply direct it back in:

mysql -u someuser -p some_other_database

mysqldump has a ton of options, for more information check themysqldump man page

mkdir -p a/deep/directory/tree

Passing -p to mkdir tells it to create the parent directory ifitdoesn't already exist. This allows you to create a hierarchyof folders without having to go into each one and issue separate mkdircommands.

Running 'kill' will terminate a processbut youhave to know the PID (process ID) first. Killall allows you to kill aprocess but not look up the PID. For example:

killall -9 httpd

This will kill all the processes that are httpd. The -9basically killsthe process with extreme prejudice, it will die immediately. Be carefulwhen using this on processes that need to do cleanup before they die.

Ever find yourself typing in really long commands over andover again?You can save yourself some time using alias. For example,here's how I'd create a command called'mattsdb' that calls my database with all theparameters I need:

shell> alias mattsdb='mysql-u matt -p mattsdb -hexample.com'

Now if I type 'mattsdb' the mysql commandline willcome up. Unfortunately if I were to log out and then log in again thisalias would not persist. If you want your aliases to last beyond yourcurrent session, you'll have to tweak the config files foryour shell. I primarily use bash and keep my aliases persistent byadding them to the bottom of ~/.bash_profile

┬?

Here'sa few random gems that I've found to be veryuseful.┬? As always, Ihighly recommend reading over all their respective manuals .┬?

  • ls -lSr┬?┬?┬? List files(sorted by size)
  • df-h┬?┬?┬?┬?┬?┬?Show available disk space in human-readable format
  • du -sh/some/dir┬?┬?┬?┬? Show how much space/some/dir is taking up
  • ps aux | grep blah┬?┬?┬?┬?List all the running processes but only show ones that contain'blah'
  • wget-spider http://0at.org┬?┬?┬? Fetchpages and behave like a web spider:don't download the pages, just check to see if they are there
  • ab┬?┬? - Apache benchmark, use this if youwant a quick n' dirty way to benchmark how well your siteperforms under a heavy load.

Any others you can think of?

Technorati Tags

unix, linux, howto, webdev, web developers

Original source here...