Re: [racket-users] Intro and projects inquiry

2017-10-11 Thread Neil Van Dyke

Eric Griffis wrote on 10/11/2017 07:44 PM:
On Wed, Oct 11, 2017 at 2:58 PM Neil Van Dyke > wrote:



* Being there soon with a Web Assembly and HTML5 plus server
full-stack
story, in case developers respond favorably to that.


Web back-ends are my wheelhouse. It sure would make my professional 
life easier... Not gonna lie, this isn't something I'd look forward to 
banging out alone.


There are some scalable HTTP protocol handling things I'd like to try, 
including some hardcore systems-ish programming, and then multiple 
parties (including me) could layer independent framework-y things over 
that (server-side-only, and client-side-too).


The WebAssembly part is what might be an emerging opportunity, but am 
guessing the best way involves working with the tentative new Chez 
backend for Racket.  (Also, WebAssembly didn't look very simple nor yet 
as well-documented as you'd want, and looks still being hammered out.  
So, knowing how adopted Web standards tend to happen... you might have 
to put in considerable effort to catch up with and track it, buy a 
gorilla suit, munch some beetle grubs[1], and hopefully become accepted 
by the pack, to be confident that Racket will be a first-class citizen 
in WebAssembly.)



* Push DSL-based programming, for which Racket might already have the
best technology.  (The other day, I saw someone looking to hire
developers to use some DSL-based speculative methodology thing...
in Ruby.)


This might also be interesting. Any concrete demand out there to drive 
the process?


Chattering about DSLs now seems mainstream.  Also, Agile-esque upstart 
methodologists are always clamoring to invent and brand approaches, now 
including applications of DSLs. :)


(DSLs can be little mini-languages used by programmers as part of any 
kind of programming, they can be used by programmers mix traditional 
language paradigms in a code base, they can be used to support domain 
experts/specialists capturing and maintaining knowledge/behavior 
separate from programmers.)




The Godot game engine is kinda like this, but for Python. It has a lot 
of rough edges, which could help design a good Racket alternative. 
There may be a ton of reusable functionality in a project like that.


Over a decade ago, someone was actually doing game engine-ish stuff 
using PLT Scheme (earlier version of Racket), to, IIRC, develop a 3D 
training simulator for first-responders in emergency scenarios.  It 
might've used the open-sourced Quake engine, or just built atop OpenGL; 
I forget whether I heard.  At the time, I guess a Lisp was a big enough 
win for that, and there were a lot fewer and more primitive 3D game 
engines, that it made sense.  Today, whenever there is again a win to 
using Racket, I'd probably end up taking an off-the-shelf (preferably 
libre-licensed) 3D game engine that met all the other requirements, and 
make it work well with Racket.


[1] Gary Larson, The Far Side, "So you're a *real* gorilla, are you? 
...". 
https://i.pinimg.com/736x/da/ed/ed/daeded47decfd2a200aca58b00a9d0e5.jpg


--
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] Intro and projects inquiry

2017-10-11 Thread Jack Firth

>
> Web back-ends are my wheelhouse. It sure would make my professional life 
> easier... Not gonna lie, this isn't something I'd look forward to banging 
> out alone.
>

I've been looking into web stuff for Racket quite a bit, specifically web 
microservices. Shoot me an email if you're interested in more details.

-- 
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] Re: Thank you all for letting me speak

2017-10-11 Thread Charles Earl
Really enjoyed your presentation David, Thankyou!

Charles

On Sunday, October 8, 2017 at 3:26:12 PM UTC-4, David K. Storrs wrote:
>
> I'd like to thank the organizers of (seventh racketcon) for allowing 
> me to speak.  I would also like to thank the kind people who came up 
> to me afterwards and said that they enjoyed the speech, asked 
> questions, and/or suggested improvements.  As I said in the talk, the 
> community is the most powerful and wonderful thing about Racket. 
>
> My slides were minimal, but anyone who would like them is welcome: 
>
>  https://tinyurl.com/David-Storrs-7th-RacketCon 
>

-- 
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] Intro and projects inquiry

