Posts Tagged 'tools'

Developing applications for Maemo

When I first got my nokia 770 I intended to develop for it. I had a few ideas of what to write, but discovered apps already existing for just about everything I could think of. I also discovered that it’s not that easy developing for maemo. To write in C you need scratchbox and an emulated environment. It all looked very complicated and I never got into it.
When I got my n810 I figured it would be fun to try and write an app that could render openstreetmap data, as an alternative to maemo mapper which uses pre-rendered tiles. But again I found Navit, already very good.
I thought about getting involved with Navit development. But I have no C experience and the code is somewhat light on comments.

Recently I decided to have a go again. This time I chose to ignore existing apps. The point is to learn, so I have decided to work on my own twitter client. Yes very trendy…there are hundreds around, but only one really for Maemo, which is mauku.
Part of my reason for chosing to write a twitter client is that it’s pretty simple but covers some basics that will be helpful.
Writing a GUI app that displays data and can scroll
calling out to some webservice and processing the response

I figure if I can get those two then I’ll have a good grounding for lots of projects.

The other part of my reason is that mauku has some very annoying ‘features’ which are driving me crazy. Now I could just raise feature requests and bug reports etc. But again, the point is to learn, so I have to start somewhere. At least this way I don’t feel it’s a complete duplicated effort, I will scratch my personal itch and make a twitter client the way I want it.

I started off trying to write a c application. I found esbox which makes the whole developing with scratchbox thing a much nicer prospect than plain text editors. Being an eclipse tool, I feel right at home using it.

I got my C application as far as being able to display a window, with a menu. And in the menu was a fetch tweets option. When selected it would talk to twitter and fetch my friends timeline into memory, then parse each tweet into a simple structure of name:tweet. Which was then inserted into a list in the display. Hurrah.

However C is a horrible language to work in. I just don’t have time to learn memory management etc. I know I should, I know that the potential is to write a much faster application in C. But I got sick of segfaults. I have no idea how to debug C. I am truly a Java boy. Give me stack traces! Trying to debug why my C code would just randomly explode was impossible (for me) It seemed like sometimes something in the reponse from twitter would cause it to segfault. But more likely I was just memory management completely wrong and was just lucky that occassionally it didn’t explode in my face.

So I’ve decided life is too short for C. Instead I’ve moved on to python. I’ve never written any python before, but it at least saves me from managing memory, and it looks like it’s going to be much closer to things I do know, such as perl.

Python can still be developed in ESBOX with pluthon plugin. This basically lets me write an app then use SSH to dispatch it direct to my n810 to run. So I no longer test in a fake environment. It is probably much slower working this way, but the benefit is that I really know that the app runs on the device. Where as I think I’d always have a nagging fear with running in scratchbox that I might hit some difference in how I had it setup to the real device.

So I started my application again. I’ve been able to reuse at least some of what I had learned about GTK development. This is still the area that I know the least about. It took me ages to get to the point I had the ability to display items on the screen, in a TreeView pulling data from a ListStore. Figuring out how to use items that could be added to by triggered methods and generally getting my head around the scope of objects etc.

Having gotten some basic information appearing on the screen, it then took about 30mins to pick uip the liburl2 library and use it to call twitter to get my status feed.

Now I just need to write some code to parse it into some sensible structure and dislpay. I would point out that I have found that someone has already created a twitter API for python which I could just pick up. I’m sure it does way more, way better than my code will. However, I have to remind myself that the point of this exersise is for me to learn, not just for me to glue other peoples code together.
Also I may not bother with a lot of the things I could process from twitter, Instead just writing a fairly minimal application. At least to start with.

First impression of python is that it’s pretty weird the way it uses indentation to imply structure. If you get the indents wrong then the code won’t work. It feels like it was done by someone who got very upset about people having badly formatted code, so decided to invent a language in which the formatting is enforced because that’s the only way the language will work. Not that I have anything against nicely formatted code. But I’d just as soon have an editor do nice formatting for me to suit my preferences.

