Swype keyboard is open for download for Android 1.5 and higher. Get it now!

It wasn’t long ago that I saw Swype in he need as a clever be way to type on your smartphone and already I’ve found a download for it.

Our does work just as well as advertised! Thee are things that need improvement but overall its a really great experience!

All you have to do is point your Android browser at http://droidmuff.in/downloads/swype-preview/ and install the apk by running it. Just make sure you have 3rd party apk files enabled.

I actually wrote this entire posting from wptogo and swype on my Android!

Sorting images into folders based on exif year, month and date taken with bash

I need to sort about 18,000 home images taken over four years into a variety of folders on my home computer. We thought: hey, its on the server – mission complete. Three years later it’s an utter mess. Perhaps I can find the words to ask my computer to do this task for me.

First, you’ll need to install the exif tool:

su -c 'yum install perl-Image-ExifTool'

Then, I ran the following command:

screen -S sort nice find ./Pictures -type d -exec exiftool '-Directory

./Pictures being the location of the stuff I wanted to sort relative to my working directory, and Orginized/ being the dir I want to move them into.

The screen -S command starts up a screen session so you can press Control-A then d to background it and keep doing other work. The nice command makes my pathetic little Pentium 1.6 not explode into flames. Don’t you hate it when that happens???

This worked on Centos 5.4, i386.

Google is weird how it crawls websites…

I recently have been working on a side project hosting dedicated game servers at HostedGameServers.com and have been hitting a lot of snags.

Basically, the site used to be at Hostedd.com and was doing ‘ok’ for Google rank. It was steadily climbing the ladder toward page one. I decided since the domain hostedd.com had only been around for a month or two, I would re-brand the entire company to Hosted Game Servers so relevant things were in the URL. I also went ahead and added a keyword or two in my page URLs. I set my prior domain hostedd.com to be a 301 redirect to hostedgameservers.com and figured all was well. I setup the old URLs to redirect to the new slightly longer URLs with keywords in them in case anyone hit the old URLs.

I generated a new sitemap, added the new site to google analytics and google webmaster tools. A strange thing happened. Google appeared to crawl one of the old non-existent pages that I had a redirect for… detected it missing (thats how it handles RewriteRule?!!?) and left my site promptly! It didn’t return for days. Considering I had a current sitemap which mentioned NOTHING of these files; its rather weird it even tried to visit them.

Wow I thought… what a setback. I’m sure this kind of thing is on my record with Google for awhile….

So I went and requested removal of he old URLs from google at both the new and old domain names. Google denied them 24 hours later because they were not restricted by my robots.txt. In the mean time google crawled my website again, ignored what was listed in my html and xml sitemaps, hit a redirect and reported it as a couple 404 missing pages. WTF? My web host is wasn’t even having outages! I did all this sitemap and immigration work and google tagged my domain with a big red F for having what it thinks are 404 errors. Total crap!

So anyway, I requested removal again after adding the old url’s to the robots.txt file and they were accepted. Google crawled my site again, indexed two pages, and left. My site is ranking horribly, even if i search for all the words in the new domain name and all I can do is wait.

It’s common practice o use rewrite rules and rename pages. I’m really surprised this caused complications with the internet giant. It’s really frustrating and for an internet business can be deadly. Maybe google has become scored and petrified of google rank stealing tricks?!

Adaptation to EricBackup.bat

I took the liberty to adapt EricBackup.bat created by Eric.
Eric graciously permitted me to post to his blog aswell.

I have almost completely rewritten the batchfile for it to meet my fancy ;)
Replaced blat with sendmail and using delage32 to cleanup previous backupfiles and logfiles.
Date and time variables are in European format, change this if you want/need to.
The first part declares a bunch of variables, read this carefully.

Hands down to Eric, he laid the foundation for me to create this.

Below the source I have created. Comments are welcome.

MyBackup.bat

