
libpnd, the Pandora library, goes public
November 2, 2009A significant software milestone has been reached this week with the public release of libpnd, spearheaded by Skeezix and Vimacs. From the wiki:
libpnd is a basic collection of functions and tools to make working Pandora-specific operations easier; to wit, it is hoped multiple applications will make use of this library rather than re-implement similar functionality and lead to problems down the road. (Instead we can run into problems together and thus clobberize them.)
libpnd thus is a collection of …
- handy system code that hopefully is reusable – io functions, cpu clock setting, etc.
- applications for supporting the pandora unique features, such as pndnotifyd for auto-discovery of PXML and .pnd applicatons
- libraries for support of the .pnd and PXML systems; ie: for locating, executable, mounting and unmounting PXML-directory and .pnd applications, loading PXML and handling overrides
- hopefully reusable code for support of these things; ie: a rudimentary but useful config-file parser, rudimentary singly-linked-list container, etc.
At this point, we can probably split the blog readers into two groups: Those who have excitedly hit the wiki link before they’ve even read the rest of this sente
…and those who are just nodding and smiling. Don’t feel bad, there are lots of us. So what is libpnd? Put simply, it’s a framework that gives developers a standardised approach to creating Pandora applications. The flow-on effect is a consistent, user friendly environment for all of us. If you’re an end user who likes things that Just Work, libpnd is your friend on the inside. The wiki page is recommended reading, even if the above extract doesn’t push your buttons. There’s a lot of very readable and interesting stuff in there, much of which will be condensed into a user-friendly guide down the track. So jump on in and learn a little about what will make your Pandora tick!
Cool. Anything that makes deving on the Pandora faster and easier is a welcome addition.
Great news to wake up for!
“but the reality is there is magic merging going on behind the scenes” Lets hope there is some magic in getting the pandora to us sooner
I would like to see this demoed. It sounds like an amazing piece of software
Nice work!
mmmm
disappointed not with libpnd
but with pxml, theyre using raster images for the icons, i would much rather prefer vector, considering how many GUI how going to be released, it would be best if they had good full control of the image
You’re quite right. however for speed purposes I think that it is okay to use rastered images. But, I think that they should also contain SVG(uses XML too) images that are optionally used.
no point in having it optional
it would have to be mandatory for it to be useful
After all, it’s just icons.
I Wonder if we can try libpnd this year or the other.
Need to let it cool down for a couple of months first. OMG! Just realised that now + 2months is next year.
Have a look at what the Haiku OS guys did for icons: a compact vector format:
http://www.haiku-os.org/news/2006-11-06/icon_facts
http://www.haiku-os.org/articles/2006-11-13_why_haiku_vector_icons_are_so_small
It’s open source, you can code it up.
Vectors or other formats could be added later; in fact, it actually doesn’t really care too much (though the png standard header makes it easy to locate in a binary stream) .. libpnd really just spits the icon out into the filesystem for the DM to locate, but it coudl well be another file type as long as the DMs can deal with it. Note that as is, many desktop managers cannot deal with SVGs or the like. They also depend on large stacks of libs which are generally not fast, and tie you into all sorts of madness..
Note that the source has always been in the git and publicly available for a year. The wiki I posted includes the clone note, so you can clone it right now and hit ‘make’ and see it.
It includes a set of test configs which work right now, and you can easily point it to your SD slot mountpoint and watch it work in real time, as a user or root.
It works, go try it
I have a request, if pandora uses anything like .desktop files for apps, and those files have shell commands or app names in them, and those files can be clicked to launch an application or appear in mailcap, PLEASE do it like this:
1. make the file executable
2. put a #! line at the top like other unix scripts that runs an “interpreter” to launch the app
3. files that are not executable or lack the #! cannot be used to launch an application, a downloaded desktop file must be chmod +x before use.
I feel this is essential to protect against viruses. It is easy to write a virus for linux that could be transported through .desktop files via mail attachments or web sites, since they don’t have this “x bit” protection.
+1
I believe the .desktop (or whatever else they are using for desktop launchers) files are created on SD card insertion, by something defined in the .pnd
the .desktop files are created after auto-discovery in pndnotifyd finds apps, which is performed after various directories get altered (such as by mounting/unmounting SD ejects). So the .desktop files are not man made, but are instead generated.
But more to point, people can hand edit .desktops from any source (nothing to do with us) to be potentially malicious; peopel can distribute malicious binaries or pnd files, or whatever. Tjhey have to be manually run, manually downloaded etc, so the chances are relatively unlikely.
(Given the nature of being a handheld, they’re also pretty unlikely targets… just not really useful to take one over, though admitedly panda is a much mroe attractive target than most handhelds traditionally have been.)
As per usual, the largest of the security risks is human in nature .. downloading random crap and running it.
it’s easy even for experts to mistakenly press enter or click at the wrong moment by mistake. I hate it when people blame users for viruses spreading when the OS is stupidly insecure. If you want to blame a human factor, blame the humans who forgot the +x bit and threw away 30 years of unix’s superior security.
So who’s doing the python wrapper? :p