Once I feel I know what I’m doing a bit more, I shall write up a post with code fragments to explain what I’ve learned. I think if I put up the code I have right now it would just be confusing. I always find that my initial attempts to get something working are very badly commented and horribly structured. At the moment I’m just throwing stuff in based on API doc and examples and I’m not sure I understand the implications of everything yet. Once I understand it, I can comment it and make it presentable.

I’m hoping that given enough time I’ll understand what I’m doing enough that I can start turning out interesting little tools and hacks. And perhaps finally realise my original intention with my internet tablet to do some mobile development.

First steps in a new software project

This week I started a brand new project. This time it’s the start of product development, rather than just an internal project to get something running. And it really is new, so everyone is new and we’re setting up everything from scratch.

So this is my list of things to go from nothing to a fully fledged software engineering project.

Step one, getting the right tools installed for everyone off the bat makes things easier later on. Standardise upfront rather than try to merge half a dozen separate ideas about whats best later.
For this team we will be testing a GUI so Rational Functional Tester (RFT) with Rational Team Concert (RTC) is the basic tool set.

This gives us all the project management tools in RTC, plus source control, and easy collaboration. Then when we get as far as something to test RFT will already be there.

RTC is the best tool I’ve used for starting projects, it lets you start capturing requirements and high level ’stories’ and start hanging individual tasks off of them. Code sharing is very easy, and delivering code changes under tasks makes the project tracking pretty seamless.

Step two, a build server. It’s easy to link into RTC to have a build engine that allows you to schedule builds as frequently as you like. It also allows people to kick off builds of the mainline code plus their ‘local’ changes. So you can build and unit test changes before delivering them to the main codebase. The outline of this can be set up quickly, the detail of full build and kicking off unit tests takes longer but is a top priority.

Step three is a Rational Quality Manager (RQM) server. This can be linked to the RTC server so that it gets notified when builds complete and also allows you to create defects in RTC if tests fail. RTC can then view defects which block test cases. RQM lets you define what environments you will test in, how you will split things into test plans. And makes it easy to start defining test cases and where they will run. Ultimately it can be used to report on test status, with built in dashboards and report generation.

The last step are some test servers which run adapters which connect to the RQM server. For our needs some of these will use a command line adapter, others will use RFT. This allows RQM to kick off tests against the systems and gather the results.

As a set of tools they are not light weight. Requiring at least 4 servers (RTC, RQM, build, test) but then they are a very powerful combination. I don’t expect to have any spreadsheets or hand-crafted chart generation being done by the team. All of the information we require comes straight from the tools, when we report project status we will use the tools not hand-made slides or spreadsheets. I also expect to be able to get tests automated and managed from the start. So no trying to retro-fit automation onto manual tests.

After one week we have RTC setup with the first wave of requirements stories and tasks, and a code base setup with components for our new product. We have an RQM connected and being told about builds. We have the skeleton of a build system. It’s not doing much other than defining the build types we will have, but the framework is in place.

Next week I’ll setup my first test server. Hopefully in a very short space of time we will have everything we need to develop and test a product. Complete with project tracking and reporting, all while most of the team are focussed on what we will produce, not tied up with figuring out infastructure.

New tools!

At the weekend I took a trip to John Davis Woodturning This was my first time in a real wood turning shop/workshop rather than just browsing items on line. It was very cool, nice to be able to actually see the various tools and get a proper feel for them. Also the huge stock of wood blanks was very tempting.

John Davis himself was very friendly and came to chat to me about my level of experience, what I want to do etc. He saw some of the tools I was looking at, and made a point of showing me items that he had turned with much more basic tools. Keen to point out that for many people there is simply no need to spend lots of money on specialist tools.

It was also good to be able to see the various examples of his work, and be able to wander around his workshop. To get a real feel for what professsional wood turning looks like. I have to confess that there are elements to it that look very appealing, there certainly seemed to be a reasonable freedom to potter around in his workshop, (in which he has 5 lathes!) However it is also clear that it is a 7 day a week job, teaching, turning, demoing. And it’s not all glamorous turning whatever he feels like to explore new things. He’d spent the previous day production turning spindles for a staircase. And of course he was open for business on a nice sunny Saturday.

