We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

The PortableApps.com Platform, an Introduction and Overview

00:00

Formal Metadata

Title
The PortableApps.com Platform, an Introduction and Overview
Title of Series
Number of Parts
97
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
This lightning talk will give a brief introduction and general overview of the PortableApps.com Platform. In particular it will look at how the platform is structured, why you should develop for it and how to become compatible with it. PortableApps.com is the world's most popular portable software solution allowing you to take your favourite software with you. A fully open source and free platform, it works on any portable storage device (USB flash drive, iPod, memory card, portable hard drive, etc).
5
15
Thumbnail
48:33
41
Thumbnail
35:21
47
48
Thumbnail
1:03:30
50
75
Thumbnail
50:56
94
Computing platformComputerSoftware developerWindows RegistryDirectory serviceFocus (optics)FreewareInternet forumRevision controlDirectory serviceNumberProjective planeSoftware developerLaptopFreewareMobile appFocus (optics)System administratorLimit (category theory)ArmWindowComputer programmingConnectivity (graph theory)Moment (mathematics)Multiplication signComputing platformMathematicsCASE <Informatik>Computer filePortable communications deviceStudent's t-testWindows RegistrySoftwareData storage deviceInstallation artMenu (computing)File formatSet (mathematics)Polar coordinate systemOpen sourceWeb browserBookmark (World Wide Web)Field (computer science)Computer animationXML
Component-based software engineeringMenu (computing)File formatComputing platformFunction (mathematics)Mobile appMenu (computing)Formal languageFile formatMultiplication signLocal ring1 (number)Goodness of fitSet (mathematics)Mobile appLevel (video gaming)Optical disc driveComputing platformDirectory serviceCASE <Informatik>Portable communications deviceInstallation artComputer programmingBitOpen setCartesian coordinate systemRight angleOffice suiteOvalDefault (computer science)Profil (magazine)Functional (mathematics)Open sourceRevision controlMereologyOnline helpMathematicsComputer fileFreewareMoment (mathematics)InformationException handlingKey (cryptography)WebsiteEscape characterComputer animation
FreewareOpen sourceCore dumpFormal languageMenu (computing)Descriptive statisticsComputer programmingInstallation artOptical disc driveInformationMobile appRight angleMultiplication signOrder (biology)Home pageWinAmpComputer fileComputing platformComputer configurationComputer iconBitRevision controlConnectivity (graph theory)Digital photographyBEEPComputer animation
Mobile appComputer programmingFormal languageFerry CorstenComputer configurationConnectivity (graph theory)Installation artMenu (computing)CASE <Informatik>Right angleFocus (optics)Point (geometry)Moment (mathematics)Portable communications deviceMereologySet (mathematics)Windows RegistryLocal ringDevice driverComputer animation
Computer fileWindows RegistryComputer programmingSet (mathematics)WindowSoftware bugSheaf (mathematics)NumberConfiguration spaceWindows RegistryQuicksortIntegrated development environmentMobile appOverhead (computing)Computing platformPortable communications deviceUniverse (mathematics)Installation artMathematicsComputer fileUniform resource locatorAlpha (investment)Line (geometry)Goodness of fitComplex (psychology)GUI widgetCross-platformComputer animationLecture/Conference
Integrated development environmentWindows RegistryFlagFormal languageGoodness of fitComputer programmingDifferent (Kate Ryan album)Formal languageNumberInternet forumFlash memoryComputer animation
XML
Transcript: English(auto-generated)
Hello, yes, it works excellent. So like I said, my name is Steven. I'm a actually I'm a first-year math student at the University of Warwick in the UK and in my spare time I'm a both a developer and a moderator on portableapps.com I'm just going to give you a quick introduction to our platform. You might have heard of us because
We won the source field best project of the year last year and I suspect a number of you Use our software to get around whatever crazy limitations your administrator puts on your PC wherever you work So before I get started, what is a portable app? It might not be what you think
I'm not at the moment talking about a program that runs on both Windows and Linux and Mac or one that runs on x86 or ARM or MIPS. I'm talking about one that runs Do you install onto some mass storage device and as you take it between PCs it keeps its settings and your bookmarks in the case of a web browser and allows you to take them basically wherever you work and
Even even if your device changes drive letter on Windows, for example that it's going to keep going and Also that it's not going to leave files and folders and registry entries Basically everywhere you go so that you just leave a mess everywhere
portableapps.com We were originally founded in 2005 by our developer lead John T. Haller from New York Although before that we actually existed on the Mozilla zine forums. There are a few of us hanging about And we actually started with a portable version of Firefox Which is still easily our most popular app Although currently we have about 90 90 programs that both open source and freeware in our directory
And that's actually expanding all the time. We've got We've had over a hundred million downloads With a rough three to five million users worldwide It's it's hard to get a sure number on that, but we've actually got over a hundred thousand registered users on our forums
But our main focus really is is the platform and that's what I'm going to be talking about We've recently expanded freeware as well. So, you know, this being false them is the free and open source. So We do freeware and we're probably quite unusual Here in the fact that our main platform is Windows, but we actually fully support wine as well
If you've got any Linux developers who would like to help us Become more platform neutral. I'd love to talk to you at the end and I'm sure we can saw something out So the platform we have four components the menu Format the installer and the actual launches themselves and I'm gonna give you a brief brief run of each of those
the platform So the platform the menu rather is probably the least interesting part to you guys But it's actually what the users see most of the time You can see a screenshot of version 1.6, which was released last week on the right hand side We've got a couple of applications pinned to the top
Firefox and Thunderbird and open office Pigeon we do Inkscape and things like that as well It's got billion functions for adding and removing applications backing up data using the format which I'll talk about in a minute Integrates fully with the installer themes. There's actually quite thriving fright There's a big theme community as well
And a huge localization attempt. We were currently in 51 languages for the menu. So basically whatever you speak You can probably have it in your language Like I said, 1.6 was released last week We've got 2.0 already in beta testing and we're hoping and that should incorporate An update to similar to apt so you can you can grab new apps from the website and update the ones you've already got
completely painlessly so the format is kind of the main Main way that it all works on the top level So this is in bold so you replace this with the name of your program in the case of Firefox
We've got Firefox portable in the top level directory. You have a launcher which I'll talk about in a minute and a help file and then all our all our applications split into these three folders app is where You've got app info which literally has a couple of files that also talk about and they describe your program So that the menu can show up properly and they describe the installer
So the installer generator can create it properly app name In the case of Firefox is Firefox the key With this is that it's an exact binary copy of your normal installation so we've actually got an exact copy of Firefox in there or an exact copy of Thunderbird the idea being that when you update your
Program if the portal version isn't updated at the same time for whatever reason the users can literally grab your your normal installed version Extract it drop it straight in there and as long as you haven't made too many changes to your program in the way it saves its Settings it should work. No problem at all default data being in an oval is optional
for example with Firefox Firefox does require a profile to be there when it's run But the data folder when we package stuff up in the install of the data folder is left intentionally empty So it doesn't overwrite anything of the users So basically your launcher on first run Checks to see if there's anything in the data directory and if there's not it copies it straight over from the default data
as I mentioned data is normally is When you package stuff up in the installer is completely empty because overwriting user settings is never ever a good thing lhe and then the other folder which Kind of is just other really that's help file and because we're GPL we've got source and stuff like that in there
Just odd bits and pieces that don't really fit anywhere else The installer install is quite nice in that you get it for free once you're in the format once you're in the format, you can run the installer creator and It'll create your installer It's for all open source and freeware at the moment because it's GPL with exception and if you contact us
Used commercially as well the idea being that You can sit down there it automatically searches for the platform when you run the installer So it fills in the right directory for the user. So they have as little to do as possible and We're actually built on n-cis the installer language n-cis By nullsoft the people behind winamp and the idea behind that is that actually it gives us an incredibly small footprint in the order
of kilobytes and Allows us to be have customizations in there like optional components and things like that Installers actually more widely translated from the menu with 58 languages
And I'll talk a little bit more about that in a minute Here we get so app info dot any and installer dot any are basically the two files that describe Describe your program to the platform on the right hand side You can see a copy of the app info dot any file from program I work on to you can an app info dot any literally describes to the menu your program
It tells it what version for the up data Your home page so you can easily visit that a brief description and Various odds and ends like that For example, if your program has multiple multiple X's you can get them all to show up in the menu if you want or any One or two of them with various icons as well
So that basically describes that and also language so that when you run your program from the menu You can have it start in the correct language Installer dot any is basically exactly the same except it describes stuff for the installer. So specifying optional components and languages There's not really a lot of point having your installer translated into a random language if your user that then runs the program finds
It's not actually in their language at all. It's kind of off-putting for everyone and makes people unhappy The launcher the launcher is kind of the main focus of the platform and at the moment it's the most variable part so the launcher is what makes your app run in a portable fashion and
Because all programs are different they obviously vary an awful lot So for example if you've got a program that's been designed to run in a portable fashion You'll find that actually all you need to do is run it and then exit and everything carries on alright In the case in some other programs for example
You might have to tidy up registry entries after the program is finished or tidy up settings Move them to move them to the USB drive if they saved automatically on the local PC stuff like that We also write these in nsys you can see a short a Short section from the Firefox one there. It's one probably one of our most more complex
More complex examples, although actually in the last sort of week or so We've taken a very similar Similarly to the way the installer and the platform specified with the eni files We've now actually got a universal launcher That's currently an alpha testing the idea being you fill in another file that basically says my program writes to the registry here here
And here and it saves its settings here and there and it'll basically create a launcher for you that That tidies it all up afterwards the idea being that by reducing the number of launches We've got we can we can clamp down on bugs basically So that's that's kind of that nsys again is used because it's got a really small overhead the main problem with nsys is that it isn't cross-platform and
No, that is something that is actively being looked at because it is a problem You probably you're probably all working on some apps that you might have a Windows build If you did, it would be good. There's a number of changes
You can actually make to make your app run in a more portable fashion By accepting a command line or an environment variable just something that says please save your user settings here Then that is basically the number one thing you can do to make to make portable apps users happy By by taking the second one line variant the command line path
you can say your launcher will then pass it the correct path the correct location your program will save it and Your users won't and it won't then have to copy your your files across it when your programs finished running Which is good Making the registry optional if you're very Windows focused or if you have a Windows port is good
If you use Q or WX widgets, there's specific ways of doing config files It'll manage those automatically for you without any problems Basically Using the using the path you've been passed in and stuff and if possible with your language reduce the number of requirements Linking statically if you use C++ is also good because you know, DLL hell is a big problem still
Also stuff like Making sure your program is friendly after being put through a compressor like UPX can make a big difference drives Unfortunately, although flash memory is still very cheap
You do have users who do try and fit as much as they possibly can on the 32 megabytes I think they got free some years ago and the more apps they can fit on that the better So we do use things like UPX to compress X's If your program is friendly that way it's it's also good I'm kind of at the end to be honest
If you've got any questions, I'm gonna be here Most of the rest of the weekend the forum is a great place Like I say, we've got about a hundred thousand registered users of which a lot of which there's a fair proportion People have actually written launches themselves programs. So there's a lot of knowledge out there We have a pretty active IRC channel as well as always people to talk to on there
And that's about it. So if there's any questions, I'll either take them now or up you down there afterwards. Thank you