Featured Post

Hacking Health in Hamilton Ontario - Let's hear that pitch!

What compelled me to register for a weekend Health Hackathon? Anyway, I could soon be up to my ears in it. A pubmed search on Health Hack...

Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Thursday, August 23, 2012

Progress on Plone 4.0 & Python Programming & the Postdam Institute

I had set myself the task of learning Python programming so I could better understand the Plone content management system, but I have not progressed that much. I installed Plone 4.0 on my Ubuntu machine and things are going well, but I have not given much time to it.  I did learn something about Plone 4.0 that fascinated me - the website for the Postdam Institute for Climate Impact Research. This website had a database that was over 16 gigabytes of data and files. Now that is astronomically larger than anything I have used. It make me think of the MyOscar Personal Health Record, parts of which was programmed using Plone. Being able to handle databases with that "memory footprint" is beautiful.  I'll just paste in here some of the data about the Plone 4.0 capacity to handle large databases:


Real-world numbers

But enough talk, how does this actually affect your site in real life? Let's take a look at a recent, real-world example from a large Plone site:
Potsdam Institute For Climate Impact Research had a 16.5 GB database containing documents and other media:
  • Upgrading the entire site to the new, filesystem-based storage: 51 minutes.
  • Plone database size: reduced from 16.5 GB to 3.0 GB.
  • Memory footprint on the heavily cached server:  reduced from 10 GB to 3 GB.
  • Load on the site while in heavy use: reduced to 10-20% of the previous CPU usage, with no intermittent massive spikes, as had been the case with Plone 3.
  • File transfers were faster, with no discernable increase in memory usage while large documents were being downloaded.
Plone 4's new large files implementation has been field tested on large production installations during the beta process, and we're confident you'll find that Plone 4 delivers massive performance and resource usage improvements on sites with multi-gigabyte data stores.

Sunday, April 29, 2012

Progress on Python Programming for Plone

I am trying at least to learn some Python programming, because it is the main programming behind the Plone content management system.  I have been given a site to manage and I would ideally like to extend the capability of the site, beyond just designing content using the built in CSS.  I am up to exercise 19 on the Python hard programming site.  I am more used to programming in Coldfusion and PHP but what I want to do with CF or PHP I have no clue right now with Plone or Python.  I just want to learn how to do some simple CRUD (create, read, update, delete) in Plone and Python.  If anyone knows how to do this, please let me know. I would like to start with uploading a CSV file exported from an Access database, then displaying the content in an edit/update form in Plone.  I learned how to create a feedback form in Plone, which was a fairly simple built in module, but I have not found out yet how to create a form creation utility through Zope.  I also don't have command line access to the Plone site, and have to work through an administration that charges by the hour for the service, so I need to get that right.  I have searched the internet for CRUD documentation on Plone, but the documentation is not easy to read or understand, so I am not sure if I need an Archetype or ContentMirror, or whatever.  But just now I googled "CRUD Python" and got an interesting result - < here >  The more I see this the more I miss CPANEL, PHPMyAdmin, or CFAdministrator and Dreamweaver.

Friday, April 13, 2012

Online Learning Courses

I first signed up for a Standford University course on artificial intelligence. Took one of the courses and found it was actually a bit difficulty. Not sure what the other 200,000 people who took it, and completed it ( I didn't), thought. Next, I signed up to take a course from udacity (Standford again) on progamming the robotic car, but that class time conflicted with something called my job. These courses are interesting, but today I found out that my university library, in the multi-media centre, has a subscription and dedicated computer with an IP link to lynda.com where there are all kinds of software tutorials. As I am still trying to learn enough Python to run an application at that place called my job, this might be very useful. Programming a robotic car might be more fun, but for now, I am going let other people do that. In fact though, the prerequiste for programming the robotic car is knowledge of Python!
You should either already know Python, or have enough experience with another language to be confident you can pick up what you need on your own. Fortunately, Python was built to be easy to learn, read, and use. If you already know another programming language, you'll be coding in Python in less than an hour. Additionally, knowledge of probability and linear algebra will be helpful.

Python Review
Python for Programmers Introduction to Programs Data Types and Variables Python Lists For Loops in Python While Loops in Python Writing a Simple Factorial Program Fun with Strings
Probability
Basic Probability Probability (Part 6) [Conditional Probability] Probability (Part 7) [Bayes' Rule] Probability (Part 8) [More Bayes' Rule] Introduction to Random Variables Probability Density Functions Expected Value: E(X)
Linear Algebra
Introduction to Matrices Matrix Multiplication (Part 1) Matrix Multiplication (Part 2) Inverse Matrix (Part 1) Inverting Matrices (Part 2) Inverting Matrices (Part 3) Matrices to Solve a System of Equations Singular Matrices Introduction to Vectors Vector Dot Product and Vector Length Defining the Angle Between Vectors Cross Product Introduction Matrix Vector Products Linear Transformations as Matrix Vector Products Linear Transformation Examples: Scaling and Reflections Linear Transformation Examples: Rotations in R2 Introduction to Projections Exploring the Solution Set of Ax = b Transpose of a Matrix 3x3 Determinant Introduction to Eigenvalues and Eigenvectors