Ah. A Break.

So I was going to post every day then, I figured once a week, and I kept pushing it off. My excuses. I was tired. I was busy with school. It is better to get work done on a project then write about it (In reality there is a balance, but this is a list of excuses). Finals week. Oh and looking for summer internships…. Anyone interested in hiring me?

Well I actually have gotten a lot done over the last few weeks. So here it goes:
School:
At WPI we are on a strange 4 quarter like system, except unlike most quarter systems, the regular year is four quarters, and then if you also want summer school there is a 5th quarter. Think of it like a semester based school and cut each one in to two. The result is a very fast paced school where each term is only 7 weeks long. We just had our Finals Week last week, and what a week that was. Started off with a Discrete Math final Tuesday, which is one of the more challenging math classes I have dealt with and I have gone through multi-variable calculus and differential equations. The reality though is that I actually enjoyed the class, and it has give me a new perspective on how I analyse some of the software that I write. Then on Thursday I had my Chemistry final which in reality was not that hard, I just could not remember the name of one of the quantum principles. Then Friday it was my Intro to Electrical and Computer Engineering final and well as the lab test for Chemistry, both went fine, but also kept me busy until the end of the week.

My professor for my ECE class asked me and another student to work with him on a project that is targeted at creating a system for allowing students to program PIC processors using only MATLAB and a very inexpensive programmer with a USB interface. This turns out to be a somewhat complex problem, MATLAB and Microchip have some tools that work with each other but they are focused on the higher end ds chips that are askew of the target of this project. So in someways we are starting from scratch.
There is a product from MATLAB called embedded toolkit and realtime toolkit. These allow for MATLAB code to be converted to C code but is targeted for higher level systems, and adds a fair amount of overhead to deal with the abstractions of MATLAB, including dealing with infinite numbers.
We also wanted to keep this as open as possible and cheap as possible, so we have been working on the SDCC GPL compiler that works with PICs along side the GPUTILS a PIC linker and assembler, so far its looking like a great set of tools to work with. We will be creating a set of abstraction MATLAB libraries to allow people to make simple calls to start a PWM, ADC, DAC, Timer, etc… without worrying about the low level hardware configuration. Idea if you know MATLAB you can program a PIC.
Hopefully this can get ported to the SCILAB opensource tool as an alternative to MATLAB.
I am this week working on creating the actual programmer which is based on a PIC18F14K50, which will look like a RS232 to the computer, but will allow for hex files to be streamed into other PICs, or even stored in flash on the programmer for later hostless programming.

I plan to write more on this as the week goes on and I get a chance to deal more with it.

The other project AMQP. There has been progress on this, and I am moving forward, I got resources for working on this allocated from Fedora, and have built a simple Bugzilla publisher. I am still very unhappy with the API for working with Bugzilla aka (that stack of perl crap), but it’s what I have to work with. All of the work with the AMQP bus is being handled by this awesome framework that Luck Macken has written called Moksha.

To send a message all I have to do is:

from moksha import hub

ahub=hub.MokshaHub()
ahub.send_message('org.fedoraproject','a message')
ahub.close()

and to receive them

from moksha.api.hub import Consumer
from moksha.hub.reactor import reactor

class BugzillaConsumer(Consumer):
topic='org.fedoraproject.bugzilla.#'

def consume(self, message):
print message['topic']
print message['body']

bzconsumer = BugzillaConsumer()
reactor.run()

I am going to be working on writing some basic metrics front ends for fedora community this week. I will post a link to them when I have something up and running.

In other news…
I am in the Kansas City area, flew on United. That was a mistake, my legs do not fit in the seats, and I was not about to pay an additional $100 to rectify the problem. I also got into Chicago about 10 min early, and they did not have a gate open for us so we waited until we were 30 min late and half the people on the plane missed there flights. I just made it to mine, but my bag was not with me when I got to Kansas City. They did manage to deliver it that night which was nice.

It is nice to see all the grandparents, aunts, and cousins. Even to a trip up to Iowa and had “Dinner” in a local restaurant. Things have certainty changed everyone in there knew everyone else. One conversation would start at one end and then others would start gossiping about it. There certainly is something special about it, but I think I will stick to city life.

Road Bike racing season is starting up, I am looking forward to it, but at the same time a little worried that I may not be able to make it to many races as I have decided to take an additional class this coming term. We will see how it all turns out.

Oh and I am committed to blogging once every week at a minimum, I am going to try to be a little more frequent then that.

GSOC just opened up for mentoring organizations. Looking to perhaps snatch something up there.

Life, Love, World

Brennan Ashton

Advertisement

~ by Brennan Ashton on March 8, 2010.

4 Responses to “Ah. A Break.”

  1. [...] Read the rest here: Brennan Ashton: Ah. A Break. [...]

  2. What about the Bugzilla WebServices API would you like to see changed or improved?

    -Max

  3. Max,
    Thanks for reading that. Sorry if I bashed Bugzilla a little, I do think it’s the best thing out there right now. My issue with the API is that I like to tie into actions on bugs to create metrics, and tools, but I find that my scripts that use xmlrpc frequently fail for a variety of reasons, some of these may have to do with the configuration of Bugzilla, or left over issues in data that have been fixed by newer releases.
    To be a little more specific. I had a script that needed to look at all bugs that had been changed over a few days, well there are times where massive bug changes have happend, such as moving all bugs that are part of one product to a different one. I try to break this in smaller queries by time, but the buglist will be too long for bugzilla and I have found no way to work around this. Leaving me with no way to get the info I want.

    The other is I have found bugs that somehow have gotten bad data in them an bugzilla is unable to return content from that bug (it was a generic http error, the exact case escapes my mind it was a year ago), my guess is this has to do with Unicode characters in comments but I do not know.

    Also I would love to have a push hook for Bugzilla, which is what I am trying to by building a amqp shim for bugzilla that relies on the xmlrpc. I have just found that the error cases I have to build for it can get large, as well as I find I rely on parts of the WebService API that are marked unstable (bug history for example).

    Anyway thanks for your work, don’t take what I said at all personally. I wrote that after spending a significant amount of time trying to debug an infrequent failure.

  4. Hey Brennan. Thanks for the feedback! I don’t take it personally, don’t worry. :-)

    Hmm, the buglist would be too long for Bugzilla in what way? Were you using buglist.cgi to get the data, or Bug.history/Bug.search and there was just too much data and it never got it back to you? The Bug.search WS function has limit/offset arguments (at least in Bugzilla 3.4, it does, I think)–perhaps it’d be best to just page through the data that way.

    Bugzilla should never throw a 500 just because of data in the database–it should theoretically be able to handle anything. There is a known issue that one particular Unicode character causes Perl to crash, so it possibly could be that. If it’s that, you wouldn’t be able to view the bug in the browser, either. But if it’s not that, it might be a bug in Bugzilla or SOAP::Lite, and we should probably investigate it.

    As far as the push hook goes, probably what you’ll want to do is to upgrade to Bugzilla 3.6 and then use the Bugzilla::Extension system to hook into Bug updates. The Extension system is documented here:

    http://www.bugzilla.org/docs/3.6/en/html/api/Bugzilla/Extension.html

    Although Bugzilla 3.4 does also have a code hooks system, documented here:

    http://www.bugzilla.org/docs/3.4/en/html/api/Bugzilla/Hook.html

    And it looks like 3.4 did have a bug-end_of_update hook, so you could possibly use that.

    -Max

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.