# Off-Topic Discussion > The Lounge > Tech Talk >  >  Share those tiny little (or mighty big) programs you could not live without.

## Identity X

The clue's in the title.

I'll start off by endorsing Launchy. It's a keystroke launcher for Windows, similar to Katapult and whatnot on other systems.

It's tiny and fantastic. Basically you press alt-space and a tiny window comes up. Type in a letter or two, and it guesses what you are trying to launch. It also learns from your previous choices:






(Uh... Firefox  :Sad: )

Anyway... it can even be used as a file navigation tool... no more My Computer, and with the proper plug-in, it even supports arithmetic, so no more calc. I haven't used the start menu in months nor have I clicked any desktop icon (nor had any icons there lol).

It's weird for half and hour. But after then, you're entirely dependent on it. I find myself pressing alt+space on other computers and being briefly perplexed.

So, yeah. Share the apps that you could not live without.

----------


## Merlock

I don't go to My Computer...everything I have is in my Start menu programs, neatly organised into directories and subdirectories where needed.

I think it's faster to click Start and do a few smooth mouse movements than type something out simply because it takes your hands away from the mouse to the keyboard and then back again, so typing speed doesn't even matter much.

Ah, but I can't live without IrfanView.
Quick file saving, resizing and the most optimal size/quality optimisation I know of.

----------


## Sornaensis

I adore my custom file system. I use explorer on both of my OS's. I find launcher programs boring. And stupid.

----------


## Identity X

> I adore my custom file system. I use explorer on both of my OS's. I find launcher programs boring. And stupid.



Custom file system? Like... SeismoNTFS or ext2saur?

----------


## Sornaensis

> Custom file system? Like... SeismoNTFS or ext2saur?



Um. No. lol

----------


## Adam

I use the windowz button and type what I want, same one button and type method you use - I am on Vista see  ::D: 

Anyway, my programz I cannot live without:

PhotoshopDreamweaverFlashword, excel, access, visiocaptivateFirefox :p

----------


## Grod

Photoshop -- Every day after school or at work  :tongue2:

----------


## ninja9578

Photoshop, iWork, iTunes, XCode, iChat, and Time Machine

----------


## arby

Windows

----------


## Man of Steel

Hmm... Alarmp3. It lets me set an .mp3 file as my alarm, a different one for every day for a week in advance. All different times, if I so choose. Gmail Notifier, so I don't have to actually, y'know, check my email. And Ditto, a nifty little clipboard replacement program. It works like KDE's clipboard tool. I couldn't live without it. 

And though not exactly a program, Synaptics' little system tray app that lets me program my laptop's touchpad left/right scroll button to change the volume instead of the awkward Fn+Up/Down cursor that it was, and set tap zones to right-click, play/pause Media Player, minimize the current window, and skip to the next track in Media Player. It's a life saver.

----------


## Identity X

> And Ditto, a nifty little clipboard replacement program. It works like KDE's clipboard tool. I couldn't live without it.



I might try that out, thanks. Most things on KDE make sense after all (except the names).

Might not be an app, but it has the power of one: *YubNub*! It's the quickest way to navigate the Web, having never needed to go to any home page ever again and simple typing in "yt hello" to search YouTube or "ih omfg warez" for IsoHunt. Commands exist or most sites. You can even add you own (increasing sophisticated) commands.

I have it set to the default search engine in *Opera*, which among other things allows me to type queries directly into the address bar. Woo! (As a side-note, searches can be created in Opera by right-clicking on any field and choosing "Create Search...")

Oh and talking of *Opera*, it is brilliant. Truly, truly, brilliant. But you know that already, right?

----------


## ninja9578

IE7 actually does have that feature, if you give it a query it first checks to see if there is a website by that name then it goes into a search.  It uses LiveSearch though, and I don't think there is a way to change that.

----------


## Identity X

> IE7 actually does have that feature, if you give it a query it first checks to see if there is a website by that name then it goes into a search.  It uses LiveSearch though, and I don't think there is a way to change that.



That's not what I meant at all.

