ScottRitchie

Revision 89 as of 2007-11-07 20:15:43

Clear message

ScottRitchie

I'm Scott Ritchie. You can usually find me on Freenode IRC as YokoZar. 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 am an [http://www.ubuntu.com/community/processes/newmember Ubuntu member] and volunteer developer. I maintain the Wine and Spring packages. While older versions of Wine are available in Ubuntu, up to date versions of both packages are also available via their own third party repositories, which I also maintain.

What I've been actively working on

Work I've agreed to do at UDS

  • Implement ThirdPartyApt

  • Help moderate the packaging forum
  • Create the Wine team, manage the team and target specific apps, organize the mailing list, etc. (Jono is sending a large todo)
  • Implement BetterIntegratedWineSpec

How I got here

After some bad experiences attempting to contribute to Debian, 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. Until now, my contributions have mostly been making the Wine packages at winehq.org. Until Gutsy they had been getting synced straight to Ubuntu by [wiki:StephanHermann Stephan Hermann], however now I upload them to REVU myself.

What I want

I want good, usable Wine software. Users shouldn't even need to know they're running Wine. My goal is to help make Wine easy and effective enough to be an official supported package in Ubuntu. Like most developers, however, I make myself useful throughout the entire project, doing everything from filing bugs in other packages to drafting entire blueprints.

Blueprints I'm drafting

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

  • ThirdPartyApt - this is an old spec for dapper that got differed, it's time to revive it. I very nearly reinvented it entirely until I stumbled across it.

    • 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.

    • I would need to implement this myself. Jerome can't do the code anymore, and the spec has been differed since 2 years ago. Fortunately, I know python and can build on the work he did with GApti.
    • 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. We should note in the spec the various "reserved" names that a repo could depend on that we'll automatically recognize (namely, Ubuntu ones, or if we build a list of recognized "official" third parties).
      • This could also be related to the key-signing idea discussed at the spec.
    • 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

    • It should be as simple as downloading a single file and double-clicking it. That will then prompt for the password and tell the user it is adding a key and downloading particular repositories (also warning that this could be a security issue if they're untrusted), as well as installing a particular application (eg Wine or Google Desktop)

Good ideas someone else should code unless I get a lot more time:

  • EmuleViaWine - A spec to integrate eMule as a regular application in Ubuntu, powered by Wine

    • Easily doable by me after scons gets a nice way to convert from visual studio builds to winelib
  • JabberAccountCreation - a spec to make it very easy to create a Jabber account when first starting Gaim

  • MouseConfiguration - It should be possible 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. -- Still, a bug should be filed.
  • 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:

    • Build the [:autorun: Autorun] support into the Wine package
    • Warn the user if they don't have OpenGL installed
    • Consider moving the "Browse C:\ Drive" from Applications->Wine to places. Ask desktop team for feedback, and also figure out how this is done (places isn't a "normal" 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
      • We should use the full path (without switching the directory) when running off a CD, so it can be ejected if needed (eg, multiple install discs)
    • 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)"
      • Perhaps the cleanest way to do this is to associate .msi files with the wine script above via MIME, and then have it determine whether it's working with a simple exe or with an msi file.
      • Note that there is almost no use case for graphically doing msiexec options other than /i (even windows defaults to install and requires a user to use a terminal if he wants to, say, msiexec /u)
    • 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
    • Browsing the forums, it seems that a very large number of new users expect to be able to "run wine" after installing it. They look for the Wine icon, and expect it to open some program that they can then open executables from. There are several solutions to this that should be done:
      • The Wine package description should make it clear that the user will now be able to open Windows executables by double clicking
      • Winecfg, or its replacement, should have a nice front page explaining this, as well as a brief overview of winecfg's purpose.
    • Wine uninstaller (and perhaps winecfg) should have an option to completely nuke ~/.wine
      • Wine uninstaller needs to properly clean the .desktop files for removed Windows apps (this is an upstream bug)
    • 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:

    • Should have checkboxes for enabling .desktop files for more obscure Wine functions (say, regedit or control panel)
    • Warn the user if they try to use an existing Windows drive/registry that it will probably not work and also break.
    • 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.
    • Winecfg (or it's replacement) needs a checkbox to use OpenGL for the DirectDraw renderer (still experimental, but speeds up 2D an awful lot).

    • I should be able to right click an executable file and adjust its settings directly in winecfg. Right now, to do this, I have to open winecfg and find the executable by hand, the long way.
  • Other:

    • Check whether it's a good idea to include the Wine Gecko stuff in the package somewhere rather than have Wine get it off the internet (we could put it in, say, /usr/share)
    • File bug reports for the missing 64 bit libs (currently libs in the libssl package (libssl and libcrypto), likely another related to language stuff based on an email I got from a Polish guy.
      • (./) libssl is in Gutsy

      • still not sure of the other missing libs (though, libjack may be one of them according to an email)
    • 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.
    • 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.

    • The pptview package needs to be available on amd64 arch now that Wine is

Miscellaneous tasks for myself:

  • Nano, not vi, needs to be the default text editor for console programs throughout universe. A good example is mutt - a fairly intuitive program, until the user attempts to send an email with it and then gets dumped into a command line vi editor, where I myself couldn't even figure out how to save and quit after about 20 minutes of work.
  • 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'd be the 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.
  • Pidgin-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 Pidgin 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.

  • It would be really neat if Pidgin had a feature where if you didn't read a message it would store it for when you log back in and show it to you. On many occasions I've heard an IM beep but didn't read it because I was in a full screen game, only to have something crash or my computer get turned off without ever reading the message. After that point the only way I can tell what it was is to search through EVERY log of someone who might have contacted me.
  • Get bacula on the add/remove programs list.

Other interests

  • 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. I'm completely willing to work pursuing bounties for the specs I've created.
  • I enjoy reading and writing short essays. Powerful writing is like a clear interface. You stop noticing the words, and instead just get the ideas.

Recently finished tasks

  • (./) 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. * (./) Prepare for FOSScamp

    • (./) Ask how to handle the 6 different ways of opening an executable with/without Wine (below).

  • (./) 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

  • (./) Move 32 bit stuff in /usr/lib to /usr/lib32 in 64 bit package.

  • (./) 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.

    • (./) The package now has .desktop files for these, but they need icons. There might be too many .desktop files now, in fact - users don't need regedit, wine file, notepad, etc. Really, all we need is winecfg and the uninstaller.

  • (./) There also needs to be a "browse virtual windows drive" option that opens the .wine/drive_c/ folder in nautilus (and not Wine explorer).

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


CategoryHomepage