Showing posts with label R2. Show all posts
Showing posts with label R2. Show all posts
Thursday, November 6, 2008
R2 Desktop Revisions: It's *Finally* Published
After lots of research, tweaking, and refining, I've finally finished my proposal for the Haiku R2 desktop in its consolidated, revised form. It's about time, if you asked me. I originally planned to release it after the DeskPanel was finished, but with me working on something else that will see the light of day sometime soon as a nice diversion, it was better to get this out the door. There isn't a link on my old site, but it's kept there. You can get the PDF of the proposal here. If you care at all about the direction Haiku is going, please do me a favor and comment here or my blog thread on the subject over on the Haiku website.
Sunday, September 21, 2008
All About the DeskPanel
I try my best to make the commandment about keeping the Sabbath day and make it a day of rest, doing stuff that I think is fun and/or relaxing. Even though it takes significant effort and energy, writing code is one activity that fits -- it's fun and I enjoy it. My wife and my son were sick today, so I stayed home from church and kept things going. I did have some spare time that I threw at the DeskPanel, too. What did I accomplish? The running app list works properly except for doing drag and drop on program entries to open them and some more problems with layout have been fixed. I also whipped up a quick shutdown / restart window to go with the Quit item in the Computer menu (see screenshots from last post). I don't have a shot handy of the shutdown window, but it looks pretty decent and is reminicent of the logout window that Xfce4 uses. I removed some quick-and-dirty hacks in favor of some proper code. The last thing I did at the end of my coding run this afternoon was shut down my machine using the DeskPanel. It felt good.
The DeskPanel has been probably the most complicated piece of code I've worked on since my app_server days. There are some sections of the Deskbar's code that work some BeOS black magic and other parts that are not so pretty. BNavMenu is one massive class. It's what gives us those wildly-convenient navigational menus accessed by right-clicking on a folder in Tracker. It's also the code that powers the Deskbar's Applications and Preferences menus. The nice part is that it wasn't too difficult to unbolt certain important sections of code and place them elsewhere for the reorganizational part of the DeskPanel.
Some of you may be wondering what the big deal about all the effort I'm putting into this extended-from-summer project. It's all about organization and simplification. At the risk of being boring, allow me to go into some details about some of the new tricks it does.
First of all, there is the Programs menu, the first of the three screenshots from the last post. Gone are the days of "one menu to rule them all." The only thing you'll find in this menu are programs. I added a permanent Run Program item which could easily one day turn into a swiss-army knife command prompt that you could type in stuff like map "1313 mockingbird lane, schenectady, ny, 12345" and do a Google Maps lookup on the address or define grace and get a lookup from an online (or offline) dictionary. As for the actual program shortcuts and the categories in the Programs menu, it's a case of smoke and mirrors. The main menu is a listing of /boot/home/config/be/Programs, but the items in it are queries for the category attribute. This attribute is a new indexed attribute which is used for Programs menu entries. Tagging an application with a particular category suddenly adds it to the menu under the appropriate category. The actual category entries are just saved queries with custom icons to make them look nice. I think it works quite well, and unlike the current situation with the Deskbar, there are no symlinks to break. You can even add a folder to the list simply by tagging a folder with the appropriate category.
The Computer menu is pretty straightforward -- items related to the system in general. I'll probably be renaming About this System to About Haiku (or BeOS or Zeta, as appropriate) and adding an item named About this Computer to fire up a small, relatively simple system info app (like a less-technical version of BePCInfo). I've mentioned the System Settings app started by the Computer menu item of the same name -- a launcher for the various preferences apps in the same vein as the OS X system settings app, but without the resizing and the Back button. The Quit item removes the "Are you sure?" messages that exist in Haiku right now without having accidental reboots and shutdowns that can happen in R5 at the moment.
I personally think the Bookmarks menu is really, really convenient. All your NetPositive bookmarks can be accessed with a couple of clicks, you can add bookmarks just by dropping items on the Bookmarks button, and organizing them is as simple as file management. The Recent Documents / Folders / Applications menus are still there and as useful as ever. This menu is one feature that makes me wish the DeskPanel were ready to replace the Deskbar right now.
The other stuff is in a state of change, but not in a bad way. The running programs list, now that it is debugged, works just as well as the Deskbar's except for two things: you can run so many programs that not all of them are visible in the list and, as I mentioned before, you can't open a file by dropping it on an entry in the list. I'm still working on a good solution to the first issue and the second is just incomplete code, so no big deal. There are other things that should be attended to before release, such as the preferences app for the DeskPanel other little things. I also need to formalize the way that add-ons are added to the Deskbar. Right now, they're all hard-coded, but the addons themselves are written in a way that they can be added and removed on the fly.
Overall, a lot has been acccomplished on the DeskPanel, but there is still quite a bit to do. Instead of just having an incomplete and/or buggy demo, I'm going to give it a good solid go and make a proper app. It'll take longer, but it'll be worth it. While it will be quite a while before a stable R1 is released, if I have anything to do with it, when it finally arrives it'll be possible to create a tricked-out R1 install that will be pretty sweet and a usable, productive, and free environment for people to work with.
The DeskPanel has been probably the most complicated piece of code I've worked on since my app_server days. There are some sections of the Deskbar's code that work some BeOS black magic and other parts that are not so pretty. BNavMenu is one massive class. It's what gives us those wildly-convenient navigational menus accessed by right-clicking on a folder in Tracker. It's also the code that powers the Deskbar's Applications and Preferences menus. The nice part is that it wasn't too difficult to unbolt certain important sections of code and place them elsewhere for the reorganizational part of the DeskPanel.
Some of you may be wondering what the big deal about all the effort I'm putting into this extended-from-summer project. It's all about organization and simplification. At the risk of being boring, allow me to go into some details about some of the new tricks it does.
First of all, there is the Programs menu, the first of the three screenshots from the last post. Gone are the days of "one menu to rule them all." The only thing you'll find in this menu are programs. I added a permanent Run Program item which could easily one day turn into a swiss-army knife command prompt that you could type in stuff like map "1313 mockingbird lane, schenectady, ny, 12345" and do a Google Maps lookup on the address or define grace and get a lookup from an online (or offline) dictionary. As for the actual program shortcuts and the categories in the Programs menu, it's a case of smoke and mirrors. The main menu is a listing of /boot/home/config/be/Programs, but the items in it are queries for the category attribute. This attribute is a new indexed attribute which is used for Programs menu entries. Tagging an application with a particular category suddenly adds it to the menu under the appropriate category. The actual category entries are just saved queries with custom icons to make them look nice. I think it works quite well, and unlike the current situation with the Deskbar, there are no symlinks to break. You can even add a folder to the list simply by tagging a folder with the appropriate category.
The Computer menu is pretty straightforward -- items related to the system in general. I'll probably be renaming About this System to About Haiku (or BeOS or Zeta, as appropriate) and adding an item named About this Computer to fire up a small, relatively simple system info app (like a less-technical version of BePCInfo). I've mentioned the System Settings app started by the Computer menu item of the same name -- a launcher for the various preferences apps in the same vein as the OS X system settings app, but without the resizing and the Back button. The Quit item removes the "Are you sure?" messages that exist in Haiku right now without having accidental reboots and shutdowns that can happen in R5 at the moment.
I personally think the Bookmarks menu is really, really convenient. All your NetPositive bookmarks can be accessed with a couple of clicks, you can add bookmarks just by dropping items on the Bookmarks button, and organizing them is as simple as file management. The Recent Documents / Folders / Applications menus are still there and as useful as ever. This menu is one feature that makes me wish the DeskPanel were ready to replace the Deskbar right now.
The other stuff is in a state of change, but not in a bad way. The running programs list, now that it is debugged, works just as well as the Deskbar's except for two things: you can run so many programs that not all of them are visible in the list and, as I mentioned before, you can't open a file by dropping it on an entry in the list. I'm still working on a good solution to the first issue and the second is just incomplete code, so no big deal. There are other things that should be attended to before release, such as the preferences app for the DeskPanel other little things. I also need to formalize the way that add-ons are added to the Deskbar. Right now, they're all hard-coded, but the addons themselves are written in a way that they can be added and removed on the fly.
Overall, a lot has been acccomplished on the DeskPanel, but there is still quite a bit to do. Instead of just having an incomplete and/or buggy demo, I'm going to give it a good solid go and make a proper app. It'll take longer, but it'll be worth it. While it will be quite a while before a stable R1 is released, if I have anything to do with it, when it finally arrives it'll be possible to create a tricked-out R1 install that will be pretty sweet and a usable, productive, and free environment for people to work with.
Monday, September 15, 2008
Can't Leaf the Area Very Easily
For those following the events in U.S. weather, the midwest was hit with a major windstorm last night -- gale force gusts, to be precise. It's amazing how loss of power puts everything into perspective, even if it's only for a few hours. I needed a good reminder to keep me grounded in what really matters. In retrospect, I count myself very much blessed. The worst of it was about 24 hours without Internet access, which was quite annoying, about 4 hours without power, and a bunch of branches and leaves in my back yard.
Others were not nearly so lucky. The street I live on, for example, is currently a detour for a major state route that has a huge fallen tree across it. I'm also quite glad I don't subscribe to the digital phone package that Time Warner pushes alongside its RoadRunner service. Both my in-laws and some very good friends of the family were not only without power, but also without a source of communication by not having a cell phone or a landline. Over 450 school districts -- not schools, but districts -- were closed for today.
Over 230 schools were closed in my area , including my own, so I had an unexpected -- but nonetheless welcome -- day off. With my newly-found spare time, I spent the morning hacking on the DeskPanel, the proposed R2 retooling of the Deskbar. Progress? Igor, it's alive, I tell you. ALIVE!! HAHAHAHAHAHA!! Well, it's certainly comparable to Dr. Frankenstein's monster -- the sources aren't exactly pretty. Then again, the Deskbar's sources wouldn't have won any beauty contests to start with. *shrug* Anyway, the changes are more evolution than revolution -- more reorganization and some minor improvements here and there. While it's definitely a work in progress, I finally have some eye candy for all of you. I won't comment on them, but with the cat out of the bag on the last of my summer projects, I should be publishing the revisions I made to my desktop RFC in the next day or so.


