Factual is hiring Clojure engineers

2014-01-17 Thread Zach Tellman
It's been six months since I last announced this, so: Factual is perpetually hiring smart, driven engineers to solve deep problems in data analysis and systems engineering. We have offices in both SF and LA, and remote candidates with a strong background in analysis will be considered.

Re: Factual is hiring Clojure engineers

2014-01-18 Thread Zach Tellman
analysis experience? On Saturday, January 18, 2014 7:34:38 AM UTC+7, Zach Tellman wrote: It's been six months since I last announced this, so: Factual is perpetually hiring smart, driven engineers to solve deep problems in data analysis and systems engineering. We have offices in both SF and LA

[ANN] durable-queue: an in-process disk-backed queue

2014-02-06 Thread Zach Tellman
At Factual we get a lot of data thrown at us, and often don't have control over the rate at which it comes in. As such, it's preferable that our buffer isn't bounded by the process' memory, since a temporary blip in throughput may cause GC pauses, OOM exceptions, and other things that will

Re: [ANN] durable-queue: an in-process disk-backed queue

2014-02-07 Thread Zach Tellman
useful for you, please let me know. Zach On Fri, Feb 7, 2014 at 5:26 AM, Bob Hutchison hutch-li...@recursive.cawrote: On Feb 6, 2014, at 6:45 PM, Zach Tellman z...@factual.com wrote: At Factual we get a lot of data thrown at us, and often don't have control over the rate at which it comes

Re: [ANN] durable-queue: an in-process disk-backed queue

2014-03-07 Thread Zach Tellman
I added the above-described features a few weeks back, but only got around to marking 0.1.1 today. Fsync batching is described at the end of the README, let me know if you have any questions. On Friday, February 7, 2014 11:52:11 AM UTC-8, Zach Tellman wrote: Hi Bob, Right now the API only

Re: [ANN] durable-queue: an in-process disk-backed queue

2014-03-10 Thread Zach Tellman
interval? Please forgive my suspicious nature, Leif On Friday, March 7, 2014 4:21:44 PM UTC-5, Zach Tellman wrote: I added the above-described features a few weeks back, but only got around to marking 0.1.1 today. Fsync batching is described at the end of the README, let me know if you

[ANN] immutable-int-map

2014-04-20 Thread Zach Tellman
This one's pretty simple: it's an immutable map that can only have positive integers as keys. It can be found at https://github.com/ztellman/immutable-int-map. The one interesting aspect of this is that it has an efficient merge mechanism, which means it plays better with Clojure's reducer

Re: [ANN] immutable-int-map

2014-04-20 Thread Zach Tellman
, April 20, 2014 9:44:21 PM UTC-7, Plinio Balduino wrote: it's an immutable map that can only have positive integers as keys -- Like an array? (My question is child of my complete ignorance, and I'm not questioning your knowledge or motivation) Plínio On Mon, Apr 21, 2014 at 1:40 AM, Zach

Re: [ANN] immutable-int-map

2014-04-21 Thread Zach Tellman
Correct. I'll clarify that I mean 64 bit integers in the readme. On Apr 21, 2014 5:26 AM, Alex Miller a...@puredanger.com wrote: Never mind, look like you mean integer in the generic sense and you are using longs, right? -- You received this message because you are subscribed to the Google

Tetris

2009-10-06 Thread Zach Tellman
I've thrown together a very simple Tetris clone, which can be found at http://github.com/ztellman/penumbra/blob/master/src/examples/tetris.clj . Excluding the parts hidden away by the framework, it's a purely functional implementation. I figured a few people here might find it interesting.

Re: Leiningen Run ?

2009-12-01 Thread Zach Tellman
On Dec 1, 8:15 am, David Nolen dnolen.li...@gmail.com wrote: On Tue, Dec 1, 2009 at 1:10 AM, Phil Hagelberg p...@hagelb.org wrote: David Nolen dnolen.li...@gmail.com writes: The problem is that JOGL needs JNIs and JNIs need to be on java.library.path or java.ext.dirs, not the classpath.

Re: Leiningen Run ?

2009-12-02 Thread Zach Tellman
On Dec 2, 12:38 pm, David Nolen dnolen.li...@gmail.com wrote: Yeah it sounds like you'll need to package up JOGL 2 and push it to Clojars right? On Wed, Dec 2, 2009 at 3:20 PM, Zach Tellman ztell...@gmail.com wrote: On Dec 1, 3:31 pm, David Nolen dnolen.li...@gmail.com wrote: So just

Re: Trying to rewrite a loop as map/reduce