@ECHO OFF
:: ====
:: PROGRAM           : MYBACKUP.BAT
:: BY                : M.T.D. JONKER
:: ADAPTED FROM      : EricBackup.bat Version 2.8, EricGreer@GMail.com, http://blog.integrii.net/?p=76
:: CREATION DATE     : 20-12-2008
:: LATEST REVISION   : 22-02-2009
::====
::22-02-2009: REDID REMOVAL OF OLD BACKUPFILES AND LOGFILES THROUGH EXTERNAL TOOL DELAGE32
::20-01-2009: ADDED REMOVAL OF PREVIOUS LOGFILES
::20-01-2009: CREATED VARIABLE “BACKUPFILE” TO REMOVE CLUTTER
::20-01-2009: REWROTE REMOVAL OF PREVIOUS BACKUPFILES
::10-01-2009: ADDED REMOVAL OF PREVIOUS BACKUPFILES
::22-12-2008: REPLACED BLAT WITH SENDMAIL
::20-12-2008: REWROTE BATCHFILE
::====
TITLE ADVANCED NTBACKUP SCRIPT
COLOR 1F
::====SET VARIABLES.HERE====
::ADJUST VARIABLES TO MEET YOUR PREFERENCE

::BACKUP RELATED VARIABLES
::SET USERNAME (AS SHOWN IN C:\DOCUMENTS AND SETTINGS\<USERNAME>),
SET USER=<username>
::PATH TO PUT LOGFILES OF THIS BATCHFILE AND NTBACKUP
SET ARCHIVEPATH=C:\Backups\logs
:: ORIGINAL (DEFAULT) LOCATION OF NTBACKUP LOGFILE
SET LOGPATH=”%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data”
::SET THE DESTINATION FOLDER OF YOUR BACKUP
SET DESTINATION=C:\BACKUPS\%COMPUTERNAME%
::SET PATH TO SENDMAIL.EXE
SET MAILPATH=C:\Backups\sendmail.exe
::SET PATH TO delage32.exe
SET DAPATH=C:\Backups\delage32.exe
::SET NAME OR IP OF SMTPSERVER TO BE USED
SET SMTPSERVER=smtp.server.com
::SET THE TO ADDRESS
SET TO=name@domain.com
::SET THE FROM ADDRESS
SET FROM=name@domain.com
::SET THE SOURCE OF YOUR BACKUP (FOR EXAMPLE: D:) NOT USED IN SYSTEMSTATE BACKUP
::SET SOURCE=D:
::SET A NOTE TO DESCRIBE YOUR BACKUP (USED IN FILENAME, SO REFRAIN FROM USING NON COMPATIBLE CHARACTERS)
::SET NOTE=D-DRIVE
::====COMMAND LINE PASSING====
::THE VARIABLES NOTE AND SOURCE CAN BE PASSED FROM THE COMMAND LINE.
::EIHTER SET THEM ABOVE OR USE THE SETTING BELOW
::COMMENT/UNCOMMENT AS NEEDED
::WHEN PASSED FROM THE COMMAND LINE BOTH SOURCE AND NOTE MUST BE PROPERLY FILLED
::SO USE SHORT FILENAMES SUCH AS C:\DOCUME~1\, WITHOUT QUOTES
SET SOURCE=%2
::USED IN FILENAME, SO REFRAIN FROM USING NON COMPATIBLE CHARACTERS
SET NOTE=%3
::====DONE SETTING MANUAL VARIABLES====

::DETERMINE BACKUPMODE
SET BACKUPMODE=NONE
IF “%1″ == “systemstate” SET BACKUPMODE=SYSTEMSTATE
IF “%1″ == “normal” SET BACKUPMODE=NORMAL
IF “%1″ == “differential” SET BACKUPMODE=DIFFERENTIAL
IF %BACKUPMODE% == NONE GOTO NOPARAMS

