[julia-users] Re: package reproducibility

2016-10-28 Thread Tim Wheeler
Hi Kevin,

You can use Pkg.pin("Stats",v"0.2.5").

-Tim

On Friday, October 28, 2016 at 9:24:14 AM UTC+2, Kevin Kunzmann wrote:
>
> Hey,
>
> I was just wondering whether Julia has a checkpoint-like functionality (R 
> checkpoint-package 
> ) for 
> using a specific checkpoint of the package ecosystem. With quick 
> development happening this would improve reproducibility drastically.
>
> Best,
>
> Kevin 
>


[julia-users] Re: can't get pyjulia to work

2016-09-23 Thread Tim Wheeler
So a temporary workaround is:

export PYTHONPATH=$HOME/Desktop/pyjulia:$PYTHONPATH

This just adds the pyjulia repo to my PYTHONPATH.

On Friday, September 23, 2016 at 3:01:10 PM UTC-7, Tim Wheeler wrote:
>
> Another pyjulia call for help.
>
> I am using Julia 0.5 and Anaconda 2.3.0 with Python 2.7. I followed the 
> pycall 
> install instructions <https://github.com/JuliaPy/pyjulia>. Julia is on my 
> PATH.
> When I run python in the cloned pyjulia repo everything is fine.
> When I run python in a different directory I get the following error:
>
> >>> import julia
> >>> j = julia.Julia(debug=True)
> JULIA_HOME = /bin,  libjulia_path = 
> /bin/../lib/x86_64-linux-gnu/libjulia.so.0.5
> calling jl_init(/bin)
> seems to work...
> Traceback (most recent call last):
>   File "", line 1, in 
>   File "/home/tim/anaconda/lib/python2.7/site-packages/julia/core.py", 
> line 288, in __init__
> self.api.jl_bytestring_ptr.restype = char_p
>   File "/home/tim/anaconda/lib/python2.7/ctypes/__init__.py", line 375, in 
> __getattr__
> func = self.__getitem__(name)
>   File "/home/tim/anaconda/lib/python2.7/ctypes/__init__.py", line 380, in 
> __getitem__
> func = self._FuncPtr((name_or_ordinal, self))
> AttributeError: /bin/../lib/x86_64-linux-gnu/libjulia.so.0.5: undefined 
> symbol: jl_bytestring_ptr
>
> Is this a path issue? Do I need to add the cloned pyjulia repo to my path 
> or something?
>
> Thank you.
>
>

[julia-users] Re: can't get pyjulia to work

2016-09-23 Thread Tim Wheeler
Another pyjulia call for help.

I am using Julia 0.5 and Anaconda 2.3.0 with Python 2.7. I followed the pycall 
install instructions . Julia is on my 
PATH.
When I run python in the cloned pyjulia repo everything is fine.
When I run python in a different directory I get the following error:

>>> import julia
>>> j = julia.Julia(debug=True)
JULIA_HOME = /bin,  libjulia_path = 
/bin/../lib/x86_64-linux-gnu/libjulia.so.0.5
calling jl_init(/bin)
seems to work...
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/tim/anaconda/lib/python2.7/site-packages/julia/core.py", line 
288, in __init__
self.api.jl_bytestring_ptr.restype = char_p
  File "/home/tim/anaconda/lib/python2.7/ctypes/__init__.py", line 375, in 
__getattr__
func = self.__getitem__(name)
  File "/home/tim/anaconda/lib/python2.7/ctypes/__init__.py", line 380, in 
__getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /bin/../lib/x86_64-linux-gnu/libjulia.so.0.5: undefined 
symbol: jl_bytestring_ptr

Is this a path issue? Do I need to add the cloned pyjulia repo to my path 
or something?

Thank you.



Re: [julia-users] Hard-to-debug deep inlining

2016-09-13 Thread Tim Wheeler
Yes, Julia 0.4
Great to hear that this is easier in 0.5!

-Other Tim

On Tuesday, September 13, 2016 at 9:49:38 AM UTC-7, Tim Holy wrote:
>
> Which version of julia? If you're not using 0.5, try it and you might be 
> pleased. 
>
> You can also launch `julia --inline=no`, which occasionally still remains 
> useful. 
>
> --Tim 
>
> On Tuesday, September 13, 2016 8:55:58 AM CDT Tim Wheeler wrote: 
> > Hi Julia Users, 
> > 
> > So I was looking at ConjugatePriors.jl and trying to resolve its 
> problems 
> > with respect to the latest Distributions.jl. As discussed in issue 11 
> > <https://github.com/JuliaStats/ConjugatePriors.jl/issues/11>, testing 
> > ConjugatePriors after removing the REQUIRE bounds results in: 
> > 
> > MethodError: no method matching 
> > 
> _rand!(::Distributions.MvNormalCanon{PDMats.PDMat{Float64,Array{Float64,2}}, 
>
> > Array{Float64,1}}, 
> > ::Array{Float64,1}) on line 52 of conjugates_mvnormal.jl 
> > 
> > <
> https://github.com/JuliaStats/ConjugatePriors.jl/blob/master/test/conjugate 
> > s_mvnormal.jl#L52>. and line 25 of fallbacks.jl 
> > 
> > If you check that line you find the following: 
> > 
> > posterior_randmodel(pri, G::IncompleteFormulation, x) = complete(G, pri, 
> > posterior_rand(pri, G, x)) 
> > 
> > Okay, the problem isn't really there. The call to posterior_rand is 
> inlined 
> > (I assume), so it doesn't show up in the test stack trace. So we 
> manually 
> > go to: 
> > 
> > posterior_rand(pri, G::IncompleteFormulation, x) = 
> Base.rand(posterior_canon 
> > (pri, G, x)) 
> > 
> > 
> > This also isn't the problem, at least not directly. 
> > 
> > In fact, the also inlined call to posterior_canon(pri, G, x) works fine. 
> It 
> > returns an MvNormalCanon object and then Base.rand is called. 
> > 
> > This calls some inlined functions, which eventually call 
> > Base._rand!(MvNormalCanon, x::Vector), which leads to the problem, 
> namely 
> > that _rand!(MvNormalCannon, x::Matrix) is all that is defined. 
> > 
> > But why was that so hard to discover? Why does only line 25 of 
> fallbacks,jl 
> > show up in the error stack trace? Was there a better way to debug this? 
>
>
>

[julia-users] Hard-to-debug deep inlining

2016-09-13 Thread Tim Wheeler
Hi Julia Users,

So I was looking at ConjugatePriors.jl and trying to resolve its problems 
with respect to the latest Distributions.jl. As discussed in issue 11 
, testing 
ConjugatePriors after removing the REQUIRE bounds results in:

MethodError: no method matching 
_rand!(::Distributions.MvNormalCanon{PDMats.PDMat{Float64,Array{Float64,2}},Array{Float64,1}},
 
::Array{Float64,1}) on line 52 of conjugates_mvnormal.jl 
.
 
and line 25 of fallbacks.jl

If you check that line you find the following:

posterior_randmodel(pri, G::IncompleteFormulation, x) = complete(G, pri, 
posterior_rand(pri, G, x))

Okay, the problem isn't really there. The call to posterior_rand is inlined 
(I assume), so it doesn't show up in the test stack trace. So we manually 
go to:

posterior_rand(pri, G::IncompleteFormulation, x) = Base.rand(posterior_canon
(pri, G, x))


This also isn't the problem, at least not directly.

In fact, the also inlined call to posterior_canon(pri, G, x) works fine. It 
returns an MvNormalCanon object and then Base.rand is called.

This calls some inlined functions, which eventually call 
Base._rand!(MvNormalCanon, x::Vector), which leads to the problem, namely 
that _rand!(MvNormalCannon, x::Matrix) is all that is defined.

But why was that so hard to discover? Why does only line 25 of fallbacks,jl 
show up in the error stack trace? Was there a better way to debug this?



[julia-users] Re: Implicit differentiation in Julia?

2016-09-08 Thread Tim Wheeler
Isn't the gradient of x_j with respect to a_j just Sum_{j=1}^n (x_i)^b?

On Thursday, September 8, 2016 at 1:08:51 PM UTC-7, Mathieu 
Taschereau-Dumouchel wrote:
>
> Hello everyone!
>
> I have the following system of n equations
>
> x_j= a_j * Sum_{j=1}^n (x_i)^b
>
> where 0 iterating on the equation. But I would like to know the gradient of the 
> each x_j with respect to a_j. I am wondering if I could use ForwardDiff.jl 
> or another Julia package in some way to do this. Any help would be 
> appreciated.
>
> Many thanks!
>


