From: Tom Marble Date: Mon, 13 Jan 2014 04:32:32 +0000 (-0600) Subject: Copy over old blog X-Git-Url: http://info9.net/gitweb/?p=wiki.git;a=commitdiff_plain;h=25f37f45c25c5659d9a3608776e0fa9ca77c74cd Copy over old blog --- diff --git a/EditingTips.mdwn b/EditingTips.mdwn new file mode 100644 index 0000000..e6e53cb --- /dev/null +++ b/EditingTips.mdwn @@ -0,0 +1,23 @@ +# Editing Tips + +There are two ways you can edit this wiki: + +1. Via the web.. just click **Edit** on any page, authenticate yourself via OpenID, and make changes in the _Markdown_ wiki language. +2. Via git. You can check out this repository in git via: + * mkdir info9.net + * cd info9.net + * git clone git://info9.net/wiki.git + * cd wiki/fosdem/LegalIssuesDevRoom/ + * emacs CFP.mdwn
+ (of course you can use for favorite editor) + * git commit -a + * git push + +When you are editing the wiki you will be using the _Markdown_ language. +Here are some references for Markdown (note: links that refer +within the ikiwiki are handled a little differently than Markdown): + +* [[http://support.mashery.com/docs/customizing_your_portal/Markdown_Cheat_Sheet ]] +* [[http://ikiwiki.info/ikiwiki/wikilink/]] +* [[http://ikiwiki.info/ikiwiki/formatting/]] + diff --git a/NEW b/NEW deleted file mode 100644 index dd41456..0000000 --- a/NEW +++ /dev/null @@ -1,7 +0,0 @@ -This is a new wiki - -Here is an experment of the post-update hook - -Added by ikiwiki <-- here - -Now updated at ficelle diff --git a/background_darkness.png b/background_darkness.png new file mode 100644 index 0000000..0a1cb4e Binary files /dev/null and b/background_darkness.png differ diff --git a/fosdem.mdwn b/fosdem.mdwn new file mode 100644 index 0000000..34d9bf4 --- /dev/null +++ b/fosdem.mdwn @@ -0,0 +1,16 @@ +# FOSDEM + +## FOSDEM 2014 + +* [[LegalIssuesDevRoom]] + +## Archive from FOSDEM 2012 + +* [[Legal Issues DevRoom 2013 |/fosdem2013/LegalIssuesDevRoom]] + +## Archive from FOSDEM 2012 + +* [[Legal Issues DevRoom 2012 |/fosdem2012/LegalIssuesDevRoom]] +* [[Free Java DevRoom 2012 |/fosdem2012/FreeJavaDevRoom]] + +[[!tag fosdem]] diff --git a/fosdem/LegalIssuesDevRoom.mdwn b/fosdem/LegalIssuesDevRoom.mdwn new file mode 100644 index 0000000..c2dc2a5 --- /dev/null +++ b/fosdem/LegalIssuesDevRoom.mdwn @@ -0,0 +1,11 @@ +# FOSDEM 2014 : Legal Issues DevRoom + +Please join us for the DevRoom devoted to advanced +Legal Issues in the Free and Open Source Software world at +Europe's premier FLOSS event: [FOSDEM 2014][fosdem]. + +Check out the [Call For Participation][cfp]! + + +[fosdem]: https://fosdem.org/ +[cfp]: https://lists.fosdem.org/pipermail/fosdem/2013-November/001875.html diff --git a/fosdem/LegalIssuesDevRoom/CFP.mdwn b/fosdem/LegalIssuesDevRoom/CFP.mdwn new file mode 100644 index 0000000..d0af224 --- /dev/null +++ b/fosdem/LegalIssuesDevRoom/CFP.mdwn @@ -0,0 +1,67 @@ +# FOSDEM 2013 : Legal Issues DevRoom : CFP + +This is the Call for Participation in the FOSDEM 2013 +[[Legal Issues DevRoom|LegalIssuesDevRoom]] + +Call for Participation **DEADLINE 21 December 2012**
+Submit your proposal as an email to **fosdem-legal@faif.us** (see [[example here|ExampleProposal]]). + +Speakers will be notified of acceptance by the end of the day US/Eastern +on 28 December 2012. We ask submitters to be responsive (if possible) +to email the week of 24 December 2012 for follow-up questions regarding +their proposals. If you are not available for follow-up questions +that week please try to submit your proposal earlier and let us know +(so we can try to ask you any questions we may have before then). + +This Legal and Policy issues DevRoom is designed to cover topics of +Free Software licensing and legal policy. While proposals for introductory topics +in this area are welcome, we are specifically seeking proposals on advanced +topics in Free Software policy, licensing, trademark, patent and other legal topics. + +The goal for this DevRoom is to foster in-depth discussion about complex +policy, legal and licensing issues that face the software freedom +community today. + +Proposals are sought for talks, panel discussions, and guided +discussion groups that can investigate these sorts of issues. + +Any proposal topic fitting the above description is welcome, but some good +topics might include: + +* Copyleft vs. permissive licensing: What is a policy case for + copyleft? If so what form should it take? + +* Copyright assignment and contributor license agreements. What are the + issues to consider as a project and as a developer? + +* Copyleft licensing models and how they relate to business + models. Are there some business models that are license-permissible + but bad for community building? On the other side, does your + license choice limit or expand your community? + +* Copyleft enforcement and compliance planning from a developer + perspective. What is the future of GPL enforcement? Is it working? + What is its impact on adoption of copyleft? + +* Copyleft license compatibility. What are the challenges of code + base merges when various licenses are in use? How does a + compatibility analysis between licenses work? + +* Is GPLv2-only vs. GPLv2-or-later bifurcating the copyleft + communities? + +Each talk will only be 40 minutes, and 5 minutes reserved for Q&A, +although shorter talks with longer Q&A are encouraged. It is highly +advisible to define a set of terms and create a set of links giving +background information to your subject. Attendees will be encouraged to +review this prerequisite material to be well prepared to jump right in to +your material. + +It is highly unlikely that video gear will be available to cover this +event, but all talks will be recorded on audio. Please indicate in your +submission if you are willing to be recorded on video and/or audio, and +if you're willing to license those recordings CC-By-SA-USA 3.0. + +For more background on the [[Legal Issues DevRoom|LegalIssuesDevRoom]] +please check out this archived latest [[Free as in Freedom oggcast|/tmarble/posts/You_are_going_to_find_yourself_immersed_in_legal_issues]]. + diff --git a/fosdem/LegalIssuesDevRoom/ExampleProposal.mdwn b/fosdem/LegalIssuesDevRoom/ExampleProposal.mdwn new file mode 100644 index 0000000..1b2f20d --- /dev/null +++ b/fosdem/LegalIssuesDevRoom/ExampleProposal.mdwn @@ -0,0 +1,25 @@ +# FOSDEM 2013 : Legal Issues DevRoom : Example proposal + +Please submit a proposal by **21 December** for the [[LegalIssuesDevRoom]] as +an e-mail in this format: + +--- + + To: fosdem-legal@faif.us + Subject: Talk Proposal + + Title: Your Talk Title Here + Abstract: + + + Brief Bio: + + Microblog URL: + Blog URL: + + Name (if different/missing from your e-mail address): + E-mail (if different from your e-mail address): + Recording me on audio and/or video is: + [ ] acceptable under a CC-By-SA-3.0-USA license + [ ] acceptable (but licensing is more complicated) + [ ] not acceptable diff --git a/fosdem2012/FreeJavaDevRoom.mdwn b/fosdem2012/FreeJavaDevRoom.mdwn new file mode 100644 index 0000000..87ff5c7 --- /dev/null +++ b/fosdem2012/FreeJavaDevRoom.mdwn @@ -0,0 +1,10 @@ +# FOSDEM 2012 : Free Java DevRoom + +This is a pointer to the wiki for the +[[Free Java DevRoom 2012|http://wiki.debian.org/Java/DevJam/2012/Fosdem]] + +*Please note:* the [Talk Schedule][fosdem_free_java] is live on the FOSDEM website. + +[fosdem_free_java]: https://archive.fosdem.org/2012/schedule/track/free_java_devroom.html + + diff --git a/fosdem2012/LegalIssuesDevRoom.mdwn b/fosdem2012/LegalIssuesDevRoom.mdwn new file mode 100644 index 0000000..82397e4 --- /dev/null +++ b/fosdem2012/LegalIssuesDevRoom.mdwn @@ -0,0 +1,64 @@ +# FOSDEM 2012 : Legal Issues DevRoom + +Please join us for the very first DevRoom devoted to advanced +Legal Issues in the Free and Open Source Software world at +Europe's premier FLOSS event: [FOSDEM 2012][fosdem]. + +*Please note:* Check out the slides and blog links on the [[Speakers]] page. + +* Why the the Legal Issues DevRoom? + * This is the first time that influential legal minds will meet at FOSDEM + to discuss the core issues which enable FLOSS + * This will be an advanced session: beyond an intro to software copyright +* Why FOSDEM? + * Engage in scintillating discussions with smart + [hackers][about_fosdem] over world famous Belgian [Beer][beer_event] + * Indulge in exquisite [chocolate][choco_belge] + * Visit historic [[!wikipedia Brussels]] within walking distance + (check out the [spouses/partner's tour][partner_tour]) +* What should I do next? + * Block your calendar NOW (If you can, try to arrive at least on + Friday the 3rd and stay until Monday the 6th) + * Join our mailing list [**LegalIssues-devroom@lists.fosdem.org**][email_list] + * Read the [[Call For Participation|CFP]] + * Submit a 30 minute talk proposal(s) by the 30th of December. + * Plan travel and accommodations (many people like to stay around + the [[!wikipedia Grand Place]]) + * Join the conversation on IRC: /join **#faif** on [freenode][freenode] + +## Key Dates + +* 29 November 2011 [[CFP]] opens +* 30 December 2011 [[CFP]] deadline +* 6 January 2012 speakers selected +* 21 January 2012 full FOSDEM schedule finalized +* 3 February meet in Brussels for the [Beer Event][beer_event] (and + maybe a speaker's dinner _TBD_) +* 4 February FOSDEM day 1 and the Legal Issues DevRoom (_only Saturday_) +* 5 February FOSDEM day 2 +* 6 February return home + +## Meeting Details + +* [[Call For Participation|CFP]] +* The [Talk Schedule][fosdem_legal_issues] is live on the FOSDEM website. + +## Maps and Practical Information + +* Public Google Map of [FOSDEM sites][fosdem_map] +* Train from [BRU to Gare Centrale][train_bru] +* FOSDEM [transportation][fosdem_transport] + + + +[fosdem]: http://fosdem.org/2012/ +[about_fosdem]: http://fosdem.org/2012/about/fosdem +[beer_event]: http://fosdem.org/2012/beerevent +[choco_belge]: http://www.wisegeek.com/what-is-unique-about-belgian-chocolate.htm +[partner_tour]: http://fosdem.org/2012/fosdem-spousespartners-tour-0 +[fosdem_map]: http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=202757282552853677922.0004432e4cedd73a04efc&ll=50.833915,4.375134&spn=0.081963,0.146255&z=13 +[train_bru]: http://www.brussels-bru.airports-guides.com/bru_airport_transport.html +[fosdem_transport]: http://fosdem.org/2012/transportation +[email_list]: https://lists.fosdem.org/listinfo/legalissues-devroom +[freenode]: http://freenode.net +[fosdem_legal_issues]: https://archive.fosdem.org/2012/schedule/track/legal_issues_devroom.html diff --git a/fosdem2012/LegalIssuesDevRoom/CFP.mdwn b/fosdem2012/LegalIssuesDevRoom/CFP.mdwn new file mode 100644 index 0000000..f7d0f1e --- /dev/null +++ b/fosdem2012/LegalIssuesDevRoom/CFP.mdwn @@ -0,0 +1,60 @@ +# FOSDEM 2012 : Legal Issues DevRoom : CFP + +*Please note:* the CFP is now **CLOSED** + +This is the Call for Participation in the FOSDEM 2012 +[[Legal Issues DevRoom|LegalIssuesDevRoom]] + +Call for Participation **DEADLINE 30 December**
+Submit your proposal as an email to **fosdem-legal@faif.us** (see [[example here|ExampleProposal]]). + +This Legal and Policy issues DevRoom is designed to cover topics of +Free Software licensing and legal policy well beyond the basic issues. +Attendees should be aware of the basics of copyright, copyleft, +licensing, and patents. The goal for this DevRoom is to foster +in-depth discussion about complex policy, legal and licensing issues +that face the software freedom community today. + +Proposals are sought for talks, panel discussions, and guided +discussion groups that can investigate these sorts of issues. + +Any proposal topic fitting the above description is welcome, but might +include: + +* Copyleft licensing models and how they relate to business + models. Are there some business models that are license-permissible + but bad for community building? On the other side, does your + license choice limit or expand your community? + +* Copyleft enforcement and compliance planning from a developer + perspective. What is the future of GPL enforcement? Is it working? + What is its impact on adoption of copyleft? + +* Copyleft license compatibility. What are the challenges of code + base merges when various licenses are in use? How does a + compatibility analysis between licenses work? + +* Is GPLv2-only vs. GPLv2-or-later bifurcating the copyleft + communities? + +* Copyright assignment and contributor license agreements. What are the + issues to consider as a project and as a developer? + +As each talk will only be 30 min (including setup and brief Q/A), it +is highly advisible to define a set of terms and create a set of +links giving background information to your subject. Attendees +will be encouraged to review this prerequisite material to +be well prepared to jump right in to your material. + +We have a one hour panel with all the speakers for +general Q/A at the end of the day. This will be an unique +opportuntity to dive deeply into the interesting issues +uncovered during the day. + +It is highly unlikely that video gear will be available +to cover this event, but please indicate in your submission if +you are willing to be video recorded. + +For more background [[Legal Issues DevRoom|LegalIssuesDevRoom]] +please check out the latest [[Free as in Freedom oggcast|/tmarble/posts/You_are_going_to_find_yourself_immersed_in_legal_issues]]. + diff --git a/fosdem2012/LegalIssuesDevRoom/ExampleProposal.mdwn b/fosdem2012/LegalIssuesDevRoom/ExampleProposal.mdwn new file mode 100644 index 0000000..7cb9986 --- /dev/null +++ b/fosdem2012/LegalIssuesDevRoom/ExampleProposal.mdwn @@ -0,0 +1,24 @@ +# FOSDEM 2012 : Legal Issues DevRoom : Example proposal + +Please submit a proposal by **30 December** for the [[LegalIssuesDevRoom]] as +an e-mail in this format: + +--- + + To: fosdem-legal@faif.us + Subject: Talk Proposal + + Title: Your Talk Title Here + Abstract: + + + Brief Bio: + + Microblog URL: + Blog URL: + + Name (if different/missing from your e-mail address): + E-mail (if different from your e-mail address): + Recording me on audio and/or video is: + [ ] acceptable under a CC-By-SA-3.0-USA license + [ ] not acceptable diff --git a/fosdem2012/LegalIssuesDevRoom/Speakers.mdwn b/fosdem2012/LegalIssuesDevRoom/Speakers.mdwn new file mode 100644 index 0000000..68fb2ae --- /dev/null +++ b/fosdem2012/LegalIssuesDevRoom/Speakers.mdwn @@ -0,0 +1,67 @@ +# FOSDEM 2012 : Legal Issues DevRoom : Speakers + +The official [Talk Schedule][fosdem_legal_issues] for +the [[Legal Issues DevRoom|LegalIssuesDevRoom]] is +on the FOSDEM website. + +This page collects pointers to speaker bios (with blog and microblog links) +slides and FOSDEM related blog posts -- a **mini Legal Issues planet**! + +Please check the [Free as in Freedom][faif.us] site for audio oggcasts +of these presentations. + + +| Speaker | Slides | FOSDEM Blog post(s) | +|------------------------------------------------------|----------------------------------|---------------------------------------------------------------------------------------------------------------------------| +| [Philippe Laurent][philippe_laurent] | | | +| [Ambjörn Elder][ambjoern_elder] | | [Get the down and low before I stand up to be counted at FOSDEM][ambjoern_elder_blog] | +| [Armijn Hemel][armijn_hemel] | | | +| [Dave Neary][dave_neary] | [slides][dave_neary_slides] | | +| [Allison Randal][allison_randal] | [slides][allison_randal_slides] | | +| [Michael Meeks][michael_meeks] | [slides][michael_meeks_slides] | [2012-02-04: Saturday][michael_meeks_slides] | +| [Loïc Dachary][loic_dachary] | | | +| [John Sullivan][john_sullivan] | [slides][john_sullivan_slides] | | +| [Richard Fontana][richard_fontana] | [slides][richard_fontana_slides] | [The first FOSDEM Legal Issues DevRoom][richard_fontana_blog] | +| [Hugo Roy][hugo_roy] | | [FOSDEM 2012, panel on Application stores][hugo_roy_blog] | +| [Giovanni Battista Gallus][giovanni_battista_gallus] | | | +| [Bradley M. Kuhn][bradley_m_kuhn] | | | +| [Ciarán O'Riordan][ciaran_o_riordan] | | | +| [Benjamin Henrion][benjamin_henrion] | | | +| [Deb Nicholson][deb_nicholson] | | | +| [Karen Sandler][karen_sandler] | | [FOSDEM, part 1][karen_sandler_blog] | +| [Mike Linksvayer][mike_linksvayer] | [slides][mike_linksvayer_slides] | [FOSDEM 2012 Legal Issues DevRoom][mike_linksvayer_blog]
[FOSDEM 2012 and computational diversity][mike_linksvayer_blog2] | + +NOTE: let [[me|/tmarble]] know if there are updates to this list + +[fosdem_legal_issues]: http://fosdem.org/2012/schedule/track/legal_issues_devroom +[philippe_laurent]: http://fosdem.org/2012/schedule/speaker/philippe_laurent +[ambjoern_elder]: http://fosdem.org/2012/schedule/speaker/ambjoern_elder +[ambjoern_elder_blog]: https://netizenoftheworld.wordpress.com/2012/02/03/get-the-down-and-low-before-i-stand-up-to-be-counted-at-fosdem/ +[armijn_hemel]: http://fosdem.org/2012/schedule/speaker/armijn_hemel +[dave_neary]: http://fosdem.org/2012/schedule/speaker/dave_neary +[dave_neary_slides]: Legal_mixed_licences.odp +[allison_randal]: http://fosdem.org/2012/schedule/speaker/allison_randal +[allison_randal_slides]: legal_hygiene.pdf +[michael_meeks]: http://fosdem.org/2012/schedule/speaker/michael_meeks +[michael_meeks_slides]: http://people.gnome.org/~michael/blog/2012-02-04.html +[loic_dachary]: http://fosdem.org/2012/schedule/speaker/loic_dachary +[john_sullivan]: http://fosdem.org/2012/schedule/speaker/john_sullivan +[john_sullivan_slides]: sullivan_slides.pdf +[richard_fontana]: http://fosdem.org/2012/schedule/speaker/richard_fontana +[richard_fontana_slides]: http://fosdem-fontana.rhcloud.com/#1 +[richard_fontana_blog]: http://opensource.com/law/12/2/first-fosdem-legal-issues-devroom +[hugo_roy]: http://fosdem.org/2012/schedule/speaker/hugo_roy +[hugo_roy_blog]: http://blogs.fsfe.org/hugo/2012/02/fosdem-2012-panel-on-application-stores/ +[giovanni_battista_gallus]: http://fosdem.org/2012/schedule/speaker/giovanni_battista_gallus +[bradley_m_kuhn]: http://fosdem.org/2012/schedule/speaker/bradley_m_kuhn +[ciaran_o_riordan]: http://fosdem.org/2012/schedule/speaker/ciaran_o_riordan +[benjamin_henrion]: http://fosdem.org/2012/schedule/speaker/benjamin_henrion +[deb_nicholson]: http://fosdem.org/2012/schedule/speaker/deb_nicholson +[karen_sandler]: http://fosdem.org/2012/schedule/speaker/karen_sandler +[karen_sandler_blog]: http://blogs.gnome.org/gnomg/2012/02/04/fosdem-part-1/ +[mike_linksvayer]: http://fosdem.org/2012/schedule/speaker/mike_linksvayer +[mike_linksvayer_slides]: http://wiki.creativecommons.org/images/b/bf/20120204-fosdem-cc-floss-legaldevroom.pdf +[mike_linksvayer_blog]: http://gondwanaland.com/mlog/2012/02/09/fosdem2012-policy/ +[mike_linksvayer_blog2]: http://gondwanaland.com/mlog/2012/02/11/fosdem2012-misc/ +[faif.us]: http://faif.us + diff --git a/fosdem2012/LegalIssuesDevRoom/Speakers/Legal_mixed_licences.odp b/fosdem2012/LegalIssuesDevRoom/Speakers/Legal_mixed_licences.odp new file mode 100644 index 0000000..a43486d Binary files /dev/null and b/fosdem2012/LegalIssuesDevRoom/Speakers/Legal_mixed_licences.odp differ diff --git a/fosdem2012/LegalIssuesDevRoom/Speakers/legal_hygiene.pdf b/fosdem2012/LegalIssuesDevRoom/Speakers/legal_hygiene.pdf new file mode 100644 index 0000000..02dc43b Binary files /dev/null and b/fosdem2012/LegalIssuesDevRoom/Speakers/legal_hygiene.pdf differ diff --git a/fosdem2012/LegalIssuesDevRoom/Speakers/sullivan_slides.pdf b/fosdem2012/LegalIssuesDevRoom/Speakers/sullivan_slides.pdf new file mode 100644 index 0000000..a1771c6 Binary files /dev/null and b/fosdem2012/LegalIssuesDevRoom/Speakers/sullivan_slides.pdf differ diff --git a/fosdem2012/LegalIssuesDevRoom/TalkSchedule.mdwn b/fosdem2012/LegalIssuesDevRoom/TalkSchedule.mdwn new file mode 100644 index 0000000..a157a68 --- /dev/null +++ b/fosdem2012/LegalIssuesDevRoom/TalkSchedule.mdwn @@ -0,0 +1,8 @@ +# FOSDEM 2012 : Legal Issues DevRoom : Talk Schedule + + +*Please note:* the [Talk Schedule][fosdem_legal_issues] is live on the FOSDEM website. + +[fosdem_legal_issues]: https://archive.fosdem.org/2012/schedule/track/legal_issues_devroom.html + + diff --git a/fosdem2013/LegalIssuesDevRoom.mdwn b/fosdem2013/LegalIssuesDevRoom.mdwn new file mode 100644 index 0000000..ec62481 --- /dev/null +++ b/fosdem2013/LegalIssuesDevRoom.mdwn @@ -0,0 +1,61 @@ +# FOSDEM 2013 : Legal Issues DevRoom + +Please join us for the DevRoom devoted to advanced +Legal Issues in the Free and Open Source Software world at +Europe's premier FLOSS event: [FOSDEM 2013][fosdem]. + +* Why the the Legal Issues DevRoom? + * This is the second time that influential legal minds will meet at FOSDEM + to discuss the core issues which enable FLOSS + * This will be an advanced session: beyond an intro to software copyright +* Why FOSDEM? + * Engage in scintillating discussions with smart + [hackers][about_fosdem] over world famous Belgian [Beer][beer_event] _TBD_ + * Indulge in exquisite [chocolate][choco_belge] + * Visit historic [[!wikipedia Brussels]] within walking distance + (check out the [spouses/partner's tour][partner_tour] _TBD_) +* What should I do next? + * Block your calendar NOW (If you can, try to arrive at least on + Friday the 1st and stay until Monday the 4th) + * Join our mailing list [**LegalIssues-devroom@lists.fosdem.org**][email_list] + * Read the [[Call For Participation|CFP]] + * Submit a talk proposal(s) by the 21st of December. + * Plan travel and accommodations (many people like to stay around + the [[!wikipedia Grand Place]]) + * Join the conversation on IRC: /join **#faif** on [freenode][freenode] + +## Key Dates + +* 10 November 2012 [[CFP]] opens +* 21 December 2012 [[CFP]] deadline +* 28 December speakers selected +* 10 January 2013 full FOSDEM schedule finalized +* 1 February meet in Brussels for the [Beer Event][beer_event] +* 2 February FOSDEM day 1 +* 3 February FOSDEM day 2 +* 4 February return home + +## Meeting Details + +* [[Call For Participation|CFP]] _closed_ +* The [Talk Schedule][fosdem_legal_issues] is on the FOSDEM website. + +## Maps and Practical Information + +* Public Google Map of [FOSDEM sites][fosdem_map] +* Train from [BRU to Gare Centrale][train_bru] +* FOSDEM [transportation][fosdem_transport] _TBD_ + + + +[fosdem]: https://fosdem.org/2013/ +[about_fosdem]: https://fosdem.org/2013/about/ +[beer_event]: https://fosdem.org/2013/practical/beerevent/ +[choco_belge]: http://www.wisegeek.com/what-is-unique-about-belgian-chocolate.htm +[partner_tour]: https://fosdem.org/2013/practical/sightseeing/ +[fosdem_map]: http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=202757282552853677922.0004432e4cedd73a04efc&ll=50.833915,4.375134&spn=0.081963,0.146255&z=13 +[train_bru]: http://www.brussels-bru.airports-guides.com/bru_airport_transport.html +[fosdem_transport]: https://fosdem.org/2013/practical/transportation/ +[email_list]: https://lists.fosdem.org/listinfo/legalissues-devroom +[freenode]: http://freenode.net +[fosdem_legal_issues]: https://fosdem.org/2013/schedule/track/legal_issues/ diff --git a/fosdem2013/LegalIssuesDevRoom/CFP.mdwn b/fosdem2013/LegalIssuesDevRoom/CFP.mdwn new file mode 100644 index 0000000..d0af224 --- /dev/null +++ b/fosdem2013/LegalIssuesDevRoom/CFP.mdwn @@ -0,0 +1,67 @@ +# FOSDEM 2013 : Legal Issues DevRoom : CFP + +This is the Call for Participation in the FOSDEM 2013 +[[Legal Issues DevRoom|LegalIssuesDevRoom]] + +Call for Participation **DEADLINE 21 December 2012**
+Submit your proposal as an email to **fosdem-legal@faif.us** (see [[example here|ExampleProposal]]). + +Speakers will be notified of acceptance by the end of the day US/Eastern +on 28 December 2012. We ask submitters to be responsive (if possible) +to email the week of 24 December 2012 for follow-up questions regarding +their proposals. If you are not available for follow-up questions +that week please try to submit your proposal earlier and let us know +(so we can try to ask you any questions we may have before then). + +This Legal and Policy issues DevRoom is designed to cover topics of +Free Software licensing and legal policy. While proposals for introductory topics +in this area are welcome, we are specifically seeking proposals on advanced +topics in Free Software policy, licensing, trademark, patent and other legal topics. + +The goal for this DevRoom is to foster in-depth discussion about complex +policy, legal and licensing issues that face the software freedom +community today. + +Proposals are sought for talks, panel discussions, and guided +discussion groups that can investigate these sorts of issues. + +Any proposal topic fitting the above description is welcome, but some good +topics might include: + +* Copyleft vs. permissive licensing: What is a policy case for + copyleft? If so what form should it take? + +* Copyright assignment and contributor license agreements. What are the + issues to consider as a project and as a developer? + +* Copyleft licensing models and how they relate to business + models. Are there some business models that are license-permissible + but bad for community building? On the other side, does your + license choice limit or expand your community? + +* Copyleft enforcement and compliance planning from a developer + perspective. What is the future of GPL enforcement? Is it working? + What is its impact on adoption of copyleft? + +* Copyleft license compatibility. What are the challenges of code + base merges when various licenses are in use? How does a + compatibility analysis between licenses work? + +* Is GPLv2-only vs. GPLv2-or-later bifurcating the copyleft + communities? + +Each talk will only be 40 minutes, and 5 minutes reserved for Q&A, +although shorter talks with longer Q&A are encouraged. It is highly +advisible to define a set of terms and create a set of links giving +background information to your subject. Attendees will be encouraged to +review this prerequisite material to be well prepared to jump right in to +your material. + +It is highly unlikely that video gear will be available to cover this +event, but all talks will be recorded on audio. Please indicate in your +submission if you are willing to be recorded on video and/or audio, and +if you're willing to license those recordings CC-By-SA-USA 3.0. + +For more background on the [[Legal Issues DevRoom|LegalIssuesDevRoom]] +please check out this archived latest [[Free as in Freedom oggcast|/tmarble/posts/You_are_going_to_find_yourself_immersed_in_legal_issues]]. + diff --git a/fosdem2013/LegalIssuesDevRoom/ExampleProposal.mdwn b/fosdem2013/LegalIssuesDevRoom/ExampleProposal.mdwn new file mode 100644 index 0000000..1b2f20d --- /dev/null +++ b/fosdem2013/LegalIssuesDevRoom/ExampleProposal.mdwn @@ -0,0 +1,25 @@ +# FOSDEM 2013 : Legal Issues DevRoom : Example proposal + +Please submit a proposal by **21 December** for the [[LegalIssuesDevRoom]] as +an e-mail in this format: + +--- + + To: fosdem-legal@faif.us + Subject: Talk Proposal + + Title: Your Talk Title Here + Abstract: + + + Brief Bio: + + Microblog URL: + Blog URL: + + Name (if different/missing from your e-mail address): + E-mail (if different from your e-mail address): + Recording me on audio and/or video is: + [ ] acceptable under a CC-By-SA-3.0-USA license + [ ] acceptable (but licensing is more complicated) + [ ] not acceptable diff --git a/header_background.png b/header_background.png new file mode 100644 index 0000000..4712ffb Binary files /dev/null and b/header_background.png differ diff --git a/index.mdwn b/index.mdwn index b45ce81..f35e542 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,20 +1,13 @@ -Welcome to the wiki +Welcome to the Informatique Inc. wiki -# CGI +Pages: -Now CGI updating works without a delay! - -For real this time, no jokes! - -This line is from ficelle (bis). - -Now let's see if the CGI thing really works... - -# Sandbox - -All wikis are supposed to have a [[SandBox]], -so this one does too. + * The blog for [[tmarble]] + * The wiki for [[FOSDEM|fosdem]] devrooms + * Tips on setting up [[SecureMail]] on Windows + * All wikis are supposed to have a [[SandBox]], so this one does too. + * Check out the [[EditingTips]] for this wiki ---- -This wiki is powered by [ikiwiki](http://ikiwiki.info). +This wiki is powered by [[ikiwiki]]. diff --git a/local.css b/local.css new file mode 100644 index 0000000..57c1e24 --- /dev/null +++ b/local.css @@ -0,0 +1,791 @@ +/* ikiwiki style sheet */ + +/* Note that instead of modifying this style sheet, you can instead edit + * local.css and use it to override or change settings in this one. + */ + +/* html5 compat */ +article, +header, +footer, +nav { + display: block; +} + +.header { + margin: 0; + font-size: 140%; + font-weight: bold; + line-height: 1em; + display: block; +} + +.inlineheader .author { + margin: 0; + font-size: 112%; + font-weight: bold; + display: block; +} + +.actions ul { + margin: 0; + padding: 6px .4em; + height: 1em; + list-style-type: none; +} +.actions li { + display: inline; + padding: .2em; +} +.pageheader .actions ul { + border-bottom: 1px solid #000; +} + +.inlinepage .actions ul { + border-bottom: 0; +} + +#otherlanguages ul { + margin: 0; + padding: 6px; + list-style-type: none; +} +#otherlanguages li { + display: inline; + padding: .2em .4em; +} +.pageheader #otherlanguages { + border-bottom: 1px solid #000; +} + +.inlinecontent { + margin-top: .4em; +} + +.pagefooter, +.inlinefooter, +.comments { + clear: both; +} + +#pageinfo { + margin: 1em 0; + border-top: 1px solid #000; +} + +.tags { + margin-top: 1em; +} + +.inlinepage .tags { + display: inline; +} + +.mapparent { + text-decoration: none; +} + +.img caption { + font-size: 80%; + caption-side: bottom; + text-align: center; +} + +img.img { + margin: 0.5ex; +} + +.align-left { + float:left; +} + +.align-right { + float:right; +} + +#backlinks { + margin-top: 1em; +} + +#searchform { + display: inline; + float: right; +} + +#editcontent { + width: 98%; +} + +.editcontentdiv { + width: auto; + overflow: auto; +} + +img { + border-style: none; +} + +pre { + overflow: auto; +} + +div.recentchanges { + border-style: solid; + border-width: 1px; + overflow: auto; + width: auto; + clear: none; + background: #eee; + color: black !important; +} +.recentchanges .metadata { + padding: 0px 0.5em; +} +.recentchanges .changelog { + font-style: italic; + clear: both; + display: block; + padding: 1px 2px; + background: white !important; + color: black !important; +} +.recentchanges .desc { + display: none; +} +.recentchanges .diff { + display: none; +} +.recentchanges .committer { + float: left; + margin: 0; + width: 40%; +} +.recentchanges .committype { + float: left; + margin: 0; + width: 5%; + font-size: small; +} +.recentchanges .changedate { + float: left; + margin: 0; + width: 35%; + font-size: small; +} +.recentchanges .pagelinks, +.recentchanges .revert { + float: right; + margin: 0; + width: 60%; +} + +.blogform, #blogform { + padding: 10px 10px; + border: 1px solid #aaa; + background: #eee; + color: black !important; + width: auto; + overflow: auto; +} + +.inlinepage { + padding: 10px 10px; + border: 1px solid #aaa; + overflow: auto; +} + +.pagedate, +.pagelicense, +.pagecopyright { + font-style: italic; + display: block; + margin-top: 1em; +} + +.error { + color: #C00; +} + +.sidebar { + /* width: 20ex; */ + width: 4ex; + float: right; + margin-left: 4px; + margin-bottom: 4px; + margin-top: -1px; + padding: 0ex 2ex; + background: white; + border: 1px solid black; + color: black !important; +} + +hr.poll { + height: 10pt; + color: white !important; + background: #eee; + border: 2px solid black; +} +div.poll { + margin-top: 1ex; + margin-bottom: 1ex; + padding: 1ex 1ex; + border: 1px solid #aaa; +} + +span.color { + padding: 2px; +} + +.comment-header, +.microblog-header { + font-style: italic; + margin-top: .3em; +} +.comment .author, +.microblog .author { + font-weight: bold; +} +.comment-subject { + font-weight: bold; +} +.comment { + border: 1px solid #aaa; + padding: 3px; +} + +div.progress { + margin-top: 1ex; + margin-bottom: 1ex; + border: 1px solid #888; + width: 400px; + background: #eee; + color: black !important; + padding: 1px; +} +div.progress-done { + background: #ea6 !important; + color: black !important; + text-align: center; + padding: 1px; +} + +/* things to hide in printouts */ +@media print { + .actions { display: none; } + .tags { display: none; } + .feedbutton { display: none; } + #searchform { display: none; } + .blogform, #blogform { display: none; } + #backlinks { display: none; } +} + +/* infobox template */ +.infobox { + float: right; + margin-left: 2ex; + margin-top: 1ex; + margin-bottom: 1ex; + padding: 1ex 1ex; + border: 1px solid #aaa; + background: white; + color: black !important; +} + +/* notebox template */ +.notebox { + float: right; + margin-left: 2ex; + margin-top: 1ex; + margin-bottom: 1ex; + padding: 1ex 1ex; +/* orig + border: 1px solid #aaa; + width: 25%; +*/ + border: 1px solid #999; + width: 1%; + background: white; + color: black !important; +} + +/* popup template and backlinks hiding */ +.popup { + border-bottom: 1px dotted #366; + color: #366; +} +.popup .balloon, +.popup .paren, +.popup .expand { + display: none; +} +.popup:hover .balloon, +.popup:focus .balloon { + position: absolute; + display: inline; + margin: 1em 0 0 -2em; + padding: 0.625em; + border: 2px solid; + background-color: #dee; + color: black; +} + +/* form styling */ +fieldset { + margin: 1ex 0; + border: 1px solid black; +} +legend { + padding: 0 1ex; +} +.fb_submit { + float: left; + margin: 2px 0; +} +label.block { + display: block; +} +label.inline { + display: inline; +} +input#openid_identifier { + background: url(wikiicons/openidlogin-bg.gif) no-repeat; + background-color: #fff; + background-position: 0 50%; + color: #000; + padding-left: 18px; +} +input#searchbox { + background: url(wikiicons/search-bg.gif) no-repeat; + background-color: #fff; + background-position: 100% 50%; + color: #000; + padding-right: 16px; +} +/* invalid form fields */ +.fb_invalid { + color: red; + background: white !important; +} +/* required form fields */ +.fb_required { + font-weight: bold; +} + +/* highlight plugin */ +pre.hl { color:#000000; background-color:#ffffff; } +.hl.num { color:#2928ff; } +.hl.esc { color:#ff00ff; } +.hl.str { color:#ff0000; } +.hl.dstr { color:#818100; } +.hl.slc { color:#838183; font-style:italic; } +.hl.com { color:#838183; font-style:italic; } +.hl.dir { color:#008200; } +.hl.sym { color:#000000; } +.hl.line { color:#555555; } +.hl.mark { background-color:#ffffbb; } +.hl.kwa { color:#000000; font-weight:bold; } +.hl.kwb { color:#830000; } +.hl.kwc { color:#000000; font-weight:bold; } +.hl.kwd { color:#010181; } + +/* calendar plugin */ +.month-calendar-day-this-day, +.year-calendar-this-month { + background-color: #eee; +} +.month-calendar-day-head, +.month-calendar-day-nolink, +.month-calendar-day-link, +.month-calendar-day-this-day, +.month-calendar-day-future { + text-align: right; +} +.month-calendar-arrow A:link, +.year-calendar-arrow A:link, +.month-calendar-arrow A:visited, +.year-calendar-arrow A:visited { + text-decoration: none; + font-weight: normal; + font-size: 150%; +} + +/* outlines */ +li.L1 { list-style: upper-roman; } +li.L2 { list-style: decimal; } +li.L3 { list-style: lower-alpha; } +li.L4 { list-style: disc; } +li.L5 { list-style: square; } +li.L6 { list-style: circle; } +li.L7 { list-style: lower-roman; } +li.L8 { list-style: upper-alpha; } + +/* tag cloud */ +.pagecloud { + float: right; + width: 30%; + text-align: center; + padding: 10px 10px; + border: 1px solid #aaa; + background: #eee; + color: black !important; +} +.smallestPC { font-size: 70%; } +.smallPC { font-size: 85%; } +.normalPC { font-size: 100%; } +.bigPC { font-size: 115%; } +.biggestPC { font-size: 130%; } + +/* orange feed button */ +.feedbutton { + background: #ff6600; + color: white !important; + border-left: 1px solid #cc9966; + border-top: 1px solid #ccaa99; + border-right: 1px solid #993300; + border-bottom: 1px solid #331100; + padding: 0px 0.5em 0px 0.5em; + font-family: sans-serif; + font-weight: bold; + font-size: small; + text-decoration: none; + margin-top: 1em; +} +.feedbutton:hover { + color: white !important; + background: #ff9900; +} + +.FlattrButton { + display: none; +} + +/* openid selector */ +#openid_choice { + display: none; +} +#openid_input_area { + clear: both; + padding: 10px; +} +#openid_btns, #openid_btns br { + clear: both; +} +#openid_highlight { + background-color: black; + float: left; +} +.openid_large_btn { + padding: 1em 1.5em; + border: 1px solid #DDD; + margin: 3px; + float: left; +} +.openid_small_btn { + padding: 4px 4px; + border: 1px solid #DDD; + margin: 3px; + float: left; +} +a.openid_large_btn:focus { + outline: none; +} +a.openid_large_btn:focus { + outline-style: none; +} +.openid_selected { + border: 4px solid #DDD; +} +/* bzed theme for ikiwiki + * + * Copyright (C) 2010 Bernd Zeimetz + * Licensed under same license as ikiwiki: GPL v2 or later + * + * Parts of this file are based on the awesome YUI, + * these parts will stay under the BSD license, + * but you're free to apply the GPLv2 to them, of course. + */ + + + +/* ------------------------------------------------------------------------------------------------- +Based on reset-fonts-grids.css from yui. +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.5.1 +*/ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,legend,p,blockquote,th,td{margin:0;padding:0;} +table{border-collapse:collapse;border-spacing:0;} +img{border:0;} +address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} +li{list-style:none;} +caption,th{text-align:left;} +h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} +q:before,q:after{content:'';} +abbr,acronym {border:0;font-variant:normal;} +sup {vertical-align:text-top;} +sub {vertical-align:text-bottom;} +input,textarea,select{font-family:inherit;font-size: 13px/1.23;font-weight:normal;} +input,textarea,select{*font-size:100%;} +legend{color:#000;} +/* body {font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} */ +body {font:13px/1.231 "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;*font-size:small;*font:x-small;} +table {font-size:inherit;font:100%;} +pre,code,kbd,samp,tt{font-family:monospace;} + + +body{text-align:left;} +.inlinefooter{clear:both;} + +/* #doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;min-width:750px;} */ +/* +.page {margin:auto;text-align:left;width:57.69em;*width:56.25em;min-width:750px;} +*/ +.page { + margin:auto; + text-align:left; + min-width:750px; + position:static; +} + +/* #doc3{margin:auto 10px;width:auto;} */ +/* +.page {margin:auto 10px;width:auto;} +*/ + +#pagebody, .sidebar{position:relative;} +#pagebody, .sidebar{_position:static;} +#pagebody {position:static;} +/* .sidebar {float:right;width:16.5em;*width:16em;} */ +.sidebar {float:right;width:1.5em;*width:1em;} +/* #pagebody {margin-right:19em;*margin-right:18.5em;} */ +#pagebody {margin-right:1em;*margin-right:0.5em;} +/* #content {float:none;width:auto;} */ +#pagebody:after, .sidebar:after, .page:after{content:".";display:block;height:0;clear:both;visibility:hidden;} +.page f{zoom:1;} + +/* ------------------------------------------------------------------------------------------------ + * Taken from base.css, part of YUI's CSS Foundation + * Copyright (c) 2008, Yahoo! Inc. All rights reserved. + * Code licensed under the BSD License: + * http://developer.yahoo.net/yui/license.txt + * version: 2.5.1 +*/ +h1 { + /*18px via YUI Fonts CSS foundation*/ + font-size:138.5%; +} +h2 { + /*16px via YUI Fonts CSS foundation*/ + font-size:123.1%; +} +h3 { + /*14px via YUI Fonts CSS foundation*/ + font-size:108%; +} +h1,h2,h3 { + /* top & bottom margin based on font size */ + margin:1em 0; +} +h1,h2,h3,h4,h5,h6,strong { + /*bringing boldness back to headers and the strong element*/ + font-weight:bold; +} +abbr,acronym { + /*indicating to users that more info is available */ + border-bottom:1px dotted #000; + cursor:help; +} +em { + /*bringing italics back to the em element*/ + font-style:italic; +} +blockquote,ul,ol,dl { + /*giving blockquotes and lists room to breath*/ + margin:1em; +} +ol,ul,dl { + /*bringing lists on to the page with breathing room */ + margin-left:2em; +} +ol li { + /*giving OL's LIs generated numbers*/ + list-style: decimal outside; +} +ul li { + /*giving UL's LIs generated disc markers*/ + list-style: disc outside; +} +dl dd { + /*giving UL's LIs generated numbers*/ + margin-left:1em; +} +th,td { + /*borders and padding to make the table readable*/ + border:1px solid #000; + padding:.5em; +} +th { + /*distinguishing table headers from data cells*/ + font-weight:bold; + text-align:center; +} +caption { + /*coordinated margin to match cell's padding*/ + margin-bottom:.5em; + /*centered so it doesn't blend in to other content*/ + text-align:center; +} +p,fieldset,table,pre { + /*so things don't run into each other*/ + margin-bottom:1em; +} + +#searchbox { + width:21.5em;*width:21em; +} + + + +/* ------------------------------------------------------------------------------------------------ + * All CSS below is + * Copyright (C) 2010 Bernd Zeimetz + * Licensed under same license as ikiwiki: GPL v2 or later */ + +.page, .pageheader, .sidebar, #content, #comments, .inlinepage, .recentchanges, .pageheader .actions ul, #pagebody { + border: none; +} + +html, body { + color:#000; + /* background-image: url('body_background.png'); + background-repeat: repeat; */ + /* background-color: #8da1b8; */ + /* background-color: #295382; matches blue */ + background-color: #123256; +} + +body { + padding-left: 5%; + padding-right: 5%; + padding-top: 1em; + padding-bottom: 1em; +} + +.page { + background: #fff; + border: outset #ccc; + padding-left: 1em; + padding-right: 1em; + padding-top: 1em; +} + +.pageheader { + background-image: url('header_background.png'); + background-repeat: repeat-x; + height: 100px; + padding-left: 1em; + padding-right: 1em; + padding-bottom: 1em; + padding-top: 1em; +} + +.pageheader .header { + text-align: top; + clear: both; +} + +.pageheader .header form { + padding: 0em 0em 0em 0em; + float: right; + margin-top: 0.5em; +} + +.pageheader .header .title, .pageheader .header .parentlinks, + .inlinepage .inlineheader, + h1, h2, h3, h4, h5, h6 { + margin-top: 1em; + font-weight: bold; +} + +.pageheader .header .title, .pageheader .header .parentlinks, .pageheader .actions ul li, .pageheader .header span, .pageheader #otherlanguages ul li { + padding: 0.25em 0.25em 0.25em 0.25em; + background-image: url('background_darkness.png'); + background-repeat: repeat; + color: white; +} + +.pageheader .header span a, .pageheader .actions ul li a, .pageheader .header .parentlinks a, .pageheader #otherlanguages ul li a { + color: white; + text-decoration: none; +} + +.pageheader .actions { + text-align: right; + vertical-align: bottom; + clear: both; +} + +#pagebody { + padding-right: 1em; + padding-bottom: 2em; + /* border-right: ridge #eee; */ + clear: none; +} + +#content a, #comments a, .sidebar a { + color: #315485; + text-decoration: none; + font-weight: bold; +} + +.sidebar h2 { + border-bottom: ridge #eee; + padding-right: 0; +} + +.sidebar .menu { + margin-left: 1em; +} + + +.inlinepage, .recentchanges, div.recentchanges { + clear: none !important; + margin-bottom: 2em; +} + +.inlinefooter { + border-top: 1px dotted #315485; +} + +.inlinefooter .pagedate, .inlinefooter .tags { + display: inline; + clear: none; + margin-right: 2em; +} + +.calendar .month-calendar th, .calendar .month-calendar td { + padding: 0.22em; +} + +@media print { + .sidebar, .page .pageheader .header .parentlinks { + content:"."; + display:block; + height:0; + visibility:hidden; + } + .page { + padding: 1em 1em 1em 1em; + } + .pageheader .header span a, .pageheader .actions ul li a, .pageheader .header .parentlinks a { + color #315485; + } + #content, #comments, #pagebody { + margin-right: 0; + *margin-right: 0; + border-right: none; + } + +} + diff --git a/pageone.mdwn b/pageone.mdwn new file mode 100644 index 0000000..65c4df0 --- /dev/null +++ b/pageone.mdwn @@ -0,0 +1,19 @@ +# PageOne + +This is PageOne + +Here is a [[SubPageA]] + +Here is another [[PageOne/SubPageB]] + +Now this is a comment that I added via git. + +Here is a second commit via git. + +This is a local edit from avion. + +2nd local edit from avion. + +And another local edit. + +This edit is via Google as an ID provider. diff --git a/pageone/discussion.mdwn b/pageone/discussion.mdwn new file mode 100644 index 0000000..45cee24 --- /dev/null +++ b/pageone/discussion.mdwn @@ -0,0 +1 @@ +This is a **sample** discussion. diff --git a/pageone/subpagea.mdwn b/pageone/subpagea.mdwn new file mode 100644 index 0000000..44d9ab7 --- /dev/null +++ b/pageone/subpagea.mdwn @@ -0,0 +1,7 @@ +# SubPageA + +SubPageA -- really + +Back to [[PageOne]] + +Over to [[SubPageB]] diff --git a/pageone/subpageb.mdwn b/pageone/subpageb.mdwn new file mode 100644 index 0000000..0b95208 --- /dev/null +++ b/pageone/subpageb.mdwn @@ -0,0 +1,3 @@ +# SubPageB + +SubPageB diff --git a/sandbox.mdwn b/sandbox.mdwn new file mode 100644 index 0000000..8af2e9f --- /dev/null +++ b/sandbox.mdwn @@ -0,0 +1,36 @@ +This is the SandBox, a page anyone can edit to learn how to use the wiki. + +Hope you enjoy it! + +--Tom + +---- + +Here's a paragraph. + +Here's another one with *emphasised* text. + +# Header + +## Subheader + +> This is a blockquote. +> +> This is the first level of quoting. +> +> > This is nested blockquote. +> +> Back to the first level. + +Numbered list + +1. First item. +1. Another. +1. And another.. + +Bulleted list + +* *item* +* item + +[[ikiwiki/WikiLink]] diff --git a/securemail.mdwn b/securemail.mdwn new file mode 100644 index 0000000..0b1f120 --- /dev/null +++ b/securemail.mdwn @@ -0,0 +1,23 @@ +# Secure Mail for Windows + +So you are stuck on Windows, but would like to be able +to exchange PGP/MIME encrypted e-mail? + +This is a brief guide to get you started! + +Here are the steps for setting up secure e-mail on Windows: + + 1. Setup GNU Privacy Guard [[GPG]] (set up a private key) + 1. Configure [[Thunderbird]] for e-mail to use GPG + +Once you get a GPG key you will probably want to explore +a variety of interesting applications beyond e-mail that take advantage +of the "web-of-trust" that you can now join. Joining the web-of-trust +by attending a "Key Signing Party" is beyond the scope of +this tutorial. + +We're going to be using GPG with Thunderbird via the Enigmail +extension. For more detailed background on Enigmail see the +[[Enigmail Quick Start Guide|http://enigmail.mozdev.org/documentation/quickstart.php.html]]. + +[[!tag e-mail]] diff --git a/securemail/gpg.bat b/securemail/gpg.bat new file mode 100755 index 0000000..7792aca --- /dev/null +++ b/securemail/gpg.bat @@ -0,0 +1,5 @@ +@echo off +echo gpg %* +set GPG="C:\Program Files\GNU\GnuPG\gpg.exe" +%GPG% %* + \ No newline at end of file diff --git a/securemail/gpg.conf b/securemail/gpg.conf new file mode 100755 index 0000000..98dab48 --- /dev/null +++ b/securemail/gpg.conf @@ -0,0 +1,5 @@ +# C:\Users\your-username\AppData\Roaming\gnupg\gpg.conf +personal-digest-preferences SHA512 +cert-digest-algo SHA512 +default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed +keyserver keys.gnupg.net diff --git a/securemail/gpg.mdwn b/securemail/gpg.mdwn new file mode 100644 index 0000000..2c2e480 --- /dev/null +++ b/securemail/gpg.mdwn @@ -0,0 +1,40 @@ +# GPG Configuration on Windows for Secure Mail +**Beginning** | *step 1 of 5* | [[Next|gpg2]] + +## Install GPG + + 1. Download GNU Privacy Guard + * Do "Right-click, Save As..." this file: [[gnupg.exe|ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.11.exe]] + * *tip:* If you want to read more about GPG see the [[GPG homepage|http://www.gnupg.org/]] + 1. Open (Run) that file to install GPG + 1. Download this GPG helper file (This makes it easier to run GPG) + * Do "Right-click, Save As..." this file: gpg.bat + * Save it to (or move it to) your HOME directory. If your username + is **foo** then your HOME directory is **C:\Users\foo** + 1. You can now open a command window + * *Start | All Programs | Accessories | Command Prompt* + * list the contents of your HOME directory with **dir** (see screenshot below) + * You can make sure that gpg is installed (and the helper batch file works) by typing **gpg --version** + 1. Create a new GPG configuration directory + * This directory should be **C:\Users\foo\AppData\Roaming\gnupg** + * You can create it using *Start | All Programs | Accessories | Windows Explorer* + * Alternatively you can do this in the command window: + * C:\Users\foo> mkdir AppData + * C:\Users\foo> cd AppData + * C:\Users\foo\AppData> mkdir Roaming + * C:\Users\foo\AppData> cd Roaming + * C:\Users\foo\AppData\Roaming> mkdir gnupg + 1. Download this GPG configuration file (insures a strong key will be created) + * Do "Right-click, Save As..." this file: gpg.conf + * Save it to (or move it to) your GPG configuration directory you just created. + * It should be located at **C:\Users\foo\AppData\Roaming\gnupg\gpg.conf** + * If you want to know why this configuration is important please + see [[OpenPGP for Debian|http://www.debian-administration.org/users/dkg/weblog/48]] + 1. Go back to your HOME directory + * C:\Users\foo\AppData\Roaming> cd \Users\foo + * C:\Users\foo> + 1. Proceed to the [[Next|gpg2]] step + +[[!img gpg1.png align=left]] + +[[!tag e-mail gpg]] diff --git a/securemail/gpg1.png b/securemail/gpg1.png new file mode 100644 index 0000000..3b948c7 Binary files /dev/null and b/securemail/gpg1.png differ diff --git a/securemail/gpg2.mdwn b/securemail/gpg2.mdwn new file mode 100644 index 0000000..82f97cf --- /dev/null +++ b/securemail/gpg2.mdwn @@ -0,0 +1,23 @@ +# GPG Configuration on Windows for Secure Mail +[[Prev|gpg]] | *step 2 of 5* | [[Next|gpg3]] + +## Generate a new GPG key + + 1. In the command window generate a new GPG key + * Type **gpg --gen-key** + * Choose the type **RSA (sign only)** + * Choose size **4096** + * Choose expiration **key does not expire** + * Enter your Real name: **Foo Bar** + * Enter your e-mail address: **foo@info9.net** + * Select **Okay** and do some serious web surfing to keep your computer busy to create entropy while your key is generated! + 1. Guard your GPG passphrase carefully + * Your GPG key passphrase is like the password to your identity: + take care in choosing a good password. It's actually better if + it's not just one word, but a few words. + * Do not lose this passphrase: it is impossible for anyone to recover it. + 1. Make a note of your "Key ID" + * {x} Write down the 8 hexidecimal digit key identifier (in the screenshot below it's **1C9771DB**) + 1. Proceed to the [[Next|gpg3]] step + +[[!img gpg2.png align=left]] diff --git a/securemail/gpg2.png b/securemail/gpg2.png new file mode 100644 index 0000000..10b3793 Binary files /dev/null and b/securemail/gpg2.png differ diff --git a/securemail/gpg3.mdwn b/securemail/gpg3.mdwn new file mode 100644 index 0000000..f6811b1 --- /dev/null +++ b/securemail/gpg3.mdwn @@ -0,0 +1,18 @@ +# GPG Configuration on Windows for Secure Mail +[[Prev|gpg2]] | *step 3 of 5* | [[Next|gpg4]] + +## Add an encryption subkey + + 1. In the command window create a new GPG encryption subkey: + * Type **gpg --edit-key foo@info9.net** (*with your e-mail address, of course*) + * Type **addkey** + * Choose type **RSA (encrypt only)** + * Choose size **4096** + * Choose expiration **key does not expire** + * Select *Okay* and do some serious web surfing to keep your + computer busy to create entropy while your key is generated! + * type **save** + 1. Proceed to the [[Next|gpg4]] step + +[[!img gpg3.png align=left]] + diff --git a/securemail/gpg3.png b/securemail/gpg3.png new file mode 100644 index 0000000..6121a2b Binary files /dev/null and b/securemail/gpg3.png differ diff --git a/securemail/gpg4.mdwn b/securemail/gpg4.mdwn new file mode 100644 index 0000000..382c568 --- /dev/null +++ b/securemail/gpg4.mdwn @@ -0,0 +1,21 @@ +# GPG Configuration on Windows for Secure Mail +[[Prev|gpg3]] | *step 4 of 5* | [[Next|gpg5]] + +## Generate a revocation certificate + + 1. You do not strictly need a revocation certificate, but now + is the most convenient time to create it. + * If for some reason your computer is lost or stolen you + will be able revoke your key. + 1. In the command window create a revocation certificate: + * Type **gpg --gen-revoke --output 1C9771DB.revoke.asc 1C9771DB** + (*with your hexidecimal Key ID , of course*) + * Choose reason 1, Key has been compromised (if you maintain + control of your key you can always issue a revocation certificate + with another reason) + * Make a note to save and print this certificate + 1. Proceed to the [[Next|gpg5]] step + +[[!img gpg4.png align=left]] + + diff --git a/securemail/gpg4.png b/securemail/gpg4.png new file mode 100644 index 0000000..d933f87 Binary files /dev/null and b/securemail/gpg4.png differ diff --git a/securemail/gpg5.mdwn b/securemail/gpg5.mdwn new file mode 100644 index 0000000..859a36e --- /dev/null +++ b/securemail/gpg5.mdwn @@ -0,0 +1,15 @@ +# GPG Configuration on Windows for Secure Mail +[[Prev|gpg4]] | *step 5 of 5* | **End** + +## Export an ascii encoded version of your public key to share + + 1. Export your public key: + * In order for other people to send you secure e-mail they + must have your public key, so here's how to save it in file + (that you can share). + * Type **gpg --armor --output foo.asc --export foo@info9.net** + (*with your username and e-mail, of course*) + 1. Congratulations :) You are now ready to configure [[Thunderbird]] + +[[!img gpg5.png align=left]] + diff --git a/securemail/gpg5.png b/securemail/gpg5.png new file mode 100644 index 0000000..ee01a3c Binary files /dev/null and b/securemail/gpg5.png differ diff --git a/securemail/tbird1.png b/securemail/tbird1.png new file mode 100644 index 0000000..2435121 Binary files /dev/null and b/securemail/tbird1.png differ diff --git a/securemail/tbird10.png b/securemail/tbird10.png new file mode 100644 index 0000000..49a569e Binary files /dev/null and b/securemail/tbird10.png differ diff --git a/securemail/tbird11.png b/securemail/tbird11.png new file mode 100644 index 0000000..38d28c1 Binary files /dev/null and b/securemail/tbird11.png differ diff --git a/securemail/tbird12.png b/securemail/tbird12.png new file mode 100644 index 0000000..810a2e0 Binary files /dev/null and b/securemail/tbird12.png differ diff --git a/securemail/tbird13.png b/securemail/tbird13.png new file mode 100644 index 0000000..ccd429e Binary files /dev/null and b/securemail/tbird13.png differ diff --git a/securemail/tbird14.png b/securemail/tbird14.png new file mode 100644 index 0000000..f711ce9 Binary files /dev/null and b/securemail/tbird14.png differ diff --git a/securemail/tbird15.png b/securemail/tbird15.png new file mode 100644 index 0000000..009bca7 Binary files /dev/null and b/securemail/tbird15.png differ diff --git a/securemail/tbird16.png b/securemail/tbird16.png new file mode 100644 index 0000000..ee51d08 Binary files /dev/null and b/securemail/tbird16.png differ diff --git a/securemail/tbird17.png b/securemail/tbird17.png new file mode 100644 index 0000000..8853ea1 Binary files /dev/null and b/securemail/tbird17.png differ diff --git a/securemail/tbird2.png b/securemail/tbird2.png new file mode 100644 index 0000000..258a992 Binary files /dev/null and b/securemail/tbird2.png differ diff --git a/securemail/tbird3.png b/securemail/tbird3.png new file mode 100644 index 0000000..af3e6bc Binary files /dev/null and b/securemail/tbird3.png differ diff --git a/securemail/tbird4.png b/securemail/tbird4.png new file mode 100644 index 0000000..847f9dc Binary files /dev/null and b/securemail/tbird4.png differ diff --git a/securemail/tbird5.png b/securemail/tbird5.png new file mode 100644 index 0000000..ba4c988 Binary files /dev/null and b/securemail/tbird5.png differ diff --git a/securemail/tbird6.png b/securemail/tbird6.png new file mode 100644 index 0000000..b0c7a96 Binary files /dev/null and b/securemail/tbird6.png differ diff --git a/securemail/tbird7.png b/securemail/tbird7.png new file mode 100644 index 0000000..921baf1 Binary files /dev/null and b/securemail/tbird7.png differ diff --git a/securemail/tbird8.png b/securemail/tbird8.png new file mode 100644 index 0000000..54c124d Binary files /dev/null and b/securemail/tbird8.png differ diff --git a/securemail/tbird9.png b/securemail/tbird9.png new file mode 100644 index 0000000..2c6e785 Binary files /dev/null and b/securemail/tbird9.png differ diff --git a/securemail/thunderbird.mdwn b/securemail/thunderbird.mdwn new file mode 100644 index 0000000..ae1e859 --- /dev/null +++ b/securemail/thunderbird.mdwn @@ -0,0 +1,16 @@ +# Thunderbird Configuration on Windows for Secure Mail +**Beginning** | *step 1 of 17* | [[Next|thunderbird2]] + +## Download and install Thunderbird 3.1 + + 1. Be sure that you have setup [[GPG]] for Windows first. + 1. Download Mozilla Thunderbird 3.1 + * Do "Right-click, Save As..." this file: [[thunderbird.exe|http://download.mozilla.org/?product=thunderbird-3.1.9&os=win&lang=en-US]] + 1. Open (Run) that file to install Thunderbird + 1. Enter your name, e-mail and password as part of the basic Account Setup + 1. Proceed to the [[Next|thunderbird2]] step + +[[!img tbird1.png align=left]] + +[[!tag e-mail thunderbird]] + diff --git a/securemail/thunderbird10.mdwn b/securemail/thunderbird10.mdwn new file mode 100644 index 0000000..29570f1 --- /dev/null +++ b/securemail/thunderbird10.mdwn @@ -0,0 +1,15 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird9]] | *step 10 of 17* | [[Next|thunderbird11]] + +## Compose your first secure e-mail + + 1. Presumably you know of someone who already has a GPG key :) + 1. Compose an e-mail to this person and click the *OpenPGP* button + * (./) Sign Message + * (./) Encrypt Message + * (./) Use PGP/MIME (*should already be checked*) + * click *OK* + 1. Be sure to *CC:* or *Bcc:* yourself + 1. Proceed to the [[Next|thunderbird11]] step + +[[!img tbird10.png align=left]] diff --git a/securemail/thunderbird11.mdwn b/securemail/thunderbird11.mdwn new file mode 100644 index 0000000..1832d74 --- /dev/null +++ b/securemail/thunderbird11.mdwn @@ -0,0 +1,12 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird10]] | *step 11 of 17* | [[Next|thunderbird12]] + +## Import correspondent's GPG Key + + 1. This example assumes that your correspondent already + has a GPG key *and* has published it to the public keyservers. + 1. You can download any published key by clicking *OK* to *Import + public key* + 1. Proceed to the [[Next|thunderbird12]] step + +[[!img tbird11.png align=left]] diff --git a/securemail/thunderbird12.mdwn b/securemail/thunderbird12.mdwn new file mode 100644 index 0000000..7a090b8 --- /dev/null +++ b/securemail/thunderbird12.mdwn @@ -0,0 +1,13 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird11]] | *step 12 of 17* | [[Next|thunderbird13]] + +## Select correct key for your correspondent + + 1. If your correspondent is like me they may have more than + one GPG key. In my case I have an old one and a new one. + 1. If you are corresponding with me please select my *new* Key ID + **8B055D9A** + * click *OK* + 1. Proceed to the [[Next|thunderbird13]] step + +[[!img tbird12.png align=left]] diff --git a/securemail/thunderbird13.mdwn b/securemail/thunderbird13.mdwn new file mode 100644 index 0000000..87a37c7 --- /dev/null +++ b/securemail/thunderbird13.mdwn @@ -0,0 +1,9 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird12]] | *step 13 of 17* | [[Next|thunderbird14]] + +## Confirm key import + + 1. Once the correspondent's key has been imported, click *OK* + 1. Proceed to the [[Next|thunderbird14]] step + +[[!img tbird13.png align=left]] diff --git a/securemail/thunderbird14.mdwn b/securemail/thunderbird14.mdwn new file mode 100644 index 0000000..599f65b --- /dev/null +++ b/securemail/thunderbird14.mdwn @@ -0,0 +1,11 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird13]] | *step 14 of 17* | [[Next|thunderbird15]] + +## Select recipient key (if trust has not been assigned) + + 1. Until you tell GPG that you trust someone's key Thunderbird + is going to make you check the box to select it. + * (./) *correspondents key* + 1. Proceed to the [[Next|thunderbird15]] step + +[[!img tbird14.png align=left]] diff --git a/securemail/thunderbird15.mdwn b/securemail/thunderbird15.mdwn new file mode 100644 index 0000000..bbfbedc --- /dev/null +++ b/securemail/thunderbird15.mdwn @@ -0,0 +1,11 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird14]] | *step 15 of 17* | [[Next|thunderbird16]] + +## Admire your first secure e-mail message + + 1. Note that your freshly sent e-mail has some important icons: + * The sealed envelope tells you the e-mail has been signed + * The padlock tells you the e-mail is encrypted + 1. Proceed to the [[Next|thunderbird16]] step + +[[!img tbird15.png align=left]] diff --git a/securemail/thunderbird16.mdwn b/securemail/thunderbird16.mdwn new file mode 100644 index 0000000..086d395 --- /dev/null +++ b/securemail/thunderbird16.mdwn @@ -0,0 +1,14 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird15]] | *step 16 of 17* | [[Next|thunderbird17]] + +## Share your public key + + 1. In order for your correspondent to encrypt e-mail to you + they must first have your public key + * send the ascii encoded version of your public key + that you exported when you created your [[GPG key|gpg5]] + 1. Uploading your public key to the set of public keyservers is + beyond the scope of this tutorial + 1. Proceed to the [[Next|thunderbird17]] step + +[[!img tbird16.png align=left]] diff --git a/securemail/thunderbird17.mdwn b/securemail/thunderbird17.mdwn new file mode 100644 index 0000000..65f9b52 --- /dev/null +++ b/securemail/thunderbird17.mdwn @@ -0,0 +1,21 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird]] | *step 17 of 17* | **End** + +## Tell Thunderbird how much you trust your correspondent + + 1. Under *OpenPGP | Key Management* (*then right-click on the key you + want*) you can set the trust level you have for your correspondent + * This trust level is private: no-one knows how you have + set owner trust for a key + * If you trust a key at least marginally you won't get + the annoying dialog box asking you to check a key + every time you send an e-mail + 1. Note: typically people *sign* each other's keys to + vouch that the public key of a person corresponds to their + real identity + * Signing someone's key only says you believe that their public + key belongs to them (*not that you trust them*). + * Key signing is beyond the scope of this tutorial + 1. Congratulations :) You can now send and receive secure e-mail! + +[[!img tbird17.png align=left]] diff --git a/securemail/thunderbird2.mdwn b/securemail/thunderbird2.mdwn new file mode 100644 index 0000000..cab71c8 --- /dev/null +++ b/securemail/thunderbird2.mdwn @@ -0,0 +1,15 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird]] | *step 2 of 17* | [[Next|thunderbird3]] + +## Configure your Outgoing e-mail server + + 1. Set your Outoing Mail server + * Under *Edit | Account Settings* you can click on *Outgoing Server (SMTP)* + * NOTE: these systems depend on how the e-mail was set up for your + domain + * For further informaton see the Thunderbird page on how to + [[Configure an Account|http://support.mozillamessaging.com/en-US/kb/Configure+an+Account]] + * Or ask your local system administrator + 1. Proceed to the [[Next|thunderbird3]] step + +[[!img tbird2.png align=left]] diff --git a/securemail/thunderbird3.mdwn b/securemail/thunderbird3.mdwn new file mode 100644 index 0000000..be1655c --- /dev/null +++ b/securemail/thunderbird3.mdwn @@ -0,0 +1,13 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird2]] | *step 3 of 17* | [[Next|thunderbird4]] + +## Configure your Incoming e-mail server + + 1. Edit the configuration for your Incoming e-mail server under + *Edit | Account Settings* (then *Server Settings* which + corresponds to your e-mail account) + 1. *tip:* You can configure Thunderbird to manage multiple e-mail + account identities {OK} + 1. Proceed to the [[Next|thunderbird4]] step + +[[!img tbird3.png align=left]] diff --git a/securemail/thunderbird4.mdwn b/securemail/thunderbird4.mdwn new file mode 100644 index 0000000..1b678a1 --- /dev/null +++ b/securemail/thunderbird4.mdwn @@ -0,0 +1,11 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird3]] | *step 4 of 17* | [[Next|thunderbird5]] + +## Configure Copies & Folders + + 1. Another customization option is on where to store copies + * If you choose Local Folders performance is generally better + * You may want to Bcc yourself by default on mail you send + 1. Proceed to the [[Next|thunderbird5]] step + +[[!img tbird4.png align=left]] diff --git a/securemail/thunderbird5.mdwn b/securemail/thunderbird5.mdwn new file mode 100644 index 0000000..d9ce364 --- /dev/null +++ b/securemail/thunderbird5.mdwn @@ -0,0 +1,16 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird4]] | *step 5 of 17* | [[Next|thunderbird6]] + +## Composition & Addressing + + 1. The essential choices for Composition & Addressing are: + * /!\ uncheck Compose messages in HTML format + * Note: you can still send HTML messages at any time by + changing HTML format when you compose a new message + * Start my reply below the quote + 1. These simple choices will improve your + [[posting style|https://secure.wikimedia.org/wikipedia/en/wiki/Posting_style]] + and earn respect for adhering to netiquette. + 1. Proceed to the [[Next|thunderbird6]] step + +[[!img tbird5.png align=left]] diff --git a/securemail/thunderbird6.mdwn b/securemail/thunderbird6.mdwn new file mode 100644 index 0000000..9a2d98e --- /dev/null +++ b/securemail/thunderbird6.mdwn @@ -0,0 +1,15 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird5]] | *step 6 of 17* | [[Next|thunderbird7]] + +## Install the Enigmail Add-on + + 1. Under *Tools | Add ons* you can add new features the Thunderbird + * You may find a recommendation for Enigmail or search for it + * /!\ The version of Enigmail you need is 1.1.2 + * Alternatively you may download Enigmail from a web browser, + Do "Right-click, Save As..." this file: + [[enigmail.xpi|https://addons.mozilla.org/en-US/thunderbird/downloads/file/92940/enigmail-1.1.2-tb-win.xpi]] + * You can install downloaded \*.xpi files by clicking the *Install* button + 1. Proceed to the [[Next|thunderbird7]] step + +[[!img tbird6.png align=left]] diff --git a/securemail/thunderbird7.mdwn b/securemail/thunderbird7.mdwn new file mode 100644 index 0000000..684a6a8 --- /dev/null +++ b/securemail/thunderbird7.mdwn @@ -0,0 +1,10 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird6]] | *step 7 of 17* | [[Next|thunderbird8]] + +## Approve the Enigmail Install + + 1. You will need to choose *Install Now* + * Thunderbird will need to restart + 1. Proceed to the [[Next|thunderbird8]] step + +[[!img tbird7.png align=left]] diff --git a/securemail/thunderbird8.mdwn b/securemail/thunderbird8.mdwn new file mode 100644 index 0000000..e226c71 --- /dev/null +++ b/securemail/thunderbird8.mdwn @@ -0,0 +1,11 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird7]] | *step 8 of 17* | [[Next|thunderbird9]] + +## Configure Enigmail + + 1. You can configure Enigmail with a new menu option: *OpenPGP | Preferences* + * Show *Expert Settings* + * Remember passphrase for **60** minutes + 1. Proceed to the [[Next|thunderbird9]] step + +[[!img tbird8.png align=left]] diff --git a/securemail/thunderbird9.mdwn b/securemail/thunderbird9.mdwn new file mode 100644 index 0000000..3821522 --- /dev/null +++ b/securemail/thunderbird9.mdwn @@ -0,0 +1,17 @@ +# Thunderbird Configuration on Windows for Secure Mail +[[Prev|thunderbird8]] | *step 9 of 17* | [[Next|thunderbird10]] + +## Set OpenPGP Options for your e-mail account + + 1. Edit the new configuration option for OpenPGP Security under + *Edit | Account Settings* (then *Server Settings* which + corresponds to your e-mail account) + * (./) Enable OpenPGP support + * The default *Use email address of this identity to identify + OpenPGP key* is fine because GPG can lookup your Key ID from + your e-mail address. + * (./) Sign encrypted messages by default + * (./) Use PGP/MIME by default (this is very important /!\ ) + 1. Proceed to the [[Next|thunderbird10]] step + +[[!img tbird9.png align=left]] diff --git a/subpagea.mdwn b/subpagea.mdwn new file mode 100644 index 0000000..fce8b80 --- /dev/null +++ b/subpagea.mdwn @@ -0,0 +1,3 @@ +# SubPageA + +SubPageA diff --git a/tag.mdwn b/tag.mdwn new file mode 100644 index 0000000..45bb6f3 --- /dev/null +++ b/tag.mdwn @@ -0,0 +1,7 @@ +[[!pagestats pages="./tag/*" among="./*"]] + +Check out the tag cloud ==> + + + + diff --git a/tag/2013.mdwn b/tag/2013.mdwn new file mode 100644 index 0000000..cb95ed8 --- /dev/null +++ b/tag/2013.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged 2013"]] + +[[!inline pages="tagged(2013)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/2014.mdwn b/tag/2014.mdwn new file mode 100644 index 0000000..8510cc8 --- /dev/null +++ b/tag/2014.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged 2014"]] + +[[!inline pages="tagged(2014)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/AGPL.mdwn b/tag/AGPL.mdwn new file mode 100644 index 0000000..60432af --- /dev/null +++ b/tag/AGPL.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged AGPL"]] + +[[!inline pages="tagged(AGPL)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/DLJ.mdwn b/tag/DLJ.mdwn new file mode 100644 index 0000000..b49e5fc --- /dev/null +++ b/tag/DLJ.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged DLJ"]] + +[[!inline pages="tagged(DLJ)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/Debian.mdwn b/tag/Debian.mdwn new file mode 100644 index 0000000..e8dcd03 --- /dev/null +++ b/tag/Debian.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged Debian"]] + +[[!inline pages="tagged(Debian)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/FAIF.mdwn b/tag/FAIF.mdwn new file mode 100644 index 0000000..9a8d16a --- /dev/null +++ b/tag/FAIF.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged FAIF"]] + +[[!inline pages="tagged(FAIF)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/FOSDEM.mdwn b/tag/FOSDEM.mdwn new file mode 100644 index 0000000..096ebe2 --- /dev/null +++ b/tag/FOSDEM.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged FOSDEM"]] + +[[!inline pages="tagged(FOSDEM)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/France.mdwn b/tag/France.mdwn new file mode 100644 index 0000000..6ba67aa --- /dev/null +++ b/tag/France.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged France"]] + +[[!inline pages="tagged(France)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/FreeJava.mdwn b/tag/FreeJava.mdwn new file mode 100644 index 0000000..50f324d --- /dev/null +++ b/tag/FreeJava.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged FreeJava"]] + +[[!inline pages="tagged(FreeJava)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/GPL.mdwn b/tag/GPL.mdwn new file mode 100644 index 0000000..0f53616 --- /dev/null +++ b/tag/GPL.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged GPL"]] + +[[!inline pages="tagged(GPL)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/IRILL.mdwn b/tag/IRILL.mdwn new file mode 100644 index 0000000..2c43754 --- /dev/null +++ b/tag/IRILL.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged IRILL"]] + +[[!inline pages="tagged(IRILL)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/Java.mdwn b/tag/Java.mdwn new file mode 100644 index 0000000..ab8da00 --- /dev/null +++ b/tag/Java.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged Java"]] + +[[!inline pages="tagged(Java)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/JavaOne.mdwn b/tag/JavaOne.mdwn new file mode 100644 index 0000000..b519b3f --- /dev/null +++ b/tag/JavaOne.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged JavaOne"]] + +[[!inline pages="tagged(JavaOne)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/LCA.mdwn b/tag/LCA.mdwn new file mode 100644 index 0000000..ad69d80 --- /dev/null +++ b/tag/LCA.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged LCA"]] + +[[!inline pages="tagged(LCA)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/LegalIssues.mdwn b/tag/LegalIssues.mdwn new file mode 100644 index 0000000..90c3c71 --- /dev/null +++ b/tag/LegalIssues.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged LegalIssues"]] + +[[!inline pages="tagged(LegalIssues)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/OpenJDK.mdwn b/tag/OpenJDK.mdwn new file mode 100644 index 0000000..985b3fd --- /dev/null +++ b/tag/OpenJDK.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged OpenJDK"]] + +[[!inline pages="tagged(OpenJDK)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/RedMonk.mdwn b/tag/RedMonk.mdwn new file mode 100644 index 0000000..416738c --- /dev/null +++ b/tag/RedMonk.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged RedMonk"]] + +[[!inline pages="tagged(RedMonk)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/Sweden.mdwn b/tag/Sweden.mdwn new file mode 100644 index 0000000..27a1f80 --- /dev/null +++ b/tag/Sweden.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged Sweden"]] + +[[!inline pages="tagged(Sweden)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/Ubuntu.mdwn b/tag/Ubuntu.mdwn new file mode 100644 index 0000000..60ad9b5 --- /dev/null +++ b/tag/Ubuntu.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged Ubuntu"]] + +[[!inline pages="tagged(Ubuntu)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/WebOfTrust.mdwn b/tag/WebOfTrust.mdwn new file mode 100644 index 0000000..26506af --- /dev/null +++ b/tag/WebOfTrust.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged WebOfTrust"]] + +[[!inline pages="tagged(WebOfTrust)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/clojure.mdwn b/tag/clojure.mdwn new file mode 100644 index 0000000..f648ea6 --- /dev/null +++ b/tag/clojure.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged clojure"]] + +[[!inline pages="tagged(clojure)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/clojurebridge.mdwn b/tag/clojurebridge.mdwn new file mode 100644 index 0000000..5ffbfdc --- /dev/null +++ b/tag/clojurebridge.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged clojurebridge"]] + +[[!inline pages="tagged(clojurebridge)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/data.mdwn b/tag/data.mdwn new file mode 100644 index 0000000..e0b1077 --- /dev/null +++ b/tag/data.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged data"]] + +[[!inline pages="tagged(data)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/distros.mdwn b/tag/distros.mdwn new file mode 100644 index 0000000..2065bba --- /dev/null +++ b/tag/distros.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged distros"]] + +[[!inline pages="tagged(distros)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/e-mail.mdwn b/tag/e-mail.mdwn new file mode 100644 index 0000000..7550dab --- /dev/null +++ b/tag/e-mail.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged e-mail"]] + +[[!inline pages="tagged(e-mail)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/first-post.mdwn b/tag/first-post.mdwn new file mode 100644 index 0000000..83d878f --- /dev/null +++ b/tag/first-post.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged first-post"]] + +[[!inline pages="tagged(first-post)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/gpg.mdwn b/tag/gpg.mdwn new file mode 100644 index 0000000..c594b70 --- /dev/null +++ b/tag/gpg.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged gpg"]] + +[[!inline pages="tagged(gpg)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/ikiwiki.mdwn b/tag/ikiwiki.mdwn new file mode 100644 index 0000000..d94a88c --- /dev/null +++ b/tag/ikiwiki.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged ikiwiki"]] + +[[!inline pages="tagged(ikiwiki)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/jenkins.mdwn b/tag/jenkins.mdwn new file mode 100644 index 0000000..d963b24 --- /dev/null +++ b/tag/jenkins.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged jenkins"]] + +[[!inline pages="tagged(jenkins)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/leiningen.mdwn b/tag/leiningen.mdwn new file mode 100644 index 0000000..e69dd70 --- /dev/null +++ b/tag/leiningen.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged leiningen"]] + +[[!inline pages="tagged(leiningen)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/noir.mdwn b/tag/noir.mdwn new file mode 100644 index 0000000..f8f62bd --- /dev/null +++ b/tag/noir.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged noir"]] + +[[!inline pages="tagged(noir)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/performance.mdwn b/tag/performance.mdwn new file mode 100644 index 0000000..571365c --- /dev/null +++ b/tag/performance.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged performance"]] + +[[!inline pages="tagged(performance)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/plugin.mdwn b/tag/plugin.mdwn new file mode 100644 index 0000000..718364e --- /dev/null +++ b/tag/plugin.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged plugin"]] + +[[!inline pages="tagged(plugin)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/redis.mdwn b/tag/redis.mdwn new file mode 100644 index 0000000..83a471d --- /dev/null +++ b/tag/redis.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged redis"]] + +[[!inline pages="tagged(redis)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/second-post.mdwn b/tag/second-post.mdwn new file mode 100644 index 0000000..26b6f8f --- /dev/null +++ b/tag/second-post.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged second-post"]] + +[[!inline pages="tagged(second-post)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/thunderbird.mdwn b/tag/thunderbird.mdwn new file mode 100644 index 0000000..7bb6223 --- /dev/null +++ b/tag/thunderbird.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged thunderbird"]] + +[[!inline pages="tagged(thunderbird)" actions="no" archive="yes" +feedshow=10]] diff --git a/tag/upstreams.mdwn b/tag/upstreams.mdwn new file mode 100644 index 0000000..ef37b3d --- /dev/null +++ b/tag/upstreams.mdwn @@ -0,0 +1,4 @@ +[[!meta title="pages tagged upstreams"]] + +[[!inline pages="tagged(upstreams)" actions="no" archive="yes" +feedshow=10]] diff --git a/templates/blogpost.tmpl b/templates/blogpost.tmpl new file mode 100644 index 0000000..43c567f --- /dev/null +++ b/templates/blogpost.tmpl @@ -0,0 +1,13 @@ +
id="" action="" method="get"> +
+ +RSS + + +Atom + + + + +
+ diff --git a/templates/page.tmpl b/templates/page.tmpl new file mode 100644 index 0000000..369de5b --- /dev/null +++ b/templates/page.tmpl @@ -0,0 +1,197 @@ + + + + + + + + + + + + +<TMPL_VAR TITLE> + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + + + +
Comments on this page are closed.
+
+
+
+
+ + + +
+ + + + + + + +
+ +License: +
+
+ +
+Last edited + +
+ + + + + +
+ +
+ + + diff --git a/tmarble.mdwn b/tmarble.mdwn new file mode 100644 index 0000000..b9c3987 --- /dev/null +++ b/tmarble.mdwn @@ -0,0 +1,27 @@ +[[!inline pages=sidebar raw=yes]] + +# tmarble + +Tom Marble's Blog + +Check out: + +* Tom's [background][linkedin] +* E-mail Tom: tmarble (AT) info9 (DOT) net +* Tom's identi.ca [microblog][identica] (repeated on [twitter][twitter]) +* A blast from the [blogs.sun.com][bsc] past (sniff) +* Free Software on [gitorious][gitorious] and [github][github] + +See also all [[posts]], [[comments]] and the [[tag|/tag]] cloud. + +[[!inline pages="page(./tmarble/posts/*) and !*/Discussion" show="10" +actions=yes rootpage="tmarble"]] + +This blog is powered by [ikiwiki](http://ikiwiki.info) + +[linkedin]: http://www.linkedin.com/in/tmarble +[identica]: https://identi.ca/tmarble +[twitter]: http://twitter.com/tmarble +[bsc]: http://web.archive.org/web/20060829203703/http://blogs.sun.com/tmarble +[gitorious]: https://gitorious.org/tmarble +[github]: https://github.com/tmarble diff --git a/tmarble/archives.mdwn b/tmarble/archives.mdwn new file mode 100644 index 0000000..d07b73b --- /dev/null +++ b/tmarble/archives.mdwn @@ -0,0 +1,8 @@ +[[!if test="archives/*" then=""" +Browse through blog archives by year: +[[!map pages="./archives/* and !./archives/*/* and !*/Discussion"]] +""" +else=""" +You need to use the `ikiwiki-calendar` program to generate calendar-based +archive pages. +"""]] diff --git a/tmarble/comments.mdwn b/tmarble/comments.mdwn new file mode 100644 index 0000000..5170441 --- /dev/null +++ b/tmarble/comments.mdwn @@ -0,0 +1,4 @@ +[[!inline pages=sidebar raw=yes]] + +Recent comments on posts in the [[tmarble|/tmarble]] blog: +[[!inline pages="./posts/*/Discussion or comment(./posts/*)" template="comment"]] diff --git a/tmarble/images/Goingb_180x150-1-es.png b/tmarble/images/Goingb_180x150-1-es.png new file mode 100644 index 0000000..7bd8ce6 Binary files /dev/null and b/tmarble/images/Goingb_180x150-1-es.png differ diff --git a/tmarble/images/debconf12-logo.svg b/tmarble/images/debconf12-logo.svg new file mode 100644 index 0000000..f463a64 --- /dev/null +++ b/tmarble/images/debconf12-logo.svg @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tmarble/images/gothenburg-post.jpg b/tmarble/images/gothenburg-post.jpg new file mode 100644 index 0000000..4479340 Binary files /dev/null and b/tmarble/images/gothenburg-post.jpg differ diff --git a/tmarble/images/noir.png b/tmarble/images/noir.png new file mode 100644 index 0000000..356a8cd Binary files /dev/null and b/tmarble/images/noir.png differ diff --git a/tmarble/index.mdwn b/tmarble/index.mdwn new file mode 100644 index 0000000..cdec789 --- /dev/null +++ b/tmarble/index.mdwn @@ -0,0 +1,14 @@ +[[!if test="enabled(sidebar)" then=""" +[[!sidebar]] +""" else=""" +[[!inline pages=sidebar raw=yes]] +"""]] + +# tmarble + +Tom Marble's Blog + +[[!inline pages="page(./posts/*) and !*/Discussion" show="10" +actions=yes rootpage="posts"]] + +This blog is powered by [ikiwiki](http://ikiwiki.info). diff --git a/tmarble/posts.mdwn b/tmarble/posts.mdwn new file mode 100644 index 0000000..1d21594 --- /dev/null +++ b/tmarble/posts.mdwn @@ -0,0 +1,3 @@ +Here is a full list of posts to the [[blog|/tmarble]]. + +[[!inline pages="page(./posts/*) and !*/Discussion" archive=yes feedshow=10 quick=yes]] diff --git a/tmarble/posts/2011_and_not_J1.mdwn b/tmarble/posts/2011_and_not_J1.mdwn new file mode 100644 index 0000000..bb40681 --- /dev/null +++ b/tmarble/posts/2011_and_not_J1.mdwn @@ -0,0 +1,80 @@ +# Calendar.getInstance().get(Calendar.YEAR) == 2011 && ! J1 + +Here we are in the middle of yet another +[J1](http://www.oracle.com/javaone/index.html) and, alas, I won't be +joining folks in the City of Oracle World. Of course I'm skeptical of the "new" +hotel based format (from last year)... But the reason I would want +to go is, of course, the "hallway track": to see friends and colleagues +like: +[@robilad](https://twitter.com/#!/robilad), +[@alexismp](https://twitter.com/#!/alexismp), +[@mreinhold](https://twitter.com/#!/mreinhold), +[@fabianenardon](https://twitter.com/#!/fabianenardon), +[@virtualsteve](https://twitter.com/#!/virtualsteve), +[@delabassee](https://twitter.com/#!/delabassee), +[@brjavaman](https://twitter.com/#!/brjavaman), +[@karianna](https://twitter.com/#!/karianna), +[@romainguy](https://twitter.com/#!/romainguy), +[@headius](https://twitter.com/#!/headius), +[@AzulSystemsPM](https://twitter.com/#!/AzulSystemsPM), +[@jddarcy](https://twitter.com/#!/jddarcy), +[@jfarcand](https://twitter.com/#!/jfarcand), +[@tom_enebo](https://twitter.com/#!/tom_enebo), +[@asz](https://twitter.com/#!/asz) and +[@terrencebarr](https://twitter.com/#!/terrencebarr). + +I'm not even sure of Oracle is aware of the hallway track? + +The big news recently for FLOSS enthusiasts was +the [sunsetting of the DLJ](http://robilad.livejournal.com/90792.html). +When [we released](http://web.archive.org/web/20080505201104/http://www.sun.com/smi/Press/sunflash/2006-05/sunflash.20060516.4.xml) +a redistributable version of Java under the DLJ in 2006 we heard +a lot of criticism about this new, less restrictive license. +The Free Java world saw it as simply "not enough". +As it turns out on the same day +[Rich Green](http://news.cnet.com/2100-7344_3-6072760.html) promised +the open sourcing of Java and with this news the roar +of applause was amazing. However it would take a full year +before the complete publication of +[OpenJDK](http://openjdk.java.net/) source code. +And, even then, the community was frustrated by the lack of +support for the [Java plugin](http://magazine.redhat.com/2008/05/16/open-source-project-openjdk/). + +During this intitial period we heard from people +such as the Brazilian's at +[FISL](https://secure.flickr.com/photos/tmarble/sets/72157600071625815/) +that the Java plugin -- now well integrated with GNU/Linux +under the DLJ -- made it possible to do banking and file tax returns +on their favorite platform. +Meanwhile an open source plugin effort was underway. +Largely through the efforts of RedHat OpenJDK gained +a truly open source implementation of the +[plugin](http://icedtea.classpath.org/wiki/IcedTea-Web). +However due to the lack of a public spec (and source code) it +continues to be very difficult to get the exact same Java plugin behavior +with the IcedTea plugin. + +Before the acquisition of Sun many of us had hoped +that the code for the [new Java plugin](http://www.oracle.com/technetwork/java/javase/plugin2-142482.html) +would be contributed to OpenJDK. Even though Larry +has a beard he clearly doesn't drink the open source Kool-Aid +and thus Oracle has decided to continue the closed plugin status. +Since UI developers gave up on applets long ago maybe this is +just an annoyance... At the very least its a shame that we now +have a completely fractured Java plugin landscape and +GNU/Linux users that need applets +will have to struggle (as in the bad old days) to configure +their browsers correctly. + +Despite this setback it does seem that Java +technology is enjoying a renaissance in the form +of [dynamic languages](http://openjdk.java.net/projects/mlvm/) +built [on top](http://www.wiki.jvmlangsummit.com/Main_Page) of the JVM. +I'm hoping to help with the +[modularization](http://google-opensource.blogspot.com/2011/08/debconf11-at-banja-luka.html) +of OpenJDK and encourage community based performance analysis +tools that [extend](http://openjdk.java.net/jeps/102) the platform. + +Send me a tweet and let me know how the hallway track is going! + +[[!tag Java plugin OpenJDK DLJ JavaOne]] diff --git a/tmarble/posts/A_Hug_is_Symmetric.mdwn b/tmarble/posts/A_Hug_is_Symmetric.mdwn new file mode 100644 index 0000000..b1c1a2f --- /dev/null +++ b/tmarble/posts/A_Hug_is_Symmetric.mdwn @@ -0,0 +1,170 @@ +# A Hug is Symmetric + +An embrace is warm when two are pulled together. +A one arm hug is a patronizing squeeze that makes +for a (bad) photo op. + +This little blog post is my > 140 response to my +new friend [@dberkholz][dberkholz]'s post +[The Story Of Data: Whither the GPL? Why we don’t need it anymore][dberkholz_story]. I met Donnie at [FOSDEM][fosdem] this year +just after he joined [RedMonk][redmonk] -- the analyst +firm that is essential for anyone in software +development to follow. (Full Disclosure: RedMonk and Informatique, Inc. +do not have any business affiliation). + +While I acknowledge that permissive licensing has become +fashionable I think it is a grave disservice to suggest that +restrictive licensing in FLOSS is withering, unneeded or for the +uneducated. + +This recent dust up is a result of an ongoing meme +of "the Decline of the GPL" started last year by +[Matt Aslett][aslett_decline]. To which fuel was added +by a recent [BlackDuck][blackduck] analysis also asserting the +the decline of the GPL. In precious few seconds of research +I was unable to to find the BlackDuck report itself, but +only [mention][mention] of [it][it]. Ultimately the approach +of the BlackDuck study is one of the problems. The data and methodology +have not been made available for peer review -- the basis +of the scientific method which defines progress in every +academic discipline. + +During our first [Legal Issues DevRoom][fosdem_legal_issues] at FOSDEM +we had several talks touching on the impact of software +(and other artifact) licensing on FLOSS. Of special note: +John Sullivan, Executive +Director of the Free Software Foundation gave a talk "Is copyleft +being framed?" and Richard Fontana, Red Hat's Open Source Licensing +and Patent Counsel gave a talk, "The (possible) decline of the GPL, and what to do about it". Slides for these and other talks are available +[[here|/fosdem/LegalIssuesDevRoom/Speakers]]. Sullivan's data +and methodology are available for review and suggest that +the use of GPL is vibrant. + +I do hope that my friend and former Sun colleague [Rich Sands][richsands] -- +who is now at BlackDuck -- can help shed some light on their analysis. + +But I'm not here to quibble about the data. I want to talk +directly to the assertions made from the data. + +## 1. Compliance is complicated + +In this era of continuous development and continuous +deployment powered by tools like the uber awesome [Jenkins][jenkins] +you can't really say with a straight face that making +a tarball and publishing it somewhere is hard. +Even in the embedded space there are tools like [Yocto][yocto] +make delivering "Complete and Corresponding Source" just +one of the build products. + +For the massive, commercial enterprise which is Java™ +Oracle manages to publish the [source][openjdk_source] +code for [OpenJDK][openjdk]. Under the GPL. +And Oracle publishes it from a tightly intermingled source +base comprising open as well as closed, proprietary components. + +## 2. The collaborative development model is really all you need + +Bruce Perens was right: collaboration is better. Yet collaboration +is necessary, but not sufficient to build a community. +As we have become more familiar with FLOSS models it has +become increasingly clearly that copyright assignment or licensing +agreements that put a corporation in asymmetric control +of a codebase does not foster the healthiest communities. + +When inbound == outbound licensing and everyone is symmetric +footing collaboration *and* contribution thrive. + +[Simon Phipps][webmink], also a friend and former Sun colleague, +has written about the health of projects such +as [Libre Office][libreoffice] and assessing the health of +FLOSS [governance][scorecard]. + +## 3. Commercial products == proprietary products + +"Not to mention that copyleft licenses make it much harder to build +proprietary products". Well maybe we should start with understanding +there might be a difference between building products and making a +biz model around them vs. the licensing of said products. + +With Red Hat hitting the milestone of $1 [billion][rht_billion] in revenue +I think we can put to rest the question, "can you make money with +open source?" Certainly Red Hat has some proprietary licensed +products, but the crux or their business model is based on +restrictively licensed, copyleft software. Red Hat invests +an enormous amount of developer time to give back to the community... +And apparently they are not suffering for it. Apparently +this isn't too complicated for them. And apparently the +bottom line is doing just fine, thank you. + +## 4. Restrictive licensing doesn't matter in Cloud + +If anything the rise of "Cloud Computing" drives the +[need][need] for an [updated approach][agpl_cloud] to restrictive licensing. +This was the real motivation behind creating +the [AGPL][agpl]. Why is this? It's because traditionally +restrictive licensing kicks in when the software is *delivered*. +In web services you get data, but not software (in any form). + +A great deal has been written about copyleft in the cloud era... +Since Donnie's post included "Data" I think it's worth +mentioning the [Freedom to Leave][freedom_to_leave] and +the [Franklin Street Statement][franklin_st]. + +*(Secret: data is more valuable than code :) )* + +## 5. You can't build a business on restrictive software + +Jeremy Allison has clearly articulated why the [GPLv3 +is essential][gpl_samba] for the commercial Samba marketplace to +thrive. He talks about symmetry providing a necessary +level playing field (and he spoke about this [recently][lp_2012]). + +Evan Prodromou has built the StatusNet business on +AGPL'd software and is selling the [Decentralized Social +Web][statusnet] into Enterprises. + +And NoSQL all star, MongoDB, is [licensed under the AGPL][mongodb_agpl] +and the company behind it, [10gen][10gen], seems to be doing just fine. + +## Work with Me + +So whether or not the GPL is in decline (or not) only +scratches the surface of the how the FLOSS revolution has [transformed +information technology][how_linux] in the past 20 years. +I bet the that Story of Data in the next 20 years will +tell us that symmetric collaboration is the big win. + +Ultimately the key thing is to remember that permissively +licensed software is also Free Software. + +[dberkholz]: https://twitter.com/#!/dberkholz +[dberkholz_story]: http://redmonk.com/dberkholz/2012/04/05/whither-the-gpl-why-we-dont-need-it-anymore/ +[fosdem]: http://fosdem.org/2012/ +[redmonk]: http://redmonk.com/ +[aslett_decline]: http://blogs.the451group.com/opensource/2011/06/06/the-trend-towards-permissive-licensing/ +[blackduck]: http://www.blackducksoftware.com/ +[mention]: http://upsilon.cc/~zack/blog/posts/2012/02/gpl_d_debian_software_skew/ +[it]: http://techrights.org/2012/02/20/gpl-whole-story/ +[fosdem_legal_issues]: http://fosdem.org/2012/schedule/track/legal_issues_devroom +[richsands]: https://twitter.com/#!/richsands +[jenkins]: http://jenkins-ci.org/ +[yocto]: https://wiki.yoctoproject.org/wiki/Yocto_1.2_Overall_Test_Plan#Compliance_Test.28Covered_in_Fullpass_Test.29 +[openjdk]: http://openjdk.java.net/ +[openjdk_source]: http://download.java.net/openjdk/jdk7u2/ +[webmink]: https://twitter.com/#!/webmink +[libreoffice]: http://blogs.computerworlduk.com/simon-says/2012/02/libreoffice-founbdation-symbolises-maturity/index.htm +[scorecard]: http://blogs.computerworlduk.com/simon-says/2011/02/open-by-rule-progress-report/index.htm +[rht_billion]: http://arstechnica.com/business/news/2012/03/red-hat-hits-a-billion-dollars-in-revenue-a-milestone-for-open-source.ars +[need]: https://www.gnu.org/licenses/why-affero-gpl.html +[agpl_cloud]: https://www.networkworld.com/community/blog/new-cloud-applications-drive-popularity-agpl- +[agpl]: https://www.gnu.org/licenses/agpl.html +[freedom_to_leave]: http://webmink.com/essays/freedom-to-leave/ +[franklin_st]: http://autonomo.us/2008/07/franklin-street-statement/ +[how_linux]: https://www.youtube.com/watch?v=yVpbFMhOAwE&list=UUfX55Sx5hEFjoC3cNs6mCUQ&index=1&feature=plcp +[lp_2012]: http://libreplanet.org/wiki/LibrePlanet2012/Schedule +[gpl_samba]: http://faif.us/cast/2011/may/10/0x0F/ +[statusnet]: http://schedule.sxsw.com/2012/events/event_IAP11746 +[mongodb_agpl]: http://blog.mongodb.org/post/103832439/the-agpl +[10gen]: http://www.10gen.com/news + +[[!tag FOSDEM LegalIssues GPL AGPL data OpenJDK RedMonk]] diff --git a/tmarble/posts/ClojureBridge_Minnesota.mdwn b/tmarble/posts/ClojureBridge_Minnesota.mdwn new file mode 100644 index 0000000..b2d844d --- /dev/null +++ b/tmarble/posts/ClojureBridge_Minnesota.mdwn @@ -0,0 +1,38 @@ +# ClojureBridge Minnesota + +Of course the weather being what it is -- winter came in with a bang -- +our turnout last night at [http://clojure.mn/][clojuremn] was light.... + + +Clojure + + +But we had a small, enthusiastic group that discussed the recent +Clojure Conj by editorializing the fine blog bost by [Logan Linn][loganlinn]. + +We also introduced the ClojureBridge effort to the group +and everyone sees nice synergy between this and our recent +success in November with "beginner's night" (which we plan +to repeat every other meeting). + +As a software development consultant I often co-work +at [CoCoMSP][cocomsp] -- a melting pot of entrepreneurial energy. +I have introduced the idea of hosting ClojureBridge at +[CoCoMSP][cocomsp] with the founders and they are +considering it (fingers crossed)! + +Now we need to recruit more volunteers to help organize our +local ClojureBridge Minnesota workshop next spring! + +Ask [[me|/tmarble]] how you can help! + +## links + +* Presentation as PDF: [[clojurebridgemn.pdf|clojurebridgemn.pdf]] + +[clojuremn]: http://clojure.mn/ +[loganlinn]: http://loganlinn.com/blog/2013/11/18/clojureconj-2013/ +[clojurebridge]: http://clojurebridge.org +[cocomsp]: http://cocomsp.com/ + +[[!tag clojure clojurebridge]] diff --git a/tmarble/posts/ClojureBridge_Minnesota/clojurebridgemn.pdf b/tmarble/posts/ClojureBridge_Minnesota/clojurebridgemn.pdf new file mode 100644 index 0000000..b208b7f Binary files /dev/null and b/tmarble/posts/ClojureBridge_Minnesota/clojurebridgemn.pdf differ diff --git a/tmarble/posts/Clojure_Designed_For_Performance.mdwn b/tmarble/posts/Clojure_Designed_For_Performance.mdwn new file mode 100644 index 0000000..ecf0d63 --- /dev/null +++ b/tmarble/posts/Clojure_Designed_For_Performance.mdwn @@ -0,0 +1,36 @@ +# Clojure: Designed for Performance + +Yesterday I blogged about my LCA talk [[Crowdsourcing Upstream Refactoring|/tmarble/posts/Crowdsourcing_Upstream_Refactoring]]. +Today I gave my a talk on Clojure and performance at [Linux Conf Australia 2013][lca]. + + +Clojure + + +I mixed giving an overview of why I think Clojure offers the advantages +of Common Lisp and Java without the disadvantages of either along with +live coding on the REPL. There were several great questions and I am really +pleased that many delegates told me that the were going to give +Clojure a close look! + +Later this evening we have the Emacs BOF and I know I'll find +a number of friendly eLisp hackers. + +If you have a chance to attend LCA I would highly recommended it... +This is among the best organized conferences I've attended +and comprises a fantastic group of enthusiastic contributors. + +Below you will find links to the presentation. Very soon the video +of this talks (and all the talks) will be available. + +## links + +* as PDF: [[clojure-performance.pdf|clojure-performance.pdf]] +* full source ([org-tree-slide][org-tree-slide]): [[clojure-performance.tar.gz|clojure-performance.tar.gz]] +* the talk was on [Wednesday][lca-wed] + +[lca]: http://linux.conf.au/ +[lca-wed]: http://linux.conf.au/programme/schedule/wednesday +[org-tree-slide]: https://github.com/takaxp/org-tree-slide + +[[!tag LCA 2013 clojure performance]] diff --git a/tmarble/posts/Clojure_Designed_For_Performance/clojure-performance.pdf b/tmarble/posts/Clojure_Designed_For_Performance/clojure-performance.pdf new file mode 100644 index 0000000..25151b9 Binary files /dev/null and b/tmarble/posts/Clojure_Designed_For_Performance/clojure-performance.pdf differ diff --git a/tmarble/posts/Clojure_Designed_For_Performance/clojure-performance.tar.gz b/tmarble/posts/Clojure_Designed_For_Performance/clojure-performance.tar.gz new file mode 100644 index 0000000..30250ad Binary files /dev/null and b/tmarble/posts/Clojure_Designed_For_Performance/clojure-performance.tar.gz differ diff --git a/tmarble/posts/Comments_on_FaiF_0x22.mdwn b/tmarble/posts/Comments_on_FaiF_0x22.mdwn new file mode 100644 index 0000000..b50eba7 --- /dev/null +++ b/tmarble/posts/Comments_on_FaiF_0x22.mdwn @@ -0,0 +1,74 @@ +# Comments on FaiF 0x22 + +I have some comments on today's episode of +Free as in Freedom: [0x22: Elder's Methods of FOSS Activism][faif_0x22]. +Obviously you should listen to it (and add FaiF to your +favorite podcatcher. You will be the *forth* listener! :) ). +This oggcast is the first in a series from the +first [Legal Issues DevRoom][fosdem_legal_issues] at FOSDEM +which [Karen][kaz], [Bradley][bkuhn], [Richard Fontana][fontana] and +I organized. + +I think Bradley was critical of Ambjörn's talk not enumerating +all the collaboration that has taken place in the FLOSS +community. To be fair Ambjörn himself said he had tried +to enumerate various examples (and has 196 or so pointers +on his blog ... see the [[Speakers|/fosdem/LegalIssuesDevRoom/Speakers]] +page for blog links). Karen makes the point that it is +precisely these sort of events where we can learn about +activisim across a broad range of our communities. + +I appreciate Ambjörn's view that we can develop and +use various norms and legal tools to help promote +Internet Freedom generally, but sometimes activism is +necessary to educate and move public policy (e.g. the +SOPA protests). Indeed we seem increasingly under threat +of being limited to walled application gardens or even being +literally firewalled from the open Internet. + +The key takeaway, I believe, is we need to collaborate *more* +between Free Software, Open Source, Free Culture and +broader Internet Freedom communities generally. +In a conversation with [Mike Linksvayer][mike_linksvayer_blog] after +the DevRoom session we discussed the challenge from a FLOSS +project level of designing the licensing of software and +non-software artificacts such that both could evolve +together over time. This is a tricky issue which involves +"or later" (plus licensing) versions and software/non-software +licensing compatibility. We shared the observation -- apropos +to Ambjörn's talk -- that many humanitarian or otherwise +public activisim efforts often don't make FLOSS part of their +agenda (and, in fact, may not even be aware of it). +We need to do a much better job at this collaboration and +cross-community education. + +As for the logistics of the DevRoom allow my to publicly +express a *mea culpa*. I have been to FOSDEM before and +I know how challenging it is to fit "a 20lb conference +in a 10lb bag" (as [@spot][spot] said). I knew that 30 minute +sesssions would be short... We had so many great proposals +that I was happy to hear from as many as possible. +However it is true that this was ultimately *too* short +and the format did not adequately allow for Q/A, discussion, +time to change DevRooms and setup for the next speaker. +And I especially want to apologize to anyone who was waiting +outside the DevRoom that I steadfastly refused to let in :-| . +I didn't want the FOSDEM volunteer organizers to have +the University withdraw support for future conferences due +to violating fire codes. + +I hope everyone will be able to check out the [[slides and/or +audio oggcasts|/fosdem/LegalIssuesDevRoom/Speakers]] of +the talks as they become available. And, yes, we'll hopefully +get a bigger room and plan for more discussion time +next year! + +[bkuhn]: http://ebb.org/bkuhn/blog +[kaz]: http://gnomg.org/ +[fontana]: https://identi.ca/fontana +[mike_linksvayer_blog]: http://gondwanaland.com/mlog/ +[spot]: https://identi.ca/spot +[fosdem_legal_issues]: http://fosdem.org/2012/schedule/track/legal_issues_devroom +[faif_0x22]: http://faif.us/cast/2012/feb/14/0x22/ + +[[!tag FOSDEM LegalIssues FaiF]] diff --git a/tmarble/posts/Crowdsourcing_Upstream_Refactoring.mdwn b/tmarble/posts/Crowdsourcing_Upstream_Refactoring.mdwn new file mode 100644 index 0000000..7b0adf2 --- /dev/null +++ b/tmarble/posts/Crowdsourcing_Upstream_Refactoring.mdwn @@ -0,0 +1,41 @@ +# Crowdsourcing Upstream Refactoring + +I consider myself very lucky to attend [Linux Conf Australia 2013][lca]. +LCA is the the premier Free and Open Source conference in the southern hemisphere +and collects an unique batch of code hackers, Free culture enthusiasts +and maker practioners. I've wanted to attend LCA since Jeff Waugh told me about it in 2006. +This year has been my chance to get to the land of Oz! + + +LCA + + +Today [Bdale Garbee][bdale] and I have just given a talk called +"Crowdsourcing Upstream Refactoring" in the [Cross-distro Mini-conf][cross-distro-miniconf]. +We wanted to talk about our experiences in packaging (especially Java applications) +and brainstorm on how upstreams and distros can collaborate +on addressing our very different goals and share efforts. + +I would like to thank [Stefano Zacchiroli][zack] for providing insight, ideas +and pointers to his research on the "Upgrade Problem". I also want to thank +Bruno Cornec -- organizer of the Cross-distro Mini-conf -- for accepting our talk. + +Below you will find links to the presentation (we were unable to display +due to my laptop and the projector not getting along). Before +too long the excellent volunteers of [Linux Conf Australia][lca] will +make video of the talk available. + +## links + +* as PDF: [[crowdsourcing-refactoring.pdf|crowdsourcing-refactoring.pdf]] +* full source ([org-tree-slide][org-tree-slide]): [[crowdsourcing-refactoring-v2.tar.gz|crowdsourcing-refactoring-v2.tar.gz]] +* The Cross-distro Mini-conf was on [Tuesday][lca-tue] + +[lca]: http://linux.conf.au/ +[lca-tue]: http://linux.conf.au/programme/schedule/tuesday +[cross-distro-miniconf]: https://lca2013.linux.org.au/wiki/Miniconfs/CrossDistributionLinux +[bdale]: http://www.gag.com/~bdale/ +[zack]: http://upsilon.cc/~zack/ +[org-tree-slide]: https://github.com/takaxp/org-tree-slide + +[[!tag LCA 2013 debian upstreams distros]] diff --git a/tmarble/posts/Crowdsourcing_Upstream_Refactoring/crowdsourcing-refactoring-v2.tar.gz b/tmarble/posts/Crowdsourcing_Upstream_Refactoring/crowdsourcing-refactoring-v2.tar.gz new file mode 100644 index 0000000..6178ad0 Binary files /dev/null and b/tmarble/posts/Crowdsourcing_Upstream_Refactoring/crowdsourcing-refactoring-v2.tar.gz differ diff --git a/tmarble/posts/Crowdsourcing_Upstream_Refactoring/crowdsourcing-refactoring.pdf b/tmarble/posts/Crowdsourcing_Upstream_Refactoring/crowdsourcing-refactoring.pdf new file mode 100644 index 0000000..832652c Binary files /dev/null and b/tmarble/posts/Crowdsourcing_Upstream_Refactoring/crowdsourcing-refactoring.pdf differ diff --git a/tmarble/posts/FOSDEM_will_be_intense.mdwn b/tmarble/posts/FOSDEM_will_be_intense.mdwn new file mode 100644 index 0000000..0754acc --- /dev/null +++ b/tmarble/posts/FOSDEM_will_be_intense.mdwn @@ -0,0 +1,30 @@ +# FOSDEM will be intense! + +I mentioned that I'm helping to organize +[[two DevRooms|/tmarble/posts/Two_DevRooms_for_FOSDEM_2012]] +for FOSDEM 2012... And now I'm thrilled to announce the speakers +and schedules for each have been posted on the FOSDEM website: + +* [Free Java DevRoom Schedule][fosdem_free_java] +* [Legal Issues DevRoom Schedule][fosdem_legal_issues] + +But, of course, there's more! There are [main tracks][fosdem_main_tracks], +Lighting Talks, Stands, the Beer Event and the [Keysigning][fosdem_keysigning]. +I want to see all my Java friends, Legal friends, [Debian][debian] friends, +and meet a whole new bunch of interesting hacker friends. + +In a word... FOSDEM will be *intense*. It's crazy, busy, chaotic +and charming. What's the big deal about Free Software? +It's not about free beer... It's not about the most efficient +means of software production... It's all about the people! +See you there! + +*p.s. Ask me if you need help to get ready for the Keysigning (by Jan 29).* + +[fosdem_free_java]: http://fosdem.org/2012/schedule/track/free_java_devroom +[fosdem_legal_issues]: http://fosdem.org/2012/schedule/track/legal_issues_devroom +[fosdem_main_tracks]: http://fosdem.org/2012/schedule/main-tracks +[fosdem_keysigning]: http://fosdem.org/2012/keysigning +[debian]: http://www.debian.org/ + +[[!tag FOSDEM FreeJava LegalIssues Debian WebOfTrust]] diff --git a/tmarble/posts/I_Copyleft_this_Crowdsourcing.mdwn b/tmarble/posts/I_Copyleft_this_Crowdsourcing.mdwn new file mode 100644 index 0000000..0e8545a --- /dev/null +++ b/tmarble/posts/I_Copyleft_this_Crowdsourcing.mdwn @@ -0,0 +1,44 @@ +# I Copyleft this Crowdsourcing + +Fascinating news this week about success in using +[FoldIt](http://fold.it/portal/info/faq) to successfully +crowdsource the +[folding](http://news.yahoo.com/online-gamers-crack-aids-enzyme-puzzle-175427367.html) + of an "AIDS-like virus enzyme". + +This is a milestone in imagining a blend of human and +machine skills for, perhaps, one of the biggest health +related challenges we have. The technology is awesome. +The human creativity is awesome. The goal is awesome. + +What's striking about this story is how little is told +about the fruits of this effort. My guess -- and I'm +perfectly happy to be corrected -- is that the large +beneficiaries of this work will be pharmaceutical companies +that will patent the molecules they discover can +bind to such proteins. These molecules will be the +basis for very important cures. And the pharma with the +patent will have a monopoly on that molecule for 20 years. + +So is there even attribution for the AIDS patient who +donated her time to FoldIt? Could she benefit from the +medication she helped bring to market (at a reduced price)? + +For many years those of us in the FLOSS community have +been raising the concern that software patents do not, in fact, +"promote the progress in science and the useful arts". +There is growing awareness that that software doesn't pass the +§ 101 "machine or transformation test" and mathematics -- +a representation of software -- is not patent-able. + +The other large customers of the current patent system +are big pharma. Do pharma patents promote progress? +Would the drugs come to market anyway? An *economic* analysis +of this market would be enlightening. + +If the court of public opinion pushes Facebook +to disclose privacy policy (and implement modest controls) +doesn't FoldIt owe it to the community to at least disclose +the "terms of service"? + + diff --git a/tmarble/posts/Inbjuden_tillbaks_till_hemlandet_Sverige.mdwn b/tmarble/posts/Inbjuden_tillbaks_till_hemlandet_Sverige.mdwn new file mode 100644 index 0000000..ccdf9a2 --- /dev/null +++ b/tmarble/posts/Inbjuden_tillbaks_till_hemlandet_Sverige.mdwn @@ -0,0 +1,73 @@ +# Inbjuden tillbaks till hemlandet: Sverige + +Det är en ära för mig att ha blivit inbjuden att tala pÃ¥ konferensen +[Software Passion][softwarepassion_tmarble] i Göteborg, Sverige. +Det här är en stad med en mer än tusenÃ¥rig historia och ett omrÃ¥de +(byn Forsheda) frÃ¥n vilket min gammel mormor en gÃ¥ng utvandrade +till USA för över hundra Ã¥r sedan. Jag hoppas kunna lära mig lite +svenska innan min resa. + +This will be an exciting challenge for me because +I realize that most of my public speaking in the past few +years has been very much in a [FLOSS][floss] context. +The program at Software Passion shows quite a diversity of +technologies and topics -- including proprietary technologies +that I know little about. In my talk I will cover +some of the great fun I've had with the [Clojure][clojure] +programming language. Therefore I will consciously make a point to +highlight the importance of "standing on the shoulders of giants". + +The productivity I have enjoyed would not be possible without +the stack Free Software I count on, including, but not limited to: + +* [Clojure][clojure] +* [Clojure Contrib][clojure_contrib] libraries +* The [noir][noir] web framework +* The [leiningen][leiningen] dependency management and build tool +* [OpenJDK][openjdk] +* The [Redis][redis] database +* The [Jenkins][jenkins] continuious integration server +* And, of course, the bedrock of it all: [Debian GNU/Linux][debian] + +Several years ago I was able to travel to Norway on a project +I had with the electric vehicle company [Think Global][think]. +I was able to visit my aunt in Oslo and get very close +to the border of Sweden while working at the car factory in Aurskog. +Indeed many of the engineers I worked with were Swedes who +commuted across the border each day. + +My great-grandmother, Olga, immigrated from Sweden to the United +States around 1900. She was from a fairly well-to-do family +in Fosheda. After some careful investigation we learned that +she had fallen in love with a servant, but couldn't marry +him due to family pressure. A few years later after her +mother died she came to the USA with her "little brother" +and started a new life here. She was studying nursing in +Boston when she was asked to accompany the Minneapolis +Postmaster's wife back home on the train. + +Much earlier than the "personal ad" era Olga mysteriously +found my great-grandfather, Andrew, within 3 days of +arriving in Minneapolis and married him soon thereafter +(the Swedish mafia? :) ) . This is the background on my Nordic +roots in Minnesota. + +I realize that for non-Americans the obsession with +immigration history seems a little silly. I'm proud of +my mixture of German, Danish, Swedish and Bohemian roots. +And I'm especially excited to finally set foot in Sweden! + + +[softwarepassion_tmarble]: http://softwarepassion.se/speakers.do?name=tom-marble +[clojure]: http://clojure.org/ +[noir]: http://webnoir.org/ +[clojure_contrib]: http://dev.clojure.org/display/doc/Clojure+Contrib +[floss]: https://en.wikipedia.org/wiki/FLOSS +[openjdk]: http://openjdk.java.net/ +[leiningen]: https://github.com/technomancy/leiningen +[debian]: http://www.debian.org +[redis]: http://redis.io/ +[jenkins]: http://jenkins-ci.org/ +[think]: https://en.wikipedia.org/wiki/Think_Global + +[[!tag clojure noir leiningen Debian OpenJDK redis jenkins]] diff --git a/tmarble/posts/Legal_Issues_at_FOSDEM_2014.mdwn b/tmarble/posts/Legal_Issues_at_FOSDEM_2014.mdwn new file mode 100644 index 0000000..ad1025b --- /dev/null +++ b/tmarble/posts/Legal_Issues_at_FOSDEM_2014.mdwn @@ -0,0 +1,55 @@ +# Legal Issues at FOSDEM 2014 + +I'm very pleased to announce the [Call For Participation][cfp] for the +[FOSDEM 2014][fosdem] Legal Issues DevRoom. + +This is the third year that I've been lucky enough to collaborate +with some leading practitioners of Free Software and Open Source +licensing and community leadership to organize this intense event +on the topic of what makes FLOSS possible and what are the key +issues facing FLOSS today. I'm joined by my friends [Karen Sandler][karen], +[Bradley Kuhn][bkuhn], and [Richard Fontana][fontana]. + +I have been fascinated by the intersection of law and technology +because it is the clever use of copyright that makes Free, Libre +and Open Source Software possible. We hope to stimulate discussion +on topics such as: + +* Copyleft vs. permissive licensing: What is a policy case for copyleft? + If so what form should it take? +* How is software freedom important in ensuring privacy and security? +* What defines a Free Software and/or Open Source project? +* Do traditional Free Software values face some level of cooption + from for-profit corporate interest? If so, how? +* Copyleft licensing models and how they relate to business models. + Are there some business models that are license-permissible but bad for + community building? On the other side, does your license choice limit + or expand your community? +* Eroding software freedom in the proliferation of closed computing devices + such as mobile phones and tablets +* Copyleft enforcement and compliance planning from a developer perspective. + What is the future of GPL enforcement? Is it working? +* What is its impact on adoption of copyleft? +* How does the 'so-called' software patent war impact Free Software and Open Source? +* Copyleft license compatibility. What are the challenges of code base merges + when various licenses are in use? How does a compatibility analysis between licenses work? + +Please submit your talk idea before December 1st and plan to join us in Brussels on February 1st and 2nd! + +* [Legal Issues at FOSDEM 2013][legal2013] +* [Legal Issues at FOSDEM 2012][legal2012] + + + +A Big glass of Belgian beer + + +[fosdem]: https://fosdem.org/ +[cfp]: https://lists.fosdem.org/pipermail/fosdem/2013-November/001875.html +[karen]: http://blogs.gnome.org/gnomg/ +[bkuhn]: http://ebb.org/bkuhn/ +[fontana]: https://archive.fosdem.org/2013/schedule/speaker/richard_fontana/ +[legal2013]: https://archive.fosdem.org/2013/schedule/track/legal_issues/ +[legal2012]: https://archive.fosdem.org/2012/schedule/track/legal_issues_devroom.html + +[[!tag fosdem 2014]] diff --git a/tmarble/posts/Noir_is_the_new_Black.mdwn b/tmarble/posts/Noir_is_the_new_Black.mdwn new file mode 100644 index 0000000..ff32f18 --- /dev/null +++ b/tmarble/posts/Noir_is_the_new_Black.mdwn @@ -0,0 +1,24 @@ +# Noir is the new Black + +Next week (Wednesday Feb 1) I will give a talk about +my experiences in [Clojure][clojure] and [noir][noir]. + +Brian just sent the our local Clojure user group a +[pointer][noir_clojuremn] about the meeting at 7pm +at [Refactr][refactr] (Thanks Brian!). + +I will work to post slides here on my blog (along +with other links/resources). + +[[!img /tmarble/images/noir.png alt="Noir"]] + +See you next week! + + +[clojure]: http://clojure.org/ +[noir]: http://webnoir.org/ +[noir_clojuremn]: https://groups.google.com/group/clojuremn/browse_thread/thread/e1c5a5fd804f72b0?pli=1 +[refactr]: http://refactr.com/contact/ + +[[!tag clojure noir Debian]] + diff --git a/tmarble/posts/Puissance_de_Clojure.mdwn b/tmarble/posts/Puissance_de_Clojure.mdwn new file mode 100644 index 0000000..ad14cdc --- /dev/null +++ b/tmarble/posts/Puissance_de_Clojure.mdwn @@ -0,0 +1,33 @@ +# Puissance de Clojure + +I would like to thank [Stephano Zacchiroli][zack] and [Sylvestre Ledru][Sylvestre] for +inviting me to talk about the [Power of Clojure][puissance] yesterday at [IRILL][irill]. + + +IRILL + + +IRILL is an unique organization comprised of computer science researchers from +several leading European universitities and organizations collaborating to +create a vibrant FLOSS ecosystem. It was an honor to present my view of how +[Clojure][clojure] combines the advantages of Common Lisp and Java without +the disadvantages of either. This was a tough crowd, experienced in functional +programming and very critical of dynamic typing... There were many good questions +and we had an active discussion. + +I combined talking points with live hacking while presenting from within Emacs :) +You can download my "presentation" here: + +* as PDF: [[puissance-de-clojure.pdf|puissance-de-clojure.pdf]] +* full source ([org-tree-slide][org-tree-slide]): [[irill-26-juin-2012.tar.gz|irill-26-juin-2012.tar.gz]] + +Grazie Mille et Merci! + +[zack]: http://upsilon.cc/~zack/ +[Sylvestre]: http://sylvestre.ledru.info/ +[puissance]: http://www.irill.org/blog/puissance-de-clojure-par-tom-marble +[clojure]: http://clojure.org/ +[irill]: http://www.irill.org/ +[org-tree-slide]: https://github.com/takaxp/org-tree-slide + +[[!tag France clojure OpenJDK IRILL]] diff --git a/tmarble/posts/Puissance_de_Clojure/irill-26-juin-2012.tar.gz b/tmarble/posts/Puissance_de_Clojure/irill-26-juin-2012.tar.gz new file mode 100644 index 0000000..7d1efb2 Binary files /dev/null and b/tmarble/posts/Puissance_de_Clojure/irill-26-juin-2012.tar.gz differ diff --git a/tmarble/posts/Puissance_de_Clojure/puissance-de-clojure.pdf b/tmarble/posts/Puissance_de_Clojure/puissance-de-clojure.pdf new file mode 100644 index 0000000..193ad61 Binary files /dev/null and b/tmarble/posts/Puissance_de_Clojure/puissance-de-clojure.pdf differ diff --git a/tmarble/posts/Real_World_Clojure.mdwn b/tmarble/posts/Real_World_Clojure.mdwn new file mode 100644 index 0000000..e8b80fa --- /dev/null +++ b/tmarble/posts/Real_World_Clojure.mdwn @@ -0,0 +1,30 @@ +# Real World Clojure + +I just completed giving my talk at [Software Passion][softwarepassion_tmarble] conference +on Real World [Clojure][clojure]... + + +Clojure + + +Here you can download my presentation: + +* as PDF: [[real-world-clojure.pdf|real-world-clojure.pdf]] +* as source ([org-tree-slide][org-tree-slide]): [[real-world-clojure.org|real-world-clojure.org]] +* as source (org-tree-slide with images): [[software-passion.zip|software-passion.zip]] + +I'm very impressed at the organization and quality of the content at +Software Passion -- a first time conference. Clearly the organizers +have appealed to the innovative voices in Sweden's academic and +entreprenueal communities. + +And, of course, the best part of any conference is the "hallway track" +and Software Passion has a lot of interesting geeks! + +Tack! + +[softwarepassion_tmarble]: http://softwarepassion.se/speakers.do?name=tom-marble +[clojure]: http://clojure.org/ +[org-tree-slide]: https://github.com/takaxp/org-tree-slide + +[[!tag Sweden clojure Debian OpenJDK redis jenkins]] diff --git a/tmarble/posts/Real_World_Clojure/real-world-clojure.org b/tmarble/posts/Real_World_Clojure/real-world-clojure.org new file mode 100644 index 0000000..98a5ea2 --- /dev/null +++ b/tmarble/posts/Real_World_Clojure/real-world-clojure.org @@ -0,0 +1,810 @@ +#+TITLE: Real World Clojure +#+AUTHOR: Tom Marble +#+EMAIL: tmarble@info9.net +#+STARTUP: content + +* Overview + +Real World Clojure + +[[file:~/src/software-passion/Clojure-glyph.svg]] + +My journey in using Clojure for a client that is +developing a multiplayer game server hosting service. + + +** Overview: Topics to cover + +Press *f9* to see the list of topics + +**** Note's on what I put in my .emacs.d/custom.el + +(require 'org-tree-slide) + +(global-set-key (kbd "") 'show-all) +(global-set-key (kbd "") 'text-scale-decrease) +(global-set-key (kbd "") 'text-scale-increase) +(global-set-key (kbd "") 'org-tree-slide-mode) +(global-set-key (kbd "") 'org-tree-slide-content) +(global-set-key (kbd "") 'hide-sublevels) + +** What is that presentation tool? + +Emacs! + +This is *org-tree-slide* from https://github.com/takaxp/org-tree-slide + +For more on org mode see http://orgmode.org/org.html + +Yes I will share my "slides" on my website http://tmarble.info9.net + +[[file:~/src/software-passion/org-mode.png]] + +** Tack! + +My great grandmother immigrated to the USA from Sweden around 1900 + +[[file:~/src/software-passion/asimn.png]] + + +* Background + +** About Tom + +tmarble +[[file://home/tmarble/Pictures/Tom/Mugshot2011/Tom-2011-200.jpg]] + +*** Sun: technical presales during the dot.com era + +[[file:~/src/software-passion/e10k.jpg]] + + + +*** Sun: Java Performance + +[[file:~/src/software-passion/specjvm2008.png]] + +*** Sun: DLJ + +Early 2006: DLJ with Debian and Canonical (Ubuntu) + +[[file:~/src/software-passion/dlj.png]] + +*** Sun: OpenJDK + +JavaOne 2006: Rich Green announces that Sun will open source Java + +Core Strategy Team +- How organize community governance +- Copyright, Patent and Trademark licensing +- Infrastructure tools +- Pick license + +First OpenJDK Ambassador (I went to a lot of conferences) +- FOSDEM +- FISL +- OSCON + +ApacheCon 2006: Sun unBOF/Party +[[file:~/src/software-passion/apachecon2006.jpg]] +Copyright 2006 Ted Leung: https://secure.flickr.com/photos/twleung/268116213/ + +*** Left Sun to do a startup + +[[file:~/src/software-passion/tom-think.jpg]] + +*** But + +The global financial meltdown of 2008 happened (etc.) + +Didn't work out :( + +And so I... got into consulting! + +*** Consulting + +Cybersecurity + +Probabilistic Model Verification (Electrical Engineering) + +Software for Smart Grid + Renewable Energy + +Clojure + +*** Tom and Debian + +Using Linux since 1996 + +Using Debian since 2003 + +Helped Debian Java Packaging Team since DLJ in 2006 + +World with Debian and Oracle on meshing Jigsaw with *apt* + +[[file:~/src/software-passion/gsoc11.jpg]] + +*** FOSDEM + +Java track +- Oracle +- Distros +- Developers +- Users + +Legal Issues Track +- Organized by Karen Sandler, Bradley Kuhn, Richard Fontana and myself +- Check out the Wiki http://info9.net/wiki/fosdem/LegalIssuesDevRoom/ +- Check out the oggcast http://faif.us/ + +** About my client + +The client +- Developing a multiplayer game server hosting service +- Comprised of very young developers +- Is in stealth mode (sorry!) + +I have been given the authority to +- Make significant choices about architecture +- Green light to open source generic bits + +(this is why i like consulting :) + +I'm not the only one (especially in Nordic countries)! + +* Why Lisp? + +John McCarthy is old school: +[[file:~/src/software-passion/John_McCarthy.jpg]] + + +** homoiconic + +*code is data* + +List + + (def mylist '(1 2 3)) + +Function + + (defn myadd [a b] (+ a b)) + +Clojure is defined in terms of the evaluation of data structures +and not in terms of the syntax of character streams/files. + +** macros: code transformations at compile time + +Macros offer hooks for syntactic abstraction +and there is very little syntax. + +(defmacro and + ([] true) + ([x] x) + ([x & rest] + `(let [and# ~x] + (if and# (and ~@rest) and#)))) + +Allows code transformation *before* the reader does evaluation +defn is a macro that makes defining functions a little simpler. + +*** defining functions uses the defn macro + +Clojure supports arity overloading in a single function object, +self-reference, and variable-arity functions using &: + +(defn argcount + ([] 0) + ([x] 1) + ([x y] 2) + ([x y & more] (+ (argcount x y) (count more)))) + +-> #'user/argcount +(argcount) +-> 0 +(argcount 1) +-> 1 +(argcount 1 2) +-> 2 +(argcount 1 2 3 4 5) +-> 5 + +** Very easy to work with code (because it's data) + +LISP is the language of choice when writing +Domain Specific Languages (DSL's). +- Mentioned by Theo (JRuby) and Morton (APL) today! + +Example from ILC '09 at MIT +- Alex Fukunaga (Tokyo University) spoke on The Satisfyability Problem +- A DSL for SAT algorithms +- Used a biological evolution inspired algorithm + +** REPL + +The Read Eval Print Loop + +Interactive code development + +Instead of just dump a stack trace and die on an error... +you can edit data and functions (they look the same) +and continue your program! + +** Lisp successes + +Artificial Intelligence + +Scientific Computing Lisp + + SciCL augments Common Lisp with an extensive library of aggregate-wise (“AG-wise”) + operations on arrays, providing the essential functionality of languages such as APL, + Fortran 90, IDL and Matlab. + + http://www.siginf.com/ + +* Why Clojure? + +** Many enterprise deployments already use Java + +Clojure adds a jar to the CLASSPATH +(lowers the barrier to customer approval) + +Embraces the power of the JVM + +(defn #^Properties as-properties + "Convert any seq of pairs to a java.utils.Properties instance. + Uses as-str to convert both keys and values into strings." + {:tag Properties} + [m] + (let [p (Properties.)] + (doseq [[k v] m] + (.setProperty p (as-str k) (as-str v))) + p)) + +Leverages the wealth of existing Java libraries + +** Need the benefits of LISP and + +Need to deal with concurrency using native threads and locking. + +Without the downsides of Java +- Skip the boilerplate (to not fetishize complexity) +- Multi-methods instead of the "Kingdom of Nouns (OOP)" +- Unmoderated mutation simply "has to go" + (makes concurrency very difficult) + +** Functional Programming + +Immutable data + first-class functions, supporting recursion + +Dynamic polymorphism + +Emphasizes recursive iteration instead of side-effect based looping + +user> (let [my-vector [1 2 3 4] + my-map {:fred "ethel"} + my-list (list 4 3 2 1)] + (list + (conj my-vector 5) + (assoc my-map :ricky "lucy") + (conj my-list 5) + my-vector + my-map + my-list)) +-> ([1 2 3 4 5] {:ricky "lucy", :fred "ethel"} (5 4 3 2 1) [1 2 3 4] {:fred "ethel"} (4 3 2 1)) + +** Software Transactional Memory + +Core data structures are immutable and can easily be shared between threads + +Mutation *is* possible using locks to avoid conflicts + +- dosync, ref, set, alter, et al, supports sharing changing + state between threads in a synchronous and coordinated manner. + +- The agent system supports sharing changing state between threads + in an asynchronous and independent manner. + +- The atoms system supports sharing changing state between threads + in a synchronous and independent manner. + +- The dynamic var system supports isolating changing state within + threads. + +** No spec, one implementation + +Disadvantages: All eggs in one basket + + Advantages: Clojure works *everywhere* + Innovation happens quickly + Core data structures are extensible abstractions + +[[file:~/src/software-passion/rich.jpg]] + +** Java + +Embraces the power of the JVM +- Multiplatform +- Performance + +Note: also runs on the CLR and on JavaScript (*) + +*** Java - multiplatform + +Sun originally wanted Java to enable customers to use SPARC + +Today many Enterprises run on Intel architectures + +But what about tomorrow? + +*** ARM looks very good for size, cost, heat + +Maybe we will see ARM in the data center? + +[[file:~/src/software-passion/arm-datacenter.png]] + +http://news.softpedia.com/news/Ubuntu-and-HP-Will-Power-ARM-Data-Centers-231827.shtml + +*** We are seeing ARM everywhere in embedded devices + +Raspberry Pi = $25 +- SoC is a Broadcom BCM2835. This contains an ARM1176JZFS, with floating point, running at 700Mhz +- Videocore 4 GPU. The GPU is capable of BluRay quality playback, using H.264 at 40MBits/s. +- It has a fast 3D core accessed using the supplied OpenGL ES2.0 and OpenVG libraries. +- 256 MB RAM +- One USB port +- (Model B adds a 2nd USB port, Ethernet) + +[[file:~/src/software-passion/raspi_blue_white.png]] + +http://www.raspberrypi.org/ + +*** Java for the "Internet of Things" + +Tiny ARM chip +IPv6 + +[[file:~/src/software-passion/arm-1mm.png]] + +*** Java as assembly language + +For these reasons Clojure is one of many vibrant, +alternative languages on the JVM which include: + +- JRuby +- Scala +- Jython +- IKVM.NET +- Gosu +- Smalltalk +- JavaScript + +** Bleeding Edge OpenJDK features + +NOT yet truly being used by Clojure + +*** Fork/Join + +Bring Doug Lea's Fork/Join framework into Clojure + +Primary example *pmap* +- using the shortest map/reduce tutorial ever +- WAIT, Morton did this in one line in APL :) + + user> (def mylist '(1 2 3 4 5 6)) + #'user/mylist + user> (map even? mylist) + (false true false true false true) + user> (reduce 'or (map even? mylist)) + true + +David Liebke: "From Concurrency to Parallelism" +http://incanter.org/downloads/fjclj.pdf + +*** Tail Call Optimization + +Save space on the stack: + + call factorial (3) + call fact (3 1) + call fact (2 3) + call fact (1 6) + call fact (0 6) + return 6 + return 6 + return 6 + return 6 + return 6 + + call factorial (3) + call fact (3 1) + replace arguments with (2 3), jump to "fact" + replace arguments with (1 6), jump to "fact" + replace arguments with (0 6), jump to "fact" + return 6 + return 6 + +NOTE: Clojure does have *recur* and *trampoline* but +the JVM itself lacks a generic optimization for TCO +(but there is an older patch in the MVLM repo). + +https://en.wikipedia.org/wiki/Tail_call + +*** Invoke Dynamic + +JSR 292 + +Enables the HotSpot VM to *see* into your "JVM Language" code +and optimize it! + +Why Clojure Doesn't Need Invokedynamic (Unless You Want It to be More Awesome) +http://blog.headius.com/2011/10/why-clojure-doesnt-need-invokedynamic.html + +*** Modularization (Jigsaw) + +Better startup time +Finer grained dependencies +Smaller footprint (embedded) + +[[file:~/src/software-passion/graph.png]] + +* The Tools I am using + +** Maven + +Finding dependencies: =mvn dependency:tree -DoutputFile=dependency.txt= + +my-website:my-website:jar:0.1.0-SNAPSHOT ++- org.clojure:clojure:jar:1.3.0:compile +\- noir:noir:jar:1.2.2-SNAPSHOT:compile + +- compojure:compojure:jar:1.0.0-RC2:compile + | +- org.clojure:core.incubator:jar:0.1.0:compile + | +- org.clojure:tools.macro:jar:0.1.0:compile + | +- clout:clout:jar:1.0.0:compile + | \- ring:ring-core:jar:1.0.1:compile + | +- commons-io:commons-io:jar:1.4:compile + | +- commons-fileupload:commons-fileupload:jar:1.2.1:compile + | \- javax.servlet:servlet-api:jar:2.5:compile + +- org.clojure:tools.namespace:jar:0.1.0:compile + | \- org.clojure:java.classpath:jar:0.1.0:compile + +- clj-json:clj-json:jar:0.4.3:compile + | \- org.codehaus.jackson:jackson-core-asl:jar:1.5.0:compile + +- ring:ring:jar:1.0.1:compile + | +- ring:ring-devel:jar:1.0.1:compile + | | \- ns-tracker:ns-tracker:jar:0.1.1:compile + | +- ring:ring-jetty-adapter:jar:1.0.1:compile + | | +- org.mortbay.jetty:jetty:jar:6.1.25:compile + | | | \- org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile + | | \- org.mortbay.jetty:jetty-util:jar:6.1.25:compile + | \- ring:ring-servlet:jar:1.0.1:compile + +- hiccup:hiccup:jar:0.3.7:compile + +- clj-stacktrace:clj-stacktrace:jar:0.2.3:compile + +- ring-reload-modified:ring-reload-modified:jar:0.1.1:compile + +- net.java.dev.jets3t:jets3t:jar:0.8.1:compile + | +- commons-codec:commons-codec:jar:1.3:compile + | +- commons-logging:commons-logging:jar:1.1.1:compile + | +- commons-httpclient:commons-httpclient:jar:3.1:compile + | \- com.jamesmurty.utils:java-xmlbuilder:jar:0.4:compile + \- org.mindrot:jbcrypt:jar:0.3m:compile + +** Leiningen + +Leiningen is awesome + https://github.com/technomancy/leiningen + +Use the REPL *swank-clojure* + https://github.com/technomancy/swank-clojure + +Get... +$ lein plugin install swank-clojure 1.4.0 +$ lein plugin install lein-localrepo 0.3 +$ lein plugin install lein-noir 1.2.1 + +=lein localrepo help= + +Public Repos: http://clojars.org/ + +Private Repos: https://github.com/technomancy/s3-wagon-private + +Lein directly from git: https://github.com/tobyhede/lein-git-deps + +** Redis + +Amazing NoSQL Database: http://redis.io + +With a Clojure binding! https://github.com/mmcgrana/clj-redis + +Redis utterly killed it in 2010 – check out the growth in share of developer conversation +http://www.redmonk.com/jgovernor/2012/03/15/redis-utterly-killed-it-in-2010-check-out-the-growth-in-share-of-developer-conversation/ + + + +** Jenkins + +Continuous Integration Server: http://jenkins-ci.org/ + +Amazing Plugins: https://wiki.jenkins-ci.org/display/JENKINS/Plugins + +The ones that I use: +- Trac Publisher +- Dependency Graph Viewer +- IM +- Pathignore (essential for big git repo) +- SSH Slaves +- Thin Backup +- Build Result Trigger + +Fun ones +- Gravatar +- Emotional Jenkins + +KK slides from February at MonkiGras in London + http://www.slideshare.net/kohsuke/building-developer-community + +** Using Jenkins + +Git push triggers Jenkins +Updates the one (master) workspace +Projects started based on updated paths + +Java Client +- Builds on Linux +- Triggers native Mac OS X build on Mac slave +- Triggers native Windows build on Windows slave + +Deploying Noir application +- shuts down dev website +- updates code +- restarts website + +** Trac + +http://trac.edgewall.org/ + +- Tickets (bugs, tasks), Reports, Browse code, Timeline, Wiki +- Can now use git (yeah!) +- Integration with Jenkins + http://trac-hacks.org/wiki/XmlRpcPlugin + +** Noir + +Let's talk about Noir http://webnoir.org + +* Why Open Source Matters + +Free as in Free Beer + +Free as in Free Speech + +Knowing the shape of the solutions: Ease of integration + +No marketing: just code (extra credit: build in tests and Jenkins) + +Fewer bugs (recent Coverity study) + +Education, credentials and employment +- Employers *will* google you +- Many directly ask for pointers to FLOSS contributions + +** Where are you going to deploy that code? + +The "cloud". + +Are you really going to deploy to Windows? +- you have to name your machines #FAIL +- you have to Remote Desktop in and click-to-admin #FAIL +- no anticipated downtime until 2016 :) + +You can't deploy to Mac OS X +- X Serve died a long time ago + +You want to deploy to Linux +- Cost effective +- Legal +- More reliable +- More automatable + +** permissive vs. restrictive licensing + +BSD (MIT AL2) vs. GPL (MPL) + +Permissive is necessary, but sometimes not enough to +hold a community together. + +Jeremy Allison: Why Samba Switched to GPLv3 +2011 Linux Collaboration Summit + http://faif.us/cast/2011/may/10/0x0F/ + +NOTE: proprietary (dual) licensing with contributor +license agreements is now considered harmful + +** Open Source and Web Services + +What if you want to build a strong community +around a web service? + +In the "cloud" the GPL is just like BSD. + +The answer? The AGPL (Affero General Public License) + +From the FSF + The GNU Affero General Public License is a modified version + of the ordinary GNU GPL version 3. It has one added requirement: + if you run the program on a server and let other users communicate + with it there, your server must also allow them to download + the source code corresponding to the program that it's running. + +What? I'm going to build a business on AGPL? Is that CRAZY? + +It is being done now: http://status.net +"Enterprise Social Software is OPEN for business." + +** Where is the value? + +Productivity! + +Right Now +- Hardware is effectively free +- The best software in life is Free +- Savoir Faire (brainpower) is expensive +- Data are like diamonds: they vary in clarity, quality and value + +New business models need to maximize productivity +around managing and improving quality of data. + +(NOTE: China doesn't care about intellectual property anyway) + +** Why Debian + +Commitment to quality and building everything from source + +Package inter-dependencies are core to the system +- Windows needs Maven, Gems, cygwin, etc. +- Mac needs MacPorts, etc. + +Very predictable, easy to administer & automate, secure, stable + +One of the two major Linux families (.deb and .rpm) +and the foundation of many derivatives (e.g. Ubuntu) + +[[file:~/src/software-passion/debconf11.jpg]] + +http://wiki.debconf.org/wiki/DebConf11/Pictures/GroupPhoto + +* Challenges and Next Steps + +** The state of Clojure Contrib (is a challenge) + +"Modularization of Contrib" + + http://dev.clojure.org/display/doc/Clojure+Contrib + +Wait, why isn't there a project.clj (for lein)? +- officially must use mvn (!) (lein originally could not deploy + to remote mvn repos) + +The idea is that everything that hasn't been modularized yet +is supposedly either low quality or in low demand + +Using clojars: change groupID to highlight it's non-canonical + +Also it's tricky to find out what the *real* disposition of +stuff is.. I wanted java-utils (moved to clojure.java.io) + +** My client will expand capacity from private to public cloud + +Expand service from customer hosted into EC2 +With auto provisioning of resources (up/down) + +** Websockets + +jQuery +Atmosphere +Jetty +Noir + +Fully bi-directional pipes (no more AJAX polling)! + +** Redis binding change + +clj-redis / Jedis / Apache connection library +- missing functionality +- times out + +My be replaced with redis-clojure + +** Keeping an eye on Datomic + +[[file:~/src/software-passion/datomic.png]] + +** Keeping an eye on ClojureScript One + +ClojureScript +ClojureScript One +ClojureScript One + the remote REPL + browser testing + no CSS reloads + +Connect With Your Creation Through a Real-Time Editor +http://www.webmonkey.com/2012/03/connect-with-your-creation-through-a-real-time-editor/ +http://www.chris-granger.com/2012/02/20/overtone-and-clojurescript/ + +** Experiment with exposing bleeding edge JVM features in the Clojure + +It only takes about 30 min to build the JDK on an 8 core machine + +Tighter Debian Clojure packaging (Jigsaw) + +* Conclusion + +LISP is incredibly powerful (don't be afraid of the parens) + +Clojure is the best LISP now (because of the JVM) + +Java means future proof for platforms in the cloud +and the "Internet of Things". + +Open Source isn't just free, it's key to a +strong business model (and probably saving the planet). + +Software "best practice" tools are available for Clojure now + +There are *still* many optimizations waiting to be made + +The #1 reason to use Clojure: productivity. + + +This presentation: Copyright @ 2012 Informatique, Inc. +under a Creative Commons Share Alike USA 3.0 license +https://creativecommons.org/licenses/by-sa/3.0/us/ + +[[file:~/src/software-passion/by-sa-3.0.png]] + + +Clojure: Copyright 2008-2012 Rich Hickey http://clojure.org + +NOTE: Tom will code in Clojure / Jigsaw / Debian / ARM for food! +http://tmarble.info9.net + +* Q/A + Live Hacking + +file:~/src/software-passion + +** Command line processing and configuration files + +tools.cli + https://github.com/clojure/tools.cli + awesome, right? +connected to SSH agent (has at least one identity) +tmarble@noir 102$ lein search tools.cli + == Results from central - Showing page 1 / 1 total +[org.clojure/tools.cli "0.1.0"] +[org.clojure/tools.cli "0.1.0"] +tmarble@noir 103$ + +** Pretty Print HTML and XML + +I created a future-contrib package: +file:~/src/maas/clojure/future-contrib/project.clj + +See file:~/src/maas/clojure/future-contrib/src/future_contrib/core.clj + +Demonstrate example with file:~/src/clojuremn/example.xml + +** redis2xml + +Demonstrates command line processing and configuration files + +see file:~/src/maas/clojure/redis2xml/project.clj + +see: file:~/.redis2xml + +also try command line: + +=redis-cli -a NoOneWillEverGuess -n 3= + +./bin/redis2xml -v -n 3 -f -i ~/src/clojuremn/example.xml + +** Example Noir site + +See file:~/src/noir-examples/my-website + + + diff --git a/tmarble/posts/Real_World_Clojure/real-world-clojure.pdf b/tmarble/posts/Real_World_Clojure/real-world-clojure.pdf new file mode 100644 index 0000000..d0b83ed Binary files /dev/null and b/tmarble/posts/Real_World_Clojure/real-world-clojure.pdf differ diff --git a/tmarble/posts/Real_World_Clojure/software-passion.zip b/tmarble/posts/Real_World_Clojure/software-passion.zip new file mode 100644 index 0000000..3517fbb Binary files /dev/null and b/tmarble/posts/Real_World_Clojure/software-passion.zip differ diff --git a/tmarble/posts/Setting_Up_MediaGoblin.mdwn b/tmarble/posts/Setting_Up_MediaGoblin.mdwn new file mode 100644 index 0000000..b31429e --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin.mdwn @@ -0,0 +1,25 @@ +# Setting Up MediaGoblin + +This is a very quick and dirty post to document my basic MediaGoblin setup. +Realize my snapshot of the software is from early September (is in serious +need of updating!). This certainly does not represent anything close +to MediaGoblin best practice, but I hope it will be useful. + +I'm running on Debian Wheezy with Apache2. Here are the critical config files: + +* /etc/ + * init.d/ + * [[etc/init.d/mediagoblin-celeryd]] + * [[etc/init.d/mediagoblin-paster]] + * apache2/ + * sites-available/ + * [[etc/apache2/sites-available/media]] +* /srv/ + * mediagoblin/ + * [[srv/mediagoblin/mediagoblin_local.ini]] + * [[srv/mediagoblin/paste_local.ini]] + * [[srv/mediagoblin/mg.txt]] (_NOTE:_ fix the shebang, rename to mg.fcgi) + +Yes, this python virtualenv thing is wonky. I tried to root MediaGoblin at URI underneath / (e.g. info9.net/media/) +without success (MediaGoblin *really* wants a virtual host, thus media.info9.net/). +I hope to post an update when I've refreshed my MediaGoblin install! diff --git a/tmarble/posts/Setting_Up_MediaGoblin/etc/apache2/sites-available/media b/tmarble/posts/Setting_Up_MediaGoblin/etc/apache2/sites-available/media new file mode 100644 index 0000000..01d33a8 --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin/etc/apache2/sites-available/media @@ -0,0 +1,64 @@ +# mediagoblin + + ServerName media.info9.net + UseCanonicalName On + ServerAdmin webmaster@info9.net + + + RewriteEngine on + # MediaGoblin + # Rewrite all URLs to fcgi, except for static and media urls + RewriteRule ^(mgoblin_static|mgoblin_media)($|/) - [L] + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ /mg.fcgi/$1 [QSA,L] + + + + # DocumentRoot /var/www.old + DocumentRoot /srv/mediagoblin + + Options FollowSymLinks + AllowOverride None + + # + # Options Indexes FollowSymLinks MultiViews + # AllowOverride None + # Order allow,deny + # allow from all + # + + + ErrorLog ${APACHE_LOG_DIR}/media-error.log + + # Possible values include: debug, info, notice, warn, error, crit, + # alert, emerg. + LogLevel warn + + CustomLog ${APACHE_LOG_DIR}/media-access.log combined + +# MediaGoblin +Alias /mgoblin_static/ /srv/mediagoblin/mediagoblin/static/ +Alias /mgoblin_media/ /srv/mediagoblin/user_dev/media/public/ + + +# Allow access to static and media directories + + Order allow,deny + Allow from all + + + + Order allow,deny + Allow from all + + + + SetHandler fcgid-script + Options +ExecCGI + FcgidWrapper /srv/mediagoblin/mg.fcgi + order allow,deny + allow from all + + + + diff --git a/tmarble/posts/Setting_Up_MediaGoblin/etc/init.d/mediagoblin-celeryd b/tmarble/posts/Setting_Up_MediaGoblin/etc/init.d/mediagoblin-celeryd new file mode 100755 index 0000000..ab7195d --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin/etc/init.d/mediagoblin-celeryd @@ -0,0 +1,128 @@ +#!/bin/sh +# /etc/init.d/mediagoblin-celeryd +# +## LICENSE: CC0 +# To the extent possible under law, Joar Wandborg has +# waived all copyright and related or neighboring rights to +# mediagoblin-celeryd. This work is published from Sweden. +# +## CREDIT +# Credit goes to jpope and +# chimo . From which' Arch init scripts this is +# based upon. +# +### BEGIN INIT INFO +# Provides: mediagoblin-celeryd +# Required-Start: $network $named $local_fs +# Required-Stop: $remote_fs $syslog $network $named $local_fs +# Should-Start: postgres $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: MediaGoblin Celery task processor init script +# Description: This script will initiate the GNU MediaGoblin Celery +# task processor +### END INIT INFO + +################################################################################ +# CHANGE THIS +# to suit your environment +################################################################################ +MG_ROOT=/srv/mediagoblin +################################################################################ +# NOW STOP +# You probably won't have to change anything else. +################################################################################ + +set -e + +DAEMON_NAME=mediagoblin-celeryd + +MG_USER=www-data +MG_BIN=$MG_ROOT/bin +MG_CELERYD_BIN=$MG_BIN/celeryd +MG_CONFIG=$MG_ROOT/mediagoblin_local.ini +MG_CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery +MG_CELERYD_PID_FILE=/var/run/mediagoblin/$DAEMON_NAME.pid +MG_CELERYD_LOG_FILE=/var/log/mediagoblin/$DAEMON_NAME.log + +set_up_directories() { + install -o $MG_USER -g users -d -m 755 /var/log/mediagoblin + install -o $MG_USER -g users -d -m 755 /var/run/mediagoblin +} + +set_up_directories + +# Include LSB helper functions +. /lib/lsb/init-functions + +getPID() { + # Discard any errors from cat + cat $MG_CELERYD_PID_FILE 2>/dev/null +} + +case "$1" in + start) + # Start the MediaGoblin celeryd process + log_daemon_msg "Starting GNU MediaGoblin Celery task queue" "$DAEMON_NAME" + if [ -z "$(getPID)" ]; then + su -s /bin/sh -c "cd $MG_ROOT && \ + MEDIAGOBLIN_CONFIG=$MG_CONFIG \ + CELERY_CONFIG_MODULE=$MG_CELERY_CONFIG_MODULE \ + $MG_CELERYD_BIN \ + --pidfile=$MG_CELERYD_PID_FILE \ + -f $MG_CELERYD_LOG_FILE" \ + - $MG_USER 2>&1 > /dev/null & + + CELERYD_RESULT=$? + + # Sleep for a while until we're kind of certain that celeryd has + # had it's time to initialize + TRIES=0 + while ! [ "X$CELERYD_RESULT" != "X" ]; do + log_action_msg "Tried $TRIES time(s)" + sleep 0.1 + TRIES=$((TRIES+1)) + done + + log_end_msg $CELERYD_RESULT + else + # Failed because the PID file indicates it's running + log_action_msg "PID file $MG_CELERYD_PID_FILE already exists" + log_end_msg 1 + fi + ;; + stop) + log_daemon_msg "Stopping GNU MediaGoblin Celery task queue" "$DAEMON_NAME" + if [ -z "$(getPID)" ]; then + # Failed because the PID file indicates it's not running + RET=1 + else + kill $(getPID) + + if [ $? -gt 0 ]; then + RET=1 + else + RET=0 + fi + fi + log_end_msg $RET + ;; + restart) + $0 stop + sleep 3 + $0 start + ;; + status) + if ! [ -z "$(getPID)" ]; then + echo "$DAEMON_NAME start/running, process $(getPID)" + else + echo "$DAEMON_NAME stopped." + fi + ;; + *) + echo "Usage: $0 {restart|start|stop|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/tmarble/posts/Setting_Up_MediaGoblin/etc/init.d/mediagoblin-paster b/tmarble/posts/Setting_Up_MediaGoblin/etc/init.d/mediagoblin-paster new file mode 100755 index 0000000..6758b47 --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin/etc/init.d/mediagoblin-paster @@ -0,0 +1,129 @@ +#!/bin/sh +# /etc/init.d/mediagoblin-paster +# +## LICENSE: CC0 +# To the extent possible under law, Joar Wandborg has +# waived all copyright and related or neighboring rights to +# mediagoblin-paster. This work is published from Sweden. +# +## CREDIT +# Credit goes to jpope and +# chimo . From which' Arch init scripts this is +# based upon. +# +### BEGIN INIT INFO +# Provides: mediagoblin-paster +# Required-Start: $network $named $local_fs +# Required-Stop: $remote_fs $syslog $network $named $local_fs +# Should-Start: postgresql $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: MediaGoblin paster FCGI server init script +# Description: This script will initiate the GNU MediaGoblin paster +# fcgi server. +### END INIT INFO + +################################################################################ +# CHANGE THIS +# to suit your environment +################################################################################ +MG_ROOT=/srv/mediagoblin +################################################################################ +# NOW STOP +# You probably won't have to change anything else. +################################################################################ + +set -e + +DAEMON_NAME=mediagoblin-paster + +MG_BIN=$MG_ROOT/bin +MG_PASTER_BIN=$MG_BIN/paster +MG_PASTE_INI=$MG_ROOT/paste_local.ini +MG_USER=www-data +MG_FCGI_HOST=127.0.0.1 +MG_FCGI_PORT=26543 +MG_PASTER_PID_FILE=/var/run/mediagoblin/$DAEMON_NAME.pid +MG_PASTER_LOG_FILE=/var/log/mediagoblin/$DAEMON_NAME.log + +set_up_directories() { + install -o $MG_USER -g users -d -m 755 /var/log/mediagoblin + install -o $MG_USER -g users -d -m 755 /var/run/mediagoblin +} + +set_up_directories + +# Include LSB helper functions +. /lib/lsb/init-functions + +getPID () { + # Discard any errors from cat + cat $MG_PASTER_PID_FILE 2>/dev/null +} + +case "$1" in + start) + # Start the MediaGoblin paster process + log_daemon_msg "Starting GNU MediaGoblin paster fcgi server" "$DAEMON_NAME" + if [ -z "$(getPID)" ]; then + su -s /bin/sh -c "CELERY_ALWAYS_EAGER=False $MG_PASTER_BIN serve \ + $MG_PASTE_INI \ + --server-name=fcgi \ + fcgi_host=$MG_FCGI_HOST fcgi_port=$MG_FCGI_PORT \ + --pid-file=$MG_PASTER_PID_FILE \ + --log-file=$MG_PASTER_LOG_FILE \ + --daemon" - $MG_USER 2>&1 > /dev/null + + PASTER_RESULT=$? + + # Sleep for a while until we're kind of certain that paster has + # had it's time to initialize + TRIES=0 + while ! [ "X$PASTER_RESULT" != "X" ]; do + log_action_msg "Tried $TRIES time(s)" + sleep 0.1 + TRIES=$((TRIES+1)) + done + + log_end_msg $PASTER_RESULT + else + # Failed because the PID file indicates it's running + log_action_msg "PID file $MG_PASTER_BIN already exists" + log_end_msg 1 + fi + ;; + stop) + log_daemon_msg "Stopping GNU MediaGoblin paster fcgi server" "$DAEMON_NAME" + if [ -z "$(getPID)" ]; then + # Failed because the PID file indicates it's not running + RET=1 + else + kill $(getPID) + + if [ $? -gt 0 ]; then + RET=1 + else + RET=0 + fi + fi + log_end_msg $RET + ;; + restart) + $0 stop + sleep 3 + $0 start + ;; + status) + if ! [ -z "$(getPID)" ]; then + echo "$DAEMON_NAME start/running, process $(getPID)" + else + echo "$DAEMON_NAME stopped." + fi + ;; + *) + echo "Usage: $0 {restart|start|stop|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/mediagoblin_local.ini b/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/mediagoblin_local.ini new file mode 100644 index 0000000..188793c --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/mediagoblin_local.ini @@ -0,0 +1,43 @@ +# If you want to make changes to this file, first copy it to +# mediagoblin_local.ini, then make the changes there. + +[mediagoblin] +direct_remote_path = /mgoblin_static/ +email_sender_address = "webmaster@info9.net" + +## Uncomment and change to your DB's appropiate setting. +## Default is a local sqlite db "mediagoblin.db". +# sql_engine = postgresql:///gmg + +# set to false to enable sending notices +email_debug_mode = false + +# Set to false to disable registrations +# allow_registration = true +allow_registration = false + +## Uncomment this to turn on video or enable other media types +media_types = mediagoblin.media_types.image, mediagoblin.media_types.video + +## Uncomment this to put some user-overriding templates here +# local_templates = %(here)s/user_dev/templates/ + +## You can set your theme by specifying this (not specifying it will +## use the default theme). Run `gmg theme assetlink` to apply the change. +## The airy theme comes with GMG; please see the theming docs on how to +## install other themes. +# theme = airy + +[storage:queuestore] +base_dir = %(here)s/user_dev/media/queue + +[storage:publicstore] +base_dir = %(here)s/user_dev/media/public +base_url = /mgoblin_media/ + +[celery] +# Put celery stuff here + +# place plugins here---each in their own subsection of [plugins]. see +# documentation for details. +[plugins] diff --git a/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/mg.txt b/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/mg.txt new file mode 100644 index 0000000..9339415 --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/mg.txt @@ -0,0 +1,28 @@ +NOTE the shebang has been disabled here + +#!/srv/mediagoblin/bin/python + +# Written in 2011 by Christopher Allan Webber +# +# To the extent possible under law, the author(s) have dedicated all +# copyright and related and neighboring rights to this software to the +# public domain worldwide. This software is distributed without any +# warranty. +# +# You should have received a copy of the CC0 Public Domain Dedication along +# with this software. If not, see +# . + +from paste.deploy import loadapp +from flup.server.fcgi import WSGIServer + +CONFIG_PATH = '/srv/mediagoblin/paste_local.ini' + + +def launch_fcgi(): + ccengine_wsgi_app = loadapp('config:' + CONFIG_PATH) + WSGIServer(ccengine_wsgi_app).run() + + +if __name__ == '__main__': + launch_fcgi() diff --git a/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/paste_local.ini b/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/paste_local.ini new file mode 100644 index 0000000..103bb60 --- /dev/null +++ b/tmarble/posts/Setting_Up_MediaGoblin/srv/mediagoblin/paste_local.ini @@ -0,0 +1,106 @@ +# If you want to make changes to this file, first copy it to +# paste_local.ini, then make the changes there. + +[DEFAULT] +# Set to true to enable web-based debugging messages and etc. +debug = false + +[pipeline:main] +pipeline = errors routing + +[composite:routing] +use = egg:Paste#urlmap +/ = mediagoblin +/mgoblin_media/ = publicstore_serve +/mgoblin_static/ = mediagoblin_static +/theme_static/ = theme_static + +[app:mediagoblin] +use = egg:mediagoblin#app +filter-with = beaker +config = %(here)s/mediagoblin_local.ini %(here)s/mediagoblin.ini + +[loggers] +keys = root + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-7.7s [%(name)s] %(message)s + +[app:publicstore_serve] +use = egg:Paste#static +document_root = %(here)s/user_dev/media/public/ +cache_max_age = 604800 + +[app:mediagoblin_static] +use = egg:Paste#static +document_root = %(here)s/mediagoblin/static/ +cache_max_age = 86400 + +[app:theme_static] +use = egg:Paste#static +document_root = %(here)s/user_dev/theme_static/ +cache_max_age = 86400 + +[filter:beaker] +use = egg:Beaker#beaker_session +cache_dir = %(here)s/user_dev/beaker +beaker.session.key = mediagoblin +# beaker.session.secret = somesupersecret +beaker.session.data_dir = %(here)s/user_dev/beaker/sessions/data +beaker.session.lock_dir = %(here)s/user_dev/beaker/sessions/lock + +[filter:errors] +use = egg:mediagoblin#errors +debug = false + + +############################## +# Server configuration options +############################## + +# The server that is run by default. +# By default, should only be accessable locally +[server:main] +use = egg:Paste#http +host = 127.0.0.1 +port = 6543 + +####################### +# Helper server configs +# --------------------- +# If you are configuring the paste config manually, you can remove +# these. + +# Use this if you want to run on port 6543 and have MediaGoblin be +# viewable externally +[server:broadcast] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Use this if you want to connect via fastcgi +[server:fcgi] +use = egg:flup#fcgi_fork +host = %(fcgi_host)s +port = %(fcgi_port)s + +[server:http] +use = egg:Paste#http +host = %(http_host)s +port = %(http_port)s diff --git a/tmarble/posts/The_Sunset_of_the_DLJ.mdwn b/tmarble/posts/The_Sunset_of_the_DLJ.mdwn new file mode 100644 index 0000000..645a3b4 --- /dev/null +++ b/tmarble/posts/The_Sunset_of_the_DLJ.mdwn @@ -0,0 +1,72 @@ +# The Sunset of the DLJ + +The actually [sunset of the DLJ][retire_dlj] happened +[last summer][debian_retire_dlj], but +it's news because of an article in [OMG! Ubuntu!][omg_ubuntu] +and Simon's [followup today in Computerworld UK][webmink_java_not_dead]. + +Simon's article does a good job of highlighting the role +of the DLJ in the pre-OpenJDK days. Even for many of us +at Sun we didn't know at the time we working on the +[DLJ][dlj_pr] that the plans to open source Java would be +announced at JavaOne 2006. Even so it would be over a year +before OpenJDK source was actually released and several more +months before it was built and distributed by major Linux +distributions. + +Especially in the early days the DLJ bundles played an important +role in the transition to the Free Java we enjoy today. +In particular this enabled meaningful conversations between +Sun and the community around packaging which have continued +to this day on the subject of Java [modularity][jigsaw_big_pic]. +Yet there is one thing Simon did not mention: how many +people thanked Sun for making Java available under the DLJ. + +The people who were most appreciative +were those using government mandated applications (e.g. tax filing in France) +or financial applications (e.g. banking in Brazil). +What is very important to note is that +these key applications use Java applets. These applications depend +on having a solid Java plugin which provides applets in modern browsers. + +What the community lost in the sunset of the DLJ was the *de facto* +plugin implementation even though it is not, in fact, part of +the Java SE specification. Since Java 6 update 10 or so the Sun (now Oracle) +implementations have used a new, re-architected plugin (let's call it plugin2). +One of the large, remaining deltas from Oracle's closed Java and OpenJDK +is the plugin: neither plugin1 nor plugin2 have been open sourced. + +Here we must acknowledge the amazing community effort of the IcedTea +project in Free Java and, specifically, around an +[open source plugin][icedtea_web] +implementation. So is Java in Ubuntu? Yes. Is there a plugin +in Ubuntu? [Yes][ubuntu_plugin]. Yet this is one area where the community +is [struggling][ubuntu_bugs] +to provide users with Java functionality they need and Oracle isn't +cooperating with the community as well as they are on the bulk of OpenJDK. + +My former Sun colleague David Herron has [blogged about the DLJ][robogeek_dlj] as has a fellow Debian Java developer [Sylvestre Ledru][sylvestre_dlj]. + +We not at the End Times for Java. I would even go so far as to suggest +that we are now in a Java renaissance thanks to the variety of languages +and projects running on the JVM. If you would like to experience +the vibrance of the community please join us at [FOSDEM 2012][freejava_2012]. + +I do hope Oracle will decide +to liberate the new plugin (only then will the DLJ R.I.P.). + + +[retire_dlj]: http://robilad.livejournal.com/90792.html +[debian_retire_dlj]: http://lists.debian.org/debian-java/2011/08/threads.html#00107 +[omg_ubuntu]: http://www.omgubuntu.co.uk/2011/12/java-to-be-removed-from-ubuntu-uninstalled-from-user-machines/ +[webmink_java_not_dead]: http://blogs.computerworlduk.com/simon-says/2011/12/why-java-isnt-dead-on-ubuntu/index.htm +[robogeek_dlj]: http://weblogs.java.net/blog/robogeek/archive/2011/12/19/dlj-project-long-live-openjdk +[dlj_pr]: http://web.archive.org/web/20080505201104/http://www.sun.com/smi/Press/sunflash/2006-05/sunflash.20060516.4.xml +[jigsaw_big_pic]: http://mail.openjdk.java.net/pipermail/jigsaw-dev/2011-December/thread.html#1834 +[icedtea_web]: http://icedtea.classpath.org/wiki/IcedTea-Web +[ubuntu_plugin]: http://packages.ubuntu.com/precise/icedtea-plugin +[ubuntu_bugs]: https://launchpad.net/ubuntu/+source/icedtea-web/+bugs +[freejava_2012]: http://wiki.debian.org/Java/DevJam/2012/Fosdem +[sylvestre_dlj]: http://sylvestre.ledru.info/blog/sylvestre/2011/10/25/removal_of_sun_java6_from_debian + +[[!tag Debian Ubuntu Java OpenJDK DLJ]] diff --git a/tmarble/posts/Two_DevRooms_for_FOSDEM_2012.mdwn b/tmarble/posts/Two_DevRooms_for_FOSDEM_2012.mdwn new file mode 100644 index 0000000..8e83614 --- /dev/null +++ b/tmarble/posts/Two_DevRooms_for_FOSDEM_2012.mdwn @@ -0,0 +1,44 @@ +# Two DevRooms for FOSDEM 2012 + +I am really excited to be part of two DevRooms for [FOSDEM +2012][fosdem]: Free Java and Legal Issues. + +I first participated in the [Free Java][free_java] DevRoom +in 2007 just after Sun announced the liberation of Java. +This was an amazing time to be able to represent Sun +and meet the developers who had actively sought open source +Java for so many years. Just after FOSDEM 2008 I left Sun, but +I got involved in the the Free Java DevRoom again last year +and had a blast. From the interest so far I suspect we will +have even *more* great speakers this year! + +Having been part of Sun's team that navigated tricky +copyright, patent and trademark issues in publishing [OpenJDK][openjdk] +I cultivated an appreciation and fascination for the legal +frameworks that make FLOSS possible. The obvious success +and growth of software in our everyday lives makes +the vitality of software freedom a huge concern. +This year "legal geeks" will be thrilled to learn that +we have just proposed a new +[[Legal Issues DevRoom|/fosdem/LegalIssuesDevRoom]] for FOSDEM. +This is a "Saturday Only" DevRoom which will culminate in +a one hour interactive panel with all our speakers. + +Of course the big challenge with FOSDEM is there are far too +many DevRooms to go to *at the same time*. I apologize +in advance for making your decisions even trickier! +I can assure you that the FOSDEM "hallway track" will +be better than ever.... + +So please check out the CFP's for each DevRoom and submit +a talk idea *or* share the pointer with someone who +would be a great speaker. + +Merci! + +[fosdem]: http://fosdem.org/2012/ +[free_java]: http://wiki.debian.org/Java/DevJam/2012/Fosdem +[openjdk]: http://openjdk.java.net/ + +[[!tag FOSDEM FreeJava Java OpenJDK LegalIssues]] + diff --git a/tmarble/posts/With_Software_Passion.mdwn b/tmarble/posts/With_Software_Passion.mdwn new file mode 100644 index 0000000..5686158 --- /dev/null +++ b/tmarble/posts/With_Software_Passion.mdwn @@ -0,0 +1,17 @@ +# With Software Passion + +Today I arrived in Göteborg, Sweden to take part in +the first ever [Software Passion][softwarepassion_tmarble] conference. + +[[!img /tmarble/images/gothenburg-post.jpg alt="Göteborg"]] + +I had a great time tonight at the Speaker's Dinner and +look forward to the conference tomrrow. + +I will post slides from my talk Monday here on my blog +(along with other links/resources). + +[softwarepassion_tmarble]: http://softwarepassion.se/speakers.do?name=tom-marble + +[[!tag Sweden clojure]] + diff --git a/tmarble/posts/Yo_voy_a_ir_a_la_DebConf12.mdwn b/tmarble/posts/Yo_voy_a_ir_a_la_DebConf12.mdwn new file mode 100644 index 0000000..aeea388 --- /dev/null +++ b/tmarble/posts/Yo_voy_a_ir_a_la_DebConf12.mdwn @@ -0,0 +1,14 @@ +# Yo voy a ir a la DebConf12 + +[[!img /tmarble/images/Goingb_180x150-1-es.png link=http://debconf12.debconf.org/index.es.xhtml alt="DebConf 12" ]] + +I'm looking forward to seeing old friends, making new ones, and improving +my Español at [DebConf 12][debconf12]! + +[[!img /tmarble/images/debconf12-logo.svg link=http://debconf12.debconf.org/ alt="DebConf 12" size="760x300"]] + +# *¡Viva Debian!* + +[debconf12]: http://debconf12.debconf.org/index.es.xhtml + +[[!tag Debian]] diff --git a/tmarble/posts/You_are_going_to_find_yourself_immersed_in_legal_issues.mdwn b/tmarble/posts/You_are_going_to_find_yourself_immersed_in_legal_issues.mdwn new file mode 100644 index 0000000..7251b8d --- /dev/null +++ b/tmarble/posts/You_are_going_to_find_yourself_immersed_in_legal_issues.mdwn @@ -0,0 +1,65 @@ +# You are going to find yourself immersed in legal issues + +The title of this blog post is a quote from Karen in the most +recent Free as in Freedom oggcast + +[FAIF 0x1E][faif_0xe]: +: *Legal issues are an inherent part of Free and open source software generally. If you get passionate about Free and open source software you are going to find yourself immersed in legal issues. It's something I think developers are really aware of... much more so than in other fields.* + +I consider myself to be very passionate about FLOSS and +I care about the it's legal underpinnings because +I see the enormous potential good FLOSS can bring to +addressing the big challenges facing the planet. +Continuing to enjoy the right to engage in FLOSS +depends on the legal terrain which makes it possible. + +We have seen the excesses of copyright maximalists in Free +Culture and the damaging impact they can have. The SOPA (PIPA) +debates are simply the latest chapter in that saga. +[Lessig][lessig_on_sopa] points out that, at least in the USA, +we will never win that war +until we win the war against corruption of our Republic. +We must strike the root of the problem in addition to the branches. +I say we must remain vigilant about the branches as well. + +FLOSS is another branch which is as important as Free Culture. +Understanding that FLOSS +is possible due a *hack* on copyright underscores how critical +it is for developers to be aware of the legal environment in +which their creativity can thrive. +And the escalating software patent war -- especially in Java and mobile -- +has had a chilling effect on innovation. + +One the strengths (can we think in terms of *countermeasures*?) +of our community is that we function +out of basic principles of transparency and respect. +The traditions in FLOSS like the traditions in the early +open Internet form a culture of true innovation +where working code drives collaboration and makes it +possible to "stand on the shoulders of giants". +[Fontana][fontana] has talked about this [*lex mercatoria*][lexmerc] in Free +Software as an essential part of understanding the +context of legal issues in FLOSS. I hope he will expand +on this in his new blog. + +I am optimistic that if we combine our brainpower to protect +FLOSS as we do to create awesome software we can enable +new kinds of working together which other fields +will emulate. I can't wait to explore the frontier of +the future possible. + +Listen to the oggcast introduction [4:25..12:55] (at least) to hear +Karen and Bradley discuss +the upcoming [[Legal Issues DevRoom|/fosdem/LegalIssuesDevRoom]] +at [FOSDEM 2012][fosdem]. The Legal Issues DevRoom +[[Call For Participation|/fosdem/LegalIssuesDevRoom/CFP]] closes +on December 30 -- please consider submitting a talk today! + +[fosdem]: http://fosdem.org/2012/ +[faif_0xe]: http://faif.us/cast/2011/dec/16/0x1E/ +[lexmerc]: https://en.wikipedia.org/wiki/Lex_mercatoria +[lessig_on_sopa]: http://lessig.tumblr.com/post/13119510676/me-mia-on-the-sopa-soap-opera +[fontana]: https://identi.ca/fontana + +[[!tag FAIF FOSDEM LegalIssues]] + diff --git a/tmarble/posts/first_post.mdwn b/tmarble/posts/first_post.mdwn new file mode 100644 index 0000000..061e826 --- /dev/null +++ b/tmarble/posts/first_post.mdwn @@ -0,0 +1,5 @@ +This is the first post to tmarble example blog. + +Nevermind the testing... testing 1 2 3 :) + +[[!tag ikiwiki first-post]] diff --git a/tmarble/posts/first_post/comment_1_b4e5bd3473cfe99939eceb3db84a1015._comment b/tmarble/posts/first_post/comment_1_b4e5bd3473cfe99939eceb3db84a1015._comment new file mode 100644 index 0000000..3710a58 --- /dev/null +++ b/tmarble/posts/first_post/comment_1_b4e5bd3473cfe99939eceb3db84a1015._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmc4sOBTX0ihRQltyyoP7pVfD0gYkPfk7g" + nickname="Tom" + avatar="http://cdn.libravatar.org/avatar/69c47e01c524dbd5efd2ee64da2c114bda7940e53d2419d05caf1dfd5ad8dae8" + subject="First comment" + date="2011-09-19T04:49:07Z" + content=""" +Wow, ikiwiki is cool! +"""]] diff --git a/tmarble/posts/new_blog.mdwn b/tmarble/posts/new_blog.mdwn new file mode 100644 index 0000000..6340308 --- /dev/null +++ b/tmarble/posts/new_blog.mdwn @@ -0,0 +1,19 @@ +# New Blog + +Welcome to my new blog! I've been meaning to restart +my blog for a long time... + +Late last year I re-launched my consulting business +and I've been crazy busy since then (yes, this is +a very good thing)! + +You may have seen me microblogging on +[identi.ca](http://identi.ca/tmarble), but probably not +this weekend as StatusNet is down for [maintenance](http://status.net/2011/09/16/status-of-upgrade-to-statusnet-1-0-0-on-identi-ca-and-statusnet-cloud). + +I'd like to make a shoutout to all the geeks that +are lucky enough to be at [strangeloop](https://thestrangeloop.com/) this weekend! + +Stay tuned for more updates soon! + +--Tom diff --git a/tmarble/posts/second_post.mdwn b/tmarble/posts/second_post.mdwn new file mode 100644 index 0000000..7e74b1b --- /dev/null +++ b/tmarble/posts/second_post.mdwn @@ -0,0 +1,6 @@ +This is the second post to this example blog. + +Testing 4 5 6... + +[[!tag ikiwiki second-post]] + diff --git a/tmarble/posts/second_post/comment_1_a2ec791ca7e7574239cc60348a8d2efb._comment b/tmarble/posts/second_post/comment_1_a2ec791ca7e7574239cc60348a8d2efb._comment new file mode 100644 index 0000000..d61d028 --- /dev/null +++ b/tmarble/posts/second_post/comment_1_a2ec791ca7e7574239cc60348a8d2efb._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmc4sOBTX0ihRQltyyoP7pVfD0gYkPfk7g" + nickname="Tom" + avatar="http://cdn.libravatar.org/avatar/69c47e01c524dbd5efd2ee64da2c114bda7940e53d2419d05caf1dfd5ad8dae8" + subject="Do all the links work" + date="2011-09-19T04:49:49Z" + content=""" +The tricky part about ikiwiki is getting all the plugins to agree :) +"""]] diff --git a/tmarble/sidebar.mdwn b/tmarble/sidebar.mdwn new file mode 100644 index 0000000..a778337 --- /dev/null +++ b/tmarble/sidebar.mdwn @@ -0,0 +1,10 @@ +[[!if test="enabled(calendar)" then=""" +[[!calendar pages="page(./posts/*) and !*/Discussion"]] +"""]] + +[[Recent Comments|comments]] + +[[Archives]] + +[[Tags|/tag]] +[[!pagestats style="list" pages="/tag/*" among="/tmarble/posts/*"]]