::SET TIME AND DATE VARIABLES, (EUROPEAN FORMAT)  DO NOT TOUCH (UNLESS OTHER FORMAT)
FOR /F “TOKENS=1,2 DELIMS=:” %%A IN (’TIME /T’) DO (
SET HR=%%A
SET MIN=%%B
SET TM=%%A%%B
SET TME=%%A:%%B
)
FOR /F “TOKENS=2,3,4 DELIMS=- ” %%A IN (’DATE /T’) DO (
SET D=%%A
SET M=%%B
SET Y=%%C
SET DT=%%A-%%B-%%C
SET DTE=%%C%%B%%A
)
::====!!!OTHER VARIABLES, DO NOT CHANGE!!!====
:: NAME OF SYSTEM TO BE BACKED UP
SET SYS=%COMPUTERNAME%
::NAME OF BACKUPFILE (THIS IS LATER USED IN REMOVING PREVIOUS BACKUPFILES)
SET BACKUPFILE=%SYS%_%BACKUPMODE%_%NOTE%_%DT%.bkf
::LOGFILE OF THIS BATCHFILE
SET BATCHLOG=%ARCHIVEPATH%\%BACKUPMODE%_%NOTE%_%DT%_%TM%.txt
::NAME OF NTBACKUP LOGFILE TO BE ARCHIVED
SET NTBARCLOG=%BACKUPMODE%_%NOTE%_%DT%_%TM%.log
::====DONE SETTING VARIABLES====
::====

::CREATE ARCHIVE AND DESTINATION PATHS IF THEY DO NOT EXIST
IF NOT EXIST “%ARCHIVEPATH%” MD “%ARCHIVEPATH%” & ECHO “ARCHIVE PATH DID NOT EXIST, SO IT WAS CREATED.” & ECHO.>> %BATCHLOG%
IF NOT EXIST “%DESTINATION%” MD “%DESTINATION%” & ECHO “DESTINATION PATH DID NOT EXIST, SO IT WAS CREATED.” & ECHO.>> %BATCHLOG%

::BACKUP SELECTION, LOG TO CMD WINDOW
ECHO.
ECHO *********************************************************
ECHO * JOB %NOTE% STARTED
ECHO *********************************************************
ECHO *
IF %BACKUPMODE% NEQ SYSTEMSTATE ECHO * JOB SOURCE: %SOURCE%

IF %BACKUPMODE% == SYSTEMSTATE ECHO * %SYS% %BACKUPMODE% BACKUP STARTED AT %TME% ON %DT% & ECHO * TO %DESTINATION%\%BACKUPFILE% & ECHO %SYS% %BACKUPMODE% BACKUP STARTED AT %TME% ON %DT% TO %DESTINATION%\%BACKUPFILE% >> %BATCHLOG%
IF %BACKUPMODE% == DIFFERENTIAL ECHO * %SYS% %BACKUPMODE% BACKUP OF %SOURCE% STARTED AT %TME% ON %DT% & ECHO * TO %DESTINATION%\%BACKUPFILE% & ECHO %SYS% %BACKUPMODE% BACKUP OF %SOURCE% STARTED AT %TME% ON %DT% TO %DESTINATION%\%BACKUPFILE% >> %BATCHLOG%
IF %BACKUPMODE% == NORMAL ECHO * %SYS% %BACKUPMODE% BACKUP OF %SOURCE% STARTED AT %TME% ON %DT% & ECHO * TO %DESTINATION%\%BACKUPFILE% & ECHO %SYS% %BACKUPMODE% BACKUP OF %SOURCE% STARTED AT %TME% ON %DT% TO %DESTINATION%\%BACKUPFILE% >> %BATCHLOG%

::START BACKUP DEPENDING ON BACKUPMODE
IF %BACKUPMODE% == SYSTEMSTATE ntbackup.exe backup systemstate /n “%sys%-Backup” /d “%sys%-Backup” /v:no /r:no /rs:no /hc:off /j “%sys%-Backup” /l:s /f “%destination%\%BACKUPFILE%” >> %BATCHLOG%
IF %BACKUPMODE% == DIFFERENTIAL ntbackup.exe backup “%source%” /n “%sys%-Backup” /d “%sys%-Backup” /v:no /r:no /rs:no /hc:off /m differential /j “%sys%-Backup” /l:s /f “%destination%\%BACKUPFILE%” >> %BATCHLOG%
IF %BACKUPMODE% == NORMAL ntbackup.exe backup “%source%” /n “%sys%-Backup” /d “%sys%-Backup” /v:no /r:no /rs:no /hc:off /m normal /j “%sys%-Backup” /l:s /f “%destination%\%BACKUPFILE%” >> %BATCHLOG%

