Re: [PD] Legal restrictions for apps

2014-02-06 Thread Jonathan Wilkes

On 02/05/2014 08:56 PM, Simon Wise wrote:

On 06/02/14 00:36, Dan Wilcox wrote:
Short answer: yes, it's sufficient to provide the object files and 
static

libs

As far as my understanding of GPL  LGPL goes, you do not need to 
publish
your app sources when using LGPL libraries as the Lesser part of 
the LGPL

allows for distribution and is not viral.


yes, though 'viral' is a misleading term  ... the GPL does not, 
cannot, change any license for any other code, it is not infectious.


The GPL is certainly more restrictive (regarding re-distribution, not 
use, of the code covered) than for example the BSD or LGPL. It 
restricts the right to distribute/propagate as part of a larger work 
to works where the whole of the source code of that work is made 
available for reuse, modification and re-distribution either under the 
GPL or in any less restrictive way.


In the second case the GPLed code would no longer be licensed for 
distribution (and would have to be replaced or dropped or a different 
license negotiated with its copyright owners) if the work as a whole 
was modified and distributed with a more restrictive license. Whether 
this is useful or not has been very widely debated.


There are two debates.

One is between devs who license their code with the GPL and devs who 
license their code with 3-clause BSD.  Both share what they make with 
the world.  Both keep publicly auditable databases of the changes to the 
software.  Both encourage smart, safe ways to design and maintain 
software and operating systems.


BSD devs notice that when they share with GPL devs, the GPL devs say, 
Thanks.  But when the BSD devs try to use what the GPL devs write they 
have to fuss with the license.  This is because the GPL essentially puts 
the golden rule into the license, whereas the BSD devs have a minimal 
license (probably as minimal as a license can be) and just follow the 
golden rule as human beings.


There are good reasons for both camps to do what they do, but it ends up 
requiring the BSD folks to care more about licenses than they'd like-- 
their license is only 3 clauses, after all!  So the BSD camp complains 
that when the GPL devs (like Linux Kernel devs) improve on code that was 
originally BSD, it comes back to the BSD folks infected with the GPL 
license which requires them to then care about licenses.  This is where 
the viral taunt comes from-- a genuine argument between two camps, 
both sharing what they make with everyone else to encourage a free and 
safe software ecosystem.


Another debate is between any company that produces proprietary software 
and a straw man in a corn field.  Here viral is irrelevant because the 
company isn't giving improvements back to the community.  Unfortunately 
this is probably what first pops to mind when people hear this 
argument-- that, somehow, the GPL can infect the business of selling a 
product and make it impossible for a company to make money.


But for better or for worse, we don't even need to consider minimal 
moral principles.  It's demonstrably dangerous to rely on software that 
doesn't have a pubic codebase and revision history. (Unfortunately I 
think it's for the better since most devs seem allergic to stating 
minimal moral principles.)


-Jonathan

The motivation for the GPL is stated in the license and the LGPL was 
written to cover some cases where the authors considered a less 
restrictive license useful.



Simon

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list






___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] cryptocurrency and pd

2014-02-06 Thread i go bananas
Has anything been done to try to marry these together yet?
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread Jonathan Wilkes
In what way?

You should theoretically be able to visualize a proof-of-work block-chain as a 
dataflow diagram, for example.  But generally speaking, Pd doesn't seem like it 
can offer much since it would be quite slow to do hashes or cryptographic 
functions.

-Jonathan




On Thursday, February 6, 2014 4:09 AM, i go bananas hard@gmail.com wrote:
 
Has anything been done to try to marry these together yet?  
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread i go bananas
In what way?

that's what i want to know!
___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread Charles Goyard
Hi,

i go bananas wrote:
 In what way?
 
 that's what i want to know!

If that's a general question, then the answer is yes, as you can get and
send bytes over a network and do math with pd. It's also the answer for
all general questions like can I do something a computer does with 
pd ?

It does not mean it fits you needs, or the amount of work you want to
put in :).

Not giving contexts does not lead to useful answers.

So, do you have something in mind ?


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread Jonathan Wilkes

On 02/06/2014 11:03 AM, i go bananas wrote:

