Posted
over 14 years
ago
by
Plone News
Talks Announced for Plone Conference 2010 in Bristol, UK
Over 400 attendees are expected to meet at the 8th annual Plone Conference for a week-long programme of training, talks and developer sprints from the 25th to 31st October at the Thistle Grand
... [More]
Hotel in Bristol, UK. Registration is now open.Plone, an Open Source Content Management System used throughout the world has a massive following and Plone events are held around the globe. The largest of these is the annual Plone Conference and this year will be held in the UK. Plone is used for developing websites, intranet and portals for corporations, NGOs and the public sector.Organised by Netsight Internet Solutions, it promises to bring together developers, designers, end users and business people. This year an additional event is being planned as a one-day mini-conference on the 26th October called "Plone in Business" which will be aimed specifically at analysts, advisors, evaluators and information professionals looking to find out more about Plone and see a showcase of successful Plone projects from across the sectors. It will also see the launch of the JBoye Plone Community of Practice.The main part of the conference, from the 27th - 29th October, has over 50 scheduled talks from speakers from 19 countries and includes an 'unconference' day in which talks will be proposed by the attendees.Plone Conference 2010 scheduled talks include:* Easier and faster Plone theming with Deliverance* Design and Development with Dexterity* Enterprise Search in Plone with Solr* Boosting productivity with "Plone-driven Plone development"* Brasil.gov.br: Building a digital nation with PloneFor a full list of talks, visit - http://www.ploneconf2010.org/the-event/talksAlan Runyan, co-founder of Plone and president of Enfold Systems along with Alex Limi, fellow co-founder of Plone and now Firefox User Experience Lead at Mozilla will be delivering a keynote. There will also be a guest keynote by Richard Noble, OBE, project director of the Bloodhound SSC project attempting be build a car to pass the 1,000mph land speed mark.The conference falls at a great time, with the recent release of Plone 4, a product that raises the bar in the Content Management System market with a faster, more user-friendly and more refined version of the product.So far, registrations for the conference have come from over 30 countries around the world. To find out more about the conference and to register, visit http://ploneconf2010.org.
Plone Foundation Announces New Members
Congratulations to Tom Lazar, Mikko Ohtamaa, Wyn Williams, Ricardo Alves and Erico Andrei. They are the newest members of the Plone Foundation.The group of five new members were confirmed at the Foundation Board's first meeting in October, chosen from the 11 applications the Membership Committee received for consideration. The Plone Foundation selects as members individuals who have made significant, enduring contributions that benefit the general Plone community.The Membership Committee is Steve McMahon, Godefroid Chapelle, Chris Calloway, Hanno Schlichting, JoAnna Springsteen & Matthew Wilkes.
Plone 4 CMS Unveiled: Advancing Power, Performance & User Experience
The Plone community has raised the bar in the Content Management System market with today's release of Plone 4, a faster, more user-friendly and more refined version of a product which has set the pace for CMS innovation for nearly a decade. Plone 4 delivers big improvements in raw speed, scalability and ease of use, and continues to advance its hallmark strengths of unmatched security, superior user interface, ease of installation and a beautiful out-of-the-box experience."Plone 4 is based on the most-frequently requested features and improvements from Plone's worldwide user and developer community," says Plone co-founder and Firefox User Experience Lead Alexander Limi. "Our developers and users asked for better performance - Plone 4 is much faster, requires less memory, and performs well even when serving up massive files. They also didn't want us to sacrifice what we do well to get there - and we haven't. Plone 4 is not just more powerful - it continues to improve in areas Plone has always been known for: usability, security, and a CMS that is easy to install, upgrade, and looks great right out of the box."Looking back on the nine year evolution of Plone and the community that supports it, Limi is more than pleased. "It's gotten to be a lot bigger than I thought it could be. Sometimes we forget how many people are involved with Plone, and how many people have left behind PHP and Java to create successful businesses based around Plone."Geir Baekholt, President of the Plone Foundation, has a similar reaction. "I'm impressed with how professional, mature and focused the Plone community is. It's rare in open source to see so many companies operating to such high standards, treating their customers and employees well and running their businesses in a sustainable manner. The best thing about Plone is that we have so many mature, stable companies using it who are consummate professionals at what they do."For all its technical and visual improvements, one of Plone 4's most important roles is to build the under-the-hood foundation even more exciting improvements in Plone 5. It gives developers and users innovations they can use today, while allowing them to develop products and websites that will be ready to take full advantage of future Plone releases.The list of notable changes in Plone 4 includes:
Significant performance improvements New theme Search and indexing improvements Group Dashboards for a Customized User Experience Massively improved handling of large files & media New, faster folder implementation More powerful management of users and groups Dynamic forms framework based on jQuery Tools Improved first-run experience Smooth upgrade experience Reduced memory footprint Upgraded infrastructure
You can find out more about these new features than you would ever want to by visiting http://plone.org/4.
Plone Deployment Workshop 2010 Returns to Indianapolis November 11-12
Six Feet Up has announced the return of its Plone Deployment Workshop this Fall at the Omni Severin. The workshop offers the opportunity to delve into the details of how to follow egg-based release practices for successful deployments.The workshop will offer two tracks for different audiences. Both tracks will cover how to successfully deploy Plone, with one as a more hands-on experience for system administrators who would like to gain a more in-depth understanding of Plone management. The second track will offer a higher-level understanding of how to manage a successful deployment.Some of the talks will include:* Buildout for the Future by Clayton Parker* Caching by Ricardo Newbery* Supervisor by Chris McDonough* Scaling and system management by Elizabeth Leddy* We will also have talks by our own staff on ldap integration, relStorage, Zenoss, memmon and more.GUEST SPEAKERSElizabeth Leddy, Plone enthusiast, will focus on scalability and performance during her presentation at the Plone Deployment Workshop. With over seven years of development and deployment of applications with Python platforms, she has been instrumental in the expansion of Plone as a leading Content Management System. Her passion for scaling and system management comes from her own experience in a variety of industries. She currently is a consultant in San Francisco.Chris McDonough is the primary author of the repoze.bfg web application framework and the author of the book "The repoze.bfg Web Application Framework". He is a Python developer and consultant for Agendaless Consulting, a company based in Fredericksburg, VA, USA. His other major projects include Supervisor, a Python process management system.Ricardo Newbery is a former physics researcher and instructor who now spends much of the time developing applications and troubleshooting issues for people who need robust high performance web content management solutions. Mr. Newbery is a contributor to the Plone CMS project and the release manager for plone.app., plone., z3c., plone.cachepurging, plone.recipe.squid, and the CacheFu collection of products.For more information or to sign up, visit - http://www.sixfeetup.com/news/plone-deployment-workshop-2010
Plone 3.3 Site Administration
This book for administrators was written by Alex Clark, a member of the plone.org infrastructure team, Plone Foundation Member and leader of the Washington DC Zope/Python Users Group. It provides a solid introduction to administering Plone-based websites and covers the subject in an easy to follow, step by step manner.What this book covers:
The basics of Plone site administrationInstalling Python, Distribute, Buildout, PIP, Plone, and moreChanging the appearance of your Plone site with freely available, professional-looking themesAutomating maintenance tasks to keep your site running smoothly with less effortSecuring, backing up, and monitoring your Plone siteMaximizing the performance of your Plone site by applying various site optimization techniques
This book is designed for site administrators, webmasters, or content editors managing a site with Plone who have some Plone background, but are new to site administration. The reader is also expected to know basic Python programming. Plone 3.3 Site Administration is available in both print and electronic forms from Packt Publishing.
A User's Guide to Plone
The latest edition, for Plone 4, is 246 pages, has undergone a major rewrite and includes new material on topics such as: using the TinyMCE editor, using Plone for wikis and making content easy to find. This volume focuses on how to use "out of the box" features preinstalled with any default Plone installation. It is written especially for those who use Plone on a daily basis to write and approve content.Available on Amazon in Print: http://www.amazon.com/dp/0615404626Available as PDF download: http://www.enfoldsystems.com/assets/user-guide/a-users-guide-to-plone-4Also available from Amazon.co.uk and Amazon.de within 1-2 weeks.Free PDF versions of the User Guide for the Plone 2/3 series are available athttp://www.enfoldsystems.com/support/a-users-guide-to-plone.html
Introducing Plone.org's New "Downloads" Section: Comments, Ratings, Screenshots and More!
Plone.org's "downloads" section has gotten a major facelift, and now includes community product ratings, comments on products, screenshots and many other improvements.The Plone.org team is proud to unveil a long-awaited overhaul to Plone.org's "downloads" section which houses Plone's many add-on products. Thanks to some fantastic work from Elizabeth Leddy, Alec Mitchell, Alex Clark and participants at the recent LA Plone Sprint, Plone.org now features:Community ratings of add-on products. Plone.org users can now rate add-on products, and search listings are now sortable by product ratings. This will help users quickly find the products that the Plone community likes best. Product authors will also benefit from the quick and easy feedback mechanism. Comments on products. Plone.org now enables comments on products from logged-in users. This enables another channel for community feedback on a product. Please use it to review the product. Bug reports should continue to go to the product issue trackers and support questions should generally go to the plone-users list. Screenshots with lightbox popups = a theme gallery! Plone.org now displays front-and-center screenshots in product listings when the product author provides them. Screenshots have slick lightbox-style popups which is especially useful for getting a preview of theme products. Downloads organized by product, rather than by release. The Plone.org downloads section is now organized by add-on product, rather than by individual product releases. This produces much more intuitively-organized product listings, especially for products that are making frequent releases.Plone version compatibility is front-and-center. Plone product listings now show Plone version compatibility right up front, this makes finding add-on products for your version of Plone quick and easy.At-a-glance compatibility and status matrix for all product releases. Each product detail page now includes a new compatibility and status matrix that summarizes the status (alpha, beta, final) version compatibility and summary information for each product release.Please take a few moments to explore the new http://plone.org/products, rate your favorite products, leave a comment or two and of course let us know if you run into any problems with the new downloads section. Big thanks to Elizabeth, Alec, Alex, and the LA Plone Sprinters for some fantastic work that will touch everyone who uses Plone.
Demo Site Lets Users Preview Plone 4 Features online
A demonstration site has been set up to allow users to preview Plone 4. The demonstration site lets users experience the look and feel of Plone 4 as well as check out its ease of use and new features. Its a great tool for demonstrating Plone 4 without needing to do a local installation and for folks to look at the changes since Plone 3. The site lets users log in using a variety of roles so they can see the difference between what users, editor and administrators see when working in Plone 4.You can access the demo site at http://demo.plone.org .
New Site Spotlight
Library of Bergen, Norway's Second Largest Library recently launched a brand new Plone-based website created by Jarn. In addition to an awesome visual design, the site also serves as a showcase of Plone's newest technologies and Web 2.0 / Social Media integration.The Bergen site was themed with XDV, as opposed to regular old style Plone themes. Using XDV made us also able to integrate/theme the library's existing library-management-system without touching the system itself. So even when users are using the existing PHP infrastructure they don't notice that they are viewing a different system at all. Al library operations like reserving books, extending loans, searching for books, etc seem to be going through one website. A good example of this is the XDV-themed search, which can be seen here. You can visit the site at http://bergenbibliotek.no/ [Less]
|
Posted
over 14 years
ago
by
Reinout van Rees' weblog
Ned Batchelder just wrote about checking javascript syntax in Django,
so I figured it was about time to document how I use jslint:
Use the jslint command line version.
Add some jslint configuration comments to the top of your javascript
... [More]
files.
Integrate the whole thing in Hudson for continuous checking.
Jslint can be run and configured in the browser by copy/pasting your code into
http://www.jslint.com/ . Now, that's not a thing you want to do after every
javascript change, right? So there's also a command line version for Rhino. Rhino is a command line
javascript runner.
On debian/ubuntu, just do aptitude install rhino and download the
jslint.js file. You don't need to type the lengthly commandline on that
jslint page: on ubuntu you can just type rhino path/to/jslint.js
path/to/your.js. Beware: as far as I could see, it did not accept
multiple javascript files to test, so testing *.js will in fact only test
the first one.
This led me to write a small python script that calls rhino with jslint and
does some directory walking to find javascript files and calls jslint on all
of them:
#!/usr/bin/python
# Place this file somewhere as ``jslint`` (preferrably
# without the .py) and make it executable. Place a
# downloaded jslint.js in the same directory.
import os
import commands
import sys
RHINO = 'rhino' # "aptitude install rhino" on ubuntu.
JSLINT = os.path.abspath(os.path.join(
os.path.dirname(__file__), 'jslint.js'))
def main():
if not len(sys.argv) > 1:
print "Usage: jslint script1.js [script2.js...]"
print " or: jslint directory"
sys.exit(1)
javascript_files = sys.argv[1:]
if len(javascript_files) == 1:
possible_dir = javascript_files[0]
if os.path.isdir(possible_dir):
javascript_files = []
for (dirpath, dirnames, filenames) in os.walk(
possible_dir):
javascript_files = [
os.path.join(dirpath, filename)
for filename in filenames
if filename.endswith('.js')]
for javascript_file in javascript_files:
(status, output) = commands.getstatusoutput(
' '.join([RHINO, JSLINT, javascript_file]))
if status == 0:
# Success!
print "%s is OK" % javascript_file
else:
print "Error checking %s" % javascript_file
print "exit code:", status
print output
sys.exit(status)
sys.exit(0)
if __name__ == '__main__':
main()
Jslint is pretty picky, so you need to tame it a bit. Most common things you
need to do:
Tell it you run your javascript in a browser so that several (but not all)
typical variables are known to exist. If you're missing one: google for
"jslint" plus the missing one and you'll probably find a good explanation.
Tell it about your globally available variables that you know are prepared
for you by external libraries. Like $ if you're using jquery :-)
You do that by adding a few comment lines to the top of your javascript file,
like this:
// jslint configuration; btw: don't put a space before 'jslint' below.
/*jslint browser: true */
/*global $, OpenLayers, window, updateLayer */
Some of the things that jslint enforces:
No extraneous or missing commas, semicolons, etcetera. You're guaranteed
that Internet Explorer does not hickup because you forgot one of those.
Stating your variables beforehand. You're required to state them all at the
beginning of your file or your functions. No more half-way var xyz =
123;. It enforces good habits in this sense.
It also forces you to change things that are perfectly ok, but that's pretty
rare. The most common one is that it dislikes the normal "i " style of
loop. You have to change that into for (i = 0; i < something; i = 1)
{.
The last thing is to add jslint checking to Hudson. Continuous integration
should also mean continuous checking of your javascript code. I just added a
manual "shell" step that calls the above jslint-running python script with the
correct path. The script does a sys.exit() with a non-zero value if something
goes wrong, so if you return that exit code to hudson, hudson will treat it as
a full-blown test failure.
It really helped me to get a good feeling about the health of my javascript
files!
[Less]
|
Posted
over 14 years
ago
by
Lennart Regebro: Open Source, Python, Web
Update 2010-10-10: Added Eric.
I’m currently a user of WingIDE, but sometimes I feel the need for something better, mainly something that is a bit more stable. WingIDE often hangs when switching projects, sometimes the file listing decides that you
... [More]
must double-click on the expand arrow instead of just click on it, etc. It still doesn’t have macros despite this being a much requested feature (how hard can it be to add, really?) and I never really get the hang of the SVN integration, so I just ignore it. And they keep recommending me to use WingIDE’s separate instance of GTK instead of the System GTK, which is daft. Their designs are ugly, and it should work with the system GTK so it looks the same. Anything else is just silly.
But all in all it’s pretty good. I’m not unhappy with WingIDE. But I just have the feeling that there should be something better. So I’m testing other IDE’s. And so far my conclusion is that: No, WingIDE still is the best. But there are many Python IDE’s out there, so maybe I missed some. So this is your chance to tell me that there is one I’ve missed, or tell me that a feature I’m missing from the ones I tested actually *do* exist.And from this testing, this is the features I’d really want, but only WingIDE has:
1. Project management.
You know, adding to a project which files actually are included in the project. I probably could accept if it looks at what is versioned and ignored everything else, but I can’t just tell an IDE that this is my base root directory for the project, and then have the IDE analyze every single file under that directory. I use buildout, and my project directories often include things like Varnish and NGinX, which gets downloaded and compiled as a part of the buildout. I don’t want my editor to care about those files. However, I *do* want it to care about a lot of other files in that directory, so I can’t just select a subdirectory either. No, I do really need a project, not just a workspace, to which I specifically add files and directories, and say which Python interpreter to use, etc.
All of the IDE’s below fail on this count, some more, some less.
2. CTRL-click to go to definition
With WingIDE I can just CRTL-click on any Python variable, and I’ll go to the definition. If I set up the project correctly (see point 3) this includes anything I have imported from no matter what. WingIDE fails sometimes on this, but works most of the time, unless you just ‘from X import *’. Of the IDE’s I tested below I think only PyCharm supports this.
3. Get paths from a script
WingIDE as well as PyCharm has the possibility to analyze a Python-file and look for additions to sys.path, add them to the project and analyze them. That is for me most helpful for the CTRL-Click function above. I couldn’t find this in any other IDE.
4. Remote debugging support
WingIDE can debug processes via TCP/IP. The neat thing with this is that you can write modules for your web framework, which means you can debug it without running the whole web framework as a subprocess of your editor. If your webframework is small, the subprocess technique is feasible. With Plone it is not. Also you can connect and debug your customers server. Nice! But, yes, this is a minor requirement compared to the others. I can survive without it.
So here are the results of the Swedish Jury:
PyScripter
Is brain-dead windows only. FAIL.
SPE (Stanis Python Editor) and Spyder
Yeah, I know that’s two different editors. But I have the same to say about them. They both seem to be really nice little editors, starts fast and has a decent feature set. But neither of them actually have any sort of project management. They are often listed amongst IDE’s, but they aren’t IDE’s, they are editors.
PyCharm
Annoyingly written in Java, this is a really good IDE with loads of stupendous features. However, it is very slow in certain cases, and one of the reasons is because the project handling is lacking. Once again you only set a root directory for the project, and it will import and analyze everything in there. For a small Plone project this took some 15 minutes on my computer, and PyCharm ended up using 800MB of memory. Not fun. Especially since many buildout development projects involve something called “Omelette”, which will make virtual links to all your eggs, in a nice hierarchical structure that’s easy to browser and search through. PyCharm will take your start script, add all the eggs in the path to the project and analyze them, and then analyze everything in the omelette directory again, in practice analyzing all files twice. Now, you say, you don’t need an omelette directory when using PyCharm, and you are right. But in a typical project, most people will not use PyCharm.
Also, PyCharm doesn’t support remote debugging. But that is as mentioned a minor feature, and if the project handling was better I would try this out closer. It seems really good, even if it chews up memory like crazy.
Eric
Eric is complex. Indeed, confusing. This is another failure of usability in open source. The weirdest thing is that when creating a project, it also tries to create a skeleton for Python. But obviously, the first thing I do to test is to start using the editor in an ongoing project. Maybe it’s possible to create your own project templates, but an empty one would be nice as default. Eric does have the feature to add specific files and folders to the project, hooray! It also supports remote debugging. I can’t find a way to add existing paths to the project though, not even manually.
EMACS and vi
After articles in Python Magazine I decided to try this out. I hate both EMACS and vi, but it’s worth a try, they have GUI modes, and can be configured to have key-bindings that are not insane, etc. But the fact is that both of them still ended up feeling like editors from the 1970′s and you still feel like 40 years of user interface development somehow just got lost. Even if most commands now can be assigned to reasonable keys, things are still called “yank” and “pull” instead of “copy” and “paste” and you still end up in weird modes you can’t get out of except by pressing escape two hundred times. Yes, I’m sure both are great if you dedicate your life to learning all their intricate features, but in the meantime the rest of the computer world have been trying to teach computers how to understand people, not the other way around. Both EMACS and vi sucks. If you use them: Get your head out of the 70′s you bloody hippie.
So… what now?
Did I misunderstand the editors above? Is there other editors I should try? Tell me in the comments.
Filed under: plone, python Tagged: editor, IDE [Less]
|
Posted
over 14 years
ago
by
Lennart Regebro: Python, Plone, Web
Update 2010-10-10: Added Eric.
Update 2010-10-10: Updated PyCharm, added Komodo
I’m currently a user of WingIDE, but sometimes I feel the need for something better, mainly something that is a bit more stable. WingIDE often hangs when switching
... [More]
projects, sometimes the file listing decides that you must double-click on the expand arrow instead of just click on it, etc. It still doesn’t have macros despite this being a much requested feature (how hard can it be to add, really?) and I never really get the hang of the SVN integration, so I just ignore it. And they keep recommending me to use WingIDE’s separate instance of GTK instead of the System GTK, which is daft. Their designs are ugly, and it should work with the system GTK so it looks the same. Anything else is just silly.
But all in all it’s pretty good. I’m not unhappy with WingIDE. But I just have the feeling that there should be something better. So I’m testing other IDE’s. And so far my conclusion is that: No, WingIDE still is the best. But there are many Python IDE’s out there, so maybe I missed some. So this is your chance to tell me that there is one I’ve missed, or tell me that a feature I’m missing from the ones I tested actually *do* exist.And from this testing, this is the features I’d really want, but only WingIDE has:
1. Project management.
You know, adding to a project which files actually are included in the project. I probably could accept if it looks at what is versioned and ignored everything else, but I can’t just tell an IDE that this is my base root directory for the project, and then have the IDE analyze every single file under that directory. I use buildout, and my project directories often include things like Varnish and NGinX, which gets downloaded and compiled as a part of the buildout. I don’t want my editor to care about those files. However, I *do* want it to care about a lot of other files in that directory, so I can’t just select a subdirectory either. No, I do really need a project, not just a workspace, to which I specifically add files and directories, and say which Python interpreter to use, etc.
All of the IDE’s below fail on this count, some more, some less.
2. CTRL-click to go to definition
With WingIDE I can just CRTL-click on any Python variable, and I’ll go to the definition. If I set up the project correctly (see point 3) this includes anything I have imported from no matter what. WingIDE fails sometimes on this, but works most of the time, unless you just ‘from X import *’. Of the IDE’s I tested below I think only PyCharm supports this.
3. Get paths from a script
WingIDE as well as PyCharm has the possibility to analyze a Python-file and look for additions to sys.path, add them to the project and analyze them. That is for me most helpful for the CTRL-Click function above. I couldn’t find this in any other IDE.
4. Remote debugging support
WingIDE can debug processes via TCP/IP. The neat thing with this is that you can write modules for your web framework, which means you can debug it without running the whole web framework as a subprocess of your editor. If your webframework is small, the subprocess technique is feasible. With Plone it is not. Also you can connect and debug your customers server. Nice! But, yes, this is a minor requirement compared to the others. I can survive without it.
So here are the results of the Swedish Jury:
PyScripter
Is brain-dead windows only. FAIL.
SPE (Stanis Python Editor) and Spyder
Yeah, I know that’s two different editors. But I have the same to say about them. They both seem to be really nice little editors, starts fast and has a decent feature set. But neither of them actually have any sort of project management. They are often listed amongst IDE’s, but they aren’t IDE’s, they are editors.
PyCharm
Annoyingly written in Java, this is a really good IDE with loads of stupendous features. However, it is very slow in certain cases, and one of the reasons is because the project handling is lacking. Once again you only set a root directory for the project, and it will import and analyze everything in there. For a small Plone project this took some 15 minutes on my computer, and PyCharm ended up using 800MB of memory. Not fun. Especially since many buildout development projects involve something called “Omelette”, which will make virtual links to all your eggs, in a nice hierarchical structure that’s easy to browser and search through. PyCharm will take your start script, add all the eggs in the path to the project and analyze them, and then analyze everything in the omelette directory again, in practice analyzing all files twice. Now, you say, you don’t need an omelette directory when using PyCharm, and you are right. But in a typical project, most people will not use PyCharm. After some digging though, I found that you could go into the settings and there in “Project structure” exlude directories. So all is good. By why isn’t that option already in the file list? Weird.
PyCharm doesn’t support remote debugging. But that is as mentioned a minor feature. It seems really good, even if it chews up memory like crazy, and stays on the list of things to check out further. Too bad it doesn’t hook into Ubuntu’s UI settings, but uses different fonts for menues etc, it makes it look like shit, but I can survive that.
Eric
Eric is complex. Indeed, confusing. This is another failure of usability in open source. The weirdest thing is that when creating a project, it also tries to create a skeleton for Python. But obviously, the first thing I do to test is to start using the editor in an ongoing project. Maybe it’s possible to create your own project templates, but an empty one would be nice as default. Eric does have the feature to add specific files and folders to the project, hooray! It also supports remote debugging. I can’t find a way to add existing paths to the project though, not even manually.
Komodo
Due to the many recommendations I bumped up Komodo to the next thing to look at. Expensive, but nice. Looks good, works smoothly. It doesn’t let you exclude files from the project on a per-file or directory basis, but it let’s you set up a filter for which files to exlude which is a bit more involved, but it has the setting both per project and globally, so you only need to set it up and it will work for new projects. Nice. But with point 3 above, the support is not perfect. Or rather, there is no support, but what I can do is to have the buildout create a custom python interpreter with the sys.path set up correctly. I usually do this in most of my buildouts using he zc.recipe.egg recipe. By selecting that interpreter, Komodo will use it’s sys.path as a basis for analyzing files. That would do very nicely, if this was a per-project setting, but it isn’t. But it’s good enough to continue looking into Komodo. Another option is to use the Omelette recipe that confuses PyCharm, and add the Omelette directory it to the per-project sys.path, but that requires Omelette in thebuildout, but that’s a small concession to make I guess.
It’s support for having a remote directory as the project directory is intriguing, as well.
EMACS and vi
After articles in Python Magazine I decided to try this out. I hate both EMACS and vi, but it’s worth a try, they have GUI modes, and can be configured to have key-bindings that are not insane, etc. But the fact is that both of them still ended up feeling like editors from the 1970′s and you still feel like 40 years of user interface development somehow just got lost. Even if most commands now can be assigned to reasonable keys, things are still called “yank” and “pull” instead of “copy” and “paste” and you still end up in weird modes you can’t get out of except by pressing escape two hundred times. Yes, I’m sure both are great if you dedicate your life to learning all their intricate features, but in the meantime the rest of the computer world have been trying to teach computers how to understand people, not the other way around. Both EMACS and vi sucks. If you use them: Get your head out of the 70′s you bloody hippie.
So… what now?
Did I misunderstand the editors above? Is there other editors I should try? Tell me in the comments.
Filed under: plone, python Tagged: editor, IDE [Less]
|
Posted
over 14 years
ago
by
Lennart Regebro: Python, Plone, Web
Update 2010-10-10: Added Eric.
Update 2010-10-11: Updated PyCharm, added Komodo
Update 2010-10-14: Added Anjuta, Updated PyCharm and Komodo
I’m currently a user of WingIDE, but sometimes I feel the need for something better, mainly something that is
... [More]
a bit more stable. WingIDE often hangs when switching projects, sometimes the file listing decides that you must double-click on the expand arrow instead of just click on it, etc. It still doesn’t have macros despite this being a much requested feature (how hard can it be to add, really?) and I never really get the hang of the SVN integration, so I just ignore it. And they keep recommending me to use WingIDE’s separate instance of GTK instead of the System GTK, which is daft. Their designs are ugly, and it should work with the system GTK so it looks the same. Anything else is just silly.
But all in all it’s pretty good. I’m not unhappy with WingIDE. But I just have the feeling that there should be something better. So I’m testing other IDE’s. And so far my conclusion is that: No, WingIDE still is the best. But there are many Python IDE’s out there, so maybe I missed some. So this is your chance to tell me that there is one I’ve missed, or tell me that a feature I’m missing from the ones I tested actually *do* exist.And from this testing, this is the features I’d really want, but only WingIDE has:
1. Project management.
You know, adding to a project which files actually are included in the project. I probably could accept if it looks at what is versioned and ignored everything else, but I can’t just tell an IDE that this is my base root directory for the project, and then have the IDE analyze every single file under that directory. I use buildout, and my project directories often include things like Varnish and NGinX, which gets downloaded and compiled as a part of the buildout. I don’t want my editor to care about those files. However, I *do* want it to care about a lot of other files in that directory, so I can’t just select a subdirectory either. No, I do really need a project, not just a workspace, to which I specifically add files and directories, and say which Python interpreter to use, etc.
All of the IDE’s below fail on this count, some more, some less.
2. CTRL-click to go to definition
With WingIDE I can just CRTL-click on any Python variable, and I’ll go to the definition. If I set up the project correctly (see point 3) this includes anything I have imported from no matter what. WingIDE fails sometimes on this, but works most of the time, unless you just ‘from X import *’. Of the IDE’s I tested below I think only PyCharm supports this.
3. Get paths from a script
WingIDE as well as PyCharm has the possibility to analyze a Python-file and look for additions to sys.path, add them to the project and analyze them. That is for me most helpful for the CTRL-Click function above. I couldn’t find this in any other IDE.
4. Remote debugging support
WingIDE can debug processes via TCP/IP. The neat thing with this is that you can write modules for your web framework, which means you can debug it without running the whole web framework as a subprocess of your editor. If your webframework is small, the subprocess technique is feasible. With Plone it is not. Also you can connect and debug your customers server. Nice! But, yes, this is a minor requirement compared to the others. I can survive without it.
So here are the results of the Swedish Jury:
PyScripter
Is windows only. Python is a cross-platform language. A non-cross-platform IDE for Python makes as much sense as having a solar-cell operated night-vision camera. FAIL.
Stanis Python Editor (SPE) / Spyder /Anjuta
Yeah, I know that’s different editors. But I have the same to say about them. They all seem to be really nice little editors, starts fast and has a decent feature set. But neither of them have any actual sort of project management, and although they analyze the file you edit, they don’t analyze your whole project and they know nothing of your dependencies. They therefore can’t do any reasonable code completion or going to source even if they wanted to. They are often listed amongst IDE’s, but they aren’t IDE’s, they are editors that have a file browser built in. These are the ones to look at if you want something really small, fast and lightweight with no fancy frills.
PyCharm
Annoyingly written in Java, this is a really good IDE with loads of stupendous features. However, it is very slow in certain cases, and one of the reasons is because the project handling is lacking. Once again you only set a root directory for the project, and it will import and analyze everything in there. For a small Plone project this took some 15 minutes on my computer, and PyCharm ended up using 800MB of memory. Not fun. Especially since many buildout development projects involve something called “Omelette”, which will make virtual links to all your eggs, in a nice hierarchical structure that’s easy to browser and search through. PyCharm will take your start script, add all the eggs in the path to the project and analyze them, and then analyze everything in the omelette directory again, in practice analyzing all files twice. Now, you say, you don’t need an omelette directory when using PyCharm, and you are right. But in a typical project, most people will not use PyCharm. After some digging though, I found that you could go into the settings and there in “Project structure” exlude directories. So all is good. By why isn’t that option already in the file list? Weird.
PyCharm doesn’t support remote debugging. But that is as mentioned a minor feature. It seems really good, even if it chews up memory like crazy, and stays on the list of things to check out further. Too bad it doesn’t hook into Ubuntu’s UI settings, but uses different fonts for menues etc, it makes it look like shit, but I can survive that.
Update: What I can’t survive with is that the code completion doesn’t work as I want it to. This may be a matter of taste, so if you are looking for an IDE, PyCharm is one of the ones you should try. But it’s not for me, unfortunately because a lot of the features look *really* cool, but that is of no use if the basic features doesn’t work as you want them.
Eric
Eric is complex. Indeed, confusing. This is another failure of usability in open source. The weirdest thing is that when creating a project, it also tries to create a skeleton for Python. But obviously, the first thing I do to test is to start using the editor in an ongoing project. Maybe it’s possible to create your own project templates, but an empty one would be nice as default. Eric does have the feature to add specific files and folders to the project, hooray! It also supports remote debugging. I can’t find a way to add existing paths to the project though, not even manually.
Komodo
Due to the many recommendations I bumped up Komodo to the next thing to look at. Expensive, but nice. Looks good, works smoothly. It doesn’t let you exclude files from the project on a per-file or directory basis, but it let’s you set up a filter for which files to exlude which is a bit more involved, but it has the setting both per project and globally, so you only need to set it up and it will work for new projects. Nice. But with point 3 above, the support is not perfect. Or rather, there is no support, but what I can do is to have the buildout create a custom python interpreter with the sys.path set up correctly. I usually do this in most of my buildouts using he zc.recipe.egg recipe. By selecting that interpreter, Komodo will use it’s sys.path as a basis for analyzing files. That would do very nicely, if this was a per-project setting, but it isn’t. But it’s good enough to continue looking into Komodo. Another option is to use the Omelette recipe that confuses PyCharm, and add the Omelette directory it to the per-project sys.path, but that requires Omelette in thebuildout, but that’s a small concession to make I guess. It’s support for having a remote directory as the project directory is intriguing, as well.
Update: But it’s code completion drives me crazy. I don’t know if it’s buggy, or stupid, or there is some magic button to push, or if I misunderstand something.
EMACS and vi
After articles in Python Magazine I decided to try this out. I hate both EMACS and vi, but it’s worth a try, they have GUI modes, and can be configured to have key-bindings that are not insane, etc. But the fact is that both of them still ended up feeling like editors from the 1970′s and you still feel like 40 years of user interface development somehow just got lost. Even if most commands now can be assigned to reasonable keys, things are still called “yank” and “pull” instead of “copy” and “paste” and you still end up in weird modes you can’t get out of except by pressing escape two hundred times. Yes, I’m sure both are great if you dedicate your life to learning all their intricate features, but in the meantime the rest of the computer world have been trying to teach computers how to understand people, not the other way around. Both EMACS and vi sucks. If you use them: Get your head out of the 70′s you bloody hippie.
So… what now?
Did I misunderstand the editors above? Is there other editors I should try? Tell me in the comments.
Filed under: plone, python Tagged: editor, IDE [Less]
|
Posted
over 14 years
ago
by
Ross Patterson
I'm about to upgrade a sizable client deployment to Plone 4 and wanted to see if I could switch to the Chameleon template engine at the same time. I'm recording things I found here:
Testing both with and without Chameleon
For some add-ons of mine
... [More]
, I found it useful to be able to run the tests both with and without Chameleon. It turns out to be remarkably simple with buildout.
Integrating cmf.pt and z3c.form
There are some gotchas when using both cmf.pt and z3c.form together. You have to be sure to include z3c.ptcompat, which you can do with z3c.form's poorly named "extra" extras_require. I did this in my project's setup.py by adding the following:
install_requires=[
...
'z3c.form[extra]<2.3dev',
...
Unfortunately, z3c.ptcompat uses an environment variable to switch on the use of Chameleon so you have to add the environment variable to the buildout instances and test runners:
[instance]
...
environment-vars =
PREFER_Z3C_PT True
...
[test]
...
environment = testenv
...
[testenv]
PREFER_Z3C_PT = True
[Less]
|
Posted
over 14 years
ago
by
Plone News
Once again this year we have some great training sessions lined up for the Plone Conference.
One of the things people have often said about Plone is that it is such a big system, where do they start? Well now is your chance to get a good kickstart
... [More]
in your Plone knowledge by attending a training session by some of the best minds in the Plone Community.
You do not need to attend the entire conference for the training, you can just attend the training if you wish... however you'll miss out on a great conference if you do!
Registration and payment for the training is direct to the trainer and details can be found on the links below.
Here is a summary of the training sessions on offer:
Training: JavaScript, jQuery & jQuery Tools in Plone
Steve McMahon, Reid-McMahon, LLC, USA25th-26th October (2 day session)Cost US$300more details...
Training: Theming Plone 4
Chrissy Wainwright, Six Feet Up, Inc., USA25th-26th October (2 day session)Early Bird cost is US$300 through October 8th. Normal cost US$350more details...
Training: XDV Tutorial
Laurence Rowe, UK25th OctoberCost: £100 +VAT (£117.50) more details...
Training: Best Practices for Deploying and Optimizing Plone Sites
Nate Aune, Jazkarta, USA25th OctoberCost: US$250 US / £ 160 more details...
Training: Getting started with Plone hosting on Amazon EC2
Nate Aune, Jazkarta, USA26th OctoberCost: US$250 US / £ 160 more details...
[Less]
|
Posted
over 14 years
ago
by
Plone News
The demonstration site lets users experience the look and feel of Plone 4 as well as check out its ease of use and new features. Its a great tool for demonstrating Plone 4 without needing to do a local installation and for folks to look at the
... [More]
changes since Plone 3. The site lets users log in using a variety of roles so they can see the difference between what users, editor and adminstrators see when working in Plone 4.
You can access the demo site at http://demo.plone.org . [Less]
|
Posted
over 14 years
ago
by
Site - Blog of Andreas Jung
Produce & Publish Lite fills the gap between SmartPrintNG and the Produce & Publish components
|
Posted
over 14 years
ago
by
Reinout van Rees' weblog
Well, that's an unusual subject, right? Yes, my lovely wife is looking for a
job. (Dutch: mijn echtgenote zoekt een baan. Ik hou, gezien het reguliere
publiek hier, m'n tekst gewoon in het Engels.)
She writes well. Especially Dutch
... [More]
, of course. She studied history, which
is basically the best study for reading, writing, summarizing and gathering
information. So not only writing, but also doing a sizable bit of
background information search for that.
Writing: yes, also for websites, which fits my own natural public on my
weblog. She maintains most of the content on a Plone website that I set up, so she's comfy with a CMS. And she's got
her own (wordpress) blog.
For practical reasons: 12-20 hours per week max.
Bonus points if it is a job at a governmental organisation (Dutch:
gemeente, bijvoorbeeld) in the educational field. She worked as a
municipal educational officer, for instance.
She's also good as a secretary. Preferrably a bit on the hard side instead
of on the boring side. A former employer once asked her to come and work
for the new organization that she then worked for: pretty good indication
that she's hard working and efficient.
So: need someone intelligent who can write? A good secretary? A
researcher/writer? Preferrably with website experience? Get her.
Some practical points:
Yeah, 12 till 20 hours max.
We live in Nieuwegein and we don't have a car, so either
work-partially-from-home or accessible by public transport or bicycle.
Get her, she's good.
Her Dutch CV is online.
See her linkedin page.
[Less]
|