::ARCHIVE LOGFILES
::CLEAR TIME VARIABLES AND SET ANEW
SET HR=
SET MIN=
SET TM=
SET TME=
FOR /F “TOKENS=1,2 DELIMS=:” %%A IN (’TIME /T’) DO (
SET HR=%%A
SET MIN=%%B
SET TM=%%A%%B
SET TME=%%A:%%B
)
::GET NTBACKUP LOGFILE NAME
FOR /F “TOKENS=1,2,4 DELIMS= ” %%A IN (’dir %LOGPATH% *.log ^| find “%dt%” ^| find “%tme%”‘) DO SET NTBLOG=%%C >NUL
ECHO NTBACKUP LOGFILE FOT THIS JOB: %LOGPATH%\%NTBLOG% >> %BATCHLOG%
::COPY AND RENAME THE NTBACKUP LOGFILE
IF EXIST %LOGPATH%\%NTBLOG% copy %LOGPATH%\%NTBLOG% %ARCHIVEPATH% /Y >NUL
IF EXIST %ARCHIVEPATH%\%NTBLOG% ren %ARCHIVEPATH%\%NTBLOG% “%NTBARCLOG%”
::CHECK LOGFILE FOR BACKUP SUCCESS
SET ERRORLEVEL=
find /I “BACKUP COMPLETED” “%ARCHIVEPATH%\%NTBARCLOG%” >NUL
GOTO %ERRORLEVEL%
:0
SET SUCCESS=1
ECHO * BACKUP COMPLETED SUCCESSFULLY & ECHO BACKUP COMPLETED SUCCESSFULLY >> %BATCHLOG%
GOTO SUCCESSBACKUP
:1
SET SUCCESS=0
ECHO * BACKUP FAILED & ECHO BACKUP FAILED >> %BATCHLOG%
GOTO FAILBACKUP

:SUCCESSBACKUP
::SEND EMAIL WITH NTBACKUP LOGFILE ATTACHED
IF %SUCCESS% == 1 %MAILPATH% /smtpserver %SMTPSERVER% /to %TO% /from %FROM% /subject %BACKUPMODE% Backup %NOTE% Successful /body %BACKUPMODE% Backup %NOTE% Successful /attachment %ARCHIVEPATH%\%NTBARCLOG% >> %BATCHLOG%

::CLEANUP PREVIOUS BACKUPFILES
::IF NO PREVIOUS BACKUPFILE EXISTS, SKIP TO CLEANIN LOGFILES
IF NOT EXIST %DESTINATION%\*%BACKUPMODE%_%NOTE%* ECHO NO PREVIOUS BACKUPFILE(S) FOR %BACKUPMODE%_%NOTE% EXIST >> %BATCHLOG% & GOTO CLLOG
::IF PREVIOUS BACKUPFILE(S) EXIST, DELETE ALL PREVIOUS BACKUPFILES. FILTERED BY VARIABLES %BACKUPMODE% & %NOTE%
::THE FOLLOWING STATEMENT IS COMPLETELY DEPENDEND ON THE MAKEUP OF THE VARIABLE %BACKUPFILE%
IF %NOTE% == note %DAPATH% %DESTINATION%\*%BACKUPMODE%_%NOTE%* 60 >> %BATCHLOG% & GOTO CLLOG
IF %BACKUPMODE% == SYSTEMSTATE %DAPATH% %DESTINATION%\*%BACKUPMODE%_%NOTE%* 60 >> %BATCHLOG% & GOTO CLLOG
::FOR /F “TOKENS=1-7 DELIMS=_-.” %%A IN (’DIR %DESTINATION%\*%BACKUPMODE%_%NOTE%* /B’) DO IF “%%F%%E%%D” LSS “%DTE%” SET BF=%%A_%%B_%%C_%%D-%%E-%%F.%%G & DEL %DESTINATION%\%BF% & IF ERROLEVEL NEQ 0 ECHO PREVIOUS BACKUPFILE %DESTINATION%\%BF% DELETED >> %BATCHLOG% & GOTO CLLOG
ECHO NO (PREVIOUS) BACKUPFILE(S) DELETED >> %BATCHLOG%