2017-10-11 Thread Eric Griffis
On Wed, Oct 11, 2017 at 2:58 PM Neil Van Dyke  wrote:

>
> * Being there soon with a Web Assembly and HTML5 plus server full-stack
> story, in case developers respond favorably to that.
>

Web back-ends are my wheelhouse. It sure would make my professional life
easier... Not gonna lie, this isn't something I'd look forward to banging
out alone.


> * Push DSL-based programming, for which Racket might already have the
> best technology.  (The other day, I saw someone looking to hire
> developers to use some DSL-based speculative methodology thing... in Ruby.)
>

This might also be interesting. Any concrete demand out there to drive the
process?

* Find other application or technology niches that people want right
> now, and figure out some value-added support for them other than SaaS
> bindings that everyone else is doing.  Deep learning and other machine
> learning, traditional scientific/stats programming and visualization,
> voice AI-ish assistants, FPS video game engines, GPU targeting, etc.
>

The Godot game engine is kinda like this, but for Python. It has a lot of
rough edges, which could help design a good Racket alternative. There may
be a ton of reusable functionality in a project like that.

Thanks, Neil!

Eric

-- 
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] racket/match a dictionary

2017-10-11 Thread Alexis King
> On Oct 11, 2017, at 2:56 PM, George Neuner  wrote:
> 
> Hmm.  For completeness?   I'm having trouble imaging why you'd want to
> match a literal hash table.  Or boxes.  The other options make more
> sense.  Oh well.

Imagine you’re parsing some JSON. You could parse the JSON into Racket
data structures using string->jsexpr, then use match to extract the data
into bindings:

  (match (string->jsexpr some-json-data)
[(hash-table ['name name]
 ['age age])
 (list name age)])

This turns out to be enormously useful, especially when combined with
other match patterns.

Alexis

-- 
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] Intro and projects inquiry

2017-10-11 Thread Daniel Prager
Great topic!

Providing examples and tutorials around data analysis and visualisation in
Racket (and filling gaps and simplifying) gets my vote.

Another area that might be interesting is generating data-driven web-sites:
e.g. presenting questionnaires and quizzes.

I recently did a bit of consulting  work where I used:

   1. Racket to do some data preparation
   2. Google Forms to run a questionnaire based on the data (SurveyMonkey
   would have been an alternative)
   3. Racket to do some collation and data crunching on the answers
   4. Google Sheets to do some simple visualisation  (mainly for the heat
   mapping feature)
   5. gmail to assemble reports and post the results

It would have been very nice to replace some of the semi-manual non-Racket
steps with all-Racket or Racket-scripted (taking to external APIs).

Dan

-- 
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] Intro and projects inquiry

2017-10-11 Thread Neil Van Dyke

Welcome, Eric.

That "Intro Projects" github wiki page doesn't really distinguish 
between "here's a very beginner exercise for learning experience", 
"here's something that might be fun for you to do, and maybe someone 
else will use it someday", and "doing this would likely advance Racket 
significantly".


To respond to your question, some big things that would help make people 
reach for Racket first:


* Being there soon with a Web Assembly and HTML5 plus server full-stack 
story, in case developers respond favorably to that.


* Add support for developing general purpose slick iOS and Android apps 
easily (unfortunately, these effectively proprietary platforms with 
greedy app stores are very popular at the moment).


* Add support for developing certain kinds of money-making games (not 
general purpose apps) for iOS and Android (there is some money there, 
retro-looking graphics are OK, and students might be excited that their 
learning game school project can be launched in the app stores).


* Push DSL-based programming, for which Racket might already have the 
best technology.  (The other day, I saw someone looking to hire 
developers to use some DSL-based speculative methodology thing... in Ruby.)


* Find other application or technology niches that people want right 
now, and figure out some value-added support for them other than SaaS 
bindings that everyone else is doing.  Deep learning and other machine 
learning, traditional scientific/stats programming and visualization, 
voice AI-ish assistants, FPS video game engines, GPU targeting, etc.


* Simply doing a successful startup, and using Racket.  This gets Racket 
work paid for, you contribute back improvements motivated by real-world 
needs, and you talk in startup founder forums about how Racket was a win 
in some way.  Then we see whether it's still true that the startup does 
their initial version in a Lisp, then Yahoo buys it and rewrites it in 
Java. :)