[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-07 Thread Tim Wheeler
That worked!
I now have Distributions 0.10.2

On Tuesday, September 6, 2016 at 8:40:22 PM UTC-7, Fengyang Wang wrote:
>
> I think the problem is that ConjugatePriors is holding PDMats back, while 
> Distributions wants to move it forward. Try removing it and see if 
> Distributions will update.
>


[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler
Okay, here is the same thing but from my METADATA.

Code:

metadata_dir = "/home/tim/.julia/v0.4/METADATA"
for (pkg, version) in Pkg.installed()

reqfile = joinpath(metadata_dir, pkg, "versions", string(version), 
"requires")

if isfile(reqfile)
lines = open(readlines, reqfile)
println("#"^20)
println(pkg)
for line in lines
print(line)
end
println("")
end
end




On Tuesday, September 6, 2016 at 11:17:28 AM UTC-7, Tony Kelman wrote:
>
> I hate to have to say "RTFM" about this so often, but see 
> http://docs.julialang.org/en/release-0.4/manual/strings/#version-number-literals.
>  
> The trailing dash means including prereleases of the given version. 
> (Considering how unintuitive this is we should probably transition to 
> something clearer when we redesign Pkg.) The first number given is an 
> inclusive lower bound, and if a second number is given then it's an 
> exclusive upper bound.
>
> I see a few packages applying upper bounds to ForwardDiff, and a few to 
> MathProgBase and ReverseDiffSparse. I may have missed something (were these 
> taken from METADATA or the package directory? It should be the former, 
> sorry if I didn't say as much - METADATA can be changed after-the-fact but 
> tagged package content can't) but those don't look like they would conflict.
>
> On Tuesday, September 6, 2016 at 10:03:27 AM UTC-7, Tim Wheeler wrote:
>>
>> I wrote the script  and put the output in the attached file.
>>
>> I assume that the '-' at the end of a dep is an upperbound?
>>
>> On Tuesday, September 6, 2016 at 9:35:46 AM UTC-7, Tim Wheeler wrote:
>>>
>>> Ok, will do!
>>>
>>> On Tuesday, September 6, 2016 at 9:31:25 AM UTC-7, Tony Kelman wrote:
>>>>
>>>> There's a bug somewhere with that error message, I've seen it points at 
>>>> the wrong package. If we can come up with a reproducible test case here 
>>>> it'll help for fixing the bug and making that message more useful.
>>>>
>>>> It's almost certainly not Compat (I don't think anyone has ever added 
>>>> an upper bound to a Compat dependency). Perhaps loop over Pkg.installed() 
>>>> and display the contents of the REQUIRE file for the specific tags you 
>>>> have 
>>>> currently installed, see who is upper-bounding each other? We do need 
>>>> better tools for debugging this kind of thing to make it easier to figure 
>>>> out what the dependency resolver is doing, which bound constraints are 
>>>> active etc.
>>>>
>>>>
>>>> On Tuesday, September 6, 2016 at 9:25:53 AM UTC-7, Tim Wheeler wrote:
>>>>>
>>>>> Okay - I removed GaussianMixtures and now it is complaining about 
>>>>> Compat. 
>>>>>
>>>>> ERROR: unsatisfiable package requirements detected: no feasible 
>>>>> version could be found for package: Compat
>>>>>
>>>>> I wrote a script to run through all package REQUIRE files and print 
>>>>> out the Compat line, if any. None of these found anything specifying an 
>>>>> upper-bound.
>>>>>
>>>>> I would like to find the offending packages. Is there a good way to go 
>>>>> about doing this?
>>>>>
>>>>> Thank you.
>>>>>
>>>>> ArgParse:  Compat 0.7.3
>>>>> ArrayViews:Compat
>>>>> AutomotiveDrivingModels:   Compat 0.8
>>>>> AxisAlgorithms:Compat 0.8
>>>>> BayesNets: Compat
>>>>> BinDeps:   Compat 0.8.4
>>>>> Blink: Compat 0.8.6
>>>>> Blosc: Compat 0.8
>>>>> BufferedStreams:   Compat 0.8.4
>>>>> Cairo: Compat 0.8.0
>>>>> Calculus:  Compat 0.4.0
>>>>> Codecs:Compat 0.7.20
>>>>> Colors:Compat 0.8.0
>>>>> Compose:   Compat 0.8.0
>>>>> Conda: Compat 0.8
>>>>> ConjugatePriors:   Compat 0.4.0
>>>>> Contour:   Compat 0.8.0
>>>>> DataArrays:Compat 0.8.6
>>>>> DataFrames:Compat 0.8
>>>>> Debug: Compat
>>

[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler
Thank you. I should have RTFM.
The file is not from METADATA. I can check that.

On Tuesday, September 6, 2016 at 11:17:28 AM UTC-7, Tony Kelman wrote:
>
> I hate to have to say "RTFM" about this so often, but see 
> http://docs.julialang.org/en/release-0.4/manual/strings/#version-number-literals.
>  
> The trailing dash means including prereleases of the given version. 
> (Considering how unintuitive this is we should probably transition to 
> something clearer when we redesign Pkg.) The first number given is an 
> inclusive lower bound, and if a second number is given then it's an 
> exclusive upper bound.
>
> I see a few packages applying upper bounds to ForwardDiff, and a few to 
> MathProgBase and ReverseDiffSparse. I may have missed something (were these 
> taken from METADATA or the package directory? It should be the former, 
> sorry if I didn't say as much - METADATA can be changed after-the-fact but 
> tagged package content can't) but those don't look like they would conflict.
>
> On Tuesday, September 6, 2016 at 10:03:27 AM UTC-7, Tim Wheeler wrote:
>>
>> I wrote the script  and put the output in the attached file.
>>
>> I assume that the '-' at the end of a dep is an upperbound?
>>
>> On Tuesday, September 6, 2016 at 9:35:46 AM UTC-7, Tim Wheeler wrote:
>>>
>>> Ok, will do!
>>>
>>> On Tuesday, September 6, 2016 at 9:31:25 AM UTC-7, Tony Kelman wrote:
>>>>
>>>> There's a bug somewhere with that error message, I've seen it points at 
>>>> the wrong package. If we can come up with a reproducible test case here 
>>>> it'll help for fixing the bug and making that message more useful.
>>>>
>>>> It's almost certainly not Compat (I don't think anyone has ever added 
>>>> an upper bound to a Compat dependency). Perhaps loop over Pkg.installed() 
>>>> and display the contents of the REQUIRE file for the specific tags you 
>>>> have 
>>>> currently installed, see who is upper-bounding each other? We do need 
>>>> better tools for debugging this kind of thing to make it easier to figure 
>>>> out what the dependency resolver is doing, which bound constraints are 
>>>> active etc.
>>>>
>>>>
>>>> On Tuesday, September 6, 2016 at 9:25:53 AM UTC-7, Tim Wheeler wrote:
>>>>>
>>>>> Okay - I removed GaussianMixtures and now it is complaining about 
>>>>> Compat. 
>>>>>
>>>>> ERROR: unsatisfiable package requirements detected: no feasible 
>>>>> version could be found for package: Compat
>>>>>
>>>>> I wrote a script to run through all package REQUIRE files and print 
>>>>> out the Compat line, if any. None of these found anything specifying an 
>>>>> upper-bound.
>>>>>
>>>>> I would like to find the offending packages. Is there a good way to go 
>>>>> about doing this?
>>>>>
>>>>> Thank you.
>>>>>
>>>>> ArgParse:  Compat 0.7.3
>>>>> ArrayViews:Compat
>>>>> AutomotiveDrivingModels:   Compat 0.8
>>>>> AxisAlgorithms:Compat 0.8
>>>>> BayesNets: Compat
>>>>> BinDeps:   Compat 0.8.4
>>>>> Blink: Compat 0.8.6
>>>>> Blosc: Compat 0.8
>>>>> BufferedStreams:   Compat 0.8.4
>>>>> Cairo: Compat 0.8.0
>>>>> Calculus:  Compat 0.4.0
>>>>> Codecs:Compat 0.7.20
>>>>> Colors:Compat 0.8.0
>>>>> Compose:   Compat 0.8.0
>>>>> Conda: Compat 0.8
>>>>> ConjugatePriors:   Compat 0.4.0
>>>>> Contour:   Compat 0.8.0
>>>>> DataArrays:Compat 0.8.6
>>>>> DataFrames:Compat 0.8
>>>>> Debug: Compat
>>>>> Discretizers:  Compat
>>>>> Distances: Compat 0.8.4
>>>>> Distributions: Compat 0.4.0
>>>>> Docile:Compat 0.7.1
>>>>> FastAnonymous: Compat
>>>>> FileIO:Compat 0.7.19
>>>>> FixedPointNu

[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler
I wrote the script  and put the output in the attached file.

I assume that the '-' at the end of a dep is an upperbound?

On Tuesday, September 6, 2016 at 9:35:46 AM UTC-7, Tim Wheeler wrote:
>
> Ok, will do!
>
> On Tuesday, September 6, 2016 at 9:31:25 AM UTC-7, Tony Kelman wrote:
>>
>> There's a bug somewhere with that error message, I've seen it points at 
>> the wrong package. If we can come up with a reproducible test case here 
>> it'll help for fixing the bug and making that message more useful.
>>
>> It's almost certainly not Compat (I don't think anyone has ever added an 
>> upper bound to a Compat dependency). Perhaps loop over Pkg.installed() and 
>> display the contents of the REQUIRE file for the specific tags you have 
>> currently installed, see who is upper-bounding each other? We do need 
>> better tools for debugging this kind of thing to make it easier to figure 
>> out what the dependency resolver is doing, which bound constraints are 
>> active etc.
>>
>>
>> On Tuesday, September 6, 2016 at 9:25:53 AM UTC-7, Tim Wheeler wrote:
>>>
>>> Okay - I removed GaussianMixtures and now it is complaining about 
>>> Compat. 
>>>
>>> ERROR: unsatisfiable package requirements detected: no feasible version 
>>> could be found for package: Compat
>>>
>>> I wrote a script to run through all package REQUIRE files and print out 
>>> the Compat line, if any. None of these found anything specifying an 
>>> upper-bound.
>>>
>>> I would like to find the offending packages. Is there a good way to go 
>>> about doing this?
>>>
>>> Thank you.
>>>
>>> ArgParse:  Compat 0.7.3
>>> ArrayViews:Compat
>>> AutomotiveDrivingModels:   Compat 0.8
>>> AxisAlgorithms:Compat 0.8
>>> BayesNets: Compat
>>> BinDeps:   Compat 0.8.4
>>> Blink: Compat 0.8.6
>>> Blosc: Compat 0.8
>>> BufferedStreams:   Compat 0.8.4
>>> Cairo: Compat 0.8.0
>>> Calculus:  Compat 0.4.0
>>> Codecs:Compat 0.7.20
>>> Colors:Compat 0.8.0
>>> Compose:   Compat 0.8.0
>>> Conda: Compat 0.8
>>> ConjugatePriors:   Compat 0.4.0
>>> Contour:   Compat 0.8.0
>>> DataArrays:Compat 0.8.6
>>> DataFrames:Compat 0.8
>>> Debug: Compat
>>> Discretizers:  Compat
>>> Distances: Compat 0.8.4
>>> Distributions: Compat 0.4.0
>>> Docile:Compat 0.7.1
>>> FastAnonymous: Compat
>>> FileIO:Compat 0.7.19
>>> FixedPointNumbers: Compat 0.7.14
>>> FixedSizeArrays:   Compat 0.8.7
>>> Formatting:Compat
>>> ForwardDiff:   Compat 0.8.6
>>> Gadfly:Compat 0.8.5
>>> Glob:  Compat
>>> Graphs:Compat 0.7.16
>>> Gtk:   Compat 0.8.0
>>> GtkUtilities:  Compat 0.7.16
>>> GZip:  Compat 0.8.0
>>> HDF5:  Compat 0.8.0
>>> Hexagons:  Compat
>>> Hiccup:Compat 0.8.2
>>> HttpCommon:Compat 0.7.20
>>> HttpParser:Compat 0.7.20
>>> HttpServer:Compat 0.7.16
>>> IJulia:Compat 0.7.20
>>> ImageMagick:   Compat 0.7.7
>>> Images:Compat 0.8.4
>>> ImageView: Compat 0.4.6
>>> IniFile:   Compat 0.7.4
>>> Interact:  Compat 0.7
>>> Interpolations:Compat 0.8.0
>>> Ipopt: Compat 0.8.0
>>> Iterators: Compat
>>> JLD:   Compat 0.8.0
>>> JSON:  Compat 0.8.4
>>> JuMP:  Compat 0.8.6
>>> KernelDensity: Compat
>>> LaTeXStrings:  Compat 0.8.0
>>> Lazy:  Compat 0.8

[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler
Ok, will do!

On Tuesday, September 6, 2016 at 9:31:25 AM UTC-7, Tony Kelman wrote:
>
> There's a bug somewhere with that error message, I've seen it points at 
> the wrong package. If we can come up with a reproducible test case here 
> it'll help for fixing the bug and making that message more useful.
>
> It's almost certainly not Compat (I don't think anyone has ever added an 
> upper bound to a Compat dependency). Perhaps loop over Pkg.installed() and 
> display the contents of the REQUIRE file for the specific tags you have 
> currently installed, see who is upper-bounding each other? We do need 
> better tools for debugging this kind of thing to make it easier to figure 
> out what the dependency resolver is doing, which bound constraints are 
> active etc.
>
>
> On Tuesday, September 6, 2016 at 9:25:53 AM UTC-7, Tim Wheeler wrote:
>>
>> Okay - I removed GaussianMixtures and now it is complaining about Compat. 
>>
>> ERROR: unsatisfiable package requirements detected: no feasible version 
>> could be found for package: Compat
>>
>> I wrote a script to run through all package REQUIRE files and print out 
>> the Compat line, if any. None of these found anything specifying an 
>> upper-bound.
>>
>> I would like to find the offending packages. Is there a good way to go 
>> about doing this?
>>
>> Thank you.
>>
>> ArgParse:  Compat 0.7.3
>> ArrayViews:Compat
>> AutomotiveDrivingModels:   Compat 0.8
>> AxisAlgorithms:Compat 0.8
>> BayesNets: Compat
>> BinDeps:   Compat 0.8.4
>> Blink: Compat 0.8.6
>> Blosc: Compat 0.8
>> BufferedStreams:   Compat 0.8.4
>> Cairo: Compat 0.8.0
>> Calculus:  Compat 0.4.0
>> Codecs:Compat 0.7.20
>> Colors:Compat 0.8.0
>> Compose:   Compat 0.8.0
>> Conda: Compat 0.8
>> ConjugatePriors:   Compat 0.4.0
>> Contour:   Compat 0.8.0
>> DataArrays:Compat 0.8.6
>> DataFrames:Compat 0.8
>> Debug: Compat
>> Discretizers:  Compat
>> Distances: Compat 0.8.4
>> Distributions: Compat 0.4.0
>> Docile:Compat 0.7.1
>> FastAnonymous: Compat
>> FileIO:Compat 0.7.19
>> FixedPointNumbers: Compat 0.7.14
>> FixedSizeArrays:   Compat 0.8.7
>> Formatting:Compat
>> ForwardDiff:   Compat 0.8.6
>> Gadfly:Compat 0.8.5
>> Glob:  Compat
>> Graphs:Compat 0.7.16
>> Gtk:   Compat 0.8.0
>> GtkUtilities:  Compat 0.7.16
>> GZip:  Compat 0.8.0
>> HDF5:  Compat 0.8.0
>> Hexagons:  Compat
>> Hiccup:Compat 0.8.2
>> HttpCommon:Compat 0.7.20
>> HttpParser:Compat 0.7.20
>> HttpServer:Compat 0.7.16
>> IJulia:Compat 0.7.20
>> ImageMagick:   Compat 0.7.7
>> Images:Compat 0.8.4
>> ImageView: Compat 0.4.6
>> IniFile:   Compat 0.7.4
>> Interact:  Compat 0.7
>> Interpolations:Compat 0.8.0
>> Ipopt: Compat 0.8.0
>> Iterators: Compat
>> JLD:   Compat 0.8.0
>> JSON:  Compat 0.8.4
>> JuMP:  Compat 0.8.6
>> KernelDensity: Compat
>> LaTeXStrings:  Compat 0.8.0
>> Lazy:  Compat 0.8.0
>> LegacyStrings: Compat 0.8.4
>> Libz:  Compat 0.8.0
>> LightXML:  Compat 0.8.3
>> Lint:  Compat 0.8.2
>> Loess: Compat 0.8.4
>> MacroTools:Compat
>> MathProgBase:  Compat 0.7.13
>> MbedTLS:   Compat 0.8.0
>> MLBase:Compat
>> MultivariateStats: Compat 0.8.4
>> Mustache:   

[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler



On Tuesday, September 6, 2016 at 8:40:37 AM UTC-7, Chris Rackauckas wrote:
>
> Maybe one of its dependencies has a maximum version requirement?
>
> On Tuesday, September 6, 2016 at 8:38:01 AM UTC-7, Tim Wheeler wrote:
>>
>> Okay, this is a little weird.
>>
>> If I run the following it looks like the culprit is a dirty package:
>>
>> julia> Pkg.checkout("Distributions")
>> INFO: Checking out Distributions master...
>> INFO: Pulling Distributions latest master...
>> WARNING: Distributions is fixed at 0.10.1+ conflicting with requirement 
>> for GaussianMixtures: [0.0.0,0.10.0)
>>
>> The weird thing is that the REQUIRE file for GaussianMixtures does not 
>> mention the 0.10.1+
>>
>> julia 0.3 
>> Clustering
>> Distributions
>> PDMats
>> Compat
>> JLD
>>
>> Where does that come from?
>>
>>
>> On Tuesday, September 6, 2016 at 8:31:44 AM UTC-7, Tim Wheeler wrote:
>>>
>>> Hi Julia Users,
>>>
>>> I just noticed something a little weird. I am using Distributions.jl 
>>> (great package btw) in Julia 0.4.6 on Ubuntu, and it is listed in 
>>> Pkg.status() as a required package:
>>>
>>> Distributions 0.8.9
>>>
>>> I checked on METADATA and on the Distributions.jl github - there is a 
>>> more recent version. In fact, there are several more recent versions.
>>>
>>> I ran Pkg.update(), which updated some things but did not change 
>>> Distributions.jl. Am I missing something? Is there some package that 
>>> requires Distributions be less-than-current?
>>>
>>> Thank you,
>>> -Tim
>>>
>>

[julia-users] Re: Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler
Okay, this is a little weird.

If I run the following it looks like the culprit is a dirty package:

julia> Pkg.checkout("Distributions")
INFO: Checking out Distributions master...
INFO: Pulling Distributions latest master...
WARNING: Distributions is fixed at 0.10.1+ conflicting with requirement for 
GaussianMixtures: [0.0.0,0.10.0)

The weird thing is that the REQUIRE file for GaussianMixtures does not 
mention the 0.10.1+

julia 0.3 
Clustering
Distributions
PDMats
Compat
JLD

Where does that come from?


On Tuesday, September 6, 2016 at 8:31:44 AM UTC-7, Tim Wheeler wrote:
>
> Hi Julia Users,
>
> I just noticed something a little weird. I am using Distributions.jl 
> (great package btw) in Julia 0.4.6 on Ubuntu, and it is listed in 
> Pkg.status() as a required package:
>
> Distributions 0.8.9
>
> I checked on METADATA and on the Distributions.jl github - there is a more 
> recent version. In fact, there are several more recent versions.
>
> I ran Pkg.update(), which updated some things but did not change 
> Distributions.jl. Am I missing something? Is there some package that 
> requires Distributions be less-than-current?
>
> Thank you,
> -Tim
>


[julia-users] Pkg.update() does not pull latest version?

2016-09-06 Thread Tim Wheeler
Hi Julia Users,

I just noticed something a little weird. I am using Distributions.jl (great 
package btw) in Julia 0.4.6 on Ubuntu, and it is listed in Pkg.status() as 
a required package:

Distributions 0.8.9

I checked on METADATA and on the Distributions.jl github - there is a more 
recent version. In fact, there are several more recent versions.

I ran Pkg.update(), which updated some things but did not change 
Distributions.jl. Am I missing something? Is there some package that 
requires Distributions be less-than-current?

Thank you,
-Tim


Re: [julia-users] Is the master algorithm on the roadmap?

2016-09-02 Thread Tim Wheeler
@kevin: I seriously doubt that anyone has ill wishes concerning your desire 
to implement a great MLP package for Julia. The problem is that you don't 
seem to have a clear enough understanding of how to go about solving the 
problem, and noone here has been willing to divert their work towards this 
project. The MLP project is grand, and if done properly could be of use to 
people, but it takes a lot of time and expertise to pull off.

We have difficulty helping you because the issues are non-specific and the 
questions are not about julia per se - they are about the entire MLP 
project as a whole. I am sure the community would be happy to answer 
specific, focused questions.

Roping people in on Github using the @-call doesn't help either. That 
should only be used sparingly for calling attention to a discussion when it 
is really relevant.

I wish you the best of luck but please be respectful of everyone's time and 
attention.

On Friday, September 2, 2016 at 8:22:37 AM UTC-7, Chris Rackauckas wrote:
>
> Two things. One, yes I am using a form of relational learning on that 
> project. Interesting stuff is coming out of it. But two, I was just trying 
> to help. You're clearly abusing the mailing list and are probably going to 
> get banned if you don't stop. I suggest blogging these musings, and keeping 
> the mailing list for discussions about Julia code.
>
> On Friday, September 2, 2016 at 7:23:27 AM UTC-7, Kevin Liu wrote:
>>
>> May I also point out to the My settings button on your top right corner > 
>> My topic email subscriptions > Unsubscribe from this thread, which would've 
>> spared you the message.
>>
>> On Friday, September 2, 2016 at 11:19:42 AM UTC-3, Kevin Liu wrote:
>>>
>>> Hello Chris. Have you been applying relational learning to your Neural 
>>> Crest Migration Patterns in Craniofacial Development research project? It 
>>> could enhance your insights. 
>>>
>>> On Friday, September 2, 2016 at 6:18:15 AM UTC-3, Chris Rackauckas wrote:

 This entire thread is a trip... a trip which is not really relevant to 
 julia-users. You may want to share these musings in the form of a blog 
 instead of posting them here.

 On Friday, September 2, 2016 at 1:41:03 AM UTC-7, Kevin Liu wrote:
>
> Princeton's post: 
> http://www.nytimes.com/2016/08/28/world/europe/france-burkini-bikini-ban.html?_r=1
>
> Only logic saves us from paradox. - Minsky
>
> On Thursday, August 25, 2016 at 10:18:27 PM UTC-3, Kevin Liu wrote:
>>
>> Tim Holy, I am watching your keynote speech at JuliaCon 2016 where 
>> you mention the best optimization is not doing the computation at all. 
>>
>> Domingos talks about that in his book, where an efficient kind of 
>> learning is by analogy, with no model at all, and how numerous 
>> scientific 
>> discoveries have been made that way, e.g. Bohr's analogy of the solar 
>> system to the atom. Analogizers learn by hypothesizing that entities 
>> with 
>> similar known properties have similar unknown ones. 
>>
>> MLN can reproduce structure mapping, which is the more powerful type 
>> of analogy, that can make inferences from one domain (solar system) to 
>> another (atom). This can be done by learning formulas that don't refer 
>> to 
>> any of the specific relations in the source domain (general formulas). 
>>
>> Seth and Tim have been helping me a lot with putting the pieces 
>> together for MLN in the repo I created 
>> , and more help is 
>> always welcome. I would like to write MLN in idiomatic Julia. My 
>> question 
>> at the moment to you and the community is how to keep mappings of 
>> first-order harmonic functions type-stable in Julia? I am just 
>> getting acquainted with the type field. 
>>
>> On Tuesday, August 9, 2016 at 9:02:25 AM UTC-3, Kevin Liu wrote:
>>>
>>> Helping me separate the process in parts and priorities would be a 
>>> lot of help. 
>>>
>>> On Tuesday, August 9, 2016 at 8:41:03 AM UTC-3, Kevin Liu wrote:

 Tim Holy, what if I could tap into the well of knowledge that you 
 are to speed up things? Can you imagine if every learner had to start 
 without priors? 

 > On Aug 9, 2016, at 07:06, Tim Holy  wrote: 
 > 
 > I'd recommend starting by picking a very small project. For 
 example, fix a bug 
 > or implement a small improvement in a package that you already 
 find useful or 
 > interesting. That way you'll get some guidance while making a 
 positive 
 > contribution; once you know more about julia, it will be easier 
 to see your 
 > way forward. 
 > 
 > Best, 
 > --Tim 
 > 
 >> On Monday, August 8, 2016 8:22:01 PM CDT Kevin Liu wrote: 
 

[julia-users] Re: When git master is preferred to the tagged version obtained by Pkg. add()

2016-09-01 Thread Tim Wheeler
Pkg.add fetches the latest published version of the package (which resides 
in Metadata). That is not necessarily the master version.
This is so that package developers working on new features don't 
inadvertently break a lot of folks' code. That being said, it is up to the 
package developer to tag and publish new versions to ensure that bug fixes 
reach users.

On Thursday, September 1, 2016 at 11:55:01 AM UTC-7, Colin Beckingham wrote:
>
> I just ran into the situation with a Julia package where testing with the 
> version of the package obtained by Pkg.add was broken with respect to the 
> test process. Pkg.checkout followed by Pkg.build gave me the master version 
> which worked fine in test. Does this necessarily imply that Pkg.add is 
> fetching the wrong version?
>


[julia-users] Re: [HELP] Doubts in Julia Language with Strings.. I've condensed my doubts into one Simple Program

2016-08-24 Thread Tim Wheeler
str = "abcabc"
arr = convert(Vector{UInt8}, str)

# you can increase indeces with addition now.
arr[1] += 5

# convert back
str2 = convert(typeof(str), arr)
println(str2) # -> should print "fbcabc"


On Wednesday, August 24, 2016 at 7:35:58 AM UTC-7, Rishabh Raghunath wrote:
>
> *Hello Julia Users !!..*
>
> I have asked this question before in the forum but am still a bit unclear 
> on how to do the below.. I have condensed a few of my doubts in the 
> question below.
>
> Being from a C background where strings are just character Arrays, 
> manipulating individual characters using the array index was easy.. However 
> In julia that definitely does not seem to be the recommended way to go 
> about doing things and I have a lot of doubts about the small details on 
> the language. Here's a small example of what I am trying to achieve with my 
> program .. This is a fairly simple program while doing it in C but I have 
> absolutely no idea how to implement the same in Julia as strings cannot be 
> treated like character arrays and i cannot just  increment an index of the 
> string to increase the ASCII value of the character in Julia. Please try to 
> solve the problem or guide me on how to implement this in Julia.. I promise 
> the question is very simple and isn't as complex as It may seem at a 
> glance. 
>
> *My Aim*:
>
> To write a program a program which accepts a string via the input 
> and encrypts it to the following simple algorithm ..
>
> *Algorithm:*
>
> *Example Input String: abcabc*
>
> 1. Increase the ASCII value of the character at the *ODD index* of the 
> string  by 5 steps( example increased the ASCII value of '  *a*  ' by 2 
> thus making it   ' * c*  '  
> 2. Increase the ASCII value of the character at the *EVEN index* of the 
> string  by 1 step( example increased the ASCII value of ' * b*  ' by 1 
> thus making it   '  *c*  '
> 3. Print the new encrypted string on Screen. I need it stored in a new 
> string variable say z *(OUTPUT : ccebdd  )*
> 3. Insert a ' - ' between each pair of characters of the string and store 
> in new string in another string variable say y.
> 4. Print string y on the screen  * (OUTPUT : cc-eb-dd  ) *
> 5. Change all the characters in the string into its number equivalent. ( 
> a=1,b=2,c=3,.) and separate the numbers representing each character by 
>  '  :  ' 
> 6. Store the new string from the above operation in variable v and print v 
>  *(OUTPUT : 3:3-5:2-4:4)*
>
> Guys .. Try to help me out !!.. I tried searching everywhere on the 
> internet for steps in doing the above operations in Julia but haven't found 
> anything.. I always get the index errors for treating Julia the C way.. 
> Please try to create a program that does the above.. Just so that Its 
> easier for me to understand what you are doing in the program rather than 
> type the directives in English and then later misunderstanding stuff... I 
> need to learn doing the above procedure the right way without messing with 
> stuff like using indexes in strings for character manipulation that may get 
> deprecated in the future..
>
> Thanks !! Waiting eagerly for a reply !!  
>
>

[julia-users] Re: can't get pyjulia to work

2016-08-23 Thread Tim Wheeler
So here is what I did:

in Julia v0.4.6:

julia> Pkg.pin("PyCall", v"1.3.0")
julia> Pkg.build("PyCall")

removed core.py in /usr/local/lib/python2.7/dist-packages/julia/
created a new core.py containing these contents 
.

running, in python:

>>> import julia
>>> julia.Julia()

works fine.


Re: [julia-users] Re: can't get pyjulia to work

2016-08-09 Thread Tim Wheeler
Okay,  thank you!
We are trying to get it to work on another computer.

On Tuesday, August 9, 2016 at 3:19:02 PM UTC-7, Keno Fischer wrote:
>
> Should have been, yes.
>
> On Tue, Aug 9, 2016 at 6:05 PM, Tim Wheeler <timwheel...@gmail.com 
> > wrote:
>
>> Was this fixed?
>>
>> On Monday, July 11, 2016 at 11:24:00 AM UTC-7, Keno Fischer wrote:
>>>
>>> I've been working on making this work again. Should be merged in a 
>>> couple of days. 
>>>
>>> On Mon, Jul 11, 2016 at 1:30 PM, Tim Wheeler <timwheel...@gmail.com> 
>>> wrote: 
>>> > So I may have figured it out. 
>>> > 
>>> > According to here, one needs to: 
>>> > 
>>> > Tag PyCall.jl at v1.3.0 
>>> > Use the pull request from benmoran 
>>> > 
>>> > Tagging is accomplished by navigating to the PyCall.jl package 
>>> directory and 
>>> > running git checkout v1.3.0. 
>>> > I wasn't sure how to install the pull request, so I overwrite the only 
>>> > changed file, core.py, in the pyjulia package source using benmoran's 
>>> > version. The installed package location can be found in python: 
>>> > 
>>> > ``` 
>>> > import julia 
>>> > julia.__file__ 
>>> > ``` 
>>> > 
>>> > The error has gone away. Hopefully it continues to work! 
>>> > 
>>> > On Monday, July 11, 2016 at 9:46:56 AM UTC-7, Tim Wheeler wrote: 
>>> >> 
>>> >> Have there been updates to this issue? I am seeing the same "ERROR: 
>>> >> UndefVarError: dlpath not defined" problem. 
>>> >> 
>>> >> I tried running git checkout v1.3.0 as recommended, and then rebuilt 
>>> with 
>>> >> 
>>> >> 1) Delete ~/.julia/lib 
>>> >> 2) Run in julia: 
>>> >> 2.1) ENV["PYTHON"] = " ... path to python ... " 
>>> >> 2.2) Pkg.build("PyCall") 
>>> >> 2.3) using PyCall 
>>> >> 
>>> >> as recommended. So far no luck. 
>>> >> 
>>> >> I am using ubuntu 14.04 and Python 2.7.10 | Anaconda 2.3.0 (64-bit) 
>>>
>>
>

Re: [julia-users] Re: can't get pyjulia to work

2016-08-09 Thread Tim Wheeler
Was this fixed?

On Monday, July 11, 2016 at 11:24:00 AM UTC-7, Keno Fischer wrote:
>
> I've been working on making this work again. Should be merged in a 
> couple of days. 
>
> On Mon, Jul 11, 2016 at 1:30 PM, Tim Wheeler <timwheel...@gmail.com 
> > wrote: 
> > So I may have figured it out. 
> > 
> > According to here, one needs to: 
> > 
> > Tag PyCall.jl at v1.3.0 
> > Use the pull request from benmoran 
> > 
> > Tagging is accomplished by navigating to the PyCall.jl package directory 
> and 
> > running git checkout v1.3.0. 
> > I wasn't sure how to install the pull request, so I overwrite the only 
> > changed file, core.py, in the pyjulia package source using benmoran's 
> > version. The installed package location can be found in python: 
> > 
> > ``` 
> > import julia 
> > julia.__file__ 
> > ``` 
> > 
> > The error has gone away. Hopefully it continues to work! 
> > 
> > On Monday, July 11, 2016 at 9:46:56 AM UTC-7, Tim Wheeler wrote: 
> >> 
> >> Have there been updates to this issue? I am seeing the same "ERROR: 
> >> UndefVarError: dlpath not defined" problem. 
> >> 
> >> I tried running git checkout v1.3.0 as recommended, and then rebuilt 
> with 
> >> 
> >> 1) Delete ~/.julia/lib 
> >> 2) Run in julia: 
> >> 2.1) ENV["PYTHON"] = " ... path to python ... " 
> >> 2.2) Pkg.build("PyCall") 
> >> 2.3) using PyCall 
> >> 
> >> as recommended. So far no luck. 
> >> 
> >> I am using ubuntu 14.04 and Python 2.7.10 | Anaconda 2.3.0 (64-bit) 
>


