Welcome to nascent’s wordpress

This place exists so that I can get things off my chest and have them exist somewhere on the internet, so that if ever needed I can refer to existing ideas, rants or even things/projects I intend to do.

I do not intend on updating this blog on any form of schedule, I only intend to add to it as and when I have something fairly unique to say.

If anything I write is confusing or unclear leave a comment and I will consider rewriting/rewording the post.  Also, if you have a method better than the ones I write blog posts about – feel free to mention them in the comments, and I will read them, I always try to keep open minded about alternative solutions.

If you are interested in knowing whenever the blog has a new post, follow me on twitter:
twitterhttp://twitter.com/nascentt or subscribe to the RSS feed:
rsshttps://nascents.wordpress.com/feed/

For more on rss click here.

CAPshift 2.0: Slow down and extend the Caps Lock key (or Num Lock key)

CAPshift2.0 (Continuation and evolution of CAPshift)

[Brief summary of original CAPshift functionality]

CAPshift is a Caps Lock (and optionally NumLock) extender!

CAPshift creates a minuscule delay so that the capslock key can’t just be knocked by mistake whilst typing, and must be held for x milliseconds to activate.
Also if capslock is held for a longer period of time, it displays a menu that extends the caps lock key. Offering functions such as: convert selected text to UPPER CASE, lower case, Title Case, Sentence case, or iNVERT cASE.

After discovering the original CAPshift by skrommel and modifying it for my own use over 3 years ago now, I’ve always intended to add the same functionality to the numlock key, as I often toggle numlock accidentally, and as a laptop user it can be a real pain.
I thought I’d take the opportunity to incorporate all the cool functionality everyone’s added to CAPshift over the years, and make the extra features optional so people don’t have to ‘pick a version’ depending on what features they do or don’t want. So have made a CAPshift 2.0 that tries to incorporate everyone’s additions and improvements.

CAPshift2.0 is based off of K.Freeman’s version of the script as it included INI configuration support, plus most of the features of each contributing author.
https://autohotkey.com/board/topic/4310 … ntry360797

Main new features of CAPshift 2.0:
* Optional functionality saved to INI file. So everyone can pick and choose their prefered features from each version of the scripts, such as: progress bar visibility, color, tooltips, capslock toggle menu item or split on-off menu items in enhanced menu.
* Added delay and menu functionality to NumLock and capslock.
* Fixed K Freeman’s script (but bug has existed since skrommel’s original script) so that hitting a modifier key (such as shift which is right below capslock) at the same time as capslock doesn’t bypass the script.
* Put capslock ON and Capslock OFF back in menu (and NumLock ON and OFF). INI option to switch back to toggle menu items instead.
* Fixed K.Freeman’s bug which prompts for a custom timer of 1 second=1000 but timer loop uses a sleep 10 in the loop making 1 second=100. Updated prompts to reflect meaning of numbers.
* Reorganised the menu. As features are added it makes more sense to cascade the text conversions

I’ve also incorporated HansBKK’s request and Gogo’s “Needle” code into CAPshift to add a Smart Title Case function in addition to the dumber Title Case function, it seemed like a cool idea, so I fiddled around trying to add it to CAPshift2. Basically it does not capitalise articles, conjunctions and prepositions unless they are in the start of the sentence. Gogo’s sample list of these words were very limited, so I extended it.

Finally I’ve added a feature to make the capslock (and numlock if numlock mode is enabled) immediately induce the menu rather than toggle capslock at all, based on HansBKK’s use case. I didn’t actually use any of his code, but give credit for the idea.

IF ANYONE ADDS TO OR MODIFIES THIS VERSION OF CAPSHIFT, PLEASE CAN YOU ADD THE NEW FUNCTIONALITY AS TOGGLEABLE OPTIONS THAT CAN BE TURNED ON OR OFF, SO THAT WAY WE CONTINUE TO EVOLVE A SINGLE SCRIPT RATHER THAN FRAGMENT THEM.

New features and script author they came from:
evl:
* Color progress bar (I have modified this to allow custom colors)
* remove under scores
* remove fullstops
https://autohotkey.com/board/topic/4310 … ntry145316

k freeman:
* Sentence Case function (removed yes/no dialog if you don’t want lowercase proper nouns don’t use the feature or go back and capitalise the proper nouns manually).
* ini settings support
https://autohotkey.com/board/topic/4310 … ntry360797

