15.7.08
Producing Great Search Results: Harder than It Looks, Part 1
By Jared M. Spool
Originally published: Jul 09, 2008
When creating a search results page, it's unfortunately too easy to produce an ineffective design. We know this because, in the course of our research, we've studied hundreds of search results pages. Many of the pages we've studied hurt the user's experience purely because of their design.
A slew of problems occur when users encounter an ineffective search results page: Users can't identify what is relevant to their search. Many of the links are irrelevant to them. They find it hard to tell the differences between the various results, making the choice difficult. These problems force users to click into each result, often ending with them abandoning the search altogether.
The good news is we've seen many effective search results pages. This means there's hope. It also means we can start to look for patterns that separate the effective designs from their less effective counterparts.
Good Design Doesn't Just Happen
In our research, every time we found a site where the search results were doing what they should, we also found a team that had worked really hard to make it that way.
Those teams all have something in common. They've experimented thoroughly, trying out dozens of designs"
14.7.08
SEO and importance of 503 Service Temporarily Unavailable
read more | digg story
13.7.08
Top RDF namespaces
Tim Finin, 1:00pm 23 September 2007
James Simmons posted about PTSW’s namespaces page, which has a complete list of the 388 namespaces they have seen with frequencies of use. We reported on the Swoogle’s list of the 100 most common RDF namespaces last year. There are some interesting differences. I’ve put the top 20 from each list side by side.
It’s interesting to note that there are only eight namespaces that are common to both lists — these are in black. The ones that are unique to a single list are in red.
PTSW Swoogle
http://xmlns.com/foaf/0.1/ http://www.w3.org/1999/02/22-rdf-syntax-ns#
http://blogs.yandex.ru/schema/foaf/ http://purl.org/dc/elements/1.1/
http://www.w3.org/2003/01/geo/wgs84_pos# http://www.w3.org/2000/01/rdf-schema#
http://rdfs.org/sioc/ns# http://xmlns.com/foaf/0.1/
http://rdfs.org/sioc/types# http://madskills.com/public/xml/rss/module/trackback/
http://www.geonames.org/ontology# http://webns.net/mvcb/
http://www.w3.org/2002/07/owl# http://www.w3.org/2003/01/geo/wgs84_pos#
http://purl.org/vocab/bio/0.1/ http://purl.org/vocab/bio/0.1/
http://smw.ontoware.org/2005/smw# http://purl.org/rss/1.0/modules/syndication/
http://www.w3.org/1999/02/22-rdf-syntax-… http://w"
12.7.08
Links to Windows Issues and Tweaks
While I do think that programmers, artists, engineers, etc should be compensated for their work, I do not think that the compensation always needs to be money. I think that an operating system (OS), which is critical to any system, should not have a price tag associated with it. It should be a communal effort and have it's own rewards.
That in mind, we live in a real world and there exist certain operating systems in our world that have built a business on charging people money. Hey, it is a market economy and if people are willing to pay, let them. However, they may not know there is an alternative.
Below are some links that can help you better configure your chosen OS or fix issues with it.
Modifying your Windows XP Boot logo
Changin the winxp logon screen
64bit - x64 - TweakVI for Windows Vista - 32 and 64bit
Encrypted WordPress Site Backups
read more | digg story
6.7.08
Adding Print Capability to your Site with CSS X
Adding Print Capability to your Site with CSS
Jul 01, 08
Its really nice to be able to print out a webpage you are reading using your browsers built-in print feature. Using CSS you can easily transform your site into a print-friendly site.
Today I received an email from a visitor to my site requesting that I add a way to print site articles on AskApache
Finally, you have so much great stuff that I need to print it take it offline so I can consume it. However, your theme prints just awful with huge empty spaces between paragraphs and especially with some of your example code, i.e. see “Redirect All Feeds to Feedburner’s MyBrand”. Not sure if you care but it would really be great for those of us who print if you could clean it up for nicer printing to fully print your examples and to get rid of the excessive whitespace.
4.7.08
AskApache Web Development
Bash Shell Script for Encrypted WordPress BackupsEnter your DOMAIN_ROOT and the location of your wp-config.php, and this script finds all the mysql settings by parsing the wp-config.php file, creates GPG encrypted backups, and saves your settings for future quickness."
2.7.08
Fsockopen Power Plays
fsockopen warningNote the warning sign, fsockopen is dangerous in the sense that you can crash your server, perform a DOS against your own server or other site, use up all your servers available sockets and fd descriptors, use up your bandwidth, etc.. Shouldn’t be a problem unless you are being malicious or careless.
Here are some BOSS fsockopen functions I hacked together yesterday for use in my AskApache Crazy Cache WordPress Plugin. I’ve used code and ideas from 100’s of authors, projects, and docs to try to make this the very best I can.
Intro
This is a working example employing as many of the best-practices, tips, and tricks for using fsockopen on remote streams that I could find."
Fsockopen Power Plays
read more | digg story
20.6.08
Fyodor's Security Reading List
- The Hacker Howto. This excellent essay by Eric Raymond (ESR) gives very insightful instruction on how to become a respected member of the hacker community.
- The Risks of Key Recovery, Key Escrow, and Trusted Third-Party Encryption A great paper released 27 May 1997 by several of the biggest names in encryption and computer security, including Steven Bellovin, Matt Blaze, Whitfield Diffie, and John Gilmore. This describes exactly why we aren't going to let the government backdoor our crypto programs.
- Smashing The Stack For Fun And Profit A great paper on buffer overflows by Aleph One. It is from Phrack49.
- Mudge's tutorial on writing Buffer overflows. Another good paper.
- IP hijacking paper A paper by Laurent Joncheray on the workings of IP hijacking.
- The Hacker Crackdown A truly excellent book by Bruce Sterling about the early hackers. Mr. Sterling kindly (and much to the dismay of his publisher) decided to release the book freely over the internet.
- Approaching Zero Another hacker book in electronic form. This one is about British phreaks.
- Security Problems in the TCP/IP Protocol Suite An old but very interesting (and sadly, still applicable in many ways) paper by Steven Bellovin himself.
- Them and Us:Chapter 6 of Paul Taylor's hacker book (basically publishing his dissertation)
- cifs.txt *Hobbit*'s excellent CIFS insecurities paper.
- Hacker Encyclopedia This is a huge compendium of hacker/computer/science fiction information written by Logic Bomb. It is not word wrapped, so you will probably want to read it with
vi
oremacs
rather than netscape - Tamperproof Smart Cards This is a very interesting paper by Ross J. Anderson
It brings up a number of very interesting issues about defeating smart card security. - Murphy's Law and Computer Security A paper by Wietse Venema which details many often overlooked aspects of computer security and program bugs. This paper is loaded with examples.
- Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection A classic apper by Thomas Ptacek and Timothy Newsham on techniques for evading Intrusion Detection Systems. This was written in '98, but much of it still rings true in '01 :( . [PDF version]
Lighter Reading / Misc
- What makes UNIX users so smart? An excellent essay on the relationship between literature and the powerful, flexible command-line interface to UNIX.
- Richard Stallman's excellent essay on the right to read. It is short and insightful. Take 2 minutes and read it!
- "The hollowing out of ourselves" an excellent essay by Stephen Talbott about the pathetic lack of real content on the web today and the pointlessness of embracing new technology for its own sake, rather than to achieve any actual ends.
- "Why Cryptography is Harder Than it Looks" an essay by Bruce Schneier describing the many problems unique to developing cryptosystems. It really is more interesting than it sounds.
- Concerning Hackers Who Break into Computer Systems by Dorothy E. Denning This is a somewhat dry, but rather interesting paper by someone best known for siding with the spooks and favoring export controls on cryptography. She interviewed many hackers and it is interesting to see things through her eyes.
- UNIX Wars A hilarious spoof on star wars involving the fight between common users and fascist administrators who seek to destroy all productivity.
Tainted Data PHP Functions
[Summary]
This file describe the sources from which tainted data can be imported.
An conservative approach is taken. Everything that retrieves data from
a source outside PHP, such as the file system or a database, is considered
tainted. Notice that this should be adaptable within the tool.
[Language constructs]
Predefined variables:
$_SERVER $_SESSION
$_GET $_REQUEST
$_POST $_FILES
$_COOKIE
[Internal functions]
Most functions only return tainted data if the parameter given contains tainted data.
* base64_decode | Returns decoded string, could contain tainted data
* base_convert | Returns decoded string with letters if toBase is high enough
* basename | Returns a part of a filename.
* bzread | Returns a string coming from a bz compressed file handle
* chr | Returns the string-representation of the ASCII-number. Could be dangerous if a lot are concatted
* convert_cyr_string | Returns string in cyr-encoding
* current | Returns the current element of an array
* dba_nextkey | Returns the next key in a database
* dns_get_record | Fetch DNS Resource Records associated with a hostname
* end | Returns last element of an array
* extract | Import variables into the current symbol table from an array
* fdf_get_attachment | Extracts an uploaded file from a FDF document
* fdf_open | Opens an FDF document
* fdf_open_string | Opens an FDF-file
* fdf_save_string | Returns the FDF document as a string
* fgetc | Get one character from a file pointer. Could be dangerous if a lot are concatted
* fgetcsv | Gets line from file pointer and parse for CSV fields
* fgets | Gets line from file pointer
* fgetss | Gets line from file pointer and strip HTML tags
* file | Reads entire file into an array
* file_get_contents | Reads entire file into a string
* fopen | Opens a file, binds a resource
* fread | Returns a string of a file read
* func_get_arg | Return an item from the argument list
* func_get_args | Returns an array comprising a function's argument list
* get_browser | Returns info about the browser, using USER_AGENT
* get_headers | Fetches all the headers sent by the server in response to a HTTP request
* get_meta_tags | Extracts all meta tag content attributes from a file and returns an array
* getallheaders | Fetch all HTTP request headers
* getenv | Gets the value of an environment variable, some come from the user
* getopt | Gets options from the command line argument list
* gettext | Lookup a message in the current domain
* gzdeflate | Deflate a string
* gzfile | Read gz-file into an array
* gzgetss | Get a line from a gz-file and strip HTML-tags
* gzopen | Opens a gz-file
* gzread | Reads a gz-file
* headers_list | Returns a list of response headers sent (or ready to send)
* hebrev | Convert logical Hebrew text to visual text
* hebrevc | Same as Hebrev, with newline conversion
* highlight_string | Highlights a string
* html_entity_decode | Convert all HTML entities to their applicable characters
* ibase_blob_import | Create blob, copy file in it, and close it
* iconv | Convert string to requested character encoding
* id3_get_tag | Get all information stored in ID3-tags
* imap_base64 | Decode BASE64 encoded text
* imap_bodystruct | Read the structure of a specified body section of a specific message
* imap_fetchbody | Fetch a particular section of the body of the message
* imap_fetchheader | Returns header for a message
* imap_fetchstructure | Read the structure of a particular message
* imap_headerinfo | Read the header of the message
* imap_headers | Returns headers for all messages in a mailbox
* imap_mime_header_decode | Decode MIME header elements
* implode | Join array elements with a string
* imap_utf8 | Converts MIME-encoded text to UTF-8
* import_request_variables | Import GET/POST/Cookie variables into the global scope
* ircg_nickname_unescape | Decodes encoded nickname
* join | Alias of implode
* ldap_get_values | Get all values from a result entry
* mb_decode_mimeheader | Decode string in MIME header field
* mb_parse_str | Parse GET/POST/COOKIE data and set global variable
* mcrypt_decrypt | Decrypts crypttext with given parameters
* mdecrypt_generic | Decrypt data
* msession_get | Get value from session
* msession_get_array | Get array of msession variables
* msession_get_data | Get data session unstructured data
* msg_receive | Receive a message from a message queue
* ngettext | Plural version of gettext
* ob_get_contents | Return the contents of the output buffer
* ob_get_flush | Flush the output buffer, return it as a string and turn off output buffering
* parse_ini_file | Parse a configuration file
* parse_str | Parses the string into variables
* parse_url | Parse a URL and return its components
* parsekit_compile_string | Compile a string of PHP code and return the resulting op array
* pfpro_process_raw | Process a raw transaction with Payflow Pro
* pfsockopen | Open persistent Internet or Unix domain socket connection
* pg_copy_to | Copy a table to an array
* pg_fetch_all | Fetches all rows from a result as an array
* pg_fetch_array | Fetch a row as an array
* pg_fetch_assoc | Fetch a row as an associative array
* pg_fetch_result | Returns values from a result resource
* pg_fetch_row | Get a row as an enumerated array
* rawurldecode | Decode URL-encoded strings
* readline | Reads a line
* readlink | Returns the target of a symbolic link
* scandir | List files and directories inside the specified path
* shm_get_var | Returns a variable from shared memory
* socket_read | Reads a maximum of length bytes from a socket
* sprintf | Return a formatted string
* SQLiteUnbuffered->fetchAll | Fetches all rows from a result set as an array of arrays
* SQLiteUnbuffered->fetch | Fetches the next row from a result set as an array
* SQLiteDatabase->fetchColumnTypes | Return an array of column types from a particular table
* SQLiteUnbuffered->fetchObject | Fetches the next row from a result set as an object
* SQLiteUnbuffered->fetchSingle | Fetches the first column of a result set as a string
* SQLiteDatabase->singleQuery | Executes a query and returns either an array for one single column or the value of the first row
* stripcslashes | Un-quote string quoted with addcslashes()
* stripslashes | Un-quote string quoted with addslashes()
* strval | Get string value of a variable
* sybase_fetch_array | Fetch row as array
* sybase_fetch_assoc | Fetch a result row as an associative array
* sybase_fetch_assoc | Fetch a result row as an associative array
* sybase_fetch_object | Fetch a row as an object
* sybase_fetch_row | Get a result row as an enumerated array
* sybase_result | Get result data
* token_get_all | Split given source into PHP tokens
* unpack | Unpack data from binary string
* vsprintf | Return a formatted string
[PHP5 only]
* convert_uudecode (5) | Returns an uu-decoded string
* iconv_mime_decode | Decodes a MIME-header field
* iconv_mime_decode_headers| Decodes several MIME-header field
* php_strip_whitespace | Return source with stripped comments and whitespace
* SQLiteDatabase->arrayQuery | Execute a query against a given database and returns an array
* stream_get_contents | Reads remainder of a stream into a string
* stream_get_line | Gets line from stream resource up to a given delimiter
12.6.08
Automated Snapshot Backup Shell-Script with cpio
read more | digg story
11.6.08
The PHP Benchmark
This project has been a long time dream for me and I'd love to keep on learning about what I'm doing right / wrong and how we should approach this topic. If you have any information / opinions that you would like to share (especially about the larger bottleneck problems), please contact me via my portfolio.
Chris Vincent
PHPBench.com was constructed as a way to open people's eyes to the fact that not every PHP code snippet will run at the same speed. You may be surprised at the results that this page generates, but that is ok. This page was also created so that you would be able to find discovery in these statistics and then maybe re-run these tests in your own server environment to play around with this idea yourself, by using the code examples (these code examples are automatically generated and as the code in my .php files change, so do they).
NOTE: You must keep in mind to refresh this page a few times to 'catch' the right result. The numbers change sometimes drastically during each refresh. I assume that this is because of PHP's memory garbage collector that drops in randomly and also other processes"
10.6.08
The tragic tale of a hacked blog
read more | digg story
Various Social and Blogger Sites
Bebo Bebo http://bebo.com/Profile.jsp?MemberId=
Blogger Blogger http://www.blogger.com/profile/
del.icio.us del.icio.us http://del.icio.us/
Digg Digg http://digg.com/users/
DOPPLR DOPPLR http://www.dopplr.com/traveller/
eBay eBay eBay User ID:
Facebook Facebook http://www.facebook.com/profile.php?id=
Flickr Flickr screen name or id:
FriendFeed FriendFeed http://friendfeed.com/
Friendster Friendster http:// .blogs.friendster.com/
Google Calendar Google Calendar email:
Google Reader Google Reader http://www.google.com/reader/shared/
Jaiku Jaiku http:// .jaiku.com/
Jumpcut Jumpcut http://www.jumpcut.com/
Kiva Kiva http://www.kiva.org/lender/
Last.fm Last.fm http://www.last.fm/user/
LinkedIn LinkedIn http://www.linkedin.com/in/
LiveJournal LiveJournal username:
Ma.gnolia Ma.gnolia http://ma.gnolia.com/people/
Multiply Multiply http:// .multiply.com/
MyBlogLog Actions MyBlogLog Actions
Service Added!
Blog Comments Blog Comments
Service Added!
MySpace MySpace http://www.myspace.com/
Netflix Netflix http://rss.netflix.com/QueueRSS?id= (Get your Netflix ID)
OpenID OpenID url:
Plaxo Plaxo email:
Pownce Pownce http://pownce.com/ /
Second Life Second Life name:
Seesmic Seesmic http://seesmic.com/
Shelfari Shelfari http://www.shelfari.com/
StumbleUpon StumbleUpon http:// .stumbleupon.com
Technorati Technorati http://www.technorati.com/people/technorati/
The DJ List The DJ List http://www.thedjlist.com/djs/
30 Boxes 30 Boxes url:
ThisNext ThisNext http://www.thisnext.com/by/ /
Trulia Trulia http://www.trulia.com/voices/profile/
Tumblr Tumblr http:// .tumblr.com
Twitter Twitter http://twitter.com/
TypeKey TypeKey http://profile.typekey.com/ /
Upcoming Upcoming http://upcoming.yahoo.com/user/
Wakoopa Wakoopa http://wakoopa.com/
Wink Wink http://wink.com/p/
Yahoo! Answers Yahoo! Answers http://answers.yahoo.com/my/profile?show=
Yelp Yelp http://www.yelp.com/user_details?userid=
YouTube YouTube http://youtube.com/user/
Zillow Zillow http://www.zillow.com/profile/
Zorpia Zorpia http://www.zorpia.com/
About XMPP
The Extensible Messaging and Presence Protocol (XMPP) is an open XML technology for real-time communication, which powers a wide range of applications including instant messaging, presence, media session management, shared editing, whiteboarding, collaboration, lightweight middleware, content syndication, and generalized XML routing.
The core technology was invented by Jeremie Miller in 1998, refined in the Jabber open-source community in 1999 and 2000, and formalized by the IETF in 2002 and 2003, resulting in publication of the XMPP RFCs in 2004.
Although the core technology is stable, the XMPP community continues to define various XMPP extensions through an open standards process run by the XMPP Standards Foundation. There is also an active community of open-source and commercial developers based at jabber.org."
DataPortability.org - Share and remix data using open standards
Mission: To Consult, Design, Educate and Advocate Interoperable Data Portability to Users, Developers and Vendors.
Definition: Data Portability is the option to use your personal data between trusted applications and vendors."
Plaxo » A Recipe for OpenID-Enabling Your Site
Prepared by Joseph Smarr at Plaxo on July 18, 2007.
This is a step-by-step tutorial guide for implementing OpenID consumer-side support with a web site that already has users with accounts. It will explain how to easily let new users sign up for an account on your site using their OpenID URL and how to let existing users attach their OpenID(s) so they can sign in using them.
I developed this guide by talking to fellow OpenID developers at the Internet Identity Workshop and elsewhere, and by implementing OpenID support for Plaxo using these instructions. I've also posted detailed screenshots of Plaxo's implementation for reference. I've intended for this guide to be clear and complete and to follow best-practices, but if you have any questions or feedback, please let me know at joseph@plaxo.com or by posting a comment on Plaxo's blog.
This guide may look a bit long, but my hope is you can just follow it straight through without thinking much, and you'll be completely done by the time you reach the end! :)
Overview
I'm assuming your web site currently has:
* A user database with rows for each user
o Each user has a unique internal user ID
o Users currently sign in using a username/e-mail and password
*"
9.6.08
Digg Joins the DataPortability Project
read more | digg story
PHP Script - Anti-Spam Human-Checker
read more | digg story