<aw->
(07:28:40 PM) francogrex: are you one of the developers?
<aw->
(07:28:45 PM) Regenaxer: yes
pierpal has quit [Ping timeout: 276 seconds]
pierpal has joined #picolisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #picolisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #picolisp
orivej has quit [Ping timeout: 264 seconds]
mtsd has joined #picolisp
orivej has joined #picolisp
mtsd has quit [Quit: Leaving]
orivej has quit [Ping timeout: 276 seconds]
freemint has joined #picolisp
<freemint>
Regenaxer, if i would want to programm an app that needs Android features not available in Pilbox yet. How would i go about extending android.l
<Regenaxer>
You must look up the function in the Android docs:
<freemint>
( i am thinking about writing an own music player using the default music player API but using pildb for storage
<freemint>
I did that
<Regenaxer>
Check the Radio
<Regenaxer>
it uses MediaPlayer
<freemint>
ok
<freemint>
ahmm why isn't the music player api in android.l
<Regenaxer>
It uses also a small DB for the stations
<Regenaxer>
It makes no sense to put the whole API there
<freemint>
Why not?
<Regenaxer>
It it simple to call it
<freemint>
Permissions?
<freemint>
ok
<Regenaxer>
No, it is huge
<Regenaxer>
why carry around everywhere?
<Regenaxer>
Most app never need a music player for example
<freemint>
mhh most who can use PicoLisp can figure out how to write a wrapper
<Regenaxer>
yes, though it is not totally trivial
<Regenaxer>
But it can be translated 1:1 Java -> PicoLisp
<Regenaxer>
I would not even call it a wrapper
<Regenaxer>
You just call the Java methods
<freemint>
Is there any plan to make the app.l gui better for mobile devices?
<Regenaxer>
no
<freemint>
would you include changes other people make?
<Regenaxer>
Which changes?
<Regenaxer>
I use it in 3 production apps currently
<freemint>
changes to the default style sheet
<Regenaxer>
Perfect for my purpose
<Regenaxer>
This is per app
<freemint>
i see that's nice then
<Regenaxer>
The media player is in radio/lib.l
<freemint>
ok, but you won't ship the default Pilbox with a better stale sheet if somebody donated something
<Regenaxer>
If it is good, why not?
<freemint>
ok
<Regenaxer>
I want to keep the start page neutral
<freemint>
could i make a paid app using Pilbox license wise
<Regenaxer>
yes
<Regenaxer>
You could replace the whole default App.l
<Regenaxer>
or the Java parts
<Regenaxer>
I did that initially
<Regenaxer>
Had a PilBox for each production app
<freemint>
ok
<Regenaxer>
But now I use only the standard, with ZIPs for the apps
<freemint>
I am annoyed that all music players fail to handle giant midi collections
<Regenaxer>
I see
<Regenaxer>
So you want to use a DB
<freemint>
It is a realistic but not high priority project
<Regenaxer>
yep, and in fact radio.zip has some useful parts perhaps
<freemint>
afk
freemint has quit [Ping timeout: 244 seconds]
freemint has joined #picolisp
<freemint>
Regenaxer yes it will be very useful.
orivej has joined #picolisp
<freemint>
Do you think the Pilbox architecture poses and larger security risk, since any app with internet access can talk with the server?
<freemint>
If so how would you mitigate that larger attack surface?
<Regenaxer>
Yes, this is the case with any app with internet permission (thus practically *any* app)
<Regenaxer>
Apps in Android are quite isolated from each other though
<freemint>
But all android apps can talk to the pil server, so the abstraction of isolation is broken
<Regenaxer>
This depends on the app. At the moment only my commercial apps can talk to the pil server, and only with authentication
<Regenaxer>
You can't write an app which can do that
<freemint>
how do you do authentication
<Regenaxer>
The app is registered at the server DB, a PIN in generated to enable the app, and after that it identifies at the server with the UUID
<freemint>
so it is similar to using a key file like with psh
<Regenaxer>
Not similar I would say, as it involves no file. More like a password
<Regenaxer>
*Uuid
<Regenaxer>
It is in a file UUID generated by the Java startup
<Regenaxer>
lib/android.l reads it into *Uuid
<freemint>
i know what an UUID is
<Regenaxer>
ok
<Regenaxer>
What I mean is that it is generated for each installation
<Regenaxer>
you can $ rm UUID to force a new one
<freemint>
if i want to host a public Webserver from the app (like remote control for the music player) How would i go about that?
<Regenaxer>
Same way. My servers *are* public in the sense that they can be reached from everywhere. It is the auth which is important
<Regenaxer>
Or you just allow it to everybody if that is OK
<Regenaxer>
There is no difference between PilBox and any other web application in this regard
<freemint>
so just (server *NewPort 'default)
<Regenaxer>
PilBox does not run as a servia
<Regenaxer>
server ;)
<Regenaxer>
Well, it does, but only for connections on localhost
<freemint>
ok that makes sense. do you trust android to provide UUID s with enough entropy?
andyjpb has joined #picolisp
<Regenaxer>
Yes, I see no reason why it should be badly implemented
<freemint>
i hope so.
mtsd has joined #picolisp
<freemint>
i like the Pilbox more than i thought i would.
<freemint>
i first thought it was some ugly hack, but it make quiet more sense now
<freemint>
another question, why is there so much "local" and "symbol" in the Android code
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
<Regenaxer>
Glad that you like it!
<Regenaxer>
The namespaces are needed to isolate apps from each other
<Regenaxer>
At least those that have E/R and use a DB
<freemint>
ok
<freemint>
i never needed to that. anything i would need to read up upon?
<Regenaxer>
Unfortunately PilBox is not documented enough yet
<Regenaxer>
Or you mean namespaces?
<Regenaxer>
They can be a bit tricky to get used to
<Regenaxer>
You need to be careful to have the righy name search order in every context
<Regenaxer>
For a single or a simple app not needed
<freemint>
i mean namespaces
<freemint>
i never worked with them
<Regenaxer>
Better build your stuff first without, and add 'symbols' and 'local' later when everything works
andyjpb has quit [Ping timeout: 268 seconds]
orivej has quit [Ping timeout: 268 seconds]
andyjpb has joined #picolisp
andyjpb1 has joined #picolisp
andyjpb has quit [Ping timeout: 244 seconds]
andyjpb1 has quit [Ping timeout: 248 seconds]
<freemint>
why is 'local a good idea in database based apps?
<Regenaxer>
It is not needed for the data (*external* symbols do not care about namespaces), but for the entities and relations which are *internal* symbols
<Regenaxer>
You may have classes with the same names in several apps
<Regenaxer>
I have a class '+Bulk' in almost every application (PilBox or web server)
<Regenaxer>
Also, many access primitives have the same name but different code
freemint has quit [Ping timeout: 260 seconds]
freemint has joined #picolisp
<freemint>
I see
<freemint>
what is +Bulk for?
<Regenaxer>
A Singleton object for all kinds of data depending on the application
andyjpb has joined #picolisp
andyjpb has quit [Ping timeout: 240 seconds]
groovy2shoes has quit [Ping timeout: 265 seconds]
groovy2shoes has joined #picolisp
orivej has joined #picolisp
<freemint>
and you store that in the DB because?
<freemint>
persistence or is it something else?
<freemint>
*is it an object because...?
orivej has quit [Ping timeout: 244 seconds]
orivej has joined #picolisp
alexshendi has joined #picolisp
<Regenaxer>
Normal data, just singleton
<Regenaxer>
In the DB for various reasons, sync/lock, replication, gui interfacing
<Regenaxer>
backups
styx has joined #picolisp
icantc has quit [Ping timeout: 240 seconds]
icantc has joined #picolisp
mtsd has quit [Remote host closed the connection]
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
styx has quit [Quit: styx]
alexshendi has quit [Read error: Connection reset by peer]
freemint has quit [Remote host closed the connection]