Every browser under the sun has that feature. Including Firefox, who redirect to Google (that's how Firefox, Opera et al make their money - being Google bitches).

----------


## Replicon

There's all kinds of stuff I like to use, but really, given a good scripting language and a bunch of command line tools... you can make your own "awesome indispensible little toys"

----------


## Grod

Identity X, that *Launchy* program sounds a lot like quicksilver for mac... which I love using. I'm checking it out now....

----------


## Marvo

> Anyway, my programz I cannot live without:
> PhotoshopFirefox :p




Woooo  ::D: 

Anyway, that launchy proram is cool, thanks for telling! I don't have any cool prorams myself. Maybe a few plug-ins and addons for Firefox, like addblocker, Nukeverything, line stuff and other thing  :smiley:

----------


## syzygy

> Identity X, that *Launchy* program sounds a lot like quicksilver for mac... which I love using. I'm checking it out now....



Quicksilver is amazing.

----------


## Marvo

Check out the "Mouse Gesture" extension for FireFox. It takes a little bit to figure out, but once you've configured it for your desires, you'll hardly ever use your keyboard again, when in FireFox  ::D:

----------


## Identity X

> Check out the "Mouse Gesture" extension for FireFox. It takes a little bit to figure out, but once you've configured it for your desires, you'll hardly ever use your keyboard again, when in FireFox



*cough* Opera did it first *cough*

----------


## dsr

> I think it's faster to click Start and do a few smooth mouse movements than type something out simply because it takes your hands away from the mouse to the keyboard and then back again, so typing speed doesn't even matter much.



I find the exact opposite most productive. I keep my hands on the keyboard whenever possible, which includes for launching desktop applications. Grod mentioned Quicksilver, which I use all the time. Launchy sounds like the Windows equivalent (but without the extra features of QS).





> Might not be an app, but it has the power of one: *YubNub*! It's the quickest way to navigate the Web, having never needed to go to any home page ever again and simple typing in "yt hello" to search YouTube or "ih omfg warez" for IsoHunt. Commands exist or most sites. You can even add you own (increasing sophisticated) commands.
> 
> I have it set to the default search engine in *Opera*, which among other things allows me to type queries directly into the address bar. Woo! (As a side-note, searches can be created in Opera by right-clicking on any field and choosing "Create Search...")



I also depend upon this functionality. Firefox and Camino have it builtin (they call it keyword searching). I myself use a plugin for Safari 3 called Sogudi (Safari Sogudi --- "So far so good"  ::D:  ), which makes my life a whole lot easier.





> There's all kinds of stuff I like to use, but really, given a good scripting language and a bunch of command line tools... you can make your own "awesome indispensible little toys"



Truer words have never been spoken (outside my immediate vicinity  :tongue2:  )

----------


## Marvo

> *cough* Opera did it first *cough*



It's probably an extension for Opera, converted to FireFox later on  :smiley:

----------


## Mes Tarrant

OneNote. I use it for one of my classes. 

Although there can definitely be some improvements to that thing.

I hate how you can only install office programs (like Word, Excel, etc) twice from the CDs you purchase.  ::?:

----------


## dsr

> I hate how you can only install office programs (like Word, Excel, etc) twice from the CDs you purchase.



That's why people use OpenOffice.org ...
Seriously, though, if you hate the fact that proprietary software comes with restrictive licenses, why don't you just use free (libre) software?

----------


## Mes Tarrant

> That's why people use OpenOffice.org ...
> Seriously, though, if you hate the fact that proprietary software comes with restrictive licenses, why don't you just use free (libre) software?



Well, the CDs were a gift.  :tongue2:

----------


## Identity X

> It's probably an extension for Opera, converted to FireFox later on



No, Opera did it in-house years back. Same with tabbed browsing, before it was cool (and Opera still supports split-screen viewing and whatnot that Firefox ignores). Opera doesn't support extensions per-se, and I like it that way.





> I also depend upon this functionality. Firefox and Camino have it builtin (they call it keyword searching).



As does Opera, but YubNub is different. It's a social app where people have set up their own commands so you don't have to, and there are more complex things you can other than simple query-string replacing.





> That's why people use OpenOffice.org ...
> Seriously, though, if you hate the fact that proprietary software comes with restrictive licenses, why don't you just use free (libre) software?



I downloaded StarOffice (Sun's proprietary fork of OOo (which was a fork of StarOffice  :tongue2: )) from the Google Pack, but I am somewhat alarmed at the Googleness of it all. It's covered in Google task bars and phones home every now and then.

Should have not been greedy and gone for OOo (needed neither, tbh, I have Office 2003).

As for scripting languages, yes they are pretty neat. I endorse Python and I'm currently using the brilliant Windows version of Cream, a really nice version of VIM without the weird control scheme. I was previously an XEmacs user, but Cream is far easier:

----------


## dsr

> Well, the CDs were a gift.



But that doesn't mean you need to forsake free software.





> there are more complex things you can other than simple query-string replacing.



Oh, I didn't know that.





> I downloaded StarOffice (Sun's proprietary fork of OOo (which was a fork of StarOffice )) from the Google Pack, but I am somewhat alarmed at the Googleness of it all. It's covered in Google task bars and phones home every now and then.
> 
> Should have not been greedy and gone for OOo (needed neither, tbh, I have Office 2003).



I know that OOo was a fork of StarOffice, but does StarOffice have any practical advantages over OOo? Wikipedia says



```
Proprietary components in StarOffice that are not in OpenOffice.org include:
Several font metric compatible Unicode TrueType fonts containing bitmap representations for better appearance at smaller font sizes
Twelve Western fonts (including Andale Sans, Arial Narrow, Arial Black, Broadway, Garamond, Imprint MT Shadow, Kidprint, Palace Script, Sheffield) and seven Asian language fonts (including support for the Hong Kong Supplementary character set)
Adabas D database
StarOffice-only templates and sample documents
A large clip art gallery
Sorting functionality for Asian versions
File filters for additional older word-processing formats (including EBCDIC)
A different spell checker (note that OpenOffice.org includes a spell checker as well) and thesaurus
StarOffice Configuration Manager
Macro Converter for converting Microsoft Office VBA-macros to StarOffice Basic
There are also differences in the documentation, training and support options, and some minor differences in the look and icons between the two programs.
Other differences are that StarOffice only supports 11 languages[3] (compared to over 40 for OpenOffice.org)
```


but I mean from an end user's perspective.





> As for scripting languages, yes they are pretty neat. I endorse Python and I'm currently using the brilliant Windows version of Cream, a really nice version of VIM without the weird control scheme. I was previously an XEmacs user, but Cream is far easier:



Python is indeed awesome. It might not make Perl or shell scripts obsolete, but it certainly beats Java in development time and Perl in readability and maintainability. I've never used Cream (nor do I use Windows for that matter), but I could not go a day without Vim. Productivity for me means a keyboard application launcher in Mac OS X or a keyboard-controlled window manager in *nix, a web browser that supports searching from the keyboard, the command-line with GNU Screen, and Vim.

----------


## Mes Tarrant

But it IS free for me! I'll get free software once I've used up the two times with these.

----------


## Man of Steel

Oh yes, I couldn't live without OpenOffice.org for my writing. And RocketDock, how could I forget that! It's like Mac's Dock, only for Windows. Then there's 7-Zip, of course, and a cool little app called Frameworkx that removes the shortcut overlay image on desktop icons in Vista. 

Let's see... The GIMP is a pretty obvious one, but what about Switcher? It's similar to Expos&#233; for Mac.

----------


## ninja9578

Doesn't StarOffice have a ton of java code in it?

----------


## Identity X

> And RocketDock, how could I forget that! It's like Mac's Dock, only for Windows.



I downloaded ObjectDock, which is a very well done version of Dock for Windows.

Swish and all, but completely impractical, everything was faster and neater with Launchy.

Yes, I don't think there is much difference between Star and OpenOffice. And I don't even like Sun that much... I use Java every day and I really don't think they did it all too well.

----------


## ninja9578

Java is actually a great language, it's the lack of a true compiler that bugs me.  GNU made one, but it doesn't work all that well, it's not optimized.  Sun forces that virtual SPARC machine on you.  Because of that I won't touch it, I use C++, Cocoa, or C for everything.

----------


## Identity X

> Java is actually a great language, it's the lack of a true compiler that bugs me.  GNU made one, but it doesn't work all that well, it's not optimized.  Sun forces that virtual SPARC machine on you.  Because of that I won't touch it, I use C++, Cocoa, or C for everything.



It's the little things that annoy me. Little things that C# does very, very well.

----------


## ninja9578

Oh, and the fact that EVERYTHING is pass by value.  It makes it soooo slow, I like my pointers.

----------


## Oneironaut Zero

Photoshop
FruityLoops Studio
Firefox
SonicFoundry ACID Pro
VirtualDub
Audacity
Blender3D
Microsoft Word
Windows Media Player and/or VLC media player

----------


## Identity X

> Oh, and the fact that EVERYTHING is pass by value.  It makes it soooo slow, I like my pointers.



You are completely and utterly wrong my friend.

Java is call-by-reference, with the exception of primitives which are call-by-value (naturally).

----------


## Replicon

> Java is actually a great language, it's the lack of a true compiler that bugs me.  GNU made one, but it doesn't work all that well, it's not optimized.  Sun forces that virtual SPARC machine on you.  Because of that I won't touch it, I use C++, Cocoa, or C for everything.



Java is pass by reference. You shouldn't use straight pointers to simulate pass-by-reference in C++ - that's poor style  :tongue2:

----------


## dsr

> Oh, and the fact that EVERYTHING is pass by value.  It makes it soooo slow, I like my pointers.



As IdentityX and Republicon said, all objects in Java are passed by implicit references. Primitives are passed by value, but that doesn't create a noticeable difference in performance, so I'll assume you were referring to regular objects. You might like your pointers in languages like C or C++, but somehow I get the feeling that you don't use them properly ...

----------


## Ynot

never used java, but know people that do
so feel free to poke holes in what I say....

with that in mind, as far as I know java is no slower (in theory) than any other language

I have it on good authority that the apparent "slowness" of frontend Java apps, is down to poor use of the GUI toolkits

In the GUI event handlers, you are supposed to fork off all business logic, so that the GUI is in one thread, and the core donkey work is done in another
but many java people lump any and all code directly into the event handlers
this means, when it's compiled (or JIT compiled (Jitted?), or whatever it is you call it) everything ends up being plonked into a single thread

dunno, maybe wrong
but that's what I've heard

----------


## Identity X

> but many java people lump any and all code directly into the event handlers
> this means, when it's compiled ... everything ends up being plonked into a single thread



I am an offender wwhen it comes to this, not that I've ever really had to write a speed-sensitive GUI. Listeners are interfaces in Java, so all I do is make the GUI be its own listener. It's a weird thing to do but it makes code writing easier, for instance:




```
class GUI extends JFrame implements ActionListener {
...
JButton b = new JButton("Click Me!");
b.addActionListener(this);
...
public void actionPerformed(EventArgs e) { 
   if (e.getSource() == b) /* do something */
}
}
```


I'm a bad, bad man  ::D:

----------


## Ynot

well, as far as end users are concerned, GUI responsiveness is everything

maybe it's programmer error, or just poor toolkits, but the general sluggishness of many frontend Java apps has led to the rise of MS's C# (Java under a different name)

----------


## Sornaensis

> well, as far as end users are concerned, GUI responsiveness is everything
> 
> maybe it's programmer error, or just poor toolkits, but the general sluggishness of many frontend Java apps has led to the rise of MS's C*J*# (Java under a different name)




Fixed.

Oh, and NEVER EVER AGAIN MENTION ANY .NET LANGUAGE EVER AGAIN.

They've basically become glorified window editors. It's terrible. I just got VS '08 X__x

But hey, the Dark GDK comes free, so...  ::D:

----------


## dsr

> But it IS free for me! I'll get free software once I've used up the two times with these.



I was referring to free software, not freeware. Check the link if you want to learn the ideological distinction.





> with that in mind, as far as I know java is no slower (in theory) than any other language



Correct, but not wholly for the reasons you state below. As I see it, it's more that Sun Microsystem's implementation (the Java Runtime Environment), being a virtual machine / JIT compiler, executes bytecode more slowly than an OS executing machine code. Third party ahead-of-time compilers like the GNU Compiler for Java (GCJ) yield precompiled binaries whose performance should be on par with languages like C++. However, Java's automatic garbage collection is part of the language specification rather than Sun's implementation, so even compiled Java software might still underperform C++.





> I have it on good authority that the apparent "slowness" of frontend Java apps, is down to poor use of the GUI toolkits
> 
> In the GUI event handlers, you are supposed to fork off all business logic, so that the GUI is in one thread, and the core donkey work is done in another
> but many java people lump any and all code directly into the event handlers
> this means, when it's compiled (or JIT compiled (Jitted?), or whatever it is you call it) everything ends up being plonked into a single thread



Most graphical Java applications use Swing/AWT or SWT, which to my knowledge only work with Sun Microsystem's implementation of Java. Therefore, all the performance disadvantages of the VM/JIT system apply. Both toolkits tend to perform poorly and hog resources regardless of the code's design. That being said, there are a (very) few Java applications that manage to sport a responsive GUI. Art of Illusion comes to mind. According to a Google search, it uses the Buoy GUI toolkit. Maybe that's worth looking into.

----------


## Identity X

> According to a Google search, it uses the Buoy GUI toolkit. Maybe that's worth looking into.



Indeed, it looks kind of cool.

I was trying out Boo last night, a Python-like language for CLI. Seemed very nice indeed.

----------


## dsr

Python = awesome
Microsoft = not so awesome

Python and .NET don't mix in my book.

But actually, any Python derivative is probably good. Groovy is another one to look at if you like the Java standard class library.

----------


## Identity X

> Python = awesome
> Microsoft = not so awesome
> 
> Python and .NET don't mix in my book.
> 
> But actually, any Python derivative is probably good. Groovy is another one to look at if you like the Java standard class library.



I actually really like the .NET platform. It's very convenient and I feel comfortable using it, especially in conjunction with such a thoughtful language as C#. As long as Microsoft don't start injecting us all with Super AIDS, I can't really say I have any reason to muster enough effort to dislike them for anything. It's not as if a lot of their software _costs_ anything at the end of the day; chances are Windows came with your computer, Media Player is either included or is a free download, and VS Express is more than enough for the average solitary programmer. There are less visible reasons to dislike them, but as I said, that would require personal effort.

----------


## Identity X

> I was trying out Boo last night, a Python-like language for CLI. Seemed very nice indeed.



One word: AWESOME.

Access to .NET libraryCompiles to a newbie-friendly exe - no more jar or pycStatically typed with a duck-typed primitive (as good a compromise as you can get). And automatic determination of type on declaration (a = 9 binds a to a (statically typed) int)Terse and readable syntax ("i = 9 unless doNotDoIt")List comprehensions and slicingInline Getters/Setters (and since theres a seperation between properties and fields you can use setters internally without a horrible this.setX(7) type statement.Regular expression literals (and a ~= operator)GeneratorsFirst-order functions (as they should be - and something Java (and I believe C++?) lacks.)It's just _cool_

It uses _self_ over _this_ though. Horrible choice. It annoyed me in Python, it annoys me in Boo.

----------


## dsr

> I actually really like the .NET platform. It's very convenient and I feel comfortable using it, especially in conjunction with such a thoughtful language as C#.



It sounds like you use C# where I would just use Python. What advantages do C# and .NET have over Python? Python obviously has the edge in portability/platform-independence and productivity (at least in terms of LOC). Boo sounds more comparable to Python, however. How would you say the two weigh up?





> As long as Microsoft don't start injecting us all with Super AIDS, I can't really say I have any reason to muster enough effort to dislike them for anything.



Some would argue that Microsoft's defiance toward the free software movement (e.g. creating a proprietary XML format for Office 2007 and then advocating that it be standardized in lieu of OpenDocument -- browse gnu.org and fsf.org for many other examples) is reason enough to avoid their products.





> It uses _self_ over _this_ though. Horrible choice. It annoyed me in Python, it annoys me in Boo.



Assuming it's like Python, _self_ is just the conventional name for the parameter. If your code will only be seen by you, feel free to name it _this._ Besides, even if others will see your code, they're likely to be C# programmers who will understand your use of _this_ immediately.

----------


## Identity X

> It sounds like you use C# where I would just use Python. What advantages do C# and .NET have over Python? Python obviously has the edge in portability/platform-independence and productivity (at least in terms of LOC). Boo sounds more comparable to Python, however. How would you say the two weigh up?



They are more or less very similar, but Boo in my opinion is better. You're not forced into using dynamic typing (some would argue that static typing is unnecessary, but I think it makes sense in many instances) but you may use it if you wish to. You're not forced into public scope (in fact, you're forced into using private. Sounds a bit weird, but the uneasiness subsides). The language is syntactically richer, too, and can be thought of as a superset of Python in some ways. I was enlightened when I discovered Python, it's great, but I think Boo may just be Python "and then some".

It also has "proper" OO methods. self is no longer a necessary parameter. That the one thing I've never understood with Python (and it's ugly too).

FYI it runs on Mono.





> Assuming it's like Python, _self_ is just the conventional name for the parameter. If your code will only be seen by you, feel free to name it _this._ Besides, even if others will see your code, they're likely to be C# programmers who will understand your use of _this_ immediately.



It's an issue with nomenclature. self forces you into writing code in first person, which, given it's not something "real", is just plain weird. this is much clearer.

And you are right. But the line
this = self
Is... strange.

----------


## Man of Steel

Also, something I just remembered, Taskbar Shuffle. It lets you move arouns minimized windows on the taskbar.

----------


## ninja9578

I looked back at some java books, I guess I was wrong.   :Oops:   I was confused because of the lack of explicit definitions.  At least none of my professors ever used any.  I can't recall ever seeing a -> in java, it was always foo.a.  Am I correct there?

----------


## dsr

> I looked back at some java books, I guess I was wrong.    I was confused because of the lack of explicit definitions.  At least none of my professors ever used any.  I can't recall ever seeing a -> in java, it was always foo.a.  Am I correct there?



Well, you are correct that Java does not have an arrow operator because the language doesn't use pointers. The dot operator in Java is really just a namespace operator. In regards to the issue of call by value versus call by reference, all non-primitive variables (i.e. not int, short, long, char, or byte) are references to objects in memory, so passing them to a method passes references to the same objects in memory, similar to appending an ampersand in a C++ function parameter. Any changes the method makes to the object will remain after the method is called.

----------


## ninja9578

That's what confused me.  To me pointers mean by reference and copying it means by value.  I guess I learned the terminology incorrectly.  In C and C++ I always pass structs or objects larger than 64 bits via a pointer and then use it as such (with ->) within that method.  


Question to you java guys about Ynot's comment.  Why do java programmers continue to use java's listeners and gui when it's so slow.  I'm not biased about this, I use frostwire.  Isn't there a java version of glut?

----------


## dsr

Isn't GLUT pretty low-level? GUI toolkits need to be abstract enough to allow for decent productivity, which is often as if not more important than the performance of the GUI. Toolkits that come to mind are WxWidgets and Qt, although they aren't really intended for Java development.




> Why do java programmers continue to use java's listeners and gui when it's so slow.



I'm not sure it's that Swing is inherently slow just because it doesn't use the host OS's native widgets. I think it's more the overly complex design of Swing's API that leads to memory leaks and other system resource problems. The public domain Buoy seems to offer an excellent solution, and I might actually start programming in Java.

----------


## Identity X

Don't know about performance, but Sun didn't do themselves any favours by making the default Swing look-and-feel on Windows completely different to the rest of the OS, and, more importantly, ugly-as-f**k. It now takes one line of code to sort the ugly munt out, but still, _yuck_.

----------

