I am new to Ubuntu and to programming, and I am seeking to teach myself Python. I installed the software from the Software Center and was wondering how to be sure it is up to date with the latest Python and where to go online for a guide that you would suggest, such as Non-Programmer's Tutorial for Python 3.
Python – Non-Programmer’s Guide to Self-Teaching
programmingpython
Related Solutions
In general, I'd recommend using the toolkit supported ways to put menus in the global menubar... but, I'm assuming it's too late to convince you at this point :-) Also, I'll note that even thought we're using Dbusmenu and registration in 12.04 the goal is to move to GMenuModel and marking the window with its menus by 14.04, so this information will become dated. Ofcourse, the toolkit plug-ins will be updated ;-) (last time I'll try, I promise)
The basic principle involved is that we need to know what menus are associated with which window. We track the window using its XID and the menus are a path to the Dbusmenu Server on DBus. You'll need both of those pieces of information to register. The registration interface is pretty simple in that you basically pass both of those pieces of information to the registrar. The registrar's well known name on DBus is com.canonical.AppMenu.Registrar.
For an example of how this can work you can look at the mock-json-app sample code that is in indicator-appmenu. This is a small tool that will take the JSON file output by dbusmenu-dumper (which is in libdbusmenu-tools) and make a window that claims to have that menu. It also handles things like the appmenu crashing, which might not be really required for most application (though is really important in development :-) ).
To create a Dbusmenu Server you basically just need to allocate the object and tell it where to appear on DBus (so you can give the location to the registrar). For plugins like appmenu-gtk we use a generated path so that there is no conflict, but if you're controlling the app you can probably use a fixed path. Then you create a tree structure of Dbusmenu Menuitem objects. The root one isn't shown, but is passed to the Dbusmenu Server to start out the menus. The first level bellow the root will be shown as items across the Ubuntu Menubar.
Good luck, thanks to all the people who harassed me to answer this question. I still believe that you should use the toolkit support (I lied about it being the last time), but good luck!
Well, as a kernel engineer, I've found in general the best lessons I learned were the hard ones. Where I was challenged to dig deep and find new and creative ways to debug an issue or solve a particular sticking point. The motivation for sticking with that really came from my invested interest in a particular sub-system. If you're not committed to seeing things through then just stop now, it's all hard, it's the intensity of the war stories that vary :).
You can best help out in an area you're motivated to sustain the effort. Ask yourself how close you want to get to the HW and continue from there. For example there's a lot less applied OS concepts in general device driver development vs greater resource management issues like memory management, IO writeback, process scheduling. Device drivers after all are about banging the firmware to get what you want and then adhering to the interface for that subsystem, there are so many comparable works that it makes it relatively easy to get started there. The drawback is, you're working with HW, which is always a net drag on development.
That's a userspace book, you won't need that anymore :-p. The kernel is a service driven framework, understanding the whole user/kernel interface to begin with isn't going to be very useful if you dive right into the driver development for example, as you'll be quite insulated from userspace. The Linux Device Drivers 3rd edition is freely available and is a great reference.
See link below. Though most importantly, just start somewhere and hang on. It's supposed to be hard, test your patience, and commitment. Since you don't really know what you're interested in, it's the lessons learned from these skirmishes that will shape your future engagements. If you can't even do that, then kernel hacking isn't for you.
I would advise that you find a mentor that will challenge you and be there for you while you come up to speed. I haven't tried this myself, but this project might be a good start for you: http://kernelnewbies.org/KernelMentors.
I also suggest you become familiar with the kernel trace frameworks out there like ftrace, perf, and systemtap.
Good Luck!
Best Answer
You'll find a lot of information for non-programmers here.