Others were not nearly so lucky. The street I live on, for example, is currently a detour for a major state route that has a huge fallen tree across it. I'm also quite glad I don't subscribe to the digital phone package that Time Warner pushes alongside its RoadRunner service. Both my in-laws and some very good friends of the family were not only without power, but also without a source of communication by not having a cell phone or a landline. Over 450 school districts -- not schools, but districts -- were closed for today.
Over 230 schools were closed in my area , including my own, so I had an unexpected -- but nonetheless welcome -- day off. With my newly-found spare time, I spent the morning hacking on the DeskPanel, the proposed R2 retooling of the Deskbar. Progress? Igor, it's alive, I tell you. ALIVE!! HAHAHAHAHAHA!! Well, it's certainly comparable to Dr. Frankenstein's monster -- the sources aren't exactly pretty. Then again, the Deskbar's sources wouldn't have won any beauty contests to start with. *shrug* Anyway, the changes are more evolution than revolution -- more reorganization and some minor improvements here and there. While it's definitely a work in progress, I finally have some eye candy for all of you. I won't comment on them, but with the cat out of the bag on the last of my summer projects, I should be publishing the revisions I made to my desktop RFC in the next day or so.

Saturday, September 13, 2008
Filer 1.0 Beta 3 is *Finally* Out the Door
Yep. It's out at last. This is the version that's been sitting on my hard drive for the last three weeks while I've been trying to keep up with the usual massive changes to my life that occur when I go from summer break into the school year. It was quite a pain because I wanted to redo the icon for the app in addition to coming up with icons for the AutoFiler and its settings app.
Normally I try to have fun with icons for my apps. The fortune cookie I used for Fortuna and the Metroid-inspired icon for Seeker come to mind when I say this -- they were fun to create, especially Seeker's. The Filer and the DeskPanel projects are supposed to be system-level applications, so the icons really should follow the isometric perspective like the rest. Unfortunately, isometric icons are a pain in the neck to draw. Oh well.
The big feature to this release is the AutoFiler that I just mentioned. Karl vom Dorff (of Haikuware fame) suggested a daemon to automatically file items in certain folders. Hazel, the app which I used as inspiration for some of the features for the Filer, requires a folder for each rule. I didn't want to have this requirement, but having it as an option makes the Filer more useful than before. The main use I see for it is for a downloads folder. Point the AutoFiler at your browser's download folder and set up rules for your files. Here's an example rule:
Name ends with .zip
Terminal command... unzip %FULLPATH% -d /boot/home/Desktop
Move it to the Trash
The part that I also see could be really cool is if I managed to get the program bundle code working properly under R5, you could conceivably install programs with literally one click -- your browser downloads the bundle, the AutoFiler invokes the Filer on the download folder, and the Filer installs it. One click. Now that's ease of use.
Normally I try to have fun with icons for my apps. The fortune cookie I used for Fortuna and the Metroid-inspired icon for Seeker come to mind when I say this -- they were fun to create, especially Seeker's. The Filer and the DeskPanel projects are supposed to be system-level applications, so the icons really should follow the isometric perspective like the rest. Unfortunately, isometric icons are a pain in the neck to draw. Oh well.
The big feature to this release is the AutoFiler that I just mentioned. Karl vom Dorff (of Haikuware fame) suggested a daemon to automatically file items in certain folders. Hazel, the app which I used as inspiration for some of the features for the Filer, requires a folder for each rule. I didn't want to have this requirement, but having it as an option makes the Filer more useful than before. The main use I see for it is for a downloads folder. Point the AutoFiler at your browser's download folder and set up rules for your files. Here's an example rule:
Name ends with .zip
Terminal command... unzip %FULLPATH% -d /boot/home/Desktop
Move it to the Trash
The part that I also see could be really cool is if I managed to get the program bundle code working properly under R5, you could conceivably install programs with literally one click -- your browser downloads the bundle, the AutoFiler invokes the Filer on the download folder, and the Filer installs it. One click. Now that's ease of use.
Monday, September 8, 2008
Still Busy and Still Hacking
The school year is in full swing now... the third week of school already, and the last two went very fast. There hasn't been as much code as I would like, but it can't be helped. This year is quite different because of the move my school is making to a new, multimillion dollar facility, which, when it comes to schools, isn't really saying much. I was supposed to be teaching Band at the new building and Computers at our big campus in Columbus, but enrollment was down, so I'm doing custodial work. At first, I didn't really like it much, but it's growing on me. It used to be that I just fixed computers around the building, and now I fix other stuff, too. My wife and I work a cross between first and second shift, so it's been quite a lifestyle adjustment for the family. I've started to get the hang of it, so I've been able to make the non-work part of my life fit in again, like code.
I've got a new release for the Filer pretty much ready to go out the door. It's been held up for a while because I haven't had time to get it packaged up and handle the inevitable busyness -- in a good way -- that follows a release. I'm still hacking away at the new Deskbar, tentatively titled DeskPanel. It's been a real pain in the neck. I slapped together some icons that, while not my best work, look halfway decent. The layout code has been a real problem. I walked away after 3 hours of fighting with it. I also cleaned up some of the interface-related code that handles the Programs menu, but most of the time was spent on layout. A major pain. Hopefully, I'll have more good news to relate next time. TTFN.
I've got a new release for the Filer pretty much ready to go out the door. It's been held up for a while because I haven't had time to get it packaged up and handle the inevitable busyness -- in a good way -- that follows a release. I'm still hacking away at the new Deskbar, tentatively titled DeskPanel. It's been a real pain in the neck. I slapped together some icons that, while not my best work, look halfway decent. The layout code has been a real problem. I walked away after 3 hours of fighting with it. I also cleaned up some of the interface-related code that handles the Programs menu, but most of the time was spent on layout. A major pain. Hopefully, I'll have more good news to relate next time. TTFN.
Friday, August 22, 2008
Busy and Still (!) Hacking
It never ceases to surprise me how life has its little twists and turns, often in an unexpected direction. I'm still working on fixing up my house, which is funny, because I had originally planned on having it all done and my house being put on the market by the end of June. Boy, I have to laugh about how far off even our best-laid plans can be. God must have something else in mind, but being He knows best, I'm not really worrying about it. The school year started for the teachers this past Wednesday, so I've had significantly less time for fun stuff, but even then, I've made some time to unwind by sitting down and hacking some code for a bit.
Since last time, I've spent more than a little time attempting to finish up the other project that I've mentioned this summer -- an application bundling program. The concept? To the user, the program is just one file; delete it and you've uninstalled a program. Installation is as simple as downloading it from the Internet. The only downside to this method of packaging programs is the size of the file. The BFS filesystem forces packages to be at least about 1.5MB for even something small like Mr. Peeps or Run Program. With hard drive storage being so cheap and the unlikelihood that someone will have as many program bundles as MP3s, I figure it's not that big of a deal except when downloading. The solution? Compress them, which they do very nicely.
There is one problem, however. In testing a Filer rule for uncompressing and installing zipped bundles, I ran into some very strange instances where if I zipped a bundle and then turned around and unzipped a new, theoretically exact duplicate of the original, the original would run just fine but the new one wouldn't. I even compared CRC32 signatures with perfectly matching results. The conclusion? Something doesn't work so well under R5. I get some totally different error messages in Haiku, so a bug report is probably in order there. If any of you more technical readers would be willing to do a little testing under Zeta or Dano, I'd genuinely appreciate it. E-mail me or leave a comment. In any event, the program bundling is on the back burner for the moment, leaving me time to work on my final R2 project of the summer: the Deskbar.
In my R2 desktop proposal, I described changing the Deskbar to make it more functionally useful and better organized. All the details can be boiled down to breaking the Be menu into three and making the Deskbar behave a little more like a panel used in Linux, with addon widgets for things like inbox monitoring, weather, and other useful tools. I've started it and made much more headway than I thought I would. I was intimidated by the Deskbar code, which is mature, stable code which more complicated, architecturally speaking, than I'm used to dealing with. After some code study, though, it isn't nearly as difficult as it looks.
How far have I gotten? Well, I have all three menus implemented: Programs, Computer, and Bookmarks. Integration of NetPositive bookmarks is complete, and would be wildly convenient if I had a decent browser to use them with (might try NetSurf). No more broken Deskbar links, either -- applications are found by query and there is an almost-imperceptible delay when browsing the menu. The system settings program (screenshot in an earlier post) drastically reduces the clutter in the Computer menu. The Bookmarks menu doesn't create bookmarks when you drop files on it yet, but that's currently being investigated. Overall, I really like it, and I can't wait to get it to the point where I can replace the Deskbar on my machine with it. That day will come, and it will be a good one. No screenshots yet -- I'm also working on some nice icons to replace the cruddy placeholder ones I currently have in place. Stay tuned!
Since last time, I've spent more than a little time attempting to finish up the other project that I've mentioned this summer -- an application bundling program. The concept? To the user, the program is just one file; delete it and you've uninstalled a program. Installation is as simple as downloading it from the Internet. The only downside to this method of packaging programs is the size of the file. The BFS filesystem forces packages to be at least about 1.5MB for even something small like Mr. Peeps or Run Program. With hard drive storage being so cheap and the unlikelihood that someone will have as many program bundles as MP3s, I figure it's not that big of a deal except when downloading. The solution? Compress them, which they do very nicely.
There is one problem, however. In testing a Filer rule for uncompressing and installing zipped bundles, I ran into some very strange instances where if I zipped a bundle and then turned around and unzipped a new, theoretically exact duplicate of the original, the original would run just fine but the new one wouldn't. I even compared CRC32 signatures with perfectly matching results. The conclusion? Something doesn't work so well under R5. I get some totally different error messages in Haiku, so a bug report is probably in order there. If any of you more technical readers would be willing to do a little testing under Zeta or Dano, I'd genuinely appreciate it. E-mail me or leave a comment. In any event, the program bundling is on the back burner for the moment, leaving me time to work on my final R2 project of the summer: the Deskbar.
In my R2 desktop proposal, I described changing the Deskbar to make it more functionally useful and better organized. All the details can be boiled down to breaking the Be menu into three and making the Deskbar behave a little more like a panel used in Linux, with addon widgets for things like inbox monitoring, weather, and other useful tools. I've started it and made much more headway than I thought I would. I was intimidated by the Deskbar code, which is mature, stable code which more complicated, architecturally speaking, than I'm used to dealing with. After some code study, though, it isn't nearly as difficult as it looks.
How far have I gotten? Well, I have all three menus implemented: Programs, Computer, and Bookmarks. Integration of NetPositive bookmarks is complete, and would be wildly convenient if I had a decent browser to use them with (might try NetSurf). No more broken Deskbar links, either -- applications are found by query and there is an almost-imperceptible delay when browsing the menu. The system settings program (screenshot in an earlier post) drastically reduces the clutter in the Computer menu. The Bookmarks menu doesn't create bookmarks when you drop files on it yet, but that's currently being investigated. Overall, I really like it, and I can't wait to get it to the point where I can replace the Deskbar on my machine with it. That day will come, and it will be a good one. No screenshots yet -- I'm also working on some nice icons to replace the cruddy placeholder ones I currently have in place. Stay tuned!
Thursday, August 7, 2008
Talk about Turnaround... Filer Beta 2 is Out
Today sure has been busy, but in a good way. I spent last night and this morning putting together a new bed frame for my daughter (some assembly required... yeah, sure), so I was a little surprised that some people found a serious crash bug and that I my efforts were mentioned on BeOSNews. Consider me flattered. :-) After attempting to come up with some other neat uses for the Filer, I thought of a couple more features to add, started hacking away, and even found and fixed a couple more bugs. Beta 2 is out on BeBits and Haikuware.
The second beta adds some niceties that I thought would be really useful. If you send the Filer a symlink, it treats the link as if the real file were sent to it from the link's location. In other words, if I have a link to a file on the Desktop and I send the link to the Filer, it treats the file as if it really were on the Desktop. The Open command fires up the file's default application, and you could set up a simplistic form of backups with the Add to Archive command. One thing that I thought would be really useful (alas, wput doesn't exist for R5 :( ) would be to have the Filer automagically turn one of my project development folders into a zipfile and upload it to my old website. It certainly would make releases a little faster. I also added the %FOLDER% substitution pattern. Sometimes you want the folder a file is in and not the file itself. :)
It's kind of all a blur at the moment, but if I remember correctly, someone asked me how exactly you could use it to organize your MP3s for you when used with id3attr. Here's a rule to do it all:
Name ends with .mp3
Terminal command: id3attr '%FULLPATH%'
Rename it to: %ATTR:Audio:Artist% - %ATTR:Audio:Title%.mp3
Move it to: /boot/home/music/%ATTR:Audio:Artist%
Note that the %FULLPATH% section in the Terminal command has single quotes around it. This makes sure that things like spaces don't mess things up. If you also wanted to play it after it was sorted away, add an 'Open it' action at the end.
All in all, not bad for a day's work. TTFN :)
The second beta adds some niceties that I thought would be really useful. If you send the Filer a symlink, it treats the link as if the real file were sent to it from the link's location. In other words, if I have a link to a file on the Desktop and I send the link to the Filer, it treats the file as if it really were on the Desktop. The Open command fires up the file's default application, and you could set up a simplistic form of backups with the Add to Archive command. One thing that I thought would be really useful (alas, wput doesn't exist for R5 :( ) would be to have the Filer automagically turn one of my project development folders into a zipfile and upload it to my old website. It certainly would make releases a little faster. I also added the %FOLDER% substitution pattern. Sometimes you want the folder a file is in and not the file itself. :)
It's kind of all a blur at the moment, but if I remember correctly, someone asked me how exactly you could use it to organize your MP3s for you when used with id3attr. Here's a rule to do it all:
Name ends with .mp3
Terminal command: id3attr '%FULLPATH%'
Rename it to: %ATTR:Audio:Artist% - %ATTR:Audio:Title%.mp3
Move it to: /boot/home/music/%ATTR:Audio:Artist%
Note that the %FULLPATH% section in the Terminal command has single quotes around it. This makes sure that things like spaces don't mess things up. If you also wanted to play it after it was sorted away, add an 'Open it' action at the end.
All in all, not bad for a day's work. TTFN :)
Wednesday, August 6, 2008
Filer 1.0 Beta 1 Released!
I haven't released any new software in such a long time that I forgot how exciting a time it is. I just got done posting the release to BeBits and Haikuware. Last night I was hacking away at it, and when I finished, I thought, "oh, wow, this is cool!" I certainly haven't had a moment like that in a long, long time.
One of the really neat things about it is being able to grab Axel's id3attr from BeBits (that creates attributes from MP3 tags) and use the Filer to organize an MP3 library. You can do this because of pattern substitutions and the ability to use bash commands. Pattern substitutions are a feature in cd ripping software where you can set a format for a file name, such as writing in %A - %T.mp3 to have the software make files with names like Skillet - Savior.mp3 and Big Tent Revival - Two Sets of Joneses.mp3. Unzipping a Zip file to the Desktop is as simple as one command: unzip '%FULLPATH%' -d /boot/home/Desktop. %FULLPATH% substitutes the full path of the file being processed before the command is executed. I listed some other examples in the help file bundled in with the executable.
If you come up with a really neat rule, put it in the comments or e-mail me and I'll put it up to share with everyone. Enjoy!
One of the really neat things about it is being able to grab Axel's id3attr from BeBits (that creates attributes from MP3 tags) and use the Filer to organize an MP3 library. You can do this because of pattern substitutions and the ability to use bash commands. Pattern substitutions are a feature in cd ripping software where you can set a format for a file name, such as writing in %A - %T.mp3 to have the software make files with names like Skillet - Savior.mp3 and Big Tent Revival - Two Sets of Joneses.mp3. Unzipping a Zip file to the Desktop is as simple as one command: unzip '%FULLPATH%' -d /boot/home/Desktop. %FULLPATH% substitutes the full path of the file being processed before the command is executed. I listed some other examples in the help file bundled in with the executable.
If you come up with a really neat rule, put it in the comments or e-mail me and I'll put it up to share with everyone. Enjoy!
Monday, August 4, 2008
Project Progress (3 of 4): The Filer
With all the updates in a short time and then nothing, you'd think that I just didn't have time to do anything. You'd be wrong, for once. I mentioned in my last post that I'd be getting back on the 31st, which I did. Once I returned home, I went into a flurry of code the likes of which I haven't seen in years. In fact, on more than one occasion I did some late night or very early morning code sessions, with some nice, concrete results this morning at about 5AM. The results? The third of my four summer R2 projects: the Filer.
Unlike many other ideas that were in my original Desktop RFC on the Haiku website, this one did not change much, so the info is pretty close to what is in the revised -- and still yet unpublished -- version. You can find more detail on the Filer by following the link, but to quickly summarize, it's a program to let you automatically organize your files according to a set of rules that you create. The idea has actually been around for quite a while, but I only heard of the only two implementations this summer: Belvedere, a freeware Windows app well-known to Lifehacker readers, and the original which inspired it, Hazel, an incredible shareware OS X app from Noodlesoft. The difference from these two is that -- hopefully -- mine will be integrated with the OS, offloading one more task for the user when he wishes.
Filer development, simply put, has been long and difficult, which is why it's taken so long before I mentioned anything about it. It's probably the biggest "little" app I've written, so I want to do more testing and fixing before releasing it. There are other features planned, but it has the essentials and with two weeks before school starts, I want to make sure the last project gets done or at least most of the way done. As is my habit, here is a screenshot to keep you going:
Unlike many other ideas that were in my original Desktop RFC on the Haiku website, this one did not change much, so the info is pretty close to what is in the revised -- and still yet unpublished -- version. You can find more detail on the Filer by following the link, but to quickly summarize, it's a program to let you automatically organize your files according to a set of rules that you create. The idea has actually been around for quite a while, but I only heard of the only two implementations this summer: Belvedere, a freeware Windows app well-known to Lifehacker readers, and the original which inspired it, Hazel, an incredible shareware OS X app from Noodlesoft. The difference from these two is that -- hopefully -- mine will be integrated with the OS, offloading one more task for the user when he wishes.
Filer development, simply put, has been long and difficult, which is why it's taken so long before I mentioned anything about it. It's probably the biggest "little" app I've written, so I want to do more testing and fixing before releasing it. There are other features planned, but it has the essentials and with two weeks before school starts, I want to make sure the last project gets done or at least most of the way done. As is my habit, here is a screenshot to keep you going:
Saturday, July 26, 2008
More Juicy Tidbits
If you haven't been following my work for the last couple of weeks, I've been letting little things out about the work I'm doing to make working proof-of-concept apps to accompany my document on my vision for Haiku's R2. First was a screenshot of a settings app launcher to replace the current scheme. Instead of navigating up to a submenu that is shallow and wide, i.e. one level deep and what seems like 30 choices, the user clicks on one menu item which spawns an app that better organizes the preferences apps. The large buttons look pretty good and also make it easier to launch an app. It's very much like the preferences launcher in OS X, which adds some familiarity for people from that camp.
The second screenshot (posted on the 18th) was one which I left as a bit of a puzzle. Pieter, the only commenter, was correct. It is a package builder, and simple enough to pick up and use. All that is needed is to point it at an executable and, optionally, the topmost folder to use for the package. The developer provides some additional basic information about the app, click Start, and voila! A package is created in a process that is so easy it makes a man speak French against his will. ;-)
What was not in the screenshot is something equally important: an package runner. Doubleclicking on one of these packages runs the app. While I can't claim originality in the idea, no one has implemented it. One file for the entire program. Want to delete the program? Delete one file and you're done. It's also done in a way that you can use queries with them.
It's incredibly simple and works for most apps, but not all. Just as OS X has disk image files (.dmg) and package files (.pkg), Haiku will need them, too. Most of the code needed for regular packages is already there, and I released something like it some years ago. It still needs some tweaking and thought, but it won't take much work.
My current project is much more complicated than the settings launcher and the utilities for program bundles, but it will be worth it. I'll be forthcoming with the details once it's finished, which will probably be a couple of weeks -- I'm currently writing this from out-of-town and I won't be returning until 7/31/08. Until then, I guess we'll all have to wait.
The second screenshot (posted on the 18th) was one which I left as a bit of a puzzle. Pieter, the only commenter, was correct. It is a package builder, and simple enough to pick up and use. All that is needed is to point it at an executable and, optionally, the topmost folder to use for the package. The developer provides some additional basic information about the app, click Start, and voila! A package is created in a process that is so easy it makes a man speak French against his will. ;-)
What was not in the screenshot is something equally important: an package runner. Doubleclicking on one of these packages runs the app. While I can't claim originality in the idea, no one has implemented it. One file for the entire program. Want to delete the program? Delete one file and you're done. It's also done in a way that you can use queries with them.
It's incredibly simple and works for most apps, but not all. Just as OS X has disk image files (.dmg) and package files (.pkg), Haiku will need them, too. Most of the code needed for regular packages is already there, and I released something like it some years ago. It still needs some tweaking and thought, but it won't take much work.
My current project is much more complicated than the settings launcher and the utilities for program bundles, but it will be worth it. I'll be forthcoming with the details once it's finished, which will probably be a couple of weeks -- I'm currently writing this from out-of-town and I won't be returning until 7/31/08. Until then, I guess we'll all have to wait.
Saturday, July 19, 2008
A Word of Clarification and Musings about Haiku R2
This morning I got to thinking about the last couple of posts and I realized that it might be easy to misunderstand the officialness (is that a word?) of my efforts. I'm not with Haiku anymore, as I announced last fall, and, as such, nothing that I do at this point can be considered official Haiku code or anything. This is something purely on my own, just like my LibWalter project over at OSDrawer.
For those of you who haven't heard of it -- most people, I'd imagine -- it's a repository of MIT-licensed code which is sorely missing from the BeOS API, like menu items and list items which can have an icon, a font chooser, and other stuff. It also provides a point of access for useful-but-homeless code floating around the Web, like some code that exists for a dropdown combo box that's been around for years. LibWalter It has been done in such a way that when R2 comes around that most, if not all, of the code can be incorporated into the Haiku source tree and give it a nice shot of progress.
These little code projects that I'm currently working on are in the same vein. Too many people have suggested bizarre, impractical, and/or undesirable ideas on the Glass Elevator list. I also fear a "designed by committee" user interface which doesn't really do a decent job of helping someone. No one really seems to have a vision for R2. I do, but I'm in no position to dictate anything, and even if I were, not all of my ideas are necessarily good ones. These screenshots (and the to-be-released-later programs) are an attempt to show that my vision for R2 is good, sensible, practical, and worth putting into place, and because of the way that I'm writing them, it will be possible to try them out on R5, Zeta, or Haiku long before R2 is even a practical target.
For those of you who haven't heard of it -- most people, I'd imagine -- it's a repository of MIT-licensed code which is sorely missing from the BeOS API, like menu items and list items which can have an icon, a font chooser, and other stuff. It also provides a point of access for useful-but-homeless code floating around the Web, like some code that exists for a dropdown combo box that's been around for years. LibWalter It has been done in such a way that when R2 comes around that most, if not all, of the code can be incorporated into the Haiku source tree and give it a nice shot of progress.
These little code projects that I'm currently working on are in the same vein. Too many people have suggested bizarre, impractical, and/or undesirable ideas on the Glass Elevator list. I also fear a "designed by committee" user interface which doesn't really do a decent job of helping someone. No one really seems to have a vision for R2. I do, but I'm in no position to dictate anything, and even if I were, not all of my ideas are necessarily good ones. These screenshots (and the to-be-released-later programs) are an attempt to show that my vision for R2 is good, sensible, practical, and worth putting into place, and because of the way that I'm writing them, it will be possible to try them out on R5, Zeta, or Haiku long before R2 is even a practical target.
Subscribe to:
Posts (Atom)