[julia-users] Re: issue with setdiff

2016-08-01 Thread Tim Wheeler
Your Set constructor is incorrect.
Try Set{Int}([1,2,3,4]) instead.


Re: [julia-users] Fast Dispatch on Metrics and Features

2016-07-11 Thread Tim Wheeler
Thank you for the reply. I think you're right.
I did notice a significant slowdown for features used in inner loops. (see 
this discussion 
).



[julia-users] Fast Dispatch on Metrics and Features

2016-07-11 Thread Tim Wheeler
Hello Julia Users,

I have wanted to use dispatch to enable the extraction of features or 
metrics. This way you can define a large collection of features that all 
extend AbstractFeature, and then just run through a list of them to get 
your feature vector.

One way this could be implemented is as follows:

abstract AbstractFeature
extract(f::AbstractFeature, ::State) = error("extract not implemented for 
AbstractFeature $f)

type FeatureA <: AbstractFeature end
extract(f::FeatureA, s::State) = 1.0

type FeatureB <: AbstractFeature end
extract(f::FeatureB, s::State) = 2.0

...


This is great in theory, but in practice you end up having to iterate over 
an abstract array, ::Vector{AbstractFeature}, which is slow.

Other options include only having one Feature type:
type Feature
   id::Int
end

function extract(f::Feature, s::State)
if f.id == 1
   # code for feature 1...
