Archive for the ‘Flickr’ Category

Hey Flickr, Where Did My Statistics Go? The CouchBase Connection. Part III   1 comment

This is the third post in this series on how to harvest statistical data from your (or a friend’s) Flickr Picture View
data.  The series begins
here.  Today we are looking at CouchBase as a noSQL database to store our Flickr data.  This post will get as far as getting the shell of a console application up and will defer example code samples for the next blog post.


CouchBase  iscouchbase a commercialized version of the public domain project
Apache CouchDB.  CouchDB is open source and CouchBase is not.  Both support API libraries for .Net and Java.  Commercial development with CouchBase is NOT free.  The CouchDB wiki lists five active C# libraries for CouchDB.  CouchBase supports a many API libraries including .Net and Java.  I have written about CouchDB and Ruby in a prior series of posts which can be found here. Both systems support multi-server nodes and concurrency controls.  Neither of these features will be touched on in the post.  Our focus here will be on an introduction to the minimum necessary administration skills and API coding to help us with our goal of storing information about Users, Photos and View Counts through time.  Along the way we will also discuss JSON Serialization / Deserialization using Newtonsoft.JSON, open source application Logging with NLog.  I will defer the discussion of CouchBase views for a subsequent post.

Data Model Overview.

Ultimately we want to store information about each User. For each user we will store information for one or more Photo and for each Photo, information on one or more View Counts.  Users and Photos have their own Primary Key, supplied as an ID field from Flickr.  Our view counts will be collected each day and the Primary Key of the Counts is represented by the date the view count data was collected.  This could be modeled into a traditional RDBMS in third normal form, but this pattern is also most naturally represented as a nesting of lists of objects within container objects.  Rather than say we are storing nested objects it is more typical today to say that this data can be thought of as a structured Document.  The most natural way to store and access this data is by simple (or compounds of ) primary keys.  When we get to the point where we are doing manipulation of the data for statistical analysis and summary our most natural mode of access will be by a key composed of the User ID and Photo ID and iterating there view counts by Date ID (or Date ID range).  A very simple way to model this is with a Key / Value noSQL database based on document storage (aka a Document Store).  We could call this design an object oriented database model but that would be old fashion.  Here is the visual of the data model:image

The full Document could be represented as a compound C# object:

   class CObject
{
public CUser User { get; set; }
public List<CPhoto> Photo { get; set; }
}

public class CUser
{
public string FullName { get; set; }
public string Username { get; set; }
public string UserId { get; set; }
public string APIKey { get; set; }
public string SharedSecret { get; set; }
public string Token { get; set; }
public string TokenSecret { get; set; }

}

public class CPhoto
{
public string ID { get; set; }
public string Title { get; set; }
public string ThumbnailURL { get; set; }
public List<CView> Views { get; set; }
}

public class CView
{
public string Date { get; set; }
public int Views { get; set; }
}

In this post we will setup a single server CouchBase instance and develop a single user application to manipulate documents in a CouchBase “bucket”.  We will not model the complete object in this post but deal with a simplified version of Photo Object while we get our feet wet on CouchBase CRUD operations and simple CouchBase server Administration.  To make things as simple as possible, for this post, we will be working only with a modified version of the CPhoto object (Document).

cropped-2001spaceodyssey025

Getting The Stuff You Need.

Shopping List

Setting up a single node Windows CouchBase Server simple and basic administration is easy and fun. Download and run the installation of CouchBase from here. Fred willing all will go well and you will be placed at local page in your default browser. Bookmark this page and note the Port Number that has been assigned to the default instance of CouchBase.  On first use you will need to create an administrator Username and Password. I left the defaults alone for the Cluster and Server Nodes. Select the Tab Data Buckets.  You will need to decrease the Quota Usage limits for the default Bucket.  With the space you freed up, create a new Bucket called “DLR.Flickr.Example1” .  Here is what mine looks like:

 image

And Here is the Bucket Settings Page:

image

OK.  Now take some time and review the documentation for the .Net SDK here.  You can read through or code along with the examples given there. Done? Now let’s get to work.

Starting to Code CouchBase

Open Visual Studio and select Tools/NuGet Package Manager/Package Manager Console and enter the command:

Install-Package CouchbaseNetClient

Create a new Visual Studio Console application.  I called mine:

DLR.CCDB.ConsoleApp and set the default namespace to DLR.CCDB.  Add references to:

Couchbase

Enyim.Memcached

Newtonsoft.Json

[ If you can not resolve Newtonsoft.Json:  Right click on the root of the project and select: Manage NuGet Packages.  Search on Newtonsoft.Json.  Select Install on JSON.Net.  Now try adding the Newtonsoft reference again.]

Now is a good time to add the open source Logging solution to your project.  Select: Manage NuGet Packages.  Search on NLOG. Install both  NLog and NLog Configuration.

Open your App.Config project file.  You will need to make several changes.  Here is what mine looks like after the changes.

Red items are added manually by me (you) and the Blue entries are added by the NuGet Package manager during the sets you followed above.

<!–?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<configSections>
Couchbase.Configuration.CouchbaseClientSection, Couchbase” />
</configSections>
<couchbase>
<servers bucket=”DLR.Flickr.Example1″ bucketPassword=””>
uri=”
http://127.0.0.1:8091/pools” />
</servers>
</couchbase>
    <startup>
<supportedRuntime version=”v4.0″ sku=”.NETFramework,Version=v4.5″ />
</startup>
<runtime>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Newtonsoft.Json” publicKeyToken=”30ad4fe6b2a6aeed” culture=”neutral” />
<bindingRedirect oldVersion=”0.0.0.0-6.0.0.0″ newVersion=”6.0.0.0″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”Enyim.Caching” publicKeyToken=”05e9c6b5a9ec94c2″ culture=”neutral” />
<bindingRedirect oldVersion=”0.0.0.0-1.3.7.0″ newVersion=”1.3.7.0″ />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name=”NLog” publicKeyToken=”5120e14c03d0593c” culture=”neutral” />
<bindingRedirect oldVersion=”0.0.0.0-3.1.0.0″ newVersion=”3.1.0.0″ />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

We are most interested in this section:

<servers bucket=”DLR.Flickr.Example1″ bucketPassword=””>
uri=”
http://127.0.0.1:8091/pools” />
</servers>

 

bucket=”DLR.Flickr.Example1″

This sets your default API calls to the bucket “DLR.Flickr.Example1” which you created above.  Although we will not develop the theme here you can override the default bucket during runtime to deal with calls to multiple buckets in the same program.

uri=”http://127.0.0.1:8091/pools

This sets your local node. the http://127.0.0.1 is a constant for development projects (localhost) and the 8091 is the port assigned to CouchBase during installation (double check this value on your system by navigating to the CouchBase Console page you added to your favorites list above.

While we are here let’s make some changes (without explanation why at this point) in NLog.Config (which was created when you installed NLog above).  Replace the entire contents of the file with (mind the wrap):

<!–?xml version=”1.0″ encoding=”utf-8″ ?>
<nlog xmlns=”
http://www.nlog-project.org/schemas/NLog.xsd”
      xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
      throwExceptions=”true”
internalLogFile=”C:/temp/NLog/WEBAPI/Internal.txt”
internalLogLevel=”Info”
>
<targets>
<target name=”debugfile” xsi:type=”File” layout=”${message}”  fileName=”C:/temp/DLR.Flickr/Debug.txt” archiveNumbering=”Rolling”  archiveEvery=”Day” maxArchiveFiles=”7″ ConcurrentWrites=”true”                        />
<target name=”logfile” xsi:type=”File” layout=”${message}”    fileName=”C:/temp/DLR.Flickr/Info.txt”  archiveNumbering=”Rolling”  archiveEvery=”Day” maxArchiveFiles=”7″ ConcurrentWrites=”true”                      />
<target name=”Errorsfile” xsi:type=”File” layout=”${message}” fileName=”C:/temp/DLR.Flickr/Error.txt” archiveNumbering=”Rolling”  archiveEvery=”Day” maxArchiveFiles=”7″ ConcurrentWrites=”true”                   />
<target name=”Fatalfile” xsi:type=”File” layout=”${message}”  fileName=”C:/temp/DLR.Flickr/Fatal.txt” archiveNumbering=”Rolling”  archiveEvery=”Day” maxArchiveFiles=”7″ ConcurrentWrites=”true”                    />
</targets>
<rules>
<logger name=”*” minlevel=”Debug” maxlevel=”Debug” writeTo=”debugfile” />
<logger name=”*” minlevel=”Info” maxlevel= “Fatal” writeTo=”logfile” />
<logger name=”*” minlevel=”Error” maxlevel=”Fatal” writeTo=”Errorsfile” />
<logger name=”*” minlevel=”Fatal” maxlevel=”Fatal” writeTo=”Fatalfile” />
</rules>
</nlog>

