Blogs

A USB Video Driver for High-end Webcams (GSoC Proposal)

Blog post by gabriel.hartmann on Mon, 2011-05-02 03:04

As part of the Google Summer of Code I'll be working on developing a driver for Haiku that allows for the use of high-end webcams. By high-end webcams I mean in this case those which adhere to the USB video device class (UVC) specification. Preliminary work will involve bringing Haiku's support for the Enhanced Host Controller Interface (EHCI) to a point where UVC driver development proper can begin. Understanding the state of EHCI support and what work needs to be done in order to begin UVC development is my major goal for the community bonding period.

UVC development will entail the detection and exposure of camera features via Haiku's media kit. This will require (if I understand correctly) the production of a node with an attendant ParameterWeb which will hold the actual feature definitions. Then ideally any interested application will be able to issue commands to a UVC compliant camera and receive back appropriate responses in the form of image frames or video streams in various formats and resolutions, or status reports depending on the camera. The primary test camera will be a Logitech Quickcam Pro 9000 which supports a fairly wide range of resolutions, contains a microphone, and has a hardware button (presumably for taking still photographs). I have also noticed during the course of some computer vision research with the camera that it has what appears to be a hardware driven exposure compensation feature. There is also a similar feature exposed through the Windows Logitech driver software, but when this is turned off some exposure compensation still occurs. It will be intersting to see whether this feature is genuinely rooted in the hardware or is a result of hidden propietary Logitech software.

GSoC Introduction: ZFS Port

Blog post by GeneralMaximus on Sat, 2011-04-30 18:08

I'm Ankur Sethi, a 20 year old hacker from New Delhi, India. I mostly program in Python and Objective-C (on Mac OS X/iOS). This summer, I will work on porting ZFS to Haiku as part of Google Summer of Code 2011. My proposal lives here.

ZFS is a combined file system and logical volume manager built by Sun Microsystems (now Oracle) for OpenSolaris. Besides having a 'Z' in the name -- which automatically grants it +100 awesome points -- ZFS sports a feature set that will enable developers to build some incredibly neat applications on top of Haiku. For example, ZFS supports files and volumes up to 16 exabytes in size. It is designed from the ground up with a focus on protecting data from silent corruption (bit rot, cosmic radiation, etc.) Thanks to its copy-on-write nature, creating snapshots on ZFS is quick, easy and cheap, which takes the pain out of creating backups. This Wikipedia article does a better job than I ever could of describing why ZFS is, as Oracle's marketing department will be happy to let you know, the last word in filesystems.

I will be spending the Community Bonding period studying how the FreeBSD port of ZFS and zfs-fuse work. I will also be reading some of the available literature on ZFS. Once the coding period starts, I will use this blog to keep everyone updated on what I'm doing.

Looking forward to a great summer :)

GSoC Introduction: VirtualBox Guest Additions

Blog post by scgtrp on Fri, 2011-04-29 11:45

Hello. I'm Mike and I'll be porting part of the VirtualBox guest additions to Haiku. My full proposal is here, but briefly, the features I plan to port include:

  • Mouse pointer integration
  • Shared folders
  • Shared clipboard
  • Time synchronization
  • An improved video driver
  • Guest control (executing commands on the guest from the host)
  • Guest properties

During the community bonding period I plan to spend a bit of time reading more code and discussing with the developers to learn more about how things work in both Haiku and VirtualBox. I also plan to play with mmu_man's patch to get it to work with the latest versions of VirtualBox and Haiku so that I have a working base to start from when the coding period starts.

GSOC Introduction: Jrabbit, Batisseur and you

Blog post by jrabbit on Thu, 2011-04-28 23:45

I'm Jack (Jrabbit). I am a python hacker.

Bâtisseur is a broad system for making Haiku package development simple and quick. It will borrow concepts from OpenSuse Build and Canonical's Launchpad [Specifically Soyuz]. Some documents pertaining to it can be found in this repo. The end goal will be a modern build system for packages that can scale up or down and a system of achievements for participating in it.

Whats happening now

During the community bonding period I will be working with the new hpkg_builder tool to make sure it's ready for hackage. I will be working with the core team to look at buildbot deployment and such. Also I will be trying to get some of my web tools I wrote for haiku put up on haiku-files.

GSoC Project : Services Server And Contacts API

Blog post by Barrett on Thu, 2011-04-28 21:05

Unlike most students i'm not new to Haiku, i've already contributed around the Haiku community, maybe you can remember me for my work on Caya (msn plugin). Not by chance my gsoc project is somehow related to Caya (and every app that expose contacts).

The fundamental idea is to provide a core set of classes with the aim of contacts integration into the system.
The basic idea around the entire project is fairly simple in theory : The api should be easily extendable.