elseif f.id == 2
   # code for feature 2...
elseif ...
end
end

You lose the ability to define Features with different internal fields / 
parameters.

I was thinking you can also dispatch on the internal id value. Would this 
work?

type Feature
id::Int
end
extract(::Type{Val{1}}, s::State) = 1.0
extract(::Type{Val{2}}, s::State) = 2.0

This is a little annoying because the ids are non-intuitive and you have to 
ensure there is no collision when you define new ones.

Any ideas / recommendations?




[julia-users] Re: can't get pyjulia to work

2016-07-11 Thread Tim Wheeler
So I may have figured it out.

According to here <https://github.com/JuliaLang/pyjulia/issues/51>, one 
needs to:

   1. Tag PyCall.jl at v1.3.0
   2. Use the pull request from benmoran 
   <https://github.com/benmoran/pyjulia/tree/master/julia>

Tagging is accomplished by navigating to the PyCall.jl package directory 
and running git checkout v1.3.0.
I wasn't sure how to install the pull request, so I overwrite the only 
changed file, core.py 
<https://raw.githubusercontent.com/benmoran/pyjulia/master/julia/core.py>, 
in the pyjulia package source using benmoran's version. The installed 
package location can be found in python:

```
import julia
julia.__file__
```

The error has gone away. Hopefully it continues to work!