* Similar to the startup bullet above, do "pilot projects" in Racket at 
your current company, or do your academic research with it.  One of the 
keys is to just use it, and the other key is to have funding for just 
using 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.


[racket-users] Re: racket/match a dictionary

2017-10-11 Thread George Neuner
On Wed, 11 Oct 2017 11:19:36 -0700, Alexis King
 wrote:

>> On Oct 11, 2017, at 11:10 AM, George Neuner 
>> wrote:
>> 
>> My (maybe wrong) reading of the docs suggests that to match a hash
>> table, the table must be defined inline in the match clause.
>
>This isn’t really accurate. The hash-table match pattern matches a hash
>table itself, but it sounds like you want to do something else, wanting
>to use a separate, known dictionary as a lookup table for
>pattern-matching.

Hmm.  For completeness?   I'm having trouble imaging why you'd want to
match a literal hash table.  Or boxes.  The other options make more
sense.  Oh well.

>To do this, you probably want the `app` match pattern:
>
>[(app (lambda (e) (dict-ref mydict e #f)) (? values val))
> ]
>
>That pattern will bind `val` to the result if it exists in the
>dictionary (and is non-#f). If you wanted this to be cleaner, you could
>wrap that pattern into a separate match expander.

I wish I'd been able to figure that out on my own.  Perhaps there
should be another example that shows catching result value(s) and
doing something with them.

Thank you!  
George

-- 
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] Intro and projects inquiry

2017-10-11 Thread Eric Griffis
Thanks for the quick reply. My goal is to make Racket more relevant for
general engineering and application development.

For example, I asked my scientist brother why he's using Python instead of
Racket on his next project. His response:

"but would I have to write my own routines for calculating mahalanobis
distance, or jensen-shannon entropy with bootstrap correction?"

Apologies for any confusion.

Eric


On Wed, Oct 11, 2017, 1:30 PM William J. Bowman 
wrote:

> Eric,
>
> I don’t mean to inadvertently kill any conversations, but I wanted to
> point out that there is an existing list of Racket projects on the Racket
> GitHub wiki:
>   https://github.com/racket/racket/wiki/Intro-Projects
>
> It hasn’t seen an update in a while, so some of those may be solved or
> have others working on them, but if you’re looking for projects I’d start
> by looking there.
>
> —
> William J. Bowman
>
> > On Oct 11, 2017, at 10:12 PM, Eric Griffis  wrote:
> >
> > Hello,
> >
> > My name is Eric and I love Racket.
> >
> > I am 39 years old and have been writing software for 30 years. I studied
> metaprogramming and taught programming languages as a grad student. My sole
> academic publication is on semantics and provenance for distributed data
> science tools. These days, I teach elementary school kids why and how to
> care about "coding," which means so much more than just banging out text.
> >
> > Racket is special to me because it makes programming fun again. When
> it's time to get real work done, I want more people to reach for Racket
> first. This is my goal, so I'm making this call for projects or project
> ideas as a conversation starter.
> >
> > Does a killer app or library sorely need a Racket alternative?
> >
> > Do you dread certain tasks that have you reaching for Python or
> JavaScript, or worse?
> >
> > Is your professional community holding out on adopting Racket, and do
> you know why?
> >
> > Any amazing projects pitched at the conference?
> >
> > I enjoyed following the graph drawing thread a few weeks ago. A serious
> attempt at "better than graphviz" could be fun and worthwhile.
> >
> > Eric
> >
> > --
> > 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] Intro and projects inquiry

2017-10-11 Thread 'William J. Bowman' via Racket Users
Eric,

I don’t mean to inadvertently kill any conversations, but I wanted to point out 
that there is an existing list of Racket projects on the Racket GitHub wiki:
  https://github.com/racket/racket/wiki/Intro-Projects

It hasn’t seen an update in a while, so some of those may be solved or have 
others working on them, but if you’re looking for projects I’d start by looking 
there.

—
William J. Bowman

> On Oct 11, 2017, at 10:12 PM, Eric Griffis  wrote:
> 
> Hello,
> 
> My name is Eric and I love Racket.
> 
> I am 39 years old and have been writing software for 30 years. I studied 
> metaprogramming and taught programming languages as a grad student. My sole 
> academic publication is on semantics and provenance for distributed data 
> science tools. These days, I teach elementary school kids why and how to care 
> about "coding," which means so much more than just banging out text.
> 
> Racket is special to me because it makes programming fun again. When it's 
> time to get real work done, I want more people to reach for Racket first. 
> This is my goal, so I'm making this call for projects or project ideas as a 
> conversation starter.
> 
> Does a killer app or library sorely need a Racket alternative?
> 
> Do you dread certain tasks that have you reaching for Python or JavaScript, 
> or worse?
> 
> Is your professional community holding out on adopting Racket, and do you 
> know why?
> 
> Any amazing projects pitched at the conference?
> 
> I enjoyed following the graph drawing thread a few weeks ago. A serious 
> attempt at "better than graphviz" could be fun and worthwhile.
> 
> Eric
> 
> -- 
> 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.


[racket-users] Intro and projects inquiry

2017-10-11 Thread Eric Griffis
Hello,

My name is Eric and I love Racket.

I am 39 years old and have been writing software for 30 years. I studied 
metaprogramming and taught programming languages as a grad student. My sole 
academic publication is on semantics and provenance for distributed data 
science tools. These days, I teach elementary school kids why and how to care 
about "coding," which means so much more than just banging out text.

Racket is special to me because it makes programming fun again. When it's time 
to get real work done, I want more people to reach for Racket first. This is my 
goal, so I'm making this call for projects or project ideas as a conversation 
starter.

Does a killer app or library sorely need a Racket alternative?

Do you dread certain tasks that have you reaching for Python or JavaScript, or 
worse?

Is your professional community holding out on adopting Racket, and do you know 
why?

Any amazing projects pitched at the conference?

I enjoyed following the graph drawing thread a few weeks ago. A serious attempt 
at "better than graphviz" could be fun and worthwhile.

Eric

-- 
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] FFI examples passing std c++ vectors?

2017-10-11 Thread Charles Earl
Hi,

Wondering if there are any examples of passing std c++ vectors of numeric 
data types through the foreign function library? I've just been using 
pointers to the array representation and wondered if there were a more 
elegant way. 

Charles

-- 
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] racket/match a dictionary