Originally, my idea was to provide an API for Person/People files only. The developers, which have a more large vision of the whole system, have warned me about it in discussions, providing very useful suggestions. The resulting proposal is interesting, and i hope you will enjoy it.

Services Server
The services server at the end of my work will only host add-ons, in future it will provide the necessary infrastructure to keep in sync contacts between different services (including contacts merge).

Services Addons and Contacts translators
The Services Add-ons will be used to extend the system functionalities, a contacts "provider" addon will be located here. As demonstration for the api will be created a Google Contacts addon. However, and addon will have the possibility to work as "consumer", i.e. it will only pubblish contacts in a defined manner.

The "Contacts translators", are Haiku translators used to provide independent support for different contacts files, i will create two translators : vCard and People. These translators will never used by the final programmer, in fact, this is the first brick (providing the low level functionalities) of the whole "Contacts kit".

BContact And BContactRoster
BContact is the high level class (the class will use BContactFile internally), used to store and represent the contact (and their fields) in memory. It will be more generic as possible.

BContactRoster will make use of the Services add-ons. There will be add-ons used to store the files in a specified manner, one of these addons will be the People address book, that will store contacts in /boot/home/people as People files or pubblish them depending on the user's settings.

My Community Bonding Period

I'm planning to begin research about my project around the 10th may. During this time i want to do only two things :

  • Look into Haiku translators and make design/plans about them
  • Design the BContact and BContactRoster classes

Since i have already a know-how about the BeAPI and Haiku's sources, fortunately there's no need to lose time into preliminary things. Instead i want to prepare all ingredients to make the programming aspect nice and without hitches, i will also talk with mentors since i understand that design is the most difficulty part of this project and i am sure the experience of the devs will be useful.

GSoC work schedule

Blog post by jalopeura on Wed, 2011-04-27 08:21

During most of GSoC, I will be in Faro, Portugal, where I am finishing my Masters. However, I will travel to Santa Rosa, California to visit family for five weeks in June and July.

Time Zones:
Mon 25 Apr - Thu 16 Jun: Western European Summer Time (UTC+1)
Fri 17 Jun - Thu 21 Jul: Pacific Daylight Time (UTC-7)
Fri 22 Jul - Fri 26 Aug: Western European Summer Time (UTC+1)

During GSoC, there are several days when I will be unable to work. I will make up this time by working extra before and/or after. Since I plan to budget my time so I am mostly working on weekdays, I can work some weekends to make up for these days.

  • Bonding period: 25 Apr - 22 May
    • Mon 2 May - Thu 5 May: Classes
    • Sat 14 Jun - Mon 16 Jun: Out of town; reduced internet access
    • Tue 17 May - Thu 19 May: Classes
    • Wed 18 May: Thesis due
    • Fri 20 May - Sun 22 May: Out of town; reduced internet access
  • First quarter: 23 May - 12 Jun
    • Thu 26 May - Wed 1 Jun: Out of town; reduced internet access
      My wife will be showing some guests around the Lisbon area; I will have my laptop so I can work. I have a Mobile Broadband key so I can still get online, but it's expensive so I can't stay online all day.
    • Wed 8 Jun - Fri 10 Jun: Thesis presentation and defense
      I am expected to be there all three days and watch the presentations of the other students in the program. I will not be able to work at all during these days. (Well, perhaps an hour or two in the evening.)
  • Second quarter: 13 Jun - 10 Jul
    • Thu 16 Jun - Fri 17 Jun: Travel to California to visit family
      I might be able to work on the plane, but it seems unlikely, since I'll be travelling with two small children.
    • Mon 4 Jul: Family obligations
      I will not be working. Extended family will be coming in from other parts of the country specifically because we will be there. (We have not been back to the US for two years.)
  • Third quarter: 11 Jul - 31 Jul
    • Thu 21 Jul - Fri 22 Jul: Return to Portugal
      Again, I will most likely not be able to work while travelling.
  • Fourth quarter: 1 Aug - 22 Aug
    • No conflicts foreseen.

Excluding the bonding period, this is a total of 8 weekdays when I will not be working, and 5 weekdays/2 weekend days of possible reduced internet access when I will be able to work but largely unavailable.

Language Bindings for the C++ API

Blog post by jalopeura on Wed, 2011-04-27 08:06

My project will expose the Haiku API to scripting languages. During GSoC, I will focus on enabling the creation of GUI apps; this will include large parts of the Interface Kit and some essential classes from the Application Kit. I will target Perl and Python as the scripting languages.

(After GSoC, I would like to support other languages as well, and increase the number of classes available from scripting languages.)

A timeline is available by following this link.

During the bonding period, I will be looking at the Python API, with a view to developing a generator to create the code for these extensions from an abstraction language, as an alternative to using SWIG. (I will not make a final decision on whether to use SWIG until I have determined whether it is feasible to use a custom-built generator within the GSoC time frame.)

Syndicate content