On Monday, July 11, 2016 at 9:46:56 AM UTC-7, Tim Wheeler wrote:
>
> Have there been updates to this issue? I am seeing the same "ERROR: 
> UndefVarError: dlpath not defined" problem.
>
> I tried running git checkout v1.3.0 as recommended, and then rebuilt with
>
> 1) Delete ~/.julia/lib
> 2) Run in julia:
> 2.1) ENV["PYTHON"] = " ... path to python ... "
> 2.2) Pkg.build("PyCall")
> 2.3) using PyCall
>
> as recommended. So far no luck.
>
> I am using ubuntu 14.04 and Python 2.7.10 | Anaconda 2.3.0 (64-bit)
>


[julia-users] Re: can't get pyjulia to work

2016-07-11 Thread Tim Wheeler
Have there been updates to this issue? I am seeing the same "ERROR: 
UndefVarError: dlpath not defined" problem.

I tried running git checkout v1.3.0 as recommended, and then rebuilt with

1) Delete ~/.julia/lib
2) Run in julia:
2.1) ENV["PYTHON"] = " ... path to python ... "
2.2) Pkg.build("PyCall")
2.3) using PyCall

as recommended. So far no luck.

I am using ubuntu 14.04 and Python 2.7.10 | Anaconda 2.3.0 (64-bit)


[julia-users] Re: ANN: DC.jl - automagical linked plots in your IJulia Notebook

2016-06-12 Thread Tim Wheeler
Now renamed to CrossfilterCharts.jl 
<https://github.com/tawheeler/CrossfilterCharts.jl> to make it 
METADATA-friendly.

On Wednesday, June 1, 2016 at 9:28:07 PM UTC-7, Tim Wheeler wrote:
>
> Hello Julia Users,
>
> We are happy to announce DC.jl <https://github.com/tawheeler/DC.jl> - a 
> package which gives you the power of DC.js 
> <https://dc-js.github.io/dc.js/> in your IJulia notebook. The premise is 
> simple: put in a DataFrame and you get out a nice set of charts that you 
> can interactively filter. Whenever you do so they automatically crossfilter.
>
>
> <https://lh3.googleusercontent.com/-ZKI-pax6Ay8/V0-1sv1BYAI/BR0/TGmzafYpLmIx7DvBFG4BAD1LsuiXiaQ7ACLcB/s1600/Selection_031.png>
>
>
>
> The package is up and running. We (three students) put it together for our 
> data visualization course. We hope you like it and welcome comments / 
> suggestions.
>
>
>
>

