Proposal : Integrating support libraries into Debian and fixing issues in BoneScript

Short description: This project aims to package support libraries for working with Python, Perl, Ruby, Lua and Go on the BeagleBone to Debian. The documentation and code samples will be added to bone101. gpio-keys will be used for interrupt events instead of epoll in BeagleScript. [Work in progress]

About your project

  • What is the name of your project?
    I will be working on integrating support libraries into Debian and a fixing a few bugs as suggested by Mr. Kridner.

  • Describe your project in 10-20 sentences. What are you making? For whom are you making it, and why do they need it? What technologies (programming languages, etc.) will you be using?

  • My primary task is to expand BeagleBone support for various programming languages.

  • I had spoken to Alexander Hiam and he has a page listing various libraries at https://github.com/alexanderhiam/PyBBIO/wiki/Similar-projects

  • I will be packaging pyBBio, beaglebone-ruby and bonelib for Debian - as listed on the ideas page
    hwio - ‘Go library for hardware I/O control, in the programming style of Arduino’

  • luaBBIO - For using lua on BeagleBone

  • Adafruit_BBIO - Adafruit’s BeagleBone IO Python Library

  • rbone - Develop Arduino-style applications for BeagleBone in Ruby

    I will add documentation and examples for the above libraries to bone101 and the Beagleboard.org community page.

  • Apart from this, I will be fixing a few minor bugs in BoneScript

  • Migrate to gpio-keys for input events

  • eeprom code in eeprom2 branch lacks checks

  • Blank EEPROM before writing to it

I’m making this to expand the userbase of BeagleBone. I’m hoping to make it easier for Python, Perl and Go programmers to work on embedded software. Packaging and maintaining these libraries would entice them to pick BeagleBone.

  • What is the timeline for development of your project? The Summer of Code work period is about 11 weeks long; tell us what you will be working on each week.

  • GSoC coding period starts on May 19 and ends on August 10 comprising a total of 12 weeks.

    Upto May 18 (Community Bonding Period): Collect a list of more small bugs and code that needs to be packaged into Debian.
    May 19 - June 8 (Week 1 - 3): Package pyBBIO and bonelib
    June 9 - June 22 (Week 4 - 5): Package beaglebone-ruby
    June 23 - June 29 (Week 6): Documentation, code-cleanup and midterm evaluation
    June 30 - July 13 (Week 7 - 8): Make input events use gpio-keys
    July 28 - August 3 (Week 11): Buffer period - to handle any hiccups in work
    August 4 - August 10 (Week 12): Documentation, code-cleanup and final evaluation

  • Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. Provide references such as professors who know your work if you like. Please feel encouraged to visit our IRC channels, #beagle and #beagle-gsoc on irc.freenode.net, and ask for help.

    I have worked with both the RPi and BBB and was blown away by BBB’s IO capabilities. I’ve worked on a few projects involving robotics, ROS and rudimentary home automation on the BBB.
    I’m very excited to work with the BeagleBoard team!

    I successfully completed the Google Summer of Code program in 2011 and 2012.
    In 2011, I worked on PiTiVi which is a GStreamer based video editor written in pythong. I worked on building a GUI to export video to predefined formats and also upload to video services YouTube, Vimeo and DailyMotion.
    In 2012, I worked on Vidalia which is a Qt GUI for Tor. They were separating it into core and plugins. I wrote the PluginEngine and plugins for bandwidth management. I worked with C++ and QtScript which is based on ECMAScript scripting language (like JavaScript).
    I also know how to package for Debian and I’ve done a test package. I would like to remain as the package maintainer after GSoC

https://gitweb.torproject.org/vidalia-plugins.git/search?s=Feroze+Naina;st=author
https://gitweb.torproject.org/vidalia.git/search/refs/heads/alpha?s=Feroze+Naina;st=author

You and the community

  • If your project is successfully completed, what will its impact be on the BeagleBoard.org community? Consider who will use it and how it will save them effort. Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers received from feedback of members of the BeagleBoard.org community, at least one of whom should be a BeagleBoard.org GSoC mentor. Provide email contact information for non-GSoC mentors.
    This would make it easier for Python, Perl, Ruby and Go programmers to get started quickly on BeagleBone and BeagleBoard

  • What will you do if you get stuck on your project and your mentor isn’t around?
    If my assigned mentor isn’t around, I will try and contact the other listed ‘possible mentors’. If they too are unavailable, I will ask around in the #beagle IRC channel and the beagleboard google group.

Miscellaneous

  • Please submit to the beagleboard-gsoc mailing list a statically-linked ARM Linux “hello world” style executable that prints out your name and the date. Please keep it under 1MB. Provide a link here to that executable as archived on the mailing list and provide any instructions required for invoking it. You are welcome to test it on an ARM QEMU environment. Please feel free to visit our IRC channels, #beagle and #beagle-gsoc on irc.freenode.net, and ask for help.
    I forked the gsoc-application repo from jkridner, made the changes, cross-compiled and tested it in QEMU. I’ve pushed the repo to https://github.com/feroze/gsoc-application

  • Is there anything else we should have asked you?

    I have contributed to Tor and I understand how to collaborate with mentors in different time-zones. I will keep the mentor updated with weekly reports. I will also post the report on the BeagleBoard google group and get feedback from users.

    I will also maintain the packages after the GSoC period.

I’m trying to club together smaller projects to make it fit in the GSoC timeline. I know it appears like I’m spreading myself too thin over multiple projects.

I’ve already got review from Mr. Kridner. I will be adding a few more BoneScript tasks after consulting with him. I need to find a mentor for the Debian packaging. I can also add another small coding project to the timeline - LCD libraries for pyBBIO sounds interesting.

If you have suggestions for packaging any other libraries, please do tell :slight_smile:

Short description: This project aims to package support libraries for working with Python, Perl, Ruby, Lua and Go on the BeagleBone to Debian. The documentation and code samples will be added to bone101. gpio-keys will be used for interrupt events instead of epoll in BeagleScript. [Work in progress]

It might be nice to summarize this as packaging, debugging and documenting high-level support libraries for BeagleBone in Debian image, including all of the things you list and probably ‘libsoc’ as well. I believe libsoc is already in the Debian feeds and some of the others might be as well. By including the ‘debugging’ in the description, there is a lot of room for flexibility in addressing various needs in the various projects, such as the gpio-keys issue you mention for BoneScript.

About your project

  • What is the name of your project?
    I will be working on integrating support libraries into Debian and a fixing a few bugs as suggested by Mr. Kridner.

I highly encourage you to engage additional mentors to get feedback on what types of libraries people are using and what issues need to be addressed in them beyond the packaging.

  • Describe your project in 10-20 sentences. What are you making? For whom are you making it, and why do they need it? What technologies (programming languages, etc.) will you be using?

  • My primary task is to expand BeagleBone support for various programming languages.

  • I had spoken to Alexander Hiam and he has a page listing various libraries at https://github.com/alexanderhiam/PyBBIO/wiki/Similar-projects

This is great. You might also take a quick look at https://www.npmjs.org/search?q=beaglebone

I’m making this to expand the userbase of BeagleBone. I’m hoping to make it easier for Python, Perl and Go programmers to work on embedded software. Packaging and maintaining these libraries would entice them to pick BeagleBone.

  • What is the timeline for development of your project? The Summer of Code work period is about 11 weeks long; tell us what you will be working on each week.

  • GSoC coding period starts on May 19 and ends on August 10 comprising a total of 12 weeks.

    Upto May 18 (Community Bonding Period): Collect a list of more small bugs and code that needs to be packaged into Debian.
    May 19 - June 8 (Week 1 - 3): Package pyBBIO and bonelib
    June 9 - June 22 (Week 4 - 5): Package beaglebone-ruby

Once you know how to do packaging, do you think that packaging up a Ruby library will take so much longer?

  • June 23 - June 29 (Week 6): Documentation, code-cleanup and midterm evaluation
    June 30 - July 13 (Week 7 - 8): Make input events use gpio-keys
    July 28 - August 3 (Week 11): Buffer period - to handle any hiccups in work
    August 4 - August 10 (Week 12): Documentation, code-cleanup and final evaluation

  • Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant. Provide references such as professors who know your work if you like. Please feel encouraged to visit our IRC channels, #beagle and #beagle-gsoc on irc.freenode.net, and ask for help.

    I have worked with both the RPi and BBB and was blown away by BBB’s IO capabilities. I’ve worked on a few projects involving robotics, ROS and rudimentary home automation on the BBB.
    I’m very excited to work with the BeagleBoard team!

    I successfully completed the Google Summer of Code program in 2011 and 2012.
    In 2011, I worked on PiTiVi which is a GStreamer based video editor written in pythong. I worked on building a GUI to export video to predefined formats and also upload to video services YouTube, Vimeo and DailyMotion.
    In 2012, I worked on Vidalia which is a Qt GUI for Tor. They were separating it into core and plugins. I wrote the PluginEngine and plugins for bandwidth management. I worked with C++ and QtScript which is based on ECMAScript scripting language (like JavaScript).
    I also know how to package for Debian and I’ve done a test package. I would like to remain as the package maintainer after GSoC

https://gitweb.torproject.org/vidalia-plugins.git/search?s=Feroze+Naina;st=author
https://gitweb.torproject.org/vidalia.git/search/refs/heads/alpha?s=Feroze+Naina;st=author

You and the community

  • If your project is successfully completed, what will its impact be on the BeagleBoard.org community? Consider who will use it and how it will save them effort. Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers received from feedback of members of the BeagleBoard.org community, at least one of whom should be a BeagleBoard.org GSoC mentor. Provide email contact information for non-GSoC mentors.
    This would make it easier for Python, Perl, Ruby and Go programmers to get started quickly on BeagleBone and BeagleBoard

  • What will you do if you get stuck on your project and your mentor isn’t around?
    If my assigned mentor isn’t around, I will try and contact the other listed ‘possible mentors’. If they too are unavailable, I will ask around in the #beagle IRC channel and the beagleboard google group.

I know you’ve already reached out to #debian-mentors. It would be good to draw in a mentor from Debian to act as a backup.

Miscellaneous

  • Please submit to the beagleboard-gsoc mailing list a statically-linked ARM Linux “hello world” style executable that prints out your name and the date. Please keep it under 1MB. Provide a link here to that executable as archived on the mailing list and provide any instructions required for invoking it. You are welcome to test it on an ARM QEMU environment. Please feel free to visit our IRC channels, #beagle and #beagle-gsoc on irc.freenode.net, and ask for help.
    I forked the gsoc-application repo from jkridner, made the changes, cross-compiled and tested it in QEMU. I’ve pushed the repo to https://github.com/feroze/gsoc-application

  • Is there anything else we should have asked you?

    I have contributed to Tor and I understand how to collaborate with mentors in different time-zones. I will keep the mentor updated with weekly reports. I will also post the report on the BeagleBoard google group and get feedback from users.

    I will also maintain the packages after the GSoC period.

Nice.

I’m trying to club together smaller projects to make it fit in the GSoC timeline. I know it appears like I’m spreading myself too thin over multiple projects.

I’ve already got review from Mr. Kridner. I will be adding a few more BoneScript tasks after consulting with him. I need to find a mentor for the Debian packaging. I can also add another small coding project to the timeline - LCD libraries for pyBBIO sounds interesting.

If you have suggestions for packaging any other libraries, please do tell :slight_smile:

I hope you get some additional suggestions.

Addressing a few bugs called out in the tracker for pyBBIO could be quite reasonable.

Short description: This project aims to package support libraries for working with Python, Perl, Ruby, Lua and Go on the BeagleBone to Debian. The documentation and code samples will be added to bone101. gpio-keys will be used for interrupt events instead of epoll in BeagleScript. [Work in progress]

It might be nice to summarize this as packaging, debugging and documenting high-level support libraries for BeagleBone in Debian image, including all of the things you list and probably ‘libsoc’ as well. I believe libsoc is already in the Debian feeds and some of the others might be as well. By including the ‘debugging’ in the description, there is a lot of room for flexibility in addressing various needs in the various projects, such as the gpio-keys issue you mention for BoneScript.

Just remembered another key and useful aspect, integrating runners into the Cloud9 IDE. Here’s how I did it for Userspace Arduino .ino sketches:

I’m trying to club together smaller projects to make it fit in the GSoC timeline. I know it appears like I’m spreading myself too thin over multiple projects.

I’ve already got review from Mr. Kridner. I will be adding a few more BoneScript tasks after consulting with him. I need to find a mentor for the Debian packaging. I can also add another small coding project to the timeline - LCD libraries for pyBBIO sounds interesting.

If you have suggestions for packaging any other libraries, please do tell :slight_smile:

I hope you get some additional suggestions.

Addressing a few bugs called out in the tracker for pyBBIO could be quite reasonable.

Actually, the install process is not that great right now (mostly bad error handling/reporting). That kinda goes hand in hand with packaging, so there could definitely be some work improving that.

Short description: This project aims to package support libraries for working with Python, Perl, Ruby, Lua and Go on the BeagleBone to Debian. The documentation and code samples will be added to bone101. gpio-keys will be used for interrupt events instead of epoll in BeagleScript. [Work in progress]

About your project

  • What is the name of your project?
    I will be working on integrating support libraries into Debian and a fixing a few bugs as suggested by Mr. Kridner.

  • Describe your project in 10-20 sentences. What are you making? For whom are you making it, and why do they need it? What technologies (programming languages, etc.) will you be using?

  • My primary task is to expand BeagleBone support for various programming languages.

  • I had spoken to Alexander Hiam and he has a page listing various libraries at https://github.com/alexanderhiam/PyBBIO/wiki/Similar-projects

  • I will be packaging pyBBio, beaglebone-ruby and bonelib for Debian - as listed on the ideas page
    hwio - ‘Go library for hardware I/O control, in the programming style of Arduino’

  • luaBBIO - For using lua on BeagleBone

  • Adafruit_BBIO - Adafruit’s BeagleBone IO Python Library

  • rbone - Develop Arduino-style applications for BeagleBone in Ruby

I looked through the links on the page I sent you, and it looks like most of them except for hwio are kinda dead, with their last commits being 1-2 years old. That includes luaBBIO and rbone. It would probably be best to only include stuff under active development.