Nov 10, 2009

Easy way to speed up video playback without high pitch

So you want speed up boring college lecture/ documentary/movie?

needed and tested:
vlc 0.9.9a (on Linux)

go to tools -> preferences -> (show settings ->all) ->filters -> enable Scale tempo

(next you'll be changing speed with right button where it says 1.00x)

have hard time understanding movie in foreign language, lower speed.
boring content or slow speaker, faster speed.

Blogger should do

Becoming good blogger/publisher? read carefully

Post! (depending on your followers, you will need to post regulary, massivly, etc.)
It is not difficult to make good posts. These should contain:

33% Info about you/your company
that means waht are you doing, your holydays, parties, birthdays, etc
example: i just created my Skype account, if you want to be added replay in commments

33% Promotion&Sales&Marketing
example: presenting new tutorials that you need to go-through
facebook repeating? you may be interesting in mirroring your page on facebook, especialy if you want to use your big network there. Simply, there is a hidden page on facebook to create a marketing page. Additionaly, once you ahve created facebook page, there is possibility to import blog (via rss/atom) to have posts in facebook. Useful if you want pull your frends into your website.

33% General info
  general news
  copy paste -that means that you just process information you read and re post it (modified, ripped, recycled)

how to get content?
you can get your visitors to write content (replyes, forums, etc)
if you have time but no money write articles yourself (use speech recognition program)
if you have money you can buy people to write for you


Follow people in your field:

Your readers/clients&costumers
Staff- if you have more people that write on your page/blog
Frends in the same field - probably you have frends that do same things
Vendors -people who sell things in your field
Relevant jounarlists
Social influencers in your field




Nov 9, 2009

Webpage optimization tricks

Better results with your web page

To optimize website to get more traffic and more money use tricks below

spam message example
-myspace
to:bulletin (all frends get it)
subject:Free Collection of Online Tutorials
body:I have just finished writing some nice ebooks and tutorials..
They cover self-improvement ideas, Activities for students, Computer based training tips, tricks, DIY projects...<b>Best of all, as I release them a bit late, I will offer them. You can get them here:
<a href="http://www.izobrazba.naspletu.com/learn.html">Web Cloud University</a></b>

I hope you will enjoy them. Also, you can spread the word about them!
Happy Halloween

newsletters are great way to collect your visitors email addresses. These are great way to bring plenty of targeted traffic on your site on demand!






how to make people trust and buy from you
stepping stones tehnique: there is a goal on other side of the river, between (on the river) are three stones
Your visitor is on the other side of the river and you want him to achive a goal (your goal)
First you give him something for free (free guide, free usb-stick), next stone (step) you give him some relevant information (he trusts you more by now) and third you give him some more information (video game, something) and next visitors achive goal (he buys something from you)




better results in search engines tricks:

keyword targeting
to target visitors that search for xyx keyboard in search engine put xyx keyword inside(to make content appear more xyx related):
PUT IN:
-title
-url /maybe_after_domain/
-between headers tags <H1></H1>
-inside your body text -few times should be ok
-at begining of your text (to be seen at search results)
-place some code or even better- image with name xyx.jpg wth alternative description xxx
-maybe try to get linked with xyx near link or link name

common topics
to target those similar keywords or even misspelled words
you can:
put tags (blogs)
put small box with common topics name and list all similar words near your content


cyclical content
web page for loveparade2010 (yearly repeated event) shouldn't be indexed as www.loveparade.com/2010/ but just www.loveparade.com because when new content arrives it replaces old content that is moved to other directories

what you mostly need:
organic traffic - organic means people -no robots

Nov 4, 2009

Cpu temperature check

To get computers temperature enter into linux terminal:

watch -d -n 1 "cat /proc/acpi/thermal_zone/*/temperature"


updating once per second, actualy i got two temperatures this way

echo $(cat /proc/acpi/thermal_zone/*/temperature | grep C | awk '{
print $2 }' | awk '{ print $1 }')


returned 88 59 temperatures. Think first is processors and second is
hard drives.


it would be interesting if you can get room temperature based on cpu
load (mine is always 100% due to grid computing-mprimes) and cpu
temperature..
report in coments or i will.

Web page scripts (sql&php)

You need to put image gallery/discussion board on your site but don't
want to mess with jomla?
These free scripts should work well with your site. You will need
sql&php supported hosting

AD MANAGEMENT
   Openads
   phpList

BLOG
   b2evolution
   Movable Type
   Textpattern
   WordPress

CALENDARS
   Maian Events

CLASSIFIED ADS
   Classifieds

CONTENT MANAGEMENT
   Drupal
   fuzzylime (cms)
   Geeklog
   Joomla 1.0.15
   Joomla 1.5.9
   Mambo
   Moodle
   Nucleus
   Open Realty
   php-fusion
   phpWebSite
   WebSiteBaker
   xoops

CUSTOMER SUPPORT
   Help Center Live
   PHPTickets

DISCUSSION BOARDS
   phpBB2
   phpBB3
   smf

E-COMMERCE
   OS Commerce
   OS CommRes

GROUPWARE TOOLS
   DOTproject
   PHProject

GUESTBOOKS
   MJguest

IMAGE GALLERIES
   4Images Gallery
   Coppermine
   Gallery2
   plogger

WEB HOSTING TOOLS
   phpcoin
   phpFormGenerator

WIKI
   DokuWiki

All can be installed by: Elefante Installer is a PHP web application
services installer

Nov 3, 2009

Computer Networks

to understand

wan -wide area network(probably Internet) (that's where your wireless router connects to Internet)

lan- local area network

wlan - wireless local area network
vpn- virtual private network (use encripted tunnels over internet)
cable: lan cables are pretty dificult to make yourself and need special tool-cable stripper&crimper

NAT - nat server is used to communicate with internet. Your pc (pcs) gets external ip address here (thas what shows when you google: "my ip address")

load balancer/ traffic shaper -haven't seen hardware, but exist in more expensive wlan routers (and software: wondershaper&cfoss)

network topology
this means how computers are connected (in a straight line, to hub, in circle- not all computers access each other, etc)


whenever document things:
make network scheme
troubles may occur more than once, so have solution written down


wireless networking advantages
easier to install
networks through walls and obstacles
allow quick temporary access (Internet for visitors, temporary networks, wlan party, etc)
equally secure- can be, but most aren't



how to secure wireless? disable ssid, enable mac filtering, enable encryption, certificates ...
AND MOST IMPORTANT: disable windows filesharing share --is easiest to hack someone

Nov 1, 2009

Virtualization: Introduction and usage

What is virtualization?
It is the process to make things virtual. Most known are so called "virtual PCs" that you are able to install inside your computer (on emulated hardware- motherboard , network card, all.) You are able to install  operation system on that virtual computer. It's slower, but can be customizable, install programs, freeze in time (to freeze trial-countdown programs), easily backed up)
Such PC is a single file on Your PC.

Additional usages:
virtual keyboard- a keyboard that runs as program and is described well on this website. search for xvkbd.
thinstall alike- small operation system is used to make portable applications on windows



Pro and Cons
When intending to use multiple virtual computers& O/S at same computer/server to reduce costs


+
Virtual Computers use less space (rent costs) power (electricity bill) & cooling
compression -less physical machines (while reading this your fast computer use only 5% CPU - if not using grid computing; and can run multiple virtual computers)
note that cooling can be two times more expensive and that single server may use more than 300w
server refresh costs (licences for virtual computers should be cheaper like windows server or even free!)
better management (no need to use plenty of pcs, all can be controlled over single keyboard, web interface, all Virtual computers use same network card)
secure console distribution
disaster recovery (you can make backup of Virtual computer with pressing the button on server or just copy virtual machine's file or make snapshot)
software for virtualization is very stable

-
humans make mistakes. if admin of multiple virtual pcs, or even some virtual cluster have a bad day or get drunk he may make more trouble
too many virtual machines ; when creating to many VMs, backups, etc.. you will need powerful hardware to run all this stuff
virtual software is not so cheap to buy and playing wth multiple desctops and virtual clusters or sth will cost you licences





Oct 30, 2009

Keyboard shortcuts and run commands (windows reference)

Keyboard Commands



Windows System Key Combinations
• F1: Help
• CTRL+ESC: Open Start menu
• ALT+TAB: Switch between open programs
• ALT+F4: Quit program
• SHIFT+DELETE: Delete item permanently

Windows Program Key Combinations
• CTRL+C: Copy
• CTRL+X: Cut
• CTRL+V: Paste
• CTRL+Z: Undo
• CTRL+B: Bold
• CTRL+U: Underline
• CTRL+I: Italic

Mouse Click/Keyboard Modifier Combinations for Shell Objects
• SHIFT+right click: Displays a shortcut menu containing alternative commands
• SHIFT+double click: Runs the alternate default command (the second item on the menu)
• ALT+double click: Displays properties
• SHIFT+DELETE: Deletes an item immediately without placing it in the Recycle Bin

General Keyboard-Only Commands
• F1: Starts Windows Help
• F10: Activates menu bar options
• SHIFT+F10 Opens a shortcut menu for the selected item (this is the same as right-clicking an object
• CTRL+ESC: Opens the Start menu (use the ARROW keys to select an item)
• CTRL+ESC or ESC: Selects the Start button (press TAB to select the taskbar, or press SHIFT+F10 for a context menu)
• ALT+DOWN ARROW: Opens a drop-down list box
• ALT+TAB: Switch to another running program (hold down the ALT key and then press the TAB key to view the task-switching window)
• SHIFT: Press and hold down the SHIFT key while you insert a CD-ROM to bypass the automatic-run feature
• ALT+SPACE: Displays the main window's System menu (from the System menu, you can restore, move, resize, minimize, maximize, or close the window)
• ALT+- (ALT+hyphen): Displays the Multiple Document Interface (MDI) child window's System menu (from the MDI child window's System menu, you can restore, move, resize, minimize, maximize, or close the child window)
• CTRL+TAB: Switch to the next child window of a Multiple Document Interface (MDI) program
• ALT+underlined letter in menu: Opens the menu
• ALT+F4: Closes the current window
• CTRL+F4: Closes the current Multiple Document Interface (MDI) window
• ALT+F6: Switch between multiple windows in the same program (for example, when the Notepad Find dialog box is displayed, ALT+F6 switches between the Find dialog box and the main Notepad window)


Shell Objects and General Folder/Windows Explorer Shortcuts

For a selected object
• F2: Rename object
• F3: Find all files
• CTRL+X: Cut
• CTRL+C: Copy
• CTRL+V: Paste
• SHIFT+DELETE: Delete selection immediately, without moving the item to the Recycle Bin
• ALT+ENTER: Open the properties for the selected object

To Copy a File
Press and hold down the CTRL key while you drag the file to another folder.

To Create a Shortcut
Press and hold down CTRL+SHIFT while you drag a file to the desktop or a folder.

General Folder/Shortcut Control
• F4: Selects the Go To A Different Folder box and moves down the entries in the box (if the toolbar is active in Windows Explorer)
• F5: Refreshes the current window.
• F6: Moves among panes in Windows Explorer
• CTRL+G: Opens the Go To Folder tool (in Windows 95 Windows Explorer only)
• CTRL+Z: Undo the last command
• CTRL+A: Select all the items in the current window
• BACKSPACE: Switch to the parent folder
• SHIFT+click+Close button: For folders, close the current folder plus all parent folders

Windows Explorer Tree Control
• Numeric Keypad *: Expands everything under the current selection
• Numeric Keypad +: Expands the current selection
• Numeric Keypad -: Collapses the current selection.
• RIGHT ARROW: Expands the current selection if it is not expanded, otherwise goes to the first child
• LEFT ARROW: Collapses the current selection if it is expanded, otherwise goes to the parent

Properties Control
• CTRL+TAB/CTRL+SHIFT+TAB: Move through the property tabs

Accessibility Shortcuts
• Press SHIFT five times: Toggles StickyKeys on and off
• Press down and hold the right SHIFT key for eight seconds: Toggles FilterKeys on and off
• Press down and hold the NUM LOCK key for five seconds: Toggles ToggleKeys on and off
• Left ALT+left SHIFT+NUM LOCK: Toggles MouseKeys on and off
• Left ALT+left SHIFT+PRINT SCREEN: Toggles high contrast on and off

M'zoft Natural Keyboard Keys
• Windows Logo: Start menu
• Windows Logo+R: Run dialog box
• Windows Logo+M: Minimize all
• SHIFT+Windows Logo+M: Undo minimize all
• Windows Logo+F1: Help
• Windows Logo+E: Windows Explorer
• Windows Logo+F: Find files or folders
• Windows Logo+D: Minimizes all open windows and displays the desktop
• CTRL+Windows Logo+F: Find computer
• CTRL+Windows Logo+TAB: Moves focus from Start, to the Quick Launch toolbar, to the system tray (use RIGHT ARROW or LEFT ARROW to move focus to items on the Quick Launch toolbar and the system tray)
• Windows Logo+TAB: Cycle through taskbar buttons
• Windows Logo+Break: System Properties dialog box
• Application key: Displays a shortcut menu for the selected item

M'zoft Natural Keyboard with IntelliType Software Installed
• Windows Logo+L: Log off Windows
• Windows Logo+P: Starts Print Manager
• Windows Logo+C: Opens Control Panel
• Windows Logo+V: Starts Clipboard
• Windows Logo+K: Opens Keyboard Properties dialog box
• Windows Logo+I: Opens Mouse Properties dialog box
• Windows Logo+A: Starts Accessibility Options (if installed)
• Windows Logo+SPACEBAR: Displays the list of M'zoft IntelliType shortcut keys
• Windows Logo+S: Toggles CAPS LOCK on and off

Dialog Box Keyboard Commands
• TAB: Move to the next control in the dialog box
• SHIFT+TAB: Move to the previous control in the dialog box
• SPACEBAR: If the current control is a button, this clicks the button. If the current control is a check box, this toggles the check box. If the current control is an option, this selects the option.
• ENTER: Equivalent to clicking the selected button (the button with the outline)
• ESC: Equivalent to clicking the Cancel button
• ALT+underlined letter in dialog box item: Move to the corresponding item


+++credit to scorpion+++




here is some also

Go tol StartMenu -> RUN  -> "Command "


Accessibility Controls
access.cpl

Add Hardware Wizard
hdwwiz.cpl

Add/Remove Programs
appwiz.cpl

Administrative Tools
control admintools

Automatic Updates
wuaucpl.cpl

Bluetooth Transfer Wizard
fsquirt

Calculator
calc

Certificate Manager
certmgr.msc

Character Map
charmap

Check Disk Utility
chkdsk

Clipboard Viewer
clipbrd

Command Prompt
cmd

Component Services
dcomcnfg

Computer Management
compmgmt.msc

Date and Time Properties
timedate.cpl

DDE Shares
ddeshare

Device Manager
devmgmt.msc

Direct X Control Panel (If Installed)*
directx.cpl

Direct X Troubleshooter
dxdiag

Disk Cleanup Utility
cleanmgr

Disk Defragment
dfrg.msc

Disk Management
diskmgmt.msc

Disk Partition Manager
diskpart

Display Properties
control desktop

Display Properties
desk.cpl

Display Properties (w/Appearance Tab Preselected)
control color

Dr. Watson System Troubleshooting Utility
drwtsn32

Driver Verifier Utility
verifier

Event Viewer
eventvwr.msc

File Signature Verification Tool
sigverif

Findfast
findfast.cpl

Folders Properties
control folders

Fonts
control fonts

Fonts Folder
fonts

Free Cell Card Game
freecell

Game Controllers
joy.cpl

Group Policy Editor (XP Prof)
gpedit.msc

Hearts Card Game
mshearts

Iexpress Wizard
iexpress

Indexing Service
ciadv.msc

Internet Properties
inetcpl.cpl


IP Configuration (Display Connection Configuration)
ipconfig /all

IP Configuration (Display DNS Cache Contents)
ipconfig /displaydns

IP Configuration (Delete DNS Cache Contents)
ipconfig /flushdns

IP Configuration (Release All Connections)
ipconfig /release

IP Configuration (Renew All Connections)
ipconfig /renew

IP Configuration (Refreshes DHCP & Re-Registers DNS)
ipconfig /registerdns

IP Configuration (Display DHCP Class ID)
ipconfig /showclassid

IP Configuration (Modifies DHCP Class ID)
ipconfig /setclassid


ava Control Panel (If Installed)
jpicpl32.cpl

Java Control Panel (If Installed)
javaws

Keyboard Properties
control keyboard

Local Security Settings
secpol.msc

Local Users and Groups
lusrmgr.msc

Logs You Out Of Windows
logoff

Mcft Chat
winchat

Minesweeper Game
winmine

Mouse Properties
control mouse

Mouse Properties
main.cpl

Network Connections
control netconnections

Network Connections
ncpa.cpl

Network Setup Wizard
netsetup.cpl

Notepad
notepad

Nview Desktop Manager (If Installed)
nvtuicpl.cpl

Object Packager
packager

ODBC Data Source Administrator
odbccp32.cpl

On Screen Keyboard
osk

Opens AC3 Filter (If Installed)
ac3filter.cpl

Password Properties
password.cpl

Performance Monitor
perfmon.msc

Performance Monitor
perfmon

Phone and Modem Options
telephon.cpl

Power Configuration
powercfg.cpl

Printers and Faxes
control printers

Printers Folder
printers

Private Character Editor
eudcedit

Quicktime (If Installed)
QuickTime.cpl

Regional Settings
intl.cpl

Registry Editor
regedit

Registry Editor
regedit32

Remote Desktop
mstsc

Removable Storage
ntmsmgr.msc

Removable Storage Operator Requests
ntmsoprq.msc

Resultant Set of Policy (XP Prof)
rsop.msc

Scanners and Cameras
sticpl.cpl

Scheduled Tasks
control schedtasks

Security Center
wscui.cpl

Services
services.msc

Shared Folders
fsmgmt.msc

Shuts Down Windows
shutdown

Sounds and Audio
mmsys.cpl

Spider Solitare Card Game
spider

SQL Client Configuration
cliconfg

System Configuration Editor
sysedit

System Configuration Utility
msconfig

System File Checker Utility (Scan Immediately)
sfc /scannow

System File Checker Utility (Scan Once At Next Boot)
sfc /scanonce

System File Checker Utility (Scan On Every Boot)
sfc /scanboot

System File Checker Utility (Return to Default Setting)
sfc /revert

System File Checker Utility (Purge File Cache)
sfc /purgecache

System File Checker Utility (Set Cache Size to size x)
sfc /cachesize=x

System Properties
sysdm.cpl

Task Manager
taskmgr

Telnet Client
telnet

User Account Management
nusrmgr.cpl

Utility Manager
utilman

Windows Firewall
firewall.cpl

Windows Magnifier
magnify

Windows Management Infrastructure
wmimgmt.msc

Windows System Security Tool
syskey

Windows Update Launches
wupdmgr

Windows XP Tour Wizard
tourstart

Wordpad
write

got that from bitme, now this is quality ms shitm anyway ubuntu karmic koala is out

Oct 28, 2009

Mobsterbots cheats(bots) for Mobster myspace game

To use these robots (they do tasks for you automaticaly) install Firefox, iMacros, and copy commands to macros
(-have to edit some macro and insert this texts,
 -or make files that end with .imm, inser text to them, and then copy them to your macros folder)

BOTS LIST:
Hitlist bot.iim
Heal, bank.iim
Heal bot.iim
Fight.iim
Fight, heal.iim
Fight, Heal, Bank.iim
Fight, Bank.iim





Hitlist bot.iim

VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Hit<SP>List
WAIT SECONDS=.50
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hit<SP>List
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hit<SP>List
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hit<SP>List
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=1
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*





Heal, bank.iim

VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Bank
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Deposit





Heal bot.iim

VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=.50
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*



Fight.iim
VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=4 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=5 TYPE=SPAN ATTR=TXT:Attack


Fight, heal.iim

VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=4 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=5 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*



Fight, Heal, Bank.iim
VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=4 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=5 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Hospital
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
TAG POS=1 TYPE=SPAN ATTR=TXT:Heal*
WAIT SECONDS=2
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Bank
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Deposit




Fight, Bank.iim
VERSION BUILD=6111228 RECORDER=FX
SET !ERRORIGNORE YES
SET !LOADCHECK NO
SET !TIMEOUT 0
TAB T=1
URL GOTO=http://profile.myspace.com/Modules/Applications/Pages/Canvas.aspx?appId=104283
FRAME F=6
WAIT SECONDS=2.5
TAG POS=1 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=2 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=3 TYPE=SPAN ATTR=TXT:Attack
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=4 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=5 TYPE=SPAN ATTR=TXT:Attack
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Bank
TAG POS=1 TYPE=DIV ATTR=TXT:REFRESH*
WAIT SECONDS=2
TAG POS=1 TYPE=SPAN ATTR=TXT:Deposit



Online are so compatible, ow oh, all you really need is browser and BOTs (cheats)

Online data storage

How to store your information online?
To get your data back follow simple rules:

1.don't trust
2.have backups (online or offline)

what happened?
User A uploaded some photos to online gallery B and some files to on free file storage server C

nice.. everything seem all right..

and then service is closed. That happend to millions of users of C-Mediamax (25 GB file storage) and B-Sony ImageStation

If you don't believe how painful it is when you see someone turned back to you, you cat read this FAQ answer from sony (supposedly misleading- Sony didn't shreed tapes)


All images and personal information stored on the ImageStation servers have been destroyed. All ImageStation storage devices have been wiped clean and all back up tapes have been shredded. It is no longer possible to retrieve any images or information from the ImageStation servers.




Conclusion: big companies don't car about your information (at least they could send you mail (instead of spamming -SONY!) before, or data in attachments or something)

When you are uploading, it's statistics if you get it back. When you are storing under bed- watch that cat playing wth your cds!


Oct 25, 2009

Find idle time in linux

how to get idle time (time when no movement of mouse/other input occured)



sleep 60
#erase file from previous session
rm mousemovementsfile
sleep 1
#thread writing mousemovements to file -check your inputs
cat -n /dev/input/by-path/pci-0000:00:1d.7-usb-0:2.1:1.0-event-mouse > mousemovementsfile&
while (true)
do
#check size
filesize1=$(stat -c%s "mousemovementsfile")
#wait 70 second or something
sleep 600
#check second size,compare, execute idle scritp if same size
filesize2=$(stat -c%s "mousemovementsfile")
#compare
if [ "$filesize1" -eq "$filesize2" ]
then
#execute idle script

/usr/bin/notify-send -u normal -t 7000 \
      'this is only running when user is not present at computer' 'this is only running when user is not present at computer'

fi
echo notidle
done



Run as bash script.
Now you can clean the mess you have left on pc, run screensaver or shut down unused library pc.





alternative solution in c
via http://coderrr.wordpress.com/2008/04/20/getting-idle-time-in-unix/#comments


Oct 18, 2009

Omnibar Extension Collapses Firefox's Address and Search Boxes into One

Firefox only (Windows/Mac/Linux): The Omnibar extension makes Firefox's awesomebar act like Google Chrome's omnibar, collapsing the address bar and search into one single text box.


Omnibar [Firefox Add-ons]




Alarm clock/calendar in bash

alarm clock/calendar without cron
overview: terminal script check if time is the same when alarm goes off and notify user wth notification (could use some music or just sudo apt-get install beep for some sound)

daa=$(date +%H%M)
if [ "$daa" -eq "1133" ] || ["$daa" -eq "1134" ]
then
echo rabbits gone to bed
/usr/bin/notify-send -u normal -t 20000 \
'rabbits gone to bed'
fi

#here alarm is so tinny (single line) that you wont see it when concentrated on something
#this first uses | to make alarm interval specified more accurately

daa=$(date +%H%M)
if [ "$daa" -eq "2823" ]
then
echo end of month coming. today 28. finish your bandwith month limitations
/usr/bin/notify-send -u normal -t 4000000 \
'end of month near' 'finish your bandwith month limitations'
fi

daa=$(date +%d)
if [ "$daa" -eq "01" ]
then
echo first of month
/usr/bin/notify-send -u normal -t 2000 \
'first of month' 'first of month'
sleep 10000
fi

you may also alarm yourself:
cheaper electricity time
time to go out
time to open windows (to let air in, best time)

DVD movie released today!
some stuff u care about
best time check news some mail or sth



date accepts
# %H hour (00..23)
# %I hour (01..12)
# %j day of year (001..366)
# %k hour ( 0..23)
# %l hour ( 1..12)
# %m month (01..12)
# %M minute (00..59)



you should run script continuously inside

while (true)
do
#script goes here
sleep 1000
done


and should be run with & at end to run in bash background
sorry blinking screen is not ready yet for alarm, please post it in comments if you dare

Oct 3, 2009

hide unused or "eye catching" applications

to hide disturbing programs like p2p applications to background you can use following script


#script moves applications to unactive desktop
wmctrl -n 2 &
#set two desktops
altdesktop=`wmctrl -d | grep "-" | awk '{ print $1 }'`
wmctrl -r LinuxDC++ -t $altdesktop&
wmctrl -r LinuxDC++ -t $altdesktop&
wmctrl -r Transmission -t $altdesktop&
wmctrl -r Nicotine+ 1.2.9 -t $altdesktop&





similar to hideit! in windows


to run script continious use
while (true)
do
#put script here
sleep 100
done

or add it to your crontab.


Sep 13, 2009

pc tablet and pen review (wacom bamboo)

got this pen and tablet and have tested it

for who?

for drawers, for those who want to rest their hands from using mouse (wrist problems)
for those who want to draw diagrams quickly (charts, graphs, etc) for themselfs or for publishing


plus:
depending how hard you press will work in gimp as more bolded line
diagrams or mindmaps (lines,boxes, arrows..) are hard or impossible to draw with mouse
if you have wrist problems that may help?

minus:
you can loose your pen (especialy after playing - was found in the kitchen)
slow to work instead of using mouse-you will just waste time when using in gmail.


Web Cloud University

After great deal of online surfing have found this great website that will enable you to learn online quickly and efficiently and more over for free!

do not miss your free lectures online: web cloud university



Aug 26, 2009

select html code from color chart

select html code from color chart

there are also some websites that select best color compbinations for your website

some addons for greasemonkey

Greasemonkey:great to have installed scripts as two listed below

Auto pagerize
http://userscripts.org/scripts/show/8551

will make your i.e "google results" muliple pages seen all on one page

// ==UserScript==
// @name           AutoPagerize
// @namespace      http://swdyh.yu.to/
// @description    loading next page and inserting into current page.
// @include        http://*
// @include        https://*
// @exclude        https://mail.google.com/*
// @exclude        http://b.hatena.ne.jp/*
// ==/UserScript==
//
// auther:  swdyh http://d.hatena.ne.jp/swdyh/
// version: 0.0.40 2009-08-21T08:03:14+09:00
//
// this script based on
// GoogleAutoPager(http://la.ma.la/blog/diary_200506231749.htm) and
// estseek autopager(http://la.ma.la/blog/diary_200601100209.htm).
// thanks to ma.la.
//
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//

var URL = 'http://autopagerize.net/'
var VERSION = '0.0.40'
var DEBUG = false
var AUTO_START = true
var CACHE_EXPIRE = 24 * 60 * 60 * 1000
var BASE_REMAIN_HEIGHT = 400
var FORCE_TARGET_WINDOW = getPref('force_target_window', true)
var USE_COUNTER = true
var XHR_TIMEOUT = 30 * 1000
var SITEINFO_IMPORT_URLS = [
    'http://wedata.net/databases/AutoPagerize/items.json',
]
var COLOR = {
    on: '#0f0',
    off: '#ccc',
    loading: '#0ff',
    terminated: '#00f',
    error: '#f0f'
}
var SITEINFO = [
    /* sample
    {
        url:          'http://(.*).google.+/(search).+',
        nextLink:     'id("navbar")//td[last()]/a',
        pageElement:  '//div[@id="res"]/div',
        exampleUrl:   'http://www.google.com/search?q=nsIObserver',
    },
    */
    /* template
    {
        url:          '',
        nextLink:     '',
        pageElement:  '',
        exampleUrl:   '',
    },
    */
]
var MICROFORMAT = {
    url:          '.*',
    nextLink:     '//a[@rel="next"] | //link[@rel="next"]',
    insertBefore: '//*[contains(@class, "autopagerize_insert_before")]',
    pageElement:  '//*[contains(@class, "autopagerize_page_element")]',
}

var AutoPager = function(info) {
    this.pageNum = 1
    this.info = info
    this.state = AUTO_START ? 'enable' : 'disable'
    var self = this
    var url = this.getNextURL(info.nextLink, document, location.href)

    if ( !url ) {
        debug("getNextURL returns null.", info.nextLink)
        return
    }
    if (info.insertBefore) {
        this.insertPoint = getFirstElementByXPath(info.insertBefore)
    }

    if (!this.insertPoint) {
        var lastPageElement = getElementsByXPath(info.pageElement).pop()
        if (lastPageElement) {
            this.insertPoint = lastPageElement.nextSibling ||
                lastPageElement.parentNode.appendChild(document.createTextNode(' '))
        }
    }

    if (!this.insertPoint) {
        debug("insertPoint not found.", lastPageElement, info.pageElement)
        return
    }

    this.requestURL = url
    this.loadedURLs = {}
    this.loadedURLs[location.href] = true
    var toggle = function() {self.stateToggle()}
    this.toggle = toggle
    GM_registerMenuCommand('AutoPagerize - on/off', toggle)
    this.scroll= function() { self.onScroll() }
    window.addEventListener("scroll", this.scroll, false)

    if (isFirefoxExtension()) {
        var div = document.createElement("div")
        div.setAttribute('id', 'autopagerize_icon')
        div.style.display = 'none'
        document.body.appendChild(div)
        this.icon = div
    }
    else {
        this.initIcon()
        this.initHelp()
        this.icon.addEventListener("mouseover", function() {
            self.viewHelp() }, true)
    }

    var scrollHeight = getScrollHeight()
    var bottom = getElementPosition(this.insertPoint).top ||
        this.getPageElementsBottom() ||
        (Math.round(scrollHeight * 0.8))
    this.remainHeight = scrollHeight - bottom + BASE_REMAIN_HEIGHT
    this.onScroll()

    var that = this
    document.addEventListener('AutoPagerizeToggleRequest', function() {
        that.toggle()
    }, false)
    document.addEventListener('AutoPagerizeUpdateIconRequest', function() {
        that.updateIcon()
    }, false)
    that.updateIcon()
}

AutoPager.prototype.getPageElementsBottom = function() {
    try {
        var elem = getElementsByXPath(this.info.pageElement).pop()
        return getElementBottom(elem)
    }
    catch(e) {}
}

AutoPager.prototype.initHelp = function() {
    var helpDiv = document.createElement('div')
    helpDiv.setAttribute('id', 'autopagerize_help')
    helpDiv.setAttribute('style', 'padding:5px;position:fixed;' +
                     'top:-200px;right:3px;font-size:10px;' +
                     'background:#fff;color:#000;border:1px solid #ccc;' +
                     'z-index:256;text-align:left;font-weight:normal;' +
                     'line-height:120%;font-family:verdana;')

    var toggleDiv = document.createElement('div')
    toggleDiv.setAttribute('style', 'margin:0 0 0 50px;')
    var a = document.createElement('a')
    a.setAttribute('class', 'autopagerize_link')
    a.innerHTML = 'on/off'
    a.href = 'javascript:void(0)'
    var self = this
    var toggle = function() {
        self.stateToggle()
        helpDiv.style.top = '-200px'
    }
    a.addEventListener('click', toggle, false)
    toggleDiv.appendChild(a)

    var s = '<div style="width:100px; float:left;">'
    for (var i in COLOR) {
        s += '<div style="float:left;width:1em;height:1em;' +
            'margin:0 3px;background-color:' + COLOR[i] + ';' +
            '"></div><div style="margin:0 3px">' + i + '</div>'
    }
    s += '</div>'
    var colorDiv = document.createElement('div')
    colorDiv.innerHTML = s
    helpDiv.appendChild(colorDiv)
    helpDiv.appendChild(toggleDiv)

    var versionDiv = document.createElement('div')
    versionDiv.setAttribute('style', 'clear:both;')
    versionDiv.innerHTML = '<a href="' + URL +
        '">AutoPagerize</a> ver ' + VERSION
    helpDiv.appendChild(versionDiv)
    document.body.appendChild(helpDiv)

    var proc = function(e) {
        var c_style = document.defaultView.getComputedStyle(helpDiv, '')
        var s = ['top', 'left', 'height', 'width'].map(function(i) {
            return parseInt(c_style.getPropertyValue(i)) })
        if (e.clientX < s[1] || e.clientX > (s[1] + s[3] + 11) ||
            e.clientY < s[0] || e.clientY > (s[0] + s[2] + 11)) {
                helpDiv.style.top = '-200px'
        }
    }
    helpDiv.addEventListener('mouseout', proc, false)
    this.helpLayer = helpDiv
    GM_addStyle('#autopagerize_help a { color: #0f0; text-decoration: underline;}')
}

AutoPager.prototype.viewHelp = function() {
    this.helpLayer.style.top = '3px'
}

AutoPager.prototype.onScroll = function() {
    var scrollHeight = Math.max(document.documentElement.scrollHeight,
                                document.body.scrollHeight)
    var remain = scrollHeight - window.innerHeight - window.scrollY
    if (this.state == 'enable' && remain < this.remainHeight) {
          this.request()
    }
}

AutoPager.prototype.stateToggle = function() {
    if (this.state == 'enable') {
        this.disable()
    }
    else {
        this.enable()
    }
}

AutoPager.prototype.enable = function() {
    this.state = 'enable'
    this.updateIcon()
}

AutoPager.prototype.disable = function() {
    this.state = 'disable'
    this.updateIcon()
}

AutoPager.prototype.updateIcon = function(state) {
    var st = state || this.state
    var rename = {'enable': 'on', 'disable': 'off' }
    if (rename[st]) {
        st = rename[st]
    }
    var color = COLOR[st]
    if (color) {
        this.icon.style.background = color
        if (isFirefoxExtension()) {
            chlorine.statusBar.update(color, location.href)
        }
    }
}

AutoPager.prototype.request = function() {
    if (!this.requestURL || this.lastRequestURL == this.requestURL) {
        return
    }

    if (!this.canHandleCrossDomainRequest()) {
        return
    }

    this.lastRequestURL = this.requestURL
    var self = this
    var mime = 'text/html; charset=' + document.characterSet
    var headers = {}
    if (isSameDomain(this.requestURL)) {
        headers.Cookie = document.cookie
    }
    var opt = {
        method: 'get',
        url: this.requestURL,
        headers: headers,
        overrideMimeType: mime,
        onerror: this.error,
        onload: function(res) {
            self.requestLoad.apply(self, [res])
        }
    }
    AutoPager.requestFilters.forEach(function(i) { i(opt) }, this)
    this.showLoading(true)
    GM_xmlhttpRequest(opt)
}

AutoPager.prototype.showLoading = function(sw) {
    if (sw) {
        this.updateIcon('loading')
    }
    else {
        this.updateIcon('enable')
    }
}

AutoPager.prototype.requestLoad = function(res) {
    if (!this.canHandleCrossDomainRequest()) {
        return
    }

    AutoPager.responseFilters.forEach(function(i) {
        i(res, this.requestURL)
    }, this)

    if (res.finalUrl) {
        this.requestURL = res.finalUrl
    }

    var t = res.responseText
    var htmlDoc = createHTMLDocumentByString(t)
    AutoPager.documentFilters.forEach(function(i) {
        i(htmlDoc, this.requestURL, this.info)
    }, this)
    try {
        var page = getElementsByXPath(this.info.pageElement, htmlDoc)
        var url = this.getNextURL(this.info.nextLink, htmlDoc, this.requestURL)
    }
    catch(e){
        log(e)
        this.error()
        return
    }

    if (!page || page.length < 1 ) {
        debug('pageElement not found.' , this.info.pageElement)
        this.terminate()
        return
    }

    if (this.loadedURLs[this.requestURL]) {
        debug('page is already loaded.', this.requestURL, this.info.nextLink)
        this.terminate()
        return
    }

    this.loadedURLs[this.requestURL] = true
    page = this.addPage(htmlDoc, page)
    AutoPager.filters.forEach(function(i) {
        i(page)
    })
    this.requestURL = url
    this.showLoading(false)
    this.onScroll()
    if (!url) {
        debug('nextLink not found.', this.info.nextLink, htmlDoc)
        this.terminate()
    }
    var ev = document.createEvent('Event')
    ev.initEvent('GM_AutoPagerizeNextPageLoaded', true, false)
    document.dispatchEvent(ev)
}

AutoPager.prototype.addPage = function(htmlDoc, page) {
    var HTML_NS  = 'http://www.w3.org/1999/xhtml'
    var hr = document.createElementNS(HTML_NS, 'hr')
    var p  = document.createElementNS(HTML_NS, 'p')
    hr.setAttribute('class', 'autopagerize_page_separator')
    p.setAttribute('class', 'autopagerize_page_info')
    var self = this

    if (page[0] && page[0].tagName == 'TR') {
        var insertParent = this.insertPoint.parentNode
        var colNodes = getElementsByXPath('child::tr[1]/child::*[self::td or self::th]', insertParent)

        var colums = 0
        for (var i = 0, l = colNodes.length; i < l; i++) {
            var col = colNodes[i].getAttribute('colspan')
            colums += parseInt(col, 10) || 1
        }
        var td = document.createElement('td')
        // td.appendChild(hr)
        td.appendChild(p)
        var tr = document.createElement('tr')
        td.setAttribute('colspan', colums)
        tr.appendChild(td)
        insertParent.insertBefore(tr, this.insertPoint)
    }
    else {
        this.insertPoint.parentNode.insertBefore(hr, this.insertPoint)
        this.insertPoint.parentNode.insertBefore(p, this.insertPoint)
    }

    p.innerHTML = 'page: <a class="autopagerize_link" href="' +
        this.requestURL.replace(/&/g, '&amp;') + '">' + (++this.pageNum) + '</a>'
    return page.map(function(i) {
        var pe = document.importNode(i, true)
        self.insertPoint.parentNode.insertBefore(pe, self.insertPoint)
        var ev = document.createEvent('MutationEvent')
        ev.initMutationEvent('AutoPagerize_DOMNodeInserted', true, false,
                             self.insertPoint.parentNode, null,
                             self.requestURL, null, null)
        pe.dispatchEvent(ev)
        return pe
    })
}

AutoPager.prototype.initIcon = function() {
    var div = document.createElement("div")
    div.setAttribute('id', 'autopagerize_icon')
    with (div.style) {
        fontSize   = '12px'
        position   = 'fixed'
        top        = '3px'
        right      = '3px'
        background = COLOR['on']
        color      = '#fff'
        width = '10px'
        height = '10px'
        zIndex = '255'
        if (this.state != 'enable') {
            background = COLOR['off']
        }
    }
    document.body.appendChild(div)
    this.icon = div
}

AutoPager.prototype.getNextURL = function(xpath, doc, url) {
    var nextLink = getFirstElementByXPath(xpath, doc)
    if (nextLink) {
        var nextValue = nextLink.getAttribute('href') ||
            nextLink.getAttribute('action') || nextLink.value
        if (nextValue.match(/^http(s)?:/)) {
            return nextValue
        }
        else {
            var base = getFirstElementByXPath('//base[@href]', doc)
            return resolvePath(nextValue, (base ? base.href : url))
        }
    }
}

AutoPager.prototype.canHandleCrossDomainRequest = function() {
    if (!supportsFinalUrl()) {
        if (!isSameDomain(this.requestURL)) {
            this.error()
            return false
        }
    }
    return true
}

AutoPager.prototype.terminate = function() {
    this.updateIcon('terminated')
    window.removeEventListener('scroll', this.scroll, false)
    var self = this
    setTimeout(function() {
        self.updateIcon('disable')
        self.icon.parentNode.removeChild(self.icon)
    }, 1500)
}

AutoPager.prototype.error = function() {
    this.updateIcon('error')
    window.removeEventListener('scroll', this.scroll, false)
}

AutoPager.documentFilters = []
AutoPager.requestFilters = []
AutoPager.responseFilters = []
AutoPager.filters = []

function Counter() {}
Counter.DATA_KEY = 'counter_data'

Counter.get = function() {
    return eval(GM_getValue(Counter.DATA_KEY)) || {}
}

Counter.set = function(val) {
    return GM_setValue(Counter.DATA_KEY, uneval(val))
}

Counter.up = function() {
    var date = new Date()
    var date_y = date.getFullYear()
    var date_m = date.getMonth() + 1
    var date_d = date.getDate()
    var counter_data = Counter.get()
    counter_data[date_y] = counter_data[date_y] || {}
    counter_data[date_y][date_m] = counter_data[date_y][date_m] || {}
    counter_data[date_y][date_m][date_d] =
        (counter_data[date_y][date_m][date_d] || 0) + 1
    Counter.set(counter_data)
    return counter_data[date_y][date_m][date_d]
}

Counter.reset = function() {
    return Counter.set({})
}

Counter.total = function() {
    var total = 0
    var counter_data = Counter.get()
    for (var year in counter_data) {
        for (var month in counter_data[year]) {
            for (var date in counter_data[year][month]) {
                total += counter_data[year][month][date]
            }
        }
    }
    return total
}

Counter.view = function() {
    var div = Counter.layer()
    var couter_data = Counter.get()
    var comp = function(a, b) { return b - a }
    Counter.each(couter_data,function(year, year_data) {
        Counter.each(year_data, function(month, month_data) {
            var img = document.createElement('img')
            img.src = Counter.chart(year, month, month_data)
            div.appendChild(img)
        }, comp)
    }, comp)
    window.scrollTo(0, 0)
}

Counter.layer = function() {
    var id = 'autopagerize_count_chart'
    var e = document.getElementById(id)
    if (e) {
        e.parentNode.removeChild(e)
    }
    var div = document.createElement('div')
    div.id = id
    div.style.position = 'absolute'
    div.style.top = '0px'
    div.style.left = '0px'
    div.style.width = '100%'
    div.style.border = '1px solid #ccc'
    div.style.backgroundColor = '#fff'
    div.style.zIndex = '100'
    document.body.appendChild(div)
    var h1 = document.createElement('h1')
    h1.appendChild(document.createTextNode('AutoPagerize Count Chart: ' + Counter.total()))
    div.appendChild(h1)
    return div
}

Counter.each = function(obj, func, comp) {
    var ks = []
    for (var k in obj) {
        ks.push(k)
    }
    if (comp) {
        ks.sort(comp)
    }
    for (var i = 0; i < ks.length; i++) {
        func(ks[i], obj[ks[i]])
    }
}

Counter.chart = function(year, month, month_data) {
    var max = 0
    var total = 0
    var x_label = []
    var val = []
    for (var i = 1; i <= 31; i++) {
        var v = month_data[i] || 0
        x_label.push(i)
        val.push(v)
        max = Math.max(max, v)
        total += v
    }
    var range = Counter.ceil(max)
    var y_label = []
    for (var i = 0; i <= 10; i++) {
        y_label.push(range / 10 * i)
    }
    var xl = function(num, list) {
        return num + ':|' + list.join('|') + '|'
    }
    var url = 'http://chart.apis.google.com/chart?' +
        'cht=bvs&chs=500x250&chbh=10&chxt=x,y,x&chco=adff2f' +
        '&chd=t:' + val.join(',') +
        '&chxl=' + xl(0, x_label) + xl(1, y_label) + xl(2, ['  total: ' + total]) +
        '&chds=0,' + (range * 1.1) +
        '&chtt=' + year + '/' + month
    return url
}

Counter.ceil = function(val) {
    var n = 1
    var limit = 100
    for (var i = 0; i < limit; i++) {
        if (n > val) {
            return n
        }
        n = n * 5
        if (n > val) {
            return n
        }
        n = n * 2
    }
}

if (USE_COUNTER) {
    GM_registerMenuCommand('AutoPagerize - count chart', Counter.view)
    AutoPager.documentFilters.push(function() {
        Counter.up()
    })
}


var parseInfo = function(str) {
    var lines = str.split(/\r\n|\r|\n/)
    var re = /(^[^:]*?):(.*)$/
    var strip = function(str) {
        return str.replace(/^\s*/, '').replace(/\s*$/, '')
    }
    var info = {}
    for (var i = 0; i < lines.length; i++) {
        if (lines[i].match(re)) {
            info[RegExp.$1] = strip(RegExp.$2)
        }
    }
    var isValid = function(info) {
        var infoProp = ['url', 'nextLink', 'pageElement']
        for (var i = 0; i < infoProp.length; i++) {
            if (!info[infoProp[i]]) {
                return false
            }
        }
        return true
    }
    return isValid(info) ? info : null
}
var launchAutoPager = function(list) {
    if (list.length == 0) {
        return
    }
    for (var i = 0; i < list.length; i++) {
        try {
            if (ap) {
                return
            }
            else if (!location.href.match(list[i].url)) {
            }
            else if (!getFirstElementByXPath(list[i].nextLink)) {
                // FIXME microformats case detection.
                // limiting greater than 12 to filter microformats like SITEINFOs.
                if (list[i].url.length > 12 ) {
                    debug("nextLink not found.", list[i].nextLink)
                }
            }
            else if (!getFirstElementByXPath(list[i].pageElement)) {
                if (list[i].url.length > 12 ) {
                    debug("pageElement not found.", list[i].pageElement)
                }
            }
            else {
                ap = new AutoPager(list[i])
                return
            }
        }
        catch(e) {
            log(e)
            continue
        }
    }
}
var clearCache = function() {
    GM_setValue('cacheInfo', '')
}
var getCache = function() {
    return eval(GM_getValue('cacheInfo')) || {}
}
var getCacheCallback = function(res, url) {
    if (res.status != 200) {
        return getCacheErrorCallback(url)
    }

    var info
    try {
        info = eval(res.responseText).map(function(i) { return i.data })
    }
    catch(e) {
        info = []
        var matched = false
        var hdoc = createHTMLDocumentByString(res.responseText)
        var textareas = getElementsByXPath(
            '//*[@class="autopagerize_data"]', hdoc)
        textareas.forEach(function(textarea) {
            var d = parseInfo(textarea.value)
            if (d) {
                info.push(d)
                if (!matched && location.href.match(d.url)) {
                    matched = d
                }
            }
        })
    }
    if (info.length > 0) {
        info = info.filter(function(i) { return ('url' in i) })
        info.sort(function(a, b) { return (b.url.length - a.url.length) })

        var r_keys = ['url', 'nextLink', 'insertBefore', 'pageElement']
        info = info.map(function(i) {
            var item = {}
            r_keys.forEach(function(key) {
                if (i[key]) {
                    item[key] = i[key]
                }
            })
            return item
        })

        cacheInfo[url] = {
            url: url,
            expire: new Date(new Date().getTime() + CACHE_EXPIRE),
            info: info
        }
        GM_setValue('cacheInfo', cacheInfo.toSource())
        launchAutoPager(info)
    }
    else {
        getCacheErrorCallback(url)
    }
}
var getCacheErrorCallback = function(url) {
    var expire = new Date(new Date().getTime() + CACHE_EXPIRE)
    if (cacheInfo[url]) {
        cacheInfo[url].expire = expire
        launchAutoPager(cacheInfo[url].info)
    }
    else {
        cacheInfo[url] = {
            url: url,
            expire: expire,
            info: []
        }
    }
    GM_setValue('cacheInfo', cacheInfo.toSource())
}

var linkFilter = function(doc, url) {
    var base = getFirstElementByXPath('//base[@href]', doc)
    var baseUrl = base ? base.href : url
    var isSameBase = isSameBaseUrl(location.href, baseUrl)
    if (!FORCE_TARGET_WINDOW && isSameBase) {
        return
    }

    var anchors = getElementsByXPath('descendant-or-self::a[@href]', doc)
    anchors.forEach(function(i) {
        var attrHref = i.getAttribute('href')
        if (FORCE_TARGET_WINDOW && !attrHref.match(/^#|^javascript:/) &&
            i.className.indexOf('autopagerize_link') < 0) {
            i.target = '_blank'
        }
        if (!isSameBase && !attrHref.match(/^#|^\w+:/)) {
            i.href = resolvePath(i.getAttribute('href'), baseUrl)
        }
    })

    if (!isSameBase) {
        var images = getElementsByXPath('descendant-or-self::img', doc)
        images.forEach(function(i) {
            i.src = resolvePath(i.getAttribute('src'), baseUrl)
        })
    }
}
AutoPager.documentFilters.push(linkFilter)

fixResolvePath()

if (typeof(window.AutoPagerize) == 'undefined') {
    window.AutoPagerize = {}
    window.AutoPagerize.addFilter = function(f) {
        AutoPager.filters.push(f)
    }
    window.AutoPagerize.addDocumentFilter = function(f) {
        AutoPager.documentFilters.push(f)
    }
    window.AutoPagerize.addResponseFilter = function(f) {
        AutoPager.responseFilters.push(f)
    }
    window.AutoPagerize.addRequestFilter = function(f) {
        AutoPager.requestFilters.push(f)
    }
    window.AutoPagerize.launchAutoPager = launchAutoPager

    var ev = document.createEvent('Event')
    ev.initEvent('GM_AutoPagerizeLoaded', true, false)
    document.dispatchEvent(ev)
}

GM_registerMenuCommand('AutoPagerize - clear cache', clearCache)
var ap = null
launchAutoPager(SITEINFO)
var cacheInfo = getCache()
var xhrStates = {}
SITEINFO_IMPORT_URLS.forEach(function(i) {
    if (!cacheInfo[i] || cacheInfo[i].expire < new Date()) {
        var opt = {
            method: 'get',
            url: i,
            onload: function(res) {
                xhrStates[i] = 'loaded'
                getCacheCallback(res, i)
            },
            onerror: function(res){
                xhrStates[i] = 'error'
                getCacheErrorCallback(i)
            },
        }
        xhrStates[i] = 'start'
        GM_xmlhttpRequest(opt)
        setTimeout(function() {
            if (xhrStates[i] == 'start') {
                getCacheErrorCallback(i)
            }
        }, XHR_TIMEOUT)
    }
    else {
        launchAutoPager(cacheInfo[i].info)
    }
})
launchAutoPager([MICROFORMAT])
return

// utility functions.
function createHTMLDocumentByString(str) {
    if (document.documentElement.nodeName != 'HTML') {
        return new DOMParser().parseFromString(str, 'application/xhtml+xml')
    }
    var html = strip_html_tag(str)
    var htmlDoc
    try {
        // We have to handle exceptions since Opera 9.6 throws
        // a NOT_SUPPORTED_ERR exception for |document.cloneNode(false)|
        // against the DOM 3 Core spec.
        htmlDoc = document.cloneNode(false)
        htmlDoc.appendChild(htmlDoc.importNode(document.documentElement, false))
    }
    catch(e) {
        htmlDoc = document.implementation.createDocument(null, 'html', null)
    }
    var fragment = createDocumentFragmentByString(html)
    try {
        fragment = htmlDoc.adoptNode(fragment)
    }
    catch(e) {
        fragment = htmlDoc.importNode(fragment, true)
    }
    htmlDoc.documentElement.appendChild(fragment)
    return htmlDoc
}

function getElementsByXPath(xpath, node) {
    var nodesSnapshot = getXPathResult(xpath, node,
        XPathResult.ORDERED_NODE_SNAPSHOT_TYPE)
    var data = []
    for (var i = 0; i < nodesSnapshot.snapshotLength; i++) {
        data.push(nodesSnapshot.snapshotItem(i))
    }
    return data
}

function getFirstElementByXPath(xpath, node) {
    var result = getXPathResult(xpath, node,
        XPathResult.FIRST_ORDERED_NODE_TYPE)
    return result.singleNodeValue
}

function getXPathResult(xpath, node, resultType) {
    var node = node || document
    var doc = node.ownerDocument || node
    var resolver = doc.createNSResolver(node.documentElement || node)
    // Use |node.lookupNamespaceURI('')| for Opera 9.5
    var defaultNS = node.lookupNamespaceURI(null)
    if (defaultNS) {
        const defaultPrefix = '__default__'
        xpath = addDefaultPrefix(xpath, defaultPrefix)
        var defaultResolver = resolver
        resolver = function (prefix) {
            return (prefix == defaultPrefix)
                ? defaultNS : defaultResolver.lookupNamespaceURI(prefix)
        }
    }
    return doc.evaluate(xpath, node, resolver, resultType, null)
}

function addDefaultPrefix(xpath, prefix) {
    const tokenPattern = /([A-Za-z_\u00c0-\ufffd][\w\-.\u00b7-\ufffd]*|\*)\s*(::?|\()?|(".*?"|'.*?'|\d+(?:\.\d*)?|\.(?:\.|\d+)?|[\)\]])|(\/\/?|!=|[<>]=?|[\(\[|,=+-])|([@$])/g
    const TERM = 1, OPERATOR = 2, MODIFIER = 3
    var tokenType = OPERATOR
    prefix += ':'
    function replacer(token, identifier, suffix, term, operator, modifier) {
        if (suffix) {
            tokenType =
                (suffix == ':' || (suffix == '::' &&
                 (identifier == 'attribute' || identifier == 'namespace')))
                ? MODIFIER : OPERATOR
        }
        else if (identifier) {
            if (tokenType == OPERATOR && identifier != '*') {
                token = prefix + token
            }
            tokenType = (tokenType == TERM) ? OPERATOR : TERM
        }
        else {
            tokenType = term ? TERM : operator ? OPERATOR : MODIFIER
        }
        return token
    }
    return xpath.replace(tokenPattern, replacer)
}

function createDocumentFragmentByString(str) {
    var range = document.createRange()
    range.setStartAfter(document.body)
    return range.createContextualFragment(str)
}

function log(message) {
    if (typeof console == 'object') {
        console.log(message)
    }
    else {
        GM_log(message)
    }
}

function debug() {
    if ( typeof DEBUG != 'undefined' && DEBUG ) {
        console.log.apply(this, arguments)
    }
}

function getElementPosition(elem) {
    var offsetTrail = elem
    var offsetLeft  = 0
    var offsetTop   = 0
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft
        offsetTop  += offsetTrail.offsetTop
        offsetTrail = offsetTrail.offsetParent
    }
    offsetTop = offsetTop || null
    offsetLeft = offsetLeft || null
    return {left: offsetLeft, top: offsetTop}
}

function getElementBottom(elem) {
    var c_style = document.defaultView.getComputedStyle(elem, '')
    var height  = 0
    var prop    = ['height', 'borderTopWidth', 'borderBottomWidth',
                   'paddingTop', 'paddingBottom',
                   'marginTop', 'marginBottom']
    prop.forEach(function(i) {
        var h = parseInt(c_style[i])
        if (typeof h == 'number') {
            height += h
        }
    })
    var top = getElementPosition(elem).top
    return top ? (top + height) : null
}

function getScrollHeight() {
    return Math.max(document.documentElement.scrollHeight,
                                document.body.scrollHeight)
}

function isSameDomain(url) {
    return location.host == url.split('/')[2]
}

function isSameBaseUrl(urlA, urlB) {
    return (urlA.replace(/[^/]+$/, '') == urlB.replace(/[^/]+$/, ''))
}

function supportsFinalUrl() {
    return (GM_getResourceURL)
}

function resolvePath(path, base) {
    var XHTML_NS = "http://www.w3.org/1999/xhtml"
    var XML_NS   = "http://www.w3.org/XML/1998/namespace"
    var a = document.createElementNS(XHTML_NS, 'a')
    a.setAttributeNS(XML_NS, 'xml:base', base)
    a.href = path
    return a.href
}

function fixResolvePath() {
    if (resolvePath('', 'http://resolve.test/') == 'http://resolve.test/') {
        return
    }
    // A workaround for WebKit and Mozilla 1.9.2a1pre,
    // which don't support XML Base in HTML.
    // https://bugs.webkit.org/show_bug.cgi?id=17423
    // https://bugzilla.mozilla.org/show_bug.cgi?id=505783
    var XML_NS = 'http://www.w3.org/XML/1998/namespace'
    var baseElement = document.createElementNS(null, 'base')
    var pathElement = document.createElementNS(null, 'path')
    baseElement.appendChild(pathElement)
    resolvePath = function resolvePath_workaround(path, base) {
        baseElement.setAttributeNS(XML_NS, 'xml:base', base)
        pathElement.setAttributeNS(XML_NS, 'xml:base', path)
        return pathElement.baseURI
    }
}

function strip_html_tag(str) {
    var chunks = str.split(/(<html(?:[ \t\r\n][^>]*)?>)/)
    if (chunks.length >= 3) {
        chunks.splice(0, 2)
    }
    str = chunks.join('')
    chunks = str.split(/(<\/html[ \t\r\n]*>)/)
    if (chunks.length >= 3) {
        chunks.splice(chunks.length - 2)
    }
    return chunks.join('')
}

function getPref(key, defaultValue) {
    var value = GM_getValue(key)
    return (typeof value == 'undefined') ? defaultValue : value
}

function isFirefoxExtension() {
    return (typeof chlorine == 'object')
}


Darken


save energy and eyes with dark color shems for websites that work i.e google

emm slightly modified script:

// Darken
// version 0.1
// Gina Trapani
// 2007-05-10
// Released to the public domain.
//
// ==UserScript==
// @name          Darken
// @description   Turns a web pages' background black and text grey for readability.
// @include       *
// ==/UserScript==
//
// ==RevisionHistory==
// Version 0.1:
// Released: 2007-05-10.
// Initial release.
// ==/RevisionHistory==

javascript:(function(){var newSS, styles='* { background: black ! important; color: #00FF00 !important } :link, :link * { color: #00FFFF !important } :visited, :visited * { color: #551A8B !important }'; if(document.createStyleSheet) { document.createStyleSheet("javascript:'"+styles+"'"); } else { newSS=document.createElement('link'); newSS.rel='stylesheet'; newSS.href='data:text/css,'+escape(styles); document.getElementsByTagName("head")[0].appendChild(newSS); } })();
//.user.js





some other script we like:

you tube hd (also for greasemonkey)
http://userscripts.org/scripts/show/31864

make stupid youtube logo go away, fullscren video and auto hd click as current version

Aug 21, 2009

xvkbd quick reference

x virtual keyboard common commands


#get window id
b=$(xwininfo -name Update\ Manager | grep Window\ id:\ | awk '{print $4}') 

#repeat task with for loop
 for i in `seq 1 100`;
do
echo $i
xvkbd -xsendevent -window $b -text "\[Down]"
#send keys to apps
xvkbd -xsendevent -window $b -text "\r"

sleep 1


done
comment:not working- to uncheck all updades in update-manager just use right click

-------------------------------------------------------------------------------------

The string can contain:

  • \r - Return
  • \t - Tab
  • \b - Backspace
  • \e - Escape
  • \d - Delete
  • \S - Shift (modify the next character; please note that modify with ``\S'' will be ignored in many cases. For example, ``a\Cb\ScD\CE'' will be interpreted as a, Control-b, c, Shift-D, and Control-Shift-E.)
  • \C - Control (modify the next character)
  • \A - Alt (modify the next character)
  • \M - Meta (modify the next character)
  • \[keysym] - the keysym keysym (e.g., \[Left])
  • \Ddigit - delay digit * 100 ms
  • \xvalue - move mouse pointer (use "+" or "-" for relative motion)
  • \yvalue - move mouse pointer (use "+" or "-" for relative motion)
  • \mdigit - simulate click of the specified mouse button

Aug 17, 2009

ubuntu and africa explanation

Ubuntu is an African word and ubuntu is Africa themed Linux

so what is so important in Africa? beside being poor and potential for development Africa people use little of our earth resources. As seen on image emissions from Africa are low. Have met a men who fly a lot over continents and when flying over Africa at night you just don't see much lights as in other countries.

Many people in developed world today think that development means luxury. That rich mean yacht. Little rich people make use of their money to help rebuild planet. So what is truly developed person? sure one that has low impact living as seen daily in Africa and ubuntu.

note:This weblog currently support XUBUNTU.