[julia-users] ANN: DC.jl - automagical linked plots in your IJulia Notebook

2016-06-01 Thread Tim Wheeler
Hello Julia Users,

We are happy to announce DC.jl  - a 
package which gives you the power of DC.js  
in your IJulia notebook. The premise is simple: put in a DataFrame and you 
get out a nice set of charts that you can interactively filter. Whenever 
you do so they automatically crossfilter.





The package is up and running. We (three students) put it together for our 
data visualization course. We hope you like it and welcome comments / 
suggestions.





[julia-users] Re: using subscripts \_1, \_2, ... as field names

2016-05-10 Thread Tim Wheeler
I would love to see a₁ automatically call getindex(a, 1). It would make 
math easier.

I'd love to be able to write:

b = μ₂ + Σ₁₂*(a₁ - μ₁)/Σ₁₁
Λ = Σ₂₂ - Σ₁₂*Σ₁₂/Σ₁₁

for μ::Vector{F<:Real}
and Σ::Matrix{F<:Real}

Σ could be accessed via Σ₁₁ to get Σ[1,1]. Of course this breaks down with 
digits larger than 9, but you probably don't want to be using this feature 
for such large values.




On Tuesday, May 10, 2016 at 1:56:16 AM UTC-7, Davide Lasagna wrote:
>
> Hi, 
>
> I have a custom type representing a bordered matrix (a big square matrix, 
> bordered by two vectors and a scalar in the bottom right corner), where the 
> four blocks are stored in separated chunks of memory. I would like to call 
> the fields of my type using subscripts \_1\_1, \_1\_2, ... so that I can 
> nicely access them as A.11, A.12, ... However, it seems that subscripts 
> (and superscripts) with digits can't be used for variable names, resulting 
> in a syntax error.  Subscripts with letters work fine. 
>
> Any thoughts on this? 
>


[julia-users] Re: PyCall exception.jl's pycheckv - hidden exceptions or is it normal for that to take some time?

2016-04-15 Thread Tim Wheeler
Aha - it makes complete sense that the Python workload would show up 
somewhere in the profiler. I suppose I wasn't expecting it in exception.jl, 
but if that is where the work happens that is fine.
I'm copying the results from TF into my memory - if TF doesn't create new 
ones every time I can just retain handles to those but I haven't checked 
whether that is the case.
Thank you for your advice!



[julia-users] Re: PyCall exception.jl's pycheckv - hidden exceptions or is it normal for that to take some time?

2016-04-14 Thread Tim Wheeler
The relevant lines are:

pycall(tfJuliaInterface.pass_image_to_ff, Void,
   weights, means, covs,
   model.sess, model.deepdrive, model.input_tensor)
pyerr_check("pass image to ff")

def pass_image_to_ff(weights, means, covs, sess, NN, image):
feed = {NN.input_image: image, NN.is_training: False}
w, mu, cov = sess.run([NN.weights_ff, NN.mu_ff, NN.cov_ff], feed)
weights[:] = w
means[:] = mu
covs[:] = cov



On Thursday, April 14, 2016 at 11:38:29 AM UTC-7, Tim Wheeler wrote:
>
> Hello Julia users,
>
> I am using PyCall to run some Python code. I did some profiling and found 
> that my time is dominated by the pycheckv macro. 
> My question is whether this is normal or if there are hidden exceptions in 
> my Python code that I need to worry about. pyerr_check is not revealing 
> any issues.
>
>
> <https://lh3.googleusercontent.com/-IAtXaA-C3E4/Vw_jXLAvx8I/BPU/bf0mNdasizMVZWq0oBCrO1IJdl383a31gCLcB/s1600/Selection_281.png>
>
>
>
> thank you,
> -Tim
>


[julia-users] PyCall exception.jl's pycheckv - hidden exceptions or is it normal for that to take some time?

2016-04-14 Thread Tim Wheeler
Hello Julia users,

I am using PyCall to run some Python code. I did some profiling and found 
that my time is dominated by the pycheckv macro. 
My question is whether this is normal or if there are hidden exceptions in 
my Python code that I need to worry about. pyerr_check is not revealing any 
issues.





thank you,
-Tim


[julia-users] Re: dispatch slowdown when iterating over array with abstract values

2016-04-04 Thread Tim Wheeler
Thank you for everyone's comments.
To summarize, the slow version needs to perform memory allocation to 
protect itself against potential type instability should future types and 
associated evaluate function be defined, whereas the 'fast' version is 
protected from this and the compiler can optimize it.

Also, I learned about code_warntype and code_llvm.

On Friday, April 1, 2016 at 6:56:52 PM UTC-7, Tim Wheeler wrote:
>
> Hello Julia Users.
>
> I ran into a weird slowdown issue and reproduced a minimal working 
> example. Maybe someone can help shed some light.
>
> abstract Feature
>
> type A <: Feature end
> evaluate(f::A) = 1.0
>
> type B <: Feature end
> evaluate(f::B) = 0.0
>
> function slow(features::Vector{Feature})
> retval = 0.0
> for i in 1 : length(features)
> retval += evaluate(features[i])
> end
> retval
> end
>
> function fast(features::Vector{Feature})
> retval = 0.0
> for i in 1 : length(features)
> if isa(features[i], A)
> retval += evaluate(features[i]::A)
> else
> retval += evaluate(features[i]::B)
> end
> end
> retval
> end
>
> using ProfileView
>
> features = Feature[]
> for i in 1 : 1
> push!(features, A())
> end
>
> slow(features)
> @time slow(features)
> fast(features)
> @time fast(features)
>
> The output is:
>
> 0.000136 seconds (10.15 k allocations: 166.417 KB)
> 0.12 seconds (5 allocations: 176 bytes)
>
>
> This is a HUGE difference! Am I missing something big? Is there a good way to 
> inspect code to figure out where I am going wrong?
>
>
> Thank you in advance for any guidance.
>
>
> -Tim
>
>
>
>
>
>

Re: [julia-users] dispatch slowdown when iterating over array with abstract values

2016-04-02 Thread Tim Wheeler
Thank you for the comments. In my original code it means the difference 
between a 30 min execution with memory allocation in the Gigabytes and a 
few seconds of execution with only 800 bytes using the second version.
I thought under-the-hood Julia basically runs those if statements anyway 
for its dispatch, and don't know why it needs to allocate any memory.
Having the if-statement workaround will be fine though. 

On Saturday, April 2, 2016 at 7:26:11 AM UTC-7, Cedric St-Jean wrote:
>
>
> Therefore there's no way the compiler can rewrite the slow version to the 
>> fast version. 
>
>
> It knows that the element type is a Feature, so it could produce:
>
> if isa(features[i], A)
> retval += evaluate(features[i]::A)
> elseif isa(features[i], B)
> retval += evaluate(features[i]::B)
> else
> retval += evaluate(features[i])
> end
>
> and it would make sense for abstract types that have few subtypes. I 
> didn't realize that dispatch was an order of magnitude slower than type 
> checking. It's easy enough to write a macro generating this expansion, too.
>
> On Saturday, April 2, 2016 at 2:05:20 AM UTC-4, Yichao Yu wrote:
>>
>> On Fri, Apr 1, 2016 at 9:56 PM, Tim Wheeler <timwheel...@gmail.com> 
>> wrote: 
>> > Hello Julia Users. 
>> > 
>> > I ran into a weird slowdown issue and reproduced a minimal working 
>> example. 
>> > Maybe someone can help shed some light. 
>> > 
>> > abstract Feature 
>> > 
>> > type A <: Feature end 
>> > evaluate(f::A) = 1.0 
>> > 
>> > type B <: Feature end 
>> > evaluate(f::B) = 0.0 
>> > 
>> > function slow(features::Vector{Feature}) 
>> > retval = 0.0 
>> > for i in 1 : length(features) 
>> > retval += evaluate(features[i]) 
>> > end 
>> > retval 
>> > end 
>> > 
>> > function fast(features::Vector{Feature}) 
>> > retval = 0.0 
>> > for i in 1 : length(features) 
>> > if isa(features[i], A) 
>> > retval += evaluate(features[i]::A) 
>> > else 
>> > retval += evaluate(features[i]::B) 
>> > end 
>> > end 
>> > retval 
>> > end 
>> > 
>> > using ProfileView 
>> > 
>> > features = Feature[] 
>> > for i in 1 : 1 
>> > push!(features, A()) 
>> > end 
>> > 
>> > slow(features) 
>> > @time slow(features) 
>> > fast(features) 
>> > @time fast(features) 
>> > 
>> > The output is: 
>> > 
>> > 0.000136 seconds (10.15 k allocations: 166.417 KB) 
>> > 0.12 seconds (5 allocations: 176 bytes) 
>> > 
>> > 
>> > This is a HUGE difference! Am I missing something big? Is there a good 
>> way 
>> > to inspect code to figure out where I am going wrong? 
>>
>> This is because of type instability as you will find in the performance 
>> tips. 
>> Note that slow and fast are not equivalent since the fast version only 
>> accept `A` or `B` but the slow version accepts any subtype of feature 
>> that you may ever define. Therefore there's no way the compiler can 
>> rewrite the slow version to the fast version. 
>> There are optimizations that can be applied to bring down the gap but 
>> there'll always be a large difference between the two. 
>>
>> > 
>> > 
>> > Thank you in advance for any guidance. 
>> > 
>> > 
>> > -Tim 
>> > 
>> > 
>> > 
>> > 
>> > 
>>
>

