Re: [racket-users] Intro and projects inquiry
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
> > 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
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
On Wed, Oct 11, 2017 at 2:58 PM Neil Van Dykewrote: > > * 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
> On Oct 11, 2017, at 2:56 PM, George Neunerwrote: > > 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
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
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
On Wed, 11 Oct 2017 11:19:36 -0700, Alexis Kingwrote: >> 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
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. Bowmanwrote: > 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
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 Griffiswrote: > > 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
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?
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
> 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
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.