Project
This summer the project is developing a userland driver for ipp class usb devices. At the most basic level this involves proxying http between usb bulk transfers and tcp. For the real world we also need the usb subsystem to auto-start us and to notify the spooler of the new printer.
I have taken the liberty of naming said new driver ippusbd. My high-level design goals are, in order of importance from most important to least:
- Low idle resource usage
- security over the usb interface
- Portability to non-Linux Unixes
Linux’s udev can handle the auto-start. Libusb gives us userland access to the usb device. Till should know how linux’s cups auto-discovery will work. The usb standard itself is well written and I enjoyed reading it.
Timeline
In theory Google Summer of Code does not start for another 20 some days. This official timeline is driven by the american university’s semester dates. In Canada our universities let out almost a month earlier. Thus I’m taking the extra month to work ahead.
I hope to have ippusbd printing by the mid-summer review. The summer’s second half can then get spent polishing and porting ippusbd to the BSDes.
Workstation
This summer I’m trying out a standing desk setup. I’ve borrowed my sister’s room while she is in germany so I get a work room. My hope is having a separate room will let me focus better. When I was at microsoft getting things done was easy since the office created a physical seperation between play time and work time, this might replicate that.
The setup consists of two laptops, a Lenovo Thinkpad X1 Carbon, and a Lenovo Ideapad Yoga 2. The Yoga has a touch screen and the X1 gets the full keyboard and mouse. Together they create something like the multimonitor setup I have downstairs.