Discussion:
[julia-users] MongoDB and Julia
Kevin Liu
2015-07-12 04:44:55 UTC
Permalink
Hi,

I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.

I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't open
file Mongo.jl, or the auto-generated deps.jl.

Is anyone having similar problems trying to make Julia work with Mongo?

Thank you

Kevin
Kevin Liu
2015-07-13 04:27:37 UTC
Permalink
Any help would be greatly appreciated. I am even debating over the idea of
contributing to the development of this package because I believe so much
in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Stefan Karpinski
2015-07-13 12:02:23 UTC
Permalink
Have you tried opening issues on the relevant packages? Most people here (myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the idea of contributing to the development of this package because I believe so much in the language and need to use MongoDB.
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo Client through this 'untestable' package https://github.com/pzion/Mongo.jl, according to http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-13 15:23:06 UTC
Permalink
Hey Stefan, thanks for replying. I have not opened an issue on Github's
pzion/Mongo.jl. I will, and I will attempt to debug it. Thank you. Kevin
Post by Stefan Karpinski
Have you tried opening issues on the relevant packages? Most people here
(myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the idea of
contributing to the development of this package because I believe so much
in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Jacob Quinn
2015-07-13 19:02:03 UTC
Permalink
You may also try Pkg.add("ODBC") if you can find a working ODBC driver for
mongo. I feel like I've heard of people going this route.

-Jacob
Post by Kevin Liu
Hey Stefan, thanks for replying. I have not opened an issue on Github's
pzion/Mongo.jl. I will, and I will attempt to debug it. Thank you. Kevin
Post by Stefan Karpinski
Have you tried opening issues on the relevant packages? Most people here
(myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-13 20:07:54 UTC
Permalink
Hey Jacob, thanks for the suggestion. ODBC just doesn't sound like the
optimal way to go for being too generic. I am studying its implications and
alternatives, but probably won't follow with ODBC. I appreciate the help.
Post by Jacob Quinn
You may also try Pkg.add("ODBC") if you can find a working ODBC driver for
mongo. I feel like I've heard of people going this route.
-Jacob
Post by Kevin Liu
Hey Stefan, thanks for replying. I have not opened an issue on Github's
pzion/Mongo.jl. I will, and I will attempt to debug it. Thank you. Kevin
Post by Stefan Karpinski
Have you tried opening issues on the relevant packages? Most people here
(myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Jacob Quinn
2015-07-13 20:55:41 UTC
Permalink
No worries. I realize it's a bit of a square peg-round hole there.
Post by Kevin Liu
Hey Jacob, thanks for the suggestion. ODBC just doesn't sound like the
optimal way to go for being too generic. I am studying its implications and
alternatives, but probably won't follow with ODBC. I appreciate the help.
Post by Jacob Quinn
You may also try Pkg.add("ODBC") if you can find a working ODBC driver
for mongo. I feel like I've heard of people going this route.
-Jacob
Post by Kevin Liu
Hey Stefan, thanks for replying. I have not opened an issue on Github's
pzion/Mongo.jl. I will, and I will attempt to debug it. Thank you. Kevin
Post by Stefan Karpinski
Have you tried opening issues on the relevant packages? Most people
here (myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-13 21:02:49 UTC
Permalink
This seems like a path I could
take http://docs.mongodb.org/meta-driver/latest/tutorial/ which I just
found out about.
Post by Jacob Quinn
No worries. I realize it's a bit of a square peg-round hole there.
Post by Kevin Liu
Hey Jacob, thanks for the suggestion. ODBC just doesn't sound like the
optimal way to go for being too generic. I am studying its implications and
alternatives, but probably won't follow with ODBC. I appreciate the help.
Post by Jacob Quinn
You may also try Pkg.add("ODBC") if you can find a working ODBC driver
for mongo. I feel like I've heard of people going this route.
-Jacob
Post by Kevin Liu
Hey Stefan, thanks for replying. I have not opened an issue on Github's
pzion/Mongo.jl. I will, and I will attempt to debug it. Thank you. Kevin
Post by Stefan Karpinski
Have you tried opening issues on the relevant packages? Most people
here (myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the
idea of contributing to the development of this package because I believe
so much in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-13 21:04:03 UTC
Permalink
... from Mongo's solution's architect, slide
28/29 http://www.slideshare.net/NorbertoLeite/how-mongodb-drv?from_action=save
This seems like a path I could take
http://docs.mongodb.org/meta-driver/latest/tutorial/ which I just found
out about.
Post by Jacob Quinn
No worries. I realize it's a bit of a square peg-round hole there.
Post by Kevin Liu
Hey Jacob, thanks for the suggestion. ODBC just doesn't sound like the
optimal way to go for being too generic. I am studying its implications and
alternatives, but probably won't follow with ODBC. I appreciate the help.
Post by Jacob Quinn
You may also try Pkg.add("ODBC") if you can find a working ODBC driver
for mongo. I feel like I've heard of people going this route.
-Jacob
Post by Kevin Liu
Hey Stefan, thanks for replying. I have not opened an issue on
Github's pzion/Mongo.jl. I will, and I will attempt to debug it. Thank you.
Kevin
Post by Stefan Karpinski
Have you tried opening issues on the relevant packages? Most people
here (myself included) won't know much about mongoDB or these packages.
Any help would be greatly appreciated. I am even debating over the
idea of contributing to the development of this package because I believe
so much in the language and need to use MongoDB.
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according
to http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Jeff Waller
2015-07-13 21:19:08 UTC
Permalink
Post by Kevin Liu
Any help would be greatly appreciated. I am even debating over the idea of
contributing to the development of this package because I believe so much
in the language and need to use MongoDB.
I think this is why it's untestable.

https://travis-ci.org/pzion/Mongo.jl/jobs/54034564

Lytol/Mongo.jl looks abandoned. It has a bunch of issues created over the
past 2 years and
the last update was in 2013 the pzion repo is a fork which was updated 4
months ago, maybe
it's abandoned too and you'll have to fork. But it's at least work
contacting him.
Kevin Liu
2015-07-13 21:30:33 UTC
Permalink
Thanks Jeff, I will look into it and see if that's the case. I will review
it carefully because I want the driver to run smoothly.

In my last post, there was a typo, so I'm just pasting the
source http://www.slideshare.net/NorbertoLeite/how-mongodb-drv for slide
28/29.
Post by Jeff Waller
Post by Kevin Liu
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
I think this is why it's untestable.
https://travis-ci.org/pzion/Mongo.jl/jobs/54034564
Lytol/Mongo.jl looks abandoned. It has a bunch of issues created over
the past 2 years and
the last update was in 2013 the pzion repo is a fork which was updated 4
months ago, maybe
it's abandoned too and you'll have to fork. But it's at least work
contacting him.
Kevin Liu
2015-07-21 02:07:13 UTC
Permalink
Hello,

Just FYI, I will soon start building a Julia MongoDB driver based on Emily
Stolfo's YAML tests for MongoDB

https://github.com/mongodb/mongo-ruby-driver/tree/master/spec/support

using Mongo Orchestration

Am open to suggestions and recommendations

Kevin
Post by Kevin Liu
Thanks Jeff, I will look into it and see if that's the case. I will review
it carefully because I want the driver to run smoothly.
In my last post, there was a typo, so I'm just pasting the source
http://www.slideshare.net/NorbertoLeite/how-mongodb-drv for slide 28/29.
Post by Jeff Waller
Post by Kevin Liu
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
I think this is why it's untestable.
https://travis-ci.org/pzion/Mongo.jl/jobs/54034564
Lytol/Mongo.jl looks abandoned. It has a bunch of issues created over
the past 2 years and
the last update was in 2013 the pzion repo is a fork which was updated 4
months ago, maybe
it's abandoned too and you'll have to fork. But it's at least work
contacting him.
Kevin Liu
2015-07-21 02:09:34 UTC
Permalink
For more, watch Testing with Mongo Orchestration in the assortment of
videos here https://www.mongodb.com/world2015
Post by Kevin Liu
Hello,
Just FYI, I will soon start building a Julia MongoDB driver based on Emily
Stolfo's YAML tests for MongoDB
https://github.com/mongodb/mongo-ruby-driver/tree/master/spec/support
using Mongo Orchestration
Am open to suggestions and recommendations
Kevin
Post by Kevin Liu
Thanks Jeff, I will look into it and see if that's the case. I will
review it carefully because I want the driver to run smoothly.
In my last post, there was a typo, so I'm just pasting the source
http://www.slideshare.net/NorbertoLeite/how-mongodb-drv for slide 28/29.
Post by Jeff Waller
Post by Kevin Liu
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
I think this is why it's untestable.
https://travis-ci.org/pzion/Mongo.jl/jobs/54034564
Lytol/Mongo.jl looks abandoned. It has a bunch of issues created over
the past 2 years and
the last update was in 2013 the pzion repo is a fork which was updated 4
months ago, maybe
it's abandoned too and you'll have to fork. But it's at least work
contacting him.
Kevin Liu
2015-07-21 13:50:41 UTC
Permalink
Hi, I just spoke to Jesse Davis, the author and maintainer of the C Mongo
driver, and he gave me some precious advice. The C driver passes the YAML
tests. Using this driver's public API will also get me the implementation
of two specs right away and for free: the Server Selection Spec and the
Server Discovery and Monitoring Spec, which is probably the most
complicated part about MongoDB and allows an app using it to be highly
available.

He pointed out to the Lua driver, which is a wrapper around the C driver
https://github.com/10gen-labs/mongorover

He said the Julia driver won't need to test against YAML tests or the two
specs mentioned. He told me to pass a connection string to the C driver
from Julia, and the C driver will implement the specs.
Post by Kevin Liu
Thanks Jeff, I will look into it and see if that's the case. I will review
it carefully because I want the driver to run smoothly.
In my last post, there was a typo, so I'm just pasting the source
http://www.slideshare.net/NorbertoLeite/how-mongodb-drv for slide 28/29.
Post by Jeff Waller
Post by Kevin Liu
Any help would be greatly appreciated. I am even debating over the idea
of contributing to the development of this package because I believe so
much in the language and need to use MongoDB.
I think this is why it's untestable.
https://travis-ci.org/pzion/Mongo.jl/jobs/54034564
Lytol/Mongo.jl looks abandoned. It has a bunch of issues created over
the past 2 years and
the last update was in 2013 the pzion repo is a fork which was updated 4
months ago, maybe
it's abandoned too and you'll have to fork. But it's at least work
contacting him.
cdm
2015-07-21 22:11:02 UTC
Permalink
would a MongoDB JDBC driver paired with JDBC.jl
be feasible for your purposes ... ?

https://groups.google.com/forum/#!topic/julia-users/qqOTu4XL1HI


good luck,

cdm
Kevin Liu
2015-07-21 22:43:02 UTC
Permalink
Probably not since it's oriented towards RDBMS. Thanks
Post by cdm
would a MongoDB JDBC driver paired with JDBC.jl
be feasible for your purposes ... ?
https://groups.google.com/forum/#!topic/julia-users/qqOTu4XL1HI
good luck,
cdm
t***@multiscalehn.com
2015-07-22 19:18:49 UTC
Permalink
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl to
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-22 20:20:42 UTC
Permalink
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.

These new MongoDB drivers conform to published specifications.

1. Server Selection - Deciding which server to send database operations to
in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data from
MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.

https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl to
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-23 22:28:17 UTC
Permalink
I'm sorry Tim, check this
out https://github.com/10gen-labs/mongorover/issues/16

Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database operations to
in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data from
MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl to
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
t***@multiscalehn.com
2015-07-23 23:24:12 UTC
Permalink
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database operations
to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data
from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl to
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-23 23:26:13 UTC
Permalink
Thanks
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database operations
to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data
from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl") can't
open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-28 03:28:31 UTC
Permalink
Hi Julia Users, feel free to contribute to the Julia wrapper of the C Mongo
Driver, maintained by Mongo

https://github.com/tenthdimension/Julia-C-Mongo

This Julia wrapper is based on the Lua wrapper of the C Mongo Driver. Jesse
Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database operations
to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data
from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Squire
2015-07-28 22:50:29 UTC
Permalink
Hi Kevin,

If you plan to make this a Julia package (and I encourage you to do so), it
would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.

(This isn't mentioned explicitly there, but dashes also won't work for
Julia package names.)

Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the C
Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo Driver.
Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data
from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and pzion/Mongo.jl
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4, and Mongo-c-driver-1.1.9
installed, but can't get Julia to access the Mongo Client through this
'untestable' package https://github.com/pzion/Mongo.jl, according
to http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 00:10:17 UTC
Permalink
Hey Kevin,

That's great. Thanks for the advice. On it right now.

Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do so),
it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work for
Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the C
Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo Driver.
Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make a
MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete data
from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 00:13:21 UTC
Permalink
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do so),
it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work for
Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the C
Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo Driver.
Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make
a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete
data from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 00:21:09 UTC
Permalink
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do so),
it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work for
Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the C
Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo Driver.
Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to make
a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete
data from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Squire
2015-07-29 06:47:01 UTC
Permalink
I would suggest CMongo.jl (when renaming this, be careful if you're on a
case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.

Suggestion: at this point, there isn't much code in the repo. Since not
many people have (publicly) responded to your posts, IMHO, it would be good
to try to get a basic working system in place, and post your progress when
something basic is working--this will make it easier for people to
contribute.

One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.

Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do
so), it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work for
Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the C
Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo Driver.
Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to
make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete
data from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command require("Mongo.jl")
can't open file Mongo.jl, or the auto-generated deps.jl.
Is anyone having similar problems trying to make Julia work with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 13:00:49 UTC
Permalink
Thanks for the valuable advice and modesty, there is no code in the reps.
I'm learning how to do this properly. From the Mongo side I have received a
little bit of guidance but from the Julia side, very little. Changed it to
CMongo.jl. Clang.jl will be of great help (I had bookmarked it, but didn't
realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on a
case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since not
many people have (publicly) responded to your posts, IMHO, it would be good
to try to get a basic working system in place, and post your progress when
something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do
so), it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work for
Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the C
Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo Driver.
Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to
make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete
data from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Kevin Squire
2015-07-29 21:50:45 UTC
Permalink
Hi Kevin,

I'm sorry to hear (and see) that you haven't gotten much help on the Julia
mailing list. It's probably just that your request hasn't fallen on the
ears of anyone who has interest in both Mongo and Julia and the time to
help. I'm almost in that category, in that I have a small interest in
Mongo (and a lot of interest in Julia), but only so much time.

I will say that once you get something working, the mailing list will
usually be a good resource, but it works best if you have specific
questions or problems (e.g., I'm trying to do this with the following code,
but it's not working--what am I doing wrong) vs. general requests (e.g.,
asking for help wrapping mongo with a mostly empty repo).

I'm assuming this is your first major Julia project? If so, my first
suggestion is to ignore everything written below (for now), and try to get
the Mongo.jl library running on a modern Julia first, and make sure you
understand everything that it's doing. Only after that would I try
anything below.

----

In truth, I don't know the best way forward, but I can give you a little
more information, and maybe it will help you decide.

Clang.jl is a general framework for wrapping C libraries. It's never
necessary--any C library can be called directly using ccall. But ccalls
can be kind of clunky, so Clang.jl provides an API which very closely
mimics the C API provided in some header file: functions have very similar
signatures, and structs become julia types. For a large library with lots
of functions, or complicated structs with lots of members, this can make
wrapping relatively easy.

While the output of Clang.jl is usually reasonably nice, it's still a very
low level of abstraction. Actually, very little abstraction, because it
matches the C library, which is usually very low level, and still somewhat
inconvenient in Julia (but more convenient than ccalls). To be useful,
you'll often want to add a higher level API on top of that, which adds
functions and/or types that encompass or simplify the lower level calls.

It's also often the case that Clang.jl doesn't give you exactly what you
need--e.g., it doesn't know how to wrap certain things, such as unions and
C macros. In those cases, you'll have to edit the output by hand, or spend
some time programmatically filtering/modifying the results. I do this a
bit in the wrapper for VideoIO
<https://github.com/kmsquire/VideoIO.jl/blob/master/util/wrap_libav_split.jl>
(and
I still have to edit some files by hand at the end).

The main alternative is to wrap a subset of useful functions by hand (or
simply use ccall directly, which amounts to pretty much the same thing).
This is probably closer to what the Mongo folks had in mind when they
directed you to the Lua driver. If you only need access to a few
functions, or if your code is highly specialized in a way that Clang.jl has
trouble with, wrapping by hand can be the way to go. For this, you're
basically writing Julia functions which ccall out to external library
functions (such as those in mongo), and returns the result (or some
modification thereof that matches what would normally be done in Julia).

Hopefully this was useful. Please feel free to post back here with
questions, and I (and maybe others, if the question is right) will try to
answer as we have time.

Cheers!
Kevin
Post by Kevin Liu
Thanks for the valuable advice and modesty, there is no code in the reps.
I'm learning how to do this properly. From the Mongo side I have received a
little bit of guidance but from the Julia side, very little. Changed it to
CMongo.jl. Clang.jl will be of great help (I had bookmarked it, but didn't
realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on a
case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since not
many people have (publicly) responded to your posts, IMHO, it would be good
to try to get a basic working system in place, and post your progress when
something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do
so), it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work
for Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the
C Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo
Driver. Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been
started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to
make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and Delete
data from MongoDB.
4. Authentication - The rules for how to authenticate to MongoDB
servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 23:01:01 UTC
Permalink
Haha this is my first major project, period! Thanks a lot for putting in
the time and effort into guiding. I come from the finance world but became
interested in Julia and MongoDB for what they can do with science. It's a
hand into understanding so much. Focused on Mongo.jl and will digest your
comments after that. I got ahead of myself from Mongo.jl after seeing there
was so much more to be done to make the stack fully functioning. Thank you!
Will keep you and the community posted. Cheers mate!
Post by Kevin Squire
Hi Kevin,
I'm sorry to hear (and see) that you haven't gotten much help on the Julia
mailing list. It's probably just that your request hasn't fallen on the
ears of anyone who has interest in both Mongo and Julia and the time to
help. I'm almost in that category, in that I have a small interest in
Mongo (and a lot of interest in Julia), but only so much time.
I will say that once you get something working, the mailing list will
usually be a good resource, but it works best if you have specific
questions or problems (e.g., I'm trying to do this with the following code,
but it's not working--what am I doing wrong) vs. general requests (e.g.,
asking for help wrapping mongo with a mostly empty repo).
I'm assuming this is your first major Julia project? If so, my first
suggestion is to ignore everything written below (for now), and try to get
the Mongo.jl library running on a modern Julia first, and make sure you
understand everything that it's doing. Only after that would I try
anything below.
----
In truth, I don't know the best way forward, but I can give you a little
more information, and maybe it will help you decide.
Clang.jl is a general framework for wrapping C libraries. It's never
necessary--any C library can be called directly using ccall. But ccalls
can be kind of clunky, so Clang.jl provides an API which very closely
mimics the C API provided in some header file: functions have very similar
signatures, and structs become julia types. For a large library with lots
of functions, or complicated structs with lots of members, this can make
wrapping relatively easy.
While the output of Clang.jl is usually reasonably nice, it's still a very
low level of abstraction. Actually, very little abstraction, because it
matches the C library, which is usually very low level, and still somewhat
inconvenient in Julia (but more convenient than ccalls). To be useful,
you'll often want to add a higher level API on top of that, which adds
functions and/or types that encompass or simplify the lower level calls.
It's also often the case that Clang.jl doesn't give you exactly what you
need--e.g., it doesn't know how to wrap certain things, such as unions and
C macros. In those cases, you'll have to edit the output by hand, or spend
some time programmatically filtering/modifying the results. I do this a
bit in the wrapper for VideoIO
<https://github.com/kmsquire/VideoIO.jl/blob/master/util/wrap_libav_split.jl> (and
I still have to edit some files by hand at the end).
The main alternative is to wrap a subset of useful functions by hand (or
simply use ccall directly, which amounts to pretty much the same thing).
This is probably closer to what the Mongo folks had in mind when they
directed you to the Lua driver. If you only need access to a few
functions, or if your code is highly specialized in a way that Clang.jl has
trouble with, wrapping by hand can be the way to go. For this, you're
basically writing Julia functions which ccall out to external library
functions (such as those in mongo), and returns the result (or some
modification thereof that matches what would normally be done in Julia).
Hopefully this was useful. Please feel free to post back here with
questions, and I (and maybe others, if the question is right) will try to
answer as we have time.
Cheers!
Kevin
Post by Kevin Liu
Thanks for the valuable advice and modesty, there is no code in the reps.
I'm learning how to do this properly. From the Mongo side I have received a
little bit of guidance but from the Julia side, very little. Changed it to
CMongo.jl. Clang.jl will be of great help (I had bookmarked it, but didn't
realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on a
case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since not
many people have (publicly) responded to your posts, IMHO, it would be good
to try to get a basic working system in place, and post your progress when
something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do
so), it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work
for Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of the
C Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo
Driver. Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been
started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to
make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and
Delete data from MongoDB.
4. Authentication - The rules for how to authenticate to
MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 23:19:16 UTC
Permalink
I'm also sharing the stack design in the hopes of speeding the process.
Comments are welcome.

https://docs.google.com/spreadsheets/d/1rgqtCay8HhnVuYR4UCZi9IGa0bzjbc3VupPxRUT9DS0/edit?usp=sharing
Post by Kevin Liu
Haha this is my first major project, period! Thanks a lot for putting in
the time and effort into guiding. I come from the finance world but became
interested in Julia and MongoDB for what they can do with science. It's a
hand into understanding so much. Focused on Mongo.jl and will digest your
comments after that. I got ahead of myself from Mongo.jl after seeing there
was so much more to be done to make the stack fully functioning. Thank you!
Will keep you and the community posted. Cheers mate!
Post by Kevin Squire
Hi Kevin,
I'm sorry to hear (and see) that you haven't gotten much help on the
Julia mailing list. It's probably just that your request hasn't fallen on
the ears of anyone who has interest in both Mongo and Julia and the time to
help. I'm almost in that category, in that I have a small interest in
Mongo (and a lot of interest in Julia), but only so much time.
I will say that once you get something working, the mailing list will
usually be a good resource, but it works best if you have specific
questions or problems (e.g., I'm trying to do this with the following code,
but it's not working--what am I doing wrong) vs. general requests (e.g.,
asking for help wrapping mongo with a mostly empty repo).
I'm assuming this is your first major Julia project? If so, my first
suggestion is to ignore everything written below (for now), and try to get
the Mongo.jl library running on a modern Julia first, and make sure you
understand everything that it's doing. Only after that would I try
anything below.
----
In truth, I don't know the best way forward, but I can give you a little
more information, and maybe it will help you decide.
Clang.jl is a general framework for wrapping C libraries. It's never
necessary--any C library can be called directly using ccall. But ccalls
can be kind of clunky, so Clang.jl provides an API which very closely
mimics the C API provided in some header file: functions have very similar
signatures, and structs become julia types. For a large library with lots
of functions, or complicated structs with lots of members, this can make
wrapping relatively easy.
While the output of Clang.jl is usually reasonably nice, it's still a
very low level of abstraction. Actually, very little abstraction, because
it matches the C library, which is usually very low level, and still
somewhat inconvenient in Julia (but more convenient than ccalls). To be
useful, you'll often want to add a higher level API on top of that, which
adds functions and/or types that encompass or simplify the lower level
calls.
It's also often the case that Clang.jl doesn't give you exactly what you
need--e.g., it doesn't know how to wrap certain things, such as unions and
C macros. In those cases, you'll have to edit the output by hand, or spend
some time programmatically filtering/modifying the results. I do this a
bit in the wrapper for VideoIO
<https://github.com/kmsquire/VideoIO.jl/blob/master/util/wrap_libav_split.jl> (and
I still have to edit some files by hand at the end).
The main alternative is to wrap a subset of useful functions by hand (or
simply use ccall directly, which amounts to pretty much the same thing).
This is probably closer to what the Mongo folks had in mind when they
directed you to the Lua driver. If you only need access to a few
functions, or if your code is highly specialized in a way that Clang.jl has
trouble with, wrapping by hand can be the way to go. For this, you're
basically writing Julia functions which ccall out to external library
functions (such as those in mongo), and returns the result (or some
modification thereof that matches what would normally be done in Julia).
Hopefully this was useful. Please feel free to post back here with
questions, and I (and maybe others, if the question is right) will try to
answer as we have time.
Cheers!
Kevin
Post by Kevin Liu
Thanks for the valuable advice and modesty, there is no code in the
reps. I'm learning how to do this properly. From the Mongo side I have
received a little bit of guidance but from the Julia side, very little.
Changed it to CMongo.jl. Clang.jl will be of great help (I had bookmarked
it, but didn't realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on
a case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since
not many people have (publicly) responded to your posts, IMHO, it would be
good to try to get a basic working system in place, and post your progress
when something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
On Tue, Jul 28, 2015 at 7:50 PM, Kevin Squire <
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do
so), it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work
for Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of
the C Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo
Driver. Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been
started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to
make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and
Delete data from MongoDB.
4. Authentication - The rules for how to authenticate to
MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Kevin Squire
2015-07-29 23:23:34 UTC
Permalink
Good luck!
Post by Kevin Liu
Haha this is my first major project, period! Thanks a lot for putting in
the time and effort into guiding. I come from the finance world but became
interested in Julia and MongoDB for what they can do with science. It's a
hand into understanding so much. Focused on Mongo.jl and will digest your
comments after that. I got ahead of myself from Mongo.jl after seeing there
was so much more to be done to make the stack fully functioning. Thank you!
Will keep you and the community posted. Cheers mate!
Post by Kevin Squire
Hi Kevin,
I'm sorry to hear (and see) that you haven't gotten much help on the
Julia mailing list. It's probably just that your request hasn't fallen on
the ears of anyone who has interest in both Mongo and Julia and the time to
help. I'm almost in that category, in that I have a small interest in
Mongo (and a lot of interest in Julia), but only so much time.
I will say that once you get something working, the mailing list will
usually be a good resource, but it works best if you have specific
questions or problems (e.g., I'm trying to do this with the following code,
but it's not working--what am I doing wrong) vs. general requests (e.g.,
asking for help wrapping mongo with a mostly empty repo).
I'm assuming this is your first major Julia project? If so, my first
suggestion is to ignore everything written below (for now), and try to get
the Mongo.jl library running on a modern Julia first, and make sure you
understand everything that it's doing. Only after that would I try
anything below.
----
In truth, I don't know the best way forward, but I can give you a little
more information, and maybe it will help you decide.
Clang.jl is a general framework for wrapping C libraries. It's never
necessary--any C library can be called directly using ccall. But ccalls
can be kind of clunky, so Clang.jl provides an API which very closely
mimics the C API provided in some header file: functions have very similar
signatures, and structs become julia types. For a large library with lots
of functions, or complicated structs with lots of members, this can make
wrapping relatively easy.
While the output of Clang.jl is usually reasonably nice, it's still a
very low level of abstraction. Actually, very little abstraction, because
it matches the C library, which is usually very low level, and still
somewhat inconvenient in Julia (but more convenient than ccalls). To be
useful, you'll often want to add a higher level API on top of that, which
adds functions and/or types that encompass or simplify the lower level
calls.
It's also often the case that Clang.jl doesn't give you exactly what you
need--e.g., it doesn't know how to wrap certain things, such as unions and
C macros. In those cases, you'll have to edit the output by hand, or spend
some time programmatically filtering/modifying the results. I do this a
bit in the wrapper for VideoIO
<https://github.com/kmsquire/VideoIO.jl/blob/master/util/wrap_libav_split.jl> (and
I still have to edit some files by hand at the end).
The main alternative is to wrap a subset of useful functions by hand (or
simply use ccall directly, which amounts to pretty much the same thing).
This is probably closer to what the Mongo folks had in mind when they
directed you to the Lua driver. If you only need access to a few
functions, or if your code is highly specialized in a way that Clang.jl has
trouble with, wrapping by hand can be the way to go. For this, you're
basically writing Julia functions which ccall out to external library
functions (such as those in mongo), and returns the result (or some
modification thereof that matches what would normally be done in Julia).
Hopefully this was useful. Please feel free to post back here with
questions, and I (and maybe others, if the question is right) will try to
answer as we have time.
Cheers!
Kevin
Post by Kevin Liu
Thanks for the valuable advice and modesty, there is no code in the
reps. I'm learning how to do this properly. From the Mongo side I have
received a little bit of guidance but from the Julia side, very little.
Changed it to CMongo.jl. Clang.jl will be of great help (I had bookmarked
it, but didn't realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on
a case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since
not many people have (publicly) responded to your posts, IMHO, it would be
good to try to get a basic working system in place, and post your progress
when something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
On Tue, Jul 28, 2015 at 7:50 PM, Kevin Squire <
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to do
so), it would be good to look at the Julia package naming conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work
for Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of
the C Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo
Driver. Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been
started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required to
make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and
Delete data from MongoDB.
4. Authentication - The rules for how to authenticate to
MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-29 23:40:13 UTC
Permalink
Thanks! Will need it!
Post by Kevin Squire
Good luck!
Post by Kevin Liu
Haha this is my first major project, period! Thanks a lot for putting in
the time and effort into guiding. I come from the finance world but became
interested in Julia and MongoDB for what they can do with science. It's a
hand into understanding so much. Focused on Mongo.jl and will digest your
comments after that. I got ahead of myself from Mongo.jl after seeing there
was so much more to be done to make the stack fully functioning. Thank you!
Will keep you and the community posted. Cheers mate!
Post by Kevin Squire
Hi Kevin,
I'm sorry to hear (and see) that you haven't gotten much help on the
Julia mailing list. It's probably just that your request hasn't fallen on
the ears of anyone who has interest in both Mongo and Julia and the time to
help. I'm almost in that category, in that I have a small interest in
Mongo (and a lot of interest in Julia), but only so much time.
I will say that once you get something working, the mailing list will
usually be a good resource, but it works best if you have specific
questions or problems (e.g., I'm trying to do this with the following code,
but it's not working--what am I doing wrong) vs. general requests (e.g.,
asking for help wrapping mongo with a mostly empty repo).
I'm assuming this is your first major Julia project? If so, my first
suggestion is to ignore everything written below (for now), and try to get
the Mongo.jl library running on a modern Julia first, and make sure you
understand everything that it's doing. Only after that would I try
anything below.
----
In truth, I don't know the best way forward, but I can give you a little
more information, and maybe it will help you decide.
Clang.jl is a general framework for wrapping C libraries. It's never
necessary--any C library can be called directly using ccall. But ccalls
can be kind of clunky, so Clang.jl provides an API which very closely
mimics the C API provided in some header file: functions have very similar
signatures, and structs become julia types. For a large library with lots
of functions, or complicated structs with lots of members, this can make
wrapping relatively easy.
While the output of Clang.jl is usually reasonably nice, it's still a
very low level of abstraction. Actually, very little abstraction, because
it matches the C library, which is usually very low level, and still
somewhat inconvenient in Julia (but more convenient than ccalls). To be
useful, you'll often want to add a higher level API on top of that, which
adds functions and/or types that encompass or simplify the lower level
calls.
It's also often the case that Clang.jl doesn't give you exactly what you
need--e.g., it doesn't know how to wrap certain things, such as unions and
C macros. In those cases, you'll have to edit the output by hand, or spend
some time programmatically filtering/modifying the results. I do this a
bit in the wrapper for VideoIO
<https://github.com/kmsquire/VideoIO.jl/blob/master/util/wrap_libav_split.jl> (and
I still have to edit some files by hand at the end).
The main alternative is to wrap a subset of useful functions by hand (or
simply use ccall directly, which amounts to pretty much the same thing).
This is probably closer to what the Mongo folks had in mind when they
directed you to the Lua driver. If you only need access to a few
functions, or if your code is highly specialized in a way that Clang.jl has
trouble with, wrapping by hand can be the way to go. For this, you're
basically writing Julia functions which ccall out to external library
functions (such as those in mongo), and returns the result (or some
modification thereof that matches what would normally be done in Julia).
Hopefully this was useful. Please feel free to post back here with
questions, and I (and maybe others, if the question is right) will try to
answer as we have time.
Cheers!
Kevin
Post by Kevin Liu
Thanks for the valuable advice and modesty, there is no code in the
reps. I'm learning how to do this properly. From the Mongo side I have
received a little bit of guidance but from the Julia side, very little.
Changed it to CMongo.jl. Clang.jl will be of great help (I had bookmarked
it, but didn't realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on
a case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since
not many people have (publicly) responded to your posts, IMHO, it would be
good to try to get a basic working system in place, and post your progress
when something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
On Tue, Jul 28, 2015 at 7:50 PM, Kevin Squire <
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to
do so), it would be good to look at the Julia package naming
conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work
for Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of
the C Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo
Driver. Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been
started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required
to make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and
Delete data from MongoDB.
4. Authentication - The rules for how to authenticate to
MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Kevin Liu
2015-07-30 01:51:41 UTC
Permalink
Hey Kevin and Community, I got Pzion's Mongo.jl to work (see picture). I
had to Pkg.add("Mongo") manually for it to enter the required packages list
in Pkg.status().

