Iron Blogger Hamburg #bchh13

Blogs und Bier? Das lob' ich mir! #ironbloggerhh #bchh // 15.11.2013


Presentation of the Iron Blogger Hamburg at Barcamp Hamburg 2013.

Transcript of Iron Blogger Hamburg #bchh13

Page 1: Iron Blogger Hamburg #bchh13

Blogs und Bier? Das lob' ich mir! #ironbloggerhh

#bchh // 15.11.2013

Page 2: Iron Blogger Hamburg #bchh13


carolinn hasenfarm kommanderkat moeffju

Page 3: Iron Blogger Hamburg #bchh13
Page 4: Iron Blogger Hamburg #bchh13

#ironblogger://wie alles anfing

Benjamin Mako Hill2011 Boston, USA

Because you you should blog more.

Because there’s no motivation like peer pressure.

Because doing things for beer is never a bad idea.

Page 5: Iron Blogger Hamburg #bchh13

://HamburgJanuar 201375 Iron Blogger_innen 40 Aktive 5.840 Beiträgeø 126 pro Woche

Page 6: Iron Blogger Hamburg #bchh13

://Hamburg2 Treffen bisherNächster Termin:04.12.Aktueller Kassenstand: 230 €

Page 7: Iron Blogger Hamburg #bchh13

Spenden85€ Opferhilfe Hamburg150€ Kinderhospiz Sternenbrücke

Page 8: Iron Blogger Hamburg #bchh13
Page 9: Iron Blogger Hamburg #bchh13
Page 10: Iron Blogger Hamburg #bchh13
Page 11: Iron Blogger Hamburg #bchh13

#ironblogger://Technik im Moment

4 Python SkripteDatenhaltung in git Ausführung über cronAbrechnung in ledgerWochenpost über XML-RPC

Page 12: Iron Blogger Hamburg #bchh13
Page 13: Iron Blogger Hamburg #bchh13
Page 14: Iron Blogger Hamburg #bchh13
Page 15: Iron Blogger Hamburg #bchh13
Page 16: Iron Blogger Hamburg #bchh13
Page 17: Iron Blogger Hamburg #bchh13
Page 18: Iron Blogger Hamburg #bchh13

#!/usr/bin/env pythonimport yamlimport feedparserimport datetimeimport sysimport osfrom dateutil.parser import parseimport as tzimport settings


with open('bloggers.yml') as f: users = yaml.safe_load(

if not os.path.exists('out'): os.makedirs('out')try: with open('out/report.yml') as f: log = yaml.safe_load( IOError: log = {}

START = datetime.datetime.strptime(config['start_date'],'%Y/%m/%d')

def parse_published(pub): try: return parse(pub).astimezone(tz.tzlocal()).replace(tzinfo=None) except: return parse(pub).replace(tzinfo=None)def get_date(post): for k in ('published', 'created', 'updated'): if k in post: return post[k] raise ValueError

Page 19: Iron Blogger Hamburg #bchh13

def render_template(path, week=None, **kwargs): with open('out/report.yml') as r: report = yaml.safe_load(r)

with open('bloggers.yml') as f: users = yaml.safe_load(f) if week: week = parse(week, default=START) else: week = START

week = (week - START).days / 7 week_start = START + (week * datetime.timedelta(7)) week_end = START + ((week + 1) * datetime.timedelta(7))

good = [] lame = [] skip = [] skipped_users = [] userlist = [] punted = []

class User(object): pass

for (un, rec) in users.items(): u = User() u.username = un = rec['name'] u.links = rec['links'] u.twitter = rec.get('twitter') u.start_de = datetime.datetime.strptime(rec['start'], "%Y/%m/%d").strftime("%d.%m.%Y") u.start = rec['start'] u.end = rec.get('end') u.punt = rec.get('punt') u.stop = rec.get('stop') u.skip = parse_skip(rec) u.weeks = report.get(un, [])


# create a subset of punted users if u.punt: punted.append(u)

def user_key(u): return (u.start, u.username)

userlist.sort(key=user_key) punted.sort(key=user_key)

for u in userlist: user_start = parse(u.start, default=START) if u.stop: continue try: if u.end and u.end <= week_start: continue except Exception as e: pass try: if u.end and parse(u.end, default=START) <= week_start: continue except Exception as e: pass

if should_skip(u.skip, week): skipped_users.append(u) elif user_start > week_start: skip.append(u) elif len(u.weeks) <= week or not u.weeks[week]: lame.append(u) else: good.append(u)

debts = get_debts()

return Template(filename=path, output_encoding='utf-8').render( week=week, week_start=week_start, week_end=week_end, good=good, lame=lame, skip=skip, skipped_users=skipped_users, userlist=userlist, pool=(get_balance('Pool') - get_balance('Event')), paid=get_balance('Pool:Paid'), event=get_balance('Pool:Event'), cgi=cgi, debts=debts, punted=punted, **kwargs)

Page 20: Iron Blogger Hamburg #bchh13
Page 21: Iron Blogger Hamburg #bchh13
Page 22: Iron Blogger Hamburg #bchh13


Page 23: Iron Blogger Hamburg #bchh13

#ironblogger://Next Level?

Page 24: Iron Blogger Hamburg #bchh13


@kommanderkat @carolinn@hasenfarm@moeffju

Page 25: Iron Blogger Hamburg #bchh13
Page 26: Iron Blogger Hamburg #bchh13


● Mako Hill by Joi Ito (CC-BY)

● Ironblogger Logos - Inken Meyer● Foto Ironblogger Treffen Hamburg - Steffen Groenveld● Foto Ironblogger Treffen Stuttgart - Ute Mündlein● Cat with Beer by swardraws

com/photos/swardraws/1344472184 ● Alle Tag Clouds made with love and