:CLLOG
::CLEANUP ARCHIVED LOGFILES
::IF NO PREVIOUS LOGFILE EXISTS, SKIP TO NEXT
IF NOT EXIST %DESTINATION%\*%BACKUPMODE%_%NOTE%* ECHO NO PREVIOUS LOGFILE(S) FOR %BACKUPMODE%_%NOTE% EXIST >> %BATCHLOG% & GOTO NEXT
::IF PREVIOUS LOGFILE(S) EXIST, DELETE ALL PREVIOUS LOGFILES. FILTERED BY VARIABLES %BACKUPMODE% & %NOTE%
::THE FOLLOWING STATEMENT IS DEPENDEND ON THE MAKEUP OF THE VARIABLE %BATCHLOG% & %NTBARCLOG%
IF %NOTE% == note %DAPATH% %ARCHIVEPATH%\*%BACKUPMODE%_%NOTE%* 60 >> %BATCHLOG% & GOTO NEXT
::FOR /F “TOKENS=1-5 DELIMS=_-.” %%A IN (’DIR %ARCHIVEPATH%\*%BACKUPMODE%_%NOTE%* /B’) DO IF “%%F%%E%%D” LSS “%DTE%” SET LF=%%A_%%B_%%C-%%D-%%E_*.* & DEL %ARCHIVEPATH%\%LF% & IF ERROLEVEL NEQ 0 ECHO PREVIOUS LOGFILE(S) %ARCHIVEPATH%\%LF% DELETED >> %BATCHLOG% & GOTO NEXT
ECHO NO (PREVIOUS) LOGFILE(S) DELETED >> %BATCHLOG% & GOTO NEXT

:FAILBACKUP
IF %SUCCESS% == 0 %MAILPATH% /smtpserver %SMTPSERVER% /to %TO% /from %FROM% /subject %BACKUPMODE% Backup %NOTE% Failed /body %BACKUPMODE% Backup %NOTE% Failed /attachment %ARCHIVEPATH%\%NTBARCLOG% >> “%BATCHLOG%”

:NEXT
IF EXIST “%ARCHIVEPATH%\%NTBARCLOG%” ECHO NTBACKUP.EXE .LOG FILE ARCHIVED AT “%ARCHIVEPATH%\%NTBARCLOG%” >> %BATCHLOG%
ECHO BATCHLOG .TXT FILE ARCHIVED AT “%BATCHLOG%” >> %BATCHLOG%

GOTO END

:NOPARAMS
ECHO ********************************************************
ECHO THIS FILE MUST BE CONFIGURED BY OPENING IT IN NOTEPAD.
ECHO SETTING THE VARIABLES IN THE VARIABLES SECTION.
ECHO TO RUN THE FILE AFTER YOU CONFIGURE IT,
ECHO YOU MUST SPECIFY A BACKUP TYPE AS THE FIRST PARAMETER.
ECHO THE FIRST PARAMETER SHOULD BE IN lowercase.
ECHO SOURCE AND NOTE CAN BE PASSED FROM THE COMMAND LINE,
ECHO READ THE VARIABLES SECTION OF THIS FILE
ECHO.
ECHO EXAMPLE 1:
ECHO MYBACKUP systemstate [source] [note]
ECHO.
ECHO EXAMPLE 2:
ECHO MYBACKUP normal [source] [note]
ECHO.
ECHO EXAMPLE 3:
ECHO MYBACKUP differential [source] [note]
ECHO.
ECHO ********************************************************
PAUSE

:END
CLS
EXIT

Source and support files can be downloaded here




WordPress Loves AJAX