AwareTek Mash-Up |
|
|
Front page Archives 2003-12-20 2006-04-08 2006-04-15 2006-04-22 2006-04-29 2006-05-13 2006-05-27 2006-07-01 2006-07-08 2006-07-29 Category archives firedrop general philosophy python RSS Search this site |
New DirectionsI have upgraded my audio equipment. A few people have commented on the inconsistent and sometimes poor sound quality on the Python411 podcast series, that I have been producing the least expensive microphone available and no mixer or pre-amp and the Apple software that came with my Mac. So, I have finally bought a decent condenser microphone and a simple pre-amp and mixer allowing two different inputs. My fist rreaction is I like it because I don't need to crank every single setting in my software to max volume in order to get enough sound level to produce a podcast. I am also learning a couple of additional software tools to do post production editing on my podcasts. Meanwhile, I am experimenting with producing some videocasts. I expect to produce short, 3 minute long type video and audio essays. I have already made 4 experimental ones but am not yet ready for prime time. The videocast home page is at AwareTek VideoCasts Ten Consents...towards building a consensus for the Global Age1. People everywhere are born equal, no matter their country or place of birth. 3. Businesses should focus on providing better products and services to customers, rather than on harming competitors. 5. Income of all types should be taxed equally. A flat tax should be implemented as a percentage of all income including wages, capital gains, dividends, interest receipts etc. There should be a minimum personal income below which no taxes are charged, but beyond that limit, a flat tax should be imposed on all income. 6. There must be freedom of religion for all people. Belief can not be coerced in any way. Neither shall the state interfere with peaceful religious beliefs and practices. 7. All people must receive equal justice under the law. Money should not be able to buy better legal results; this means that the legal system should avoid adversarial extremes, with attorneys safeguarding individual rights and due process, but relying on the judgement of fair and impartial judges to apply the law equitably. 8. Democratic elections for state offices should be the rule and must not be controlled by money. Government offices should be held in esteem and should pay decent but not exorbitant wages. Elected government officers should be truthful at all times and held to high standards of truthfulness. Elected officials should work for the good of the citizenry, and not to make political opponents look bad, nor to receive compensation from wealthy individuals or corporations. 10.Truth matters. Decisions should be made by consultation, not confrontation. It should be a matter of great shame for a person to knowingly engage in falsification. For more on this subject, listen to the podcast at the AwareTek podcast series a Book Review of "WxPython in Action""WxPython in Action" is a new and definitive guide to the popular wxPython GUI framework. wxPython has been growing in popularity by leaps and bounds in recent years but has been hampered by a comparative lack of good, comprehensive documentation, so much so that many people have turned to studying the documentation for the underlying wxWidgets framework, that is written in C++. "WxPython in Action" fills the void by combining a good introduction to the framework with a comprehensive and accessible reference document. At 552 pages, Manning Publications has produced a definitive book. WxPython is one of the best cross platform GUI toolkits for the open source Python programming language. It excels in matching the native look and feel of programs on Windows, Linux, and Mac OS X. It is a mature project, being a well developed wrapper of the underlying wxWidgets C++ toolkit. Another reason for its growing popularity is its very extensive number of widgets, making it a capable and modern tool for making professional looking GUI's for applications in almost any field of endeavor. It has endured a reputation for having a steep learning curve, and for sometimes being difficult to install and easy to break during upgrades; both of which downsides should be lessened by the publishing of this book. Written by Robin Dunn, the creator and moving force behind wxPython, and ably assisted by Noel Rappin, this book is definitive, authoritative and well written. Part 1 fills the role of a good introduction to the toolkit, and Parts 2 and 3 are a thorough reference to the widgets, behavior and usage of the framework. in Part 1, we learn the inside story behind the beginnings and the history of wxPython's development. We are walked through the creation of simple examples of the core functionality of the framework illustrating how to create and use the basic controls and event loops. Then, we get a more detailed explanation the wxPython event loop, an introduction to PyCrust (a useful tool for wxPython programmers, essentially an interactive interpreter session, wrapped as a wx widget) a whole chapter on the Model-View-Controller paradigm, and a discourse on good factoring techniques for GUI programs. This is rather general programming knowledge, not necessarily specific to wxPython, and truly expert programmers will probably skip much of this material, but for many, like me, it is very useful, and for many others, it will be a good review of previously known material. The writing style is excellent but one weakness is that the authors return again and again to wxPython evangelism and boosterism, which is regrettable; but this is the only section of the book to suffer from this flaw. Part 2 gives detailed coverage of each widget, control, frame, dialog, and menu in the toolkit, and this is the meat of the book and will be used and reused as core reference material by many a programmer. This is good stuff, thorough, well researched, and definitive. Next, the authors give an equally good explanation of how to use sizers and grids to layout and control your GUI application. Part 2 fills the previously missing gap in core wxPython documentation and, to folks who need it, is worth its weight in gold. Part 3, called Advanced wxPython, gives welcome coverage to advance layout and control issues. This subject of advanced layout is, in my opinion, the where the rubber really hits the road in GUI design, and it is appropriate that this is where the authors spend the most time and effort, and with good result. The final chapter breaks new ground by walking the reader through the creation of a multithreaded wxPython application. This is great stuff, and the advanced readers will be left pining for even more on this timely topic of such growing importance. Fortunately, the authors are available online to communicate with users who truly master the material in the book and want to to pursue more advanced usage. The book is at its best in documenting the core API for expert programmers who are new to wxPython. It is also a good introduction to wxPython for advanced programmers. For moderately experienced programmers, the book is excellent but will be a tough read; probably not to be mastered in a straight read thorough, the book will adequately reward this kind of reader who is dedicated and persistent. For novice programmers, especially those who have little to no previous experience in GUI programming, I believe the book may be beyond their grasp. So, if you are a serious programmer who wants or needs to use the wxPython GUI toolkit, "wxPython in Action" is a must-have reference book. It is perfect for this kind of reader and will become a well worn book that will be useful for at least the next 5 years. It is unlikely that any other book about wxPython will be published that could do a better job, given the authors unparalleled understanding of the toolkit and the obvious patience, time and care they took in researching, writing, and editing this book. It is not a casual read, but to a serious student of the subject, that is a positive statement. The book is strong meat, a weighty and substantive technical tome. The book really shines in the many pages devoted to User Interface design and implementation. This is where many programmers need help, and it is gratifying that this book goes into the most detail on this subject. This is very detailed coverage and one is left with a satisfaction that, while not easy reading, it is well wroth while. I feel this is the book's strongest point. I know that it sometimes seems there has been an inflation in the scoring of books, with reviewers giving so many high ratings that one wonders how meaningful those ratings are. This book is not for everybody, and it is not a work of great literature, but given the obvious need for such a work, and the careful and accurate fulfillment of this need by these authors, I feel justified in giving it a rating of ten stars. For the people who really need this book, it is about as good as it could get, and will be a most welcome addition to their technical library. Python Tutorials
I am no longer adding new tutorials in the general and beginner and similar categories that already have a dozen or more fine listings, unless they add something new. In fact, the real value added now is not in the number of tutorials (it has been well over 300 for some time now) but rather in the number of categories, which has now reached 50. So, in addition to listing quite a few new tutorials recently, I have put more thought into better categorization. I hope folks find the results useful. "Tricks of the Podcasting Masters": a Book ReviewTricks of the Podcasting Masters is a good read if you want to find out the who, what, when, why and where of the podcasting phenomenon. It is not a technical re-hash of the hardware and software tools of podcasting, but rather a discussion of the creative side of podcasting, its history, personalities, techniques, tricks and motivations. It is a good read for anyone interested in creating and promoting a podcast, and also for anyone who is interested in the inside scoop on what makes podcasters do what they do. The authors are both well known pioneers of the podcasting genre. Rob Walch is the host of the popular Podcast411 show, and during the year a half this show has run, he has interviewed over 150 podcasters, including Adam Curry and almost every other luminary in and around podcasting. Mur Lafferty is the host of the Geek Fu Action Grip podcast, famous in Science Fiction circles, and the I Should be Writing Podcast, for aspiring authors. The book excels in offering detailed advice to podcasters on how to improve and market their shows. Many of the big names in podcasting are quoted at length giving their advice, and the authors give candid, sober counsel that is not sugar coated with what the aspiring podcaster wants to hear. The theme is that doing a great podcast is hard work, and if one is willing to invest the time and effort, the book has plenty of helpful hints. This advice is of a practical nature including time management, how to stay motivated, and how to talk in front of a microphone and not sound like a robot. Podcasters will appreciate the pragmatic advice on how to script and edit a show, and how to relate to an audience effectively. There is a lot of material on how to market and promote a podcast, and some of this advice is surprising, including innovative ideas on how to reach out beyond the podcasting community to the wider society, local media and unrelated internet activities. For some podcasters, this will be the most valuable part of the book. The authors have both succeeded in turning their podcasting into at least part time careers, but their advice on monetizing podcasts is among the most sober and straight shooting I have ever seen or heard. They very carefully share all the revenue generating methods and ideas they have come across, and how to best exploit them; but they nevertheless give the grim statistics about how few podcasts will ever actually turn a profit, much less allow a podcaster to quit his or her day job. There is a large section of the book devoted to detailing sixteen different genres of podcasting, such as audioblogs, comedy casts, educational, gaming, religious and spiritual, interview casts, music, news, politics, radio dramas, Q-Podders (alternative lifestyles), science fiction, sex, tech, sports and the written word. Four to six podcasts of each genre are highlighted including quotes from the shows' hosts. There is also coverage of the legal and ethical issues involved in podcasting , such as music licensing and laws concerning wire tapping that might come into play when conducting interviews by phone. Utilizing the authors actual experience as consultants, the book is also a good resource for corporate podcasters who are using podcasting to market, promote or enhance existing businesses or information media. This is material not found in any other podcasting book I have read. Much of the allure of the book is in the feeling of being on the inside, seeing what it is really like to be a pioneer in a hot new internet phenomenon. As such, this book will not age as quickly as other podcasting books that focus mostly on how to pick and use specific software and hardware podcasting tools. On the other hand, if you need detailed help on using such tools, this book is not the one for you. On balance, I really enjoyed this book. If you have an interest in podcasting, either as a listener or a podcaster, you probably will enjoy it also. If you are not already interested in podcasting, this book might or might not stimulate you to look into it further, but at least you will find out what all the fuss is about. Firedrop Plugins are Fun to Write!I have written 2 simple plugins for Firedrop. One just adds a random saying from the "Zen of Python" to the end of a Firedrop blog entry. I am using the Zen plugin on this post so you will see a random saying from Tim Peter's Zen of Python at the end of this post. So this one is sort of like a "Hello World" plugin script to test things out, and anyone interested in looking into Firedrop plugins can look at Zen.py as a most simple example. The other one is SmartPoll, which I used to make the blog entry immediately below this one. It is a little more ambitious, but the full functionality is not there yet. This is a bare bones, weighted average sort of 'decider' to choose amongst 2 or more options, based an a user's scoring of each option on several criteria, and with the user putting numerical weights or relative importance's for each criteria used in making a decision or choice. Now, the next step is to add in the ability of the firedrop sysop to pre-define the options (options to be chosen amongst) and the criteria on which to make the choice. Then, when a the blog reader (user) inputs her scores and weights, and hits calc, she will see which choice scores highest (a javascript alert announces the winner) and also the scores for each option will be displayed in the text box. Next, we need a way to store the results of each user's inputs so that we can have a Smart Poll (*tm) ;-)) I think I know how to do this with a cgi; but I'd much rather not have to make the Firedrop blogger sysop setup a cgi; I wonder could it be done with cookies? Stewart Midwinter (or was it Davy Mitchell?) mentioned they had created some code to allow a Haloscan comments section to be added to each blog post. Michael Foord then pointed out that the comments were not permanent but only lasted a few months, and Stewart confirmed 4 months shelf life,or that you can pay $12 for a premium account for longer persistence. But for purposes of a Smart Poll such as this, the results only need be stored for few weeks at most, one month would be more than enough. Polls are temporary and come and go, especially a poll on a discussion board on a blog entry ;-)) Concerning the SmartPoll plugin, in case it isn't obvious what I mean to do next, you could check out an example of what the script will do once a sysop pre-chooses the options to be decided amongst and the criteria for making the decision, such as an Election Poll between two or more candidates which can be found at Election Poll. A normal old PHP BBS poll for an election might ask users to choose between Bush and Kerry as Presidential candidates. A SmartPoll asks users to choose between Bush and Kerry by weighting which criteria they think are most important in making the decision, and also ranking each candidate for each criterion; and a "winner" is calculated for each participant. But once we store data, the weights and scores for each candidate on each criteria are tabulated across the electorate, so to speak. A picture is worth a thousand words, if you check out the link above you'll hopefully see what I mean. And of course the sysop can choose whichever criteria he wants as well as which Options are to be chosen amongst. The general SmartPoll script works with up to 7 Options and up to 7 criteria, and automatically ignores any extra Option slots or extra Criteria slots (like if the sysop only enters 2 Options, the rest don't matter). Later, we could make it infinite I suppose and allow the Firedrop sysop to enter any amount of Options and Criteria and make the matrix "on the fly" so to speak. Yet another possibility is illustrated by the "Chose Your GUI Toolkit" script found at Choose your GUI Toolkit, where the sysop has entered the scores for the various Options, as well as choosing Options and Criteria, leaving the blog user to only enter his weights for importance of each criterion, creating a mini-expert system so to speak, instead of a Poll. I don't envisage doing this yet, first I want to add a dialog to the SmartPoll plugin allowing the Sysop to pre-choose Options and Criteria to make SmartPolls for his user/readers. Anyway, inserting Javascript into Firedrop entries allows a lot of functionality very easily! Of course, we still need a way to store SmartPoll scores. Keep in mind the difference between a SmartPoll and regular (dumb?) poll, is the SmartPoll keeps track of users importance factors for various criteria, and also of the users scores for each option for each criteria. Comments, suggestions and/or ideas are wanted. All help is wanted and appreciated. I must go back to my day job tomorrow! ;-)) The code for the two plugins, should anyone want to play around with them, can be found here SmartPoll plugin and here Zen plugin Cheers! ;- Oh, P.S. I have only tested the SmartPoll plugin using Firedrop's HTML and/or Plain Text entry modes, I think more exotic entry modes may mangle the Javascript for SmartPoll. For this post, which uses the Zen plugin, I have used my more typical Sextile entry mode. Firedrop2 Plugins are Fun to WriteI have written 2 simple plugins for Firedrop. One just adds a random saying from the "Zen of Python" to the end of a Firedrop blog entry. I am using the Zen plugin on this post so you will see a random saying from Tim Peter's Zen of Python at the end of this post. So this one is sort of like a "Hello World" plugin script to test things out, and anyone interested in looking into Firedrop plugins can look at Zen.py as a most simple example. The other one is SmartPoll, which I used to make the blog entry immediately below this one. It is a little more ambitious, but the full functionality is not there yet. This is a bare bones, weighted average sort of 'decider' to choose amongst 2 or more options, based an a user's scoring of each option on several criteria, and with the user putting numerical weights or relative importance's for each criteria used in making a decision or choice. Now, the next step is to add in the ability of the firedrop sysop to pre-define the options (options to be chosen amongst) and the criteria on which to make the choice. Then, when a the blog reader (user) inputs her scores and weights, and hits calc, she will see which choice scores highest (a javascript alert announces the winner) and also the scores for each option will be displayed in the text box. Next, we need a way to store the results of each user's inputs so that we can have a Smart Poll (*tm) ;-)) I think I know how to do this with a cgi; but I'd much rather not have to make the Firedrop blogger sysop setup a cgi; I wonder could it be done with cookies? Stewart Midwinter (or was it Davy Mitchell?) mentioned they had created some code to allow a Haloscan comments section to be added to each blog post. Michael Foord then pointed out that the comments were not permanent but only lasted a few months, and Stewart confirmed 4 months shelf life,or that you can pay $12 for a premium account for longer persistence. But for purposes of a Smart Poll such as this, the results only need be stored for few weeks at most, one month would be more than enough. Polls are temporary and come and go, especially a poll on a discussion board on a blog entry ;-)) Concerning the SmartPoll plugin, in case it isn't obvious what I mean to do next, you could check out an example of what the script will do once a sysop pre-chooses the options to be decided amongst and the criteria for making the decision, such as an Election Poll between two or more candidates which can be found at Election Poll. A normal old PHP BBS poll for an election might ask users to choose between Bush and Kerry as Presidential candidates. A SmartPoll asks users to choose between Bush and Kerry by weighting which criteria they think are most important in making the decision, and also ranking each candidate for each criterion; and a "winner" is calculated for each participant. But once we store data, the weights and scores for each candidate on each criteria are tabulated across the electorate, so to speak. A picture is worth a thousand words, if you check out the link above you'll hopefully see what I mean. And of course the sysop can choose whichever criteria he wants as well as which Options are to be chosen amongst. The general SmartPoll script works with up to 7 Options and up to 7 criteria, and automatically ignores any extra Option slots or extra Criteria slots (like if the sysop only enters 2 Options, the rest don't matter). Later, we could make it infinite I suppose and allow the Firedrop sysop to enter any amount of Options and Criteria and make the matrix "on the fly" so to speak. Yet another possibility is illustrated by the "Chose Your GUI Toolkit" script found at Choose your GUI Toolkit, where the sysop has entered the scores for the various Options, as well as choosing Options and Criteria, leaving the blog user to only enter his weights for importance of each criterion, creating a mini-expert system so to speak, instead of a Poll. I don't envisage doing this yet, first I want to add a dialog to the SmartPoll plugin allowing the Sysop to pre-choose Options and Criteria to make SmartPolls for his user/readers. Anyway, inserting Javascript into Firedrop entries allows a lot of functionality very easily! Of course, we still need a way to store SmartPoll scores. Keep in mind the difference between a SmartPoll and regular (dumb?) poll, is the SmartPoll keeps track of users importance factors for various criteria, and also of the users scores for each option for each criteria. Comments, suggestions and/or ideas are wanted. All help is wanted and appreciated. I must go back to my day job tomorrow! ;-)) Cheers! ;- Oh, P.S. I have only tested these plugins using the Firedrop HTML and Plain Text entry modes, I think more exotic entry modes may mangel the javascript for SmartPoll unfortunately.SmartPoll, a test run of a new Firedrop Plugin...Additional functionality will be added later...Podcasts about the Baha'i Faithand my podcast has some Baha'i content at AwareTek Podcast Why I am a Baha'i: A Postmodern Journey to Faith at the Dawn of a New Millennium"The earth is but one country and mankind its citizens." Baha'u'llah The Baha'i Faith fulfills the role of affirming the truths of all the Bahai's believe that Jesus Christ was the Son of God, and that he died The Baha'i Faith was inaugurated, for the first time in human history, Baha'u'llah established the Baha'i Faith as a universal religion, in Baha'u'llah's son, Abdul Baha, known as the Master, succeeded Him as At His funeral in Haifa in 1921, Abdul Baha was mourned and missed by a Abdul Baha was succeeded by his grandson, Shoghi Effendi, known as the Since the passing of Shoghi Effendi, the Faith is led not by a single The Baha'i Faith thus represents historical continuity with the world's The Baha'i World center is now located on Mount Carmel in Haifa in the Ten Key Principles of the Baha'i Faith: 1. The oneness of God, mankind and religion. 2. The independent investigation of truth. 3. The equality of women and men. 4. Harmony of science and religion. 5. Elimination of extremes of wealth and poverty. 6. Universal peace. 7. A world common-wealth of nations. 8. A universal auxiliary language. 9. Spiritual solutions to economic problems. 10. Universal education. Nine reasons why you may want to become a Baha'i: 1. Because we don't reject the foundations of your beliefs, we renew 2. Because we offer a sense of Community based on acceptance, not 3. Because we give you hope for the future. Bahá'ís don't ignore the 4. Because we have answers for the hard questions. If you've ever felt 5. Because these teachings will bring you joy. Developing your 6. Because you will fall in love with the Bahá'í Writings and their 7. Because you will feel good about yourself, knowing that you are 8. Because we are successful. Spiritual principles, sensible laws and 9. Because it feels right. In those quiet moments when you stop to For more informaion in podcast form, online text and links, go to God is dead. Long live G_d.The gap between what we can explain and what we can’t explain is G_d. In previous times, this gap was larger than it is now, and the concept of G_d was an anthropomorphic God. Now, as science has explained more of the physical universe, we need a more sophisticated concept of G_d. A New BeginningI have some things I want to say, so I am starting this new blog. My old blog has lots of material and is still available at the Python Liberation Front. It contains philosophical writings, poetry, technical material about the Python programming language and much more. I have been building this web site for almost 10 years, since I began this site itself in 1997. That's a long time in web time. So this blog is a fresh beginning for me and will be the home of new writings about this new millennium we are starting. Monday Morning, April 24, 2006I will be more active on this new blog now. I have some things I want to say. Some will be said on my AwareTek podcast series. Some will be written here. You can still find all my voluminous existing material on my old blog at Old Blog Podcast Experiment One
See my podcast Congratulations Rob and Karen I hope it works. See also the rss feed, I hope. Monday morning, April 10Here I am, bright eyed and bushy tailed. I am, like this blog, a little rough around the edges. I hope by mid week to be brighter and even more bushy tailed ;-)0 See ya later alligator Welcome to the all-new AwareTek Mash-Up BlogIf you are looking for my old blog, please got to Python Liberation Front. If you are looking for this blog, stay tuned! ;-))) This is my new blogHello. My old blog is at Python Liberation Front This one is new as of April 8, 2006.My First PostHello World. |