GoGo:
* Smart Title Case
https://autohotkey.com/board/topic/7287 … ntry462990
Credit to HansBKK for the suggestion.

As before I include the code here, and also for the lazy, a compiled version with a suitable icon I found.

Preview:

Image


; Slows down and extends the capslock and numlock keys.
; Original programming by skrommel with modifications by evl k.freeman and nascent
; Code for Sentence case borrowed from JDN and ManaUser.

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases. 
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability. 
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory. 

iniRead, NumberLock, CAPShift.ini, Settings, NumberLock, true
iniRead, TimeLockToggle, CAPShift.ini, Settings, TimeLockToggle, 400
iniRead, TimeOut, CAPShift.ini, Settings, TimeOut, 1000
iniRead, ToggleCaps, CAPShift.ini, Settings, ToggleCaps, false
iniRead, progressBar, CAPShift.ini, Settings, progressBar, true
iniRead, lockColor, CAPShift.ini, Settings, lockColor, 00a300
iniRead, menuColor, CAPShift.ini, Settings, menuColor, 3d3d3d
iniRead, enableTooltips, CAPShift.ini, Settings, enableTooltips, true
iniRead, menuOnly, CAPShift.ini, Settings, menuOnly, false
iniRead, soundBeeps, CAPShift.ini, Settings, soundBeeps, false

;Initialise tooltips with a default timer value
SetTimer,TOOLTIP,1500 
SetTimer,TOOLTIP,Off 

ToggleTimer := (TimeLockToggle//10)
MenuTimer := (TimeOut//10)

About = 
(LTrim0 
CAPShift 2.0
(v: 01/03/17-01)
Enhance and stickify the capslock and numlock keys. 

Hold for %TimeLockToggle% ms to toggle capslock/numlock on or off. 
Hold for %TimeOut% ms to show a menu that converts selected text to 
UPPER CASE, lower case, Title Case, iNVERT cASE, etc 

Written by skrommel, evl, k.freeman and nascent
) 



*CapsLock:: 
if (menuOnly = "true")
  GoSub, MENU

counter=0 
if (progressBar = "true"){
Progress, ZH16 ZX0 ZY0 B R0-%MenuTimer% CB%lockColor%
}
Loop, %MenuTimer% 
  { 
    Sleep,10 
    counter+=1 
    if (progressBar = "true"){
      Progress, %counter% ;, SubText, MainText, WinTitle, FontName 
    }
    If (counter = ToggleTimer) 
       if (progressBar = "true"){
         Progress, ZH16 ZX0 ZY0 B R0-%MenuTimer% CB%menuColor% 
       }
     GetKeyState,state,CapsLock,P 

     if  state=U
        Break 
  } 
if (progressBar = "true"){
  Progress, Off 
}
If counter=%MenuTimer% 
  Gosub,MENU 
Else If (counter>ToggleTimer) 
  Gosub, CapsLock_State_Toggle 
Return 


*NumLock:: 
if (NOT NumberLock = "true") {
  Gosub, NumLock_State_Toggle 
  return
}
if (menuOnly = "true")
  GoSub, MENU

counter=0 
if (progressBar = "true"){
Progress, ZH16 ZX0 ZY0 B R0-%MenuTimer% CB%lockColor%
}
Loop, %MenuTimer% 
  { 
    Sleep,10 
    counter+=1 
    if (progressBar = "true"){
      Progress, %counter% ;, SubText, MainText, WinTitle, FontName 
    }
    If (counter = ToggleTimer) 
       if (progressBar = "true"){
         Progress, ZH16 ZX0 ZY0 B R0-%MenuTimer% CB%menuColor% 
       }
     GetKeyState,state,NumLock,P 

     if  state=U
        Break 
  } 
if (progressBar = "true"){
  Progress, Off 
}
If counter=%MenuTimer% 
  Gosub,MENU 
Else If (counter>ToggleTimer) 
  Gosub, NumLock_State_Toggle 
Return 

MENU: 
Winget, Active_Window, ID, A 
Send,^c 
ClipWait,20 
Menu,main,Add 
Menu,main,Delete 
Menu,main,Add,CAPShift, EMPTY
Menu,main,Add,
if (ToggleCaps = "true")
{
  Menu,main,Add,&CapsLock Toggle,CapsLock_State_Toggle
}
else
{
  Menu,main,Add,&CapsLock On,CapsLock_On
  Menu,main,Add,C&apsLock Off,CapsLock_Off
}
if (ToggleCaps = "true")
{
  Menu,main,Add,&NumLock Toggle,NumLock_State_Toggle
}
else
{
  Menu,main,Add,
  Menu,main,Add,&NumLock On,NumLock_On
  Menu,main,Add,N&umLock Off,NumLock_Off
}
Menu,main,Add, 
Menu,settings,Add,&Sticky Numlock,MNUMBERLOCK
Menu,settings,Add,&Lock Keys Trigger Immediate Menu,MDIRECT
Menu,settings,Add,&Toggle Timer,TTIMER
Menu,settings,Add,&Menu Timer, MTIMER
Menu,settings,Add,Toggle M&enu Item, MTOGGLE
Menu,settings,Add,Toggle P&rogress Bar, MPROGRESS
Menu,settings,Add,Toggle Tooltips, MTOOLTIPS
Menu,settings,Add,Change Pro&gress Bar Color, MlockColor
Menu,settings,Add,Change Menu Progress Bar &Color, MMENUCOLOR
Menu,settings,Add,&Beeps When toggling lock state, MSOUNDBEEP
Menu,convert,Add,&UPPER CASE,MENU_ACTION
Menu,convert,Add,&lower case,MENU_ACTION
Menu,convert,Add,&Sentence case,MENU_ACTION
Menu,convert,Add,&Title Case,MENU_ACTION
Menu,convert,Add,&Smart Title Case,MENU_ACTION
Menu,convert,Add,&iNVERT cASE,MENU_ACTION
Menu,convert,Add,Remove_&under_scores,MENU_ACTION
Menu,convert,Add,Remove.&full.stops,MENU_ACTION
Menu, main ,Add,Con&vert Text, :convert
Menu,main,Add,&Settings, :settings
Menu,main,Default,CAPShift
Menu,main,Add,
Menu,main,Add,&About,ABOUT 
Menu,main,Add,&Quit,QUIT 
Menu,main,Show 
Return 

MENU_ACTION: 
AutoTrim,Off 
string=%clipboard% 
clipboard:=Menu_Action(A_ThisMenuItem, string) 
WinActivate, ahk_id %Active_Window% 
Send,^v
string=%tooltiptext%
stringReplace,tooltiptext,A_ThisMenuItem ,% chr(38),,A ;get rid of ampersand
tooltiptext = Selection converted to %tooltiptext%
iniRead, enableTooltips, CAPShift.ini, Settings, enableTooltips, true
if (NOT enableTooltips = "true"){
    tooltiptext := ""
  }
ToolTip,%tooltiptext%
SetTimer,TOOLTIP,On 
Return 

Menu_Action(ThisMenuItem, string) 
{
Needle =
(join ltrim comments
  (^|[.!?:;])\W*\K(([A-Z]{2,4})\b          ; first (in the sentence) acronym (upper case $U3)
                  |([\w']+))               ; any other first word   (title case $T4)
  |\b(?i)(a|about|above|across|after|against|along|amid|among|amongst|an|and|around|as|at|athwart|atop|barring|before|behind|below|beneath|beside|besides|between|beyond|but|by|circa|concerning|despite|down|during|except|excluding|following|for|from
     |in|including|inside|into|like|minus|near|nor|notwithstanding|of|off|on|onto|opposite|or|out|outside|over|past|plus|regarding|s|save|since|so|the|than|through|till|to|toward|towards|under|underneath|unlike|until|up|upon|verus|via|with|within|without|yet)\b  ; not first small words (lower case $L5)
  |\b(?-i)([A-Z]{2,4})\b                   ; not first acronym  (upper case $U6)
  |\b([\w']+)                              ; any other word   (title case $T7)
)

 
If ThisMenuItem =&UPPER CASE 
  StringUpper,string,string 

Else If ThisMenuItem =&lower case 
  StringLower,string,string 

Else if ThisMenuItem =&Sentence case
   {
      StringLower, string, string
      string := RegExReplace(string, "(((^|([.!?]\s+))[a-z])| i | i')", "$u1")
   } 

Else If ThisMenuItem =&Title Case 
   StringLower,string,string,T 

Else If ThisMenuItem =&Smart Title Case 
   {
      ;StringLower, string, string ;this would negate the Acronym check of Needle, but if text is frequently all uppercase before invoking this method, you might want to normalise text to lowercase first
      string := RegExReplace(string,Needle,"$U3$T4$L5$U6$T7")
   } 

Else If ThisMenuItem =&iNVERT cASE 
   { 
   StringCaseSense,On 
   lower=abcdefghijklmnopqrstuvwxyz 
   upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ 
   StringLen,length,string 
      Loop,%length% 
         { 
         StringLeft,char,string,1 
         StringGetPos,pos,lower,%char% 
         pos+=1 
         If pos<>0 
            StringMid,char,upper,%pos%,1 
         Else 
            {    
              StringGetPos,pos,upper,%char% 
              pos+=1 
              If pos<>0 
                 StringMid,char,lower,%pos%,1 
            } 
      StringTrimLeft,string,string,1 
      string.=char 
    } 
  StringCaseSense,Off 
  } 
Else If ThisMenuItem =Remove_&under_scores 
  StringReplace, string, string,_,%A_Space%, All 
Else If ThisMenuItem =Remove.&full.stops 
  StringReplace, string, string,.,%A_Space%, All 
Return string 
} 


EMPTY: 
Return 

;Hides the tooltip after 1 1/2 seconds
TOOLTIP: 
ToolTip, 
SetTimer,TOOLTIP,Off 
Return 

CapsLock_State_Toggle: 
  If GetKeyState("CapsLock","T") 
    state=Off 
  Else 
    state=On 
  CapsLock_State_Toggle(state) 
Return 

CapsLock_State_Toggle(State) 
{ 
  tooltiptext = CapsLock %State%
  SetCapsLockState,%State% 
  iniRead, soundBeeps, CAPShift.ini, Settings, soundBeeps, false
  if (soundBeeps = "true"){
    SoundBeep
  }
  iniRead, enableTooltips, CAPShift.ini, Settings, enableTooltips, true
  if (NOT enableTooltips = "true"){
    tooltiptext := ""
  }
  ToolTip,%tooltiptext% 
  SetTimer,TOOLTIP,On 
} 

CapsLock_On:
  state=On 
  CapsLock_State_Toggle(state) 
Return

CapsLock_Off:
  state=Off
  CapsLock_State_Toggle(state) 
Return

NumLock_State_Toggle: 
  If GetKeyState("NumLock","T") 
    state=Off 
  Else 
    state=On 
  NumLock_State_Toggle(state) 
Return 

NumLock_State_Toggle(State) 
{ 
  iniRead, NumberLock, CAPShift.ini, Settings, NumberLock, true
  SetNumLockState,%State% 	
  if (NumberLock = "true") {
    iniRead, soundBeeps, CAPShift.ini, Settings, soundBeeps, false
    if (soundBeeps = "true"){
      SoundBeep
    }
    iniRead, enableTooltips, CAPShift.ini, Settings, enableTooltips, true
    if (enableTooltips = "true"){
       tooltiptext = NumLock %State%
       ToolTip,%tooltiptext% 
       SetTimer,TOOLTIP,On 
    }
  }
} 

NumLock_On:
  state=On 
  NumLock_State_Toggle(state) 
Return

NumLock_Off:
  state=Off
  NumLock_State_Toggle(state) 
Return

MlockColor:
inputBox, TCCOLOR, CAPShift: Progress Bar Color, Enter the desired color wanted for the capslock/numlock progress bar`n(RGB format example: FF0000 is Red),,,,,,,,%lockColor%
if TCCOLOR !=
   {
   iniWrite, %TCCOLOR%, CAPShift.ini, Settings, lockColor
   sleep 100
   reload
   }
return 

MMENUCOLOR:
inputBox, TMCOLOR, CAPShift: Menu Progress Color, Enter the desired color wanted for the menu progress bar`n(RGB format example: FF0000 is Red),,,,,,,,%menuColor%
if TMCOLOR !=
   {
   iniWrite, %TMCOLOR%, CAPShift.ini, Settings, menuColor
   sleep 100
   reload
   }
return 

MSOUNDBEEP:
Menu,settings,Add,&Beeps When toggling lock state, MSOUNDBEEP
MsgBox, 4, CAPShift: Sound Beeps, Select Yes if you want Beeps everytime you toggle Lock State or No for silent operation
IfMsgBox Yes
   {
   iniWrite, true, CAPShift.ini, Settings, soundBeeps
   }
else IfMsgBox No
   {
   iniWrite, false, CAPShift.ini, Settings, soundBeeps
   }
sleep 100
reload
return

MDIRECT:
MsgBox, 4, CAPShift: Immediate Menu, Select Yes if you want Lock Keys to trigger immediate menu on keypress (losing typical key functionality), or No for holding key for sticky capslock/numlock and holding longer for menu.
IfMsgBox Yes
   {
   iniWrite, true, CAPShift.ini, Settings, menuOnly
   }
else IfMsgBox No
   {
   iniWrite, false, CAPShift.ini, Settings, menuOnly
   }
sleep 100
reload
return

TTIMER:
inputBox, TTIME, CAPShift: Timer, Enter the amount of time you want to press the key to toggle CapsLock on/off (1000 = 1 second),, 320, 140
if TTIME !=
   {
   iniWrite, %TTIME%, CAPShift.ini, Settings, TimeLockToggle
   sleep 100
   reload
   }
return 

MTIMER:
inputBox, MTIME, CAPShift: Timer, Enter the amount of time (in milliseconds) you want to press the key to bring up the CAPShift Menu`n(1000 MS = 1 second)`n(Note: rounded to nearest 10ms),, 340, 180
if MTIME !=
   {
   iniWrite, %MTIME%, CAPShift.ini, Settings, TimeOut
   sleep 100
   reload
   }
return

MNUMBERLOCK:
MsgBox, 4, CAPShift: Numlock, Select Yes if you want sticky NumLock, or No if you want this program to ignore NumLock
IfMsgBox Yes
   {
   iniWrite, true, CAPShift.ini, Settings, NumberLock
   }
else IfMsgBox No
   {
   iniWrite, false, CAPShift.ini, Settings, NumberLock
   }
sleep 100
reload
return

MTOGGLE:
MsgBox, 4, CAPShift:Capslock/Numlock Toogle Menu, Select Yes if you want a combined Capslock Toggle and a combined Numlock Toggle in the menu or No if you want separate On and Off commands for each.
IfMsgBox Yes
   {
   iniWrite, true, CAPShift.ini, Settings, ToggleCaps
   }
else IfMsgBox No
   {
   iniWrite, false, CAPShift.ini, Settings, ToggleCaps
   }
sleep 100
reload
return

MPROGRESS:
MsgBox, 4, CAPShift: Progress Bars, Select Yes if you want a progress bar showing how long left to hold CapsLock or NumLock, or No if you don't want a progress bar
IfMsgBox Yes
   {
   iniWrite, true, CAPShift.ini, Settings, progressBar
   }
else IfMsgBox No
   {
   iniWrite, false, CAPShift.ini, Settings, progressBar
   }
sleep 100
reload
return

MTOOLTIPS:
MsgBox, 4, CAPShift: Tooltips, Select Yes if you want tooltips showing capslock status after activation or No if you don't want them
IfMsgBox Yes
   {
   iniWrite, true, CAPShift.ini, Settings, enableTooltips
   }
else IfMsgBox No
   {
   iniWrite, false, CAPShift.ini, Settings, enableTooltips
   }
sleep 100
reload
return


ABOUT: 
MsgBox,0,CAPShift,%About% 
Return 

QUIT: 
ExitApp</pre>
<pre>

Image

Download compiled CAPshift.exe:
http://www7.zippyshare.com/v/kf26LwVr/file.html http://turbobit.net/2mo9cgva7vhn.html https://www.dropbox.com/s/tj2r5gchlmdqx … t.exe?dl=0

Android Marshmallow: Screen Overlay Detected

I spent the last few days struggling with one of the most frustrating and crippling bugs I’ve had the displeasure of encountering in a while. After finally solving it I wanted to post my solution for reference.

screen-overlay-detected

Issue is: Trying to toggle permissions results in a prompt warning about Screen Overlay Detected. This feature exists because some apps can draw over the top of other apps, such examples are colour/brightness changing apps, screen readers, and also notification apps such as floatify. But such an app could trick you into giving permissions by drawing over the top of the screen with a picture or button and when you click that you’d really be clicking the permissions giving the app dangerous abilities.

Sadly this implementation is pretty poor. There should really be a ‘pause all screen overlay apps’ so that you dont need to turn them all off each time you change a permission, and ideally this pause all screen overlay should be automatic when permissions pages appear, and resumed when they are closed.
The biggest problem is that even after unticking all screen overlay permissions for every app, you can still get this prompt showing, leaving you completely stuck and unable to do anything.

There is a hidden option in the settings to resolve this exact issue.

The solution: Go to Settings, Apps, click the Cog symbol at the top, click Draw Over Other Apps, Ensure all apps are turned off, then if you still have this problem you need to click the hidden dot dot dot menu on the top right of the screen, and then click Reset App Permissions.

appsappscogdraw-over-appsresetapppermissions

This will stop the dialog showing despite having already unticked all screen drawing apps.

However I also found a great app that will pretty much bypass this whole issue, Install Button Unlocker. This app will magically overlay (irony?) buttons over the top of the permissions pages which allow you to interact with the permissions despite this feature trying to block you from doing that.

CAPshift: Keyboard toogle freeware

CAPshift

I have used software to delay the caps lock toggle for a while now in order to prevent ACCIDENTAL UPPER CASE TEXT.

Unfortunately, there’s nothing free out there to do the job, and the only semi-competent shareware program I could find was written for Windows 9x and barely updated since, plus loaded with tons of bugs.

One day I was lucky enough to stumble across CAPshift, an autohotkey script that accomplished mostly what I was after. Unfortunately, it too had a bug, and also a few other annoyances.  Today I finally completed my modification of the program which has no known bugs, and works EXACTLY as I want it to.

I have compiled and share it here to anyone looking for such a tool. Continue reading ‘CAPshift: Keyboard toogle freeware’

Swype vs TouchPal vs SlideIT vs SwiftKey

[Mar-2013] Swiftkey Flow

[Jan-2013] Updated to include Touchpal and Swype’s Skins

[Dec-2011] Updated to include SwiftKey

Swiftkey Flow has recently come out officially, and it’s pretty much a game-changer.  I’ll try to keep the layout of my original post but will update where appropriate for references to Flow.

There’s a lot of keyboard apps now for Android, and it’s getting more difficult for users to decide which one to pick.  Now that I have given the top 4 a thorough test, I decided to share my findings.

To start I’ll talk about what they all can do:

  • tap-prediction – Just as with the stock android keyboard, tap letters and it will predict the word you are trying to type.
  • swiping – sliding text input, simply drag your finger across the letters of each word, and the app will output the one it thinks you meant, and offer suggestions for other words if it got it wrong.

Continue reading ‘Swype vs TouchPal vs SlideIT vs SwiftKey’

Gmail: Multiple Inboxes aka Finally Truly Inbox Zero

Multiple inboxes came out in feb 2009 and offers the ability to add extra ‘inboxes’ to your gmail account.  This is great for merging your multiple email accounts into one place for easy monitoring.

However, back in Feb 2009 I tried Multiple Inboxes and found it cluttering and kind of pointless for me.  What’s the difference if unread email to nascent1@gmail.com is separate to the unread email in nascent2@gmail.com.  They’re both unread so have to be read.

I understand that for users with hundreds of emails a day, keeping home and work email accounts separate as there are differing levels of priority, but that doesn’t interest me.

The way I’ve always handled email is when it arrives, read it and if there’s nothing that needs to be done, label and archive it, ala Inbox Zero; this works great, but when it comes to emails I need to respond to/remind me of something it gets tricky.  Sometimes I’ll just put the task in my to-do list then label & archive the email to get it out of the inbox, but usually I’ll just leave it in there as a reminder.

This only causes me to put up with 5-10 emails in my inbox at any one time, so while it’s good, it’s not quite Inbox Zero.  One incentive to get the email out of the inbox completely, is  pop/imap, but another is the Google lab Inbox Preview which shows, as the name suggests, a preview of your inbox while the gmail account is loading.  This is quite nifty for getting a quick overview of new emails during the loading process so that decisions on how to deal with them can be made in advance of seeing them.

Though, when there are 5-10 emails in the inbox, the Inbox preview is pretty much useless, new emails look too similar to read emails, so everything just sort of blurs together.

So I had another stab at getting Multiple Inboxes to work for me, and I seem to have it exactly as I wanted.

This image shows that I have split the inbox into two.  You have the normal inbox at the bottom, nice and empty.  But then above is my reminder emails, these are either starred or unread emails.  So anything new to the inbox shows up there, and anything I’ve previously read but have starred as a reminder also shows up there.

So currently I’m awaiting a few deliveries, and so this ensures that, if they don’t turn up, I will remember to chase them up.  Typically I have emails with things I need to respond to, or some sort of action that I need to perform at a later date.

Some people take Multiple Inboxes further and turn it into a GTD task list organiser, but I think Remember The Milk, and Google Tasks is better suited for this, and inboxes should just be for emails.

Multiple Inboxes really lets you do some crafty tricks to make email better suited to your lifestyle.  You can pretty much create boolean searches for each inbox thus totally separating your different use cases of email.  If you like certain labels to be dealt with differently than other emails it can be done, my search query is “label:unread OR is:starred”, so this can give you an idea of how simple and powerful stringing together different filters can be.

Why everyone should be using FriendFeed

There are many, many different social services on the web, and we can’t have accounts at all of them, it’d get too confusing and frustrating having to monitor them all.

Enter FriendFeed.  FriendFeed is a service that takes all other social networks you are  a member of and aggregates them into a single feed, which is much easier to read through by your friends.

FriendFeed was acquired by Facebook in 2009, and is able to link to your many online accounts, intelligently taking posts, comments and ratings and displaying them in an automated feed.

Once you link your various accounts to your FriendFeed account, you don’t need to do anything else, your comments and submissions on all the various accounts will be aggregated together for your friends to see without any effort on your part.

As well as be accessed on it’s own custom url, FriendFeed can also be added as a tab on your Facebook profile:

This really is an invaluable service.  No longer do you need to spam every url of an article you like, or a youtube video you find finny, but instead can rate those things from their own services and let FriendFeed pick it up.  This leaves your Facebook and Twitter accounts cleaner and more appealing to follow by your peers.

So by creating a FriendFeed account, you’re helping your friends link to all the communities you are apart of, but also helping them by reducing the Facebook and Twitter spam posts and keeping links in a nicer more manageable interface.

So give it a try and make an account!

Comparison of Android Barcode Apps

Comparison of Android Barcode Scanners:

There are quite a few barcode scanners on Android Market, and until now I have installed all of them, but have been unable to make up my mind of which to keep and use.  This is a quick side by side comparison table to show the different features, and then a brief conclusion to explain why I have chosen which apps are worth installing and using.

CNET Scan & Shop is exactly the same as Shop Savvy but adds CNet Reviews, so completely pointless and a megabyte larger for no reason.

SnapTell and Google Goggles have almost the exact same functionality, but SnapTell offers reading from an existing image, however unless you plan to take photos and scan them at later dates there’s not enough difference to warrant having both.

Barcode Scanner offers very little in terms of shopping functionality, but is the only app to offer QR Barcode scanning, which is good for sharing contacts and other things.  It’s also less than a megabytes so still worth having.

Edit: As mentioned in the comment below by Randy, ShopSavvy will have QR Code reader functionality too.

Google Shopper is US prices only, whereas Google Goggles offers international prices.

Compare everywhere offers nothing over any of the other apps.

Conclusion

The only apps worth installing are:
Google Goggles and Shop Savvy.  It is worth having both as Shop Savvy is better for barcode scanning as it has a price comparison screen which allows at a glance viewing of the best price available, but Google Goggles offers photo scanning of products and not just barcodes.

Also Barcode Scanner is a nice app to have – not for shopping as it offers nothing unique in that department – but it offers QR Code scanning, which is cool for sharing contacts and reading stored information.

App

Price

QR Barcodes

Text search

Barcode scan

Photo scan

Overview with price comparison?

Local results

Web results

Compare Everywhere

Free

No

Yes

Yes

No

No

No

Yes

Barcode Scanner

Free

Yes

No

Yes

No

No

No

Yes

CNET Scan & Shop

Free

No

Yes

Yes

No

Yes

Yes

Yes

Google Goggles

Free

Yes

No

Yes

Yes

No

No

Linked

Shop Savvy

Free

No

Yes

Yes

No

Yes

Yes

Yes

SnapTell

Free

No

No

Yes

Yes

No

No

Linked