[julia-users] dispatch slowdown when iterating over array with abstract values

2016-04-01 Thread Tim Wheeler
Hello Julia Users.

I ran into a weird slowdown issue and reproduced a minimal working example. 
Maybe someone can help shed some light.

abstract Feature

type A <: Feature end
evaluate(f::A) = 1.0

type B <: Feature end
evaluate(f::B) = 0.0

function slow(features::Vector{Feature})
retval = 0.0
for i in 1 : length(features)
retval += evaluate(features[i])
end
retval
end

function fast(features::Vector{Feature})
retval = 0.0
for i in 1 : length(features)
if isa(features[i], A)
retval += evaluate(features[i]::A)
else
retval += evaluate(features[i]::B)
end
end
retval
end

using ProfileView

features = Feature[]
for i in 1 : 1
push!(features, A())
end

slow(features)
@time slow(features)
fast(features)
@time fast(features)

The output is:

0.000136 seconds (10.15 k allocations: 166.417 KB)
0.12 seconds (5 allocations: 176 bytes)


This is a HUGE difference! Am I missing something big? Is there a good way to 
inspect code to figure out where I am going wrong?


Thank you in advance for any guidance.


-Tim







[julia-users] Re: Given code is not giving the optimal solution .

2016-04-01 Thread Tim Wheeler
solve(m)
print(m.colVal)

That gives me this, which I believe is the right answer. Note that you 
included a space between `solve` and `(m)`, which is not recommended.

2-element Array{Float64,1}:
 0.0
 0.0


On Friday, April 1, 2016 at 4:03:30 AM UTC-7, tann...@gmail.com wrote:
>
> Hello to every one,
>
> Any one can tell me the code given below is not giving the optimal 
> solution .it gives the just range of x1 and x2. I want to calculate optimal 
> value of the function. Thank you for your time.
>
> Best Regards,
> Tanveer Iqbal
>
> using JuMP
> using Ipopt
> m = Model(solver = IpoptSolver())
>
> @defVar(m, 0 <= x1 <=3)
> @defVar(m, 0 <= x2 <=7)
>
> @addNLConstraint(m, x1+2x2 <=8)
> @addNLConstraint(m, 2x1 + x2 <= 10)
> @addNLConstraint(m,  x2 <= 3)
>
> @setNLObjective(m, Min, (x1)^2 +2(x2)^2 + 2(x1)+ 3(x2))
>
> solve (m)
>
> print(m)
>


[julia-users] Re: Does the Julia global RNG have a name?

2016-03-30 Thread Tim Wheeler
Ha! It is Base.GLOBAL_RNG

On Wednesday, March 30, 2016 at 9:42:32 AM UTC-7, Tim Wheeler wrote:
>
> Hello Julia Users,
>
> Does the Julia global RNG have a name? Is it possible to do something as 
> follows?
>
> function sample_batch!(batch, dataset, rng::AbstractRNG = JULIA_GLOBAL_RNG
> )
> ...
> end
>
> Do I have to do something like this?
>
> function sample_batch!(rng::AbstractRNG, batch, dataset)
> ...
> end
>
> function sample_batch!(batch, dataset)
> ...
> end
>
> Thanks!
> -Tim
>


[julia-users] Does the Julia global RNG have a name?

2016-03-30 Thread Tim Wheeler
Hello Julia Users,

Does the Julia global RNG have a name? Is it possible to do something as 
follows?

function sample_batch!(batch, dataset, rng::AbstractRNG = JULIA_GLOBAL_RNG)
...
end

Do I have to do something like this?

function sample_batch!(rng::AbstractRNG, batch, dataset)
...
end

function sample_batch!(batch, dataset)
...
end

Thanks!
-Tim


[julia-users] Re: Sort function

2016-01-20 Thread Tim Wheeler
You should be able to write your own Base.isless function for the types you 
need to support.

On Wednesday, January 20, 2016 at 7:48:40 AM UTC-8, Ted Fujimoto wrote:
>
> Hi,
>
> In Python, we have this:
>
> >>> sorted([(1, [2,3]), (1,[2,1])])
> [(1, [2, 1]), (1, [2, 3])]
>
> In Julia, this produces a MethodError:
>
> julia> sort([(1, [2,3]), (1,[2,1])])
> ERROR: MethodError: `isless` has no method matching 
> isless(::Array{Int64,1}, ::Array{Int64,1})
>  in isless at tuple.jl:113
>  in sort! at sort.jl:221
>  in sort! at sort.jl:310
>  in sort! at sort.jl:402
>  in sort at sort.jl:413
>
> Is this desirable? Should this be submitted as an issue?
>
> Thanks.
>
>
>

[julia-users] Re: Install Old Version of Julia (0.3)

2015-10-14 Thread Tim Wheeler
Okay, I figured it out.
Apparently amd64 doesn't have anything to do with AMD vs. Intel.
I installed it and it works!

On Wednesday, October 14, 2015 at 12:19:45 PM UTC-7, Tim Wheeler wrote:
>
> Hello Julia Users,
>
> I am running Ubuntu 14.04 and had the standard julia ppa. Ubuntu 
> automatically updated me to Julia 0.4. Unfortunately I have a paper due 
> soon and the update messed up my modules. Is it possible to install the old 
> version (0.3)?
> I was on the julia releases page 
> <https://launchpad.net/~staticfloat/+archive/ubuntu/juliareleases/+packages> 
> but the 0.3.11-trusty2 file is shown to be broken for Intel processors. 
> Is there a way to get an older version that compiles for Ubuntu 14.04 
> (trusty) on Intel chips?
>
> I also checked `apt-cache policy julia`, which gives me:
>
> >>apt-cache policy julia
> julia:
>   Installed: (none)
>   Candidate: 0.4.0-trusty3
>   Version table:
>  0.4.0-trusty3 0
> 500 http://ppa.launchpad.net/staticfloat/juliareleases/ubuntu/ 
> trusty/main amd64 Packages
> 100 /var/lib/dpkg/status
>  0.2.1+dfsg-2 0
> 500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 
> Packages
>
>
> Is 0.3 no longer an option?
>
> Thank you
>


[julia-users] Re: Type inheritance question

2015-09-10 Thread Tim Wheeler
Julia only supports concrete leaves in the type tree - all non-leaves 
(parents) must be abstract types.

You should be able to do:

abstract AbstractDataStream{T <: Number}

type DirectedDataStream{T <: Number} <: AbstractDataStream{T}
data::Vector{T}
stuff
end

type ReversedDataStream{T <: Number} <: AbstractDataStream{T}
data::Vector{T}
stuff
end

Another thing you can do that still leverages multiple dispatch is define 
the reversal as a separate type:

abstract Direction
type ForwardDirection <: Direction end
type BackwardDirection <: Direction end

type MyDataStream{T<:Number, D<:Direction}
data::Vector{T}
direction::D
stuff
end

Base.plus{T<:Number, S<:Number, D<:ForwardDirection}(a::MyDataStream{T,D}, b
::MyDataStream{S,D}) ...
Base.plus{T<:Number, S<:Number, D<:BackwardDirection}(a::MyDataStream{T,D}, 
b::MyDataStream{S,D}) ...




[julia-users] Re: Type inheritance question

2015-09-10 Thread Tim Wheeler
Thanks Jeffrey - I did not know that one can leave the type out.


[julia-users] Re: Julia 0.4 warnings and how to fix

2015-09-01 Thread Tim Wheeler
Thanks! I was trying to figure out how to do Base.== for a long time. It 
turns out the proper way to do it is as follows (found this in 
DataArrays.jl):

Base.(:(==))( ... ) 


[julia-users] REQUIRE package with clone url

2015-08-27 Thread Tim Wheeler
Hello Julia Users,

Is it possible to put a package dependency in REQUIRE that uses a clone url 
instead of a Metadata package name?


[julia-users] Re: REQUIRE package with clone url

2015-08-27 Thread Tim Wheeler
Great! thank you

On Thursday, August 27, 2015 at 10:35:28 AM UTC-7, Chris wrote:

 See this thread 
 https://groups.google.com/forum/#!topic/julia-users/eHINShc-1XM for 
 more discussion.

 On Thursday, August 27, 2015 at 1:22:54 PM UTC-4, Tim Wheeler wrote:

 Hello Julia Users,

 Is it possible to put a package dependency in REQUIRE that uses a clone 
 url instead of a Metadata package name?



[julia-users] Native Julia types for C structs - how to handle vectors

2015-08-08 Thread Tim Wheeler
Hello Julia Users,

I have been using Julia's `ccall` interface and was wondering how to handle 
C structs containing fixed-length arrays:

typedef struct
{
uint8 x; // this is fine
uint8 y[2]; // this will cause issues
} MY_STRUCT;


My current conversion is:

type MY_STRUCT
x::Uint8 // this is fine
y::(Uint8,Uint8) // this will cause issues
end

I can create `read` and `write` functions but also have to overwrite 
`sizeof` because the tuple appears to be stored as a pointer instead of 
being stored `flat`.
Is there a better suggestion for how to store a fixed-length array?

Thanks!



Re: [julia-users] Native Julia types for C structs - how to handle vectors

2015-08-08 Thread Tim Wheeler
Great! Thank you

On Saturday, August 8, 2015 at 1:13:52 PM UTC-7, Yichao Yu wrote:

 On Sat, Aug 8, 2015 at 4:08 PM, Tim Wheeler timwheel...@gmail.com 
 javascript: wrote: 
  Hello Julia Users, 
  
  I have been using Julia's `ccall` interface and was wondering how to 
 handle 
  C structs containing fixed-length arrays: 
  
  typedef struct 
  { 
  uint8 x; // this is fine 
  uint8 y[2]; // this will cause issues 
  } MY_STRUCT; 
  
  
  My current conversion is: 
  
  type MY_STRUCT 
  x::Uint8 // this is fine 
  y::(Uint8,Uint8) // this will cause issues 
  end 

 This works on 0.4 (after replacing the old tuple type syntax with the 
 new one Tuple{UInt8,UInt8} or even better, NTuple{2,UInt8}) 

  
  I can create `read` and `write` functions but also have to overwrite 
  `sizeof` because the tuple appears to be stored as a pointer instead of 
  being stored `flat`. 
  Is there a better suggestion for how to store a fixed-length array? 
  
  Thanks! 
  



[julia-users] Unicode underscore t invalid

2015-07-01 Thread Tim Wheeler
Hello Julia Users,

I ran into a weird issue where unicode u+0209c, `ₜ`, is not being treated 
correctly. I am using Julia  Version 0.3.10 on x86_64-linux-gnu. The other 
unicode I have been using works fine. Am I doing something wrong?

``
julia a₁ = 3
3

julia ξ₀ = 3.0
3.0

julia M₁₂ = 3.0
3.0

julia bₜ  = 3
ERROR: syntax: invalid character ₜ
```


Thanks!


[julia-users] Re: Supertypes in function arguments

2015-06-26 Thread Tim Wheeler
Hello Linus,

This is based on how array types are defined. In general, Vector{subtype} 
is not a subtype of Vector{supertype}.
Try this:

f{R:Real}(x::Array{R}) = x

-Tim

On Friday, June 26, 2015 at 8:38:12 AM UTC-7, Linus Härenstam-Nielsen wrote:

 I ran into a problem with types today that I don't know how to interpret.

 If I define a function according to 
 f(x::Real) = x
 it returns x as expected as long as the type of x is a subtype of Real. 
 However if I define
 f(x::Array{Real}) = x
 it throws MethodError no matter what I pass as argument. For example when 
 I try to pass it an Int array:
 f([1 2 3; 3 4 5])
 ERROR: MethodError: `f` has no method matching f(::Array{Int64,2})

 I would expect it to work like
 f{T:Real}(x::Array{T}) = x
 and accept any array of reals. Am I missing something?





Re: [julia-users] Re: How to create own format with two digits 3=03, 10=10, 99=99 (only range 00:99)

2015-05-20 Thread Tim Wheeler
Could you just cast your strings to normal integers, do your arithmetic, 
and then convert it back to a string with the necessary zero-padding?

```
@sprintf(%02d, int(01)*int(02))
```

On Wednesday, May 20, 2015 at 8:28:03 AM UTC-7, paul analyst wrote:

  Big thx, but I need:
  01*02=02
 like 1*2=2
 Paul
 W dniu 2015-05-20 o 14:21, Kristoffer Carlsson pisze:
  
 In Julia you concatenate strings with * 

   julia a=[@sprintf(%02d,i) for i = 1:99];


 julia a[1]*a[2]
 0102

  

  
 On Wednesday, May 20, 2015 at 10:05:08 AM UTC+2, paul analyst wrote: 

  Txh, but unfortunatly is not to compute

 julia a=[@sprintf(%02d,i) for i = 1:99];

 julia a[1]+a[2]
 ERROR: MethodError: `+` has no method matching +(::ASCIIString, 
 ::ASCIIString)
 Closest candidates are:
   +(::Any, ::Any, ::Any)
   +(::Any, ::Any, ::Any, ::Any...)

 I have in string data with time and i must compute changes only in on 2 
 last position
 table=
 2015-01-01
 2015-01-01
 2015-01-12

 I take last two digits  
 int(table[i][9:10])
 compute somthing

 and I must put the last two Chars
 Always i need 2 char '12' or '01'



 Paul



 W dniu 2015-05-20 o 09:57, Jeff Waller pisze:
  
  *[@sprintf(%02d,i) for i = 1:99]*
  


  

[julia-users] Re: Error using pcolor

2015-04-13 Thread Tim Wheeler
The same code works fine on my machine.
Maybe try running Pkg.update()?


[julia-users] Discretizers.jl, A package for discretization methods and label mapping

2015-03-23 Thread Tim Wheeler
Hello Julia Users,

We've been working on a new package that supports two things:
1 - mapping between continuous bins and class labels
2 - discretizing continuous regions into bins

The package is available under Discretizers.jl 
http://nbviewer.ipython.org/github/sisl/Discretizers.jl/blob/master/doc/Discretizers.ipynb
 
(not yet on Metadata).

Please feel free to comment on the package structure so things can be 
suitably be made to par before it gets released.

Thank you

@Lindahua - LinearDiscretizers is quite similar to LabelMap in MLBase. This 
package runs with the same encode / decode scheme


[julia-users] startswith not defined

2015-01-09 Thread Tim Wheeler
When I try to use the startswith 
http://julia.readthedocs.org/en/latest/stdlib/strings/ function Julia 
cannot locate it. endswith seems to work fine. Am I doing something wrong?

Thanks!

   _   _ _(_)_ |  A fresh approach to technical computing
  (_) | (_) (_)|  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type help() for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.3.4 (2014-10-21 20:18 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org release
|__/   |  x86_64-linux-gnu

julia startswith(asdfas, asd)
ERROR: startswith not defined

julia startswith
ERROR: startswith not defined

julia endswith(blah, ah)
true


[julia-users] Re: startswith not defined

2015-01-09 Thread Tim Wheeler
Yes, that was it. Thank you

On Friday, January 9, 2015 at 11:04:17 AM UTC-8, Simon Kornblith wrote:

 You probably want beginswith, which was recently renamed to startswith but 
 only in Julia 0.4. (Make sure you look at the appropriate docs 
 http://julia.readthedocs.org/en/release-0.3/stdlib/strings/ for Julia 
 0.3; there's a version selector in the bottom right.) You can also use the 
 Compat package, which makes startswith available on Julia 0.3.

 On Friday, January 9, 2015 at 1:44:29 PM UTC-5, Tim Wheeler wrote:

 When I try to use the startswith 
 http://julia.readthedocs.org/en/latest/stdlib/strings/ function Julia 
 cannot locate it. endswith seems to work fine. Am I doing something wrong?

 Thanks!

_   _ _(_)_ |  A fresh approach to technical computing
   (_) | (_) (_)|  Documentation: http://docs.julialang.org
_ _   _| |_  __ _   |  Type help() for help.
   | | | | | | |/ _` |  |
   | | |_| | | | (_| |  |  Version 0.3.4 (2014-10-21 20:18 UTC)
  _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org release
 |__/   |  x86_64-linux-gnu

 julia startswith(asdfas, asd)
 ERROR: startswith not defined

 julia startswith
 ERROR: startswith not defined

 julia endswith(blah, ah)
 true



[julia-users] Re: Contributing to a Julia Package

2014-11-10 Thread Tim Wheeler
Thank you! It seems to have worked.
Per João's suggestions, I had to:


   - Create a fork on Github of the target package repository
   - Clone my fork locally
   - Create a branch on my local repository
   - Add, commit,  push my changes to said branch
   - On github I could then submit the pull request from my forked repo to 
   the upstream master






On Monday, November 10, 2014 11:17:55 AM UTC-8, Tim Wheeler wrote:

 Hello Julia Users,

 I wrote some code that I would like to submit via pull request to a Julia 
 package. The thing is, I am new to this and do not understand the pull 
 request process.

 What I have done:

- used Pkg.add to obtain a local version of said package
- ran `git branch mybranch` to create a local git branch 
- created my code additions and used `git add` to include them. Ran 
`git commit -m`

 I am confused over how to continue. The instructions on git for issuing a 
 pull request require that I use their UI interface, but my local branch is 
 not going to show up when I select new pull request because it is, well, 
 local to my machine. Do I need to fork the repository first? When I try 
 creating a branch through the UI I do not get an option to create one like 
 they indicate in the tutorial 
 https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/#creating-a-branch,
  
 perhaps because I am not a repo owner.

 Thank you.



[julia-users] Re: Pull latex.jl out from PyPlot

2014-09-12 Thread Tim Wheeler
Awesome!

On Friday, September 12, 2014 1:12:53 PM UTC-7, Steven G. Johnson wrote:

 Okay, it's done.   Pkg.update(); Pkg.add(LaTeXStrings) to get it.

 Note also that in the new version you don't have to type the $...$ if your 
 string contains only an equation; they are added automatically if no 
 unescaped dollar sign is found.   (The only point of using this is for 
 equations, since IJulia ignores other LaTeX formatting commands; you can 
 use the LaTeXString(s) constructor if you really need a text/latex string 
 with no equations.)I got tired of continually forgetting to type $...$ 
 in my plot labels.



[julia-users] Pull latex.jl out from PyPlot

2014-09-11 Thread Tim Wheeler
Hello Julia-Users!

I have found the LaTeX code in latex.jl from PyPlot pretty useful.
I imagine anyone working with LaTeX from Julia would have a need for it, 
but not everyone needs PyPlot at the same time. Is anyone considering 
making latex.jl a standalone LaTeX package so we don't have to rely on 
PyPlot being installed?