Schlagwort: Fotos

  • Texas Jailhouse Chili 2014

    Texas Jailhouse Chili 2014

    Es war wieder soweit, es wurde das jährliche, rituelle „Texas Jailhouse Chili“-Essen zubereitet und verspiesen.

    Ich denke, dass dank den beigefügten „Trinidad Scorpion Butch T pepper“ dieses Jahr ein neuer Scoville-Rekord aufgestellt wurde – jedenfalls fühlte es sich so an 😳

    Nachfolgend einige Impressionen:

    Für das Rezept und Infos vom 2012er-Event klickt folgenden Link an: http://qoo.li/2012/12/texas-jailhouse-chili/

  • Fiescheralp, Egishorn, Aletschgletscher, Riederalp, Moosfluh und Bettmeralp

    Fiescheralp, Egishorn, Aletschgletscher, Riederalp, Moosfluh und Bettmeralp

    Letztes Wochende war ich mit meiner Familie im Wallis und wir machten (mal wieder) einen Ausflug in die „Aletsch Arena“ und zum Aletschgletscher.

    Hier einige Impressionen:

    Weitere Bilder findet ihr auf meiner dedizierten Fotografie-Seite: http://schielke.ch/galleries/aletschgletscher-und-aletsch-arena/

  • Canon EF 70-200mm f/2.8L IS II USM mit 2x Extender

    Canon EF 70-200mm f/2.8L IS II USM mit 2x Extender

    Konnte letzthin das Canon EF 70-200mm f/2.8L IS II USM mit dem Canon 2x Extender (III) kombiniert testen.

    Tolles Objektiv welches auch in der Kombination mit dem Extender noch eine sehr gute Bildqualität liefert, auch wenn natürlich der Autofokus mit dem Extender langsamer wird und die grösste Blende auf 5.6 „herunterrutscht“. Aber für mich nicht tragisch und und ein praktischer Ersatz für ein „Canon EF 400mm f/5.6L USM“.

    Nachfolgend einige Impressionen:

  • Feeds parsen und schreiben mit Python

    Ich hatte letzthin das Problem, dass ich auf meiner neuen Fotografie-Seite einen Feed meiner letzten iStockphoto-Uploads einbinden wollte, aber dies nicht ging, da der offizielle Feed scheinbar nicht validiert:
    http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.istockphoto.com%2Fistock_myfiles_rss.php%3FID%3D8197370

    Auf WordPress verwendete ich zuerst das „Embed RSS„-Plugin um Feeds in die Seite zu integrieren, jedoch kam dies nicht mit diesem ungültigen Feed klar. Einige RSS-Reader-Programme (z.B. „Vienna RSS„) hatten jedoch keine Probleme mit dem Feed. Vermutlich korrigierten sie intern die Fehler oder ignorierten diese einfach.

    Zum Glück hat mich einmal ein guter Freund in die Welt von Python eingeführt und mir die nötigen Basics dieser tollen Programmiersprache beigebracht.

    Mit Hilfe der Bibliotheken „feedparser“ und „PyRSS2Gen“ konnte ich ein Python-Skript schreiben um dieses Problem umgehen.

    Zuerst hole ich mit feedparser den Feed ab und baue später mit PyRSS2Gen einen neuen Feed im „RSS 2.0“-Format neu auf. Abschliessend schreibe ich diesen neuen Feed als XML-Datei in das Verzeichnis des Webservers.

    Das Skript habe ich so umgebaut, dass eine beliebige iStockphoto-Benutzer-ID als Parameter übergeben werden kann. Auch die Ziel-Datei kann als Paramter übergeben werden.

    Hier das Skript, welches in einem Repository auf Github gehosted ist:

    #!/usr/bin/python
    
    import datetime
    import feedparser
    import getopt
    import os
    import PyRSS2Gen
    import sys
    
    def create_latest_uploads_feed(targetPath, feedTitle, feedUrl, feedDescription, entries):
      rssItems = []
      for entry in entries:
        rssItem = PyRSS2Gen.RSSItem(
            title = entry['title'],
            link = entry['link'],
            description = entry['description'],
            guid = PyRSS2Gen.Guid(entry['link']),
            pubDate = entry['pubDate'],
            author = entry['author']
            )
        rssItems.append(rssItem)
      rss = PyRSS2Gen.RSS2(
          title = feedTitle,
          link = feedUrl,
          description = feedDescription,
          lastBuildDate = datetime.datetime.now(),
          items = rssItems)
      print 'Writing RSS feed: ' + targetPath
      rss.write_xml(open(targetPath, 'w'))
      print 'Done!'
    
    
    def fetch_feed_and_create_rss(userId, targetPath):
      feedUrl = "http://www.istockphoto.com/istock_myfiles_rss.php?ID=" + userId
      print 'Fetching feed: ' + feedUrl
      feed = feedparser.parse(feedUrl)
      feedTitle = feed['feed']['title']
      feedDescription = ""
      entries = feed['entries']
      preparedEntries = []
      print 'Processing fetched entries. Entries found: ' + str(len(entries))
      for entry in entries:
        entryPubDate = entry['published']
        pubDate = datetime.datetime.strptime(entryPubDate[:-6], '%Y-%m-%dT%H:%M:%S')
        #pubDateClean = pubDate.strftime('%d.%m.%Y')
        author = entry['author']
        entryTitle = entry['title']
        print ' * Entry title: ' + entryTitle.encode('utf-8')
        link = entry['link']
        summaryHtml = entry['summary']
        preparedEntries.append({"pubDate":pubDate,"author":author,"title":entryTitle,
          "description":summaryHtml,"link":link})
      create_latest_uploads_feed(targetPath, feedTitle, feedUrl, feedDescription,
          preparedEntries)
    
    def main(argv):
      scriptName = os.path.basename(__file__)
      usageInfo = 'usage: ' + scriptName + ' -i  -t '
      userId = ''
      targetPath = ''
      try:
        opts, args = getopt.getopt(argv,"hi:t:",["id=","targetpath="])
      except getopt.GetoptError:
        print usageInfo
        sys.exit(2)
      for opt, arg in opts:
        if opt == '-h':
          print usageInfo
          sys.exit()
        elif opt in ("-i", "--id"):
          userId = arg
        elif opt in ("-t", "--targetpath"):
          targetPath = arg
      if (userId and targetPath):
        print 'User ID is: ' + userId
        print 'Target path is: ' + targetPath
        fetch_feed_and_create_rss(userId, targetPath)
      else:
        print usageInfo
        sys.exit()
    
    
    if __name__ == "__main__":
      main(sys.argv[1:])
    
    istock_latest_uploads.pyview rawview file on GitHub

    Genau genommen validiert der neue Feed immer noch nicht 🙂 allerdings sind die Fehler nun scheinbar weniger tragisch und er kann nun von „Embed RSS“ gelesen werden. Auch verwende ich nun zur Einbettung in WordPress „HungryFEED“ anstelle von „Embed RSS“, da dieses etwas mächtiger ist und bessere Templating-Option mitbringt.

    Damit ich für die Webseite immer einen relativ aktuellen Feed erhalte, lasse ich das Skript mittels Crontab alle vier Stunden laufen:

    #m h dom mon dow command
    0 */4 * * * python /usr/local/bin/scriptXy.py -i 8197370 -t /dir/subdir/targetfile.xml
  • Fotografie-Seite überarbeitet

    FotografieIch habe meine „Fotografie„-Seite nun überarbeitet und mit der Hintergrund-Geschichte zu meinem Hobby versehen. Ausserdem wird auch meine aktuelle Foto-Ausrüstung augeführt und etwas über Stock-Fotografie berichtet.

    Ihr findet die Seite hier:
    http://qoo.li/fotografie

  • iStock Photo: Meine Fotos auf istockphoto.com

    Vor einigen Monaten habe ich mich bei „iStock Photo“ (gehört mittlerweile zu Getty) beworben und nach dem ausfüllen eines kurzen Testes und dem hochladen von für sie akzeptablen Beispielmaterial haben sie mich auch als Contributor aufgenommen.

    Werde nun testen, ob es sich lohnt Fotos hochzuladen, um nebenbei noch einen kleinen finanziellen Zustupf zu erhalten. Shutterstock ist sicher auch eine gute Alternative, die gemäss einigen Testern lukrativer sein sollte (Gewinn pro hochgeladene Fotos und auch mehr Verkäufe im gleichen Zeitraum). Aber mal schauen, wie sich das bei iStock entwickelt und möchte im Moment nicht auf zu vielen Hochzeiten tanzen.

    Viele Fotos habe ich noch nicht hochgeladen und von diesen wurden auch  nur etwas mehr als 50% für ihren Katalog akzeptiert. Zumindest ein Bild konnte ich bereits verkaufen.. jippie! 🙂

    Hier könnt ihr meine bisherig akzeptierten Fotografien begutachten: http://www.istockphoto.com/search/lightbox/12245257#5c7a541