Re: [racket-dev] intro videos
On Jul 14, 2011, at 10:38 AM, Eli Barzilay wrote: > 9 hours ago, John Clements wrote: >> >> No, that's an entirely reasonable question, with an answer that's in >> the process of changing. >> >> First thing: you can use ESC-(. That is: press and release ESC, type >> (. That works, but it's a big pain. > > Use Alt-( -- much less pain. (And that works in Emacs regardless of > paredit, BTW.) Sigh... I believe that requires an "ESC" on the mac. But you're right, I should have specified that. John smime.p7s Description: S/MIME cryptographic signature _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
An hour ago, Neil Van Dyke wrote: > > Now, you can avoid the stretching by using alternate hands for this > two-key combination, if you have two Alt keys. (I always do that, and I'm picky enough with my keyboards that it takes much less than a missing left-side Alt key to make me deposit it in the nearest garbage bin.) > But the alternate-hands approach doesn't avoid stretching when you > get a Ctrl-Alt combination, which happens a lot in, say, Emacs. So, > if you forsee frequent Ctrl-Alt combinations And for that, I have my Emacs set with just Alt for all expression-related things, including movement (Alt-left and -right). Still using two hands. (And had I been using paredit, I'd make it do just that, and/or complain that it should use the more modern "bind to Y".) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
15 minutes ago, Guillaume Marceau wrote: > On Thu, Jul 14, 2011 at 1:42 PM, Eli Barzilay wrote: > > Yes -- paredit is exactly an attempt to get the always-balanced > > benefits of structured editing, without an actual structure editor. > > Yes, but paredit still gets its priorities backward. You want to > have the most commonly used edit operations on the easiest chords > (or without any chord at all, if you are trying to avoid RSI.) In > paredit, keystrokes to edit sexp are heavily chorded, and keystrokes > to edit single-characters are simple, even though single-char only > occur when fixing typos in identifiers, which is quite rare when > using auto-completion. I'm sorry, but this is a completely nonsensical complaint. paredit does not have any priorities of its own here, it is simply using the same exact key (-chords) that are used by default on Emacs. I guess that you can say that it has a priority: follow the standard Emacs keys. Given that it *is* an Emacs extension, doing anything other than this would be insane. Case-in-point: > Case-in-point, > Moving forward by one sexp in paredit is CTRL-ALT-F (ouch). In > DivaScheme it's just L. > Moving forward by two chars in paredit is RIGHT, RIGHT. In DivaScheme > it's W, RIGHT, RIGHT if paredit would have used vi-style modes, it would have been dead and burried years ago. In fact, *you* said that DivaScheme "wasn't very popular with the healthy-wristed". I appreciate the potential pain etc that people with RSI go through, but this is completely unrelated to what paredit does. Keeping it separate is important -- this way, you need one solution for structure editing and another for dealing with RSI -- and the only requirement on both sides is that they compose well. (In addition, RSI is not the only problem that affects keyboard use. What about different keyboard layouts? Different input devices?) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
Guillaume Marceau wrote at 07/15/2011 01:02 AM: One of the best such study is A Prospective Study of Computer Users, by Gerr, Marcus, Ensor, Cohen, Edwards, Gentry, Ortiz, Monteilh, AJIM 41:221-235 (2002) http://www3.interscience.wiley.com/journal/91016561/abstract Over a period of 38 months, they followed 632 computer professionals Interesting that their concluding list of recommendations you quoted, was almost entirely the common folk wisdom a decade earlier. :) The one factor in the folk wisdom that I recall at the moment, that wasn't mentioned in the quoted list, is stress. -- http://www.neilvandyke.org/ _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
On Thu, Jul 14, 2011 at 1:42 PM, Eli Barzilay wrote: > Yes -- paredit is exactly an attempt to get the always-balanced > benefits of structured editing, without an actual structure editor. Yes, but paredit still gets its priorities backward. You want to have the most commonly used edit operations on the easiest chords (or without any chord at all, if you are trying to avoid RSI.) In paredit, keystrokes to edit sexp are heavily chorded, and keystrokes to edit single-characters are simple, even though single-char only occur when fixing typos in identifiers, which is quite rare when using auto-completion. Case-in-point, Moving forward by one sexp in paredit is CTRL-ALT-F (ouch). In DivaScheme it's just L. Moving forward by two chars in paredit is RIGHT, RIGHT. In DivaScheme it's W, RIGHT, RIGHT On Fri, Jul 15, 2011 at 12:36 AM, Neil Van Dyke wrote: > > The reason has to do with the stress of stretching/twisting people do with > their hands for multi-key combination, is my layperson's understanding. > Around the time, when CTS and other RSIs were getting a lot of attention, I > heard this from multiple credible sources, and the knowledge seemed to work > for me. Yes. Any deviation of the wrist away from neutral by more than 5° correlates with higher incidence of RSI, and there are biological phenomenon that have been observed that give credence to a causal relationship. One of the best such study is A Prospective Study of Computer Users, by Gerr, Marcus, Ensor, Cohen, Edwards, Gentry, Ortiz, Monteilh, AJIM 41:221-235 (2002) http://www3.interscience.wiley.com/journal/91016561/abstract Over a period of 38 months, they followed 632 computer professionals who were pain-free at the beginning of the study. By observing who developed pain, and comparing their work habits to those of the pain-free workers, the study was able to measure the risk factors associated with many different postures or practices. Their recommendations were (starting with the most effective): Keep your elbows slightly open, at around 121° (reduced the risk by 84%) Leaves more than 12 cm between the edge of the table and the "J" key (... by 62%) Don't use your neck to hold the phone (... by 60%) Avoid keyboard wrist rests (... by 48%) Don't bend your wrists when holding the mouse. Keep it within 5° (... by 45%) Strike the keys with a light touch, with less than 48 g of pressure (... by 40%) Raise the screen so that your neck tilt by less than 3° (... by 36%) Rest your elbows or forearms on the chair armrests, or on the desk itself (... by 35%) Use a keyboard that is less than 3.5 cm thick (... by 35%) Keep the keyboard slightly lower than your elbows (... by 23%) Avoid resting your hands on the leading edge of your desk, or pad the edge (... by 22%) The highest incidences were for females, for people over 30, and for people who type more than 20 hours per week. The risk factor of these groups was about twice that of the general population. I have an entire article on RSI on my website, for people who are interested: http://gmarceau.qc.ca/articles/your-wrists-hurt-you-must-be-a-programmer.html _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
Unfinished sentence: if you foresee frequent "Ctrl-Alt-" combinations, it might be easier to learn or teach just always doing "ESC" instead of "Alt-", rather than doing "Alt-" for 2-key and but doing "ESC Ctrl-" to avoid the 3-key. Neil Van Dyke wrote at 07/15/2011 12:36 AM: Eli Barzilay wrote at 07/14/2011 10:38 AM: 9 hours ago, John Clements wrote: First thing: you can use ESC-(. That is: press and release ESC, type (. That works, but it's a big pain. Use Alt-( -- much less pain. (And that works in Emacs regardless of paredit, BTW.) On a tangent, but an important one: 1. Text editors that involve Alt- combinations a lot should also support ESC. 2. People should be warned that the "ESC (" (two keypresses) might be *a lot* easier on their hands than "Alt-(" (multi-key combinations). 3. Other things you can do to make typing easier on the hands might be good, though there are tradeoffs. The reason has to do with the stress of stretching/twisting people do with their hands for multi-key combination, is my layperson's understanding. Around the time, when CTS and other RSIs were getting a lot of attention, I heard this from multiple credible sources, and the knowledge seemed to work for me. Now, you can avoid the stretching by using alternate hands for this two-key combination, if you have two Alt keys. But the alternate-hands approach doesn't avoid stretching when you get a Ctrl-Alt combination, which happens a lot in, say, Emacs. So, if you forsee frequent Ctrl-Alt combinations I had hand pain from typing, circa 1990, but I made a few changes, like switching to use ESC in Emacs. Something in those changes solved the problem, and years later I can still type heavily without difficulty. Back then, I was on a project team that had two people injure their hands from typing, to the point that they were advised not to type *at all* or they would lose all use of their hands. We hired typists for them, and eventually they had to change careers. Most of the rest of the team had wrist braces by the end. It happens; we weren't really designed to sit down and press little squares a hundred times per minute, all day. -- http://www.neilvandyke.org/ _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
Eli Barzilay wrote at 07/14/2011 10:38 AM: 9 hours ago, John Clements wrote: First thing: you can use ESC-(. That is: press and release ESC, type (. That works, but it's a big pain. Use Alt-( -- much less pain. (And that works in Emacs regardless of paredit, BTW.) On a tangent, but an important one: 1. Text editors that involve Alt- combinations a lot should also support ESC. 2. People should be warned that the "ESC (" (two keypresses) might be *a lot* easier on their hands than "Alt-(" (multi-key combinations). 3. Other things you can do to make typing easier on the hands might be good, though there are tradeoffs. The reason has to do with the stress of stretching/twisting people do with their hands for multi-key combination, is my layperson's understanding. Around the time, when CTS and other RSIs were getting a lot of attention, I heard this from multiple credible sources, and the knowledge seemed to work for me. Now, you can avoid the stretching by using alternate hands for this two-key combination, if you have two Alt keys. But the alternate-hands approach doesn't avoid stretching when you get a Ctrl-Alt combination, which happens a lot in, say, Emacs. So, if you forsee frequent Ctrl-Alt combinations I had hand pain from typing, circa 1990, but I made a few changes, like switching to use ESC in Emacs. Something in those changes solved the problem, and years later I can still type heavily without difficulty. Back then, I was on a project team that had two people injure their hands from typing, to the point that they were advised not to type *at all* or they would lose all use of their hands. We hired typists for them, and eventually they had to change careers. Most of the rest of the team had wrist braces by the end. It happens; we weren't really designed to sit down and press little squares a hundred times per minute, all day. -- http://www.neilvandyke.org/ _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
5 minutes ago, Guillaume Marceau wrote: > On Thu, Jul 14, 2011 at 10:38 AM, Eli Barzilay wrote: > > > > A proper thing would need to do much more, something like paredit. > > Or DivaScheme, but without its edit-mode/insert-mode. Though the > modalness was a life saver for people with RSI, and wasn't very > popular with the healthy-wristed. Yes -- paredit is exactly an attempt to get the always-balanced benefits of structured editing, without an actual structure editor. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
On Thu, Jul 14, 2011 at 10:38 AM, Eli Barzilay wrote: > > A proper thing would need to do much more, something like paredit. Or DivaScheme, but without its edit-mode/insert-mode. Though the modalness was a life saver for people with RSI, and wasn't very popular with the healthy-wristed. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
9 hours ago, John Clements wrote: > > No, that's an entirely reasonable question, with an answer that's in > the process of changing. > > First thing: you can use ESC-(. That is: press and release ESC, type > (. That works, but it's a big pain. Use Alt-( -- much less pain. (And that works in Emacs regardless of paredit, BTW.) > Second thing: Until two days ago, I'd been using the keybindings > file that I attach below, so that this keystroke becomes simply > (. While making these videos, though, I found that I *really* wanted > to be able to give people a simple way to do this. As a result, > I've now added a preference to DrRacket called "enable automatic > parentheses." It's available as part of the development build now, > but it probably won't be a part of the 5.1.2 release. It should > definitely be a part of the 5.1.3 release. A proper thing would need to do much more, something like paredit. (And re the [ problem -- IMO it makes sense to have the two options mutually exclusive.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
> Date: Wed, 13 Jul 2011 09:16:16 -0700 > From: John Clements > Subject: [racket-dev] intro videos > > Frustrated by what I'm seeing on khanacademy.org, I've now recorded 8 *short* > videos on > getting started programming in DrRacket. I looked at most of the videos and like them. For what they are trying to do, they are doing it well. Thanks, John, for the initiative on this! I said "for what they are trying to do" because we ideally need to complement these with some higher-level material on where one would go with what one might learn in John's videos. The material that we cover in an intro lecture, before teaching students the mechanics. With the combination, we might have something that helps draw people into DrRacket. Right now, John's videos will be most useful to people already drawn in who want to learn what to do. I actually sent mail around within the Bootstrap squad just two weeks ago about a high level "how to make a world" video, similar to an intro lecture for the PbD workshops. I'm currently redesigning my intro lecture for next week's workshop. If it goes over well, I'll look into making a video version of it to complement John's. Kathi _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
On Jul 13, 2011, at 11:04 PM, Guillaume Marceau wrote: > On Thu, Jul 14, 2011 at 1:29 AM, John Clements > wrote: >> As a result, I've now added a preference to DrRacket called "enable >> automatic parentheses." > > On my machine, I get a pair when I press ( or {, but not with [. I am > seeing the intended behavior? Desired, no. Expected, yes. Overriding [ is harder because of smart parentheses. Yes, combining the paren-matching code with the smart-paren code is probably the right solution, and Robby suggested it to me. I just took a quick look at that code and it still looks pretty hairy. > > Do you intend to make closing ) ] and } skip over a closing > parenthesis? What the right behavior should be in this case is a bit > subtle, but it's worth getting it just right. You might what to > inspect how Eclipse does it. Is it worth getting it right? It would be nice, I agree. Eclipse's behavior seems downright inconsistent, to me; its behavior appears to depend on how quickly you type. John smime.p7s Description: S/MIME cryptographic signature _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
On Thu, Jul 14, 2011 at 10:59 AM, John Clements wrote: > > > No, that's an entirely reasonable question, with an answer that's in the > process of changing. > > First thing: you can use ESC-(. That is: press and release ESC, type (. That > works, but it's a big pain. > Second thing: Until two days ago, I'd been using the keybindings file that I > attach below, so that this keystroke becomes simply (. While making these > videos, though, I found that I *really* wanted to be able to give people a > simple way to do this. As a result, I've now added a preference to DrRacket > called "enable automatic parentheses." It's available as part of the > development build now, but it probably won't be a part of the 5.1.2 release. > It should definitely be a part of the 5.1.3 release. > > In the meantime, you can enable these bindings by choosing the "Add > User-defined Keybindings..." option, and referring to the file that I attach > here. > > Thanks for your question! > > I'm actually forwarding this response to dev anyway---hope you don't mind. Thanks a lot, John. I sync with the git repo every day and but usually build only the releases I see in the changelog. I will try building it tonight and meanwhile use your key bindings. Thanks a lot, again. -- Ramakrishnan _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
On Jul 13, 2011, at 5:22 PM, Ramakrishnan Muthukrishnan wrote: > On Wed, Jul 13, 2011 at 9:46 PM, John Clements > wrote: >> >> http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A > > I just saw one video and liked it. Can you tell us how you are getting > the emacs paredit like automatic matched parantheses with the > automatic placement of cursor inside the parantheses? I could not find > such an option in my DrRacket preferences. I am running 5.1.1.8. > (Didn't post to the list as it is a -dev list and didn't want to ask > this silly question to the crowd which is otherwise involved in high > quality discussions) No, that's an entirely reasonable question, with an answer that's in the process of changing. First thing: you can use ESC-(. That is: press and release ESC, type (. That works, but it's a big pain. Second thing: Until two days ago, I'd been using the keybindings file that I attach below, so that this keystroke becomes simply (. While making these videos, though, I found that I *really* wanted to be able to give people a simple way to do this. As a result, I've now added a preference to DrRacket called "enable automatic parentheses." It's available as part of the development build now, but it probably won't be a part of the 5.1.2 release. It should definitely be a part of the 5.1.3 release. In the meantime, you can enable these bindings by choosing the "Add User-defined Keybindings..." option, and referring to the file that I attach here. Thanks for your question! I'm actually forwarding this response to dev anyway---hope you don't mind. John Clements jbc-keybindings.ss Description: Binary data smime.p7s Description: S/MIME cryptographic signature _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
I enjoyed your videos. Very nice. Can you do something about the missing menu bar? Also had a look to the first two videos of the computer science section of khanacademy.org. The second one, because it is not functional, immediately has to discern objects from copies of objects, which seems a very good way to frighten beginning students off. I understand your frustation and did not proceed to the other vidios of the computer science section of khanacademy.org. Do you intend to follow up on your videos? Jos -Original Message- From: dev-boun...@racket-lang.org [mailto:dev-boun...@racket-lang.org] On Behalf Of John Clements Sent: miércoles, 13 de julio de 2011 18:16 To: plt-dev Developers Subject: [racket-dev] intro videos Frustrated by what I'm seeing on khanacademy.org, I've now recorded 8 *short* videos on getting started programming in DrRacket. http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A It gets through about half of the first page of HtDP 2e. I'm trying to stress those things--interface details, understanding error messages--that are a better fit for video. Comments welcome. John _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
There are 11'000 subscribers in the http://www.reddit.com/r/learnprogramming forums. Its very active and well loved. It was created shortly after guy called Carl Herold started http://www.reddit.com/r/carlhprogramming, where he gives free programming lessons (in C, its horrific a bit). He has another 10'000 subscribers. If you play your cards right, it should be possible to tailor these videos to draw some of that crowd to your lessons. On Wed, Jul 13, 2011 at 1:17 PM, Jens Axel Søgaard wrote: > Great initiative. Already subscribed. > * the sound is good > * the resolution (except the first one) is great > * perhaps mention that option and command is called alt and mumble on > Windows > (or add an annotation (using the YouTube editor) to the video, so you > don't have to reshoot) > * If you are using ScreenFlow to record the videos, you could let > it show the keyboard shortcuts. > * the short length is good > Do you happen to have a tablet? If so you could use together with OmniDazzle > to write on top of the DrRacket screen. > See for example > http://www.youtube.com/watch?v=TVc2tmsZfFg > where Paul Anderson uses it to write on top of a Keynote presentation. > Keep 'em coming. > -- > Jens Axel Søgaard > > 2011/7/13 John Clements >> >> Frustrated by what I'm seeing on khanacademy.org, I've now recorded 8 >> *short* videos on getting started programming in DrRacket. >> >> http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A >> >> It gets through about half of the first page of HtDP 2e. I'm trying to >> stress those things--interface details, understanding error messages--that >> are a better fit for video. >> >> Comments welcome. >> >> John >> >> >> _ >> For list-related administrative tasks: >> http://lists.racket-lang.org/listinfo/dev > > > > -- > -- > Jens Axel Søgaard > > > > _ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev > _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
Great initiative. Already subscribed. * the sound is good * the resolution (except the first one) is great * perhaps mention that option and command is called alt and mumble on Windows (or add an annotation (using the YouTube editor) to the video, so you don't have to reshoot) * If you are using ScreenFlow to record the videos, you could let it show the keyboard shortcuts. * the short length is good Do you happen to have a tablet? If so you could use together with OmniDazzle to write on top of the DrRacket screen. See for example http://www.youtube.com/watch?v=TVc2tmsZfFg where Paul Anderson uses it to write on top of a Keynote presentation. Keep 'em coming. -- Jens Axel Søgaard 2011/7/13 John Clements > Frustrated by what I'm seeing on khanacademy.org, I've now recorded 8 > *short* videos on getting started programming in DrRacket. > > http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A > > It gets through about half of the first page of HtDP 2e. I'm trying to > stress those things--interface details, understanding error messages--that > are a better fit for video. > > Comments welcome. > > John > > > _ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev > -- -- Jens Axel Søgaard _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] intro videos
On Jul 13, 2011, at 12:16 PM, John Clements wrote: > Frustrated by what I'm seeing on khanacademy.org, I've now recorded 8 *short* > videos on getting started programming in DrRacket. > > http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A I've started adding some videos to picturingprograms.org (under "Worked Exercises"). So far they're mostly to illustrate the desired behavior of an animation assignment, but I plan to also do some whose main purpose is to demonstrate the design recipe. See http://picturingprograms.com/worked-exercises/aug2010/ > Comments welcome. I'll take a look. I too would appreciate comments :-) Stephen Bloch sbl...@adelphi.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] intro videos
Frustrated by what I'm seeing on khanacademy.org, I've now recorded 8 *short* videos on getting started programming in DrRacket. http://www.youtube.com/playlist?list=PLD0EB7BC8D7CF739A It gets through about half of the first page of HtDP 2e. I'm trying to stress those things--interface details, understanding error messages--that are a better fit for video. Comments welcome. John smime.p7s Description: S/MIME cryptographic signature _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev