User:MikeMol: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎Rosetta Code: grammar)
Line 57: Line 57:
==Books==
==Books==
These books have contributed to my perceptions of programming and design: (Not exhaustive. Listed in the order they come to mind.)
These books have contributed to my perceptions of programming and design: (Not exhaustive. Listed in the order they come to mind.)
* [http://www.amazon.com/Snow-Crash-Bantam-Spectra-Book/dp/0553380958/ Snow Crash] (Not strictly programming, but ought to spark lots of thoughts in a programmer's head)
* {{BookLink|0553380958}} (Not strictly programming, but ought to spark lots of thoughts in a programmer's head)
* {{BookLink|0072121246}}
* [http://www.amazon.com/C-Complete-Reference-4th-Ed/dp/0072121246/ C: The Complete Reference]
* {{BookLink|0072226803}}
* [http://www.amazon.com/C-Complete-Reference-Herbert-Schildt/dp/0072226803/ C++: the Complete Reference]
* [http://www.amazon.com/Programming-Perl-3rd-Larry-Wall/dp/0596000278/ Programming Perl] ("Learning Perl" was too walk-through-ish for my tastes.)
* {{BookLink|0596000278}} ("Learning Perl" was too walk-through-ish for my tastes.)
* {{BookLink|0321440307}}
* [http://www.amazon.com/Old-New-Thing-Development-Throughout/dp/0321440307/ The Old New Thing]
* [http://www.amazon.com/Enders-Game-Orson-Scott-Card/dp/0765342294/ Ender's Game] (Also not strictly programming, but should spark some programming-related thoughts in a programmer's head)
* {{BookLink|0765342294}} (Also not strictly programming, but, hey, it had an impact.)


=Rosetta Code=
=Rosetta Code=

Revision as of 02:05, 25 October 2010

My Favorite Languages
Language Proficiency
AutoIt Day job secondary
BASIC Very Very Rusty
Brainf*** Wrote a buggy interpreter
C Day job secondary
C++ Day Job primary
Java Rusted through
JavaScript Semi-Active
NSIS Proficient
Perl Quick scripts
PHP Day job secondary
UNIX Shell Active
SQL Active
Visual Basic Day job occasional
Visual Basic .NET Rusty
J Desire to learn
Python Hacked at a couple things
Haskell I think I understand the model
Forth Desire to mess with

My name is Mike Mol. I founded Rosetta Code, contributed the first tasks and examples, went on a promotion drive, and now primarily provide guidance, administrative and hosting services and maybe a line of code here and there. Rosetta Code was an idea I'd had during a Christmas vacation, before I'd heard of other programming chrestomathy sites.

Contact

Talk page

This page's "talk page" is a great way to have a public conversation with me. Click on the "discussion" tab above, and then click on "edit".

Other services

  • Email/XMPP: mikemol@gmail.com
  • Email: mikemol@rosettacode.org
  • Yahoo: mikemol6453
  • AIM: mikemol6453
  • IRC: shortcircuit on Freenode, Typically in #rosettacode. Stop by.
  • Twitter: http://twitter.com/mikemol (These won't necessarily RC-related. But I do tweet to #rosettacode on occasion.)

Voice

I've got a few blogs and website in various places. I currently have blogs on Multiply and Livejournal and Slashdot.

Thoughts on Rosetta Code

Language scope

It's a given that not all of the languages will be able to accomplish all of the tasks; Just because two languages are turing-complete does not mean that all things possible in one language are possible in another; One language may have access to system and environment resources that another language doesn't. While it's certainly possible to transcode BrainFuck source to C source, you can't go in the other direction without providing language extensions. But before you dismiss that as a strawman, consider the same thing is true between C and Perl; Anything written in Perl can be transcoded to C, but the reverse isn't possible without providing native-code Perl modules for runtime. To borrow a term from the graphic design world, different programming languages have different gamuts; If you want two different languages to support all of the same features, it's highly likely you'll either have to prune one language's feature set or extend the other's.

My role

And, all of that said, I try to leave the decisions on these things to the CS professionals, academics and hackers that frequent the site. They'll get on a talk page here or there and argue about whether a task is poorly written, whether an implementation follows the goal of the task, or both. Actually, one argument usually leads to the other, and the two sides hash out their points until they come to a consensus. When a question of "whether this suits the purpose of Rosetta Code" comes up, I'll drop in, write a few words about my opinion, and let them continue towards a consensus. After a while, things settle down, and someone with the appropriate privileges applies the consensus.

In short, I just run the servers, try to keep things running smoothly, add whatever features I think of or that people ask for, if possible. I enable the process; I try not to control it. Heck, when I created the site, I wasn't even sure what the process was, or what it was going to be; It more or less developed out of the interactions of people interested in learning languages, people interested in advocating languages and people for whom language chrestomathy tickles their brain.

Experience

I've been a Linux geek since 1999-2000, so I've got a healthy respect for Perl, the Bourne Again SHell and C, but my day job since 2007 involves coding in Windows, which means I've lately been spending most of my time in C++.

RSS

I currently keep an eye on Rosetta Code by adding Special:Recentchanges to my Google Reader. I find it's a great way to stay apprised. Google Groups has an RSS feed for each group, with is another way to stay caught up on language discussions, even if groups like comp.lang.c++ move pretty quickly.

By the way, if anyone knows of an extension to add PubSubHubbub support to MediaWiki, I'm all ears.

Reading list

I read programming books, blogs, and man pages. Lots and lots of man pages.

Books

These books have contributed to my perceptions of programming and design: (Not exhaustive. Listed in the order they come to mind.)

  • <amazon keywords="0553380958">[%url% %title%] by %author%</amazon> (Not strictly programming, but ought to spark lots of thoughts in a programmer's head)
  • <amazon keywords="0072121246">[%url% %title%] by %author%</amazon>
  • <amazon keywords="0072226803">[%url% %title%] by %author%</amazon>
  • <amazon keywords="0596000278">[%url% %title%] by %author%</amazon> ("Learning Perl" was too walk-through-ish for my tastes.)
  • <amazon keywords="0321440307">[%url% %title%] by %author%</amazon>
  • <amazon keywords="0765342294">[%url% %title%] by %author%</amazon> (Also not strictly programming, but, hey, it had an impact.)

Rosetta Code

Rosetta Code came from an idea I had during Christmas of 2006. I'd recently revisited Wikibooks' List of Hello World Programs, and didn't care for its limited scope. As I was President of the GRCC Computer Club at the time, I convinced the club to host a project called Goodbye World (shortly renamed to Rosetta Code). I chose MediaWiki because I felt it would let me get started more quickly than any other system. Once I had a few categories and tasks set up, I submitted the page to Slashdot.

Well, if you take Slashdot, a shared hosting account and an uncached MediaWiki setup, and throw them in a blender, you get a big mess. The kind folks at Geekalize noticed, and offered RC free hosting on their dedicated server. That carried RC through until the end of the arrangement in the fall of 2007. From Fall of 2007 until June of 2008, RC ran on my shared hosting account. From June-August of 2008, Rosetta Code sat on a Slicehost VPS account paid for by Qrush. In August 2008, Rosetta Code moved to a Slicehost VPS account paid for by me. In September 2009, I moved Rosetta Code to Linode. In March of 2010, Rosetta Code moved from Linode to prgmr.com.

What Rosetta Code Is

I've been trying to define what I see Rosetta Code as being for a long time, but I haven't been able to do much more than point at it as its own definition. I think I've finally managed to come up with a halfway-rigorous description.

All of education and learning depends on having a frame of reference. Without a frame of reference, one can't take something knew and stitch properly into his skill or knowledge set. As a programming chrestomathy, Rosetta Code allows a visitor to find a frame of reference and learn something new. At its simplest, Rosetta Code makes building a frame of reference for learning new languages easier by providing examples of problems known to users along with solutions which use languages they're familiar with, as well as solutions which use languages they aren't familiar with. However, that's not where Rosetta Code's model ends. The building of the frame of reference also works in reverse; users can learn to understand problems by seeing solutions to those problems written using languages they understand—I use Rosetta Code myself for this purpose a great deal of the time. Finally, Rosetta Code isn't limited to enhancing only languages and problems. A language is a tool, and, by extension, the frame of reference model Rosetta Code uses can be generalized to tools, and this is how I see Rosetta Code.
So, to go back and generalize an earlier statement: At its simplest, Rosetta Code makes building a frame of reference for learning tools easier by providing examples of problems known to users along with solutions which use tools they're familiar with, as well as solutions which use tools they aren't familiar with.

I see this as useful, because documentation and existing learning materials for problems and tools are often nonexistent, difficult to find or opaque. Take mathematics articles on Wikipedia; while I don't doubt they're largely technically accurate, I largely haven't been able to read and understand them. If I look at implementations of those articles' processes in source code, I often have a better understanding of the process. I know it's not just me; I have a friend who learned how the Hough transform works via the task on Rosetta Code.

TODO List

This is my TODO list regarding activities on Rosetta Code.

  • Get Semantic MediaWiki features better used and integrated across the site

Policy

(I'll have to find a better place for this eventually.)

I'm something of a benevolent dictator here on Rosetta Code. One thing I've discovered, though, is that other people are usually right. Hence, if you have a suggestion, let me know. However...

Language Promotion

I explicitly allow and endorse language promotion on RC, so long as it takes the form of code. I occasionally seek out language developers and enthusiasts to get regular contributors for new languages. Language comparison is the primary goal of Rosetta Code, and enthusiastic contributors help towards that. --Short Circuit 21:22, 11 December 2007 (MST)

Questions

If you have any questions, you can try leaving me a note (I can't guarantee I'll get back to you quickly.), asking on the Village Pump, or dropping by on IRC. If it's about RC organization, leave a note in the Village Pump or the relevant page's talk page; Interested parties will usually leave comments within a few hours.

Miscellany

I find the task Short-circuit evaluation jarring, because "Short Circuit" has been my moniker online for twenty years, and on CBs prior to that.

Anything to do with the film? --Paddy3118 20:40, 29 July 2010 (UTC)
Yeah, actually. It was my favorite movie as a kid. I was also a bit of an electronics hobbyist, and the phrase "short circuit" aptly summed up my skill...