ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Picolisp latest found at http://www.software-lab.de/down.html | check also http://www.picolisp.com for more information
<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]
alexshendi has joined #picolisp
styx has joined #picolisp
orivej has quit [Ping timeout: 276 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
styx has quit [Quit: styx]
_whitelogger has joined #picolisp