[racket-users] Drawing arbitrary binding arrows with Check Syntax

2016-10-18 Thread Alexis King
I have a macro that does something that approximates binding. It looks
like this:

  (∀ [α] (→ α α))

Obviously, I’d really like it if the αs had binding arrows drawn to
them. The trouble, unfortunately, is that ∀ does not expand to a binding
form at all; it is parsed in a single macro step to a value composed of
prefab structs, which is then stashed in a preserved syntax property
somewhere. No identifier with the name α is ever bound.

It seems like the 'disappeared-binding and 'disappeared-use properties
are for precisely this purpose, but in my initial implementation, I
found that they had some problems for this use case. To illustrate,
consider the following macro:

  (define-syntax-parser bind
[(_ binder:id use:id)
 (syntax-properties
  #'(void)
  (list (cons 'disappeared-binding
  (syntax-local-introduce #'binder))
(cons 'disappeared-use
  (syntax-local-introduce #'use])

(Where syntax-properties is a simple function that attaches multiple
syntax properties from a dictionary.)

This works okay, since I can now do this:

  (bind α α)

…and DrRacket draws a binding arrow between the two αs. However, there
is a problem. If I do this:

  (bind α α)
  (bind α α)

…then DrRacket draws binding arrows between all the αs, not just each
pair, since they are all free-identifier=?. This is somewhat
problematic, since I don’t ever actually bind α, and the identifiers
will almost always be free-identifier=? if they have the same name.

What I really want is a way to draw arrows very deliberately. I want a
way to say “draw an arrow between these two identifiers, but not any
other ones”. Unfortunately, all of the syntax properties available
('disappeared-use, 'disappeared-binding, and 'sub-range-binders) depend
on some inspection of identifier bindings, as far as I can tell. To
solve this problem, I found a way to cheat: I can forge identifiers with
made-up source locations to get Check Syntax to do what I want:

  (define (binding-arrows-props binders uses)
(define tmp (generate-temporary))
(define (mk-tmp id)
  (propagate-original-for-check-syntax
   id (datum->syntax tmp (syntax-e tmp) id id)))
(list (cons 'disappeared-binding (map mk-tmp binders))
  (cons 'disappeared-use (map mk-tmp uses

  (define (binding-arrows stx binders uses)
(syntax-properties stx (binding-arrows-props binders uses)))

(Where propagate-original-for-check-syntax inspects a syntax object and
applies the 'original-for-check-syntax syntax property if necessary.)

Using these functions, I can invent identifiers that will “trick” Check
Syntax into drawing binding arrows between any sets of identifiers that
I desire. In fact, the endpoints of the arrows don’t even need to be
identifiers! I can do this:

  (define-syntax-parser bind
[(_ a b)
 (binding-arrows
  #'(void)
  (list (syntax-local-introduce #'a))
  (list (syntax-local-introduce #'b)))])

…and Check Syntax will now happily draw arrows between absolutely
anything at all:

  (bind α α)
  (bind #s(point 1 2) 75)

This is kind of neat, but it seems like a horrible hack. Is there a
better way to get the arrows I want even if my macro is a little bit
naughty and simply emulates binding even when there isn’t any? Are there
any terrible pitfalls with the approach I’ve taken? For what it’s worth,
this isn’t hypothetical — this is an actual issue I’ve run into, and
this has been my kludge of a solution.

If everyone thinks this is a-ok, I’ll keep using it, but if there’s a
better way, I’d happily switch to something nicer.

(Also, as a final note, my apologies for asking so many questions about
the Check Syntax arrows on this list, but they’re really, really useful,
and I try my best to cooperate with them whenever I can.)

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


Re: [racket-users] How to apply a vector of functions to columns of a matrix?

2016-10-18 Thread David Storrs
Ah, I see.  Well, here's a minimal version:

(require math/matrix)

(define M (matrix ([1 2 3] [4 5 6] [7 8 9] [10 11 12])))

;;Define some simple functions that we can use on our matrix
(define (add-n n) (lambda (m)  (+ n m)))
(define add2 (add-n 2))
(define add3 (add-n 3))
(define add4 (add-n 4))
(define add5 (add-n 5))

;;This will apply a vector of functions to one piece (column) of M.  It
gets used below.
(define (matrix-apply-piece M-piece f-vec)
  (for/list ((item (matrix->list M-piece))
 (func f-vec))
(func item)))

M ;; show for comparison
(for/list ((r (matrix-cols M)))
 (matrix-apply-piece r
 (vector add2 add3 add4 add5)))

Output:
#
'((3 7 11 15) (4 8 12 16) (5 9 13 17))

I had it return the results as a list of lists because that allows you to
do post-processing on the individual element results if you wanted to
(e.g.) regroup the results from column => row or vice versa before using
list->matrix to convert back to a matrix.



Here's a more complete version with better error checking and more
functionality:

(require math/matrix)

;;Define some simple functions that we can use on our matrix
(define (add-n n) (lambda (m)  (+ n m)))
(define add2 (add-n 2))
(define add3 (add-n 3))
(define add4 (add-n 4))
(define add5 (add-n 5))

(define M (matrix ([1 2 3] [4 5 6] [7 8 9] [10 11 12])))

(define (rows-lists-to-matrix m n lst)  (list->matrix m n (apply append
lst)))
(define (cols->rows lst) (apply (curry map list) lst))

(define (matrix-apply M f-vec
  [slicer matrix-rows]
  [pre-reassembly identity])
  ;;This helper function will apply the functions from f-vec to
  ;;the pieces of M
  (define (matrix-apply-piece M-piece f-vec)
(define lst (matrix->list M-piece))
(unless (= (length lst) (vector-length f-vec))
(raise-arguments-error 'matrix-apply
   "Function vector must have same length
as each piece of M as returned from (slicer M)"
   "slicer" slicer
   "function vector" f-vec
   "(slicer M)" M-piece
   "overall matrix" M))
(for/list ((item lst)
   (func f-vec))
  (func item))) ;; end of matrix-apply-piece
  ;;
  (rows-lists-to-matrix (matrix-num-rows M)
(matrix-num-cols M)
(pre-reassembly
 (for/list ((r (slicer M)))
   (matrix-apply-piece r f-vec)


M ;; shown for comparison
(matrix-apply M (vector add2 add3 add4) matrix-rows)
(matrix-apply M (vector add2 add3 add4 add5) matrix-cols cols->rows)






On Tue, Oct 18, 2016 at 2:08 PM, Pierre-Henry Frohring <
frohring.pierrehe...@gmail.com> wrote:

> On Tuesday, October 18, 2016 at 5:48:07 PM UTC+2, David K. Storrs wrote:
> > Hi Pierre,
> >
> > Does matrix-map-cols do what you want?  It's the last function on page
> https://docs.racket-lang.org/math/matrix_poly.html
> >
> > Also, welcome to Racket!
> >
> > Dave
> >
> >
> >
> >
> > On Mon, Oct 17, 2016 at 7:00 PM, Pierre-Henry Frohring <
> frohring.p...@gmail.com> wrote:
> > Hello,
> >
> >
> >
> > First time here, and just a few hours into Racket...
> >
> > It is not going to be rocket science ;-).
> >
> >
> >
> >
> >
> > Context:
> >
> >
> >
> >   I am using Emacs and org-mode to map each heading of an org file to a
> html file.
> >
> >   Result: one org file → one static website.
> >
> > https://github.com/phfrohring/org-to-blog
> >
> >
> >
> >   The org file contains data that is exported to a tsv file:
> >
> > https://github.com/phfrohring/org-to-blog/blob/master/test/
> blog.org#data
> >
> >
> >
> >   A code block in the org file is evaluated:
> >
> > https://github.com/phfrohring/org-to-blog/blob/master/test/
> blog.org#processing
> >
> >
> >
> >   And produces a stacked-chart from the tsv data:
> >
> > https://github.com/phfrohring/org-to-blog/blob/master/test/
> blog.org#result
> >
> >
> >
> >
> >
> > The tsv data is parsed into a kind of matrix `M` where each cell
> `M[i][j]` is a
> >
> > string.
> >
> >   ex: `M[i][0]` is the column "day" i.e. contains dates
> >
> >   `M[i][1]` is the column "description" i.e. contains strings
> >
> >
> >
> > In order to use operations over "day" column (adding dates, ...) it is
> needed to
> >
> > parse that column with something like: `iso8601->date` but not the
> "description"
> >
> > column.
> >
> >
> >
> > So, it is needed to apply a vector of functions `vF = [f_0,f_1,...]` to
> `M =
> >
> > [col_0,col_1,...]` such that: `(matrix-apply vF M) = M'` where:
> >
> >
> >
> > M' = [f_0(col_0),f_1(col_1),...,f_n(col_n)]
> >
> >
> >
> > Well, this function `matrix-apply` does not seem to exist and my attempt
> at
> >
> > implementing it feels clunky to say the least (ex: fs is not a vector):
> >
> >
> >

Re: [racket-users] creating a REPL for your #lang?

2016-10-18 Thread Alex Knauth

> On Oct 18, 2016, at 6:10 PM, Chris GauthierDickey  wrote:
> 
> Greetings all, 
> 
>   Googled around and searched through documents but I couldn't find an 
> answer. Me and a colleague built a #lang on top of racket and I've been able 
> to get it to run in the Definitions window of Dr Racket but not in the REPL 
> (either in Dr. Racket or from the command line). I'm not getting any errors. 
> My module has a (provide #%top-interactive) so the interactive window does 
> open up, it just doesn't parse anything at all. Any suggestions on how to 
> make it use the reader/expander we built for our #lang so it works in the 
> REPL?

I'm inferring that your #lang probably uses a non s-expression syntax.

If your #lang has a non-s-expression syntax, then you will need to need either 
use the 'language-info syntax property with or use a configure-runtime 
submodule.

The first method is introduced here, and it's the one I've used before
https://docs.racket-lang.org/guide/module-runtime-config.html 


But either way, you would want to override the current-read or the 
current-readtable parameter to use your new reader.

How are you implementing your reader? Are you using syntax/module-reader, or 
are you providing the read, read-syntax, and get-info functions directly? If 
you're providing them directly, are you generating them using a function like 
make-meta-reader, are you using a readtable, are you using a parser library, or 
something else?

>   Pretty sure I've seen this work with Redex, so I *think* it's possible!
> 
> Thanks in advance for any help!
> Chris

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


[racket-users] creating a REPL for your #lang?

2016-10-18 Thread Chris GauthierDickey
Greetings all,

  Googled around and searched through documents but I couldn't find an
answer. Me and a colleague built a #lang on top of racket and I've been
able to get it to run in the Definitions window of Dr Racket but not in the
REPL (either in Dr. Racket or from the command line). I'm not getting any
errors. My module has a (provide #%top-interactive) so the interactive
window does open up, it just doesn't parse anything at all. Any suggestions
on how to make it use the reader/expander we built for our #lang so it
works in the REPL?

  Pretty sure I've seen this work with Redex, so I *think* it's possible!

Thanks in advance for any help!
Chris

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


Re: [racket-users] First posting to Racket User List / question

2016-10-18 Thread Asumu Takikawa
(adding the list back in, in case the info is helpful to others)

On 2016-10-18 17:38:27 +0200, meino.cra...@gmx.de wrote:
> I am a vim user by heart and have setup tslime and racket (cli) to
> work hand in hand. Are there better alternatives for vim?

The Racket Guide has a section with suggestions on how to set up vim for
Racket:

  http://docs.racket-lang.org/guide/other-editors.html

(if the info there is outdated, suggestions for improvement welcome)

Another thing you can do is use evil-mode (a good vim emulator) on emacs. Then
you can use Greg Hendershott's excellent racket-mode.

Cheers,
Asumu

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


Re: [racket-users] How to apply a vector of functions to columns of a matrix?

2016-10-18 Thread Pierre-Henry Frohring
On Tuesday, October 18, 2016 at 5:48:07 PM UTC+2, David K. Storrs wrote:
> Hi Pierre,
> 
> Does matrix-map-cols do what you want?  It's the last function on page 
> https://docs.racket-lang.org/math/matrix_poly.html 
> 
> Also, welcome to Racket!
> 
> Dave
> 
> 
> 
> 
> On Mon, Oct 17, 2016 at 7:00 PM, Pierre-Henry Frohring 
>  wrote:
> Hello,
> 
> 
> 
> First time here, and just a few hours into Racket...
> 
> It is not going to be rocket science ;-).
> 
> 
> 
> 
> 
> Context:
> 
> 
> 
>   I am using Emacs and org-mode to map each heading of an org file to a html 
> file.
> 
>   Result: one org file → one static website.
> 
>     https://github.com/phfrohring/org-to-blog
> 
> 
> 
>   The org file contains data that is exported to a tsv file:
> 
>     https://github.com/phfrohring/org-to-blog/blob/master/test/blog.org#data
> 
> 
> 
>   A code block in the org file is evaluated:
> 
>     
> https://github.com/phfrohring/org-to-blog/blob/master/test/blog.org#processing
> 
> 
> 
>   And produces a stacked-chart from the tsv data:
> 
>     https://github.com/phfrohring/org-to-blog/blob/master/test/blog.org#result
> 
> 
> 
> 
> 
> The tsv data is parsed into a kind of matrix `M` where each cell `M[i][j]` is 
> a
> 
> string.
> 
>   ex: `M[i][0]` is the column "day" i.e. contains dates
> 
>       `M[i][1]` is the column "description" i.e. contains strings
> 
> 
> 
> In order to use operations over "day" column (adding dates, ...) it is needed 
> to
> 
> parse that column with something like: `iso8601->date` but not the 
> "description"
> 
> column.
> 
> 
> 
> So, it is needed to apply a vector of functions `vF = [f_0,f_1,...]` to `M =
> 
> [col_0,col_1,...]` such that: `(matrix-apply vF M) = M'` where:
> 
> 
> 
>                 M' = [f_0(col_0),f_1(col_1),...,f_n(col_n)]
> 
> 
> 
> Well, this function `matrix-apply` does not seem to exist and my attempt at
> 
> implementing it feels clunky to say the least (ex: fs is not a vector):
> 
> 
> 
>     (define (matrix-apply fs m)
> 
>       (cond [(= (length fs) (matrix-num-cols m))
> 
>              (matrix-augment
> 
>               (map (λ (f_col)
> 
>                      (apply
> 
>                       (λ (mat) (matrix-map (car f_col) mat))
> 
>                       (cdr f_col)))
> 
>                    (zip
> 
>                     fs
> 
>                     (matrix-cols m2]
> 
>             [#t (error fs)]))
> 
> 
> 
>     (define m2 (matrix [[1 2 3 4]
> 
>                         [1 2 3 4]]))
> 
> 
> 
>     (matrix-apply (list sqr sqr sqr sqr) m2)
> 
> 
> 
>     => (array #[#[1 4 9 16] #[1 4 9 16]])
> 
> 
> 
> 
> 
> Am I missing the elephant in the corridor? Is an implementation floating
> 
> somewhere?
> 
> 
> 
> Thx!
> 
> 
> 
> --
> 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> 
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users...@googlegroups.com.
> 
> For more options, visit https://groups.google.com/d/optout.

Thx Dave!

Assuming I understood the doc correctly:

(matrix-map-cols f M) → (Matrix B)
  f : ((Matrix A) -> (Matrix B))
  M : (Matrix A)

So, `f` expects a matrix as an input.  What I am trying to do is to apply a
vector of functions `[f_i]` such that each `f_i` acts on a vector: the columns
of the matrix M.  Also, the type M[i,j] may differ from one column to the other.

Something that would look like:

(matrix-map-cols [f] M) → (Matrix [B_1 B_2 … B_n])
  where each f_i in [f] has type: f_i : (List A_i) → (List B_i)
  M : (Matrix [A_1 A_2 … A_n])

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


Re: [racket-users] How to apply a vector of functions to columns of a matrix?

2016-10-18 Thread David Storrs
Hi Pierre,

Does matrix-map-cols do what you want?  It's the last function on page
https://docs.racket-lang.org/math/matrix_poly.html

Also, welcome to Racket!

Dave


On Mon, Oct 17, 2016 at 7:00 PM, Pierre-Henry Frohring <
frohring.pierrehe...@gmail.com> wrote:

> Hello,
>
> First time here, and just a few hours into Racket...
> It is not going to be rocket science ;-).
>
>
> Context:
>
>   I am using Emacs and org-mode to map each heading of an org file to a
> html file.
>   Result: one org file → one static website.
> https://github.com/phfrohring/org-to-blog
>
>   The org file contains data that is exported to a tsv file:
> https://github.com/phfrohring/org-to-blog/blob/master/test/
> blog.org#data
>
>   A code block in the org file is evaluated:
> https://github.com/phfrohring/org-to-blog/blob/master/test/
> blog.org#processing
>
>   And produces a stacked-chart from the tsv data:
> https://github.com/phfrohring/org-to-blog/blob/master/test/
> blog.org#result
>
>
> The tsv data is parsed into a kind of matrix `M` where each cell `M[i][j]`
> is a
> string.
>   ex: `M[i][0]` is the column "day" i.e. contains dates
>   `M[i][1]` is the column "description" i.e. contains strings
>
> In order to use operations over "day" column (adding dates, ...) it is
> needed to
> parse that column with something like: `iso8601->date` but not the
> "description"
> column.
>
> So, it is needed to apply a vector of functions `vF = [f_0,f_1,...]` to `M
> =
> [col_0,col_1,...]` such that: `(matrix-apply vF M) = M'` where:
>
> M' = [f_0(col_0),f_1(col_1),...,f_n(col_n)]
>
> Well, this function `matrix-apply` does not seem to exist and my attempt at
> implementing it feels clunky to say the least (ex: fs is not a vector):
>
> (define (matrix-apply fs m)
>   (cond [(= (length fs) (matrix-num-cols m))
>  (matrix-augment
>   (map (λ (f_col)
>  (apply
>   (λ (mat) (matrix-map (car f_col) mat))
>   (cdr f_col)))
>(zip
> fs
> (matrix-cols m2]
> [#t (error fs)]))
>
> (define m2 (matrix [[1 2 3 4]
> [1 2 3 4]]))
>
> (matrix-apply (list sqr sqr sqr sqr) m2)
>
> => (array #[#[1 4 9 16] #[1 4 9 16]])
>
>
> Am I missing the elephant in the corridor? Is an implementation floating
> somewhere?
>
> Thx!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


Re: [racket-users] Writing binary data

2016-10-18 Thread David Storrs
Nice.  Thanks, Tony.

On Tue, Oct 18, 2016 at 11:27 AM, Tony Garnock-Jones 
wrote:

> On 10/18/2016 12:27 AM, David Storrs wrote:
> > On Mon, Oct 17, 2016 at 8:39 PM, Sam Tobin-Hochstadt
> > > wrote:
> > I think the `integer->integer-bytes` function is probably what you
> want.
> >
> > Thanks Sam, that does the trick.
>
> You might also find the `bitsyntax` package useful:
> https://pkgn.racket-lang.org/package/bitsyntax
>
> Here's a snippet from an ELF image writer:
>
>   (bit-string ((hash-ref strtab-index name) :: little-endian bits 32)
>   ((symbol-scope->number scope) :: little-endian bits 4)
>   ((symbol-type->number type) :: little-endian bits 4)
>   (0 :: little-endian bits 8) ;; st_other, reserved
>   ((section->number section) :: little-endian bits 16)
>   (value :: little-endian bits 64)
>   (size :: little-endian bits 64))
>
> (There's `bit-string-case` for taking binary blobs apart, too.)
>
> Tony
>

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


Re: [racket-users] Writing binary data

2016-10-18 Thread Tony Garnock-Jones
On 10/18/2016 12:27 AM, David Storrs wrote:
> On Mon, Oct 17, 2016 at 8:39 PM, Sam Tobin-Hochstadt
> > wrote:
> I think the `integer->integer-bytes` function is probably what you want.
> 
> Thanks Sam, that does the trick. 

You might also find the `bitsyntax` package useful:
https://pkgn.racket-lang.org/package/bitsyntax

Here's a snippet from an ELF image writer:

  (bit-string ((hash-ref strtab-index name) :: little-endian bits 32)
  ((symbol-scope->number scope) :: little-endian bits 4)
  ((symbol-type->number type) :: little-endian bits 4)
  (0 :: little-endian bits 8) ;; st_other, reserved
  ((section->number section) :: little-endian bits 16)
  (value :: little-endian bits 64)
  (size :: little-endian bits 64))

(There's `bit-string-case` for taking binary blobs apart, too.)

Tony

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


Re: [racket-users] Writing binary data

2016-10-18 Thread Doug Williams
David pointed out that I failed to do a reply all when I pointed him to the
packed-binary package on PLaneT that does what he wants. Here is the text
of that post in case anyone else ever needs it.

I have a packed-binary package on PLaneT that we use for for reading binary
data based on a similar capability in Python. It can read or write from
byte strings or directly to/from binary files. It uses format strings to
define the data types to read:

Character

C Type

Racket

x

pad byte

no value

c

char

char

b

signed char

integer

B

unsigned char

integer

h

short

integer

H

unsigned short

integer

i

int

integer

I

unsigned int

integer

l

long

integer

L

unsigned long

integer

q

long long

integer

Q

unsigned long long

integer

f

float

real

d

double

real

s

char[]

string

and for byte order, size, and alignment:

Character

Byte Order

Size and Alignment

@

native

native

=

native

standard

<

little endian

standard

>

big endian

standard

!

network (big endian)

standard
The documentation is at https://planet.racket-lang.
org/package-source/williams/packed-binary.plt/1/5/planet-doc
s/packed-binary/index.html.

And the PLaneT entry is at https://planet.racket-lang.
org/display.ss?package=packed-binary.plt=williams=2.

On Mon, Oct 17, 2016 at 6:38 PM, David Storrs 
wrote:

> What is the best way to write binary data such that I have control of the
> representation?  Basically, I want the Racket equivalent of the Perl 'pack
> ' and 'unpack
> '
> functions, where I can do:  pack('C', 202) and get back a one-byte binary
> representation of the decimal number 202 (or pack('s', 202) to get a 2-byte
> version) that I could then write to a port.
>
> The reason that I'm looking for this is that I'm going to be writing
> binary data across the network and I want to be able to control the
> representation.  For a fairly trivial example, I want to be able to decide
> how many bytes the number 202 should take up.[1]   Furthermore, I'd like to
> have an easy way to do quick and dirty testing; I thought that writing to a
> byte string would be that way, but I'm not having much success with it, as
> I haven't figured out how to make things go in as raw bytes instead of
> strings.
>
> I've looked at fasl, binary-class, the implementation of protobuf, and
> everything in the racket-lang docs that I could think of keywords for, with
> no luck.  This feels like it should be a straightforward task, so I'm
> frustrated with myself for not figuring it out more quickly.
>
>
> [1] I keep using the number 202 because that's the size of one particular
> message that I'm using in my text script and I'm trying to do RLE on it.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

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


Re: [racket-users] DrRacket et al not starting in Sierra (10.12)?

2016-10-18 Thread Geoffrey Knauth
On Tuesday, October 18, 2016 at 9:44:56 AM UTC-4, Matthew Flatt wrote:
> Nightly builds are not currently signed, so Sierra doesn't like them.
> 
> Try this: Using Finder, drag the DrRacket icon out of its folder. Then
> drag it back in place. Then try double-clicking DrRacket. (Yes, that's
> weird.)

Ha!  Fighting weirdness with weirdness.  I got it to work, but it was slightly 
more complicated:

When I dragged the icon out of its folder to the Desktop, it created a link 
instead.  I got rid of the link on the Desktop, since that wasn't what I was 
aiming for.

When I dragged the icon *up*, to the level above where it was, and then back in 
its folder, those moves worked (as moves), but double-clicking didn't work.  
However, right-menu Open did work, and after that double-click worked, and 
having it in my dock and clicking on it worked.

So I'm all set.  Thanks!

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


Re: [racket-users] DrRacket et al not starting in Sierra (10.12)?

2016-10-18 Thread Matthew Flatt
Nightly builds are not currently signed, so Sierra doesn't like them.

Try this: Using Finder, drag the DrRacket icon out of its folder. Then
drag it back in place. Then try double-clicking DrRacket. (Yes, that's
weird.)

At Tue, 18 Oct 2016 06:42:26 -0700 (PDT), Geoffrey Knauth wrote:
> Can the nightly builds be double-clicked to open, as with the pre-releases?  
> I 
> just downloaded a nightly build (20161018-ddf6985, v6.7.0.1 for Mac OS X 
> 64-bit Intel), I'm running Sierra, and it doesn't seem to open on 
> double-click.  So far, Sierra has been a little weird.
> 
> Geoff
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

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


Re: [racket-users] DrRacket et al not starting in Sierra (10.12)?

2016-10-18 Thread Geoffrey Knauth
Can the nightly builds be double-clicked to open, as with the pre-releases?  I 
just downloaded a nightly build (20161018-ddf6985, v6.7.0.1 for Mac OS X 64-bit 
Intel), I'm running Sierra, and it doesn't seem to open on double-click.  So 
far, Sierra has been a little weird.

Geoff

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


[racket-users] .Net Developer@Houston, TX

2016-10-18 Thread Santosh kumar Nityo
Hi,

Hope you doing Well !!!

Here is our Implementing partner Requirement, Please go through the below
requirement and send us suitable consultant with their updated resume,
rates and Contact details ..



*Role: **.Net Developer With Exp. Business Object Project*

*Location: **Houston, TX*

*Work Duration:** 6 months *

*Years of Experience: 8+*

*Note: We need Photo id and visa copy (H1B)*
* Job Description:*

Need a person with good .NET *skill set for a BO project* in Houston, TX.

Candidate should be aware of ASP.NET,

MVC,

C Sharp,

Entity framework,

WCF,

Web API

and SQL server







*If I'm not available over the phone, best way to reach me in email...*





[image: cid:image001.jpg@01D0BE16.B9DD7240]



Nityo Infotech Corp.
666 Plainsboro Road,

Suite 1285

Plainsboro, NJ 08536

*Santosh Kumar *

*Technical Recruiter*

Desk No-609-853-0818 Ext-2170
Fax :   609 799 5746

kuntal.sant...@nityo.com
www.nityo.com


--

USA | Canada | India | Singapore | Malaysia | Indonesia | Philippines |
Thailand  | UK | Australia / Zealand
--

*Nityo Infotech has been rated as One of the top 500 Fastest growing
companies by INC 500*
--

*Disclaimer:* http://www.nityo.com/Email_Disclaimer.html
--

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


Re: [racket-users] #lang video

2016-10-18 Thread hashim muqtadir
Thanks, everyone, good to know that not only will we be getting the videos soon 
but that we have a new #lang for them as well. Maybe next RacketCon Leif will 
be giving a talk on #lang video :)

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