2017-10-11 Thread Alexis King
> On Oct 11, 2017, at 11:10 AM, George Neuner 
> wrote:
> 
> My (maybe wrong) reading of the docs suggests that to match a hash
> table, the table must be defined inline in the match clause.

This isn’t really accurate. The hash-table match pattern matches a hash
table itself, but it sounds like you want to do something else, wanting
to use a separate, known dictionary as a lookup table for
pattern-matching.

To do this, you probably want the `app` match pattern:

[(app (lambda (e) (dict-ref mydict e #f)) (? values val))
 ]

That pattern will bind `val` to the result if it exists in the
dictionary (and is non-#f). If you wanted this to be cleaner, you could
wrap that pattern into a separate match expander.

Alexis

-- 
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] racket/match a dictionary

2017-10-11 Thread George Neuner
Hi all,

I trying to match a dictionary of terms against free form input.  Many
of the dictionary entries have aliases, so I'm using a custom hash
table that matcheskeys by list membership.

My (maybe wrong) reading of the docs suggests that to match a hash
table, the table must be defined inline in the match clause.  This is
not really feasible because of the dictionary's size, so I am doing a
generic expression match instead: e.g., 

   ([list (? (lambda(e) (dict-ref mydict e #f)) pat)  _ ___]
  (let [(val (dict-ref mydict pat))]
 blah blah ))

This works ... but I have to do the lookup twice because match returns
the input pattern - i.e. the lookup key instead of the the resulting
value.

Is there a way to avoid double lookup?  If necessary I can switch to a
normal (equal?) hash table by constructing the dictionary differently,
but I don't see that I will gain anything by doing so.

Thanks,
George

-- 
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.