[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart


On Saturday, 23 August 2014 06:09:00 UTC+2, jason wrote:
>
> On 8/21/14, 11:36, Bill Hart wrote: 
> > You can define the A.b syntax in Julia if you should so desire. It's 
> > essentially just another kind of method overload in Julia. 
> > 
> > And then, it supports A. giving a list of all the things that could 
> > follow the dot, just as Python would. 
>
> Are you saying you can overload the dot operator?  I thought that was 
> still an open issue (https://github.com/JuliaLang/julia/issues/1974). 
>

I don't think it has been implemented just yet. I thought it would make 
0.3, but it looks like nothing has happened in that direction yet.

But there's absolutely nothing preventing it, except for the fact that the 
Julia developers don't seem to want a profusion of dots everywhere.

It's not such a useful thing in a language with multimethods, I think.
 

>
> Harold: Julia does have a module system, which Bill illustrated, that 
> uses the dot to access members of the module.  And a dot also accesses 
> fields of a type instance. 
>
> Thanks, 
>
> Jason 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart


On Saturday, 23 August 2014 04:26:10 UTC+2, jason wrote:
>
> On 8/21/14, 18:08, Bill Hart wrote: 
> > In theory, I can do generic programming in Julia that is faster (at 
> > runtime) than you can do in *any* C compiler. And I don't just mean a 
> > little bit. I mean a lot. I don't even think the Julia people fully 
> > realise this yet (I might be wrong about that, I don't know). And it's 
> > not been realised in practice for many cases. But it is true. 
>
> Are you talking about the sort of things illustrated in this julia issue 
> with the various macros they talk about? 
>
> https://github.com/JuliaLang/julia/issues/7033 
>

That's not an example of what I have in mind, but it is an example of the 
sort of thing that is possible with type inference and macros.

Very nice example. Thanks for pointing it out.

(So the Julia developers really do know what they are onto. :-))
 

>
> Thanks, 
>
> Jason 
>
> P.S. I've been following Julia for a while and I'm very intrigued by it. 
>   I've also started keeping an eye on Nemo recently---very interesting! 
>

Cool.
 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Jason Grout

On 8/21/14, 11:36, Bill Hart wrote:

You can define the A.b syntax in Julia if you should so desire. It's
essentially just another kind of method overload in Julia.

And then, it supports A. giving a list of all the things that could
follow the dot, just as Python would.


Are you saying you can overload the dot operator?  I thought that was 
still an open issue (https://github.com/JuliaLang/julia/issues/1974).


Harold: Julia does have a module system, which Bill illustrated, that 
uses the dot to access members of the module.  And a dot also accesses 
fields of a type instance.


Thanks,

Jason


--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: About "pi?"

2014-08-22 Thread Erik Massop
Dear all,


This is now ticket #16871: http://trac.sagemath.org/ticket/16871


Regards,

Erik Massop


On Thu, 21 Aug 2014 13:33:53 -0700 (PDT)
Volker Braun  wrote:

> +1 to dynamically generating a suitable docstring if the expression 
> consists only of a single constant. But IMHO it should still make clear 
> that this is a symbolic expression, so every functionality for symbolics 
> still applies. Its just a special symbolic expression that is just a 
> constant.
> 
> 
> On Thursday, August 21, 2014 9:18:50 PM UTC+1, Erik Massop wrote:
> >
> > On Thu, 21 Aug 2014 09:38:54 -0700 (PDT) 
> > kcrisman > wrote: 
> >
> > > In this class, we don't quite instantiate the nice documentation we 
> > > actually have for TwinPrime 
> > ... 
> > > but instead do 
> > > TwinPrime().expression() 
> > > which gets rid of all that useful info.  Same for most such constants, I 
> > > believe, so that they are in the symbolic ring/Ginac. 
> > > 
> > > Does anyone have a quick way to fix this?  (Maybe even by getting rid of 
> > > .expression() ?)  I have wondered about this too but I knew what the 
> > twin 
> > > prime constant was so I didn't run into it... but of course Nathann is 
> > > right that this is not that helpful currently. 
> >
> > The quickest fix is probably writing in the documentation of 
> > sage.symbolic.expression.Expression that the user should maybe try 
> >   sage: tmp = expression.pyobject() 
> >   sage: tmp? 
> > for some more useful information. 
> >
> > Here's what the result would be for twinprime: 
> >
> > sage: tmp =  twinprime.pyobject() 
> > sage: tmp? 
> > Type:   TwinPrime 
> > String form:twinprime 
> > File:   
> > /home/erik/sage/local/lib/python2.7/site-packages/sage/symbolic/constants.py
> >  
> >
> > Docstring: 
> >The Twin Primes constant is defined as prod 1 - 1/(p-1)^2 for 
> >primes p > 2. 
> >
> >EXAMPLES: 
> >
> >   sage: float(twinprime) 
> >   0.6601618158468696 
> >   sage: twinprime.n(digits=60) 
> >   0.660161815846869573927812110014555778432623360284733413319448 
> >
> > Init docstring: 
> >EXAMPLES: 
> >
> >   sage: loads(dumps(twinprime)) 
> >   twinprime 
> >
> >
> > The docstring of sage.symbolic.expression.Expression-objects could also 
> > be dynamically generated. This is done as a proof of concept in the 
> > attached patch. Recursing in docstring generation is maybe not so nice 
> > though. Also you still get the nasty Init and Call documentation from 
> > Expression. The cleanest solution from a docstring-perspective is 
> > probably getting rid of expression(). 
> >
> > Is there a ticket for this? 
> >
> >
> > Regards, 
> >
> > Erik Massop 
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread Jason Grout

On 8/22/14, 0:45, Fernando Perez wrote:

Because our execution model decouples the kernel from the filesystem,
the user gets their 'normal' environment, files, etc, and they don't
really need to know anything about the VM to get to their work, their
directories, etc.


Their .sage and .ipynb files would live on the windows side, but if they 
have some data they want to analyze (like a file to read in, or a file 
to save to), they'd still have to somehow get that data into/out of the 
VM.  You're right that it's easier than what we have, though!


Thanks,

Jason


--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] On scientific computing, Python and Julia

2014-08-22 Thread rjf


On Friday, August 22, 2014 2:04:35 PM UTC-7, Bill Hart wrote:
>
>
> RJF said...
>> I don't know about canonical maps.  The term "canonical representation"
>> makes sense to me.
>>
>
> He means this. In algebra Z/nZ is actually a ring modulo an ideal. Z is 
> the ring, nZ is the ideal.
>
> The elements of Z/nZ are usually written a + nZ. It means precisely this:
>
> a + nZ = { x in Z such that x = a +nk for some k in Z }
>
> So it is a *set* of numbers (actually, in algebra it is called a coset).
>
> When you write Mod(a, n) you really mean a + nZ if you are an algebraist, 
> i.e. the *set* of numbers congruent to a modulo n.
>
> So Z/nZ consists of (co)sets of the form C = Mod(a, n) = a + nZ. If you 
> like Z/nZ is a set of sets (actually a group of cosets in algebra).
>
> There is a canonical map from Z to Z/nZ: we map b in Z to the (co)set C in 
> Z/nZ that contains b. 
>
> If a = b mod n then C = mod(a, n) is the *only* one of these sets which 
> contains b. So the map is canonical. We only have one choice.
>
> But there is no canonical map going the other way. For any such (co)set C, 
> which element of Z are you going to pick? Any of the elements of C will do.
>
> You can make an arbitrary choice, e.g. pick the unique element of C in the 
> range [0, n). Or you could pick the unique element in the range (-n/2, 
> n/2]. But that is not a canonical choice. You had to make an arbitrary 
> choice. Someone else may have made a different choice. (Indeed some people 
> use the latter choice because some algorithms, such as gcd and Jacobi 
> symbols run faster with this choice.)
>
> So canonical map means there is only one way you could define the map. You 
> don't need to tell anyone what your map is, because they *have* to make the 
> same choice as you, as there are no alternatives. That's the meaning of 
> canonical in mathematics.
>
> It's probably not a terminology they teach in Computer Algebra, 
>

There are few courses in Computer Algebra.   But the term canonical is used 
differently.   In fact, two systems could
have different canonical forms   (e.g. in your example, [0,n-1]or 
[-(n-1)/2, (n-1)/2]   for representatives of the numbers mod n.

Just as one system could have  1+x+x^2   and another x^2+x+1.

But for each system with a canonical form for polynomials, all polynomials 
in its canonical form would be
identical bit patterns.   Some systems e.g. Maple go further and have all 
canonical and equal forms stored
at the same machine address.

 

> but it is taught to undergraduates around the world in pure mathematics.
>

Um, some English speaking students who take, um, certain electives?

 

>
> The whole argument here is that because only one direction gives a 
> canonical map, coercion must only proceed in that direction. Otherwise your 
> computer algebra system is making a choice that someone else's computer 
> algebra system does not.
>

But that is perfectly all right.  canoncality is with respect to a 
particular computer system.  At least
my kind of canonicality.

Otherwise we could not live with BigEndian and LittleEndian computers.  But 
we do.

  
>
>>  
>>
>> ... big snip
RJF
 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Jason Grout

On 8/21/14, 18:08, Bill Hart wrote:

In theory, I can do generic programming in Julia that is faster (at
runtime) than you can do in *any* C compiler. And I don't just mean a
little bit. I mean a lot. I don't even think the Julia people fully
realise this yet (I might be wrong about that, I don't know). And it's
not been realised in practice for many cases. But it is true.


Are you talking about the sort of things illustrated in this julia issue 
with the various macros they talk about?


https://github.com/JuliaLang/julia/issues/7033

Thanks,

Jason

P.S. I've been following Julia for a while and I'm very intrigued by it. 
 I've also started keeping an eye on Nemo recently---very interesting!



--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Docs, "return" vs. "returns" etc.

2014-08-22 Thread Ralf Hemmecke
On 08/22/2014 10:14 PM, Volker Braun wrote:
> On Friday, August 22, 2014 9:11:08 PM UTC+1, Ralf Hemmecke wrote:
>>
>> Well, of course, a name is just a name. So call the function 'foo' 
>> instead of 'nonzero'. Would you still be happy with the specification? 
>>
> 
> I wouldn't be happy with the method name to start with. No amount of 
> documentation can save a badly-chosen UI. The aim should always be to be so 
> clear that the use doesn't have to look it up in the docs.

Maybe I should say that I'm on your side when it comes to name methods
by full name and in such a way that they basically describe what they
do. Nevertheless, the function name is not the specification. The point
I want to make is that some programmer might have chosen a name that
does not exactly describe what the function does, i.e. in some cases the
reader of the API would believe something from the name that is actually
wrong. Now suppose that in such a case the docstring is vague and
somehow relies on the programmers (false) belief that he chose the name
right. I guess you probably agree with me that this calls for bugs later.

There should be no need to look at the source code in order to know the
input/output behaviour of a function. The documentation should suffice.
If the function is named well, that's certainly a plus, but the
specification is what is really important, not the name of the function.

For example, take "mod" and suppose the documentation says. For two
integers a and b (b nonzero), a mod b computes the remainder of the
division of a by b.

Unless the programmer has specified somewhere what he means by
"remainder", I wouldn't exactly know what this function does.
Or would you know what mod(6,7) would return with the above
specification? Does the name "mod" help you? Maybe you say, that name is
bad. OK.

Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart


On Friday, 22 August 2014 21:58:15 UTC+2, rjf wrote:
>
>
>
> On Wednesday, August 20, 2014 9:54:02 PM UTC-7, Robert Bradshaw wrote:
>>
>> On Fri, Aug 8, 2014 at 6:57 PM, rjf  wrote: 
>> > 
>> > 
>> > On Thursday, August 7, 2014 10:55:37 PM UTC-7, Robert Bradshaw wrote: 
>> >> 
>> >> On Thu, Aug 7, 2014 at 9:02 AM, rjf  wrote: 
>> >> > 
>> >> > 
>> >> > On Wednesday, August 6, 2014 8:11:21 PM UTC-7, Robert Bradshaw 
>> wrote: 
>> >> >> 
>> >> >> 
>> >> >> 
>> >> >> The are two representations of the same canonical object. 
>> >> > 
>> >> > 
>> >> > The (computer algebra) use of the term, as in "simplified to a 
>> canonical 
>> >> > form"  means 
>> >> > the representation is canonical.  It doesn't make much sense to 
>> claim 
>> >> > that 
>> >> > all these 
>> >> > are canonical:   1+1, 2,  2*x^0,  sin(x)^2+cos(x)^2 + exp(0). 
>> >> 
>> >> The point was that there's a canonical domain in which to do the 
>> >> computation. 
>> > 
>> > I have not previously encountered the term "canonical domain".  There 
>> is 
>> > a CAS literature which includes the concept of simplification to a 
>> canonical 
>> > form. 
>> > There is also a useful concept of a zero-equivalence test, whereby 
>> E1-E2 
>> > can be shown to be zero, although there is not necessarily a 
>> simplification 
>> > routine that will "canonically simplify"  E1  to E3 and also E2 to E3. 
>>
>> You have to think beyond just the limited domain of a computer *algebra* 
>> system. 
>>
>
> Actually I am thinking in terms of computer representation, not just a CAS.
> You appear to be thinking in some extra-computational way that bits are 
> not bits.
>
> There is a quote from Lewis Carroll's Humpty Dumpty, to the effect that
> words mean whatever he says they mean,… who, after all, is the master.
>
> You and I apparently disagree about the term "canonical".
>  
>
>>
>> If I want to do arithmetic between a \in Z and b \in Z/nZ, I could 
>> either lift b to Z or push a down to Z/nZ. Only one of these maps is 
>> canonical. 
>>
>
> I don't know about canonical maps.  The term "canonical representation"
> makes sense to me.
>

He means this. In algebra Z/nZ is actually a ring modulo an ideal. Z is the 
ring, nZ is the ideal.

The elements of Z/nZ are usually written a + nZ. It means precisely this:

a + nZ = { x in Z such that x = a +nk for some k in Z }

So it is a *set* of numbers (actually, in algebra it is called a coset).

When you write Mod(a, n) you really mean a + nZ if you are an algebraist, 
i.e. the *set* of numbers congruent to a modulo n.

So Z/nZ consists of (co)sets of the form C = Mod(a, n) = a + nZ. If you 
like Z/nZ is a set of sets (actually a group of cosets in algebra).

There is a canonical map from Z to Z/nZ: we map b in Z to the (co)set C in 
Z/nZ that contains b. 

If a = b mod n then C = mod(a, n) is the *only* one of these sets which 
contains b. So the map is canonical. We only have one choice.

But there is no canonical map going the other way. For any such (co)set C, 
which element of Z are you going to pick? Any of the elements of C will do.

You can make an arbitrary choice, e.g. pick the unique element of C in the 
range [0, n). Or you could pick the unique element in the range (-n/2, 
n/2]. But that is not a canonical choice. You had to make an arbitrary 
choice. Someone else may have made a different choice. (Indeed some people 
use the latter choice because some algorithms, such as gcd and Jacobi 
symbols run faster with this choice.)

So canonical map means there is only one way you could define the map. You 
don't need to tell anyone what your map is, because they *have* to make the 
same choice as you, as there are no alternatives. That's the meaning of 
canonical in mathematics.

It's probably not a terminology they teach in Computer Algebra, but it is 
taught to undergraduates around the world in pure mathematics.

The whole argument here is that because only one direction gives a 
canonical map, coercion must only proceed in that direction. Otherwise your 
computer algebra system is making a choice that someone else's computer 
algebra system does not.
  

>  
>
>>
>> >> We also have an object called the ring of integers, but really it's 
>> >> the ring of integers that fits into the memory of your computer. 
>> >> Should we not call it a Ring? 
>> > 
>> > The domain of arbitrary-precision integers is an excellent model of the 
>> > ring of integers.  It is true that one can specify a computation that 
>> would 
>> > fill up the memory of all the computers in existence. or even all the 
>> atoms 
>> > in the (known?) universe.  Presumably a well-constructed support system 
>> > will give an error message on much smaller examples.   I assume 
>> > that your Real Field  operation of   division would give an error if 
>> the 
>> > result is inexact. 
>>
>> Such a system would be pedantic to the point of being unuseful. 
>>
>
> Quite the contrary. IEEE 754 specifies an "inexact" flag.
>  
>
>>
>> ….snip...
>
>  

[sage-devel] Re: sage make fail @ ntl

2014-08-22 Thread Volker Braun
My guess would be that either your nfs client or server have problems with 
acls. If you have administrative access you could mount with the "noacl" 
option. Or build somewhere under /tmp

From 
http://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/s1-nfs-client-config-options.html

noacl — Turns off all ACL processing. This may be needed when interfacing 
with older versions of Red Hat Enterprise Linux, Red Hat Linux, or Solaris, 
since the most recent ACL technology is not compatible with older systems.


On Friday, August 22, 2014 9:56:31 PM UTC+1, Mark ODell wrote:
>
> modell@bacchus$ mount
>
> /dev/xvda1 on / type ext3 (rw)
> proc on /proc type proc (rw)
> sysfs on /sys type sysfs (rw)
> devpts on /dev/pts type devpts (rw,gid=5,mode=620)
> tmpfs on /dev/shm type tmpfs (rw)
> none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
> sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
> irsafs1:/export/home/modell on /home/modell type nfs 
> (rw,nosuid,intr,rsize=32768,wsize=32768,addr=134.4.70.111)
>
>
>
>
> On Friday, August 22, 2014 11:22:43 AM UTC-7, Volker Braun wrote:
>>
>> I've never seen that before. Can you tell us which file systems you are 
>> using? Output of "mount"?
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] sage make fail @ ntl

2014-08-22 Thread Mark ODell

no default access control that I am aware of
though I do little with ACLs 
a specific command you would like run for output ?


modell@bacchus$ getfacl --access 
/home/modell/pkg/sage/sage-6.3/local/include/NTL/version.h

getfacl: Removing leading '/' from absolute path names
# file: home/modell/pkg/sage/sage-6.3/local/include/NTL/version.h
# owner: modell
# group: irsa
user::rw-
group::r--
mask::rwx
other::r--



On Friday, August 22, 2014 12:01:35 PM UTC-7, Jori Mantysalo wrote:
>
> On Fri, 22 Aug 2014, Mark ODell wrote: 
>
> > cp: preserving ACL for 
> > `/home/modell/pkg/sage/sage-6.3/local/include/NTL/version.h': Operation 
> not 
> > supported 
>
> > Error installing package ntl-6.1.0.p0 
>
> Do you have some default ACL's set up? Something like 
>
> setfacl -m --default u:backup:r 
>
> said to directory you are using? Error message in itself is normal, for 
> example: 
>
> [root@localhost ~]# echo foo > bar 
> [root@localhost ~]# setfacl -m u:jori:w /boot/bar 
> [root@localhost ~]# cp -a bar /boot/ 
> cp: preserving permissions for ‘/boot/bar’: Operation not supported 
>
> (I.e. on this system /boot has no ACL support enabled.) 
>
> But what is make-command doing? I would try with 
>
> strace -e file make 2>&1 1>/dev/null | fgrep -5 version.h 
>
> or something like that. 
>
> -- 
> Jori Mäntysalo 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: sage make fail @ ntl

2014-08-22 Thread Mark ODell
modell@bacchus$ mount

/dev/xvda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
irsafs1:/export/home/modell on /home/modell type nfs 
(rw,nosuid,intr,rsize=32768,wsize=32768,addr=134.4.70.111)




On Friday, August 22, 2014 11:22:43 AM UTC-7, Volker Braun wrote:
>
> I've never seen that before. Can you tell us which file systems you are 
> using? Output of "mount"?
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Docs, "return" vs. "returns" etc.

2014-08-22 Thread Volker Braun
On Friday, August 22, 2014 9:11:08 PM UTC+1, Ralf Hemmecke wrote:
>
> Well, of course, a name is just a name. So call the function 'foo' 
> instead of 'nonzero'. Would you still be happy with the specification? 
>

I wouldn't be happy with the method name to start with. No amount of 
documentation can save a badly-chosen UI. The aim should always be to be so 
clear that the use doesn't have to look it up in the docs.  

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Docs, "return" vs. "returns" etc.

2014-08-22 Thread Ralf Hemmecke
> Suppose you have: 
>> "nonzero(x) tests whether x is zero or not" 

> Your example is confusing because the method name is not expressive enough. 
> Call it is_nonzero() and it is much clearer. Or maybe ensure_nonzero(x) if 
> you want to return x if x!=0 and something else if x==0.

Well, of course, a name is just a name. So call the function 'foo'
instead of 'nonzero'. Would you still be happy with the specification?

Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] On scientific computing, Python and Julia

2014-08-22 Thread rjf


On Wednesday, August 20, 2014 9:55:56 PM UTC-7, Robert Bradshaw wrote:
>
>
> You're (intentionally?) missing the point. 
>
> Given the linear system Ax = b, where A and b are given in terms of 
> floating point numbers, one could 
>
> (1) Return x' that is the closest (according to some chosen rounding 
> scheme) to the x exact solution of Ax = b, treating the entries of A 
> and b as exact rational numbers. 
>

In other words, find the exact solution and then 'round' it.  Impractical
generally. 

>
> (2) Solve for x approximately, in such a way that x is the exact 
> solution to a perturbed problem, and one is able to bound the error 
> wrt the exact solution in terms of condition numbers, etc. 
>

Maybe you could find a quote?  Offhand, I would not phrase it
that way.  More like... Find an exact representable x that is the solution 
to some perturbed version of the original problem.  

>
> Approach (2) is saying, to quote you, "oh, this data might not be 
> right so instead of solving the system as best as I can, I will use 
> some off-hand rule to clip bits off" where the "clipping" here is not 
> treating the unrepresented lower order bits as all 0. The input is not 
> taken to be exact (meaning exactly representing the system you really 
> want to solve). 
>

i thought I was restating YOUR hypothesis that the numbers might not be 
right so why bother messing with all those bits.I would prefer to treat 
all the input numbers as exact rationals.  Unfortunately those numbers may 
describe a system that does not have an exact representable solution,  so 
you have this "backward error analysis" approach.
 

>
> All (floating point) linear algebra software that I'm aware of take 
> approach (2). 
>

Except that your description and mine  of  "sort of"  approach (2) differ.

 

>
> - Robert 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] On scientific computing, Python and Julia

2014-08-22 Thread rjf


On Wednesday, August 20, 2014 9:54:02 PM UTC-7, Robert Bradshaw wrote:
>
> On Fri, Aug 8, 2014 at 6:57 PM, rjf > 
> wrote: 
> > 
> > 
> > On Thursday, August 7, 2014 10:55:37 PM UTC-7, Robert Bradshaw wrote: 
> >> 
> >> On Thu, Aug 7, 2014 at 9:02 AM, rjf  wrote: 
> >> > 
> >> > 
> >> > On Wednesday, August 6, 2014 8:11:21 PM UTC-7, Robert Bradshaw wrote: 
> >> >> 
> >> >> 
> >> >> 
> >> >> The are two representations of the same canonical object. 
> >> > 
> >> > 
> >> > The (computer algebra) use of the term, as in "simplified to a 
> canonical 
> >> > form"  means 
> >> > the representation is canonical.  It doesn't make much sense to claim 
> >> > that 
> >> > all these 
> >> > are canonical:   1+1, 2,  2*x^0,  sin(x)^2+cos(x)^2 + exp(0). 
> >> 
> >> The point was that there's a canonical domain in which to do the 
> >> computation. 
> > 
> > I have not previously encountered the term "canonical domain".  There is 
> > a CAS literature which includes the concept of simplification to a 
> canonical 
> > form. 
> > There is also a useful concept of a zero-equivalence test, whereby E1-E2 
> > can be shown to be zero, although there is not necessarily a 
> simplification 
> > routine that will "canonically simplify"  E1  to E3 and also E2 to E3. 
>
> You have to think beyond just the limited domain of a computer *algebra* 
> system. 
>

Actually I am thinking in terms of computer representation, not just a CAS.
You appear to be thinking in some extra-computational way that bits are not 
bits.

There is a quote from Lewis Carroll's Humpty Dumpty, to the effect that
words mean whatever he says they mean,… who, after all, is the master.

You and I apparently disagree about the term "canonical".
 

>
> If I want to do arithmetic between a \in Z and b \in Z/nZ, I could 
> either lift b to Z or push a down to Z/nZ. Only one of these maps is 
> canonical. 
>

I don't know about canonical maps.  The term "canonical representation"
makes sense to me.
 

>
> >> We also have an object called the ring of integers, but really it's 
> >> the ring of integers that fits into the memory of your computer. 
> >> Should we not call it a Ring? 
> > 
> > The domain of arbitrary-precision integers is an excellent model of the 
> > ring of integers.  It is true that one can specify a computation that 
> would 
> > fill up the memory of all the computers in existence. or even all the 
> atoms 
> > in the (known?) universe.  Presumably a well-constructed support system 
> > will give an error message on much smaller examples.   I assume 
> > that your Real Field  operation of   division would give an error if the 
> > result is inexact. 
>
> Such a system would be pedantic to the point of being unuseful. 
>

Quite the contrary. IEEE 754 specifies an "inexact" flag.
 

>
> ….snip...

 

> > or  log(-1)  when you were first introduced to log? 
> >> 
> >> Only being able to store 53 significant bits is completely analogous 
> >> to only being able to read 3 significant (decimal) figures. 
> > 
> > 
> > Actually this analogy is false.  The 3 digits (sometimes 4) from a slide 
> > rule are the best that can be read out because of the inherent 
> uncertainty 
> > in the rulings and construction of the slide rule, the human eye reading 
> > the lines, etc.   So if I read my slide rule and say 0.25  it is because 
> I 
> > think 
> > it is closer to 0.25  than 0.24 or 0.26   There is uncertainty there. 
> > If a floating point number is computed as 0.25, there is no uncertainty 
> in 
> > the representation per se.  It is 1/4, exactly a binary fraction, etc. 
> > Now you could use this representation in various ways, e.g. 
> > 0.25+-0.01storing 2 numbers representing a center and a "radius" 
> > or an interval or /   But the floating point number itself is simply 
> > a computer representation of a particular rational numberaaa x 2^bbb 
> > Nothing more, nothing less.  And in particular it does NOT mean 
> > that bits 54,55,56... are uncertain.  Those bits do not exist in the 
> > representation 
> > and are  irrelevant for ascertaining the value of the number aaa x 
> 2^bbb. 
> > 
> > So the analogy is false. 
>
> I would argue that most floating point numbers are either (1) 
> real-world measurements or (2) intermediate results, both of which are 
> (again, likely) approximations to the value they're representing.


You could assert this, but what is the point?  You might as well assert
that the computer number system consists of the integers 1,2,3, infinity, 
 because 
(according to George Gamow) that's what some humans use for counting.

When 
> they are measured/stored, they are truncated due to the "construction 
> of the [machine], the [sensor] reading the [values], etc." Thus the 
> analogy. 
>

Since the computer has no inherent way of recording in a floating-point 
number anything more than a single exact rational number, that is the 
starting point for arithmetic.  If you want more information about the 
possible er

Re: [sage-devel] Re: Docs, "return" vs. "returns" etc.

2014-08-22 Thread Volker Braun
On Friday, August 22, 2014 8:20:22 PM UTC+1, Ralf Hemmecke wrote:
>
> I hate it when someone documents 'test whether this and that holds'. Or 
> is there some convention that a test returns true if something holds and 
> false otherwise? 
>

Is there anybody returning "False" if the property holds? Probably not. 

If the method is named well, for example is_foo() or has_property(), then 
it is self-explanatory that the result is boolean and what True means. If 
you still have doubts there is also the "OUTPUT:" section of the 
doctstrings to clear it up.

Suppose you have: 
> "nonzero(x) tests whether x is zero or not" 
>

Of course __nonzero__() is a Python magic method, but let's ignore that for 
the sake of the argument. 

Your example is confusing because the method name is not expressive enough. 
Call it is_nonzero() and it is much clearer. Or maybe ensure_nonzero(x) if 
you want to return x if x!=0 and something else if x==0.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread Volker Braun
On Friday, August 22, 2014 7:54:57 PM UTC+1, Fernando Perez wrote:
>
> - a headless VM is less 'alien' to user. T\(they can use their familiar 
> browser, extensions, etc, and they don't have to see a new desktop. The 
> whole 'destkop in a desktop' can be confusing to new users.
>

I agree, which is why our virtual machine doesn't have a desktop. You only 
get a single full-screen web browser that you can't switch away from.

In any case, its clear that the user experience on windows could be 
improved easily. It just requires somebody to do it. I don't even have a 
windows machine where I could test it on...


-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart
I think I know how I will solve the Julia package issue for Nemo.

I will definitely make Nemo a standard Julia package. People who want to 
just do Pkg.add("Nemo") from within Julia will be able to do so. If you 
have Julia on your machine that should be all that is necessary. It'll 
automatically check out flint for you and install it. This sort of thing 
happens with a lot of Julia packages, as many of them depend on external 
native libraries.

For people who want algebraic semantics for the operators and possibly 
bignum parsing as default (if it turns out to be workable), there will be 
an additional AlgebraicBase module which people will be able to download 
and install in bare module mode.

I think this should keep everyone happy.

On Friday, 22 August 2014 19:38:01 UTC+2, Bill Hart wrote:
>
> One interesting thing I should mention is that loading Julia in bare 
> module mode and redefining all the basic operators and so on does not break 
> all of Julia's libraries. They all continue to operate as normal.
>
> This was quite a surprise to me when I first found out, but all those 
> modules have to import Base themselves, and so as far as they are 
> concerned, everything operates just as it would in normal Julia. 
>
> The operators don't get redefined for everybody when those modules import 
> Base, but they just get locally redefined for the modules that use them.
>
> Maybe that's also the same with Python. I guess it must be. But it costs 
> nothing, at least, in Julia.
>
> On Friday, 22 August 2014 19:17:29 UTC+2, Bill Hart wrote:
>>
>>
>>
>> On Friday, 22 August 2014 14:10:10 UTC+2, Pierre wrote:
>>>
>>> Thanks for the examples. However, given that in Julia you can re-define 
>>> about everything (cf your example with the function extracting elements 
>>> from a list, replaced by " print 'test' "), surely you could change, say, 
>>> the behaviour of the function / upon loading the Nemo module? (without 
>>> mention of a bare-module mode or anything) This in order to make the 
>>> ordinary machine words behave consistently in comparison with bignums. 
>>> (There would be the occasional problem when someone has written code 
>>> speciafically expecting a/b to be a float, but will you ever mix code 
>>> involving floats with your own ?) This would be the exact reverse of the 
>>> "from __future__ import division" which you see at the beginning of so many 
>>> python+numpy scripts.
>>>
>>
>> You can redefine things that have already been defined, but it sometimes 
>> incurs a compiler warning. I will have to look into what can be done.
>>  
>>
>>>
>>> I don't think the factorization of a = 
>>> 2*3*5^2*17*71*65537*123456543234565433489*3249861239487619238746032103420132947612384712340813246341
>>>  
>>> is a good example. You can expect the user to known that this will fail, 
>>> and wrap things in ZZ. (Do not underestimate the users: there are zillions 
>>> of casual C programmers out there who realize that "int" is not the same as 
>>> "double"; understanding the difference between Int64 and ZZ is no harder.) 
>>> Of course Python or Sage users don't have to worry about that. But isn't 
>>> Julia about better performance at the cost of specifying types?
>>>
>>> As for :
>>>
>>> >It's also a pain in the neck to take output from one system, such as 
>>> Pari/GP and cut and paste a long polynomial, having to put ZZ(...) around 
>>> every bignum. It's just not practical.
>>>
>>> i tend to disagree. A little function parse_PARI(string) or whatever 
>>> would be easy to write.
>>>
>>> I also have an unrelated question, still about Nemo. I think in Julia's 
>>> type system, when A <: B, then the intuition is that elements of type A are 
>>> also of type B, or am I wrong? Like elements of type Int64 are also of type 
>>> Integer (or whatever it's called). If so, your supertype of ZZ should not 
>>> be called Ring, but RingElement. For an element of ZZ is not a ring. Well, 
>>> abstract types are not types, they are more like type classes, but still 
>>> with the machine types the logic is as I've said.
>>>
>>> A <: B either tells you if a type A is of abstract type B or if abstract 
>> type A is of abstract type B.
>>
>> So, whether or not you use RingElement or Ring depends on whether you 
>> consider an element of ZZ to be a ring element or whether you think the 
>> integers ZZ form a ring.
>>
>> With the machine types, we really want a :: T where T <: Integer <: Ring. 
>> Again with the baremodule idea, we might be able to do this, but it's not 
>> possible if you use the standard provided modules, as far as I can tell.
>>
>> The logic from my point of view is that a type is a collection of values, 
>> and as such Integer <: Ring, not Integer <: RingElement. But the 
>> distinction is arbitrary.
>>
>> In the case of finite fields, I had an argument with myself about whether 
>> I should use FFElem or FField. I decided on the latter. I would have liked 
>> to use FiniteField, but this is the name I wan

Re: [sage-devel] Re: Docs, "return" vs. "returns" etc.

2014-08-22 Thread Ralf Hemmecke
> Shorter is generally better for headlines, so I'd prefer "Test whether f is 
> foo" over "Return whether f is foo" over "Return ``True`` if f is foo, and 
> ``False`` otherwise".

I hate it when someone documents 'test whether this and that holds'. Or
is there some convention that a test returns true if something holds and
false otherwise?

Suppose you have:

"nonzero(x) tests whether x is zero or not"

What does nonzero return? You have at least 5 possible return values.

  True False 0 1 x

Would everyone interpret in the same way as the documenter actually
wanted it to be interpreted?

Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] sage make fail @ ntl

2014-08-22 Thread Jori Mantysalo

On Fri, 22 Aug 2014, Mark ODell wrote:


cp: preserving ACL for
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/version.h': Operation not
supported



Error installing package ntl-6.1.0.p0


Do you have some default ACL's set up? Something like

setfacl -m --default u:backup:r

said to directory you are using? Error message in itself is normal, for 
example:


[root@localhost ~]# echo foo > bar
[root@localhost ~]# setfacl -m u:jori:w /boot/bar
[root@localhost ~]# cp -a bar /boot/
cp: preserving permissions for ‘/boot/bar’: Operation not supported

(I.e. on this system /boot has no ACL support enabled.)

But what is make-command doing? I would try with

strace -e file make 2>&1 1>/dev/null | fgrep -5 version.h

or something like that.

--
Jori Mäntysalo

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread Fernando Perez
On Fri, Aug 22, 2014 at 4:42 AM, Volker Braun  wrote:

> That is not so unlike the current VM which runs the sage notebook web
> server. You can then connect to it with the host browser, if you want (it
> does pop up a browser inside the VM because 1. why not and 2. firewall
> issues).


Yup, I know that's how it currently works. But with this proposal:

- a headless VM is less 'alien' to user. T\(they can use their familiar
browser, extensions, etc, and they don't have to see a new desktop. The
whole 'destkop in a desktop' can be confusing to new users.

- it's also far lighter in resources. Much smaller disk image, memory
footprint and runtime overhead, since you only deploy a tiny container
instead of a full-blown desktop envrionment.

- users see their normal filesystem and tools, and they can install and
manage the non-sage parts of the runtime with tools that work well on
Windows like Anaconda or Enthought Canopy (or even do a manual install if
they so desire, the dependencies are all easily pip-able).


As I said, just an idea for you guys to consider, since I know that a good
Windows experience is still an elusive goal.

Cheers,

f


-- 
Fernando Perez (@fperez_org; http://fperez.org)
fperez.net-at-gmail: mailing lists only (I ignore this when swamped!)
fernando.perez-at-berkeley: contact me here for any direct mail

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Docs, "return" vs. "returns" etc.

2014-08-22 Thread Volker Braun
PEP8 says use "Return ...", not "Returns ...".

Shorter is generally better for headlines, so I'd prefer "Test whether f is 
foo" over "Return whether f is foo" over "Return ``True`` if f is foo, and 
``False`` otherwise".

``True`` is the correct markup for the Python true value.

Either way, I wouldn't lose too much sleep on this issue ;-)


On Friday, August 22, 2014 7:36:58 PM UTC+1, Jori Mantysalo wrote:
>
> On Fri, 22 Aug 2014, Travis Scrimshaw wrote: 
>
> >> Next, short description. There are three different style used 
> >> for True/False -functions: 
>
> >   - Returns True if the poset has a unique minimal element. 
> >   - Returns True if the poset is totally ordered, and False 
> >   otherwise. 
> >   - Returns whether f is an EL labelling of self  
> > 
> > I'd take the middle one (but starting with "Return") . I forget the link 
> > off-hand, but there is a place in the Sage doc about this.  
>
> Seems to be this: 
>
> http://www.sagemath.org/doc/developer/coding_basics.html#documentation-strings
>  
>
> There is also a slight inconsistency on this: In the function list there 
> is written "Returns the order polytope of the poset." wherease function 
> description says "Return the order polytope of the poset self." Should the 
> two always be exactly same? If not, when to have different 
> oneline-description? 
>
> Also some functions returns True, others ``True``. 
>
> To me it sounds too trivial to say that if function is_something does not 
> return True then it returns False. Other opinions? 
>
>   * * * 
>
> Finnish "pilkunnussinta" translates directly to "making love with comma 
> character"... What is right term for messages like this one? 
>
> -- 
> Jori Mäntysalo 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Docs, "return" vs. "returns" etc.

2014-08-22 Thread Jori Mantysalo

On Fri, 22 Aug 2014, Travis Scrimshaw wrote:


Next, short description. There are three different style used
for True/False -functions:



  - Returns True if the poset has a unique minimal element.
  - Returns True if the poset is totally ordered, and False
  otherwise.
  - Returns whether f is an EL labelling of self 

I'd take the middle one (but starting with "Return") . I forget the link
off-hand, but there is a place in the Sage doc about this. 


Seems to be this: 
http://www.sagemath.org/doc/developer/coding_basics.html#documentation-strings


There is also a slight inconsistency on this: In the function list there 
is written "Returns the order polytope of the poset." wherease function 
description says "Return the order polytope of the poset self." Should the 
two always be exactly same? If not, when to have different 
oneline-description?


Also some functions returns True, others ``True``.

To me it sounds too trivial to say that if function is_something does not 
return True then it returns False. Other opinions?


 * * *

Finnish "pilkunnussinta" translates directly to "making love with comma 
character"... What is right term for messages like this one?


--
Jori Mäntysalo

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: sage make fail @ ntl

2014-08-22 Thread Volker Braun
I've never seen that before. Can you tell us which file systems you are 
using? Output of "mount"?

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] sage make fail @ ntl

2014-08-22 Thread Mark ODell
sage-devel Sages,

I have not tried to build sage before, and am blindly providing the 
requested submission of make fail info.  

'Looked at first like a problem with copying, mode bits, & ACLs, but thats 
probably not the real cause.  

Will continue debugging, but please let me know if this is a recognized 
issue, or it is clear what I am doing wrong (so far just typed "make" tho 
;-).  

Trusting the "fully automatic" install, I have not changed anything since 
expanding the tarball.  

It does look like much of sage itself built fine, but just got in trouble 
building ntl.  

All the "Operation not supported" complaints are concerning, but maybe 
nothing.  

Thanks,

Mark





modell@bvacchus$ make
.
.
.
cp: preserving ACL for 
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/version.h': Operation not 
supported
cp: preserving permissions for 
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/xdouble.h': Operation not 
supported
cp: preserving ACL for 
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/xdouble.h': Operation not 
supported
make[3]: *** [install] Error 1
make[3]: Leaving directory 
`/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0/src/ntl/src'
Error installing NTL.

real14m11.742s
user12m46.224s
sys 0m45.275s

Error installing package ntl-6.1.0.p0

Please email sage-devel (http://groups.google.com/group/sage-devel)
explaining the problem and including the relevant part of the log file
  /home/modell/pkg/sage/sage-6.3/logs/pkgs/ntl-6.1.0.p0.log
Describe your computer, operating system, etc.
If you want to try to fix the problem yourself, *don't* just cd to
/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0 and 
type 'make' or whatever is appropriate.
Instead, the following commands setup all environment variables
correctly and load a subshell for you to debug the error:
  (cd 
'/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0' && 
'/home/modell/pkg/sage/sage-6.3/sage' --
sh)
When you are done debugging, you can type "exit" to leave the subshell.

make[2]: *** 
[/home/modell/pkg/sage/sage-6.3/local/var/lib/sage/installed/ntl-6.1.0.p0] 
Error 1
make[2]: Leaving directory `/home/modell/pkg/sage/sage-6.3/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/modell/pkg/sage/sage-6.3/build'

real121m44.060s
user81m39.766s
sys 24m35.808s
***
Error building Sage.

The following package(s) may have failed to build:

package: ntl-6.1.0.p0
log file: /home/modell/pkg/sage/sage-6.3/logs/pkgs/ntl-6.1.0.p0.log
build directory: 
/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0

The build directory may contain configuration files and other potentially
helpful information. WARNING: if you now run 'make' again, the build
directory will, by default, be deleted. Set the environment variable
SAGE_KEEP_BUILT_SPKGS to 'yes' to prevent this.

make: *** [build] Error 1










> /home/modell/pkg/sage/sage-6.3/logs/pkgs/ntl-6.1.0.p0.log


Found local metadata for ntl-6.1.0.p0
Found local sources at 
/home/modell/pkg/sage/sage-6.3/upstream/ntl-6.1.0.tar.bz2
Checksum: d700374059b730d6d586272f8f78836857617790 vs 
d700374059b730d6d586272f8f78836857617790
ntl-6.1.0.p0

Setting up build directory for ntl-6.1.0.p0
cp: preserving permissions for `ntl-6.1.0.p0/patches/errorcallback.patch': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/errorcallback.patch': 
Operation not supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/make.patch': Operation 
not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/make.patch': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/configure.ac': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/configure.ac': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/new_singular.patch': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/new_singular.patch': Operation 
not supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/libtool_flag.patch': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/libtool_flag.patch': Operation 
not supported
cp: preserving permissions for `ntl-6.1.0.p0/patches': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/package-version.txt': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/package-version.txt': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/spkg-src': Operation not 
supported
cp: preserving ACL for `ntl-6.1.0.p0/spkg-src': Operation not supported
cp: preserving permissions for `ntl-6.1.0.p0/checksums.ini': Op

[sage-devel] sage make fail @ ntl

2014-08-22 Thread Mark ODell

sage-devel Sages,

I have not tried to build sage before, and am blindly providing the 
requested submission of make fail info.  

'Looked at first like a problem with copying, mode bits, & ACLs, but thats 
probably not the real cause.  

Will continue debugging, but please let me know if this is a recognized 
issue, or it is clear what I am doing wrong (so far just typed "make" tho 
;-).  

Trusting the "fully automatic" install, I have not changed anything since 
expanding the tarball.  

It does look like much of sage itself built fine, but just got in trouble 
building ntl.  

All the "Operation not supported" complaints are concerning, but maybe 
nothing.  

Thanks,

Mark





modell@bvacchus$ make
.
.
.
cp: preserving ACL for 
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/version.h': Operation not 
supported
cp: preserving permissions for 
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/xdouble.h': Operation not 
supported
cp: preserving ACL for 
`/home/modell/pkg/sage/sage-6.3/local/include/NTL/xdouble.h': Operation not 
supported
make[3]: *** [install] Error 1
make[3]: Leaving directory 
`/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0/src/ntl/src'
Error installing NTL.

real14m11.742s
user12m46.224s
sys 0m45.275s

Error installing package ntl-6.1.0.p0

Please email sage-devel (http://groups.google.com/group/sage-devel)
explaining the problem and including the relevant part of the log file
 /home/modell/pkg/sage/sage-6.3/logs/pkgs/ntl-6.1.0.p0.log
Describe your computer, operating system, etc.
If you want to try to fix the problem yourself, *don't* just cd to
/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0 and 
type 'make' or whatever is appropriate.
Instead, the following commands setup all environment variables
correctly and load a subshell for you to debug the error:
 (cd '/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0' 
&& '/home/modell/pkg/sage/sage-6.3/sage' --
sh)
When you are done debugging, you can type "exit" to leave the subshell.

make[2]: *** 
[/home/modell/pkg/sage/sage-6.3/local/var/lib/sage/installed/ntl-6.1.0.p0] 
Error 1
make[2]: Leaving directory `/home/modell/pkg/sage/sage-6.3/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/modell/pkg/sage/sage-6.3/build'

real121m44.060s
user81m39.766s
sys 24m35.808s
***
Error building Sage.

The following package(s) may have failed to build:

package: ntl-6.1.0.p0
log file: /home/modell/pkg/sage/sage-6.3/logs/pkgs/ntl-6.1.0.p0.log
build directory: 
/home/modell/pkg/sage/sage-6.3/local/var/tmp/sage/build/ntl-6.1.0.p0

The build directory may contain configuration files and other potentially
helpful information. WARNING: if you now run 'make' again, the build
directory will, by default, be deleted. Set the environment variable
SAGE_KEEP_BUILT_SPKGS to 'yes' to prevent this.

make: *** [build] Error 1










/home/modell/pkg/sage/sage-6.3/logs/pkgs/ntl-6.1.0.p0.log



Found local metadata for ntl-6.1.0.p0
Found local sources at 
/home/modell/pkg/sage/sage-6.3/upstream/ntl-6.1.0.tar.bz2
Checksum: d700374059b730d6d586272f8f78836857617790 vs 
d700374059b730d6d586272f8f78836857617790
ntl-6.1.0.p0

Setting up build directory for ntl-6.1.0.p0
cp: preserving permissions for `ntl-6.1.0.p0/patches/errorcallback.patch': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/errorcallback.patch': 
Operation not supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/make.patch': Operation 
not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/make.patch': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/configure.ac': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/configure.ac': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/new_singular.patch': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/new_singular.patch': Operation 
not supported
cp: preserving permissions for `ntl-6.1.0.p0/patches/libtool_flag.patch': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/patches/libtool_flag.patch': Operation 
not supported
cp: preserving permissions for `ntl-6.1.0.p0/patches': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/package-version.txt': 
Operation not supported
cp: preserving ACL for `ntl-6.1.0.p0/package-version.txt': Operation not 
supported
cp: preserving permissions for `ntl-6.1.0.p0/spkg-src': Operation not 
supported
cp: preserving ACL for `ntl-6.1.0.p0/spkg-src': Operation not supported
cp: preserving permissions for `ntl-6.1.0.p0/checksums.ini': Opera

[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart
One interesting thing I should mention is that loading Julia in bare module 
mode and redefining all the basic operators and so on does not break all of 
Julia's libraries. They all continue to operate as normal.

This was quite a surprise to me when I first found out, but all those 
modules have to import Base themselves, and so as far as they are 
concerned, everything operates just as it would in normal Julia. 

The operators don't get redefined for everybody when those modules import 
Base, but they just get locally redefined for the modules that use them.

Maybe that's also the same with Python. I guess it must be. But it costs 
nothing, at least, in Julia.

On Friday, 22 August 2014 19:17:29 UTC+2, Bill Hart wrote:
>
>
>
> On Friday, 22 August 2014 14:10:10 UTC+2, Pierre wrote:
>>
>> Thanks for the examples. However, given that in Julia you can re-define 
>> about everything (cf your example with the function extracting elements 
>> from a list, replaced by " print 'test' "), surely you could change, say, 
>> the behaviour of the function / upon loading the Nemo module? (without 
>> mention of a bare-module mode or anything) This in order to make the 
>> ordinary machine words behave consistently in comparison with bignums. 
>> (There would be the occasional problem when someone has written code 
>> speciafically expecting a/b to be a float, but will you ever mix code 
>> involving floats with your own ?) This would be the exact reverse of the 
>> "from __future__ import division" which you see at the beginning of so many 
>> python+numpy scripts.
>>
>
> You can redefine things that have already been defined, but it sometimes 
> incurs a compiler warning. I will have to look into what can be done.
>  
>
>>
>> I don't think the factorization of a = 
>> 2*3*5^2*17*71*65537*123456543234565433489*3249861239487619238746032103420132947612384712340813246341
>>  
>> is a good example. You can expect the user to known that this will fail, 
>> and wrap things in ZZ. (Do not underestimate the users: there are zillions 
>> of casual C programmers out there who realize that "int" is not the same as 
>> "double"; understanding the difference between Int64 and ZZ is no harder.) 
>> Of course Python or Sage users don't have to worry about that. But isn't 
>> Julia about better performance at the cost of specifying types?
>>
>> As for :
>>
>> >It's also a pain in the neck to take output from one system, such as 
>> Pari/GP and cut and paste a long polynomial, having to put ZZ(...) around 
>> every bignum. It's just not practical.
>>
>> i tend to disagree. A little function parse_PARI(string) or whatever 
>> would be easy to write.
>>
>> I also have an unrelated question, still about Nemo. I think in Julia's 
>> type system, when A <: B, then the intuition is that elements of type A are 
>> also of type B, or am I wrong? Like elements of type Int64 are also of type 
>> Integer (or whatever it's called). If so, your supertype of ZZ should not 
>> be called Ring, but RingElement. For an element of ZZ is not a ring. Well, 
>> abstract types are not types, they are more like type classes, but still 
>> with the machine types the logic is as I've said.
>>
>> A <: B either tells you if a type A is of abstract type B or if abstract 
> type A is of abstract type B.
>
> So, whether or not you use RingElement or Ring depends on whether you 
> consider an element of ZZ to be a ring element or whether you think the 
> integers ZZ form a ring.
>
> With the machine types, we really want a :: T where T <: Integer <: Ring. 
> Again with the baremodule idea, we might be able to do this, but it's not 
> possible if you use the standard provided modules, as far as I can tell.
>
> The logic from my point of view is that a type is a collection of values, 
> and as such Integer <: Ring, not Integer <: RingElement. But the 
> distinction is arbitrary.
>
> In the case of finite fields, I had an argument with myself about whether 
> I should use FFElem or FField. I decided on the latter. I would have liked 
> to use FiniteField, but this is the name I wanted to give to the function 
> that constructs an FField type (what some people call a factory I think).
>
> It's a shame that Julia allows a composite type and constructor to have 
> the same name, but a bitstype and constructor can't have the same name and 
> a factory and composite type cannot have the same name. Similarly a module 
> name and the filename can be the same, but the module name and the main 
> type it defines can't be.
>
> Those are all things I would do differently in Julia. And perhaps some of 
> these will change in a future release, who knows.
>
> They are minor nuisances at best. And there are probably important reasons 
> for those decisions. For example, if a type and factory could have the same 
> name, there could be issues with overloading the dot operator for both. And 
> that's something a lot of people seem to want Julia to do, so that they can 
> write Python i

[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart


On Friday, 22 August 2014 14:10:10 UTC+2, Pierre wrote:
>
> Thanks for the examples. However, given that in Julia you can re-define 
> about everything (cf your example with the function extracting elements 
> from a list, replaced by " print 'test' "), surely you could change, say, 
> the behaviour of the function / upon loading the Nemo module? (without 
> mention of a bare-module mode or anything) This in order to make the 
> ordinary machine words behave consistently in comparison with bignums. 
> (There would be the occasional problem when someone has written code 
> speciafically expecting a/b to be a float, but will you ever mix code 
> involving floats with your own ?) This would be the exact reverse of the 
> "from __future__ import division" which you see at the beginning of so many 
> python+numpy scripts.
>

You can redefine things that have already been defined, but it sometimes 
incurs a compiler warning. I will have to look into what can be done.
 

>
> I don't think the factorization of a = 
> 2*3*5^2*17*71*65537*123456543234565433489*3249861239487619238746032103420132947612384712340813246341
>  
> is a good example. You can expect the user to known that this will fail, 
> and wrap things in ZZ. (Do not underestimate the users: there are zillions 
> of casual C programmers out there who realize that "int" is not the same as 
> "double"; understanding the difference between Int64 and ZZ is no harder.) 
> Of course Python or Sage users don't have to worry about that. But isn't 
> Julia about better performance at the cost of specifying types?
>
> As for :
>
> >It's also a pain in the neck to take output from one system, such as 
> Pari/GP and cut and paste a long polynomial, having to put ZZ(...) around 
> every bignum. It's just not practical.
>
> i tend to disagree. A little function parse_PARI(string) or whatever would 
> be easy to write.
>
> I also have an unrelated question, still about Nemo. I think in Julia's 
> type system, when A <: B, then the intuition is that elements of type A are 
> also of type B, or am I wrong? Like elements of type Int64 are also of type 
> Integer (or whatever it's called). If so, your supertype of ZZ should not 
> be called Ring, but RingElement. For an element of ZZ is not a ring. Well, 
> abstract types are not types, they are more like type classes, but still 
> with the machine types the logic is as I've said.
>
> A <: B either tells you if a type A is of abstract type B or if abstract 
type A is of abstract type B.

So, whether or not you use RingElement or Ring depends on whether you 
consider an element of ZZ to be a ring element or whether you think the 
integers ZZ form a ring.

With the machine types, we really want a :: T where T <: Integer <: Ring. 
Again with the baremodule idea, we might be able to do this, but it's not 
possible if you use the standard provided modules, as far as I can tell.

The logic from my point of view is that a type is a collection of values, 
and as such Integer <: Ring, not Integer <: RingElement. But the 
distinction is arbitrary.

In the case of finite fields, I had an argument with myself about whether I 
should use FFElem or FField. I decided on the latter. I would have liked to 
use FiniteField, but this is the name I wanted to give to the function that 
constructs an FField type (what some people call a factory I think).

It's a shame that Julia allows a composite type and constructor to have the 
same name, but a bitstype and constructor can't have the same name and a 
factory and composite type cannot have the same name. Similarly a module 
name and the filename can be the same, but the module name and the main 
type it defines can't be.

Those are all things I would do differently in Julia. And perhaps some of 
these will change in a future release, who knows.

They are minor nuisances at best. And there are probably important reasons 
for those decisions. For example, if a type and factory could have the same 
name, there could be issues with overloading the dot operator for both. And 
that's something a lot of people seem to want Julia to do, so that they can 
write Python in Julia.

Bill.
 

>
> Pierre
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Function for subposet search

2014-08-22 Thread Nathann Cohen
> +1 to doing this; that way it becomes easier (more natural) to check for
> things like 2+2 freeness. My first thought is for B.is_subposet(A).

In Graph there is a G.is_subgraph(H) that just checks that the edges of H
are edges of G (and that points of H are point of G). This function is of
course much faster.

To avoid such a misunderstanding I really think that is_isomorphic_subposet
clears any doubt. Or we can also change the graph side if you prefer it
like that, I do not mind myself.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Function for subposet search

2014-08-22 Thread Travis Scrimshaw
Hey,
 

> OK. First question is name of the function. I would say A.has_subposet(), 
> but should it be A.has_isomorphic_subposet() or even B.is_subposet()? 
>

+1 to doing this; that way it becomes easier (more natural) to check for 
things like 2+2 freeness. My first thought is for B.is_subposet(A).

>
> Next, short description. There are three different style used for 
> True/False -functions: 
>
> - Returns True if the poset has a unique minimal element. 
> - Returns True if the poset is totally ordered, and False otherwise. 
> - Returns whether f is an EL labelling of self 


> (Last one also misses a dot.) Is there some style manual? 
>

I'd take the middle one (but starting with "Return") . I forget the link 
off-hand, but there is a place in the Sage doc about this. 

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Function for subposet search

2014-08-22 Thread Nathann Cohen
Helloo !!

> OK. First question is name of the function. I would say A.has_subposet(),
> but should it be A.has_isomorphic_subposet() or even B.is_subposet()?

HMmmm.. Well, do you only want to answer whether there is a copy of B in A,
or also give that copy to the user ?

When I picked a name for subgraph_search, I added the "_search" to make
sure the users understands that there is a search going on, and that we do
not just check that the vertices of B are also vertices of A, and that the
relations in B induce the same relations in A. There is a search going on,
and I wanted the users to be aware of that.

Your "has_isomorphic_subposet" does exactly that, and I actually prefer
your name.

The thing is : do you want to give the isomorphic copy to the user or not ?
Having this copy may be very useful !

Note that I often use the (controversed) syntax
A.has_isomorphic_subposet(B,certificate=True) which would return either
(False, None) or
(True, copy_of_B_in_A)

When certificate=False, the function is plain boolean.

That's up to you !

> Next, short description. There are three different style used for
True/False
> -functions:
>
> - Returns True if the poset has a unique minimal element.
> - Returns True if the poset is totally ordered, and False otherwise.
> - Returns whether f is an EL labelling of self
>
> (Last one also misses a dot.) Is there some style manual?

I do not know if there is a prefered style.

> And after that I should see logic behind posets.py vs. hasse_diagram.py at
> .../combinat/posets/. Source for last one says "This should not be called
> directly, use Poset instead; all type checking happens there." However, I
> think that there is nothing to check for?
>
> Maybe I'll start with ".is_lattice()"; now there are is_meet_semilattice()
> and is_join_semilattice() but not ready function to check for poset being
> lattice. (And there is, besides is_top() and is_bottom(), also
> is_bounded().)

As I told you in answer to your private message, there are many things to
fix/change in Poset. With this in mind, feel free to change things when it
just not look right --> it probably isn't.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: Function for subposet search

2014-08-22 Thread Jori Mantysalo

On Fri, 22 Aug 2014, Nathann Cohen wrote:


  Does Sage has a function to check if poset A contains a subposet
  isomorphic to subposet B?


Not... exactly. There is no Poset method that does that, but there is a
DiGraph method that does that. But then, it depends on what you call a
subposet of a poset.

Case 1: You say that a poset B is a subposet of a poset A if there is a set
of points in A that induce a poset isomorphic to B. In this case, you want
to ensure that the transitive closure of A contains the transitive closure
of B and your problem is solved by


I mean this one.


A.hasse_diagram().transitive_closure().subgraph_search(B.hasse_diagram().tr
ansitive_closure())


Seems to work, thanks.

If you need this feature, however (and as you wrote to sage-devel, not 
to sage-support :-P) it would be cool if you could write a ticket to 
implement all this at poset-level. It would just call the digraph 
routines, but it needs to be documented and interfaced properly.


OK. First question is name of the function. I would say A.has_subposet(), 
but should it be A.has_isomorphic_subposet() or even B.is_subposet()?


Next, short description. There are three different style used for 
True/False -functions:


- Returns True if the poset has a unique minimal element.
- Returns True if the poset is totally ordered, and False otherwise.
- Returns whether f is an EL labelling of self

(Last one also misses a dot.) Is there some style manual?

And after that I should see logic behind posets.py vs. hasse_diagram.py at 
.../combinat/posets/. Source for last one says "This should not be called 
directly, use Poset instead; all type checking happens there." However, I 
think that there is nothing to check for?


Maybe I'll start with ".is_lattice()"; now there are 
is_meet_semilattice() and is_join_semilattice() but not ready function 
to check for poset being lattice. (And there is, besides is_top() and 
is_bottom(), also is_bounded().)


--
Jori Mäntysalo

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread mmarco


> Install one in a VM :) 
>

The reasons why i don't run windows on my computers still apply to running 
windows on VM's on my computers. Besides, a VM that runs inside a VM is 
probably not a good idea for testing the possible problems that this GUI 
would encounter in real life.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Pierre
Thanks for the examples. However, given that in Julia you can re-define 
about everything (cf your example with the function extracting elements 
from a list, replaced by " print 'test' "), surely you could change, say, 
the behaviour of the function / upon loading the Nemo module? (without 
mention of a bare-module mode or anything) This in order to make the 
ordinary machine words behave consistently in comparison with bignums. 
(There would be the occasional problem when someone has written code 
speciafically expecting a/b to be a float, but will you ever mix code 
involving floats with your own ?) This would be the exact reverse of the 
"from __future__ import division" which you see at the beginning of so many 
python+numpy scripts.

I don't think the factorization of a = 
2*3*5^2*17*71*65537*123456543234565433489*3249861239487619238746032103420132947612384712340813246341
 
is a good example. You can expect the user to known that this will fail, 
and wrap things in ZZ. (Do not underestimate the users: there are zillions 
of casual C programmers out there who realize that "int" is not the same as 
"double"; understanding the difference between Int64 and ZZ is no harder.) 
Of course Python or Sage users don't have to worry about that. But isn't 
Julia about better performance at the cost of specifying types?

As for :

>It's also a pain in the neck to take output from one system, such as 
Pari/GP and cut and paste a long polynomial, having to put ZZ(...) around 
every bignum. It's just not practical.

i tend to disagree. A little function parse_PARI(string) or whatever would 
be easy to write.

I also have an unrelated question, still about Nemo. I think in Julia's 
type system, when A <: B, then the intuition is that elements of type A are 
also of type B, or am I wrong? Like elements of type Int64 are also of type 
Integer (or whatever it's called). If so, your supertype of ZZ should not 
be called Ring, but RingElement. For an element of ZZ is not a ring. Well, 
abstract types are not types, they are more like type classes, but still 
with the machine types the logic is as I've said.


Pierre

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread Jean-Pierre Flori


On Friday, August 22, 2014 2:05:44 PM UTC+2, mmarco wrote:
>
>
> In fact, there was a GSoC proposal to write some simple GUI that would 
> handle the VM: check for firewall issues, open the VM's browser if there 
> are, and run the VM in headless mode if there are not, also handle the 
> actualizations of the VM and so on.
>
> Sadly, no student decided to go for that project.
>
> I have considered some times doing it myself... but i don't have acccess 
> to any windows box.
>
Install one in a VM :) 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread mmarco

In fact, there was a GSoC proposal to write some simple GUI that would 
handle the VM: check for firewall issues, open the VM's browser if there 
are, and run the VM in headless mode if there are not, also handle the 
actualizations of the VM and so on.

Sadly, no student decided to go for that project.

I have considered some times doing it myself... but i don't have acccess to 
any windows box.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: SageMathCloud / closed source / GPL / Spirit of Sage??

2014-08-22 Thread mmarco

As far as i understand, the current plan is to spend the money made by SMC 
(if it makes money, some day) to improve Sage (for example, to hire paid 
programmers that would work into the windows port). So, if things don't 
deviate from that plan, the gain of SMC would also turn into a gain for 
Sage.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Crazy/dumb idea about Sage on Windows...

2014-08-22 Thread Volker Braun
That is not so unlike the current VM which runs the sage notebook web 
server. You can then connect to it with the host browser, if you want (it 
does pop up a browser inside the VM because 1. why not and 2. firewall 
issues).



On Friday, August 22, 2014 5:46:28 AM UTC+1, Fernando Perez wrote:
>
> Hi folks,
>
> off the cuff, probably totally dumb. Reading some of the threads about 
> Sage, Julia, Windows, etc, got me thinking... If/when there's a Sage kernel 
> for the IPython/Jupyter notebook, I wonder if that could give you guys a 
> way to move forward on Windows, where I know you've fought pretty hard and 
> bitter battles...
>
> My idea (assuming the aforementioned kernel): package *just* the Sage 
> kernel inside a VM, and run it purely as a service, but connect to it from 
> an IPython terminal, Qt console or Notebook running from a native Anaconda 
> installation.  Because our execution model decouples the kernel from the 
> filesystem, the user gets their 'normal' environment, files, etc, and they 
> don't really need to know anything about the VM to get to their work, their 
> directories, etc.
>
> I know IPython provides a very different execution model to the Sage NB 
> (no hidden directories, it lives on the normal filesystem, etc), so 
> 'native' Sage notebooks won't work. But ipynbs will work fine, and this may 
> at least give you guys a better way to reach a Windows audience...
>
> And since this VM would be running only the bare kernels, it can be a very 
> small and lightweight one, and it should be a lot easier to deal with ports 
> and firewall issues. There will be zeromq traffic on some sockets, but 
> that's it.
>
> Just an idea...
>
> Cheers,
>
> f
>
>
>
> -- 
> Fernando Perez (@fperez_org; http://fperez.org)
> fperez.net-at-gmail: mailing lists only (I ignore this when swamped!)
> fernando.perez-at-berkeley: contact me here for any direct mail
>  

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Bill Hart


On Friday, 22 August 2014 11:49:20 UTC+2, Pierre wrote:
>
> I thought we would have another argument about real numbers this morning, 
> but I see the topic has changed back to Julia. And I have to say that I 
> find the Nemo project very interesting, in spite of the over-aggressive 
> publicity it is receiving here.
>

I wasn't going to mention it here at all. But I decided that on the tail 
end of a very long thread it wouldn't hurt much. It seems like a lot more 
people were reading the thread than I thought.

I don't intend to plug Nemo on sage-devel!
 

>
> You don't often get to see a new piece of software in its infancy, with 
> the opportunity to request features from the developpers so early on. So 
> here's a suggestion for Bill Hart; you write:
>
> >Nemo is Julia, in the same way as Sage is Python
>
> I'm not sure if I fully understand this, but I'm afraid I do. And I don't 
> think it's a good decision. Let me explain.
>
> I'm very jealous of some colleagues in numerical analysis here at my 
> university whose ecosystem is ipython+numpy+matplotlib (pretty much, i may 
> forget something). All three can be installed with easy_install at the 
> prompt; it's modular (don't load matplotlib if you don't plan to plot); 
> it's lightweight.
>
> why shouldn't nemo by a Julia module that people load explicitly?
>

At the moment this is possible. But the bignum issue is really too much 
inconsistency for me. It's not just that, but the way the operators are 
defined on the Int's is also not what an algebraist wants. 1/2 returns 0.5 
instead of 1/2. And  div(7//2, 1//3) returns 10. Go figure.

You can't have consistent computer algebra when small integer literals 
behave differently to bigger ones. It just doesn't work.

This will be an issue when it comes to p-adics for example:

a = 1 + 2*65537 + 3^65537^2 + 11*65537^3 + 13*65537^4 + 12345*65537^5 + 
O(65537^6) will return who knows what. Certainly not what you entered.

Factorisations of number a = 
2*3*5^2*17*71*65537*123456543234565433489*3249861239487619238746032103420132947612384712340813246341
 
will return who knows what. Certainly not what you entered.

This is just not a tolerable situation for computer algebra. So alas, the 
input has to be changed to bignum by default.
 
It's also a pain in the neck to take output from one system, such as 
Pari/GP and cut and paste a long polynomial, having to put ZZ(...) around 
every bignum. It's just not practical.


> There are many good reasons why Sage cannot just be a module for Python. 
> However I remember conversations in this forum years ago when people were 
> musing about how great it would be if, by some miracle, Sage could indeed 
> be a (collection of) module(s): it would be so simple and healthy. (Wasn't 
> the Purple Sage project started with this "simplicity" in mind?) And it 
> would be much easier to explain to people what Sage is. This may be a minor 
> point, but if you've followed the conversation on reddit a few hours ago:
>
>
> http://www.reddit.com/r/math/comments/2e3qla/william_stein_says_sage_has_overall_failed/
>

I did.
 

>
>
> then you will see how many misconceptions people have about Sage, and how 
> scary the technology appears to some.
>
> Again there are very good reasons why Sage is what it is, but I see no 
> reason why Nemo should be compelled to take over Julia like Sage has had to 
> take over Python. You even say that no preparsing is needed! I'm not sure 
> if, for example, you want to insist that integer constants be interpreted 
> automatically as elements of ZZ. It seems to me a minor nuisance to have to 
> write a few extra ZZ's, if in exchange the system can be that much simpler. 
> I'm wondering what other people think.
>

I wish it were that simple. It might be possible to have Julia load in 
bare-module mode and still make Nemo available as a Julia Pkg though. I'll 
talk to the Julia developers about it. It would certainly be great if that 
were possible.
 

>
> Oh, and I ain't trying Nemo myself until installation is along the lines 
> of "julia --easy_install nemo", sorry... I would love to try it on 
> SageMathCloud if it's available.
>

Yeah me too.

Bill.
 

>
> best,
> Pierre
>
>
>
>
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Re: Function for subposet search

2014-08-22 Thread Nathann Cohen
Hello !

Does Sage has a function to check if poset A contains a subposet 
> isomorphic to subposet B? 
>

Not... exactly. There is no Poset method that does that, but there is a 
DiGraph method that does that. But then, it depends on what you call a 
subposet of a poset.

Case 1: You say that a poset B is a subposet of a poset A if there is a set 
of points in A that induce a poset isomorphic to B. In this case, you want 
to ensure that the transitive closure of A contains the transitive closure 
of B and your problem is solved by

A.hasse_diagram().transitive_closure().subgraph_search(B.hasse_diagram().transitive_closure())

Case 2: You say that a poset B is a subposet of a poset A if the hasse 
dagram of B is a subgraph of the hasse diagram of A. In this case you can 
do:

A.hasse_diagram().subgraph_search(B.hasse_diagram(),induced=True)
 
Thus: both situations can be solved with digraph search though I would 
expect it to be slightly suboptimal. I do not know by how far.

If you need this feature, however (and as you wrote to sage-devel, not to 
sage-support :-P) it would be cool if you could write a ticket to implement 
all this at poset-level. It would just call the digraph routines, but it 
needs to be documented and interfaced properly.

Note that the DiGraph.subgraph_search* methods can do more:
- DiGraph.subgraph_search gives you a copy of a digraph B in a digraph A 
(an induced copy if you ask for it
- DiGraph.subgraph_search_count counts the number of copies
- DiGraph.subgraph_search_iterator iterates over all *labelled* copies 
(there are 5! occurrences of the complete graph K5 in K5)

If not, is it because there is no good algorithm for it, or because it is 
> not implemented? 
>

I wouldn't say that the algorithm for subgraph search is "good" (you have 
to enumerate a lot of things that will turn out to be useless for some 
reason), but well... The current implementation is somehow well-made (in 
Cython and everything) and one can spend time to add 1000 ways to reduce 
the search space if needed... It is a hard problem, and it shows in the 
amount of enumeration it requires :-)

Nathann
 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Patchbot troubles

2014-08-22 Thread Jeroen Demeyer

Hello,

Given the message asking for patchbot volunteers, I'm trying to run a 
patchbot but it's not going as well as it should be. For one, the 
version installed by "sage -i patchbot" is not the most recent one, one 
has to do "sage -i 
http://sage.math.washington.edu/home/robertwb/patches/patchbot-2.2.spkg";. I 
first installed the old patchbot, which completely messed up my Sage 
install (by installing packages in /tmp) so badly that only "make 
distclean" could save me.


Now I do have patchbot-2.2 running but after less than a day it got 
already stuck at


== 13679 ==
Build sphinx docs for a single file
score ((100,), 1011, -13679)



REPORT
{'base': '6.3',
 'deps': [],
 'git_base': '00199fb220aa173d8585b9e90654dafd3247d82d',
 'git_base_human': '6.3',
 'git_branch': u'u/jhpalmieri/sphinx-single-file',
 'git_commit': '515e343290448d2bbe5e75f88accea814be9215f',
 'git_commit_human': '6.3.beta6-6-g515e343',
 'git_log': ['515e343 12455: add small index to documentation head',
 'f91a3c2 12455: hold_derivate only implemented in wrapper 
functions',

 'a88d035 12455: fix indirect and plot doctests',
 "22731c9 12455: implement algorithm='scipy'",
 'aeb0800 12455: remove algorithm=maxima',
 '3a40bc3 12455: symbolic Airy functions'],
 'git_merge': '11b79f03056d016c496811a09131ccd08dce4f4f',
 'git_merge_human': '6.3-7-g11b79f0',
 'machine': ['Gentoo Base System',
 '2.0.3',
 'x86_64',
 '3.2.1-gentoo-r2',
 'sage4'],
 'patchbot_version': '2.2',
 'patches': [],
 'plugins': (),
 'spkgs': [],
 'status': 'Pending',
 'time': '2014-08-22 07:29:41 +0200',
 'user': 'worker'}
13679 Pending
error
2014-08-22 07:29:50 +0200
Sage Patchbot 2.2
http://trac.sagemath.org/sage_trac/ticket/13679?format=rss
Traceback (most recent call last):
  File "/home/worker/sage-patchbot/local/bin/patchbot/patchbot.py", 
line 451, in test_a_ticket
pull_from_trac(self.sage_root, ticket['id'], force=True, 
use_ccache=self.config['use_ccache'], safe_only=self.options.safe_only)
  File "/home/worker/sage-patchbot/local/bin/patchbot/trac.py", line 
337, in pull_from_trac

raise ConfigException, exn.message
ConfigException: timed out
2014-08-22 07:30:45 +0200
55 seconds

Traceback (most recent call last):
  File "/home/worker/sage-patchbot/local/bin/patchbot/patchbot.py", 
line 451, in test_a_ticket
pull_from_trac(self.sage_root, ticket['id'], force=True, 
use_ccache=self.config['use_ccache'], safe_only=self.options.safe_only)
  File "/home/worker/sage-patchbot/local/bin/patchbot/trac.py", line 
337, in pull_from_trac

raise ConfigException, exn.message
ConfigException: timed out
Reporting 13679 Pending
REPORT
{'base': '6.3',
 'deps': [],
 'git_base': '00199fb220aa173d8585b9e90654dafd3247d82d',
 'git_base_human': '6.3',
 'git_branch': u'u/jhpalmieri/sphinx-single-file',
 'git_commit': '515e343290448d2bbe5e75f88accea814be9215f',
 'git_commit_human': '6.3.beta6-6-g515e343',
 'git_log': ['515e343 12455: add small index to documentation head',
 'f91a3c2 12455: hold_derivate only implemented in wrapper 
functions',

 'a88d035 12455: fix indirect and plot doctests',
 "22731c9 12455: implement algorithm='scipy'",
 'aeb0800 12455: remove algorithm=maxima',
 '3a40bc3 12455: symbolic Airy functions'],
 'git_merge': '11b79f03056d016c496811a09131ccd08dce4f4f',
 'git_merge_human': '6.3-7-g11b79f0',
 'machine': ['Gentoo Base System',
 '2.0.3',
 'x86_64',
 '3.2.1-gentoo-r2',
 'sage4'],
 'patchbot_version': '2.2',
 'patches': [],
 'plugins': [],
 'spkgs': [],
 'status': 'Pending',
 'time': '2014-08-22 07:30:47 +0200',
 'user': 'worker'}
13679 Pending
ok
Done reporting 13679
git checkout patchbot/base
Already on 'patchbot/base'
git fetch git://github.com/sagemath/sage.git +master:patchbot/base_upstream
{13679: 1408689047.798222}
Getting ticket list...
Traceback (most recent call last):
  File "/home/worker/sage-patchbot/local/bin/patchbot/patchbot.py", 
line 811, in main

patchbot.test_a_ticket(ticket)
  File "/home/worker/sage-patchbot/local/bin/patchbot/patchbot.py", 
line 401, in test_a_ticket

ticket = self.get_ticket()
  File "/home/worker/sage-patchbot/local/bin/patchbot/patchbot.py", 
line 333, in get_ticket

all = self.load_json_from_server("ticket/?" + query)
  File "/home/worker/sage-patchbot/local/bin/patchbot/patchbot.py", 
line 216, in load_json_from_server

return json.load(handle)
  File "/usr/lib64/python2.7/json/__init__.py", line 290, in load
**kw)
  File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
  File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python2.7/json/decoder.py", line 382, in raw_decode
obj

[sage-devel] Re: On scientific computing, Python and Julia

2014-08-22 Thread Pierre
I thought we would have another argument about real numbers this morning, 
but I see the topic has changed back to Julia. And I have to say that I 
find the Nemo project very interesting, in spite of the over-aggressive 
publicity it is receiving here.

You don't often get to see a new piece of software in its infancy, with the 
opportunity to request features from the developpers so early on. So here's 
a suggestion for Bill Hart; you write:

>Nemo is Julia, in the same way as Sage is Python

I'm not sure if I fully understand this, but I'm afraid I do. And I don't 
think it's a good decision. Let me explain.

I'm very jealous of some colleagues in numerical analysis here at my 
university whose ecosystem is ipython+numpy+matplotlib (pretty much, i may 
forget something). All three can be installed with easy_install at the 
prompt; it's modular (don't load matplotlib if you don't plan to plot); 
it's lightweight.

why shouldn't nemo by a Julia module that people load explicitly?

There are many good reasons why Sage cannot just be a module for Python. 
However I remember conversations in this forum years ago when people were 
musing about how great it would be if, by some miracle, Sage could indeed 
be a (collection of) module(s): it would be so simple and healthy. (Wasn't 
the Purple Sage project started with this "simplicity" in mind?) And it 
would be much easier to explain to people what Sage is. This may be a minor 
point, but if you've followed the conversation on reddit a few hours ago:

http://www.reddit.com/r/math/comments/2e3qla/william_stein_says_sage_has_overall_failed/

then you will see how many misconceptions people have about Sage, and how 
scary the technology appears to some.

Again there are very good reasons why Sage is what it is, but I see no 
reason why Nemo should be compelled to take over Julia like Sage has had to 
take over Python. You even say that no preparsing is needed! I'm not sure 
if, for example, you want to insist that integer constants be interpreted 
automatically as elements of ZZ. It seems to me a minor nuisance to have to 
write a few extra ZZ's, if in exchange the system can be that much simpler. 
I'm wondering what other people think.

Oh, and I ain't trying Nemo myself until installation is along the lines of 
"julia --easy_install nemo", sorry... I would love to try it on 
SageMathCloud if it's available.

best,
Pierre







-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] Function for subposet search

2014-08-22 Thread Jori Mantysalo
Does Sage has a function to check if poset A contains a subposet 
isomorphic to subposet B?


If not, is it because there is no good algorithm for it, or because it is 
not implemented?


--
Jori Mäntysalo

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: SageMathCloud / closed source / GPL / Spirit of Sage??

2014-08-22 Thread Nathann Cohen
Yo !

> Seems like some people forget that, you have to play the game in order to
be successful.

On the other hand, some people think that they need to "play some kind of
game". Who is the craziest ?

> The game could broadly be described as: navigating the framework of
society. That framework whether you like it or not, is and likely will
continue to be composed largely of money.

How does your view of "life, the universe and everything" where everything
is composed largely of money explains things like free software being
developped by free volunteers ?

Unless you are willing to accept things like ideals and the humans that are
fighting for them, it will leave a lot of things unexplained. Especially
when we talk about Sage.

> The game consists for everyone, as we all play it, and of anything
really, buying milk at the grocery store, making a product
successful/popular/accessible etc, there are boundaries and limits that as
mentioned, are usually monetary in nature.  Hopefully this makes sense so
far lol.

Your ill-intended attempt at making me accept your views just because I
drink chocolate milk in the morning has failed.

> One of the limits that Sage has encountered against so far, as William
explicitly points out, is money.

William probably only counts the money he spends himself. Count the money
that states pay as the salary of Sage's developpers, and the picture
becomes a bit different.

> Back to the game side of things, all the benefits of SMC came and and
continue to come at a cost, the servers and infrastructure cost money.
That's easy to forget if you use SMC just as a black box sort of thing. But
how else would you do this without cost? Make some sort of distributed
Computer Algebra System or something? There is no way else, there will
always be a cost, money, in trying to acheive Sage's Mission: Creating a
viable free open source alternative to Magma, Maple, Mathematica and Matlab.

This thread was about how SMC is NOT Sage. You cannot come now and tell us
that a free software like Sage needs money to pay for the SMC servers.
On the other hand, if you accept that the two are different, it all becomes
very natural: some company which sells an online service is being built,
the money they need for their servers is currently being paid by the states
in different forms, but they want to become a for-profit company. Thus they
will have to earn money in some way, by selling stuff. That's the hard life
of those who are willing to play the money game to achieve their ends,
isn't it ?

> William even explicitly mentions having to play the game in his blog
post. If you don’t play the game, you lose. Just as an example, since it
Magma gets brought up alot, as per Magma's Website:

I take it as a proof that you can easily lose your soul when you look for
money. The development of Sage may not go as fast as you want, but because
of the way it is developped there is no risk of having to do what Magma
does, i.e. deprive students of a tool just because it does not pay
sufficiently.

What could happen if SMC does not get enough money to pay for its servers ?
Or just "does not bring enough money" ? Or just "could bring more money" ?

That's for-profit companies. And nobody has any control over that except
the head of the company, while in Sage there is some kind of fundamental
democracy.

> I have no idea what Magma's Mission is, and it doesnt matter, as im not
comparing/contrasting them here, i just post that from their website to
show people, detractors/haters of SMC that theres others in the game as
well, trying to achieve whatever their goal is, but bound by same limits as
sage, money.

Many of the detractors/haters of SMC are also those who write Sage's code,
and Sage's code is what -- accept it or not -- you sell with SMC.
Officially all you sell is an online access and cool interface, but --
guess what If SMC exists, doesn't it mean that making Sage work on
Windows, or improving its interface, or making it lighter/easier to
install... Isn't all this going against SMC interests ?...

Crazy, isn't it ?

SMC's business is partly to compensate for Sage's faults with a for-profit
company. But if those problems get addressed in Sage itself someday, it
will probably hurt SMC a bit. Isn't it funny that some Sage defenders are
not as interested as before in improving Sage itself, because Sage's losses
are SMC's wins ?

> Sage's Mission, its goal, is lofty, so if your a person that loves sage
but hates all or just some of SMC, then your free to never use SMC and can
just view it as playing the game.

And I do not like that game.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, v

[sage-devel] Re: what is the plot3D viewer used in sagemath cloud

2014-08-22 Thread Frédéric Chapoton
Hello,

thanks for the pointer. I had a look, but cannot clearly see (looking at 
3d.coffee) what is the intermediate file format used between sage and the 
cloud server. I would guess from the code that maybe it is .obj as given by 
the .obj_repr method (of indexed face sets for example). Unfortunately, the 
.obj_repr method is not one which has been adapted yet in #12212 to provide 
material and colors for each face.

Yes, it would be great if the colored 3D surfaces would work also in the 
cell and in the ipython notebook. Last time I tried to install the ipython 
notebook, I failed, so I cannot experiment with it right now.

Frederic

Le vendredi 22 août 2014 06:09:03 UTC+2, jason a écrit :
>
> On 8/21/14, 15:27, Frédéric Chapoton wrote: 
> > Thanks ! Do you know which file format is used by sagemath cloud to 
> > communicate with threejs ? Is it .obj or .x3d or json ? Where can I find 
> > the code ? and some documentation ? 
>
> The relevant files for smc are the 3d.* files here: 
>
> https://github.com/sagemath/cloud 
>
> (at least, those were the files a while ago, and I doubt much has 
> changed with the 3d rendering since then.) 
>
> My students and I rewrote that 3d renderer for the sage cell server, and 
> then we again rewrote a system to use the IPython widget infrastructure 
> (so it works in the sage cell server and the IPython notebook).  If 
> you're interested in either of those, let me know. 
>
> Thanks, 
>
> Jason 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.