Showing posts with label newbie. Show all posts
Showing posts with label newbie. Show all posts

Monday, May 25, 2015

Plone 5 Beta 2 in the Cloud

Update: August 4, 2015 - Beta 3 is out, so go here to see how to install Plone 5 Beta 3.

These are quick instructions for installing Plone 5 Beta 2 on Codio.com.
I have found no faster (or more newbie friendly) way to get a Plone sandbox up and running.

I'll assume you have already signed up with Codio. If not, go ahead and do that first.

Step 1 - Create a new Project

On the Codio dashboard select Create Project


Use Default as the Starting Point and click Create.


Step 2 - Open the terminal

Select Tools > Terminal.

Then on the terminal enter the following command:

wget -qO- https://goo.gl/XxDEOO | bash

You will see output similar to this:

Step 3 - Launching Plone 5

After successful installation (takes about 6 minutes) you'll see that the menu in you project has updated.
Select Start Plone from the menu.


Get the admin password by selecting Admin Password from the menu, you'll be promoted for it later.



Select Plone site port 8080. This will show you the Plone installer


This will lead you to the Plone installer

Things to Know

Here are a few things to know about Plone.
  1. Plone runs on an application server called Zope (this is why you'll see mention of Zope and ZEO as you work)
  2. You can actually run multiple copies of Plone on one Zope application server

Next Steps

This quick cloud based installation is a great way to try out some of the new things in Plone 5. Plone 5 is still being polished so it will have rough edges. Try changing the look of your site by following these notes from Asko Soukka on customizing Plone 5's default theme.

If you get this working, please leave a comment. If you try and you're stuck

Wednesday, October 8, 2014

Sandy's first day with Plone and the Plone Newbie Developer Kit



"Plone add-ons?".

Sandy had never heard of Plone before, now she had a weekend to become familiar with it.

It started when she finally got a call back to work with a medium sized non-profit looking to add a full stack developer to their team. She had applied because she figured her experience with both backend and frontend development made here a good fit. It was now Friday and they wanted her to start next Monday.

No problem. Except for that little Plone thing. During the last discussion the head of the development team mentioned that they expected her to be able to "build Plone add-ons".

So she did what any sensible developer would do. She turned to Google.

After a bit of googling she was able to determine that Plone is a content management system written in Python and Javascript with some XML involved here and there. Thankfully she knew enough Python to help herself, having done a bit of Flask development in the past. With some further exploration she discovered that Plone runs on an application server called Zope, this made her a bit uneasy, she had never had to interact with an application server before. A bit more googling and she discovered the Plone Newbie Developer Kit (PNDK), what a relief!

Update April 27, 2014: Changed the command for plock to use pip install --user.
Update Oct 8, 2014: If you'd like to get updates about the PNDK, fill out the sign up form.
Update Oct 5, 2016: added a line that sets the path for a local install of plock



After ensuring that her machine had all the recommended dependencies she followed the instructions in the guide.

pip install --user --upgrade plock
export PATH=$PATH:$HOME/.local/bin
plock -e http://goo.gl/2aVZTB helloplone

Woah, a 7 minute install, that's faster than when she tried out Node.js. She then launched the application server and created her first Plone instance. Adding Dexterity content types she was able to create a deceptively simple looking "staff profile" content type and a few minutes later she had deployed the whole thing to Heroku. Not bad for her first day.

All in all the PNDK was just enough to kick start her Plone journey, not too fiddly with additional side notes that helped to fill in some of her newbie gaps. She was especially thankful for the screenshots, which she would constantly compare to her screen to confirm that she was on the right track.

This is the story I now carry in my head as I work on my latest personal project, the Plone Newbie Developer Kit. For more information about the rationale read the background to the PNDK. At the time of writing the PNDK is a work in progress and certainly has some gaps. All of that will change as it is refined over the next 3 to 6 months to make it match the experience of the story told above.

Saturday, February 1, 2014

Plone Newbie Advice 2014 - Learn the big picture, Trust the blackbox

If I had just 20 minutes with a Plone newbie, eager to become a competent Plone developer, this is the advice that I would give to them today. I strongly believe that after the release of Plone 5, later this year, the specifics of this advice will be slightly different as projects like Mockup become the standard, but hopefully the general advice will hold true.

update: May 30, 2015 - I've re-organized some of the information for the sake of clarity and readability. Tangential notes have been moved to a section called "Parting thoughts".

I'm assuming that you've already installed and played around a bit with Plone. If not start by doing a quick cloud installation of Plone.

Fundamentals are assumed so make sure you understand them

In my experience persons trip up on things like Unix fundamentals, Networking and Protocols, CSS, Javascript and HTML. So before you invest time in Plone make sure you know your basic web technology.

The Plone stack touches many pieces and the deeper you go the more you learn. The good news is that understanding these things will probably benefit you with every other web project that you work on.

My checklist of fundamentals that you'll want to be comfortable with include:

  • HTML
  • CSS
  • XML
  • Linux/Unix Command line
  • Basic Python
  • Working with Web APIs
  • Networking Fundamentals (TCP/IP, Application Protocols, Browsers, SSH)
As an example, recently I prototyped a system that relied on both Heroku and Google App Engine, the development was done using webapp2 for App Engine and Flask on Heroku. It involved  XML, Javascript and required becoming familiar with a couple APIs. My experience with Plone's Dexterity Framework and even the buildout system was a useful reference point. The system will eventually integrate back into an enterprise Plone deployment AFTER I'm comfortable that the parts all work.

Be an expert in your core

Being able to learn new technology quickly is not an excuse for learning things superficially. For Plone the core includes understanding things like user permissions, roles, content type schemas, browser views, templates and ZCML.

My checklist of Plone fundamentals

  • Page Templates
  • Content Type Schemas with Dexterity
  • Generic Setup Configuration with XML
  • ZCML
  • Browser Views
  • User permissions
  • Roles
Learn these well and you won't regret it.

Be systematic about your development process

My recommended posture would be the same no matter the technology stack. I'll explain them in more detail below:
  • Learn the big picture: learn about the tools available in your toolbox.
  • Trust the blackbox: learn only what you need to know and trust that the other parts just work.
  • Organically absorb the stack. learn new stuff on an as-needed basis.

Learn the big picture

Find out what is available in your toolbox. I recommend these articles:

http://plone.org/products/plone/features/ - An overview of what Plone does out of the box
http://blog.dbain.com/2013/12/plone-big-picture.html - A non-exhaustive summary of the pieces of Plone
http://developer.plone.org/getstarted/index.html - Gives a realistic picture of Plone
http://developer.plone.org/#manuals - This is really a table of contents, but gives an idea of what's possible

Trust the blackbox

You don't need to understand the plumbing of your house in order to take a shower, the same is true with Plone. While there's a lot of plumbing going on you need only focus on how to connect your hose to the system. Some personalities find this difficult as they need to understand everything before proceeding but you'll need this approach to become productive quickly.  If you just want to use Plone as it was designed to be used (as a content management application and framework) then just grab some good examples and copy them.

Organically Absorb the stack

As you advance you will begin to discover that you need more parts of the stack. Learn these parts as you need to. Remember you can always dig deeper into more features of Plone and it certainly makes sense if you intend to become a core contributor to the project.

Parting thoughts

In general I've observed a mind-set in the Plone community that aims for systems that are "team scale" (not just "works for me"). In keeping with this idea, I try to follow the following three rules as I develop, (not that I'm following them very well but...):
  • Aim to support iterating quickly 
  • Aim to support deploying reliably 
  • Aim to make your project so well documented and predictable that a knowledgeable Plone developer could pick up from you in less than 30 minute

Sign up for my upcoming Plone 5 Book & Video tutorials

plone 5 for newbies book and videos