I took the opportunity to spend some money and get a few more tools for my collection. In the end I decided to get a round nose scraper which is something that had been significantly missing from my tool set. But I also got a 3/8 inch spindle gouge and a 3/8 inch bowl gouge. Both smaller versions of tools I already own. I had initially picked up a spindle gouge with a swept back grind, but John had no problem talking me out of it (despite it being more expensive) as he finds the grind to be hopeless. Instead showing me the grind he has on his regular 3/8 spindle which he uses for a large proportion of his work. I also picked up a couple of wood blanks and some ebonising laquer. I didn’t really track how much discount he gave me for the bulk purchase but it pretty much amounted to £10 off the tools meaning I got the wood and laquer for ‘free’.

It was a nice experience, doing business with someone who sells what he uses. Knows the ins and outs, and can provide expert advice, as well as friendly conversation. Quite a different shopping experience to the norm. I will most certainly go back next time I feel like I can justify spending some money. Additionally since there was threadbear upstairs I should even get away with taking Kat with me again.

It starts with a drawing…

Actually that’s not strictly true, it starts with the spark of an idea. I went to this month’s Hampshire wood turners meeting this week. Only my second one, but it was cool. I had to offer up my beech bowl for critique, and got some useful thoughts on what I should do to improve it. Though that is a thought for another day… The bowl was last month’s challenge. And this month there is a new challenge,… to make wooden bottle stoppers. One of the members who provided critique, Harry, had actually bothered to not only think up the challenge, but also bring examples and some corks to give us. These aren’t regular corks, they are specifically for putting onto a home-made bottle stop, as they are tapered and have a hole through them.

So…last night, inspired by my challenge, I was thinking about making bottle stoppers, and I recalled the examples shown had pretty ‘burn’ lines made, which help to make an otherwise plain piece have some interest. It occurred to me that I’d like to do similar on at least one bottle stop that I make (I will probably make a few) To make a burn line is pretty easy, just hold some picture wire against the piece whilst it’s turning at high speed and let it heat up the wood until it goes black.

Although this can all be done by just holding the wire in your hand, I decided this was an opportunity to make some little wooden handles to make it into a proper ‘tool’ And so the idea was born, and so was the start of another project in the form of a picture:

Sketch of project

Sketch of project

This was sketched in my fantastic ‘Maker’s notebook‘ which was a present from my awesome girlfriend Kat.

Then it was off to the garage to start work…

I started off with this:

rough turned applewood

rough turned applewood

It’s a little larger than I really needed, however it’s always good to practice various cuts on the way to the final shape…

Here is a picture of it taking shape

part turned

part turned

Getting generally carried away I didn’t take many pictures in process. It occurred to me to use picture wire to make burn marks on the handles, but didn’t take pictures of that in progress, however this is what the handle looked like just before finishing:

shaped and burned

shaped and burned

Initially I had difficulty getting the picture wire to stay in place under pressure, particularly on the steeper slopes. For the second handle I made little cuts with the skew chisel at the locations I intended to burn, which gave some start to the groove made in the burning. Pretty pleased with how this looks, of course I needed to make two, and copy turning is hard….

two handles

two handles

And here they sit together, both ends. I’m happy with the way it turned out. and it stayed quite close to my original drawing. I made it fairly quickly, I think I could do a better job of the copy if I took more time over it. However there comes a point when the prospect of trying to finish in one sitting rather than come back another evening means I take a little less time over things than I should…. really need to work on that.

Anyhow, on this occasion it was drawing to realization in about 4 hours, which is pretty satisfying. Since this is just a tool for my own use I shall forgive it being a little scruffy. And it was great practice for making burn marks, before trying to do it on my bottle stoppers…

Now off to start drawing bottle stopper designs….

Hants woodturners

The other week I was looking for places I could go to see wood turning being demonstrated, and a bit of Googling turned up http://www.hants-woodturners-hwa.co.uk/.

I was very happy to discover this group meets not more than 10 minutes walk from my house. Unfortunately I found this the day *after* their last meeting ;-( However it wasn’t too much of a wait and last night I went to my first meeting.

It was pretty cool, aside from being the youngest person there by about a decade ;-) The night was about showing various home made tools and techniques for holding work on a lathe for finishing and such. There was a pretty impressive array of homemade tools, nicely engineered and it generally made me realise I’ve got a long way to go… ;-)

One guy seemed pretty casual about the various tools and tool rests he’d made, apparently an engineer by trade, he had some very impressively made bits and pieces, that all inspired me to want to be able to make my own tools. Thus creating a whole new category of things I could buy in order to play with making things, such as a propane torch, big metal vice and masonry nails which apparently allow you to forge your own metal cutters. I’ve read various sites that claim this is not a difficult process, so I’m keen to give it a go, but perhaps I shall rein myself in for the moment…

Another thing that a few people mentioned was how useful a bandsaw is…;-) lending more weight to my desire to get one, but that will definitely have to wait.

All in all I found the night pretty interesting, even though one of the members claimed that it was pretty boring compared to normal as there were no actual demonstrations running. I shall look forward to next month going again and seeing more practical stuff going on.

Oh, and they have the idea of a ‘novice table’ and asked those of us that were new to see if we can make a bowl, no more than 6″x2″ and bring it along next time for being critiqued. Something that should encourage me to practice and make an effort to produce something specific. Now I just have to buy a bowl blank… and roughing gouge… and a bowl gouge… and a round nose scraper… and a live centre tail stock…. (curse this hobby it is going to bankrupt me!)

On the subject of live centre tailstock… several people showed little things they’d made that help support work without marking it, that all relied on having a live centre tailstock (one with bearings that rotates with the work) which I take as good reason to get around to buying one. There are just some things that you can’t easily do without support at both ends of the work piece, and the tail stock I have at the moment is no good against a finished end.

All inspired by going to the meeting I spent a couple of hours in the garage this evening finishing my first attempt at making a tool, in this case a mallet:

Oval handled mallet

The handle is oval, by turning using 3 separate points on the end of the shaft, the handle goes from round at the bottom to oval at the top. Then a round shaft goes into the head. At the moment the front of the head has a small section of reduced diameter that I’d like to wrap a band of metal around, to prevent the end splitting out in use.

I’m pretty happy with how it has come out, time will tell if the wood is dry enough to not split. I used a microwaving technique to dry out the wood as much as possible, since it was basically just green. But I’ve never tried it before so I may or may not have done a good enough job.

Having got as far as I could with that I have started to turn a handle for a new lathe tool, working on the assumption that I will get around to trying my hand at making my own cutter bits… I’ll post about that when I try it, I may even remember to take a camera to the garage to take some in progress shots.

Next Page »


RSS Navit SVN Feed

  • Revision 2876 by martin-s - Add:Possibility to query follow attribute December 15, 2009
  • Revision 2875 by martin-s - Fix:Core:Don't handle button release in osd if not pressed first December 15, 2009
  • Revision 2874 by martin-s - Fix:Ignore multiple menu calls December 15, 2009
  • Revision 2873 by martin-s - Add:Core:Better debugging December 15, 2009
  • Revision 2872 by martin-s - Fix:gui_internal:Correct button handling after menu via dbus December 15, 2009
  • Revision 2871 by martin-s - Add:Core:New POIs December 15, 2009
  • Revision 2870 by martin-s - Add:Core:Made possibility to specify min and max zoom December 15, 2009
  • Revision 2869 by martin-s - Fix:binding_dbus:Correct argument handling for navit zoom command December 15, 2009
  • Revision 2868 by martin-s - Add:Core:Possibility to set layout by name December 14, 2009
  • Revision 2867 by martin-s - Fix:Core:Remove duplicate definition December 14, 2009

My Twitter

Error: Please make sure the Twitter account is public.

blog Archieve

 

December 2009
M T W T F S S
« Nov    
 123456
78910111213
14151617181920
21222324252627
28293031