We will get back to the details of this configuration file in the next post.

Write the minimum test code possible. 

Replace the contents of Program.cs with

using System;

using Couchbase;

using Enyim.Caching.Memcached;

using Newtonsoft.Json;

using NLog;

namespace DLR.CCDB.ConsoleApp
{

class Program
{
static void Main(string[] args)
{
CouchbaseClient client=new CouchbaseClient();

        }

    }

}

Build and run.  You should have no errors and client should not equal null after the call

CouchbaseClient client=new CouchbaseClient();

Success?  Take a break and we will continue next week.

 

Hey Flickr, Where Did My Statistics Go? OAuth, the Flickr API and You. (Part II)   1 comment

This is Part II of my series on the Flickr API and View Statistics.  You can find Part 1 here.

Assume a C# static class containing the critical information you need to identify yourself to Flickr:

public static class User{

public static string FullName {get;set;}

public static string Username {get;set;}

public static string UserId {get;set;}

public static string APIKey {get;set;}

public static string SharedSecret {get;set;}

public static string Token {get;set;}

public static string TokenSecret {get;set;}

}

Where APIKey and SharedSecret identify you (as the developer) to Flickr and Token and TokenSecret identify your relationship with the user which encodes what rights the user has granted to you.

14388202106_613a1b18f2_o

 

FlickrNet defines a C# class OAuthAccessToken as:

 public class OAuthAccessToken : IFlickrParsable
{

        public string UserId {get;set;}

        public string USername {get;set;}
public string Token { get; set; }
public string TokenSecret { get; set; }
}
}

14601596573_4bbaa2477e_o

Given the above, to get things rolling we need to populate the FlickrNet OAuthAccessToken fields from our User class, and then instantiate FlickrNet’s FlickrManager:

OAuthAccessToken o = new OAuthAccessToken();

o.Token=User.Token;

o.TokenSecret=User.TokenSecret;

o.UserId=User.UserId;

o.Username=User.Username;

FlickrNet.Flickr _F = FlickrManager.GetAuthInstance(User.APIKey, User.SharedSecret);

Now we can loop through our photos getting the number of views for each photo on the datetime of the call.  We do these with paged calls to FlickrNet’s PeopleGetPhotos:

public PhotoCollection PeopleGetPhotos(PhotoSearchExtras extras, int page, int perPage);

14528978934_61edc51d2c_o

Here is a simple loop to do so (without error checking):

int page=0;

while (true){

PhotoCollection photo = _F.PeopleGetPhotos(PhotoSearchExtras.Views, page++, 500);

     if (photo.Count == 0){ break; }

//Loop through each photo on the page:

foreach (FlickrNet.Photo p in photo)
{
//Save The Results

    SaveByID(User.UserID,p.PhotoID, p.Title, p.ThumbnailURL, p.Views); 

}

}

OK so far?  Note that in FlickrNet the Views field is defined as int? (which means that Views may contain a null) For our purposes here we will regularly convert those nulls to zeros.  The Views is not a delta but the total number of views (clicks since the photo was first posted up to the time in which the call is made).  Most of our next post will discuss one approach to collect and store views per day (or some other sample period).

