GSoC 2014 Friday Report #17

Todo This Week

  • Test udev-configure-printer changes
  • Send patch to Till on Sunday or Monday
  • Fix “file too large” print error in ippusbxd
  • Make ippusbxd respect vid, pid, and serial arguments

Completed This Week

  • Path sent to Till
  • Completed all but one TODO
  • Ippusbxd now respects vid, pid, and serial

Todo Next Week

  • Implement the one remaining TODO
  • Debug auto condif
  • Debug “file too large” print bug
  • Explore dbus based on-demand starting

I hope no one minds if I continue friday reports until I’m happy with the debugging. I passed the final GSoC checkpoint (thanks James!). We have a few weeks until Ubuntu freezes for release but I hope to get everything solid in a week or two.

GSoC 2014 Friday Report #16

Todo This Week

  • Practice presentation 2 more times
  • Attend OpenPrinting Summit in Toronto
  • Present ippusbxd at summit
  • Make udev-configure-printer startup ippusbxd on printer plugin
  • Make udev-configure-printer create cups queue for printer
  • Make udev-configure-printer edit any exisiting queue’s uri to match new port number on re-insertion

Completed This Week

  • Attended and presented at OpenPrinting Summit
  • Wrote code for all needed udev-configure-printer functionality

Todo Next Week

  • Test udev-configure-printer changes
  • Send patch to Till on Sunday or Monday
  • Fix “file too large” print error in ippusbxd
  • Make ippusbxd respect vid, pid, and serial arguments

Hello from several thousand feet in the air! I’m writing this on my flight back from the OpenPrinting Summit. It was a awesome to meet so many people from the printer industry. Everyone had awesome stories and it was nice to chat about the printing world.

I’m pretty sure everyone there had more programming experience than I’ve been alive. So thanks for putting up with my reckless behavior like not checking that the alarm before going to bed.

I’ve written a good volume of code over the week to enable startup of ippusbxd through udev rules. This meant extending the existing udev-configure-printer to detect ippusb printers, startup ippusbxd, and disable & enable ippusb print queues. Most of this is string manipulation so writing it was easier than ippusbxd’s complex http state machine and usb & tcp handling. Thus I managed to churn out about 500-800 lines despite ippusbxd’s 1300 lines have taken all summer.

I need to get the working udev-configure-printer patch to Till within a day or two so he has time to push it before feature freeze. I still must test and debug my patch but I think I will make that deadline.

 

 

GSoC 2014 Friday Report #15

Todo This Week

  • Start integrating ippusbxd with usb-config-printer
  • Nail down sub topics for presentation on Monday
  • Create slides
  • Practice presentation 3 times
  • Send Ira slides
  • Ask Ira if the projector uses HDMI
  • Ask Eric for permission to relicense

Completed This Week

  • Started integrating ippusbxd with usb-config-printer
  • Nail down sub topics for presentation on Monday
  • Created slides
  • Slides sent to msweet and online
  • Presentation practiced 3 times
  • Send Ira slides
  • Projector uses vga, but I can stream demo over webex
  • Eric said okay to relicense

Todo Next Week

  • Practice presentation 2 more times
  • Attend OpenPrinting Summit in Toronto
  • Present ippusbxd at summit
  • Make udev-configure-printer startup ippusbxd on printer plugin
  • Make udev-configure-printer create cups queue for printer
  • Make udev-configure-printer edit any exisiting queue’s uri to match new port number on re-insertion

Till emailed me last week to mention that Ubuntu 14.10’s feature freeze is the 21st. I should have looked it up before hand so I’m thankful that he told me. I had it in my head that there would be an extra week or two I could work on udev-configure-printer after the OpenPrinting Summit. Instead I need to get that done the week of the Summit.

My plan is work over the weekend since one weekend of working should not be a burnout risk I think. Still I hope no one minds if I sit in the back of the room on my laptop during some of the presentations.

GSoC 2014 Friday Report #14

Todo This Week

  • Fix the rest of the things

Completed This Week

  • Printer’s embedded website now works 100%
  • Submitting print jobs now works 100%

Todo Next Week

  • Start integrating ippusbxd with usb-config-printer
  • Nail down sub topics for presentation on Monday
  • Create slides
  • Practice presentation 3 times
  • Send Ira slides
  • Ask Ira if the projector uses HDMI
  • Ask Eric for permission to relicense

Awesome success this wekk. Everything works and the driver itself is pretty rock-solid. Perfect to demo at the OpenPrinting Summit / Printer Working Group Face2Face / 3D Printing Birds-of-a-feather.

I’ve also decided to relicense under Apache 2.0. I still like strong copyleft but I might as well compromise on my principles since it might get ippusbxd into more platforms. Who knows? Maybe Microsoft will ship it in Windows.

GSoC 2014 Friday Report #13

Todo This Week

  • Fix things

Completed This Week

  • Several things have been fixed

Todo Next Week

  • Fix the rest of the things

Lots of debugging and testing this week. I found why debugging had been so frustrating:

 // Lose connection to caller
 if (fork() > 0 && !debug_mode) <-- BUG
      exit(0);

There was supposed to be a debug mode which did not trigger the fork. A simple bug caused it to do the exact opposite and fork but skip the exit. Thus creating two processes performing the exact same actions. This explains the bug I mentioned last week where it appeared known data was being forgotten. Instead we were seeing output from the second process which had stolen some data from the usb device. Since neither process had the complete dataset both started staling.

With the phantom bug gone the remaining code is acting more logical. I have found it much easier to think about the program now that it does the things the code says it will. Now I can trace a set of request & responses and see when data is being mangled or dropped then review the codepath and find the cause.

The two week deadline I set last week is feeling achievable now.