2009-12-15 Thread Zach Tellman
At first glance I don't see a clean to make this completely higher- order, but here's a shorter (albeit a little messy) version: (loop [a a0] (let [[a b c d e] (reduce #(conj %1 (%2 (last %1))) [a] [f1 f2 f3 f4]) g (f5 c) h (- e f2 f5)] (if (or (f6? b) (= g h))

Re: How to fund open source Clojure development

2009-12-16 Thread Zach Tellman
All of these seem to distract from the activity we're trying to fund: the development of Clojure. If the current approach can bring in enough money, it strikes me as fairly ideal. We'll just have to wait and see if it does. -- You received this message because you are subscribed to the Google

Inconsistent behavior in 1.2.0-master w.r.t. previous versions

2010-01-25 Thread Zach Tellman
At the REPL, in 1.2.0-master (meta (second '(a #^b c))) nil In 1.1.0-new (and I believe all previous versions) (meta (second '(a #^b c))) {:tag b} Is this intentional, or a bug? Is the new type hint syntax being introduced in 1.2? -- You received this message because you are subscribed to

Re: Inconsistent behavior in 1.2.0-master w.r.t. previous versions

2010-01-25 Thread Zach Tellman
I've double-checked I have the latest from github, cleaned and recompiled, and I'm still getting the same results. user= [*clojure-version* (meta (second '(a #^b c)))] [{:interim true, :major 1, :minor 2, :incremental 0, :qualifier master} nil] Does anyone have an idea what's going on here? On

Re: Clojure binding for Open CL

2010-02-10 Thread Zach Tellman
A few months back I created very basic bindings for CL4Java (the code for it still exists in Penumbra, under src/opencl). It then subsequently was renamed to JOCL, which was already in use by another OpenCL library, and they started to work on combining their efforts, and I decided to wait until

Re: jogl classpath not found

2010-03-11 Thread Zach Tellman
In the past, I haven't had a lot of luck putting the JOGL libraries on the classpath. A much better approach, I've found, is to create a custom script to load up clojure, and put the class and library paths as parameters to the java executable. My library used to target JOGL (it now uses LWJGL),

Re: Name suggestions

2010-03-18 Thread Zach Tellman
how about 'patois' or 'creole' On Mar 17, 12:08 am, mac markus.gustavs...@gmail.com wrote: After just a little more test and polish I plan on calling clj-native 1.0. But clj-native is a *really* boring name so I want to change it before 1.0 and I don't have very good imagination when it comes

defprotocol's support for variadic arguments seems broken

2010-04-05 Thread Zach Tellman
Possibly this fall out from the latest commit requiring an explicit 'this' reference (ba6cc3b), I haven't checked any versions but the most recent. user (defprotocol Protocol (f [a b c])) Protocol user (def p (reify Protocol (f [a b c] [a b c]))) #'user/p user (f p :a) No single method: f of

Re: defprotocol's support for variadic arguments seems broken

2010-04-06 Thread Zach Tellman
You're right, that does explain it. I assumed that variadic arguments were supported, but maybe I was wrong. Can anyone confirm whether or not this was ever intended to work? On Apr 6, 2:32 am, Jarkko Oranen chous...@gmail.com wrote: On Apr 6, 8:16 am, Zach Tellman ztell...@gmail.com wrote

[ANN] Calx, a wrapper for OpenCL

2010-06-21 Thread Zach Tellman
Wrappers for OpenCL have been discussed a few times on this list, so hopefully a few of you will be interested to hear that one is available at http://github.com/ztellman/calx. In my opinion, the C-variant language used by OpenCL doesn't have too much incidental complexity, so I don't think I'll

Re: Calx, a wrapper for OpenCL

2010-06-21 Thread Zach Tellman
. Thanks, On Mon, Jun 21, 2010 at 2:04 AM, Zach Tellman ztell...@gmail.com wrote: Wrappers for OpenCL have been discussed a few times on this list, so hopefully a few of you will be interested to hear that one is available athttp://github.com/ztellman/calx. In my opinion, the C

[ANN] rhizome - simple graph and tree visualizations

2013-05-03 Thread Zach Tellman
I've had Graphviz integration in Lamina for a while [1], and have generally found it to be fun and useful. To let everyone join in the fun, I've extracted that functionality into its own library, Rhizome [2]. Feedback is welcome. Zach [1] https://github.com/ztellman/lamina/wiki/Channels [2]

[ANN] 'primitive-math', a library for predictable arithmetic operations

2013-06-07 Thread Zach Tellman
What (+ x y) compiles down is highly dependent on the surrounding context, including but not limited to the local type-hints and the value of *unchecked-math*. Actually verifying that it's calling the primitive, unboxed, easily inlined clojure.lang.Numbers.add(long, long) requires either a

Re: Clojure for large programs

2011-07-06 Thread Zach Tellman
I agree that namespaces should be designed to be consumed, but that can be pretty taxing on the developer. In my libraries, I tend to split the functions into whatever sub-namespaces I want to keep the organization easy for me, and then import all the functions I want to expose into a

Re: Erlang-esque bit syntax in Clojure?

2010-12-16 Thread Zach Tellman
The only things I know that Gloss lacks relative to Erlang's functionality is arbitrary bit-lengths for integers and mixed-endian support, both of which I plan to add in the near future. Lacking Erlang's built in pattern matching, the Clojure implementation will probably be less elegant in some

Re: Waiting for agents

2010-12-17 Thread Zach Tellman
(future ...) enqueues tasks onto a thread pool. On Dec 17, 10:47 am, nicolas.o...@gmail.com nicolas.o...@gmail.com wrote: How about futures? They are in clojure.core and can be used for much the same purposes as Fork/Join, unless your individual tasks are so small that the performance

Re: websockets w/ clojure

2010-12-24 Thread Zach Tellman
If you decide to try Aleph and have any questions, I'm available via Github or on the mailing list at http://groups.google.com/group/aleph-lib. Zach On Dec 24, 10:55 am, paul santa clara kesseri...@gmail.com wrote: I have had a lot of success with Aleph.  Just remember to clone the git repo as

Re: ANN: Gloss, a byte-format DSL

2011-01-01 Thread Zach Tellman
it mentions in the stacktrace [3] is methods on a reify, which calls the same method again, or in the most recent case, just return nil. [1]http://www.minecraft.net/docs/NBT.txt [2]https://gist.github.com/761997 [3]http://pastebin.com/AqrsbjuS On Nov 28 2010, 8:14 pm, Zach Tellman ztell

Re: ANN: Gloss, a byte-format DSL

2011-01-02 Thread Zach Tellman
. Thanks! Pepijn de Vos On Jan 1, 10:47 pm, Zach Tellman ztell...@gmail.com wrote: The header-body function in (header ...) must return a codec, so you need to call compile-frame on the vector you're generating.  Since you don't want to call compile-frame every time you decode a frame, you

Re: ANN: Gloss, a byte-format DSL

2011-01-05 Thread Zach Tellman
think is happening is that repeated reads up to the first \0 and then tries to fit the subframes inside of that. What I think it *should* do is, check the next byte for a delimiter, if not, read a subframe, rinse and repeat. Pepijn On Jan 2, 7:38 pm, Zach Tellman ztell...@gmail.com wrote

Re: ANN: Gloss, a byte-format DSL

2011-01-05 Thread Zach Tellman
Thanks for the patch! It's too bad that Gloss wasn't directly suited to your needs, but I appreciate you taking the time to familiarize yourself with the code and add new functionality. Zach On Jan 5, 2:45 pm, Eric Schulte schulte.e...@gmail.com wrote: also, here's a patch to Gloss which I've

Re: ANN: Gloss, a byte-format DSL

2011-01-10 Thread Zach Tellman
I don't know if your example codec is as simple as your real problem, but here's a codec that will work for the string you provided: (repeated (string :utf-8 :delimiters [\n \n\0]) :delimiters [\n\0] :strip-delimiters? false) This terminates the whole sequence only on \n\0, but doesn't strip

Re: WebSockets server for broadcasting log events

2011-03-01 Thread Zach Tellman
Using Aleph (https://github.com/ztellman/aleph), you can create a server that broadcasts messages from any client to all other clients very easily: (use 'aleph.http 'lamina.core) (def broadcast-channel (permanent-channel)) (start-http-server (fn [ch _] (siphon broadcast-channel ch)

Re: Future of clojure.contrib.core/-? macro

2011-04-18 Thread Zach Tellman
I definitely find them useful. On Apr 18, 8:47 am, Laurent PETIT laurent.pe...@gmail.com wrote: Hello, The -? and -? macros are currently inside old, soon to be deprecated clojure contrib. They have proven useful to me a number of times, and I personnally wouldn't see them stay in the soon

Re: San Francisco Clojure Users

2011-05-10 Thread Zach Tellman
Unfortunately, you just missed the monthly Bay Area user group meetup, which was yesterday. But with Google I/O going on, maybe there are enough people around that an impromptu meetup would be plausible. Zach On May 10, 1:07 pm, David Jagoe davidja...@gmail.com wrote: G'day everyone, Forgive

Re: Issues with Penumbra

2012-10-11 Thread Zach Tellman
I updated Penumbra to target the project structure for Leiningen 2 a while back, are you using v1 by any chance? Zach On Thursday, October 11, 2012 12:34:44 PM UTC-7, JvJ wrote: I'm trying to make a project using Penumbra for opengl, but somehow I get an issue when I try (use

Re: Disconnect a downstream channel in lamina

2012-10-25 Thread Zach Tellman
If the upstream channel is permanent, then it won't close if all downstream channels are closed. You can create a permanent channel using (permanent-channel) or (channel* :permanent? true). Once you have that, you can replace all that code with a simple (siphon perm-ch conn-ch) As an aside,

Re: Clojurescript long polling questions

2012-05-04 Thread Zach Tellman
That documentation is for the Lamina library, and describes how full-duplex client connections are represented. If you created a TCP client, all that would be true. However, you are writing a server, and using HTTP, which is a much more structured protocol. Each request takes only a single

ANN: Aleph, an asynchronous web server

2010-07-07 Thread Zach Tellman
At the Bay Area user group meeting in June, there was a very interesting discussion about how to best use Clojure's concurrency primitives to field large numbers of concurrent requests, especially in a long-poll/push type application. We didn't arrive at any solid conclusion, but it was clear to

Re: ANN: Aleph, an asynchronous web server

2010-07-07 Thread Zach Tellman
On Jul 7, 2:57 am, ngocdaothanh ngocdaoth...@gmail.com wrote: [org.jboss.netty/netty 3.2.0.BETA1] Netty 3.2.1.Final has been released. I think the ! mark in respond! is kind of misleading. Why not change it to arespond? For some reason I couldn't get 3.2.1.Final to come in via maven. I

Re: ANN: Aleph, an asynchronous web server

2010-07-07 Thread Zach Tellman
On Jul 7, 9:12 am, David Nolen dnolen.li...@gmail.com wrote: On Wed, Jul 7, 2010 at 5:15 AM, Zach Tellman ztell...@gmail.com wrote: With this in mind, I decided to make the thinnest possible wrapper around Netty such that a person could play around with alternate ways to use Clojure

Re: ANN: Aleph, an asynchronous web server

2010-07-07 Thread Zach Tellman
On Jul 7, 8:28 am, ngocdaothanh ngocdaoth...@gmail.com wrote: For some reason I couldn't get 3.2.1.Final to come in via maven. I think you need to add this to project.clj: :repositories [[jboss http://repository.jboss.org/nexus/content/ groups/public/]] Thanks, I'll give that a try.

Re: ANN: Aleph, an asynchronous web server

2010-07-07 Thread Zach Tellman
On Jul 7, 11:17 am, David Nolen dnolen.li...@gmail.com wrote: On Wed, Jul 7, 2010 at 2:10 PM, James Reeves jree...@weavejester.comwrote: On 7 July 2010 19:04, David Nolen dnolen.li...@gmail.com wrote: So something like this: (defn hello-world [request]   (future    

Re: Could Clojure be used to program on top of GPU's?

2010-07-19 Thread Zach Tellman
Hi Victor, I've written Penumbra (http://github.com/ztellman/penumbra), which is a wrapper for OpenGL that allows for some limited general purpose computation. I've also written Calx (http://github.com/ztellman/calx) which is a wrapper for OpenCL, and it's designed for general purpose

Re: Aleph and Conjure

2010-07-21 Thread Zach Tellman
I don't really understand what's being debated here. Aleph is fully Ring-compliant in every way but its threading model. I don't think anything in the Ring utilities are thread-aware, so they're all okay to use. I'm not very familiar with Compojure, but as long as you're willing to make an

Re: Aleph and Conjure

2010-07-21 Thread Zach Tellman
Also, I've just created a mailing list for Aleph at http://groups.google.com/group/aleph-lib, since it seems like that might reduce the clutter here. On Jul 21, 10:40 am, Zach Tellman ztell...@gmail.com wrote: I don't really understand what's being debated here.  Aleph is fully Ring-compliant

Re: Aleph and Conjure

2010-07-21 Thread Zach Tellman
Both of those seem to be about persisting data across requests. I apologize if I'm being dense, but how does the threading model affect how they work? On Jul 21, 11:28 am, gary b gary.b...@gmail.com wrote: On Jul 21, 10:40 am, Zach Tellman ztell...@gmail.com wrote:  I don't think anything

Re: Aleph and Conjure

2010-07-21 Thread Zach Tellman
On Jul 21, 11:51 am, David Nolen dnolen.li...@gmail.com wrote: On Wed, Jul 21, 2010 at 2:42 PM, Zach Tellman ztell...@gmail.com wrote: Both of those seem to be about persisting data across requests.  I apologize if I'm being dense, but how does the threading model affect how they work

Re: Aleph and Conjure

2010-07-21 Thread Zach Tellman
(respond! req (ring-handler req))) On Jul 21, 12:06 pm, Zach Tellman ztell...@gmail.com wrote: On Jul 21, 11:51 am, David Nolen dnolen.li...@gmail.com wrote: On Wed, Jul 21, 2010 at 2:42 PM, Zach Tellman ztell...@gmail.com wrote: Both of those seem to be about persisting data across

Re: Simple things should be simple

2010-09-09 Thread Zach Tellman
Lines of code are a terrible metric for language complexity. If I write a function and abstract away half the code, have I made Clojure twice as simple? If you want to really evaluate Clojure, write a non-trivial application and see whether the complexity is still manageable. Code golf doesn't

ANN: Gloss, a byte-format DSL

2010-11-23 Thread Zach Tellman
When writing Calx [1], I discovered it was a huge pain to deal with mixed C datatypes in Java. When writing Aleph [2], I discovered the problem increases by a factor of ten when dealing with streams of bytes. In an attempt to alleviate my own pain, and hopefully help a few other people out, I've

Re: ANN: Gloss, a byte-format DSL

2010-11-23 Thread Zach Tellman
Yes. There are Eclipse license headers on all the files, I'll just update the README to reflect that. On Nov 23, 9:51 am, Stuart Halloway stuart.hallo...@gmail.com wrote: Neat. License same as Clojure's? Stu When writing Calx [1], I discovered it was a huge pain to deal with mixed

Re: ANN: Gloss, a byte-format DSL

2010-11-23 Thread Zach Tellman
be to just turn any vector which is alternating keys and types into an ordered-map, but that seems a bit too magical. Zach On Nov 23, 12:12 pm, Chris Perkins chrisperkin...@gmail.com wrote: On Nov 23, 12:03 pm, Zach Tellman ztell...@gmail.com wrote: When writing Calx [1], I discovered

Re: ANN: Gloss, a byte-format DSL

2010-11-24 Thread Zach Tellman
On Nov 24, 12:42 am, Michael Wood esiot...@gmail.com wrote: Hi On 24 November 2010 04:43, Zach Tellman ztell...@gmail.com wrote: There are a couple of different things being discussed here.  I don't think there's any harm in allowing maps as frames, as long as people understand

Re: ANN: Gloss, a byte-format DSL

2010-11-24 Thread Zach Tellman
On Nov 23, 2:52 pm, zoka ztomi...@gmail.com wrote: JVM stores numbers in in big endian format - is there a way to process binary stream containing little endian numbers? Zoka On Nov 24, 7:24 am, Zach Tellman ztell...@gmail.com wrote: Good question.  The solution didn't make the cut for my

Re: ANN: Gloss, a byte-format DSL

2010-11-28 Thread Zach Tellman
to accept ByteBuffers with wrong order() and encode fun will always generate the correct result. Zoka On Nov 25, 3:00 am, Zach Tellman ztell...@gmail.com wrote: ByteBuffers have an order() method which allows you to toggle the endianness.  I haven't tested this, but since everything

ANN: Potemkin 0.3.0

2013-06-19 Thread Zach Tellman
Potemkin [1] is a collection of facades and utilities that I've found helpful when writing larger-scale libraries or applications. I've never formally announced it before, but I think it's gotten to the point where others can benefit from it. A few highlights: * 'def-map-type', which allows

Factual is hiring Clojure developers

2013-06-19 Thread Zach Tellman
At Factual, we build and constantly refine a canonical index of real world entities: businesses, locations, and products [1]. We also provide ways for other data to be resolved against our index [2] [3], allowing our service to act as a join table for real-world entities, breaking down

[ANN] byte-streams: a rosetta stone for all the byte representations the jvm has to offer

2013-06-29 Thread Zach Tellman
I've recently been trying to pull out useful pieces from some of my more monolithic libraries. The most recent result is 'byte-streams' [1], a library that figures how how to convert between different byte representations (including character streams), and how to efficiently transfer bytes

Re: ANN: faster zipper implementation

2013-06-30 Thread Zach Tellman
This is really cool, thanks for taking the time to do this. I was able to eke out another 1.8x speedup by changing the keyword equality checks with 'identical?' [1], and there might be some further room for improvement by defining inline forms for some of the smaller functions. Zach [1]

Re: ANN: faster zipper implementation

2013-06-30 Thread Zach Tellman
This is really cool, thanks for doing this. I was able to eke out another 1.8x speedup by replacing '=' with 'identical?' for the keyword comparisons [1]. There also might be further room for improvement by defining inline forms for some of the smaller functions. Zach [1]

Re: [ANN] byte-streams: a rosetta stone for all the byte representations the jvm has to offer

2013-07-01 Thread Zach Tellman
On Saturday, June 29, 2013 1:57:58 PM UTC-4, Zach Tellman wrote: I've recently been trying to pull out useful pieces from some of my more monolithic libraries. The most recent result is 'byte-streams' [1], a library that figures how how to convert between different byte representations

Re: [ANN] byte-streams: a rosetta stone for all the byte representations the jvm has to offer

2013-07-02 Thread Zach Tellman
a reasonable thing to have in contrib at least? On Saturday, 29 June 2013 18:57:58 UTC+1, Zach Tellman wrote: I've recently been trying to pull out useful pieces from some of my more monolithic libraries. The most recent result is 'byte-streams' [1], a library that figures how how to convert

[ANN] Vertigo: fast, idiomatic C-style structs

2013-07-09 Thread Zach Tellman
Last year, I gave a talk at the Conj on my attempt to write an AI for the board game Go. Two things I discovered is that it was hard to get predictable performance, but even once I made sure I had all the right type hints, there was still a lot of room at the bottom for performance

Re: Clojure: Elegance vs. Performance?

2013-07-09 Thread Zach Tellman
I've just released Vertigo [1], which I describe in this thread: https://groups.google.com/forum/#!topic/clojure/BayfuaqMzvs. I suspect this has some bearing on the conversation. Zach [1] https://github.com/ztellman/vertigo On Tuesday, July 9, 2013 8:11:58 AM UTC-7, Alexander Gunnarson

Re: Lamina receive-all functionality

2013-07-11 Thread Zach Tellman
Hi Patrick, A similar question has been asked in the Aleph mailing list, and you can see my answer there: https://groups.google.com/forum/#!topic/aleph-lib/SIO9Z8d3tdo. For future reference, you're more likely to get my attention, or the attention of someone else who can answer your

[ANN] Proteus: local mutable variables for the masses

2013-07-11 Thread Zach Tellman
There was some discussion a few days ago about how the lack of local mutable variables were harming performance, or possibly elegance, I'm not sure. Regardless, I fixed it: https://github.com/ztellman/proteus Enjoy! -- -- You received this message because you are subscribed to the Google

Re: [ANN] Proteus: local mutable variables for the masses

2013-07-11 Thread Zach Tellman
, Zach Tellman ztel...@gmail.comjavascript: wrote: There was some discussion a few days ago about how the lack of local mutable variables were harming performance, or possibly elegance, I'm not sure. Regardless, I fixed it: https://github.com/ztellman/proteus Enjoy! -- -- You received

Re: [ANN] Proteus: local mutable variables for the masses

2013-07-11 Thread Zach Tellman
It looks like the macroexpansion code in conditions.free is fairly generic. What would you say to putting it into its own library? On Thu, Jul 11, 2013 at 6:54 PM, Ben Wolfson wolf...@gmail.com wrote: On Thu, Jul 11, 2013 at 6:48 PM, Zach Tellman ztell...@gmail.com wrote: Yeah, for safety's

Re: [ANN] Vertigo: fast, idiomatic C-style structs

2013-07-15 Thread Zach Tellman
some way to deal with strings other variable-length data. I'm also curious if its possible to make the analog of this for fressian, basically to avoid unpacking objects that are not necessary for the computation at hand. On Tue, Jul 9, 2013 at 8:56 PM, Zach Tellman ztell...@gmail.com wrote

Re: [ANN] Vertigo: fast, idiomatic C-style structs

2013-07-16 Thread Zach Tellman
in fewer passes. On Mon, Jul 15, 2013 at 1:40 PM, Zach Tellman ztell...@gmail.com wrote: If you (vertigo.core/wrap a-file-name), that will use mmap under the covers, so if no one's tried it, it's easy enough to start. With respect to non-fixed data layouts, that could be supported

Re: [ANN] Vertigo: fast, idiomatic C-style structs

2013-07-17 Thread Zach Tellman
I actually haven't applied it yet. I'll post results once I have. On Wed, Jul 17, 2013 at 11:49 AM, Daniel doubleagen...@gmail.com wrote: How did this affect performance in your Go AI? On Tuesday, July 9, 2013 10:56:03 PM UTC-5, Zach Tellman wrote: Last year, I gave a talk at the Conj

[ANN] byte-transforms: methods for hashing, compressing, and encoding bytes

2013-07-24 Thread Zach Tellman
https://github.com/ztellman/byte-transforms This is just a thin wrapper over byte-streams [1] and some best-in-class hashing and compression algorithms, but I figure there are at least a few people who, like me, have put off using Snappy or MurmurHash because they didn't feel like crawling

[ANN] byte-transforms: methods for hashing, compressing, and encoding bytes

2013-07-25 Thread Zach Tellman
This is just a thin wrapper over byte-streams [1] and some best-in-class hash and compression algorithms, but I figure there are at least a few people out there who'd like to use Snappy or MurmurHash but don't want to crawl through javadocs. Enjoy. Zach [1]

[ANN] immutable-bitset: smalller, faster integer sets

2013-07-30 Thread Zach Tellman
https://github.com/ztellman/immutable-bitset There's not much to describe here, this provides an implementation of an integer-only set which can take up three orders of magnitude less memory under certain conditions. I needed this to implement a Bloom filter, but I figured it had applications

Re: [ANN] Vertigo: fast, idiomatic C-style structs

2013-07-31 Thread Zach Tellman
]) IllegalArgumentException java.nio.Buffer.position (Buffer.java:216) Thanks, Ezra On Tuesday, July 9, 2013 11:56:03 PM UTC-4, Zach Tellman wrote: Last year, I gave a talk at the Conj on my attempt to write an AI for the board game Go. Two things I discovered is that it was hard to get

Re: [ANN] Vertigo: fast, idiomatic C-style structs

2013-07-31 Thread Zach Tellman
Actually, looking at the readme, I can see the code you were trying to use. Sorry, I'm not sure how I didn't catch that before, but I've fixed it. Zach On Wed, Jul 31, 2013 at 10:17 AM, Zach Tellman ztell...@gmail.com wrote: Hi Ezra, This is admittedly a little confusing, but you're

ANN: clj-tuple, efficient small collections

2013-08-24 Thread Zach Tellman
I just pulled some code I wrote while trying to optimize 'memoize' into its own library: https://github.com/ztellman/clj-tuple. It only has the one function, so I assume no one will need too much explanation. However, there may still be room for performance improvements, so if anyone wants to

Re: ANN: clj-tuple, efficient small collections

2013-08-25 Thread Zach Tellman
names .e0, .e1 etc. considered part of the public interface of tuple objects? On Sat, Aug 24, 2013 at 7:38 PM, Zach Tellman ztel...@gmail.comjavascript: wrote: I just pulled some code I wrote while trying to optimize 'memoize' into its own library: https://github.com/ztellman/clj-tuple

Re: ANN: clj-tuple, efficient small collections

2013-08-25 Thread Zach Tellman
to the tuple, does it return a tuple too? Also instead of tupleN, you could fall back to the PersistentVector. JW On Sun, Aug 25, 2013 at 4:38 AM, Zach Tellman ztel...@gmail.comjavascript: wrote: I just pulled some code I wrote while trying to optimize 'memoize' into its own library

Re: ANN: clj-tuple, efficient small collections

2013-08-26 Thread Zach Tellman
be a good idea. On 8/25/13 9:35 AM, Zach Tellman wrote: I don't think so, even the existence of all the Tuple* types are an implementation detail, and you'd need to hint it as the right one to get sane performance. (nth t n) has good performance, you should prefer that. On Saturday

Re: ANN: clj-tuple, efficient small collections

2013-08-30 Thread Zach Tellman
On Saturday, August 24, 2013 7:38:25 PM UTC-7, Zach Tellman wrote: I just pulled some code I wrote while trying to optimize 'memoize' into its own library: https://github.com/ztellman/clj-tuple. It only has the one function, so I assume no one will need too much explanation. However, there may

[ANN] riddley: code-walking without caveats

2013-09-02 Thread Zach Tellman
When I announced Proteus [1], it was rightfully pointed out that it didn't play nicely with macros which rely on env, as well as a few forms like 'letfn' that I hadn't explicitly handled. This flaw has been shared by pretty much every library of this sort, and since this is a problem I've

Re: [ANN] riddley: code-walking without caveats

2013-09-03 Thread Zach Tellman
walking mechanism is exposed for more general transformations a la Proteus. Hope that helps, Zach On Mon, Sep 2, 2013 at 11:20 PM, Konrad Hinsen googlegro...@khinsen.fastmail.net wrote: --On 2 septembre 2013 13:49:01 -0700 Zach Tellman ztell...@gmail.com wrote: The resulting library

Re: [ANN] riddley: code-walking without caveats

2013-09-03 Thread Zach Tellman
this way is the only way to make sure that locals are consistent everywhere, rather than just in your own targeted use to track shadowing. Hope that helps, Zach On Tue, Sep 3, 2013 at 12:41 PM, Konrad Hinsen googlegro...@khinsen.fastmail.net wrote: --On 3 septembre 2013 02:08:23 -0700 Zach

[ANN] clj-leveldb, idiomatic LevelDB bindings from Factual

2013-09-03 Thread Zach Tellman
In the first of what I hope will be many annoucements, we're open sourcing a library we've found useful at Factual: https://github.com/Factual/clj-leveldb. This is just a simple wrapper around LevelDB, which is an in-process persistent k/v store from Google. If anyone has questions, I'm happy

Re: [ANN] riddley: code-walking without caveats

2013-09-04 Thread Zach Tellman
...@khinsen.fastmail.net wrote: Zach Tellman writes: I see. This is honestly something I hadn't considered, but since Riddley actually uses the Clojure compiler internals to track locals, this would be as simple as a (when-not (contains? (riddley.compiler/locals) (first expr

Re: [ANN] riddley: code-walking without caveats

2013-09-04 Thread Zach Tellman
: ** On Wed, Sep 4, 2013, at 09:25 AM, Zach Tellman wrote: I'm not sure what you mean by complete recursive expansion. Could you expand on that? Completely ;-) By complete recursive expansion I mean that you get a form that is fully reduced to the core language, i.e. it contains

Re: [ANN] riddley: code-walking without caveats

2013-09-04 Thread Zach Tellman
confusing and makes it necessary to use something like clojure.core/and within where if you want normal clojure-land and semantics), but it's a style of non-anaphoric macro that relies on receiving an unexpanded form. On Wed, Sep 4, 2013 at 9:27 AM, Zach Tellman ztell...@gmail.com wrote: So

Re: Handling name collisions with clojure.core

2013-09-04 Thread Zach Tellman
It is probably instructive to look at how (use-primitive-operators) works in primitive-math [1], though maybe not something you want to emulate. The basic mechanism is pretty simple: use 'ns-unmap' to get rid of the operators you want to shadow, and bring in the operators from the alternate

Re: [ANN] riddley: code-walking without caveats

2013-09-05 Thread Zach Tellman
argument to the macros, so anything which works exactly like the compiler needs to mimic that as well. Zach On Thu, Sep 5, 2013 at 3:09 AM, Konrad Hinsen googlegro...@khinsen.fastmail.net wrote: ** Zach Tellman writes: I guess I'm confused, then. You contrast complete recursive

Re: [ANN] riddley: code-walking without caveats

2013-09-05 Thread Zach Tellman
/riddley/ On Monday, 2 September 2013 21:49:01 UTC+1, Zach Tellman wrote: When I announced Proteus [1], it was rightfully pointed out that it didn't play nicely with macros which rely on env, as well as a few forms like 'letfn' that I hadn't explicitly handled. This flaw has been shared

Re: [ANN] riddley: code-walking without caveats

2013-09-05 Thread Zach Tellman
: Zach Tellman writes: I guess I'm confused, then. You contrast complete recursive expansion with what the compiler does, and then say it's recursive prewalk expansion, which is exactly what the compiler does. Can you clarify the difference between what you're doing and what

Re: Handling name collisions with clojure.core

2013-09-05 Thread Zach Tellman
Not doing actual replacement via code-walking will prevent any functions with inline definitions actually being able to benefit from this. I'm not sure if those are used in core.matrix, though. On Thu, Sep 5, 2013 at 4:54 AM, Colin Fleming colin.mailingl...@gmail.comwrote: This is actually

Re: New Functional Programming Job Opportunities

2013-09-16 Thread Zach Tellman
If anyone has questions about working at Factual, I'm happy to answer them, and can be reached at zach at factual.com. The short version, though, is that it's great and you should come work with us. For some examples of Clojure we're writing and using at Factual, check out:

[ANN] Sleight: whole program transformations

2013-09-18 Thread Zach Tellman
This is a lein plugin which hijacks the Clojure reader and allows all forms to be transformed before they're passed to the compiler. Usage and potential applications are described in the readme: https://github.com/ztellman/sleight I wrote the original version of this a year ago, but due to

Re: streams, reading bytes

2013-10-11 Thread Zach Tellman
The byte-transforms library will also take care of the gzip stuff for you: https://github.com/ztellman/byte-transforms On Thursday, October 10, 2013 10:26:35 PM UTC-4, Brian Craft wrote: I like the blurb: This library is a Rosetta stone for all the byte representations Java has to offer,

[ANN] collection-check: validation for data structure variants

2013-10-30 Thread Zach Tellman
It's relatively rare that people write variants of Clojure data structures. Partially, this is because the existing data structures are quite good, but it's also because it's surprisingly difficult. Clojure's vectors, sets, and maps each implement about a dozen interfaces with overlapping

  1   2   >