Question now: i plan to sketch the technical specifications of the stack
design on https://en.wikipedia.org/wiki/Unified_Modeling_Language for other
developers to use. Is there any other gp modeling language you or the Julia
users community would recommend instead?

Thanks!
Post by Kevin Squire
Good luck!
Post by Kevin Liu
Haha this is my first major project, period! Thanks a lot for putting in
the time and effort into guiding. I come from the finance world but became
interested in Julia and MongoDB for what they can do with science. It's a
hand into understanding so much. Focused on Mongo.jl and will digest your
comments after that. I got ahead of myself from Mongo.jl after seeing there
was so much more to be done to make the stack fully functioning. Thank you!
Will keep you and the community posted. Cheers mate!
Post by Kevin Squire
Hi Kevin,
I'm sorry to hear (and see) that you haven't gotten much help on the
Julia mailing list. It's probably just that your request hasn't fallen on
the ears of anyone who has interest in both Mongo and Julia and the time to
help. I'm almost in that category, in that I have a small interest in
Mongo (and a lot of interest in Julia), but only so much time.
I will say that once you get something working, the mailing list will
usually be a good resource, but it works best if you have specific
questions or problems (e.g., I'm trying to do this with the following code,
but it's not working--what am I doing wrong) vs. general requests (e.g.,
asking for help wrapping mongo with a mostly empty repo).
I'm assuming this is your first major Julia project? If so, my first
suggestion is to ignore everything written below (for now), and try to get
the Mongo.jl library running on a modern Julia first, and make sure you
understand everything that it's doing. Only after that would I try
anything below.
----
In truth, I don't know the best way forward, but I can give you a little
more information, and maybe it will help you decide.
Clang.jl is a general framework for wrapping C libraries. It's never
necessary--any C library can be called directly using ccall. But ccalls
can be kind of clunky, so Clang.jl provides an API which very closely
mimics the C API provided in some header file: functions have very similar
signatures, and structs become julia types. For a large library with lots
of functions, or complicated structs with lots of members, this can make
wrapping relatively easy.
While the output of Clang.jl is usually reasonably nice, it's still a
very low level of abstraction. Actually, very little abstraction, because
it matches the C library, which is usually very low level, and still
somewhat inconvenient in Julia (but more convenient than ccalls). To be
useful, you'll often want to add a higher level API on top of that, which
adds functions and/or types that encompass or simplify the lower level
calls.
It's also often the case that Clang.jl doesn't give you exactly what you
need--e.g., it doesn't know how to wrap certain things, such as unions and
C macros. In those cases, you'll have to edit the output by hand, or spend
some time programmatically filtering/modifying the results. I do this a
bit in the wrapper for VideoIO
<https://github.com/kmsquire/VideoIO.jl/blob/master/util/wrap_libav_split.jl> (and
I still have to edit some files by hand at the end).
The main alternative is to wrap a subset of useful functions by hand (or
simply use ccall directly, which amounts to pretty much the same thing).
This is probably closer to what the Mongo folks had in mind when they
directed you to the Lua driver. If you only need access to a few
functions, or if your code is highly specialized in a way that Clang.jl has
trouble with, wrapping by hand can be the way to go. For this, you're
basically writing Julia functions which ccall out to external library
functions (such as those in mongo), and returns the result (or some
modification thereof that matches what would normally be done in Julia).
Hopefully this was useful. Please feel free to post back here with
questions, and I (and maybe others, if the question is right) will try to
answer as we have time.
Cheers!
Kevin
Post by Kevin Liu
Thanks for the valuable advice and modesty, there is no code in the
reps. I'm learning how to do this properly. From the Mongo side I have
received a little bit of guidance but from the Julia side, very little.
Changed it to CMongo.jl. Clang.jl will be of great help (I had bookmarked
it, but didn't realize it was a wrapper).
Post by Kevin Squire
I would suggest CMongo.jl (when renaming this, be careful if you're on
a case-insensitive filesystem). Of the fully capitalized names in Julia,
most of them imply that they are acronyms.
Suggestion: at this point, there isn't much code in the repo. Since
not many people have (publicly) responded to your posts, IMHO, it would be
good to try to get a basic working system in place, and post your progress
when something basic is working--this will make it easier for people to
contribute.
One more thing you should look at is Clang.jl, which makes wrapping C
libraries easier.
Cheers!
Kevin
Post by Kevin Liu
I'll name it CMONGO.jl
Post by Kevin Liu
Any suggestions for the name? I just want to remember this will be a
wrapper around C Mongo.
Post by Kevin Liu
Hey Kevin,
That's great. Thanks for the advice. On it right now.
Cheers!
Post by Kevin Squire
Hi Kevin,
If you plan to make this a Julia package (and I encourage you to
do so), it would be good to look at the Julia package naming
conventions
<http://julia.readthedocs.org/en/latest/manual/packages/#guidelines-for-naming-a-package>.
You might consider choosing a different name, generating a package
skeleton, and moving the files in this repo there. Alternatively, renaming
that repo shouldn't be hard.
(This isn't mentioned explicitly there, but dashes also won't work
for Julia package names.)
Cheers!
Kevin
Post by Kevin Liu
Hi Julia Users, feel free to contribute to the Julia wrapper of
the C Mongo Driver, maintained by Mongo
https://github.com/tenthdimension/Julia-C-Mongo
This Julia wrapper is based on the Lua wrapper of the C Mongo
Driver. Jesse Davis from MongoDB recommended I used it as a reference.
Post by Kevin Liu
Thanks
On Thursday, July 23, 2015 at 8:24:12 PM UTC-3,
Post by t***@multiscalehn.com
https://github.com/pzion/LibBSON.jl/pull/4
https://github.com/pzion/Mongo.jl/pull/6
I'm sorry Tim, check this out
https://github.com/10gen-labs/mongorover/issues/16
Could you share how you made it work properly?
Post by Kevin Liu
Hi Tim, did it pass specs 1, 2, and part of 3? 4 hasn't been
started yet.
These new MongoDB drivers conform to published specifications.
1. Server Selection - Deciding which server to send database
operations to in a MongoDB deployment.
2. Server Discovery and Monitoring - All the logic required
to make a MongoDB application highly available.
3. CRUD API - The API for how we Create, Read, Update and
Delete data from MongoDB.
4. Authentication - The rules for how to authenticate to
MongoDB servers.
https://www.mongodb.com/blog/post/announcing-next-generation-drivers-mongodb
On Wednesday, July 22, 2015 at 4:30:00 PM UTC-3,
Post by t***@multiscalehn.com
I have just made pull requests to pzion/LibBSON.jl and
pzion/Mongo.jl to fix the driver in v0.4. Works fine for me, after adding
@compats
Post by Kevin Liu
Hi,
I have Julia 0.3, Mongodb-osx-x86_64-3.0.4,
and Mongo-c-driver-1.1.9 installed, but can't get Julia to access the Mongo
Client through this 'untestable' package
https://github.com/pzion/Mongo.jl, according to
http://pkg.julialang.org/.
I have tried Lytol/Mongo.jl and the command
require("Mongo.jl") can't open file Mongo.jl, or the auto-generated
deps.jl.
Is anyone having similar problems trying to make Julia work
with Mongo?
Thank you
Kevin
Loading...