 |
 |
| another tip |
 |
 |
By j.difool - Posted on August 28, 2008 - 14:00:37 (#22969)
Current version when comment was posted: 1.0 RC 1 |
 |
 |
Hi,
Thanks for the reply. I'm a mac user so I couldn't try Enso, but from what I read in the website it sounds interesting.
Today I stumbled across Ubiquity from Mozilla and thought that might interest you.
http://labs.mozilla.com/2008/08/introducing-ubiquity/
I find both extremely clever ways to interact with your computer. It’s a fresh approach that added to the current interest for multi-touch interfaces finally brings to the XXI century on the desktop. As end-user all I can say is that is just what I'm craving for.
It’s sure stillain embryo, but it’s great to know somebody on the BeOS/Haiku team is already working on it.
Best,
J.Difool
|
|
| Feature requests |
 |
 |
By DarkWyrm - Posted on August 26, 2008 - 08:08:27 (#22965)
Current version when comment was posted: 1.0 RC 1 |
 |
 |
Thanks! I've heard of Quicksilver, but I don't have a Mac and, no offense, I'm not convinced. It seems pretty complicated, if you ask me. I actually had toyed with the idea of Run Program evolving in the direction of Enso (www.humanized.com) without copying it directly. If you haven't toyed with Enso, it's a really neat concept. The only problem is that the direction I want to take Run Program requires full text indexing, which is not possible on R5 without some major hacks.
While renaming it to RoadRunner would be cool, I'd run into all sorts of trademark/IP issues with Time Warner. It wouldn't be pretty. :(
|
|
| "inteligent" auto-completion and name suggestion |
 |
 |
By j.difool - Posted on August 26, 2008 - 04:23:24 (#22964)
Current version when comment was posted: 1.0 RC 1 |
 |
 |
Hi,
thank you very much for this app!
I hope to see it someday evolve to some kind of QuickSilver for Haiku
http://en.wikipedia.org/wiki/Quicksilver_(software)
I just would like to point out a couple of features of it that I would really like to have:
- the auto-completion feature implemented in a way that "learns" to recognize paterns other than the file name strictly speaking. For instance, that when I type "gp" I mean GobeProductive or "pa" for Personal Assistent, etc.
- an auxiliary list of possible matches (like BartLauncher has)
- the ability to launch a file with another file and perform some other basic file managing actions
And one last thing, how about calling your app RoadRunner (like the speedy cartoon bird)?
The icon would look great beside the tracker's dog and it would be a cool hint at the performance boost it brings to the desktop. What do you think?
Keep it up!
Best,
J.Difool
|
|
| Case-matching & SpicyKeys |
 |
 |
By DarkWyrm - Posted on August 19, 2008 - 14:39:41 (#22957)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
I can do case-insensitive quite easily. I'm going to release a new version with some some fixes that looncraz sent me and I can change that before then. As for SpicyKeys, the sources were included in the package. I've got a set of them sitting on my hard drive.
|
|
| Auto completion |
 |
 |
By Kokito - Posted on August 19, 2008 - 14:25:30 (#22956)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
One cannot always remember the case of program names, so it would be more convenient for the user if Auto Completion were not case-sensitive.
With regards to using SpicyKeys to invoke the app, it would be nicer if this utility did not have to depend on yet another utility for this. But, of course, that's just me opinion. :)
I also take into consideration that SpicyKeys does not seem to be developed/maintained anymore and that the sources don't seem to be available (although I may be wrong on both accounts).
|
|
| let it live in the DeskBar? |
 |
 |
By nutela - Posted on August 19, 2008 - 06:09:46 (#22955)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
Or let it live in the DeskBar?
|
|
| @Run as Replicant |
 |
 |
By DarkWyrm - Posted on August 18, 2008 - 20:53:21 (#22953)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
Thanks! The intention was to run it via SpicyKeys. If you haven't tried it, search for it on BeBits... you won't be disappointed. Personally, I have all my desktop shortcuts mapped to left Ctrl + Win + letter, so invoking Run Program ends up being Ctrl + Win + R, which is as close to Windows as I go. :) I've been kicking around the idea of using it as a replicant. I just might do that...
|
|
| Run as replicant? |
 |
 |
By Kokito - Posted on August 18, 2008 - 18:49:17 (#22952)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
Neat utility.
The only inconvenience that I find with this app is that there does not seem to be a fast and convenient way to invoke it. This could be alleviated if the app could be run as a replicant on the desktop or in the deskbar.
Food for thought.
|
|
| Done and done. |
 |
 |
By looncraz - Posted on August 17, 2008 - 16:02:29 (#22951)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
Okay, the problem was with the addition of improperly checked items from the querylist in the UpdateThread.
This relates to how BObjectList was removing items from the list but not relocating or nullifying the pointer. The removed item is reset to its init state, so a new, invalid, entry_ref was created upon RemoveItem(), rather than being set as NULL, as it, IMHO, should have been ( since that is standard behavior everywhere else ).
In this case, one must merely ensure the directory in the entry_ref is non-negative after checking for NULL, BEFORE adding the remainder in the querylist to the stored list.
I will e-mail a patch file with all of my changes shortly.
--The loon
|
|
| k.. done some more searching... |
 |
 |
By looncraz - Posted on August 16, 2008 - 21:41:23 (#22950)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
At this point it *seems* the bug is in BObjectList. In some way we are being handed invalid entry_ref pointers, or we are somehow not setting all validly ( something I have tested against, pre-sort ).
Before the sort routine all is well, no validity checks are needed, there are no errors.
When the sort routine is called, it is handed worthless "unset" zero-state, post-init entry_ref structs, with name as NULL, directory et al as -1.
This SHOULD not be the case, especially when all objects are valid prior to sort.
I will be looking at this more tonight, creating my own BObjectList<entry_ref> in a new project, in the same manner, versus another manner as well, of course. Stay tuned :-)
--The loon
|
|
| There's still more... |
 |
 |
By looncraz - Posted on August 15, 2008 - 23:06:22 (#22949)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
I get a segment violation from strstr I'm not going to investigate tonight.
It is occurs in ExeBoxFilter::KeyFilter(...) at the
line as follows:
if (strstr(data->name,string.String()) == data->name)
It appears to occur on the first loop as local variable 'match' remains NULL, but I am just seeing what bdb tells me, ATM.
I'll continue searching tomorrow.
--The loon
|
|
| Crash in CompareRefs() |
 |
 |
By looncraz - Posted on August 15, 2008 - 22:30:44 (#22948)
Current version when comment was posted: 1.0 Beta 2 |
 |
 |
Howdy, due to the nature of the BObjectList, it appears that, in at least some versions, an invalid ref may be used for comparison as either ref1 or ref2 in the CompareRefs function.
I haven't had time to look into why this would be, it may be a bug in dano.
However, the following little repair will ensure this is not an issue, regardless. I will be looking tomorrow into where the problem may reside, as a comparison function should NEVER be given bad data. Ideally, it would be one of those few functions which need not perform any sanity checks in release builds, for performance reasons ( although checking for zero is fast ).
The modified CompareRefs in ExeBox.cpp is as follows:
static
int
CompareRefs(const entry_ref *ref1,const entry_ref *ref2)
{
if (!ref1 || ! ref1->name)
return -1;
else
if (!ref2 || ! ref2->name)
return 1;
return strcmp(ref1->name,ref2->name);
}
Notice all I do is check for validity of the name. It doesn't need to be name as all data in the invalid non-NULL entry_ref is set to its init state ( -1 ), so you could check against any item in the structure.
If anyone else has this issue with 1.0 beta 2, please post here. ( The visible issue is a segment violation shortly after startup ).
--The loon
|
|
| Re: Easy fix... |
 |
 |
By mmu_man - Posted on August 15, 2008 - 05:29:15 (#22947)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
Yes that's the usual way of doing it.
I've done it alike in Theme Manager:
http://dev.haiku-os.org/browser/haiku/trunk/3rdparty/mmu_man/themes/ThemeInterfaceView.cpp#L472
But I was too lazy to handle close so it crashes if you close too soon, I should fix it...
Another trick is on quit to set a bool fQuitting variable that is checked for on each iteration in the loop to just quit, and wait_for_thread() on the tid. That avoids having to wait for the whole thing to load if you didn't want to run it, which is painful.
|
|
| Much appreciated |
 |
 |
By DarkWyrm - Posted on August 14, 2008 - 16:26:50 (#22946)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
Thanks looncraz and mmu_man for your suggestions. I've had a crazy busy day today, but code may happen later tonight. I did a little hacking this morning and I'm doing both -- spawn a thread and save the results and use a query. When mmu_man suggested the query, I smacked myself in the head for not seeing it sooner because it was so obvious. The combination of the two has made some major speedups, so I'm genuinely grateful for the suggestions, guys. Expect to see an updated version Real Soon Now.
|
|
| Easy fix... |
 |
 |
By looncraz - Posted on August 14, 2008 - 00:48:11 (#22945)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
Quick'n dirty fix:
ExeBox in-use constructor contains:
if (!sPathData)
InitializeAutocompletion();
Instead:
ExeBox should have new member:
thread_id fThread;
AND New function:
static int32 thread(ExeBox* ebx)
{
ebx->InitializeAutocompletion();
return 0;
}
In-use constructor should then have:
Constructor (...)
: .. , fThread(0)
if (!sPathData)
{
fThread = spawn_thread(thread, "", 5, this);
if ( fThread ) resume_thread(fThread);
else // handle threading issue ( OS error )
}
AND on QuitRequested()
You have some choices, you can either violently kill the thread using kill_thread(fThread); ( if it is still running, OR better, yet, simply hide the window, continue building the auto-complete list, save it to disk, and simply update it each run.
I'm willing to do the code if need be, wouldn't take much to speed this little demon up to angelic proportions - just ain't a complex application.
Run, however, NEEDS to be near instant-on in all cases, and any hard-disk accesses, IMHO, should be async. No way around it, the hard-disk is slow, you wait for it for ONE file, and the user may actually be able to tell, you wait on it for data from a large directory such as /bin, and they WILL notice ( even if it is only one second ( like on my machine ) ).
Let me know if you want me to take the "burden" of this app from you, wouldn't take me but about an hour to get this thing into instant-on in all cases, save for maybe an 8086 CPU ( which BeOS can't run anyway ).
--The loon
PS: I've had enough wine to kill a horse, but I'm somehow still not drunk ( never have been, either ), so it may prudent to mention that I greatly admire most of the work of yours I have seen. Of course, not all coding tasks were created equal. :-)
|
|
| delay... |
 |
 |
By mmu_man - Posted on August 13, 2008 - 02:00:26 (#22944)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
BeOS is about threads and async way of doing stuff...
And how about a query on BEOS:APP_SIG ?
|
|
| I just hit it, too |
 |
 |
By DarkWyrm - Posted on August 12, 2008 - 19:39:39 (#22943)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
Apparently the file cache is my new best friend. I started BeOS and fired it up and it took about 4 seconds on my Athlon 2000+. The startup time issue is because it scans your /boot/apps folder hierarchy on startup. I've already given this some thought, and it's a real head-scratcher. This is going to take some time to figure out, but I'm on it.
|
|
| precision on the bug |
 |
 |
By AlienSoldier - Posted on August 12, 2008 - 14:53:50 (#22942)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
the app take time to show on screen, but i see it apear instently in the tracker list of app. So it stay as a "no windows" app for a while, until it finally get is "run" window. So it might be something before the show() function?
|
|
| re:wow |
 |
 |
By AlienSoldier - Posted on August 12, 2008 - 14:50:31 (#22941)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
it's a 2Ghz machine. I have Bone on it, i guess it's unrelated
|
|
| Wow |
 |
 |
By DarkWyrm - Posted on August 12, 2008 - 13:34:14 (#22940)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
Ouch! That is some serious startup time. What kind of machine are you running?
|
|
| it take some sec to start here |
 |
 |
By AlienSoldier - Posted on August 12, 2008 - 13:27:25 (#22939)
Current version when comment was posted: 1.0 Beta 1 |
 |
 |
while it take time it does not take much cpu. it take around 9 sec on my pc.
It remember be of Bart Launcher (that i find better for now). As cyan mentioned on that app talkback, that is something i would like integrated into the tracker find.
|
|
|
|
|