Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0em 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0em 1em;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser
Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)
<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations
----
Also see AdvancedOptions
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus courtesy of Burch. Thanks Burch!
* ~BeautifulSoup by Eli Criffield
* Tkinter and PMW by Chad Homan
Eli gave a great presentation on the basics of [[BeautifulSoup|http://www.crummy.com/software/BeautifulSoup/]] and used his [[sipie|http://sourceforge.net/projects/sipie]] project and [[ipython|http://ipython.scipy.org/moin/]] to help demonstrate the power brew which is ~BeautifulSoup.
Chad gave a presentation about the advantages of [[Tkinter|http://wiki.python.org/moin/TkInter]] on platforms with limited resources. He also demonstrated Python ~MegaWidgets - [[PMW|http://pmw.sourceforge.net/]]. PMW builds on Tkinter to provide things like tabs and notebook metaphors to ~UIs who use Tkinter.
First Off, a big thank you to Jay and Reboot The User for allowing us to have our meeting at Reboot The User. It worked out very well - nice seeing your code on a 50" display! Jay also supplied the Internet access too.
While the meeting was small, I consider it to be successful. We talked a little bit about [[PyCon|http://www.python.org/pycon/]] and then moved on to the email2rss project. There was discussion on the two major packages used, libgmail and [[PyRSS2Gen|http://www.dalkescientific.com/Python/PyRSS2Gen.html]] module. You can see the outcome of the email2rss.py project at http://www.dundeemt.com/rss/omaha-rss.xml Which is a RSS feed of the User Group mail list.
Other elements of the project discussed were:
* slices
* pickle module
* option parsing
* pylint
* editors ([[Komodo Edit/IDE|http://www.activestate.com/Products/komodo_ide/]] and [[SciTE|http://www.scintilla.org/SciTE.html]])
There was an open discussion about Python in the work place. The consensus seemed to be small skunk-work projects were ideal for introducing the language. Python's ability to sling data and ability to integrate with sysadmin type scripts make it ideal for this type of assault.
The wiki, mailing list and flyer were shown. Until the need presents itself, we will continue to use the resources provided by the PSF. In fact, there is an effort through the Python Advocacy group to enhance user group resources. Go Advocacy!
There was discussion of the rumored ~Google-Plex / Council Bluffs. It was agreed that this would be a good thing for the metro IT community if it is true. Council Bluffs, IA sits across the Missouri River from Omaha. A number of our members work in Council Bluffs.
Pizza and Pop were provided by Dundee Media & Technology. Be sure to mail the list with requests for toppings and flavors for the next meeting, as DM&T will sponsoring the food and beverages for the meeting.
Source: [[OmahaPythonUserGroup - PythonInfo Wiki|http://wiki.python.org/moin/OmahaPythonUserGroup]]
!!Topics:
* [[Django|http://www.djangoproject.com/]] is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. and [[Pinax|http://pinaxproject.com/]], a Django based platform for rapidly developing websites - Charles Kaminski
Charles led a lively discussion of his use of Pinax and Django while create [[Emily's Project|http://204.26.91.74/]] Emily's Project is an effort to document pricing for different medicine's. As an example, a major retailer may offer ~DrugX for $4 and ~DrugY for $100, while another local outlet may offer ~DrugY for $28. Depending on your insurance or lack thereof, this can make a big difference in the amount of money you spend for medicine.
Charles researched a number of platforms to use in building this project and had hoped to use a Python based solution. In his research on Django he came across Pinax. Pinax is Django but in an easy to use format and also with a number of Django apps that utilize the Pinax way of interoperability. That means they are very easy to make work with one another, leaving you to the work of developing your site, not figuring out the proper way to wire the two apps together. As examples, Charles showed off the Invite module. Invitations are a popular way of controlling the number of users as you progress from alpha -> beta -> gamma -> release. They've been used by Google and other sites with much success. Wiring in invitations on Emily's Project was as simple as enabling a module in Pinax. The same was true for the wiki component and logins.
The demonstration also showed how easy it is to support multiple languages and databases.
This month's meeting was a social gathering. It wasn't planned that way, but just like moving, your shouldn't start libations until the end of the meeting<g>. Irregardless, a good time was had by all.
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus
Chad gave a presentation on his use of 3 third party modules in his current project.
* [[pexpect|http://www.noah.org/wiki/Pexpect]] - a module for interacting with interactive command line apps
* [[Python MegaWidgets|http://pmw.sourceforge.net/]] - a toolkit for building high-level compound widgets in Python using the Tkinter module.
* [[aes.py|http://www.josh-davis.org/pythonAES]] - an aes encryption module
Charles brought up the idea of the group taking on an open source project. More about this on the list.
* Mail list: http://mail.python.org/mailman/listinfo/omaha
* Web Site: http://www.OmahaPython.org
* Meeting Schedule via [[Google Calendar|http://www.google.com/calendar/render?cid=epouplrdducr6atraggiflnfeg%40group.calendar.google.com]]
* Join the [[LinkedIn Group|http://www.linkedin.com/e/gis/109308/4E1F9165B74D]]
!This month's meeting notes:
Because of a last-minute scheduling conflict, instead of meeting at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus, We met in the 4th floor lounge in Rosken's Hall. Outside of missing a projector, the lounge was outfitted with plenty of power and wired/wireless connections.
Meeting/Talk Topics:
* Django v. CherryPy and why CherryPy != Django
* Hosting Python based web apps -- webfaction
* Elixir and other ORMs
It was a great, informal session. Lot's of talk about current projects. The upcoming 2.6 and 3.0 releases.
!This month's meeting notes:
We met at Godfather's Pizza (75th & Pacific)
Burch has arranged for us to meet at Rosken's Hall on the University of Nebraska at Omaha's campus. Watch for more specific details to follow on the mail list and on the website.
Jeff gave a presentation/overview of [[functional programming|http://www.omahapython.org/multiparadigm.html]] in Python
Eli talked about:
* Google's [[MapReduce|http://labs.google.com/papers/mapreduce.html]] - a software framework implemented by Google to support parallel computations over large (greater than 100 terabyte) data sets on unreliable clusters of computers.
* [[HardOCP|http://lucene.apache.org/hadoop/]] - Hadoop implements MapReduce, using the Hadoop Distributed File SystemHDFS) (see figure below.) MapReduce divides applications into many small blocks of work.
* [[glusterfs|http://www.gluster.org/glusterfs.php]] - a clustered file-system capable of scaling to several peta-bytes.
Jeff gave a short presentation on anecdotes about optimizing Python code.
# Premature speed optimizations are the root of all evil
# Enhanced readability is an optimization
# Follow pep8 and use structured code -- you get an automatic speed up by just keeping your name spaces clean and local
# Know where your code is spending it's time and optimize their first -- when in doubt, optimize the inner loop first
# Remove the dots - short circuit lookup intensive operations. i.e. _lstappend = lst.append
# Check out [[shedskin|http://mark.dufour.googlepages.com/]] -- although it can compile entire programs, it is perhaps most useful at speeding up a targeted area of code. ShedSkin makes writing a C++ based importable module child's play compared to using C++, and bindings -- see "optimize the inner loop first"
We enjoyed some decent pizza and shop talk between talks.
The door prize, "Python in a Nutshell" was won by Burch. A big Thank You to O'Reilly for the door prizes at our meetings. Thanks to you to Marsee!
ContactInformation MeetingLocation [May-18-2009]] MeetingNotes
!February 4, 2009 meeting notes:
Meeting Talks/Topics:
* python - how it enables , Burch talked about his amazement with the things he has accomplished with Python even though he is not a classical programmer.
* pyyaml - a more use friendly configuration tool. Jeff talked about his module, ~YamJam that uses pyyaml to store configuration information for multiple projects
* keyczar - An open source Google project that has the goal of making encryption and signing easier and less error prone.
!This month's meeting notes:
We met at Rosken's Hall, Room 402 on UNO's campus courtesy of Burch. Thanks Burch!
Mike Hostetler gave a great presentation/demonstration of django. After some opening comments comparing different styles of web development, Mike took us through a blog application with django. There were lots of questions all through the presentation. Thanks Mike!
Topics:
* [[django|http://www.djangoproject.com/]]
**[[satchmoproject|http://www.satchmoproject.com/]] a django based ecommerce framework
**[[heartlandstores.com|http://www.heartlandstores.com/]] - A site Mike built based on django / satchmoproject and utilizing [[YUI|http://developer.yahoo.com/yui/]]
* Lightning Talks
* Group Q and A session
** [[PyCon 2008 in Chicago|http://us.pycon.org/]]
** [[wxPython|http://www.wxpython.org/]]
** [[WebFaction|http://www.webfaction.com/hosting/django-hosting]]
Thanks to everyone who attended.
This month we met at the Fox and Hound, however, the noise levels at times were disruptive. In general it was decent meeting area but too loud thanks to juke box which they had no ability to control sound levels in the meeting room. The sound control worked the entire side of the building. Oh well, next meeting -- something new!
!!Topics:
* couchdb and Python
* editing Python w/ vim
* Lightning Talks
* Group Q and A session
!!Refreshments:
This venue DOES have refreshments and food
!This month's meeting notes:
Meeting/Talk Topics:
* ~CherryPy and Adobe Flex (Jeff Hinrichs) - Jeff showed a standard [[CherryPy|http://www.cherrypy.org/]] + [[Cheetah|http://www.cheetahtemplate.org/]] application that he used as a base and then how he integrated [[Adobe Flex|http://www.adobe.com/products/flex/]] for a spiffed up interface. A code walk through was given featuring the [[MXML|http://www.adobe.com/devnet/flex/articles/paradigm.html]] used and the [[Flex Builder for Linux alpha |http://labs.adobe.com/technologies/flex/flexbuilder_linux/]]
* Wing IDE (Charles Kaminski) - Charles had a great presentation on the [[Wing IDE|http://www.wingware.com/]] Charles ran a completely live presentation showing code intelligence, debugging and lots of other goodies that Wing has to offer Python programmers. It was such a good presentation that I am seriously considering buying it.
* A number of people attending retold their stories of their first exposure to Python and how they get to use Python at work.
It was a great meeting. Charles brought up the idea of possibly finding a mid-town watering hole and having the meetings in a back room. So if anyone knows of a place that supports both libations and presentations in the mid-town area please let us know.
A partial list of other topics discussed include:
* [[Shed Skin - An Optimizing Python-to-C++ Compiler|http://shed-skin.blogspot.com/]]
* [[Android|http://code.google.com/android/]]
* [[GvR|http://www.python.org/~guido/]] and [[BDFL|http://en.wikipedia.org/wiki/Benevolent_Dictator_For_Life]]
* [[Nearest Neighbor Searches|http://en.wikipedia.org/wiki/Nearest_neighbor_search]]
* [[Cover Trees|http://en.wikipedia.org/wiki/Cover_tree]]
* [[R-trees|http://en.wikipedia.org/wiki/R-tree]]
* Linux vs. Windows as a development platform
* Multi-platform capabilities of Python
* [[Silicon Prairie News|http://www.siliconprairienews.com/]]
* [[Tech Omaha|http://techomaha.com/]]
!This month's meeting notes:
We met at Rosken's Hall on UNO's campus courtesy of Burch. Thanks Burch!
This month's meeting was a bit shorter than before due in fact to the great accommodations. It's amazing how much nicer it is to meet in a less crowded environment.
Topics:
* [[Crunchy and/or Idiomatic Python|http://www.omahapython.org/IdiomaticPython.html]]
* Lightning Talks
* Group Q and A session
** [[Crunchy|http://crunchy.sourceforge.net/]]
** [[SAGE math|http://norfolk.cs.washington.edu/htbin-post/unrestricted/colloq/details.cgi?id=574]]
** [[Security, Python, Coverity, DHS|http://scan.coverity.com/rung2.html]]
** [[UtilityMill|http://utilitymill.com/]]
** [[func|https://hosted.fedoraproject.org/func/]]
** [[gnuCash|http://www.gnucash.org/]]
The talk generated some nice discussion.
Thanks to everyone who attended.
Refreshments:
The venue does not allow food/drink so after the meeting we decided to meet at a local establishment for some food and beverage and more talk.
Door Prize:
Rapid Web Applications with TurboGears, Mark Ramm
[[John Clark's Web Page|http://arioch.unomaha.edu/~jclark/]]
The meeting opened up with lots of interesting rumors, speculation and general kibitzing about Google's plans for the new CB location. Who knows for sure -- but lots of fun in the mean time.
Jeff gave a presentation on [[Crunchy|http://crunchy.sourceforge.net/]]. Talk about a gee whiz app. We poked at it with sticks and [[xkill|http://www.xfree86.org/current/xkill.1.html]] to figure out how/who had control of the tkinter/wx/gtk windows.
The graphics capabilities brought out some questions about graphing packages available to Python. Jeff recalled a recent blog entry by Fuzzyman a.k.a [[Michael Foord|http://www.voidspace.org.uk/python/weblog/]] about him looking for a graphing package to use with [[IronPython|http://www.voidspace.org.uk/python/weblog/arch_d7_2007_06_23.shtml#e753]]. A bit of googling and [[gnuplot|http://gnuplot.info/]] was found.
Next was a question about xml parsers from someone new to Python and while no one was definitive, we suggested that they look at [[elementtree|http://docs.python.org/lib/module-xml.etree.ElementTree.html]] and [[lxml|http://codespeak.net/lxml/index.html]]
The conversation then drifted towards web development. We had a java programmer in the group who has been recently been using [[Django|http://www.djangoproject.com/]] and is becoming enamored with Python. We gabbed about [[storm|https://storm.canonical.com/]] and news about how the [[TurboGears|http://turbogears.org/]] had started implementing [[TG2|http://www.blueskyonmars.com/2007/06/27/turbogears-2-a-reinvention-and-back-to-its-roots/]] as an abstraction on top of [[Pylons|http://pylonshq.com/]]. There was also talk of [[mod_wsgi|http://www.modwsgi.org/]] and how it is different than [[mod_python|http://www.modpython.org/]]. Jeff shared a little bit about mod_wsgi's embedded and daemon modes he had picked up from Graham's recent [[blog entry|http://blog.dscpl.com.au/2007/07/web-hosting-landscape-and-modwsgi.html]].
The talk then veered in to [[lambda|http://docs.python.org/ref/lambdas.html]] and the java types whispered "anonymous" <g> This quickly veered in to discussion on how [[binding|http://docs.python.org/ref/naming.html]] operates, which lead to an impromptu demonstration of passing a function as an argument to a function and how you assign a function to a dictionary element.
{{{
>>> def f(x):
... return x*x
...
>>> print f(2)
4
>>> def g(fn,x):
... return apply(fn,[x])
...
>>> g(f,2)
4
>>> d={}
>>> d['foo']=f
>>> print d['foo'](2)
4
}}}
As the meeting came to a close, we decided to change the meeting time from the 2nd Thursday of the month to the 1st Wednesday of the month. In the case that a holiday coincides with or is immediately adjacent to that day, the meeting will be held 1 week later on the second Tuesday. There was also a motion to move the meeting location and two locations were put up for consideration:
* Scooter's Java Express @ 120th and Blondo
* Student Union @ UNO's campus, 60th and Dodge
We will investigate these two locations and report back to the list for a vote by early next week.
Brad S. won the Door Prize of "Python in a Nutshell, 2nd Edition". Tom never contacted us to pick it up so he lost out from last month. Sorry Tom.
Thanks and appreciation to Jay and Reboot The User for donating the meeting space and Dundee Media & Technology, Inc. for the pizza and pop.
Source: [[OmahaPythonUserGroup - PythonInfo Wiki|http://wiki.python.org/moin/OmahaPythonUserGroup]]
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus courtesy of Burch. Thanks Burch!
Jeff gave a presentation on the basics of [[easy_install & PyPI|http://docs.google.com/Presentation?id=dcfq8f6s_309rfqqrxx]]
<html><div align="right"><iframe src='http://docs.google.com/EmbedSlideshow?docid=dcfq8f6s_309rfqqrxx' frameborder='0' width='410' height='342'></iframe></div></html>
Panesh (sorry if I misspelled your name) won the door prize, Python Cookbook.
Another banner meeting occurred this evening. Although it was a bit warm there were some cool conversations going on at the meeting tonight. There were questions and talk about, targeting
* win32
** [[ctypes|http://python.net/crew/theller/ctypes/]]
** [[win32all|http://sourceforge.net/project/showfiles.php?group_id=78018]]
* database
** [[db api|http://www.python.org/dev/peps/pep-0249/]]
** [[sqlalchemy|http://www.sqlalchemy.org/]]
* packaging
** [[py2exe|http://www.py2exe.org/]]
** [[cx_freeze|http://python.net/crew/atuining/cx_Freeze/]]
** [[distutils|http://www.python.org/community/sigs/current/distutils-sig/]]
** [[easy_install|http://peak.telecommunity.com/DevCenter/EasyInstall]]
* UI
** [[wxPython|http://www.wxpython.org/]]
** [[pythoncard|http://pythoncard.sourceforge.net/]]
* Web
** [[django|http://www.djangoproject.com/]]
** [[turbogears|http://www.turbogears.org/]]
** [[pylons|http://pylonshq.com/]]
** [[mod_python|http://www.modpython.org/]]
** [[cheetah|http://www.cheetahtemplate.org/]]
Jeff gave a short presentation on the [[subprocess module|http://docs.python.org/dev/lib/module-subprocess.html]] The slides and example code are available on the website. http://www.omahapython.org/ He also gave a little demo of his current internal project showing off subprocess, mod_python and pyRSS2Gen.
There was also a round of talk about using python as a tool to target multiple platforms at once, giving the user leverage to move between those platforms as they see fit. Also the ability of python to leverage existing code and services. A number of the attendees illustrated this topic by talking about how they are using python to build on existing resources and integrate systems on the application and OS level. It is interesting to see Python being used in banks and hospitals.
As with previous meetings, kudos to Jay and Reboot The User for graciously donating the space for the gathering. Pizza and Pop sponsored by DM&T.
The door prize winner tonight, Todd, will receive "Python in a Nutshell, 2nd Edition" courtesy of O'Reilly. Unfortunately I left the house in such a rush tonight, that I didn't remember to bring it along. Todd, if you are going to be at the OLUG East luncheon Friday, I will have it with me and you can get it there. Otherwise, email me off list and we can make arrangements to get it to you pdq.
Mark your calendars early, July 12, and don't miss out on the fun. Here is gCal link so you can add it to [[your calendar|http://www.google.com/calendar/render?cid=epouplrdducr6atraggiflnfeg%40group.calendar.google.com]].
We'll be giving away something for a door prize. There will be food and drink and hopefully many more "lightning" talks about projects by local python developers.
Source: [[OmahaPythonUserGroup - PythonInfo Wiki|http://wiki.python.org/moin/OmahaPythonUserGroup]]
[img[OmahaPythonLogo|OmahaPython-logo-100x50.png]]
ContactInformation
MeetingLocation
MeetingNotes
[[Members]]
[[RSS Feed|omaha-python.xml]]
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus courtesy of Burch. Thanks Burch!
Jeff gave a presentation on Elixir. Topics covered included defining objects/tables and relationships. Examples of queries, 1:n and m:n joins were also to be had. Talked then turned to projects that members were currently working on. We finished the meeting by talking about PyCon. There are 3 of us, that we know of, that will be attending PyCon this year.
Topics:
* [[elixir|http://elixir.ematia.de/]]
**[[sqlalchemy|http://www.sqlalchemy.org/]] -- the [[ORM|http://en.wikipedia.org/wiki/Object-relational_mapping]] that elixir sits on.
* Lightning Talks
* [[sqlite|http://docs.python.org/lib/module-sqlite3.html]]
* [[metakit|http://www.equi4.com/metakit/python.html]]
* [[twisted|http://twistedmatrix.com/trac/]]
* [[cherrypy|http://www.cherrypy.org/]]
* Group Q and A session
** [[PyCon 2008 in Chicago|http://us.pycon.org/]]
The door prize for the meeting was, "[[Python Pocket Reference|http://www.oreilly.com/catalog/pythonpr2/]]"
Thanks to everyone who attended.
After the meeting we gathered at [[Clancy's|http://www.clancysomaha.com/]] to socialize.
!!Topics:
* [[pysftp|http://code.google.com/p/pysftp/]] - secure ftp module
* Lightning Talks
* Group Q and A session
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-90732-9");
pageTracker._initData();
pageTracker._trackPageview();
</script>
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus courtesy of Burch. Thanks Burch!
* Google App Engine by Jeff Hinrichs
Jeff gave a presentation on the basics of [[Google App Engine|http://code.google.com/appengine/]
Well now, that was quite a meeting. We ended up not talking about any of the announced subjects so it was a very good meeting. [[Eli|http://eli.criffield.net/]] made an appearance tonight and for a sysadmin who doesn't "program", Eli has produced some pretty interesting python projects. [[sipie|http://freshmeat.net/projects/sipie/]], Pronounced SY PIE, like "sirius python", sipie is a command line player for Sirius online Internet streaming
We also talked about using private certs and CA's, the different python based packages and use them with the [[twisted framework|http://twistedmatrix.com/trac/]]. Eli hammered out the details and did something with twisted that not many knew was possible. Thanks for sharing -- Very Cool.
As with previous meetings, kudos to Jay and Reboot The User for graciously donating the space for the gathering. The new executive conference room is nearing completion -- we will be stylin' then. Also, props to Todd for covering the pizza guy before I got there. Pizza and Pop sponsored by DM&T.
And finally, thanks to O'Reilly (Marsee) for the great door prize. Eli won the door prize, "Programming Python" by Mark Lutz.
Source: [[OmahaPythonUserGroup - PythonInfo Wiki|http://wiki.python.org/moin/OmahaPythonUserGroup]]
This month's meeting was held at Lansky's. While this was a small gathering talk centered around current work in Python. Some Android coolness was shown and tidbits of python were found here and there.
!Where: Lansky's @ 7pm
We are meeting at [[Lansky's (50th and L)|http://maps.google.com/maps?hl=en&client=firefox-a&ie=UTF8&q=lansky%27s,+omaha,+ne&fb=1&split=1&gl=us&view=map&ei=1tK7SY7VIZGUsAOZ4Kkx&cd=1&t=h&sll=41.213176,-95.990132&sspn=0.102465,0.105151&ll=41.213182,-95.989834&spn=0.002934,0.005595&z=18]]. We have the meeting room in the back.
This could quite possibly be our best meeting ever! Don't miss out!
''Parking'':
Lots of free parking is available. You can park in the front parking lot which is small'ish or behind which is much larger. Turn east on K street and then north into the rear parking lot. There are doors marked Lansky's accessible from the back lot.
!When is the next meeting?: June 15, 2009 @ 7:00pm
!!Topics:
* TBA
* more to come...
* Lightning Talks
* Group Q and A session
!!Refreshments:
This venue DOES have refreshments and good food
List of Meeting Notes
* [[March-16-2009]]
* [[February-16-2009]]
* [[February-04-2009]]
* [[January-07-2009]]
* [[December-03-2008]]
* [[November-05-2008]]
* [[October-01-2008]]
* [[September-07-2008]]
* [[August-06-2008]]
* [[June-04-2008]]
* [[May-07-2008]]
* [[April-02-2008]]
* [[March-05-2008]]
* [[February-06-2008]]
* [[January-09-2008]]
* [[December-05-2007]]
* [[November-07-2007]]
* [[October-03-2007]]
* [[September-05-2007]]
* [[August-01-2007]]
* [[July-12-2007]]
* [[June-14-2007]]
* [[May-10-2007]]
* [[April-12-2007]]
[[Jay Hannah|http://clab.ist.unomaha.edu/CLAB/index.php/User:Jhannah]]
[[Jeff Hinrichs|http://inre.dundeemt.com/]]
!This month's meeting notes:
This month's meeting was skipped due to the proximity of the meeting to elections. Nothing like an election night hang-over ;)
This month's meeting revolved around parallelism, python in the workplace and podcasts. We talked about [[Parallel Python|http://www.parallelpython.com/]] and attempts at applying it to the [[NetFlix Prize|http://www.netflixprize.com/]] contest. Jeff gave an impromptu overview on how python is used in his workplace. There was a demo of [[icepodder|http://www.icepodder.com/]], a dolphin safe podcast client written in python.
There was also talk about the number of linux distros that are using python. [[Ubuntu|http://www.ubuntu.com/community/developerzone/bounties]], [[Red Hat's Anaconda installer|http://fedoraproject.org/wiki/Anaconda]], and [[Gentoo's Portage package manager|http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1]].
MIT is using Python for it's core [[EE/CS programs|http://courses.csail.mit.edu/6.01/fall07/software/]].
Chad was talking about [[gOS|http://www.thinkgos.com/index.html]] which has been getting a lot of press lately. Eli was talking about how [[MapReduce works in python|http://www.michael-noll.com/wiki/Writing_An_Hadoop_MapReduce_Program_In_Python]]. Google [[Android Phone|http://code.google.com/android/]] Platform (maybe it'll run python?)
Rich won the door prize of "Python in a Nutshell" courtesy of [[O'Reilly|http://ug.oreilly.com/]]. Thanks for your support!
If you missed this month's meeting we look forward to seeing you next month. Check the groups website @ http://www.omahapython.org for meeting details and how to join the mailing list.
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus
It was a good, informal session. Lot's of talk about current projects. The upcoming 2.6 and 3.0 releases.
The gathering stayed strong again this month with 2 new people joining in the fray. A presentation on mod_python, publisher and psp was given while pizza was eaten. (Funny thing about having good pizza in an Irish pub<g>)
Talk then went on about using python in sysadmin tasks and then on to how best to setup some massive home storage. [[GlusterFS|http://www.gluster.org/]] , [[ZFS|http://en.wikipedia.org/wiki/ZFS]] and [[NFS|http://en.wikipedia.org/wiki/Network_File_System_%28protocol%29]].
* We all seem to have a need for terra type storage<g>
A copy of "[[The Python Cookbook|http://books.google.com/books?id=1Shx_VXS6ioC&dq=the+python+cookbook&pg=PP1&ots=BAa07H-hL2&sig=lR6RHV5GHm-w1RCshG5feH0SyWU&prev=http://www.google.com/search%3Fq%3Dthe%2Bpython%2Bcookbook%26sourceid%3Dnavclient-ff%26ie%3DUTF-8%26rlz%3D1B3GGGL_enUS243US243&sa=X&oi=print&ct=title&cad=one-book-with-thumbnail]]" was handed out to the winner of the door prize (Thanks [[O'Reilly|http://ug.oreilly.com/]])
After the meeting a social hour(s) ensued with wild eyed talk of google phones and grand central.
We look forward to seeing old friends and new faces at the next meeting. Details are on the website, www.omahapython.org .
Source: [[OmahaPythonUserGroup - PythonInfo Wiki|http://wiki.python.org/moin/OmahaPythonUserGroup]]
Well we've managed to maintain a new meeting attendance level. There were 6 of us again tonight at the meeting, 5 alumni and 1 new attendee. The meeting started out with some introductions and talk about [[Py3K|http://www.python.org/dev/peps/pep-3000/]] alpha. We then turned to talk about the various python implementations C, [[Iron|http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython]], [[Jython|http://www.jython.org/]] and [[ActiveState's|http://www.activestate.com/Products/activepython/?_x=1]].
Talk then turned to available windowing options and what exactly was built-in for python as opposed to 3rd party libraries. [[PythonCard|http://pythoncard.sourceforge.net/]], is the project I was trying to recall. While not a windowing kit -- it is based on wxPython, it offers a nice entry point in to building a client GUI for a python project for those new to python and GUI kits.
There were some random topics brought up and answered as we munched on some quite good pizza.
We then broke out some code for the [[pyorhythms|http://code.google.com/p/pyorhythms/]], group project. We talked about how the imports had been laid out, the over all structure of the program and a number of questions from those new to python were asked. What are those triple commented things ([[docstrings|http://www.diveintopython.org/getting_to_know_python/documenting_functions.html]]) how are they used, etc.
We then talked about the use of map statements and what was going to happen to them in ~Py3K. Someone asked what does reduce do, and I didn't have an answer then as I hadn't used it before, but have one now
"reduce(function, sequence)" returns a single value constructed by calling the binary function function on the first two items of the sequence, then on the result and the next item, and so on. For example, to compute the sum of the numbers 1 through 10:
{{{
>>> def add(x,y): return x+y
...
>>> reduce(add, range(1, 11))
55
}}}
* [[see|http://docs.python.org/tut/node7.html#SECTION007130000000000000000]]
I did a live demonstration of pyorhythms and there was some pleasant smiles and nods at seeing how well [[pylab|http://matplotlib.sourceforge.net/]], graphed everything.
At the end of the meeting we handed out the door prize, "Beautiful Code."
After the meeting some of stuck around and pondered the architecture of the [[google file system|http://en.wikipedia.org/wiki/Google_File_System]], why doesn't google offer a google apps appliance? and the possible ramifications of [[Grand Central|http://grandcentral.com/home]], and the rumored [[google phone|http://www.sltrib.com/business/ci_6803112]].
For those of you who couldn't attend we hope to see you next month (Brad et al)
Source: [[OmahaPythonUserGroup - PythonInfo Wiki|http://wiki.python.org/moin/OmahaPythonUserGroup]]
!This month's meeting notes:
We met at [[Rosken's Hall|http://www.unomaha.edu/pages/rh.html]], Room 402 on UNO's campus
It was a good, informal session. Lot's of talk about current projects. The upcoming 2.6 and 3.0 releases.
http://www.omahapython.org/
An anonymous reader writes to mention that hardware hacking enthusiasts can now get their hands on the guts of the Everex ~TC2502 Linux PC for just $60 (USD). The compact x86-compatible "gOS Dev Board" offers a lightweight Linux-based OS designed for use with Google Apps. " Along with a Firefox browser supporting the Google toolbar, gOS includes local productivity applications, such as [[OpenOffice.org|http://www.openoffice.org/]]. However, its main goal is "coherently packaging Google Apps to give users the idea that they can use Google as their main environment," explained Paul Kim, of Everex. "
Source: [[Slashdot : Low-Cost Board Runs Linux, Google Apps|http://hardware.slashdot.org/article.pl?sid=07/11/07/2036249&from=rss]]
Soekris Engineering net4801
This compact, low-power, low-cost, advanced communication computer is based on an up to 266 Mhz 586 class processor. It has three 10/100 Mbit ethernet ports, up to 256 Mbyte SDRAM main memory and uses a Compact Flash module for program and data storage. It can be expanded using a ~MiniPCI type III board and a low-power standard PCI board.
It has been optimized for use as a Firewall, VPN Router and Internet Gateway, but has the flexibility to take on a whole range of different functions as a communication appliance. The board is designed for long life and low power.
Source: [[net4801|http://www.soekris.com/net4801.htm]]
Ideas for future talks
* [[nose|http://somethingaboutorange.com/mrl/projects/nose/]] a discovery-based unittest extension - Jeff Hinrichs
I’ve been reminded today by Maura that November is National Blog Posting Month, when — in theory — bloggers the world over try to keep up a pace of one entry every day. I don’t know how well this is going to go, but I’d like to give it a try. And, inspired by Drew ~McLellan’s excellent 24 ways “advent calendars” of web-design tips, I’m going to give it a theme: one Django tip every day during the month of November. Kicking off the series, I’d like to focus today on the deceptively-simple task of template loading and rendering.
Source: [[The B-List: Django tips: template loading and rendering|http://www.b-list.org/weblog/2007/nov/01/django-tips-template-loading-and-rendering/]]
!Where: Roskens Hall (College of Business Administration), Room 402
University of Nebraska at Omaha
6000 Dodge Street
Omaha Nebraska 68104
''Parking'':
Top deck behind College of Arts and Sciences, for 2$
In UNO parking with a UNO Visitor pass
[[map|http://www.unomaha.edu/pages/map.html]]
!When is the next meeting?:February 16, 2009 @ 7pm
Meetings are held the 1st Wednesday of the month. In the case that a holiday coincides with or is immediately adjacent to that day, the meeting will be held 1 week later on the second Wednesday