Show HN: My first Mac app, Foreman, free and on Github. Would love feedback
flyingmachinestudios.com
flyingmachinestudios.com
So, the app crashed while I was configuring it. It shutdown ever app I had added to Foreman, unsafely, and a few others I hadn't yet added (like Terminal! WTF?).
DO NOT USE. It's a nice concept but not ready for prime time.
The way it's supposed to work is, if you click on a horizontal row then it opens all the apps in that row (if they're not already open) and closes any apps that aren't in that row. So, for example, Terminal was closed because it sounds like it wasn't in your app group.
About "unsafely" - it should behave just as if you had hit command+q in the app. So if you have unsaved documents, the application should prompt you to save them.
Sorry again for the frustration it caused you!
I was kind of surprised at the behaviour, mostly because of the superlatives ... fast app switching doesn't imply opening and closing to me since some apps are VERY slow to start up (excel, numbers, xcode, eclipse, )
You should make sure you are very clear about it CLOSING apps.
Also, the first time you should not close apps but instead ask the user if closing all the non-listed apps is ok. So the first time they run it the are not surprised by everything going away. Especially losing all my Chrome tabs :-(
You need a "stop list" so that apps in the list are not shutdown.
Other suggestions include - hotkeys - spotlight / alfred integration - Adding macros to launch when click a new set of apps
In other words, if I don't put terminal into an app group, it doesn't get closed, etc.
It sounds like you're forcefully killing processes - can you at least kill them more gracefully? Basically "kill" vs "kill -9".
From the docs, "attempts to quit the receiver normally." I'm not sure why ensorcled's terminal was closed while a process was running, but I get prompted to confirm closing terminal when a process is running.
I understand you have provided feedback, but perhaps put yourself in the shoes of the developer and consider the way you put the message across.
It would be great if every piece of software was perfect and awesome on first release, but really iterative development is what gets us there. I hope the developer and also other potential users aren't discouraged by your "DO NOT USE".
After all, the app did crash about 30 seconds after I started it up and closed EVERY app I was running at the time even though I hadn't started actually using it yet. I could have lost data and I certainly did lose time.
People need to know that. Imagine if this happened to numerous people but nobody mentioned it because they were all being supportive?
On Lion, this is crashing consistently and automatically closing all the apps added to Foreman and some random apps besides.
Is this a troll or trojan? Why is it closing other random apps that it shouldn't even know about?
Definitely not the app for me.
Sep 7 10:29:14 wwd2-robert Foreman[3030]: 15.000000Sep 7 10:29:20 wwd2-robert Foreman[3030]: Exception detected while handling key input.
Sep 7 10:29:20 wwd2-robert Foreman[3030]: -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
Sep 7 10:29:20 wwd2-robert Foreman[3030]: (
0 CoreFoundation 0x00007fff8dd9df56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff94046d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8dd9dd8a +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff8dd9dd14 +[NSException raise:format:] + 116
4 CoreFoundation 0x00007fff8dd5abd0 -[__NSCFDictionary setObject:forKey:] + 96
5 Foreman 0x0000000100002bf2 -[AppGroupController saveName] + 103
6 Foreman 0x0000000100002c5f -[AppGroupController control:textShouldEndEditing:] + 17
7 AppKit 0x00007fff8e83d5ff -[NSTextField textShouldEndEditing:] + 236
8 AppKit 0x00007fff8e89f0ca -[NSTextView(NSSharing) resignFirstResponder] + 426
9 AppKit 0x00007fff8e38a429 -[NSWindow makeFirstResponder:] + 429
10 Foreman 0x0000000100002cb2 -[AppGroupController control:textView:doCommandBySelector:] + 76
11 AppKit 0x00007fff8e83c7ac -[NSTextField textView:doCommandBySelector:] + 105
12 AppKit 0x00007fff8e86db48 -[NSTextView doCommandBySelector:] + 160
13 AppKit 0x00007fff8e6c6c93 -[NSKeyBindingManager(NSKeyBindingManager_MultiClients) interpretEventAsCommand:forClient:] + 1799
14 AppKit 0x00007fff8ea1b6ca -[NSTextInputContext handleEvent:] + 747
15 AppKit 0x00007fff8e8e5298 -[NSView interpretKeyEvents:] + 248 16 AppKit 0x00007fff8e85dec5 -[NSTextView keyDown:] + 691
17 AppKit 0x00007fff8e33b7ac -[NSWindow sendEvent:] + 7430
18 AppKit 0x00007fff8e2d4a55 -[NSApplication sendEvent:] + 5593
19 AppKit 0x00007fff8e26b0c6 -[NSApplication run] + 555
20 AppKit 0x00007fff8e4e7244 NSApplicationMain + 867
21 Foreman 0x0000000100000fe0 start + 52
)
The syslog also contains a list of all the apps that are running and the list of apps to close, the apps to close include things I didn't add to Foreman and other things like /Applications/Xcode.app/Contents/Library/LoginItems/backgroundinstruments.app which I'm not even running. When it catches an exception it seems to shutdown everything in the "to close" list.I've fixed the bug and updated the download. It would occur when you created a new app group and then changed the app group name. Thanks again for your detailed feedback, it helped me fix this bug.
Perhaps I don't have a sense of humour when I'm at work.
And thank you for your congratulations :)
I would leave it for now - but brace for blow back, because some people (especially here) are gonna hate it.
But, conversely, others are going to love it.
Also, just because an idea is simple doesn't mean it's not a great idea.
A word of caution however, I made an announce page for a toy project that was so silly no one even looked at it, even in a highly targeted demographic of users (reddit users; specifically those who post facebook screenshots) http://sequoia.github.com/afonigizer/ So no one looked at it, no one uses it etc.. But on the other hand, "whatever!" I had fun making the tool and the silly announce page and as the Odonians says: "the means are the end." :)
I got really excited for a minute upon seeing the headline thinking this was a Mac native interface or somesuch.
What makes this such a great example of that trend and how silly it is is that you are here discussing the confidence you have... in a free app switcher.
OP said, "Would love feedback" and king_magic gave it to him.
When someone posts their app here for feedback, we should be ruthless. Nothing, not even the smallest nit, should be safe from scrutiny. Let OP decide how important that feedback is to him, but we should not be holding back how we really feel.
This reminds me of a phenomenon from my fraternity days, when we voted on prospective members. It worked like this: 1. Positive comments. 2. Negative comments. 3. Secret vote. Prospects were often blackballed even though there were no negative comments, and people bitched about that. So what happened as soon as someone made a negative comment? 1. Everyone jumped all over him. 2. Someone would inevitably say, "That's why there are never any negative comments."
If someone asks for feedback, we should fire away. Better they hear it from us than their prospects out there in the real world.
This applies to all apps, even free ones. Remember, it's not "Practice makes perfect," but "Perfect practice makes perfect". king_magic may have done OP a much bigger favor than any of us can see right now.
Then you realize it's just a useful little niche tool, and he's giving it away for free.
After checking it out, I asked myself "Do I want to download this app more than if it was presented to me in a more dry, professional, predicable way?"
Yeah, actually.
I especially love how he concludes by broadcasting how the app is not perfect, while giving a little dev road map.
Well done imho.
On the good side:
- GREAT idea
- Simple, clear and easy design
Keep on the good work!
How is that related to his application? Your idea would probably make more sense as a separate application.
Lots of people are also suggesting hiding the other apps. I might try to implement this as an option, but what I'm going for is de-cluttering the command-tab app switcher, and I don't think hiding the apps will achieve that. However, this feedback is inspiring me to see if it's possible to hack the task list, or whatever it's called.
My only real suggestion is that you change the text on the right side:
Click on an app group and Foreman closes all apps not in that group and opens the apps in the group.
To something simpler, like: One click to Launch all Grouped Apps & Close everything else!Basically, I configured OSX to imitate XMonad to some extent. It's not as good, but it works and is a lot better than using the mouse or command-tab.
A couple of things from the top of my head; Alfred integration would be cool, currently I keep nothing in my dock (other than finder and trash) and launch everything via Alfred, being able to launch a group by name in Alfred might be cool.
On switching groups, when it's choosing what to close, does it only close app's that are explicitly listed in other groups? How does it cope with tray apps like dropbox? When I (infrequently) fire up Steam/games I tend to manually kill off a few of the background servicey apps like dropbox I'd otherwise leave running all day.
It only closes apps that appear in the dock. It won't close dropbox or alfred or any background processes.
edit: And I also want Alfred integration :) I was thinking it could create .foreman files which you could then open with Alfred. Foreman would then handle it the way it handles clicking on an app group now.
I'm not sure how widely used this would be, but would it be possible to have it launch bash scripts as well as apps? That way I could manually deal with anything 'special'. (just tried it before I asked and it didn't seem to let me drag them into a group)
I would start versioning your releases—even if you start at something like 0.1.0. Then add a changelog to the site and drop tags in git corresponding to each release.
I haven't tried the app yet, but if it immediately shuts off other applications when switching to a group, I think that needs to change, or at least provide a setting to just keep all the apps running but hide them from the tab switching menu some how (i know it could be a memory killer, but for my own personal use, which usually doesn't require a lot of apps running, i think it would be perfect).
Other than that, it's a great little app, put it on the AppStore for some cash :) (and add a screencast)
One nice thing about Mountain Lion (not sure if it's true for Lion) is that if you quit an app it's usually kept running anyway, so when you reopen it it should start quickly.
I've tried a number of apps to manage OSX's clunky alt+tab, but none have worked out long term.
The only thing that keeps me from trying Foreman is the "closing" of other apps. Like many other users here, just because I want apps out of the way, doesn't mean I want them closed. Is there no way to filter them from the task list instead?
You do make it clear on the site that Foreman closes apps, but I did come back to HN to confirm via the comments.
As far as I know, any app that's active on the dock will show up in the task list. You might want to try out Witch - I'm not 100% sure that it does what you want, but it might. Good luck!
By the way, I knew exactly what this app did 2 seconds after page load.
Cheers.
This app tackles that aspect of my launcher, and makes me wonder if my launcher idea is even necessary. Maybe this app is enough. I'm looking forward to it maturing some more (based on other comments)
design "Photoshop CS5" "Google Chrome"
and then do "macforeman design" and it will act just like the gui app.
Many thanks for sharing on github. BTW, would you consider using a well known license (e.g. GPL or MIT)?
All you need is one screenshot. One download button. One donate button. One mention that it's free.
However, this seems like a nice/simple app and I'm excited to try it out!
EDIT: My 1st joking point is perfectly demonstrated by tzaman's comment below. Haha