Permalink
Browse files

streamlines upcoming trainings

  • Loading branch information...
1 parent c976466 commit 2e36990b32a495116666ccf8aeb4dc0a174f206c @anandology committed Aug 27, 2012
View
@@ -1,2 +1,3 @@
_site
*~
+*#
View
@@ -1,8 +1,11 @@
-build:
+build: includes
jekyll
-server:
+includes:
+ cd _includes && make
+
+server: includes
jekyll --server 8080
push:
View
@@ -0,0 +1,3 @@
+
+all:
+ python src/upcoming.py
View
@@ -0,0 +1,22 @@
+
+Anand Chitipothu is a passionate programmer with more than 10 years of experience.
+He has experience ranging from building [rich desktop applications][avadis] to scaling
+[high-traffic websites][ol], writing high-performance scientific tools
+to modern [proxy servers][liveweb].
+
+Anand has offered Python training to various corporates, conducted
+Python workshops at various colleges, [spoke at][spoken] various tech conferences.
+
+Anand conducts public traning classes in Bangalore on a semi-regular basis.
+
+Anand is co-author and current maintainer of [web.py][], a web framework in Python.
+
+He is currently employed by [Internet Archive][ia].
+
+[avadis]: http://strandls.com/Avadis
+[ol]: http://openlibrary.org/
+[ia]: http://archive.org/
+[liveweb]: http://liveweb.readthedocs.org/
+[web.py]: http://webpy.org/
+[spoken]: http://lanyrd.com/profile/anandology/sessions/
+
View
@@ -0,0 +1,2 @@
+
+For more information, please contact me at <a href='#contact/anandology' class='contact'><span class='x'>anand</span><span class='y'>foo</span><span class='x'>ology@gm</span><span class='y'>bar</span><span class='x'>ail.com</span></a>.
@@ -0,0 +1,9 @@
+{% if upcoming %}
+
+# Registration
+
+Next course is scheduled on [**{{ dates }}**]({{ doattend_url }}).
+
+<a href='{{ doattend_url }}'><img src='http://doattend.com/assets/btnw-reg-now.png'/></a>
+
+{% endif %}
@@ -0,0 +1,18 @@
+{% if courses %}
+ <div class="promo">
+ <h2 class="promo-title">Upcoming Public Trainings</h2>
+ {% for course in courses %}
+ <div class="promo-item">
+ <a href="{{ course['url'] }}">{{ course['name'] }}</a>
+ <p class="meta" style="color: #555;">{{ course['dates'] }} &#8211; Bangalore</p>
+
+ <div>
+ {{ course['description'] }} [<a href="{{ course['url'] }}">read more ...</a>]
+ <br/>
+ <br/>
+ <a href="http://{{ course['doattend'] }}.doattend.com/"><img src='http://doattend.com/assets/btnw-reg-now.png'/></a>
+ </div>
+ </div>
+ {% endfor %}
+ </div>
+{% endif %}
View
@@ -0,0 +1,56 @@
+"""Script to generate upcoming training pages.
+
+This should be executed from _includes/ directory.
+"""
+import os
+
+import yaml
+from jinja2 import Template
+
+SOURCE = "upcoming.yml"
+TEMPLATE_ROOT = "src/templates"
+
+def parse_upcoming():
+ d = yaml.load(open(SOURCE).read())
+ upcoming = d.pop('upcoming')
+
+ for key in d:
+ course = d[key]
+ course['key'] = key
+ course['upcoming'] = key in upcoming
+
+ course['url'] = "/trainings/%s.html" % key
+ course['doattend_url'] = "http://%s.doattend.com/" % course['doattend']
+
+ courses = d
+ upcoming_courses = [courses[key] for key in upcoming]
+
+ return courses, upcoming_courses
+
+def render_template(_name, **vars):
+ path = os.path.join(TEMPLATE_ROOT, _name)
+ t = Template(open(path).read())
+ return t.render(**vars)
+
+def write_registration_page(course):
+ content = render_template("registration.html", **course)
+
+ os.system("mkdir -p register")
+ with open("register/%s.md" % course['key'], 'w') as f:
+ f.write(content)
+
+def main():
+ courses, upcoming_courses = parse_upcoming()
+
+ with open("upcoming.html", "w") as f:
+ f.write(render_template("upcoming.html", courses=upcoming_courses))
+
+ for c in courses.values():
+ write_registration_page(c)
+
+
+if __name__ == "__main__":
+ main()
+
+
+
View
@@ -0,0 +1,39 @@
+
+python:
+ key: python
+ name: Python Programming
+ dates: Sometime in december?
+ doattend:
+ description:
+ Hands-on course on introduction to Python programming language.
+ long-description:
+ Two day hands-on course on Python programming language. This course
+ covers basics of Python programming language with an emphasis on practical
+ applications.
+
+ This course assumes that the participants are already familiar with some
+ programming language. Prior exposure to Python is not required.
+
+advanced-python:
+ key: advanced_python
+ name: Advanced Python Programming
+ dates: October 6-7, 2012
+ doattend: advancedpython
+ description:
+ Hands-on course on advanced features of Python programming language.
+ long-description:
+
+
+httpbottomup:
+ key: httpbottomup
+ name: HTTP Bottom Up
+ dates: November 3-4, 2012
+ doattend: httpbottomup
+ description:
+ Hands-on course to understand the fundamentals of World Wide Web
+ and building web applications in a bottom-up approach.
+
+upcoming:
+ - advanced-python
+ #- httpbottomup
+
View
@@ -10,7 +10,7 @@ Hi, I'm Anand Chitipothu. I live in Bangalore, India.
I work for [Internet Archive][ia], a non-profit digital library offering access to [millions of free books][ol], movies, and audio files, plus an [archive of 170+ billion web pages][wb].
-I conduct [public training classes](/trainings/) in Bagnalore on a semi-regular basis.
+I conduct [public training classes](/trainings/) in Bangalore on a semi-regular basis.
You can contact me at
<a href="#contact/anandology" class="contact"><span class="x">anand</span><span class="y">foo</span><span class="x">ology@gm</span><span class="y">bar</span><span class="x">ail.com</span></a>.
@@ -0,0 +1,56 @@
+---
+layout: page
+title: Trainings
+---
+
+# Advanced Python Programming
+
+Two day hands-on course on advanced features of Python programming language.
+
+This course assumes that the participants already have good experience with Python.
+
+[1]: http://anandology.com/python-practice-book/
+
+**Syllabus:**
+
+**1. Warm up**
+
+Review of Python programming language. Topics covered are lists, dictionaries,
+list comprehensions, modules.
+
+**2. Iterators and Generators**
+
+Introduction to Iterators, generators and generator expressions with emphesis
+on working with large data and how these techiques help code more readable.
+
+**3. Functional Programming**
+
+Covers recursion, higher order functions and decorators.
+
+**4. Deeper look at classes and objects**
+
+Understaing classes and objects at a deeper level. Covers old-style and
+new-style classes, static methods, class methods, special methods for operator
+overloading, meta classes, slots, descriptors etc.
+
+**5. Writing Python Libraries**
+
+Covers best practices of writing, documenting, testing and distributing python libraries.
+
+## Prerequisites
+
+All participants must come with a laptop to the course. The participants are
+expected to try examples and solve exercises in the class.
+
+The laptop should have Python 2.7 installed in it.
+
+{% include register/advanced-python.md %}
+
+## About the Instructor
+
+{% include bio.md %}
+
+## Contact
+
+{% include contact.md %}
+
View
@@ -0,0 +1,59 @@
+---
+layout: page
+title: Trainings
+---
+
+<h1>Trainings</h1>
+
+<p>I offer the following public training classes in Bangalore in semi-regular basis. Please look at the <a href="/">home page</a> for upcoming trainings.
+</p>
+
+<p>
+I also offer on-site tranings for corporate companies. Please <a class="contact"
+href="#contact/anandology">write to me</a> if you have a requirement.
+</p>
+
+<h2><a href="python.html">Python Programming</a></h2>
+
+<p>
+Two day hands-on course on Python programming language. This course covers basics of Python programming language with an emphasis on practical applications.
+</p>
+
+<p>
+This course assumes that the participants are already familiar with
+some programming language. Prior exposure to Python is not required.
+<a href="python.html">More info...</a>
+</p>
+
+<h2><a href="advanced-python.html">Advanced Python Programming</a></h2>
+
+<p>
+Two day hands-on course on advanced features of Python programming language.
+</p>
+
+<p>
+This course assumes that the participants already have good experience with Python.
+</p>
+<p>
+<a href="advanced-python.html">More info...</a>
+</p>
+
+<h2>Subscribe</h2>
+
+<p>
+Sign up to be notified about upcoming trainings.
+</p>
+
+<p>
+<form action="http://anandology.us5.list-manage2.com/subscribe/post?u=0d506c94f93f39dedd6684eb4&amp;id=44e9049899" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
+<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required/>
+<input type="submit" value="Sign up" name="subscribe" id="mc-embedded-subscribe" class="button"/>
+</form>
+</p>
+
+<h2>Contact</h2>
+
+<p>
+{% include contact.md %}
+</p>
+
View
@@ -1,24 +0,0 @@
----
-layout: page
-title: Trainings
----
-
-# Trainings
-
-I offer the following public training classes in Bangalore in semi-regular basis. Please look at the [home page](/) for upcoming trainings.
-
-I also offer on-site tranings for corporate companies. Please <a class="contact"
-href="#contact/anandology">write to me</a> if you have a requirement.
-
-<a class="anchor" name="python">&nbsp;</a>
-## Python Programming
-
-Two day hands-on course on Python programming language. This course covers basics of Python programming language with an emphasis on practical applications.
-
-This course assumes that the participants are already familiar with
-some programming language. Prior exposure to Python is not required. [More info...](python.html)
-
-## Contact
-
-For more information, please contact me at
-<a href="#contact/anandology" class="contact"><span class="x">anand</span><span class="y">foo</span><span class="x">ology@gm</span><span class="y">bar</span><span class="x">ail.com</span></a>.
View
@@ -48,6 +48,8 @@ virtualenv.
Introduction to automated testing using unitest and doctest modules.
+{% include register/python.md %}
+
## Prerequisites
All participants must come with a laptop to the course. The participants are expected to try examples and solve exercises in the class.
@@ -56,34 +58,8 @@ The laptop should have Python 2.7 installed in it.
## About the Instructor
-Anand Chitipothu is an experienced programmer, well known in the [geek
-community][hg] in Bangalore. He has vast programming experience
-ranging from building [desktop applications][avadis] to scaling
-[high-traffic websites][ol], writing high-performance scientific tools
-to modern [proxy servers][liveweb].
-
-Anand has offered Python training to various corporates, conducted
-Python workshops at various colleges, spoke at various tech conferences.
-
-Anand conducts public traning classes in Bangalore on a semi-regular basis.
-
-Anand is co-author and current maintainer of [web.py][], a web framework in Python.
-
-He is currently employed by [Internet Archive][ia].
-
-[hg]: http://hasgeek.com/
-[avadis]: http://strandls.com/Avadis
-[ol]: http://openlibrary.org/
-[ia]: http://archive.org/
-[liveweb]: http://liveweb.readthedocs.org/
-[web.py]: http://webpy.org/
-
-## Registration
-
-Next course is scheduled on [**August 4-5, 2012**](http://py.doattend.com/).
-
-<a href='http://py.doattend.com'><img src='http://doattend.com/assets/btnw-reg-now.png'/></a>
+{% include bio.md %}
## Contact
-For more information, please contact me at <a href='#contact/anandology' class='contact'><span class='x'>anand</span><span class='y'>foo</span><span class='x'>ology@gm</span><span class='y'>bar</span><span class='x'>ail.com</span></a>.
+{% include contact.md %}

0 comments on commit 2e36990

Please sign in to comment.