Support for butterfly editing

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Support for butterfly editing

Raffael Mancini-2
Hi *,

In order to maintain the reputation of emacs as being a text shell
capable of accomplishing the most difficult tasks, I've written a
small function that will finally add support for the now famous
butterfly button as described in http://xkcd.com/378/.

(defun butterfly ()
  "This function is designed to be used only be the most\
proficient hackers on earth. If equipped with a butterfly key,
it\ should be bound to C-x M-c M-butterfly (for further
information please refer to http://xkcd.com/378/"
  (interactive)
  (if (yes-or-no-p "Do you really want to unleash the powers of the butterfly? ")
      (progn
        (message "Amazing physics going on...")
        (sit-for (* 5 (/ (abs (random)) (float most-positive-fixnum))))
        (message "Successfully flipped one bit!"))
    (message "Well, then go to www.xkcd.com!")))

I ask the gnu emacs dev team to either add that function to gnu emacs
or if my implementation is not polished enough implement it in
another way.

This would be another great example where an xkcd comic kind of
materializes (http://wetriffs.com/ is the first) and would maybe open
emacs to a broader audience.

Kind regards,
Raffael Mancini

PS: Please don't tear me in pieces for this. If not appropriate just
ignore this mail.


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for butterfly editing

Jason Rumney-4
[hidden email] wrote:
> (message "Amazing physics going on...")
> (sit-for (* 5 (/ (abs (random)) (float most-positive-fixnum))))
>  

It might be more interesting to use animate or zone here, to show the
amazing physics happening.



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for butterfly editing

martin rudalics
In reply to this post by Raffael Mancini-2
 >   "This function is designed to be used only be the most\
 > proficient hackers on earth. If equipped with a butterfly key,
 > it\ should be bound to C-x M-c M-butterfly (for further
 > information please refer to http://xkcd.com/378/"

With this doc-string C-h f RET butterfly RET gives on my system


butterfly is an interactive Lisp function.
(butterfly)

This function is designed to be used only be the mostproficient hackers on earth. If equipped with a butterfly key,
itshould be bound to C-x M-c M-butterfly (for further
information please refer to http://xkcd.com/378/


The doc-string violates at least the following four conventions from
appendix D.6 of the Emacs Lisp Reference Manual

      The first line of the documentation string should consist of one
      or two complete sentences that stand on their own as a summary.

      For a function, the first line should briefly answer the question,
      "What does this function do?"

      Finally, to create a hyperlink to URLs, write the URL in single
      quotes, preceded by `URL'.

      Don't write key sequences directly in documentation strings.

has two silly backslashes and misses a right paren and a period.


I think C-h f RET butterfly RET should give something like

butterfly is an interactive Lisp function.
It is bound to <C-x> <M-c> <M-butterfly>.
(butterfly)

Flip desired bit on drive platter.
This function is designed to be used only by the most proficient
hackers on earth.  For further information please refer to
`http://xkcd.com/378/'.



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for butterfly editing

Juri Linkov
In reply to this post by Raffael Mancini-2
> Hi *,
>
> In order to maintain the reputation of emacs as being a text shell
> capable of accomplishing the most difficult tasks, I've written a
> small function that will finally add support for the now famous
> butterfly button as described in http://xkcd.com/378/.
>
> (defun butterfly ()
>   "This function is designed to be used only be the most\
> proficient hackers on earth. If equipped with a butterfly key,
> it\ should be bound to C-x M-c M-butterfly (for further
> information please refer to http://xkcd.com/378/"
>   (interactive)
>   (if (yes-or-no-p "Do you really want to unleash the powers of the butterfly? ")
>       (progn
> (message "Amazing physics going on...")
> (sit-for (* 5 (/ (abs (random)) (float most-positive-fixnum))))
> (message "Successfully flipped one bit!"))
>     (message "Well, then go to www.xkcd.com!")))
>
> I ask the gnu emacs dev team to either add that function to gnu emacs
> or if my implementation is not polished enough implement it in
> another way.
>
> This would be another great example where an xkcd comic kind of
> materializes (http://wetriffs.com/ is the first) and would maybe open
> emacs to a broader audience.

What a shame we still don't have this famous command as an easter egg
in Emacs.  I've added it now to misc.el (a file for nonstandard Emacs
commands) taking into account more suggestions from this thread for
using `animate-string' and `browse-url'.

As for the keys to run this command, there is a little secret:
`C-x M-c M-butterfly' is nothing more than a valid key sequence
with a slight permutation.  After the two-step conversion:

      1
   +------+
   !      !
  ==      v
C-x M-c M-butterfly
=======            ^
   !               !
   +---------------+
           2

1. move "x " to the beginning of the word "butterfly";
2. move "C-M-c" to the end of the word "butterfly".

we get a valid Emacs key sequence `M-x butterfly C-M-c'!

--
Juri Linkov
http://www.jurta.org/emacs/


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Support for butterfly editing

Tomas Zerolo
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, Dec 29, 2008 at 01:52:18AM +0200, Juri Linkov wrote:
> > Hi *,
> >
> > In order to maintain the reputation of emacs [...]
> > [...] http://xkcd.com/378/.
> >

[...]

> What a shame we still don't have this famous command as an easter egg
> in Emacs. [...]

Christmas is barely over and you are already thinking Easter eggs. How
far are you going to take that ;-)

Seriously: Thanks for making me smile

Regards
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFJWFGmBcgs9XrR2kYRAtIhAJ9S+W5D08mikwliduwp47VBoCjVDACfTNW2
1maMj81Efg6hifilDf7qRxE=
=xObF
-----END PGP SIGNATURE-----


Loading...