michaelfox + chrome 68
Chrome Web Store - Firebug Console
4 days ago by michaelfox
Explore Google Chrome extension API with a Firebug console
With this extension you can use chrome API such as chrome.extension.*, chrome.tabs.*
Extension developers may use it to test any javascript code against google API.
javascript
chrome
firebug
console
extensions
tools
plugins
chrome.extension
chrome.tabs
With this extension you can use chrome API such as chrome.extension.*, chrome.tabs.*
Extension developers may use it to test any javascript code against google API.
4 days ago by michaelfox
Google -1 — Gist
june 2011 by michaelfox
https://plusone.google.com/*
www.google.com##BUTTON[name="eswidget"]
adblock
google
plusone
social
addons
browser
chrome
firefox
snippet
www.google.com##BUTTON[name="eswidget"]
june 2011 by michaelfox
PHP Console - Google Chrome Extension
june 2011 by michaelfox
There is Lagger - flexible open-source PHP library for errors/exceptions/debugs handling in PHP http://code.google.com/p/lagger
Lightweight alternative of Lagger is class PhpConsole
http://code.google.com/p/php-console/source/browse/trunk/PhpConsole
PHP Console is extension that displays errors/exceptions/debug messages handled by class PhpConsole and Lagger in Google Chrome console and in notification popups.
Changelog http://code.google.com/p/php-console/wiki/Changelog
Report bugs and features http://code.google.com/p/php-console/issues
Author http://linkedin.com/in/barbushin
See also my JavaScript Errors Notifier extension http://goo.gl/uo9Ro
--- FEATURES ---
✔ No icons on Toolbar, only in Address bar (when enabled on server)
✔ Configure from context menu (just right click on web-page)
✔ Handle exceptions and all errors (even FATAL)
✔ Display debug and errors messages in Google Chrome console
✔ Display debug and errors messages in Notification popups
✔ First popup is displayed with 3 second lifetime
✔ All other popups are displayed with configured lifetime
✔ Popup is not hiding if mouse is over or if popup window is selected
✔ All popups can be closed by clicking on close icon (x) of any popup
✔ Display errors/exceptions backtrace in console (click on >Object)
✔ Display errors/exceptions backtrace in notification (click on #source_path link)
✔ Display JavaScript errors messages in Notification popups
✔ It does not overrides user-defined JavaScript errors handlers
✔ Errors source URLs in popup are clickable
✔ Ignore repeated errors
✔ Ignore Google Chrome extensions internal errors
✔ Catch messages from any sources
✔ Web page
✔ AJAX
✔ IFrame
✔ Make custom actions on errors and debug messages (with Lagger):
✔ Log to file
✔ Send Email
✔ Send SMS
✔ Send to STDOUT
--- HOW TO USE ---
### With PhpConsole class:
1. Install PHP Console extension
2. Download PhpConsole class - http://code.google.com/p/php-console/downloads
3. Test code:
require_once('PhpConsole.php');
PhpConsole::start();
// test
debug('test message');
debug('SELECT * FROM users', 'sql');
unkownFunction($unkownVar);
### With Yii Framework extension using class PhpConsole
http://www.yiiframework.com/extension/php-console
### With Symfony Framework plugin using class PhpConsole
http://www.symfony-project.org/plugins/stPhpConsolePlugin
### With WordPress plugin using class PhpConsole
http://wpengineer.com/2197/php-console-with-chrome-and-wordpress
### With Lagger:
1. Install PHP Console extension
2. Download Lagger - http://code.google.com/p/lagger/downloads
3. Test code:
define('LAGGER_BASE_DIR', '../library/');
function autoloadLaggerClasses($class) {
if(strpos($class, 'Lagger_') === 0) {
require_once (LAGGER_BASE_DIR . str_replace('_', '/', $class) . '.php');
}
}
spl_autoload_register('autoloadLaggerClasses');
$laggerES = new Lagger_Eventspace();
$debug = new Lagger_Handler_Debug($laggerES);
$errors = new Lagger_Handler_Errors($laggerES);
$exceptions = new Lagger_Handler_Exceptions($laggerES);
$chromeConsole = new Lagger_Action_ChromeConsole();
$debug->addAction($chromeConsole);
$errors->addAction($chromeConsole);
$exceptions->addAction($chromeConsole);
function debug($message, $tags = null) {
$GLOBALS['debug']->handle($message, $tags);
}
// test
debug('debug message', 'some,test,tags');
echo $unkownVar;
unkownFunction();
See video:
http://www.youtube.com/watch?v=hBCMB2Jiyvk
For all available Lagger features using see:
http://code.google.com/p/lagger/source/browse/trunk/examples/lagger_init.php
tools
browser
plugins
extensions
chrome
debug
php
console
logging
Lightweight alternative of Lagger is class PhpConsole
http://code.google.com/p/php-console/source/browse/trunk/PhpConsole
PHP Console is extension that displays errors/exceptions/debug messages handled by class PhpConsole and Lagger in Google Chrome console and in notification popups.
Changelog http://code.google.com/p/php-console/wiki/Changelog
Report bugs and features http://code.google.com/p/php-console/issues
Author http://linkedin.com/in/barbushin
See also my JavaScript Errors Notifier extension http://goo.gl/uo9Ro
--- FEATURES ---
✔ No icons on Toolbar, only in Address bar (when enabled on server)
✔ Configure from context menu (just right click on web-page)
✔ Handle exceptions and all errors (even FATAL)
✔ Display debug and errors messages in Google Chrome console
✔ Display debug and errors messages in Notification popups
✔ First popup is displayed with 3 second lifetime
✔ All other popups are displayed with configured lifetime
✔ Popup is not hiding if mouse is over or if popup window is selected
✔ All popups can be closed by clicking on close icon (x) of any popup
✔ Display errors/exceptions backtrace in console (click on >Object)
✔ Display errors/exceptions backtrace in notification (click on #source_path link)
✔ Display JavaScript errors messages in Notification popups
✔ It does not overrides user-defined JavaScript errors handlers
✔ Errors source URLs in popup are clickable
✔ Ignore repeated errors
✔ Ignore Google Chrome extensions internal errors
✔ Catch messages from any sources
✔ Web page
✔ AJAX
✔ IFrame
✔ Make custom actions on errors and debug messages (with Lagger):
✔ Log to file
✔ Send Email
✔ Send SMS
✔ Send to STDOUT
--- HOW TO USE ---
### With PhpConsole class:
1. Install PHP Console extension
2. Download PhpConsole class - http://code.google.com/p/php-console/downloads
3. Test code:
require_once('PhpConsole.php');
PhpConsole::start();
// test
debug('test message');
debug('SELECT * FROM users', 'sql');
unkownFunction($unkownVar);
### With Yii Framework extension using class PhpConsole
http://www.yiiframework.com/extension/php-console
### With Symfony Framework plugin using class PhpConsole
http://www.symfony-project.org/plugins/stPhpConsolePlugin
### With WordPress plugin using class PhpConsole
http://wpengineer.com/2197/php-console-with-chrome-and-wordpress
### With Lagger:
1. Install PHP Console extension
2. Download Lagger - http://code.google.com/p/lagger/downloads
3. Test code:
define('LAGGER_BASE_DIR', '../library/');
function autoloadLaggerClasses($class) {
if(strpos($class, 'Lagger_') === 0) {
require_once (LAGGER_BASE_DIR . str_replace('_', '/', $class) . '.php');
}
}
spl_autoload_register('autoloadLaggerClasses');
$laggerES = new Lagger_Eventspace();
$debug = new Lagger_Handler_Debug($laggerES);
$errors = new Lagger_Handler_Errors($laggerES);
$exceptions = new Lagger_Handler_Exceptions($laggerES);
$chromeConsole = new Lagger_Action_ChromeConsole();
$debug->addAction($chromeConsole);
$errors->addAction($chromeConsole);
$exceptions->addAction($chromeConsole);
function debug($message, $tags = null) {
$GLOBALS['debug']->handle($message, $tags);
}
// test
debug('debug message', 'some,test,tags');
echo $unkownVar;
unkownFunction();
See video:
http://www.youtube.com/watch?v=hBCMB2Jiyvk
For all available Lagger features using see:
http://code.google.com/p/lagger/source/browse/trunk/examples/lagger_init.php
june 2011 by michaelfox
XV - Google Chrome Extension
june 2011 by michaelfox
XV is an XML viewer for Google Chrome. Online demo: http://media.chikuyonok.ru/xmlview/
*** Version 1.0.3 overrides native XML tree viewer in Chrome 11.x. There might be a flash of native viewer (depends on XML size), this may be fixed in future versions of Google Chrome only. ***
Features:
* Collapsable elements: Alt+click to expand/collapse all descendant elements. Double-click on opening or closing tag to collapse it.
* Outline for better document overview
* Search by name or XPath. By default uses simple search mode which looks for a partial match in element‘s or attribute’s name; use special symbols like '/' or '[' to search by XPath
* Quick XPath mode: hold down Command (Mac) or Ctrl (PC) key while moving mouse cursor over element‘s or attribute’s name to enter Quick XPath mode. Use Shift key to cycle through available XPath variants and then drag’n’drop element under cursor into text editor, click on element will copy XPath to clipboard
tools
browser
plugins
extensions
chrome
xml
*** Version 1.0.3 overrides native XML tree viewer in Chrome 11.x. There might be a flash of native viewer (depends on XML size), this may be fixed in future versions of Google Chrome only. ***
Features:
* Collapsable elements: Alt+click to expand/collapse all descendant elements. Double-click on opening or closing tag to collapse it.
* Outline for better document overview
* Search by name or XPath. By default uses simple search mode which looks for a partial match in element‘s or attribute’s name; use special symbols like '/' or '[' to search by XPath
* Quick XPath mode: hold down Command (Mac) or Ctrl (PC) key while moving mouse cursor over element‘s or attribute’s name to enter Quick XPath mode. Use Shift key to cycle through available XPath variants and then drag’n’drop element under cursor into text editor, click on element will copy XPath to clipboard
june 2011 by michaelfox
Scraper - Google Chrome Extension
june 2011 by michaelfox
Scraper is a simple data mining extension for Google Chrome™ that is useful for online research when you need to quickly analyze data in spreadsheet form.
To use it: highlight a part of the webpage you'd like to scrape, right-click and choose "Scrape similar...". Anything that's similar to what you highlighted will be rendered in a table ready for export, compatible with Google Docs™.
This is a work-in-progress (i.e. there are bugs), and is currently intended for intermediate to advanced users who are comfortable with XPath, though jQuery is also supported to an extent.
scraper
data
tools
browser
plugins
extensions
chrome
To use it: highlight a part of the webpage you'd like to scrape, right-click and choose "Scrape similar...". Anything that's similar to what you highlighted will be rendered in a table ready for export, compatible with Google Docs™.
This is a work-in-progress (i.e. there are bugs), and is currently intended for intermediate to advanced users who are comfortable with XPath, though jQuery is also supported to an extent.
june 2011 by michaelfox
drdrang/te-url-snippets - GitHub
june 2011 by michaelfox
A set of TextExpander snippets for getting and transforming the URLs of current browser pages.
These are the TextExpander snippets I use to capture the URLs of pages I'm browsing and, in some cases, transform them. They use either AppleScript directly or Python with the appscript library and work with both Safari and Google Chrome.
github
github-repo
applescript
chrome
textexpander
inspiration
inspiration.applescript
inspiration.textexpander
These are the TextExpander snippets I use to capture the URLs of pages I'm browsing and, in some cases, transform them. They use either AppleScript directly or Python with the appscript library and work with both Safari and Google Chrome.
june 2011 by michaelfox
mockko/livereload - GitHub
april 2011 by michaelfox
gem install livereload
chrome
javascript
safari
extension
april 2011 by michaelfox
bdesham/py-chrome-bookmarks - GitHub
march 2011 by michaelfox
# py-chrome-bookmarks
Simple Python scripts to convert [Google Chrome](http://www.google.com/chrome)’s bookmarks and history to the [standard HTML-ish bookmarks file format](http://msdn.microsoft.com/en-us/library/aa753582%28v=vs.85%29.aspx). Scripts written by Benjamin Esham <bdesham@gmail.com>.
The functionality to do this for bookmarks is already built into Chrome (select Bookmarks → Bookmarks Manager, then click “Organize” and select “Export Bookmarks…”). I wrote this script to be able to perform this conversion in a cron script.
## Usage
### Bookmarks script
From the command line, do
python py-chrome-bookmarks.py .../path/to/Chrome/Bookmarks output.html
The script will ignore URLs that start with “javascript:”.
### History script
From the command line, do
python py-chrome-history.py .../path/to/Chrome/History output.html
**Note:** it’s probably necessary to quit Chrome before running this so that the history database isn’t locked. Alternately, make a copy of Chrome’s History file and run the script on that.
The script will ignore history entries with empty titles.
python
chrome
launchbar
history
bookmarks
Simple Python scripts to convert [Google Chrome](http://www.google.com/chrome)’s bookmarks and history to the [standard HTML-ish bookmarks file format](http://msdn.microsoft.com/en-us/library/aa753582%28v=vs.85%29.aspx). Scripts written by Benjamin Esham <bdesham@gmail.com>.
The functionality to do this for bookmarks is already built into Chrome (select Bookmarks → Bookmarks Manager, then click “Organize” and select “Export Bookmarks…”). I wrote this script to be able to perform this conversion in a cron script.
## Usage
### Bookmarks script
From the command line, do
python py-chrome-bookmarks.py .../path/to/Chrome/Bookmarks output.html
The script will ignore URLs that start with “javascript:”.
### History script
From the command line, do
python py-chrome-history.py .../path/to/Chrome/History output.html
**Note:** it’s probably necessary to quit Chrome before running this so that the history database isn’t locked. Alternately, make a copy of Chrome’s History file and run the script on that.
The script will ignore history entries with empty titles.
march 2011 by michaelfox
Objective Development Forums • View topic - Add Google Chrome bookmarks
march 2011 by michaelfox
#!/usr/bin/python
import json
import datetime
import cgi
import os
import sys
user = os.getlogin()
input_filename = "/Users/%s/Library/Application Support/Google/Chrome/Default/Bookmarks" % user
# modify if necessary
output_filename = "/Users/%s/Documents/chrome-bookmarks.html" % user
input_file = open(input_filename)
bookmark_data = json.load(input_file)
output_file = open(output_filename, 'w', 0)
sys.stdout = output_file
def print_bookmarks(bookmarks):
for entry in bookmarks:
if entry['type'] == 'folder':
if not len(entry['children']) == 0:
print ('<DT><H3 FOLDED ADD_DATE="%s">%s</H3>' % (entry['date_added'], entry['name'])).encode('utf-8')
next_folder = entry['children']
print '<DL><p>'
print_bookmarks(next_folder)
print '</DL><p>'
else:
print ('<DT><A DATE_ADDED="%s" HREF="%s">%s</A>' % (entry['date_added'], cgi.escape(entry['url']), entry['name'])).encode('utf-8')
print '<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<Title>Bookmarks</Title>\n<H1>Bookmarks</H1><DL>\n'
roots = bookmark_data['roots']
for entry in roots:
print ('<DT><H3 FOLDED ADD_DATE="%s">%s</H3>' % (roots[entry]['date_added'], entry)).encode('utf-8')
print_bookmarks(roots[entry]['children'])
print "</DL><p>"
print "</DL>"
python
chrome
launchbar
import json
import datetime
import cgi
import os
import sys
user = os.getlogin()
input_filename = "/Users/%s/Library/Application Support/Google/Chrome/Default/Bookmarks" % user
# modify if necessary
output_filename = "/Users/%s/Documents/chrome-bookmarks.html" % user
input_file = open(input_filename)
bookmark_data = json.load(input_file)
output_file = open(output_filename, 'w', 0)
sys.stdout = output_file
def print_bookmarks(bookmarks):
for entry in bookmarks:
if entry['type'] == 'folder':
if not len(entry['children']) == 0:
print ('<DT><H3 FOLDED ADD_DATE="%s">%s</H3>' % (entry['date_added'], entry['name'])).encode('utf-8')
next_folder = entry['children']
print '<DL><p>'
print_bookmarks(next_folder)
print '</DL><p>'
else:
print ('<DT><A DATE_ADDED="%s" HREF="%s">%s</A>' % (entry['date_added'], cgi.escape(entry['url']), entry['name'])).encode('utf-8')
print '<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<Title>Bookmarks</Title>\n<H1>Bookmarks</H1><DL>\n'
roots = bookmark_data['roots']
for entry in roots:
print ('<DT><H3 FOLDED ADD_DATE="%s">%s</H3>' % (roots[entry]['date_added'], entry)).encode('utf-8')
print_bookmarks(roots[entry]['children'])
print "</DL><p>"
print "</DL>"
march 2011 by michaelfox
jcarbaugh/chrome-huffduffit - GitHub
march 2011 by michaelfox
Huffduffer extension for Google Chrome
huffduffer
mp3
podcast
google
chrome
inspiration
code
repo
github
extension
march 2011 by michaelfox
ecmanaut: Google BOM feature: ms since pageload
march 2011 by michaelfox
I expect this feature has been around for quite a while already, but this is the first time I have seen it: stealthy browser object model improvements letting a web page figure out how many milliseconds ago it was loaded. It presumably works in any web browser that is Chrome or that runs the Google Toolbar:
function msSincePageLoad() {
try {
var t = null;
if (window.chrome && chrome.csi)
t = chrome.csi().pageT;
if (t === null && window.gtbExternal)
t = window.gtbExternal.pageT();
if (t === null && window.external)
t = window.external.pageT;
} catch (e) {};
return t;
}
In Chrome it (chrome.csi().pageT, that is) even reports the time with decimals, for sub-millisecond precision.
chrome
bom
debugging
profiling
function msSincePageLoad() {
try {
var t = null;
if (window.chrome && chrome.csi)
t = chrome.csi().pageT;
if (t === null && window.gtbExternal)
t = window.gtbExternal.pageT();
if (t === null && window.external)
t = window.external.pageT;
} catch (e) {};
return t;
}
In Chrome it (chrome.csi().pageT, that is) even reports the time with decimals, for sub-millisecond precision.
march 2011 by michaelfox
Tutorial: OAuth - Google Chrome Extensions - Google Code
march 2011 by michaelfox
OAuth is an open protocol that aims to standardize the way desktop and web applications access a user's private data. OAuth provides a mechanism for users to grant access to private data without sharing their private credentials (username/password). Many sites have started enabling APIs to use OAuth because of its security and standard set of libraries.
This tutorial will walk you through the necessary steps for creating a Google Chrome Extension that uses OAuth to access an API. It leverages a library that you can reuse in your extensions.
This tutorial uses the Google Documents List Data API as an example OAuth-enabled API endpoint.
chrome
api
extension
reference
resources
documentation
tutorial
oauth
This tutorial will walk you through the necessary steps for creating a Google Chrome Extension that uses OAuth to access an API. It leverages a library that you can reuse in your extensions.
This tutorial uses the Google Documents List Data API as an example OAuth-enabled API endpoint.
march 2011 by michaelfox
[chrome] Revision 39385
march 2011 by michaelfox
Adding @@extension_id reserved message to l10n message map for extension.
It's added outside of ExtensionMessageBundle so that non-localized extensions can use it. Developer doesn't have to define default_locale in the manifest in order to get it working.
With this change every extension css file will go through message replacement process (only localized extensions went through that before).
This change will allow following construct in extension css:
body {
background-image:url('chrome-extension://__MSG_@@extension_id__/background.png');
}
BUG=35208
TEST=Add an background image to your extension, and refer to it from css file using __MSG_@@extension_id__. Image should show up in the background.
Review URL: http://codereview.chromium.org/628009
chrome
api
extension
reference
It's added outside of ExtensionMessageBundle so that non-localized extensions can use it. Developer doesn't have to define default_locale in the manifest in order to get it working.
With this change every extension css file will go through message replacement process (only localized extensions went through that before).
This change will allow following construct in extension css:
body {
background-image:url('chrome-extension://__MSG_@@extension_id__/background.png');
}
BUG=35208
TEST=Add an background image to your extension, and refer to it from css file using __MSG_@@extension_id__. Image should show up in the background.
Review URL: http://codereview.chromium.org/628009
march 2011 by michaelfox
Managing updates in Google Software Update - Google Help
march 2011 by michaelfox
Update Frequency
To change how frequently Google Software Update checks for updates, execute the following in the Terminal application:
$ defaults write com.google.Keystone.Agent checkInterval <frequency>
where <frequency> is the elapsed time in seconds between update checks.
To disable Google Software Update from checking for updates, execute the following in the Terminal application:
$ defaults write com.google.Keystone.Agent checkInterval 0
Manual Updates
Google Software Update also provides a way to manually update all Google software on a user's Mac. Here's how:
In Finder, select Go > Go to Folder.
In the window that appears, enter one of the following locations. It's expected that one of these folders won't be found:
/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/
~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/
In the folder that opens, double click the file named 'CheckForUpdatesNow.command'.
Terminal will open to run the file. When you see the message '[Process completed]' you can close Terminal. Once this is done, your Google programs will be up to date.
apple
chrome
google
mac
update
To change how frequently Google Software Update checks for updates, execute the following in the Terminal application:
$ defaults write com.google.Keystone.Agent checkInterval <frequency>
where <frequency> is the elapsed time in seconds between update checks.
To disable Google Software Update from checking for updates, execute the following in the Terminal application:
$ defaults write com.google.Keystone.Agent checkInterval 0
Manual Updates
Google Software Update also provides a way to manually update all Google software on a user's Mac. Here's how:
In Finder, select Go > Go to Folder.
In the window that appears, enter one of the following locations. It's expected that one of these folders won't be found:
/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/
~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/
In the folder that opens, double click the file named 'CheckForUpdatesNow.command'.
Terminal will open to run the file. When you see the message '[Process completed]' you can close Terminal. Once this is done, your Google programs will be up to date.
march 2011 by michaelfox
User Scripts - The Chromium Projects
december 2010 by michaelfox
Chromium and Google Chrome (version 4 and higher) have built-in support for Greasemonkey-style user scripts.
To use, click on any .user.js file. You should see an install dialog. Press OK to install.
Known issues:
Chromium does not support @require, @resource, unsafeWindow, GM_registerMenuCommand, GM_setValue, or GM_getValue.
GM_xmlhttpRequest is same-origin only.
Match Patterns
The preferred way to specify the pages that a user script should run against in Chromium is the @match attribute. Here are some examples of its use:
// ==UserScript==
// @match http://*
// @match http://*.google.com/*
// @match http://www.google.com/*
// ==/UserScript==
See these comments for details on the @match syntax.
Support for Greasemonkey-style @include patterns is also implemented for compatibility, but @match is preferred.
With Greasemonkey-style @include rules, it is not possible for Chrome to know for certain the domains a script will run on (because google.* can also run on google.evil.com). Because of this, Chrome just tells users that these scripts will run on all domains, which is sometimes scarier than necessary. With @match, Chrome will tell users the correct set of domains a user script will run on.
chrome
javascript
userscripts
greasemonkey
wiki
reference
To use, click on any .user.js file. You should see an install dialog. Press OK to install.
Known issues:
Chromium does not support @require, @resource, unsafeWindow, GM_registerMenuCommand, GM_setValue, or GM_getValue.
GM_xmlhttpRequest is same-origin only.
Match Patterns
The preferred way to specify the pages that a user script should run against in Chromium is the @match attribute. Here are some examples of its use:
// ==UserScript==
// @match http://*
// @match http://*.google.com/*
// @match http://www.google.com/*
// ==/UserScript==
See these comments for details on the @match syntax.
Support for Greasemonkey-style @include patterns is also implemented for compatibility, but @match is preferred.
With Greasemonkey-style @include rules, it is not possible for Chrome to know for certain the domains a script will run on (because google.* can also run on google.evil.com). Because of this, Chrome just tells users that these scripts will run on all domains, which is sometimes scarier than necessary. With @match, Chrome will tell users the correct set of domains a user script will run on.
december 2010 by michaelfox
The Inaugural: State of HTML5
october 2010 by michaelfox
The State of HTML5
Paul Irish
Google Chrome, Developer Programs Engineer
html5
css3
javascript
chrome
webstandards
development
css
html
Paul Irish
Google Chrome, Developer Programs Engineer
october 2010 by michaelfox
Ernest Delgado - Chromeflow
october 2010 by michaelfox
Based on the Rafi Adnan's coverflow+canvas sample posted in Ajaxian, I created a bookmarklet which will add more fun to the Most visited preview of your home page.
Simply drag the link below to your bookmarks bar in Chrome, open up a new tab (with the default home page), and click the bookmarklet to see your history displayed iTunes-style.
canvas
coverflow
html5
javascript
bookmarklets
chrome
Simply drag the link below to your bookmarks bar in Chrome, open up a new tab (with the default home page), and click the bookmarklet to see your history displayed iTunes-style.
october 2010 by michaelfox
Chrome Experiments - Home
may 2010 by michaelfox
We think JavaScript is awesome. We also think browsers are awesome. Indeed, when we talk about them, we say they are the cat's meow – which is an American expression meaning AWESOME.
In light of these deeply held beliefs, we created this site to showcase cool experiments for both JavaScript and web browsers.
These experiments were created by designers and programmers from around the world using the latest open standards, including HTML5, Canvas, SVG, and more. Their work is making the web faster, more fun, and more open – the same spirit in which we built Google Chrome.
Naturally, if you've made something fun and fast with JavaScript, please send it in. We can't post everything, but we'd love to see it.
Thanks for visiting, and happy experimenting.
chrome
design
google
javascript
visualization
labs
canvas
html5
css3
html
In light of these deeply held beliefs, we created this site to showcase cool experiments for both JavaScript and web browsers.
These experiments were created by designers and programmers from around the world using the latest open standards, including HTML5, Canvas, SVG, and more. Their work is making the web faster, more fun, and more open – the same spirit in which we built Google Chrome.
Naturally, if you've made something fun and fast with JavaScript, please send it in. We can't post everything, but we'd love to see it.
Thanks for visiting, and happy experimenting.
may 2010 by michaelfox
Bank of America, Lowe's, MGM Mirage in focus - MarketWatch
may 2009 by michaelfox
Chrome bar sticks at the bottom of the site.
chromebar
chrome
bar
ui
webdev
example
patterns
may 2009 by michaelfox
related tags
*todo ⊕ adblock ⊕ addons ⊕ analytics ⊕ api ⊕ app ⊕ apple ⊕ applescript ⊕ aria2c ⊕ autocomplete ⊕ bar ⊕ boilerplate ⊕ bom ⊕ bookmarklet ⊕ bookmarklets ⊕ bookmarks ⊕ browser ⊕ browsers ⊕ browsing ⊕ canary ⊕ canvas ⊕ chrome ⊖ chrome.extension ⊕ chrome.tabs ⊕ chromebar ⊕ chromium ⊕ cli ⊕ code ⊕ command ⊕ commands ⊕ comments ⊕ console ⊕ coverflow ⊕ css ⊕ css3 ⊕ customization ⊕ data ⊕ db ⊕ debug ⊕ debugging ⊕ design ⊕ developer ⊕ development ⊕ documentation ⊕ dom ⊕ dotjs ⊕ download ⊕ evernote ⊕ example ⊕ extension ⊕ extensions ⊕ feverphp ⊕ firebug ⊕ firefox ⊕ firephp ⊕ framework ⊕ gist ⊕ github ⊕ github-repo ⊕ google ⊕ googleanalytics ⊕ greasemonkey ⊕ hack ⊕ hacks ⊕ history ⊕ html ⊕ html5 ⊕ huffduffer ⊕ indexeddb ⊕ inspector ⊕ inspiration ⊕ inspiration.applescript ⊕ inspiration.textexpander ⊕ install ⊕ ios ⊕ ipad ⊕ iphone ⊕ javascript ⊕ jquery ⊕ keyboard ⊕ labs ⊕ launchbar ⊕ log ⊕ logging ⊕ mac ⊕ memory ⊕ mouse ⊕ mozilla ⊕ mp3 ⊕ nightly ⊕ oauth ⊕ omnifocus ⊕ opensearch ⊕ osx ⊕ patterns ⊕ performance ⊕ php ⊕ pinboard ⊕ plugin ⊕ plugins ⊕ plusone ⊕ podcast ⊕ privacy ⊕ productivity ⊕ profiling ⊕ python ⊕ quix ⊕ reference ⊕ replacestate ⊕ repo ⊕ resources ⊕ rest ⊕ rss ⊕ safari ⊕ scraper ⊕ scroll ⊕ search ⊕ searchplugins ⊕ security ⊕ shortcut ⊕ snippet ⊕ social ⊕ source ⊕ styling ⊕ stylish ⊕ template ⊕ textexpander ⊕ tools ⊕ troubleshooting ⊕ tutorial ⊕ ui ⊕ ultimatebuild ⊕ update ⊕ url ⊕ usability ⊕ useragent ⊕ userscripts ⊕ userstyle ⊕ video ⊕ vim ⊕ visualization ⊕ web ⊕ webdev ⊕ webkit ⊕ webstandards ⊕ wiki ⊕ xml ⊕ xpi ⊕ xul ⊕Copy this bookmark: