PortableApps.com wins big in the 2009 Community Choice Awards and hits 100 million app downloads!

SpeedyFox Portable 1.4 Dev Test 2

digitxp's picture
Submitted by digitxp on October 24, 2009 - 3:04pm

I'm just trying to get back in the hang of things, so I thought I'd try a quick something like SpeedyFox.
Application: SpeedyFox
Category: Utilities/Web
Description: From the site:

Mozilla Firefox is a fast browser, but with the lapse of time it starts working much slowly. The reason is fragmentation of profile databases. A free tool SpeedyFox is designed specially to resolve that problem. The method used in SpeedyFox is 100% safe for your profile (e.g. bookmarks, passwords, etc), it's well documented and tested on many computers.

Download SpeedyFox Portable 1.4 Development Test 2 [271KB download / 403KB installed]
(MD5:88a9b4f2a3add556cee87a161c4bfb63)

Release Notes:

Development Test 2 (10/27/09): Fixed the downloading problem with a workaround.
Development Test 1 (10/24/09): Initial release

  • John: Is there a way to change how the installer complains about not having a launcher executable? I had to make a dummy exe to get around that Sad.
  • Apparently the installer doesn't download the SpeedyFox executable. Why?


( categories: )

This should be fixed before

This should be fixed before posted as a release. The installer should do what it's supposed to...install the app.

Also - you should not have "?MB installed". You should have an actual installed size, just as every other app does.

Can't

I'm on a library computer, and while it's soooo... much better than the public library's computers, it still doesn't let you right click on explorer windows.
I'll get to fixing it now...
[Edit]
I'm stumped. Why won't it download?

Insert original signature here with Greasemonkey Script.

It does but you need to fill

It does but you need to fill in DownloadTo in installer.ini

EDIT: OK, scrap that, I see you're downloading it to the main folder. Never tried that before, is that supposed to work?

EDIT2: It's in USER\Local Settings\Temporary Internet Files. Doesn't look like downloading to the main folder is supported because if I change DownloadTo to App then it appears (in App).

Potential Workaround

I just thought of a nice workaround. I can use
App\..\ for the DownloadTo thing. But right now I'm on a Linux PC w/o a working Wine, and the Windows PC that I connected Synergy to isn't all that stable.

Insert original signature here with Greasemonkey Script.

i looked

on there site and it says its a 0.3mb size download
why do you say it's a 271mb download?

60\/\/ 2 /\/\3 4 1 4/\/\ 12007
bow to me for i am root

It says 271KB which is about

It says 271KB which is about 0.3 MB.

oh

my bad

60\/\/ 2 /\/\3 4 1 4/\/\ 12007
bow to me for i am root

Not Really

I changed it and didn't say I did Evil.

Insert original signature here with Greasemonkey Script.

Updated

I fixed the problem with the downloading by using App\.. as the DownloadTo variable.

Insert original signature here with Greasemonkey Script.

Wow

This is cool!

It saved me 14mb which isn't much but its something! I like it.
The next thing I'd do is to pass the firefoxPortable location directly to the app Smiling
Or ask the devs to implement a feature that shows you how much space you saved (like AppCompactor has).

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Passing FF Portable

I...Will...Try...

Insert original signature here with Greasemonkey Script.

cool

but maybe make it an ini option because not everyone has firefox in the standard location.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

AHK GUI

I haven't tried an AHK tray GUI before (other than modifying AutoMemScan) so I'll start with trying that.

Insert original signature here with Greasemonkey Script.

NSIS

I would have thought all you'd need would be to pass it as an argument or whatever, and then ExecWait? (You could weight Firefox before and after if really wanted.) I haven't tried the program though.

Christian, developer, moderator

Weighting

Yes it is...
But I want to do overkill and make a unobtusive GUI tray.
Thanks for the idea of weighing Firefox... it'll make people happy Smiling.

Insert original signature here with Greasemonkey Script.

SpeedyFox GUI!

This is my 1st homebrew tray GUI, and it's still in the works. It works, unless if you give it a drive letter that isn't the same one that it is on (dynamic drive compensation is hard).
Written in AHK.

/* SpeedyFox Unobtrusive Background Program
 * Copyright (c) 2009, digitxp
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list 
 * of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 *
 * Neither the name of the  nor the names of its contributors may be used to 
 * endorse or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
#noenv
#notrayicon
#persistent
#singleinstance,Force

;===Variables
location = %A_ScriptDir%
ffprofile = 
fflaunch = 0
fflaunchloc = 
runstring =
StringLeft,driveletter,A_ScriptDir,2 ;get the drive letter

;===Add the menutray icons
	Menu, TRAY, NoStandard
	Menu, TRAY, Add, SpeedyFox Background, About
	Menu, TRAY, Add ;add a separator line
	Menu, TRAY, Add, Status, blank ;this is where the status goes
		
		Menu, Settings, Add, SpeedyFox Location..., SelectLocation
		Menu, Settings, Add, Firefox Profile..., SelectProfile
		Menu, Settings, Add, Launch Firefox When Done, LaunchFFToggle
		Menu, Settings, Add, Firefox Executable Location..., LaunchFFChoose
	Menu, TRAY, Add, Settings, :Settings
	Menu,TRAY, Add, Quit, Quit
	Menu,TRAY, Tip, We are busy making Firefox`nfaster than you'll ever imagine...

;===Grab the Locations from the settings file
	INIRead, location, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, SpeedyFoxLocation
	INIRead, ffprofile, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, FirefoxProfileLocation
	INIRead, fflaunch, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, ExecuteFF
	INIRead, fflaunchloc, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, FFLocation

;===Check if there were any reading errors
	if ( location = ERROR )
		GoSub, SelectLocation

	if ( ffprofile = ERROR )
		GoSub, SelectProfile

	if ( fflaunch = ERROR or fflaunchloc = ERROR)
	{
		fflaunch = 0
		fflaunchloc = 
	}

;===Change the traymenu according to the FF exec thingy
	if ( fflaunch = 1 )
		Menu, TRAY, enable, LaunchFirefoxWhenDone
	
;===Check if it's a valid location
		IfNotExist, %driveletter%\%location%
			GoSub, SelectLocation
		IfNotExist, %driveletter%\%ffprofile%
			GoSub, SelectProfile
		IfNotExist, %driveletter%\%fflaunchloc%
		{
			fflaunch = 0
			fflaunchloc = 
		}
			
;===Search for the Firefox folder and prompt user if he wants to do that
		If fflaunch = 0
			IfExist, %A_ScriptDir%\..\FirefoxPortable\FirefoxPortable.exe
			{
				MsgBox,4132, Found Firefox Portable, Hey,`nwe found a Firefox Portable install, you wanna run it after we're done doing our thing?, 30 ;show a yes/no messagebox, question mark, system modal
				IfMsgBox Yes
					fflaunchloc= %A_ScriptDir%\..\FirefoxPortable\FirefoxPortable.exe
				IfMsgBox No
					fflaunch = -1 ;-1 is the 'don't ask' option
			}

;===The really important launch part
Launch:
runstring = %location% /profile:%ffprofile%
RunWait, %runstring%
;===Make a traytip here

;===Run FF
if (fflaunch = 1)
	Run %fflaunchloc%
Goto Quit

About:
	;===Make an about dialog

;======Settings===========================================================================

SelectLocation:
	;===Set the SpeedyFox Location
	FileSelectFile, location, 2, Select the SpeedyFox Executable, SpeedyFox Executable (speedyfox.exe)
	if ( location =  )
	{
		MsgBox,4116, Choose, or kill me., You didn't choose the speedyfox program. Would you like to choose it now? ;yes/no,icon hand,system modal
		IfMsgBox Yes
			Goto SelectLocation
		IfMsgBox No
			ExitApp
	}
	IfNotExist, %location% ;validate
	{
		MsgBox, 4148, SpeedyFox isn't over there, Yeah, um... you chose a nonexistent file... Do you have the guts to go and choose a folder that does exist?  ;yes/no,exclamation,system modal
		IfMsgBox Yes
			Goto SelectLocation
		IfMsgBox No
			ExitApp
	}
	INIWrite, %location%, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, SpeedyFoxLocation
	return
	
SelectProfile:
	;===Set the Firefox profile
	FileSelectFolder, ffprofile, *%driveletter%, 0, Select your Firefox profile.
	if ( ErrorLevel = 1 )
	{
		MsgBox,4116, Choose, or (let us) die., You didn't choose the Firefox profile. Would you like to choose it now? ;yes/no,icon hand,system modal
		IfMsgBox Yes
			Goto SelectProfile
		IfMsgBox No
			ExitApp
	}
	IfNotExist, %ffprofile% ;validate
	{
		MsgBox, 4148, Your profile doesn't exist, Yeah, um... you chose a nonexistent folder... Do you have the guts to go and choose a folder that does exist? ;yes/no,exclamation,system modal
		IfMsgBox Yes
			Goto SelectProfile
		IfMsgBox No
			ExitApp
	}
	StringTrimLeft,ffprofile,ffprofile,3
	INIWrite, %ffprofile%, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, FirefoxProfileLocation
	Goto Launch

LaunchFFToggle:
	;===Toggle whether or not to run FF
	if ( fflaunch = 1 )
	{
		fflaunch = 0
		Menu, TRAY, disable, LaunchFirefoxWhenDone
	}
	else ;because maybe -1 will turn up
	{
		fflaunch = 1
		Menu, TRAY, enable, LaunchFirefoxWhenDone
	}
	INIWrite, %fflaunch%, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, fflaunch
	return
	
LaunchFFChoose:
	;===Choose where the FF executable is
	FileSelectFile, fflaunchloc, 3, %A_ScriptDir%\.., Choose the Firefox Portable launcher, Firefox Portable Launchers (FirefoxPortable.exe)
	if ( location =   )
	{
		MsgBox,4116, Choose!, You didn't choose the Firefox launcher. Would you like to choose it now? ;yes/no,icon hand,system modal
		IfMsgBox Yes
			Goto LaunchFFChoose
		IfMsgBox No
		{
			fflaunch = 0
			Menu, TRAY, disable, LaunchFirefoxWhenDone
			INIWrite, %fflaunch%, %A_ScriptDir%\speedyfoxbg.settings.file, Locations, fflaunch
			Goto Launch
		}
	}
	return
	
;==========================================================================================
	
Quit:
	;===Check if SpeedyFox is still running, and if it is, don't close just yet
	Process, Exist, speedyfox.exe
	If ( ErrorLevel = 0) ;if it doesn't exist
		ExitApp
	Else
	{
		MsgBox,4404,SpeedyFox is Still Running, SpeedyFox is apparently still running.`nWould you like to kill it and get on with your life?,120
			;adds a message box that has a Yes/No option, with no selected by default and an exclamation point
		IfMsgBox, Yes
			Process,Close,speedyfox.exe
		IfMsgBox, No
			return
		IfMsgBox, Timeout
			return
	}
	
blank:
	return

Insert original signature here with Greasemonkey Script.

Compiled

Here's a compiled version for the truly lazy Sticking out tongue.
http://dl.getdropbox.com/u/1468369/PADump/SpeedyFoxBG.exe
(MD5: 25412b97f89afe5b896a2d5b7a8fe2cd)

Insert original signature here with Greasemonkey Script.

So is that the fixed version

So is that the fixed version now?

No

It's a compiled version. I don't want to work on it any further until I get some feedback.

Insert original signature here with Greasemonkey Script.

OK. I got it - it asked for

OK. I got it - it asked for the EXE file, then FF profile location and then nothing happened..?

The original speedyfox.exe on the other hand seems pretty portable to me - what traces does it leave behind?

--

None, supposedly.
As I said, it's a work in progress. I guess the next thing on my list would be to add some debugging features.

Insert original signature here with Greasemonkey Script.