lmacken / liveusb-creator

A cross-platform tool for easily installing Fedora on to USB flash drives and SD cards.
http://fedorahosted.org/liveusb-creator
GNU General Public License v2.0
140 stars 47 forks source link

UI improvements #16

Closed mairin closed 8 years ago

mairin commented 9 years ago

Hi, some folks on the Fedora design team (myself and Garrett) saw complaints about the LiveUSB Creator UI on twitter and we had an ad hoc design session to revamp the UI. The main use case we focused on was users new to Fedora but it also includes support for knowledgable veteran users and testers.

The repo we created for our mockups is here: https://github.com/fedoradesign/liveusb-creator

I am attaching a bitmap snapshot of our latest version of the mockups as of today.

We had several research questions that could change some of the UI decisions in these mockups:

1) is persistent storage bad bc the unreliability bc of shakiness of filesystem or is it because of the shakiness of the hardware?? (if hardware, we suggest making persistent storage layer of all free space by default; if software we suggest not offering persistent storage at all and users wanting it can set up on command line or manually.)

2) how much extra time does it take to create the persistent storage? can it be sped up? (if it takes too long, don't set it up by default. if it can be sped up, set it by default given 1) checking out.)

3) is there any metadata available from isos besides their filename? it could be useful to filter the UI to only display live isos or only display live and os installer isos.

4) is it possible to write out to disk while download in progress? could save time... if interrupted or stopped for too long, could restart if needed?

liveusb-creator_mockup-05feb2015

lmacken commented 9 years ago

Awesome, I love it! I've definitely been itching for a proper wizardy UI for a while now.

/cc @MartinBriza, since I saw that he has started making some UI tweaks in his branch: https://github.com/MartinBriza/liveusb-creator

1) From what I remember, the persistent storage in it's current incarnation is bad because of the shakiness of the device-mapper overlay file that is used. Once it fills up: :boom:, and there is nothing in place to monitor/manage it.

IIRC, years ago we were thinking that once unionfs got merged into the kernel, it could potentially solve this issue, but it's not something that anyone has looked into in a while. IMO it is still worth solving, as the destructive dd method still leaves a lot to be desired.

To work around the overlay instability, I think some of the Sugar folks mentioned that they were just using Anaconda to install directly to the USB key, which seems reasonable.

2) As long as it takes to 'dd' a file of that size. Since vfat apparently cannot handle sparse files, using a non-FAT filesystem by default will probably speed up the creation of it. https://github.com/lmacken/liveusb-creator/blob/develop/liveusb/creator.py#L264-L270

3) It should be pretty easy to filter by product or type of image (live/netinst/dvd). The code that scrapes the releases is here: https://github.com/lmacken/liveusb-creator/blob/develop/liveusb/releases.py

4) Are you talking about writing the image to the device while it's downloading? It's technically possible, but I think verifying the checksum of the entire ISO after it's fully downloaded is pretty important. It's our first line of defense against random/obscure errors :)

lmacken commented 9 years ago

Thinking about #4 a little more, it would be simple to calculate the checksum on the fly while downloading+dd-ing, and upon completion we would know if it was valid or not.

MartinBriza commented 9 years ago

Please also note there has been a design by the GNOME design team, seen at https://github.com/gnome-design-team/gnome-mockups/tree/master/USB-boot-creator , which I have already started implementing. The state from about a week ago or so can be seen here: https://mbriza.fedorapeople.org/liveusb.ogv .

lmacken commented 9 years ago

I pushed the latest new ui work to the feature/new-ui branch on Github and fedorahosted. It looks great so far :+1: https://github.com/lmacken/liveusb-creator/tree/feature/new-ui

@MartinBriza, I added you as a collaborator to my github repo, and gave you commit rights to the fedorahosted git repo. I've been keeping both in sync, so feel free to commit directly to either if it makes things easier.

MartinBriza commented 9 years ago

Thank you, Luke, I'll continue committing to your repository instead. I hope occasional force pushing and rebasing is permitted, especially in the finishing stage of the change - to clarify the process of the rewrite and not spam the git history.

MartinBriza commented 9 years ago

Referencing #18 , please let's discuss the further development there.

lmacken commented 8 years ago

Closing this issue, as the new-ui branch has now been merged into our main develop branch.