Diary SiteMap RecentChanges About Contact Calendar

Search:

Matching Pages:

Journal

2013-05-08 Distributing XP With Emacs

This topic ties together two topics that probably don’t see too much overlap.

  1. I play role-playing games of the D&D old school variety.
  2. I use Emacs to help me do simple stuff on a daily basis.

The problem: the party of characters my players run is huge. Even if there are usually only around ten characters that are part of a single session, there are more than thirty primary and secondary characters on the status page. Given the wiki table for the status page, how can I quickly add up the correct XP and gold values? Any XP gained is shared equally amongst the characters that took part in the session but any gold gained is distributed according to each characters share. Primary characters get a full share, secondary characters get a third of a share.

I used Emacs widget mode to create a page like this:

XP total:   805          
Gold total: 7191         
[X] Schalk
[ ] Uluf
[ ] Witschik
[X] Schachtmann
[ ] Sirius
[X] Logard
[X] Arnd
[X] Tinaya
[ ] Pyrula
[ ] Pijo
[ ] Garo
[X] Zeta
[ ] Pipo
[X] Fusstritt
[ ] Thor
[ ] Jack
[ ] Gloria
[ ] Hermann
[ ] Urs
[ ] Alpha
[ ] Beta
[ ] Gamma
[ ] Boden
[ ] Basel
[ ] Bern
[X] Nuschka
[ ] Moranor
[ ] Axirios Hectaxius

[Go!]

And here’s the code to do it:

(defconst fünf-winde-regexp "^\\(|\\[\\[\\(.*?\\)\\]\\][ \t]*|[ \t]*\\(1\\|1/3\\)[ \t]*\\)|\\([ \t]*[0-9]+[ \t]*\\)|\\([ \t]*[0-9]+[ \t]*\\)"
  "Regular expression to parse the Status page.
\(let ((str (match-string 1))
      (name (match-string 2))
      (share (match-string 3))
      (xp (match-string 4))
      (gold (match-string 5)))
    ...\)")

(defvar fünf-winde-buf nil
  "Source buffer.")

(defvar fünf-winde-xp nil
  "XP share.")

(defvar fünf-winde-gold nil
  "Gold share.")

(defvar fünf-winde-party nil
  "Charakters in the party.")

(defun fünf-winde-xp-and-gold ()
  "Hand out Gold and XP."
  (interactive)
  (let ((buf (current-buffer))
	(names))
    (save-excursion
      (goto-char (point-min))
      (while (re-search-forward fünf-winde-regexp nil t)
	(setq names (cons (match-string 2) names))))
    (switch-to-buffer "*Fünf Winde*")
    (kill-all-local-variables)
    (set (make-local-variable 'fünf-winde-buf) buf)
    (make-local-variable 'fünf-winde-xp)
    (make-local-variable 'fünf-winde-gold)
    (make-local-variable 'fünf-winde-party)
    (let ((inhibit-read-only t))
      (erase-buffer))
    (remove-overlays)
    (setq fünf-winde-xp
	  (widget-create 'integer
			 :size 13
			 :format "XP total:   %v\n"
			 0))
    (setq fünf-winde-gold
	  (widget-create 'integer
			 :size 13
			 :format "Gold total: %v\n"
			 0))
    (setq fünf-winde-party
	  (apply 'widget-create 'checklist
		 (mapcar (lambda (name)
			   `(item ,name))
			 (nreverse names))))
    (widget-insert "\n")
    (widget-create 'push-button
		   :notify (lambda (&rest ignore)
			     (fünf-winde-process
			      fünf-winde-buf
			      (widget-value fünf-winde-xp)
			      (widget-value fünf-winde-gold)
			      (widget-value fünf-winde-party)))
		   "Go!")
    (widget-insert "\n")
    (use-local-map widget-keymap)
    (local-set-key (kbd "q") 'bury-buffer)
    (local-set-key (kbd "SPC") 'widget-button-press)
    (local-set-key (kbd "<left>") 'widget-backward)
    (local-set-key (kbd "<up>") 'widget-backward)
    (local-set-key (kbd "<right>") 'widget-forward)
    (local-set-key (kbd "<down>") 'widget-forward)
    (widget-setup)
    (goto-char (point-min))
    (widget-forward 1)))

(defun fünf-winde-process (buf total-xp total-gold party)
  (message "(fünf-winde-process (get-buffer \"%s\") %d %d '%S)"
	   buf total-xp total-gold party)
  (switch-to-buffer buf)
  (save-excursion
    (let ((xp-shares 0)
	  (xp-share nil)
	  (gold-shares 0)
	  (gold-share nil))
      (goto-char (point-min))
      (while (re-search-forward fünf-winde-regexp nil t)
	(let ((name (match-string 2))
	      (share (match-string 3)))
	  (when (member name party)
	    (setq gold-shares (+ gold-shares
				 (cond ((string= share "1/2") 0.5)
				       ((string= share "1/3") (/ 1.0 3))
				       (t (string-to-number share))))
		  xp-shares (1+ xp-shares)))))
      (setq gold-share (/ total-gold gold-shares)
	    xp-share (/ total-xp xp-shares))
      (goto-char (point-min))
      (while (re-search-forward fünf-winde-regexp nil t)
	(let ((str (match-string 1))
	      (name (match-string 2))
	      (share (match-string 3))
	      (xp (match-string 4))
	      (gold (match-string 5)))
	  (when (member name party)
	    (setq gold (format (concat "%9d")
			       (+  (string-to-number gold)
				   (* gold-share (cond ((string= share "1/2") 0.5)
						       ((string= share "1/3") (/ 1.0 3))
						       (t (string-to-number share))))))
		  xp (format (concat "%9d")
			     (+  (string-to-number xp)
				 xp-share)))
	    (replace-match (concat str
				   "|" xp
				   "|" gold))))))))

I’m not sure I’m spending my time wisely, but there you go. I used to have a simpler piece of code that helped me distribute XP and gold separately. The drawback was that it would ask me for every person in the table “was this character in the party? (y/n)” and that’s a lot of yes and no replies if you go through the list twice.

It’s also a stark reminder that simpler old rules doesn’t automatically mean less work for the referee. With D&D 3.5, I had a spreadsheet to compute the XP gained based on challenge rating and character level. It wasn’t something to do quickly without a book in front of me. Now the complexity of the task has been reduced, but the number of characters has exploded to compensate!

Tags: RSS RSS RSS

Add Comment

2013-04-26 Emacs Wiki Redesign

I finally installed the new theme for Emacs Wiki. Feel free to leave comments on the Talk page. Bootstrap allows me to make all the changes at run-time, ie. add a few scripts including a script that changes the wiki’s HTML (emacs-bootstrap.js) and a new CSS file (bootstrap.css).

Since no changes to the script are necessary I can continue to provide the old theme for those that don’t feel like switching.

Tags: RSS

Comments on 2013-04-26 Emacs Wiki Redesign

Yay for bootstrap! It really makes the life easier if you want your web application to look consistently.

Radomir Dopieralski 2013-04-26 15:22 UTC

Add Comment

2013-01-23 Security of Code Downloaded from Online Sources

In the anonymous rant The Wikemacs Experiment: 300 Days Later, the author claims “The biggest problem is that it is insecure. […] Anyone can edit any of the pages that contain Elisp code.” The same sentiment was expressed by Alex Bennée in a comment on Google+: “What is really needed is a way to be sure that the source for the emacs extension your updating hasn’t been subverted by someone else with ill intent.”

I said:

Experiences and ideas of “what is really necessary” vary. As for myself, I’ve installed code from all over the Internet without reviewing the source. Installing it from a gist or git repo is hardly a different experience. If you want to figure out whether a source is trustworthy, you do the usual things: do people link to the code, how long has it been around, what about recent checkins, that sort of thing. Or you get into the crypto business of signing releases.

You could of course say that every day that passes without a problem increases our false sense of security… I have no answer to that. All I can say is that if security is your problem, using gists and github is not the solution (as you say yourself). The source of the insecurity is our habits, our culture of downloading and installing anything and everything. I’m not sure how you’ll ever make sure “that the source for the emacs extension your updating hasn’t been subverted by someone else with ill intent.” That seems pretty impossible to me unless you limit yourself to the core Emacs distribution (and even that’s not a guarantee).

People on the #emacs channel keep asking “is there way to do X” and thus my impression is that finding stuff is a more pressing problem. I feel that encouraging people to create a page on the wiki saying “here is code to help you do something” is the solution to that problem.

But then again, I guess we all differ in what we consider to be the most pressing problem.

Alex Bennée the correctly points out that using “a user locked solution like a gist or git repo you can at least be assured what you’re installing has come through one person who you’ve trusted to a degree before.” I guess that’s true. We’ll see whether people start switching over to using gists instead of editing wiki pages. I said in an earlier comment:

I added gist support […] because it was easy to do, not because it will encourage existing authors to move their elisp code on wiki pages to github. If at all, it might encourage future elisp authors to transclude a gist… But then again, there’s nothing preventing them from linking to a gist right now. Perhaps it’s also a generational thing. People that have been living without github and gists don’t feel a particular need to start using it.

Interesting times. :)

Tags: RSS RSS RSS RSS

Comments on 2013-01-23 Security of Code Downloaded from Online Sources

Hi Alex,

first of all - thank you very much for Oddmuse! I’m using it for both my personal site and Department's site. It has some rough edges, but overall I find it a very nice tool, and I did recommend it to a few people.

Now to the point: I was just wondering whether it might be a good idea to use stackoverflow with [emacs] tag (which you mentioned in your earlier post), or maybe even start something like emacs.stackexchange.com? I’m not sure whether it could solve any problems you mentioned, but (at least for the more paranoia-oriented people) it might feel a bit more secure, with all the comments, up- and downvotes etc. I don’t know. (Personally, I didn’t use any actual code from Emacswiki, but I guess it would not be a huge problem for me.)

mbork 2013-01-23 20:55 UTC



AaronHawley
Nothing has really changed. Previously, Lisp code was shared between a few Emacs hackers and the intention was to work on improving it and get it integrated into Emacs. The GNU Project was the trusted authority. They distributed the useful contributions. Obviously, that hasn’t scaled well. I think it’s perfectly reasonable for Emacs newbies to distrust code they can’t read that was written by hackers they don’t know.

AaronHawley 2013-01-23 21:56 UTC



AlexSchroeder
Thank you for the kind words, Marcin. I think a lot of people are already using Stackoverflow for Emacs questions. I find the site incredibly useful when I’m at work (except my work is hardly ever related to Emacs, unfortunately).

I also agree with Aaron. Good point regarding the GNU Project being the trusted authority.

AlexSchroeder 2013-01-23 22:39 UTC



Thomas Koch
I’ve collected examples of manipulated code or binaries: http://www.koch.ro/blog/index.php?/archives/153-On-distributing-binaries.html

I don’t think that it’s too hard to get a gpg key, go to a signing party on your next software conference and sign all your releases. It’s rather dumb easy. And you can use signed git tags on github or any other git hosting platform to provide a very strong confidence for your user that they can trace you back in case you provided bad code.

Thomas Koch 2013-01-24 12:57 UTC



AlexSchroeder
True, it is not “too hard” for many people. But when I write a little throw-away piece of code like EmacsWiki:1000 Words it’s a bit much to ask. I’ve never been to a key signing party. I never go to software conferences. I post it on the wiki. And when I write another little piece of code, I do it again. That’s why my code ends up on the wiki and not on github. I keep hoping people will volunteer to maintain code I wrote and either add it to Emacs itself or maintain it in decent repositories. I just don’t see myself doing it. I like the division of labor between programming and packaging.

AlexSchroeder 2013-01-25 10:24 UTC



Thomas Koch
It might be a bit too much to sign a little script of 10 lines that I can quickly review. I was rather referring to big software projects. However once you’ve got a gpg key you can sign a small code snippet just as easily as you can sign an email.

Thomas Koch 2013-01-26 10:11 UTC



AlexSchroeder
I think now the discussion turns to the question of where to draw the line. There’s exactly one large project that is exclusively hosted on Emacs Wiki, I think: EmacsWiki:Icicles. Others, such as EmacsWiki:Anything moved to github. Other, like EmacsWiki:Gnus or EmacsWiki:BBDB were never hosted on Emacs Wiki to begin with. Then there are the large collection of inofficial extensions like the ones listed on EmacsWiki:rcirc. Do they count as a single project or is each file a separate one? From my point of view, each one is a separate project. I just use two of them myself. As such, they are not really “a little script of 10 lines” but they don’t feel like big software projects, either.

I think I’m with Aaron. Emacs Wiki mostly hosts code on the wiki that one could view as “incubator” stuff. Things that haven’t made it into their own repositories or that haven’t made it into Emacs itself. Thus, asking for version control and signed releases is—in the context of code hosted on Emacs Wiki—asking for the right thing at the wrong time. It’s premature for those small single file projects that are hanging in Limbo somewhere between ten lines and inclusion into Emacs or indendence as their separate projects.

AlexSchroeder 2013-01-26 11:46 UTC



dim
Using El-Get you can easily add a checksum in your setup so that you only automatically get code from EmacsWiki with that checksum. So if you get to a new machine or re-install your Emacs setup from scratch, and the newly downloaded EmacsWiki code does not match your checksum, El-Get will refuse to load it for you. You can get the checksum interactively using M-x el-get-checksum command.

dim 2013-01-27 21:13 UTC



AlexSchroeder
Excellent feature!

AlexSchroeder 2013-01-28 07:23 UTC

Add Comment

2013-01-22 Gists on Emacs Wiki

I just read a rant about Emacs Wiki and it’s alternative: The Wikemacs Experiment: 300 Days Later. Check out How Emacs Wiki Works for some context from my point of view. Anyway, the anonymous author says: “Maybe someone could work with Alex to add gist-style code snippets to Oddmuse, and make it so that code can be cited inline on Wiki pages, so that anyone visiting the page is automatically looking at the most up to date version of the code.”

Let’s take this random gist as an example. Click on the “view raw” button. Use <include text "..."> to transclude it:

(setq abg-elisp-external-dir
      (expand-file-name "external" abg-elisp-dir))

; ...

; Add external projects to load path
(dolist (project (directory-files abg-elisp-external-dir t "\\w+"))
  (when (file-directory-p project)
    (add-to-list 'load-path project)))

Actually, I added an Emacs Wiki feature using two lines of code that add support for fancy inclusion:

<include gist "https://gist.github.com/1236665">

It only works over there, however. See EmacsWiki:Gists.

Anyway, the same also works for Lisppaste:

<include text "http://paste.lisp.org/display/134703/raw">

Results in:

;; Set XTERM resources as so
;; 
;; metaSendsEscape: false
;; altSendsEscape: false
;; eightBitInput: true

;; Verify with cat > /dev/null command that pressing alt-a
;; alt-b and so on produces single >128bit char (will look
;; like a with a hat

;; once above is working in emacs do

;; Prevent pressing esc O from triggering binding
(define-key (get-input-decode-map) "\eO" nil)

;; tell emacs Meta is 8th bit
(cond ((fboundp 'set-input-meta-mode)
      (set-input-meta-mode t))
    (t (set-input-mode t nil t)))

I don’t think there’s a nice way to include the colored version, unfortunately.

Update: I added support and minimal Lisp highlighting for the following:

<include lisppaste "http://paste.lisp.org/display/134703">

It only works over there, of course.

Tags: RSS RSS

Add Comment

2012-10-03 Search and Replace

I was looking at tabular data on a wiki page:

|[[...]]     |   1 |          6563|     3796|   |[[...]] | — |
|[[...]]     | 1/3 |          2315|     1259|   |[[...]] | — |
|[[...]]     | 1/3 |           159|      607|   |[[...]] | — |
|[[...]]     | 1/3 |           159|      597|   |[[...]] | — |

I wanted to add 56 to some of the values in the third column.

Emacs to the rescue: M-C-% to run query-replace-regexp and search for ^\(|[^|]*|[^|]*|[^|0-9]*\)\([0-9]+\) and replace it with \1\,(+ (string-to-number \2) 56)) – I was surprised at how easy it was once I had remembered to use \, in the replacement pattern.

Update: EmacsWiki:PierreGaston tells me that I could have used \#2 instead of (string-to-number \2). I guess I should have finished reading that paragraph on the Info page. ;)

Tags: RSS

Add Comment

2012-05-16 MANPATH

I’m using Emacs on Mac OSX.

Apparently the correct solution for using man and all the related tools is to make sure your /etc/man.conf file is correct. Mine was missing the following line:

MANPATH	/usr/local/man

You can ignore the rest of this page. :)

Thank you, Phil Hudson.

In my /.bashrc:

# MANPATH
# there's no MANPATH by default, and manpath(1) just prints /usr/share/man
if [ -z "$MANPATH" ]; then
    export MANPATH=/opt/local/man:/usr/local/man:/usr/local/share/man:/usr/X11R6/man:/usr/share/man
fi

In my /.emacs:

;; man
(unless (getenv "MANPATH")
  (setenv "MANPATH"
	  (with-temp-buffer
	    (insert-file-contents-literally "~/.bashrc")
	    (when (re-search-forward "MANPATH=\\(.*\\)" nil t)
	      (match-string 1)))))

And finally my little rebinding of C-h f for Perl mode works for modules as well:

(add-hook 'cperl-mode-hook
	  (lambda ()
	    (local-set-key (kbd "C-h f") 'cperl-perldoc)))

This calls perldoc which in turn calls man which uses MANPATH.

Tags: RSS

Comments on 2012-05-16 MANPATH


PhilHudson
Bizarrely, the Right Thing under OS X since 10.4 is to unset MANPATH. The correct place to declare man path mappings is /usr/share/misc/man.conf; scripts and stuff should call ‘manpath’ rather than examine $MANPATH. Do `man manpath’ for further info. Emacs should DTRT – I use the MacPorts version.

PhilHudson 2012-05-16 16:23 UTC



AlexSchroeder
Hm. I hadn’t realized. I think my main problem is that manpath doesn’t list /usr/local/man by default. I need to look at his /etc/man.conf file… (time passes) Yes, works!

Thanks.

AlexSchroeder 2012-05-16 16:59 UTC

Add Comment

2012-03-24 How Emacs Wiki Works

(TL;DR: People that don’t like the wiki as it is ought look at the official Emacs documentation instead. I wrote this so that I’d have something to link to in the future. This post was inspired by EmacsWiki:2012-03-20.)

Every year or so, I read about suggested changes to the Emacs Wiki. The complaints are the same, year after year.

  1. The pages are confusing.
  2. The code snippets are wrong.
  3. The site is badly organized.
  4. The information is out of date.

The solutions invariably have nothing to do with the problem.

  1. Switch to Mediawiki, the software used to run Wikipedia.
  2. Use a database or a distributed version control system as the backend.
  3. Change the text formatting rules to Markdown, Mediawiki markup, or something else that is better known.
  4. Separate discussion from the main page.
  5. Delete stuff that is outdated.
  6. Fix errors.
  7. Organize.
  8. Moderate.

Why are these suggestions not helpful?

The first problem is the mistaken belief that technology can substitute for social change. Yes, the wiki is badly organized and many of the pages are outdated. Changing the wiki engine, the backend or the formatting rules will not change this, however.

The backend used by the wiki engine can influence performance and resource use, it can the software harder or easier to maintain and backup – but it will not induce somebody to edit a messy page and fix it.

The second problem is the mistaken belief that moderation can be commanded. You can complain about bad editing and a lack of moderation all day. But since nobody is paying people to do a boring job, we must rely on obsessive compulsive people to fix typos and tag pages.

Maybe we could attract more people by gamifying the experience—offer rewards, badges, scores. But Stack Overflow already does this. It’s the best social question answering machine currently known. The wiki doesn’t need to imitate something better. The wiki needs to do what it does best. We’ll come to that.

The third problem is the mistaken belief that quality control and volunteers go well together. Just compare Wikipedia and Citizendium and consider the animosity generated by Deletionism on Wikipedia. How will you encourage authors to contribute if you are telling them that their contributions are lacking the quality you are looking for instead of simply accepting their text and working on it?

You fight spam, you rework text occasionally, you encourage others, you welcome newbies, you lead by example. That’s how you lead.

An abrasive personality, radical change involving a lot of work—those are not the tools you are looking for.

Let me return to the issue of commanding change. Things people have said:

“the content editing should be one with the goal of creating a comprehensive, coherent, article that gives readers info or tutorial about the subject.” – Xah Lee (2008)
“I favor a major reorganization of the wiki material.” – Neil Smithline (2011)
“The articles are littered with crappy advice confusing beginners, have little structure and are filled with ridiculous questions” – Bozhidar Batsov (2012)

The critics can be unhappy about it all they want, and they can complain about it all they want—but in the end, one needs to understand the forces at work, here. There is no chain of command.

It works just like a free software project. If it doesn’t scratch someone’s itch, nobody is going to add it. I think it’s a fundamental issue with our business model: there is no pay for boring stuff. Plus, documentation is of no direct use for anything—unlike code. Thus, people are mostly motivated to keep their own code and its documentation up to date. I don’t think there is anything we can do about that. That’s why the Emacs Wiki Mission Statement does not mention organization and quality. It cannot be commanded.

Once we accept that this is the sand upon which we are building our house, we necessarily need to scale down our expectations. Personally, I think the wiki exists somewhere between the official documentation, Stack Overflow, the FAQ, the newsgroups, the mailing lists, and IRC. It’s certainly nowhere near the quality of organization and writing that the Emacs documentation has—and I don’t think this is the right medium to aim for this level of quality. I think the people willing to invest that amount of energy to write quality stuff ought to be writing the real Emacs documentation—and they probably are.

What remains are the people using Emacs Wiki for their own pet projects, questions asked, answers given, sometimes organized, sometimes rewritten, sometimes linked to the rest of the site.

Wikipedia works because of its universal appeal. When I added an image to an obscure Indian temple we visited when I was staying in Mysore, the photo was terrible. But it was a start, and enough people cared about the page and it grew, and it found people to tend it, and now it’s big and beautiful.

There just aren’t enough Emacs users and authors out there and the best of us will be contributing to the official Emacs documentation. The wiki exists somewhere between the official documentation and the mailing lists. Lower your expectations.

Given all that, why does the wiki exist at all?

When I started it, I had several reasons:

  1. The wikis I knew, C2 and Meatball Wiki, had attracted a particular community and they had created a particular subculture I liked. We talked about the Wiki Now and many other things that made wikis work. The medium itself was interesting.
  2. I had been posting on the newsgroups for a long time, and slowly I realized that the same questions kept being asked again and again. The newsgroups and mailing lists were failing as a medium because they were ephemeral. Sure, we kept telling people to search the archives. But the medium afforded asking questions instead of searching.
  3. When I looked for Frequently Asked Questions, I found a document online, maintained by a single person. This person was a bottleneck. The FAQ updated slowly.
  4. At the time I was getting into Internet Relay Chat. On IRC, conversation is even more ephemeral than on the mailing list. This time, however, “searching the archives” was out of the question. We needed our own archive. And thus I started answering questions on IRC and posting the answers on the wiki.

I think this last point bears consideration: I was creating pages or adding information to pages because it was pertinent on IRC. An index, linking to the page, categorization, returning to the page later and reworking it, all these quality related tasks were not pertinent on IRC. All I needed was a pastebin that I could go back to and rewrite if I felt like it. Often I did not—and I still don’t.

The wiki being on the web, updated every now and then, with pertinent answers to specialized questions, unorganized and raw, ended up being a good resource for the search engines out there. These search engines bring new people to the site. People that don’t understand how wikis work in general and how this wiki grew to be where it is in particular. They are shocked. So many pages outdated! Such a mess in style and quality!

I think those people are better served reading the official documentation. They don’t want this mess, they don’t benefit from it’s loose rules, they don’t understand how cool it is to have a site with no login required. They are better served elsewhere.

I’m sure that one day the Emacs Wiki will have become irrelevant. But just like the old newsgroups never disappeared entirely, so will the wiki transform into something else and remain part of our information landscape.

Perhaps one of the Emacs Wiki critics will one day set up an alternate site, pull all the pages (more than 8500 pages last time I checked), extract the quality content—or rewrite it from scratch—and produce something better.  Perhaps they will build an organization that can keep the quality up, encourage new authors to join, provide more value to their readers. But I don’t think complaining about the existing Emacs Wiki is a step in the right direction. Build it, and they will come—elsewhere.

Tags: RSS RSS

Comments on 2012-03-24 How Emacs Wiki Works


SeanO

> the mistaken belief that technology can substitute for social change

Well, simply having a “talk” page for each wiki page (with a big link at the top) would let people have conversations about those pages without cluttering them up. And having an actual, complete revision history would help someone figure out what happened to a completely messed-up page. But EmacsWiki doesn’t seem to have those things. Its technology is too primitive to reasonably support – much less encourage – a workable society.

> the mistaken belief that moderation can be commanded

As Wikipedia has amply demonstrated, there are plenty of obsessive-compulsive people online. If anything, moderation needs to be limited.

SeanO 2012-03-24 03:44 UTC



Bozhidar
One of the critics already started an alternative wiki - http://wikemacs.org :-)

Other than that - I’m with SeanO on this one. And with 8500 pages or so - it easier to save the worthwhile articles than to revisit all the material.

Bozhidar 2012-03-24 05:48 UTC



AlexSchroeder
Sean, if the lack of a complete revision history is what held you back from reworking and reorganizing, then I guess you’re right. I am keeping all the logs, but discarding all the older revisions after two weeks and never felt the lack.

The addition of Talk pages was discussed a while ago—it was one of the items on the suggestions page—but at the time we had two votes in favor and two votes against them. Nobody else seemed to care. I’ll be surprised if their mere existence improves the pages. But I guess we’ll see, now. Good luck to you all!

After a quick look at the site I’ll suggest that you should add licensing terms as quickly as possible. As it stands, you cannot copy anything from Emacs Wiki. That would require a copyleft license.

AlexSchroeder 2012-03-24 07:16 UTC



SeanO
Alex – I’d say my laziness and your sneering condescension were greater obstacles. But if I don’t check in for more than 2 weeks (quite likely, given how little time I have for Emacs these days), I’d still like to be able to see what happened if something I cared about (e.g. the Perl page or my homepage) went bad. (How much, to an order of magnitude Euros and hours’ work, would it cost you to keep a complete revision log, by the way?)

I guess the Talk page issue came and went in a revision window when I didn’t have time to hang out here.

I’m also tired of your pseudo-legal threats toward the content of the wiki (which is under GPL2, not GFDL).

(This comment is protected by the GFDL, I guess. Whatever that means.)

SeanO 2012-03-24 08:14 UTC



AlexSchroeder
I wonder where you felt my sneering condescension. Perhaps in my replies to people I felt were trying to tell me what to do in my free time and with my money? I also don’t think I threatened you in any way. Perhaps you missed the problems I had with changes to the Emacs Wiki license in its early days. I was trying to help you or Bozhidar make the same mistake.

The logs are there for all to see if you follow the links. Here’s the the SiteMap history, for example. Keeping all the old revisions would cost me nothing – it’s simply a setting. I prefer it this way. As I said, I think keeping the old revisions provides no benefit and adds a number of small drawbacks such as needing administrators to permanently hide particular revisions that contain material deemed problematic from a legal perspective. As it stands, I can undo these edits and with time, they are gone. Another issue is that I like the idea of a right to be forgotten. The original C2 wiki kept no revisions at all. I think that the only reason old revisions need to be kept at all is peer review and anti-spam and anti-vandalism measures. For those tasks, a small time window is sufficient. After all, wiki pages are not code. We don’t need to look through the history of a page to find when bugs were introduced and by whom.

AlexSchroeder 2012-03-24 10:30 UTC

P.S.: EmacsWiki:WikiDownload links to a CVS repository of the source files hosted on the wiki, a subversion repo with daily snapshots of all the wiki pages, and a new, up to date git repo of all the pages with full history. I guess in a way my preference regarding the right to be forgotten is already moot since deleted stuff can be pulled out of the archives. This just hides deleted info from casual visitors.



PhilHudson
Excellent riposte, Alex. We who criticize the wiki should pay attention. I would like to thank you for this consistently useful resource and your dedication. I certainly don’t detect any sneering on your part. Having said that, I do think there are a lot of real and fixable problems with the wiki, the worst being the hosting of code with neither “proper” SCM nor automatic notification of changes. Once you’ve used LaunchPad and (especially) github, this is just not tolerable. So I’m going to see what if anything I can do to help any new project.

PhilHudson 2012-03-24 11:29 UTC



AlexSchroeder
I see the problem! I think people like me don’t feel bad about keeping code that consists of a single file on the wiki because we usually don’t think of these files as requiring maintenance. After all, that’s how gnu.emacs.sources used to work. The wiki has the benefit of providing a stable URL, but the process remains essentially the same: post & forget, possibly have discussions with other people via email, followed by another post & forget.

To me, creating a separate project on Savannah or Source Forge is an unacceptable overhead for files like EmacsWiki:rcirc-color.el or EmacsWiki:rcirc-controls.el. But if somebody else felt like taking those files, putting them up on some other site – excellent! At first, color-theme.el was hosted on Emacs Wiki. Eventually somebody took it, moved it elsewhere, and started a real project. Great!

I still think that the Emacs Wiki can act as a low barrier-to-entry incubator for all those small little files that need a place on the web. I don’t read gnu.emacs.sources anymore, and I don’t think many other people do. At the same time, I think there still are a lot of people without their own web pages out there. They can’t post code on Facebook or Google+ and I imagine uploading code to Wordpress and Blogspot sites is also unwieldy. For all those people, the Emacs Wiki offers an alternative. It’s a bit better than gnu.emacs.sources and Lisppaste but a far cry from a software forge.

If people would take popular code from the wiki to a forge, repackage it as a real project, that would be great.

AlexSchroeder 2012-03-24 12:11 UTC


Phil, I just remembered EmacsWiki:Git repository. Maybe that helps? I know Jonas is very enthusiastic about it and has been pestering me for weeks when I dragged my feet. ;) I’m sure he’d appreciate help or some nice words.

AlexSchroeder 2012-03-24 19:07 UTC


“the mistaken belief that technology can substitute for social change”

Github was an example of technology that brought about a change in social behaviour.

– Phil Jackson 2012-03-26 12:18 UTC



Edward O'Connor
Excellent post, Alex. Long live the EmacsWiki! :)

Edward O'Connor 2012-03-26 23:35 UTC



AlexSchroeder
Thanks, hober!

Phil, regarding Github: I’m not much of a github user. I see that git and github bring a lot of relevant new features to the table. Compared with other version control systems they facilitate forking on a grand scale. Do you feel that using Mediawiki introduces a similar set of new features that will revolutionize how wiki pages are edited and organized? I don’t see it, which is why I cannot imagine that Xah’s and Bozhidar’s idea of switching to Mediawiki will in fact help solve the quality issues they have with Emacs Wiki.

AlexSchroeder 2012-03-28 15:32 UTC



AlexSchroeder
Just saw this: The Wikemacs Experiment: 300 Days Later.

AlexSchroeder 2013-01-22 11:57 UTC

Add Comment

2012-01-17 SOPA Blackout Protest

I just saw Twitter CEO says SOPA blackout protest "silly" on BoingBoing. I wonder: Should I shut down Emacs Wiki for US residents? I’d have to do a quick geo location of the IP numbers before serving anything. That sucks.

kensanata
Do US #Emacs users require a reminder to fight #SOPA and # PIPA? I think Emacswiki will stay up for the USA. I doubt US Congress uses it.

I always felt that I was as safe as I can be running Emacs Wiki: I live in Switzerland, the server is hosted in Germany, the domain name registrar is French, the top-level .org domain is the only thing connecting it to the USA. But then I read US Can Extradite UK Student For Copyright Infringement, Despite Site Being Legal In The UK – and now I wonder about the worst case. Perhaps I should get myself a different domain name.

Actually, I think the main problem is that with all the scare mongering around copyright infringement and the astronomical punishments dealt out in the US, I have lost my confidence in their judicial system when it comes to copyright and patents. The most positive explanation for that is that I’m just misinterpreting all the bad news I’m reading online. My impression is formed by following @internetlaw, @privacylaw, @techdirt and @boingboing, following the occasional link. I end up reading Actual damages for single unauthorized download of software program held to be cost of single license fee (from $1,370,590 down to $4,200) and I wonder how much it cost the accused in time, energy and money to get this result. I would not want to fight this battle in court, even if I win.

Case in point: How USPTO's recklessness destroys business, innovation, and competition – a company produces something and years later a competitor is awarded a patent. The cost of going to court is prohibitive, and so they just give up.

Overprotective copyright and a judicial system that encourages statutory damages, patent offices unable to cope with new technology, a highly networked world making it easy to publish internationally with incompatible legal systems. It makes my head hurt!

Update: I decided to post a more personal message on EmacsWiki:2012-01-18.

Tags: RSS RSS RSS RSS RSS RSS

Add Comment

2011-02-14 The Value of a Web Site

I am subscribed to a Google search for my name. I found a site that promises to compute the “value” of your website and predicts the expected ad revenue.

For Emacs Wiki they say the following:

  • Website Worth: $10,990.15
  • Daily Pageviews: 10,752
  • Daily Visitors: 4,887
  • Daily Ads Revenue: $30.11

I guess I’d love to get $30 per day for not doing anything except paying about $30 per month. :)

Google Analytics says that Emacs Wiki gets a bit less than 6000 visits per weekday and a bit less than 4000 visits per Satuday and Sunday.

I somehow doubt those numbers, however. What do you think?

Tags: RSS RSS

Comments on 2011-02-14 The Value of a Web Site


johnathan rabkin
Makes sense to me. I definitely have no problem with you getting some sort of renumeration for running such an awesome site. It is a common, and unfortunate, misconception that the free software community is also the gratis-and-at-no-cost software community.

johnathan rabkin 2011-02-15 21:37 UTC



StefanKangas
I did not take this as being about introducing ads, but more as a curiosity. Reading the above comment made me think though. What about ads on Emacswiki?

Putting it diplomatically, I believe introducing ads has a strong possibility to backfire on the site and its community. At the very least it will bring much controversy. We also have the risk of some users being annoyed, others might abandon the site outright, some of them might fork it and so on. Also, now that gnu.org/software/emacs links here, ads will give a first impression of the entire Emacs community, too. This might not be what we want for a new member in the community to remember. All in all, this would not be a very good situation for Emacs. So that is that.

Regarding the question posed by Alex though: do their numbers seem right? I would guess their numbers are inflated in this case. Obviously they regard an average internet user, and I would claim we are not really average. Around here we use adblockers, plus we might be slightly less probable to click any ads anyways because we like to think we are smart.

Oh, and while I am at it: Thanks for keeping EmacsWiki running!

StefanKangas 2011-02-17 02:20 UTC



AlexSchroeder
Thanks.

I agree with you, Stefan. I get annoyed by ads myself. Sure, it would be nice to make money using my Emacs know-how or the know-how I gained by running Emacs Wiki. But would it ever be enough money to compete with the rates I make in my day job? Not likely – unless it was a zero-effort money making machine. A donation link, for example. Even a donation link is a double-edged sword: If a person spent ten minutes proofreading and improving a page on the wiki, that is worth something. At a rough estimate, that time itself is worth $10. Would they be willing to donate more than $10 instead of spending ten minutes proofreading a wiki page? I don’t think so. That’s why I think that ads or donations won’t really work for Emacs Wiki.

So, even though I think it would be nice to make money in the free software community, the economic incentives are very different. If I could do Emacs related work and get $100 per hour and more, then maybe I’ll think about it.

When I asked a friend regarding these numbers, he also suggested they were inflated because the person reporting the numbers has an interest in selling you the very ads you’d be carrying.

AlexSchroeder 2011-02-17 10:09 UTC



Johnathan Rabkin
Is there a company which will serve only ads for free software related companies?

Perhaps http://adbard.net/

Johnathan Rabkin 2011-02-17 16:54 UTC

Add Comment

2010-09-29 Pink

Ever heard of Baker Miller Pink? Apparently it’s used in a Swiss prison. My wife talked to one of the psychiatrist who used this three times to calm inmates with a violent fit. Apparently the pink used is R:255, G:145, B:175.

Too bad my PinkBliss color theme for Emacs uses “misty rose” as the background color instead of specifying the color mix specifically. You know… to calm Emacs users with violent fits.

Misty Rose apparently is FFE4E1 or R:255, G:228, B:225 – way to bright. Oh well. There are still opportunities in Pink Emacs research!

Tags: RSS

Add Comment

More...

Show Google +1

Define external redirect: LaunchPad

EditNearLinks: PhilHudson SeanO PinkBliss