In what way?

that's what i want to know!


I don't know the specifics, but I think both cryptography and finance 
are areas where the feature of everything is a float actually gets in 
the way.  In either case you cannot afford to lose precision.


But you can prototype some of the features of a cryptocurrency in Pd.  
For example, Bitcoin uses the hashcash algorithm to verify each block of 
the transaction database.  (If I understand it correctly it's like 
brute-forcing SHA256 keys, although they never completely succeed.)  The 
miners basically start a counter, do a mathematical function on the 
value plus the previous value from the last entry in the transaction 
database, and finally check if the output has a certain number of 
leading zeros.


If you ignore for the moment the counter and the mathematical function, 
you can see how the process works.  Attached is a patch that just keeps 
spitting out pseudo-random numbers between 0 and 1 until all of the 
[random] objects happen to output zeros.  It's essentially like a slot 
machine that keeps playing until you win. Now notice that when you hook 
up another [random] to the chain you double the average time it takes to 
find a winner.  Add enough [random] objects to the chain and you will 
quickly hit a point where you can't compute a winner at all (even if 
you change the patch to compute answers as fast as possible).


Bitcoin's block difficulty uses the same principle.  The software has 
a hardcoded rule that it should take 10 minutes to find a winner.  But 
instead of using a bunch of binary values, it uses a single number and 
requires the winner to be below a certain value (which is equivalent 
to counting the leading zeros in the representation of the number).  
Over a certain number of days it measures the average time it takes the 
network to compute a winner.  If it's way less than 10 minutes on 
average then the software automatically does the equivalent of adding a 
[random] to the patch to make it twice as hard.  If it takes too long 
then the software removes a [random].  The actual algo is probably more 
sophisticated but that's what it boils down to.


Now, let's say you hook up 50 [random] objects in that patch and happen 
to find a winner.  That'd be pretty spectacular, but how do you 
convince everyone that you are being truthful about your claim? This is 
where the hashing function and the counter come into play. Instead of 
the attached patch, imagine a [hash] abstraction that takes a counter 
value in the left inlet and the previous transaction hash in the right 
inlet.  It will output a seemingly unrelated number in response to the 
input, but that number will be unique to the input you give it (or so 
close to unique that we can just call it unique).  That's what a hashing 
function does.  So you essentially do the same thing you did above, 
except you're looking for leading zeros in a single number rather than 
the collective output of a bunch of [random] objects.


When you hit a winner you then broadcast your counter value and the 
new transactions to the rest of the network to add to the database.  The 
rest of the network already has the previous entries in the transaction 
database, so they can take those with your counter value and verify that 
the resulting hash actually has the correct number of leading zeros.  
Then everyone starts working on the next winner.  And why do they do 
that instead of trying to lie and say they were the one that actually 
found the winner?  Because the first new transaction in the database 
is the real winner giving 50 bitcoins to themselves, and that 
transaction uses public key cryptography to ensure that it can't be 
forged or changed.


One last thing-- the hashing function is designed so that it's extremely 
difficult (read: impossible) to start with a hash value that has the 
required number of leading zeros and work backwards to figure out the 
right counter value.  Like a slot machine, you have to just keep trying 
until win.  And just like a slot machine, if someone can figure out how 
get a winner without putting in the same work/money everybody else does, 
then the entire system breaks down.


-Jonathan
#N canvas -9 19 708 498 10;
#X obj 176 44 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 176 65 metro 50;
#X obj 176 172 random 2;
#X obj 178 218 +;
#X obj 246 172 random 2;
#X obj 316 172 random 2;
#X obj 178 255 +;
#X obj 178 446 moses 1;
#X obj 46 99 t a;
#X obj 386 172 random 2;
#X obj 178 286 +;
#X obj 456 172 random 2;
#X obj 526 172 random 2;
#X obj 176 86 t b b b b b b b;
#X obj 596 172 random 2;
#X obj 178 327 +;
#X obj 178 368 +;
#X obj 178 413 +;
#X text 356 114 connect more to increase the difficulty;
#X text 358 271 ... and connect them here \, too;
#X obj 46 137 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X connect 0 0 1 0;
#X connect 1 0 13 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X 

Re: [PD] cryptocurrency and pd

2014-02-06 Thread Jonathan Wilkes

On 02/06/2014 02:08 PM, Charles Goyard wrote:

Hi,

i go bananas wrote:

In what way?

that's what i want to know!

If that's a general question, then the answer is yes, as you can get and
send bytes over a network and do math with pd. It's also the answer for
all general questions like can I do something a computer does with
pd ?

It does not mean it fits you needs, or the amount of work you want to
put in :).

Not giving contexts does not lead to useful answers.


That's a self-fulfilling prophecy.

It also turns out to be wrong, because I made another self-fulfilling 
prophecy which turns out to be useful.


-Jonathan



So, do you have something in mind ?


___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list





___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] declare and abstraction (cont.)

2014-02-06 Thread rolfm

hi miller,

thanks for investigating this 'problem'.

my patch is randomly reading wav's from a library(=folder).
for that it needs first to find out what's in the folder.

which is done with [moocow/readdir].
(i don't know another way)

to give [readdir] the right directory i was using ../sounds.
this doesn't work when Pd is started first.

with [getdir] i hoped to have a workaround.
however [getdir], following Pd, gives different answers,
depending whether a [declare -path .] is used or not.

strange enough (?) using ./sounds seems to work ok.
it would mean to put the folder with wav's inside the patch folder.

which of course isn't a very elegant solution.

ciao, rolf


Miller Puckette m...@ucsd.edu schreef:


OK... but I don't see any problem there - 'empty' gets saved to the correct
place, just with a different spaling of the file path, correct?  I  
thought the
original problem was in not being able to load a soundfile from a  
'declared' folder

somehow.

cheers
Miller

On Wed, Feb 05, 2014 at 12:11:09PM +0100, ro...@dds.nl wrote:

hi miller

here's the zip

i'm on Windows 7

ciao,rolf






___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread Thomas Mayer
On 06.02.2014 10:09, i go bananas wrote:
 Has anything been done to try to marry these together yet?  

PuREST JSON includes a sonification for Bitcoin values going back to
2011, but I guess, that is not what you wanted to know.

Thanks,
Thomas
-- 
We left all that stuff out. If there's an error, we have this
routine called panic, and when it is called, the machine crashes,
and you holler down the hall, 'Hey, reboot it.' (Dennis Ritchie)
http://www.residuum.org/

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread Simon Wise

On 07/02/14 09:56, Thomas Mayer wrote:

On 06.02.2014 10:09, i go bananas wrote:

Has anything been done to try to marry these together yet?


PuREST JSON includes a sonification for Bitcoin values going back to
2011, but I guess, that is not what you wanted to know.


it sounds the more likely kind of dsp/bitcoin marriage, otherwise perhaps
a pd concert with the ticket price in bitcoin???

simon

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] cryptocurrency and pd

2014-02-06 Thread Jonathan Wilkes
Pd or otherwise, I'd be very careful about sending any messages back and forth 
with the actual Bitcoin network.  By doing so you are essentially telling the 
internet that fungible, irreversible tokens might exist on your machine, the 
value of which could far exceed anything that you have ever or will ever store 
on your computer.

Also, blockchain.info likes to store the IP of the first node that told it 
about a transaction.  It's pretty well connected, so if you make a transaction 
from your machine your IP is very likely associated forever with that 
transaction.  (Just one of many ways in which Bitcoin is not anonymous.)

But of course if you happen to be in Sochi then everything of value on your 
machine has already been stolen, so knock yourself out. :)

-Jonathan




On Thursday, February 6, 2014 5:59 PM, Thomas Mayer tho...@residuum.org wrote:
 
On 06.02.2014 10:09, i go bananas wrote:
 Has anything been done to try to marry these together yet?  

PuREST JSON includes a sonification for Bitcoin values going back to
2011, but I guess, that is not what you wanted to know.

Thanks,
Thomas
-- 
We left all that stuff out. If there's an error, we have this
routine called panic, and when it is called, the machine crashes,
and you holler down the hall, 'Hey, reboot it.' (Dennis Ritchie)
http://www.residuum.org/

___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list___
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list