ThumbnailURL can be used to retrieve the thumbnail of the image.  Note here that starting last month Flickr increased the default size of the thumbnails on new photos.  We will come back to this issue in a later post which deals with displays.  Speaking of display there is a field called LargeURL associated with each Flickr Photo object but we have had trouble working with.  Instead I will display full size images within Flickr using the formula:

https://www.flickr.com/photos/{full user name no spaces}/{photoID/in/photostream/

Example:

https://www.flickr.com/photos/dennisredfield/14588760519/

display the Flickr page for this photo.

14588760519_b7ce0afceb_o

 

Series continues here.

 

Posted 2014/07/29 by Cloud2013 in Flickr, FlickrNet, Photography

Tagged with , ,

Hey Flickr, Where Did My Statistics Go? OAuth, the Flickr API and You.   3 comments

In Yahoo’s misguided attempts to make Flickr a Phone photo sharing app like Instragram has radically redesigned the interfaces on both the desk top and on phones. Along the way they give you the option of uploading all of your phone photos directly to Flickr from your phone.  Which is nice, I guess, but Google and Microsoft and DropBox also offer the same service. I mean why would I want to dump my raw photos to Flickr when I, like most Flickr users, do our processing offline (in Photoshop for example) and post our best work to Flickr.  It would seem they are abandoning their core users (amateur photographers) to make way for the Instragram raw sewage stream of sunsets, meals and selfies.  Strange.  They are going to lose out to the Instragram / Facebook for that market and alienate the current group of core users. Is this what you want to see when you go to Flickr?  This:

selfie  Or this?  9475221248_2009bb3d34_o[1]

In order to accommodate the change Flickr, like all the big players offers a huge amount of cloud storage ‘for free’.  Something like two Gigabyte of photo storage.   Before the big changes at Flickr there was a special Flickr service “Flickr Pro” which for $29 a year got you, among other things, daily usage statistics (going back 30 days) of your photos.  Statistics were also available via the Flickr API (more on this in a moment). With the new Flickr statistics are gone and the Flickr API for statistics are also gone.

So I started digging into the existing, and still supported, Flickr API to see what was necessary to get usage statistics from Flickr for my photos using the Flickr APP.  I a C# programmer by profession so I started by looking at existing Flickr API libraries to leverage in this quest.  The godfather of C# Flickr API libraries is the FlickrNet API Library which is available in source under both the LGPL 2.1 license, and the Apache 2.0 license.

But First

This is a great and fully comprehensive library but to use it you need a couple of things to get started.  You must obtain a non-commercial personal API Key from Flickr (an application key). Apply for one here. But wait there is more.  Although the Flickr API is fairly straight forward you must, must, must, use Flickr’s implementation of OAuth with the application key to access Flickr data.  This post will be devoted to getting up and running with the Flickr API and Oauth.  Subsequent posts will discuss how to read photo view data and present a simple file database to store statistics.  Finally I will turn to using CouchDB and a Web front end to do the same work.  For this part we will switch over to Ruby and write our own simplified FLickrNet library.

OAuth

OAuth, in its many variations, is all over the place on the web these days.  Every time you see a “Sign In with…” Facebook, Google, whatever you are using OAuth in action.  You must use the Flickr OAuth implementation  to access your own data on Flickr.  It is really not all that hard although at first blush it looks impossible.  Here is Flickr’s own overview:

Simple and fun you say!

32607_alice_madness_returns

It’s not that bad when you get into it.

