ScottRitchie

Revision 53 as of 2007-06-29 20:23:32

Clear message

ScottRitchie

Hey, I'm Scott Ritchie. You can usually find me on IRC as YokoZar, both in #ubuntu-devel and #winehackers. I also have pages on [https://launchpad.net/~scottritchie Launchpad], [http://wiki.winehq.org/ScottRitchie Wine's Wiki], and [http://en.wikipedia.org/wiki/User:Scott_Ritchie Wikipedia].

I make the wine packages at winehq.org, which so far have been getting synced straight to Ubuntu by [wiki:StephanHermann Stephan Hermann]. I started making them and putting them up at winehq.org after the ones included in Debian (and therefore in universe) became horribly broken and out of date. I've tried becoming the official Debian maintainer, as well as getting him to sponsor my packages, but have been completely unsuccessful and have basically given up on getting anything "official" in Debian at this point. Regardless, I was pleasantly surprised when [wiki:JeffWaugh Jeff Waugh] came directly to me and asked me to sign up for Ubuntu. That was back in the Hoary days, and I've been directly helping ever since.

I'm primarily concerned with usability of Wine software, including proper packaging and documentation work. My goal is nothing short of making Wine easy and effective enough to be an official supported package in Ubuntu. Like most developers, however, I like to try my hand at being useful throughout the entire project, doing everything from filing bugs in other packages to drafting entire specifications.

Specifications I've been brainstorming:

  • BetterIntegratedWineSpec - a spec to improve Wine's usability in Ubuntu

    • -- currently needs to be revised to reflect upstream Wine improvements and a few new goals (see below)
  • EmuleViaWineSpec - a spec to integrate eMule as a regular application in Ubuntu, powered by Wine

  • JabberAccountCreationSpec - a spec to make it very easy to create a Jabber account when first starting Gaim

  • Amd64BitWinePackage - my attempts at making a 64 bit Wine package that can run 32 bit apps.

  • MouseConfigurationSpec - a spec to allow disabling of x11's left+right = middle click feature from the Preferences->Mouse panel

    • -- this is harder to fix than a simple bug, since currently this is controlled by the xorg configuration file rather than the desktop environment, and so a new freedesktop.org standard to change it on the fly needs to be drafted and implemented.
  • UsefulDisksManagerSpec - a spec to beef up the disks manager applet to include error checking and other features

    • -- obsolete since the disks manager has been removed, although it should probably come back in some form (with these features Wink ;) ) In any case, there should be a way to graphically run fsck, mkfs, and the partition manager from the system menu.

Todo list:

Wine todo list:

  • Usability:

    • Warn the user if they don't have OpenGL installed
    • Winecfg and the Wine application uninstaller need to be added to Wine's menu by default. Optionally, we could move these to some other place in the menu (eg system->preferences), depending on what the other user interface experts think.

    • There also needs to be a "browse virtual windows drive" option that opens the .wine/drive_c/ folder in nautilus (and not Wine explorer). The best place for such a link is probably as a place selectable under the places menu.

    • Wine should have a special launcher script - it needs to set the working directory of the program correctly after double-clicking an executable file. Most windows apps expect the working directory to be where the application resides, but Gnome's (and I think KDE's) default behavior is to set it to ~/
      • -- Debian Bug#420207 has a user script that can be modified for this purpose
    • Wine needs to have a command-line option to test if it's configured yet (IE, there exists ~/.wine), and if not then run Wine's first-time configuration. This way scripts can test if Wine's been setup.
      • -- This script, then, needs to be included in the "Browse virtual Windows drive" option created on the menu when installing Wine so that it'll be there. Ideally, it should also tell the user what it's doing and why it's taking so long (eg: "winecfg is creating your virtual windows drive, please wait")
    • Similarly, .msi files need to have an install option that launches "msiexec /i (filename)"
    • There needs to be a way to tell users they don't have a Windows font installed and that things look broken as a result (eg, steam and tahoma.ttf). We could either include a free replacement font (if available), or treat some of these fonts like restricted files (eg msttcorefonts package). Either way, something other than displaying blank text needs to happen - even an ugly font is better than nothing.
      • -- this could be done through changing a default registry entry for Wine to add a replacement for tahoma.ttf...but which font is a good replacement?
    • Get usability reports from people on the forums to provide a developer guide for improving Wine usability
    • Take the initiative and get an official review at openusability.org for the layout of whatever replaces the current winecfg
    • Integrate the fancy icons posted to the mailing list by another user earlier (also need to upload a zip file somewhere since the archive is dead). Already using one of them for the Launchpad branding Smile :)

    • It's a bit unclear what to do with the handling of disk images - eg .iso files. Linux can mount them (with terminal commands), but it's quite a nontrivial task to make them act like a mounted CD in Windows (eg, with Daemon tools). This should be point and click for Ubuntu AND Wine.
  • Documentation

    • Updating the content of the Wine User Guide itself is largely done, however live contextual help needs to be provided elsewhere (such as Winecfg)
      • -- Some documentation changes will need to be made as Wine 1.0 approaches, however, as more and more things like msi installs "just work"
    • Wine's changed a bit too: double clicking apps should just work, except for this bug in nautilus in edgy: [http://tuzakey.com/~scott/wine-without-mime.png] and an issue with setting the working directory properly.

    • The Wine documentation also needs to be moved into the right places. Currently it's in a separate package upstream and isn't even included in the Wine packages in Ubuntu. This is ok, since most people just read the manual from winehq.org, but we'll need to actually integrate the docs properly if we want to support Wine.
    • Need to convert Wine docs to XML (they're sgml at the moment), which is a blocker for using the scrollkeeper OMF standard and porting to the standard freedesktop help format.
    • Create a graphical means of running [http://kegel.com/wine/winetricks winetricks], a small script of temporary hacks that can help make Wine more functional until things are fixed upstream. Probably the simplest thing to do is just include the script and wrap it with a quick python gui, and make that launchable from winecfg (or its replacement).

  • Winecfg:

    • Winecfg needs a pretty through redesign, as it has some annoying usability issues such as tabs referring to other tabs. I've got a sketch outline on my notebook of what a new winecfg would look like, I should digitize and spec it out soon.
    • Need to separate logic of winecfg (eg command to change audio drivers) from the program itself. These can all be converted into terminal commands since all they do is modify the registry in some predictable way. Then any application can properly reconfigure Wine, such as winecfg, a custom install script, a new user interface, or a system control applet.
    • Then, we can make a new config program in a toolkit native to the desktop environment, like in GTK. The configuration applet could then even be launched from System->Preferences->Windows Applications

    • There also needs to be a fonts configuration tab to organize font aliases, along with some default ones like for tahoma
    • The drives tab needs to make clear to the user that it's dangerous to simply treat a windows installation as a drive in Wine, both because applications might not work (due to missing registry entries) and because Wine might mess with it. Installing applications "fresh" is better.
  • Other:

    • The integrated eject function when you push the CD eject button needs to call the wine eject program if Wine is locking the disk (so the wineserver can release it, otherwise Linux's eject won't work)
    • Get community help in making a full-fledged Ubuntu Windows theme, to use in Wine (when Wine's theming support starts working fully). In the interrim changing the default colors to match the Ubuntu default theme is a partial step, although things will get ugly when a user changes his Ubuntu theme.
    • Also need to get community help making a free replacement to the tahoma.ttf font, like what Red Hat did with some other Microsoft fonts here: http://www.alldaycoffee.net/story.php/125

      • Currently you can get tahoma from the msttcorefonts package, though I'm not certain if Wine uses this properly.
    • A very useful (for Ubuntu) app would be eMule, however compiling it in Winelib so it builds on Ubuntu will be a bit hard as it's built in MSVC normally and there currently is no "simple" MinGW build. eMule would be a great candidate for inclusion with Feisty + 1, both for its utility and as a demonstration of how other windows programs can be seemlessly moved into Ubuntu - see EmuleViaWineSpec.

Miscellaneous tasks for myself:

  • Patch pbuilder to create pbuilder-dapper, pbuilder-edgy, pbuilder-feisty, pbuilder-etch, pbuilder-unstable etc. packages that depend on pbuilder and setup the separate chroot environments like the instructions on the wiki page show. This would greatly reduce the time for package developers to support different package versions.
  • Write up a spec for point and click installation of a third party apt repository. As it stands, the installation instructions on [http://winehq.org/site/download-deb this page] are too complicated - a user must first identify his Ubuntu version, then run two terminal commands, and then make sure he runs them again when he upgrades distro versions six months later. A user should be able to simply click a link in FireFox, enter his password, and have it all be set up for him. It also took me as a repository maintainer quite a bit of time to figure out how to set that up - as we encourage more and more ISVs to create their own repositories, setup should be made more standardized and clear.

    • -- APT needs to be extended a bit too, in order to get the repository name from the repository itself (or from the installer file mentioned earlier); user's should never have to see "wine.budgetdedicated.com/apt" before they see "WineHQ APT repository" in their system configuration panel. -- It would be neat to have repository "dependencies" - eg the WineHQ APT repository could depend on the universe repository (so the user would be prompted to enable universe), or it could depend on backports, etc.

      -- Google has graphical versions of the instructions here: http://www.google.com/linuxrepositories/ubuntu704.html -- They also have text similar to what I have: http://www.google.com/linuxrepositories/apt.html

  • Write up a howto on setting up a third party repository, since I run the most popular one. ISVs will want to know how simple this is, and what kind of work they can expect maintaining it. I envision a day where I can download the latest Doom 3 from an APT repository, and have it work perfectly after entering in my CD Key.
  • Write up a post on the eMule forums detailing the argument for weighted random queue answering and an increased preference for peers who have uploaded more. I'm convinced that the overall speed and health of the network can improve significantly by two relatively simple changes, however it may require a well written argument and a mathematical model to convince the developers.
    • -- Also explain how I'm eMule maintainer and the ideas (and obstacles) behind an eMule for Ubuntu. It might need to be run with special privileges to use eMules pinging feature, for instance. Also needs to be configured to not check for updates and to scan the user's .wine folder for its configuration every time.
  • Discuss the merit of having a "mute shutdown sound" checkbox when shutting down (if there is one)...or at least having no shutdown sound by default.
  • Gaim-OTR needs to have a "automatically end private conversation when the person you're talking to ends it" feature, and it needs to be on by default. There's no point saving the session key once you know your partner has gotten rid of it, and this will reduce some of the "sending encrypted data when it's unexpected" problems. Also think about automatically forgetting it if the person has logged off and stayed off for an hour or so.
  • Evolution really, really needs to disable ctrl+enter as a shortcut for send email. ctrl+enter is the hotkey for "new line, same paragraph" in Gaim and OpenOffice, and this "shortcut" can have nearly catastrophic consequences. Clicking send is not that difficult and, more importantly, the user will need to use the mouse after finishing an email anyway.

Interests Outside of Ubuntu:

  • I've been teaching myself Python for the purpose of conducting my own research into mathematical analysis of different [http://en.wikipedia.org/wiki/Voting_system voting systems]. I plan to develop this research further as I head into grad school, and publish results as they come. I even see myself writing a book at some point, albeit that's around 4 years into the future.

  • I've recently graduated college, and am actively searching for work. There's nothing I'd love to do more than work full time on Ubuntu, Wine, and supporting users at this point. Come September 2009, however, I may want to leave for Grad School Smile :)


CategoryHomepage