Using code samples provided by the folks at FlickrNet here is a simple walk through of how to setup OAuth to access your own data for a desktop application.  First we will look at it as a simple cook book approach (in C#) and then give a much simpler view of OAuth than the above diagram.  And that will be it for this post.

  • Application Key

Get an application Key and a “shared” secret from Flickr (start here).

  • Grant Access Writes for this Application Key

Get the user (that’s you to grant you access to their (your) photos.

Prepare a special HTTP  Request to Yahoo which looks like

http://www.flickr.com/services/oauth/authorize?oauth_token={hash}&perms={permsValue}

where:

{permsValue} is the access writes you are requesting to have granted to the caller

{hash} is a   Base64 encoded SHA-1 hash based on your Application Key and shared secret.  Not to worry FlickrNet handles the details for you.

Assuming you have created a FlickrManager class object (following the examples in the FlickrNet Samples Site) which includes your Application Key and shared secret the request URL is created as:

Flickr f = FlickrManager.GetInstance();  //you create this and encode your Application Key and Shared Secret into this class

requestToken = f.OAuthGetRequestToken(“oob”); //”oob” indicates that you are making a desktop request not a request from a web page

string url = f.OAuthCalculateAuthorizationUrl(requestToken.Token, AuthLevel.Read);//Request access to only what you need, in this case READ

opening this url will direct you the Yahoo login page and once logged in ask if you which to grant access for this application key to your data (photos and stuff) on Flickr.  When you answer YES Flickr will present to you on the screen (no call back as requested) an grant access key which is unique to your data and your application key.  This key is also called the“verifier” Write this down, we will use it below.

Here is what is happening in principle.  Flickr and you as the developer have a trust relationship where they grant you and application key for your use as a non-commercial developer.  The shared secret  is used as a key to encrypt messages between you (the developer) and Flickr.  This is used to request an access grant key between this application key (as a developer) and your data (as a Flickr user).  This is a one time process.

Get The OAuth Token

Each time we want to get  data back from Flickr we need to combine our Application Key, Shared secret and the access grant into a second specialized URL Get request to receive an OAUTH token which is time limited. In simple FlickrNet Code this looks like:

Flickr f = FlickrManager.GetInstance();
var accessToken = f.OAuthGetAccessToken(requestToken, verifier);
FlickrManager.OAuthToken = accessToken;

Here requestToken is a class object containing the Application Key and shared secret.  The field verifier contains the Grant Access Key we obtained above. The call to OAuthGetAccessToken builds a HTTP Get request to:

https://www.flickr.com/services/oauth/request_token?oauth_signiature={sig}

where:

seg is a SHA-1 Hash of the input parameters. Let FlickrNet handle the details for you.

Ok So Far? Here is a picture:

Picture1

 

Each data call to Flickr for data is an HTTP call and should be signed with the Application Key and the Access Object Token. Responses are returned in any of several formats of which XML and JSON are the most important.  Here is what a simple call to get photo data for a specific user (and returning XML) looks like:

https://api.flickr.com/services/rest/?method=flickr.people.getPhotos&api_key=123456789&user_id=12345&format=rest&auth_token=12345-6789&api_sig=98765

where:

api_sig is a hash of this call based on our Token Secret.  Not to worry we will use the FlickrNet assembly to generate this value.

Ok.  That’s enough for one post.  Get your Application Key from Flickr, Run the samples for FlickrNet to get your access key and generate an Access Object (OAuth Token), and in the next post we will dig in with using the Flickr API.

 

Part 2 continues here.

 

 

 

 

 

Posted 2014/07/03 by Cloud2013 in Flickr, Photography, Random Notes

Tagged with , ,

Swamp Fox: Some Photoshop Fun   Leave a comment

Three Views Of A Louisiana Swamp

8451075219_48c52cac1a_b8452166310_d17b1769cb_b

8377551283_f18d931e04_b

Cloud2013 And Mary Jo In One Photo

8413253019_079a7d0091_b

Social Photos: Transferring photos between Flickr, Facebook and Google+   1 comment

For photographers, professionals and hobbyists seeking a larger audience, FLICKR has a lot to recommend it.   According to Harold Davis:

If I conducted a survey of what people thought was the most important social media site for photographers, I bet most people would say Facebook, or maybe Twitter. But not so fast. Flickr is far and away the most important social media site for photographers—partly because it is a community aimed squarely at photographers…Using Flickr is an indispensable part of finding an audience; as photographer G. Dan Mitchell notes, “almost any photographer should have a presence there.” Landscape photographer Jeff Clow adds, “If you would have told me five years ago that I would have a large portfolio represented by Getty, I would have laughed out loud. But it has happened through the magic that I call Flickr magic.”

Simply put here are some reasons why you should use FLICKR if you want to improve the exposure of your photos and improve your photos

  • Simple Assignment of copyrights
    • Facebook’s terms and conditions states that they can use your  photos as they see fit  if you don’t have a prior copyright set on each photo.
    • Flickr makes copyright assignment simple (standard copyright: all rights reserved is the default) and allows several forms of the Creative Commons Licensing.
    • Creative Commons licensing in turn exposes your photos to the photo sharing and distribution network of Create Commons.
  • Ease of blocking right-click downloads
    • this is not the default but it is fairly straight forward to do.  Of course, the cleaver can always copy any image that is transmitted to your browser.
  • Accurate, simple GEO coding
  • Exposure your photos to other photographers
    • who may comment and critique your photos
  • Make your photos available to be reviewed by Getty Images for inclusion into their distribution network
  • Make your photos available to be search within the Creative Commons distribution network
  • Ease of uploading:
    • Browser uploading and a Flickr local client for uploading
    • Support for Flickr loading from within Adobe LightRoom and ACDSee (among others)

However, many folks like to use Facebook and Google+ for obvious social reasons and others may have commercial reasons.  What to do.  Loading photos separately to all three sites is time consuming and error prone. The problem of copy right registration remains on Facebook and Google+ unless you really want to let Mr. Zukerman make even more money of you.

Recently a new web based solution has appeared.  The site: Social Photos allows users to drag and drop photos between the three sites: Facebook, Google+ and Flickr.  I have been using the product for a few weeks and really like it.  I always post FIRST to Flickr and setup my copyrights and group. Then I use Social Photos to drag selected photos to Google+ (I have to admit that I don’t use Facebook for political reasons so I have not tried that interface but I assume it works as well as the Flickr to Google+).  Nice product, Highly recommended.

Occupy Everywhere: Resources On The World Wide Web   1 comment

It been a while since I have been able to post so here a large group of links related to speeches, analysis and social media related to Occupy Wall Street.

Occupy the Future!506294834

Online Resources:

Occupation Groups:

Occupy Wall Street –> Click Me!

Occupy Boston –> Click Me!

Occupy Together (Clearing House for smaller occupations) –> Click Me! (This is a great way to locate web sites for occupations in other than NYC)

image_1320003275

Alternative News and Analysis:

AlertNet  -> Click Me!

N+1 (New York Based Literary Journal) –> Click Me!

TruthDig –> Click Me!

NYxx,2011-10-09,Bs,,SR,4-BW

Social Media And Images:

Tumblr Sites: Here and Here

Pictures And Logos:    HereHere; Here; and  Here.

TransgenderYinYang Yoga Teachers For The Occupation:

Here; Here; Here; Hereoccupy pumpkin patch

Occupy Comedy:

Daily Show

Colbert

Analysis And Speeches:

Naomi Klein (The Shock Doctrine) has been an early and consistent support of the Occupy movement.  Her speech at the park began:

I love you.

And I didn’t just say that so that hundreds of you would shout “I love you” back, though that is obviously a bonus feature of the human microphone. Say unto others what you woOccupy-Street-300x300uld have them say unto you, only way louder.

Yesterday, one of the speakers at the labor rally said: “We found each other.” That sentiment captures the beauty of what is being created here. A wide-open space (as well as an idea so big it can’t be contained by any space) for all the people who want a better world to find each other. We are so grateful.

If there is one thing I know, it is that the 1 percent loves a crisis. When people are panicked and desperate and no one seems to know what to do, that is the ideal time to push through their wish list of pro-corporate policies: privatizing education and social security, slashing public services, getting rid of the last constraints on corporate power. Amidst the economic crisis, this is happening the world over.

And there is only one thing that can block this tactic, and fortunately, it’s a very big thing: the 99 percent. And that 99 percent is taking to the streets from Madison to Madrid to say “No. We will not pay for your crisis.” Read More…

Listen to her here  discussing her theory of the the shock doctrine.

6290733751_90dc74b1bc_z

All rights reserved by DianeSweet

 Hail The Unknown Organizer (By Charles M. Young):

Liberated Autonomous Manhattan — In a century, community organizers will still be debating what to call Zuccotti Park/Liberty Plaza/Liberty Square. The surrounding skyscrapers will be covered with luxuriant tomato vines hanging from rooftop organic gardens. Electricity will be generated by solar panels and fermenting compost. Inside, the skyscrapers will be humming with intense conversation at the Occupy Education Graduate School of Revolutionary Studies, open to anyone willing to teach everyone wanting to learn.

Visitors to the park will meander through meticulously maintained sidewalks that wind in fractals through authentic tarps and wet sleeping bags from the early 21st century. Scent generators will alternately waft herbal cigarettes, sandalwood incense and mildew into the breeze.

In the center of the park will stand a 100-foot statue, cast from the bronze of the long forgotten Wall Street bull that was melted down in 2014 and recast as a 5’1” woman in a windbreaker, waving a big red flag. On the marble pedestal, it shall be carved: THE UNKNOWN ORGANIZER. And below it there shall be some beautiful words, maybe a sonnet, written about October 15, 2011, when The Unknown Organizer, who looked at a distance to be in her 30s, led a contingent of 500 brave revolutionaries from the 10,000 massed in Washington Square Park to defend 20-odd people who were being arrested for the crime of withdrawing their own money and closing their accounts at Citibank, one of the most corrupt, heartless and stupid institutions in all of corrupt, heartless and stupid Wall Street.

It will be written that the 500 volunteers followed The Unknown Organizer from the center of Washington Square Park to the sidewalk at the southern entrance where she waved her red flag in a “Halt!” gesture and asked, “Hey, does anyone know where LaGuardia Place is?”

Somebody did know, and we marched for a few minutes east and south to a Citibank branch where a couple dozen cops, decked out in their body armor and black uniforms and riot helmets, were standing in the middle of LaGuardia Place nervously tapping their extra-long batons.

Suddenly the riot squad didn’t know whether to shit or go blind. “Are we supposed to face the bank where we’re arresting people for withdrawing their own money?” they seemed to be asking as they turned around and around. “Or are we supposed to face these lunatics on the other side of the street who are shouting that they want to save our pensions while Mayor Bloomberg wants to cut them? Read More…

6288110323_022671b892

All rights reserved by DianeSweet

Noam Chomsky has addressed the Boston Occupation:

I’ve never seen anything quite like the Occupy movement in scale and character, here and worldwide. The Occupy outposts are trying to create cooperative communities that just might be the basis for the kinds of lasting organizations necessary to overcome the barriers ahead and the backlash that’s already coming.

In 2005, Citigroup, which, by the way, has repeatedly been saved by government bailouts, saw the wealthy as a growth opportunity. The bank released a brochure for investors that urged them to put their money into something called the Plutonomy Index, which identified stocks in companies that cater to the luxury market. “The world is dividing into two blocs, the plutonomy and the rest,” Citigroup summarized. “The U.S., U.K. and Canada are the key plutonomies, economies powered by the wealthy.” As for the non-rich, they’re sometimes called the precariat, people who live a precarious existence at the periphery of society. The “periphery” however, has become a substantial proportion of the population in the U.S. and elsewhere. So we have the plutonomy and the precariat: the 1 percent and the 99 percent, as Occupy sees it, not literal numbers, but the right picture.

Karl Marx said, “The task is not just to understand the world but to change it.” A variant to keep in mind is that if you want to change the world you’d better try to understand it. That doesn’t mean listening to a talk or reading a book, though that’s helpful sometimes. You learn from participating. You learn from others. You learn from the people you’re trying to organize Read More….

wall-street-poster-1

An Essay on The Politics Of Poverty and The Occupy Wall Street Movement In N+1:

The celebrated social movements not campingof the past half century achieved their successes—however achingly partial they remain—by demanding full citizenship for Americans whose racial or sexual identity barred them from equality under the law and equal economic opportunity. The different challenge facing Occupy Wall Street can be seen, ironically, in the movement’s most distinctive slogan: We are the 99 percent. Pretty funny when a Canadian-launched agitation, started by a few hundred people, claims to represent 310 million Americans! The problem here isn’t the more ordinary one of gathering a disenfranchised group into We, the people . . . That particular story of freedom, with a deep moral and legal basis in American life, extends from the elimination of property qualifications for white male voters starting in 1811 to the gay marriage victories of 2011. It’s another thing entirely to redefine the American populace at large as an excluded group, cast out from the democracy and prosperity that supposedly form the national birthright. To imagine that something like this could possibly succeed is about as outlandish as supposing that a harassed Tunisian street vendor could topple governments throughout the Arab world by setting himself on fire.For now We are the 99 percent doesn’t come close to being true. And yet the scope of the claim—99 percent!—indicates the immense promise of the movement: nothing less than to build a left populism capable of rescuing the country in the name of the people of, by, and for whom it’s allegedly governed. Given the demoralization of the working class, the corporate domination of politics and the media, the Republican control of the House (and blockade in the Senate), this is undeniably a quixotic effort. No one but our grandparents has a living memory of the last attempt at left populism during a prolonged economic crisis. Can Occupy Wall Street eventually lead to a re-occupation of the fifty states by a citizenry with a new idea of itself? For the moment, it looks like the country’s last best hope. Read More…

No single journalist has been as insightful as Chris Hedges.  Chris is a regular contributor to truthdig.  His essay Why The Elites Are In Trouble contains a seminal analysis.

Ketchup, a petite 22-year-old from Chicago with wavy red hair and glasses with bright red frames, arrived in Zuccotti Park in New York on Sept. 17. SheOccupy your mind had a tent, a rolling suitcase, 40 dollars’ worth of food, the graphic version of Howard Zinn’s “A People’s History of the United States” and a sleeping bag. She had no return ticket, no idea what she was undertaking, and no acquaintances among the stragglers who joined her that afternoon to begin the Wall Street occupation.

The lords of finance in the looming towers surrounding the park, who toy with money and lives, who make the political class, the press and the judiciary jump at their demands, who destroy the ecosystem for profit and drain the U.S. Treasury to gamble and speculate, took little notice of Ketchup or any of the other scruffy activists on the street below them. The elites consider everyone outside their sphere marginal or invisible. And what significance could an artist who paid her bills by working as a waitress have for the powerful? What could she and the others in Zuccotti Park do to them? What threat can the weak pose to the strong? Even now, three weeks later, elites, and their mouthpieces in the press, continue to puzzle over what people like Ketchup want. Where is the list of demands? Why don’t they present us with specific goals? Why can’t they articulate an agenda?

jesus-says-meme-generator-jesus-says-occupy-everywhere-54e817The goal to people like Ketchup is very, very clear. It can be articulated in one word—REBELLION. These protesters have not come to work within the system. They are not pleading with Congress for electoral reform. They know electoral politics is a farce and have found another way to be heard and exercise power. They know the economy serves the oligarchs, so they formed their own communal system. This movement is an effort to take our country back.

This is a goal the power elite cannot comprehend. The elites believe, and seek to make us believe, that globalization and unfettered capitalism are natural law, some kind of permanent and eternal dynamic that can never be altered. What the elites fail to realize is that rebellion will not stop until the corporate state is extinguished. It will not stop until there is an end to the corporate abuse of the poor, the working class, the elderly, the sick, children, those being slaughtered in our imperial wars and tortured in our black sites. And that is why the elites, and the rotted and degenerate system of corporate power they sustain, are in trouble. That is why they keep asking what the demands are. They don’t understand what is happening. They are deaf, dumb and blind.  Read More… 

Here is a video of Chris with Amy Goodman discussing the Occupy Wall Street Movement

 

 

 

 

They tell you we are dreamers. The true dreamers are those who think things can go on indefinitely the way they are. We are not dreamers. We are awakening from a dream which is tuning into a nightmare. We are not destroying anything. We are only witnessing how the system is destroying itself.

Naomi Klein

 

Good Bye 2010 – Hello 2011

Posted 2010/12/28 by Cloud2013 in Flickr, Photography

Tagged with , ,

%d bloggers like this: