Author Archive

Photo Processing on the Nexus 7   1 comment

We ARE excited to be in San Francisco for SPTechCon.  If nothing else road trips give us an opportunity to play with some of our devices.  The last time I was in San Francisco I was using a a Nexus 7  and Adobe Photoshop Explorer to post process photos.  The results can be found here and here.  Six months later finds me back in San Francisco still using the Nexus 7 as a platform but using Adobe’s PS Touch and the Snapspeed App for post processing.  My process to gets photos from The Nikon 7 to the Nexus has been simplified but is still unacceptable.

Getting The photos to the Nexus

Moving photos from the Nikon D50 to the Nexus’s file system is a pain. I could simplify this process by

  • buying a new camera and using the Raw Vision App and a cable; or
  • Using a Bluetooth enabled SD card; or
  • Upgrading me Nexus to something with a front facing camera.

I love my Nikon and am too cheap for the cost of the Bluetooth SD card so I went the hardware root. Here is the setup:

Nexus Media Installer App (~$3)

Nexus compatible To Go cable (~$3)

A USB SD card reader (~$2)

Step One: The Physical World

SD to card reader to To Go Cable to Nexus port  

_IMG_0579

Our Topology: Cheapness Electronics, Cambridge Mass

Step Two: Copy the files from the card to your system

When the card is inserted into  “the cable system” Nexus Media Installer App will start and attempt to read the SD card directory.  I needed to be sure not to be running my file manager (File Manager HD App – free) at the same time.  You can preview all photos on the card.  No photo objects on the cards are available as documents. Select the objects you want to copy  and hit the save icon.  This will start a background job, one for each object, to transfer the photos to your file system into a  “pictures” folder.  Multiplexed and asynchronous request fulfillment . oh my. Nice software.  This folder is visible to Gallery, PS Touch and Snapspeed.  Other Apps my not make this folder accessible.  But you can always move files around with a File Manager like File Manager HD.

Post Processing the Photos

All of the software I have seen on the Nexus allow only jpeg processing.  Even Adobe PS Touch supports only JPEG. There is no RAW file type support available on the Nexus platform.  I looked at post processing apps from three board groups:

Editors with Theme filters only

Editors with adjustable photo enhancement filters; and 

Editors with spot adjustment filters and other features.

In my last blog post on this topic I was using Photoshop Express, a nice free editor with adjustable photo enhancement.  I liked the results but the app can only process files in the camera’s DCIM folder (which requires us to do file copies of imported photos twice!)

San Francisco Bay – Photoshop Express

Feeling plush I spend $2.99 and bought the next step Photoshop App: PS Touch this provides a rich set of editing tools, layers (if you use Photoshop on a laptop you know what that means), a nice history stack and more.  The results are fine but, the interface is difficult to work with but some of that may be that its UI is exposed using primarily  Surface Touch  \ Windows 8 conventions. This will flow much better on a ten inch, preferably a windows, device. (I am working on a 7 inched Nexus not a 10 inch anything).  It’s not a lot of fun to use and it may be overkill unless you do photo post processing and you have no lap top or desk top version of Photoshop to use.  But if your Surface or 10 inch iPad are your primary device this is a good choice.  Not a fun or quick or easy, choice.

SPTechCon Speaker Andrew Connel – PS Touch

A nice free alternative to Photoshop Express is the very simple but effective Snapspeed.  This is a lot of fun to use and combines theme filters and photo adjustment filters.  I did a bunch of post processing with this app and was very happy with the results. Try it.

Art Gallery – Snapspeed

A Nexus Gallery (PS Touch and Snapspeed Post Processing On the Nexus 7)

(This last one has been processed using Photoshop C5 on a laptop)

Grateful Dead: 1971 Capital Theater 1971-02-18   Leave a comment

Why This Concert?

I listen to the Grateful Dead every night for over an hour while I am on the treadmill.  During January I was listening to Fillmore and Winterland concerts from 1970 (the era of Workingman’s Dead).  The Dead were experimenting with a warm intimate sound during 1970.  Many shows featured a mix of acoustical sets (the NRPS were often in attendance).  This was the year I first saw the Dead live.  Clearly, however, there were issues.  The sound worked best in small halls, like the two Fillmores and just as clearly Bear’s abilities as a sound man had just about reached his (and the band’s) limit.  Although the funk of Dancing In The Streets and Turn on Your Love light still worked, you can hear both Bob and Jerry breaking out on some songs (China Cat) to a stronger more pure ROCK approach.  Johnny B. Goode and Not Fade Away both make tentative appearances during the year.

In 1971 the Band moved into a new and improved model, a new sound crew and new sound system were developed and the ability of the band to effectively play larger halls was perfected.  This is the year which moved towards the Skulls and Roses release (recorded in March and April).  The guitar sound is crisper (and louder).  In addition to Johnny B. Goode (which would find it truest form in 1972), often moves into the closing spot, replacing TOYLL).  Jerry is adding new songs (Wharf Rat, Loser, Bertha).  Both Bob and Pig are adding stronger, more focused, vocals.  This year’s version of the band snaps with energy.

This is a year which has been heavily documented with the live recording series from Dead.Net and include:

The Internet Archive has always been a great source for free concerts recordings of the Grateful Dead. The year 1971 is no exception.  Probably no single individual has done more quality sound processing of concert tapes posted to the Internet Net then a the great Charlie Miller and 1971 is not exception.  In this year alone, Charlie contributed 26 soundboard recording which he processed.  No single contributor has better sound processing skills or better musical taste than Charlie.  And we thank him for his contribution.  You can find my blogs on the Grateful Dead recordings on the Internet Archive here, here, here and here.

The February run at the Capital Theater is outstanding. The performance is great and the sound system (and sound processing are terrific). Among these dates the February 18th date is freely available and features some breakout performances, including Bertha, Loser, It Hurts Me Too and Truckin’.  Pride of place is the great sequence:

  • Mama Tried
  • Hard to Handle
  • Dark Star
  • Wharf Rat
  • Dark Star
  • Me And My Uncle

This is a nice long two set concert.  The first set begins with Bertha and Truckin and ends with Casey Jones.  The second set, not as strong as the first set, opens with a early short version of Playin’ In the Band and an eraly version of Sugar Magnolia (with Wah Wah).  The second set concludes with a nice sequence of:

  • Not Fade Away
  • Goin’ Down The Road, Feeling Bad
  • Not Fade Away
  • Uncle John’s Band

Wow. Nice. Here is a link list into the set.  Click on the date to jump to the Internet Archive’s player to hear the whole concert. Individual songs can be heard in modern browsers by clicking on the track title (free a track with a right click).

Enjoy!

1971-02-18 Capitol Theater

01 06:54 Bertha
02 11:05 Truckin’
03 05:15 It Hurts Me Too
04 06:08 Loser
05 03:48 Greatest Story Ever Told ->
06 03:03 Johnny B. Goode
07 02:56 Mama Tried
08 08:01 Hard To Handle
09 07:02 Dark Star ->
10 07:20 Wharf Rat ->
11 07:19 Dark Star ->
12 03:40 Me And My Uncle
13 01:40 Tuning
14 06:53 Casey Jones
15 05:23 Playing In The Band
16 06:03 Me And Bobby McGee
17 07:15 Candyman
18 04:59 Big Boss Man
19 07:36 Sugar Magnolia
20 06:27 Saint Stephen ->
21 04:33 Not Fade Away ->
22 05:05 Goin’ Down The Road Feeling Bad ->
23 03:58 Not Fade Away ->
24 08:02 Uncle John’s Band

Download Tracks 08 through 12 here.

-

Sharepoint 2013: Get Me Out Of Here (Part 2): Cross Domain AJAX Calls in Sharepoint Apps   1 comment

The Bottom Line

We are using Sharepoint 2013 RTM. We will be looking at Sharepoint Hosted Apps in this post and we will deal with provider hosted apps in a later blog post. Out bottom line on Development Environments is we are using a developer ‘environment in the cloud’ from CloudShare. Our specific goal is the use the new, and sparsely documented, Sp.WebProxy Javascript function to do cross domain calls into REST Endpoints which are external to Sharepoint. We will not be discussing the esotaric hidden IFrame solution discussed in Solving cross-domain problems in apps for SharePoint.

Forget about WCF and using Custom Restful Web Services like we used in Sharepoint 2010.  Although this technic did work to add proxy access to external data sources, the process was poorly documented, highly technical and fragile.  Are basic need is to use Sharepoint 2013 and to access data from other servers which we control which have our data.  For important reasons these do not fit into the B?? model and must be accessed either through proxy methods (see Part I of this series) or with cross-domain AJAX calls from the client.   When we transitioned to Sharepoint 2013 after our brief marriage to Sharepoint 2010 we were very excited about the whole App concept or  thing or whatever it is.  We decided to write some, just as soon as we could figure out what they are, how to write them and how to  set up a development environment.  Our bottom line on Sharepoint Apps.  They come in three flavors: auto-hosted, Sharepoint Hosted and Provider Hosted. 

Create a Development Environment

Wow.  Look at those specifications!  Eight Gig plus of RAM, 64 bit Quad Core Processor, Visual Studio 2013. Page after page of unclear and contradictory documentation; most it for the Preview not RTM.  Where did I put that old propeller beany I used to wear in the 1990’s?  Ok, looks like we might be able to try this with our desktop machines (they are monster machines), but just in case we also start looking at VMware to build these suckers on. The basic MSDN documents:

Well this looks really hard and we may need to set this up more than once (looks like we could trash the system more than once getting things right).  This clearly is not a simple, focused product like SQL Server.  So we started looking for more help and setup tips.  Trashed my physical machine a couple of times, rebuild are taking a long time.  Shift to Hyper-V as MS suggests, still can’t quite get a system setup and still have to deal with the corporate AD.  Well, at least re-builds aren’t taking as long.  One of my co-workers takes a (physical) class.  When he returns he is pretty excited.  They used a cloud based configuration of Sharepoint 2013 (Not Sharepoint Online or Office 365 or whatever the folks at Redmond are calling the AZURE based system today) and was pretty happy.  We shift to using CloudShare.  They have a three server template with fully licensed Sharepoint 2013, SQL Server 2013 and a separate AD server; plus all the Microsoft software you can shake a stick at (Visual Studio, Office 2013, etc. at no extra cost).  Nice, not that expensive for a developer playpen and I can spin up an instance in about 4 minutes and can take snap shots of by way stations  during any radical reconfigurations so I can drop back to a stable version in about 15 minutes.  Access is via browser and for a development environment it all runs quickly.  We are happy again.

Get The APP Documentation and Sample Code

Hmm again. A lot of the stuff on MSDN and Technet are dated July, 2012 and are based on the preview drop and/or for the Azure based system of Sharepoint.  Not good.  Hey, how about Plurasight?  They seem to be jacked pretty directly into Microsoft.  They have a whole bunch of Sharepoint  courses, tons of Sharepoint 2010 courses, this must be helpful right, Sharepoint 2013 can’t be that big of a jump form 2010 can it? And where are those Sharepoint 2013 apps courses? Oh ok, here they are,  all dated 2012-11-05:

Twelve hours of Sharepoint 2013….stuff.  Part 6 is over three hours long.  Ok lets do it.  Installation courses are ok but they seem to be leaving a lot of stuff out (or perhaps we fell asleep at some point).  The blogs for Sharepoint App development often have the same problem, based on the preview or on the cloud based Azure version of Sharepoint and often (this really gets me) just re-writes of the same base line documents from MSDN. Here are some basic papers we used (Don’t blame us for the poor capitalization of the titles):

Create A Sharepoint Hosted App

The MSDN papers How to: Create a basic SharePoint-hosted app  should be enough to get you up and running on a basic low functionality Sharepoint hosted App.  Note this correction however.  Replace the lines of code from the paper:

function sharePointReady() {
    ctx = new SP.ClientContext.get_current();    $("#getListCount").click(function (event) {
        getWebProperties();
        event.preventDefault();
    });
    welcome();
}
With

$(document).ready(function () {

ctx = new SP.ClientContext.get_current();

$(“#getListCount”).click(function (event) {

       getWebProperties();

        event.preventDefault();

       });

     welcome();

});

Once you have a Sharepoint hosted app which will do ANYTHING(this may take a while), start a new project based on the papers:

Cross Domain AJAX Calls

I don’t care what lies you have been told before, you can make cross domain AJAX calls from within a Sharepoint hosted app, with javascript and they all involve calling directly or indirectly SP.WebProxy.invoke.  In the romantic technical documentation of MSDN this is defined as:

[ScriptTypeAttribute("SP.WebProxy", ServerTypeId = "{656a77c4-1634-415c-bf85-c6c0cb286e0e}")] public static class

WebProxy

WebProxy has a single method[RemoteAttribute] public static ClientResult

Invoke

( ClientRuntimeContext context, WebRequestInfo requestInfo


and

WebRequestInfo

is defined as:[ScriptTypeAttribute("SP.WebRequestInfo", ValueObject = true, ServerTypeId = "{71aa825d-bc12-422d-a177-d2e63fe68cd9}")] public class WebRequestInfo : ClientValueObject


and has a plethora of

properties and methods

.


We use these objects and methods by including the Sharepoint JavaScript libraries (SP.Runtime.js) in our Sharepoint APP.


Call Cross Domain Using SP.WebProxy.invoke

Setting up the call in JavaScript:

var context = SP.ClientContext.get_current();

var request = new SP.WebRequestInfo();

//Set the Url, HTTP Method and Accept Headers

//We could also include OAuth information and parameters.

request.set_url(

http://uvo1vnoxg7xeb0u4dm1.env.cloudshare.com/WebAPI005/api/values”

          );

request.set_method(“GET”);

request.set_headers({ “Accept”: “application/json” });

var response = SP.WebProxy.invoke(context, request);

      context.executeQueryAsync(successHandler, errorHandler);

  • Http Request:

POST http://app-8520ffa3ec708b.sp2013apps.com/DLR002/_vti_bin/client.svc/ProcessQuery HTTP/1.1

Accept: */*

X-Requested-With: XMLHttpRequest

Content-Type: text/xml

X-RequestDigest: 0x1CB7B3E3FBBD705515A23DB5DEEDDF06FF5659232C5E1891205D2C10E5F772C13DE15FF53CC85FF76AA6552B4E5DA0C845C48F6C64DFFD825159A686B2E3561F,11 Feb 2013 18:13:54 -0000

Referer: http://app-8520ffa3ec708b.sp2013apps.com/DLR002/Pages/Default.aspx?SPHostUrl=http%3A%2F%2Fsp2013srv&SPLanguage=en%2DUS&SPClientTag=0&SPProductNumber=15%2E0%2E4420%2E1017&SPAppWebUrl=http%3A%2F%2Fapp%2D8520ffa3ec708b%2Esp2013apps%2Ecom%2FDLR002

Accept-Language: en-US

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)

Host: app-8520ffa3ec708b.sp2013apps.com

Content-Length: 719

Connection: Keep-Alive

Pragma: no-cache

Cookie: WSS_FullScreenMode=false

POST Body:

Response1

Notes:

This is a HTTP POST to _vti_bin/client.svc/ProcessQuery.  Note the checksum in X-RequestDigest and the Accept and Content-Type headers refer to the call to ProcessQuery and not to our ultimate endpoint (…WebAPI005/api/values).  The endpoint url and headers were packaged in WebRequestInfo and appear in the body of the POST in XML format.  In this simple call we are only defining a Method (GET) Accept-Type (application/json) and an Url (http://…WebApi005/api/Values).

A successful HTTP response might look like:

HTTP/1.1 200 OK

Cache-Control: private

Content-Type: application/json; charset=utf-8

Vary: Accept-Encoding

X-SharePointHealthScore: 0

SPClientServiceRequestDuration: 1753

SPRequestGuid: 36cafd9b-c9ea-1071-02d5-3352073a4f7c

request-id: 36cafd9b-c9ea-1071-02d5-3352073a4f7c

X-RequestDigest: 0x5ADEBB9D5BE8268193CA8B29902E1C16B1C11DC23CBD94B5FBD6E6A659D34D29765539025B8B34DFC3719279ED07B3306083414D88611E1D09000B30DACFDFB0,11 Feb 2013 18:13:55 -0000

X-FRAME-OPTIONS: SAMEORIGIN

X-AspNet-Version: 4.0.30319

X-Powered-By: ASP.NET

X-Content-Type-Options: nosniff

X-MS-InvokeApp: 1; RequireReadOnly

MicrosoftSharePointTeamServices: 15.0.0.4420

Date: Mon, 11 Feb 2013 18:13:56 GMT

Content-Length: 597

The body for our Restful Endpoint would look like:

Response2

The content-type response header specifies application/json and our data is also json. Note also that the content-type of the Body element is defined by the JSON response element ResponseBody[2].Headers.Content-Type. Note that the format of response body is dependent upon the sender.  A response for a Sharepoint list will have a different format than the WebAPI sender we are using here. See How to: Query a remote service using the web proxy in SharePoint 2013 for an example of processing Sharepoint output.

Success and Error Routines

function successHandler() {

if (response.get_statusCode() == 200) {

var ResponseBody;

              var thing1;

              var thing2;

ResponseBody = JSON.parse(response.get_body());

               thing1=ResponseBody[2].Body[0];

               thing2=ResponseBody[2].Body[2];

                   //Do Your Thing with each value

}

}

else {

var httpCode;

               var httpText;

               httpCode =    response.get_statusCode();

httpText = response.get_body();

               //Do your thing with the error response

}

}

       function errorHandler() {

          var httpText2=response.get_body();

         //Do your thing with the error response

}

Call Cross Domain Using JQuery AJAX to Call SP.WebProxy.invoke

Here is the same call but using JSON to call SP.WebProxy as an AJAX REST call:

var url = “http://uvo1vnoxg7xeb0u4dm1.env.cloudshare.com/WebAPI005/api/values”;

      $.ajax({

url: “../_api/SP.WebProxy.invoke”,

type: “POST”,

data: JSON.stringify(

{

“requestInfo”: {

“__metadata”: { “type”: “SP.WebRequestInfo” },

“Url”: url,

“Method”: “GET”,

“Headers”: {

“results”: [{

"__metadata": { "type": "SP.KeyValue" },

"Key": "Accept",

"Value": "application/json;odata=verbose",

"ValueType": "Edm.String"

}]

}

}

}),

headers: {

“Accept”: “application/json;odata=verbose”,

“Content-Type”: “application/json;odata=verbose”,

“X-RequestDigest”: $(“#__REQUESTDIGEST”).val()

},

success: successHandler,

error: errorHandler

});

Note the X-RequestDigest Header setup which gets the Digest value directly from the ASPX Form element __REQUESTDIGEST and is required.

HTTP POST

POST http://app-8520ffa3ec708c.sp2013apps.com/DLR003/_api/SP.WebProxy.invoke HTTP/1.1

Accept: application/json;odata=verbose

Content-Type: application/json;odata=verbose

X-RequestDigest: 0x622ED77A91DC009DACC720FEEA25768E3208E3C9FF1F6B64F7094C6461BC59B5675BEF0267B4AFD0B7F854484484706EBB8DA42BDB0E91AE536B2BC57C478824,11 Feb 2013 19:22:00 -0000

X-Requested-With: XMLHttpRequest

Referer: http://app-8520ffa3ec708c.sp2013apps.com/DLR003/Pages/Default.aspx?SPHostUrl=http%3A%2F%2Fsp2013srv&SPLanguage=en%2DUS&SPClientTag=0&SPProductNumber=15%2E0%2E4420%2E1017&SPAppWebUrl=http%3A%2F%2Fapp%2D8520ffa3ec708c%2Esp2013apps%2Ecom%2FDLR003

Accept-Language: en-US

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)

Host: app-8520ffa3ec708c.sp2013apps.com

Content-Length: 292

Connection: Keep-Alive

Pragma: no-cache

Cookie: WSS_FullScreenMode=false

Authorization: NTLM TlRMTVNTUAADAAAAAAAAAFgAAAAAAAAAWAAAAAAAAABYAAAAAAAAAFgAAAAAAAAAWAAAAAAAAABYAAAABcKIogYC8CMAAAAP0BK39LK2kSQ52HreNJOgaQ==

Note: the authentication is handled on the fly with NTLM negotiation.

JSON Content

Response4

Note here the call body is in JSON, since this is a typical JSON AJAX call to the Sharepoint REST subsystem and is used to pass the url, headers and any optional parameter values to the target Url.

HTTP Response

HTTP/1.1 200 OK

Cache-Control: private, max-age=0

Content-Type: application/json;odata=verbose;charset=utf-8

Expires: Sun, 27 Jan 2013 19:22:33 GMT

Last-Modified: Mon, 11 Feb 2013 19:22:33 GMT

Vary: Accept-Encoding

X-SharePointHealthScore: 0

SPClientServiceRequestDuration: 15009

SPRequestGuid: 24cefd9b-e96c-1071-02d5-32abbeb2cd48

request-id: 24cefd9b-e96c-1071-02d5-32abbeb2cd48

X-RequestDigest: 0xF7EEE4ED6914FDAD63C7C097117C21AEF182741021B51616C22A96D1CDD650A57C79D02D4C81F31B0EB2E956E6EC7254356CAB341E94F1B155F4E1C5A6AD1866,11 Feb 2013 19:22:33 -0000

X-FRAME-OPTIONS: SAMEORIGIN

Persistent-Auth: true

X-AspNet-Version: 4.0.30319

X-Powered-By: ASP.NET

X-Content-Type-Options: nosniff

X-MS-InvokeApp: 1; RequireReadOnly

MicrosoftSharePointTeamServices: 15.0.0.4420

Date: Mon, 11 Feb 2013 19:22:48 GMT

Content-Length: 1395

Response Body:

Response5ab

Note that here when called this way out response data is found as

responseBody.d.Invoke.Body[0]

responseBody.d.Invoke.Body[0]

Strange but true.

Note also that no matter how you call the cross-domain endpoint you are getting back two status codes.  One status code of the SharePoint call itself and one status code, nested in the JSON response,  from the cross-domain endpoint.  I am still experimenting with this.

Next Steps

My next step with SP.WebProxy will be to include security information in the call and to process this information on the REST endpoint.  See You Then.

 

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

The Grateful Dead in 1970: The Fillmore East And West And The Other Ones   Leave a comment

images

The Fillmore West (Left) and The Fillmore East (Right) back in the Days

The what and the why of this listing:

I have written several blog about individual Grateful Dead show in the 1970.  They can be found here.  A hyperlist list of all 1970 concerts can be found here. All of my Grateful Dead blogs can be found here.  I have never been attracted to the approach of locating the ‘best’ concert or the ‘best’ version of a particular Dead song.  We all have our favorites. I often find myself playing a particular set of 1970 Grateful Dead concerts when I am the mode for Grateful Dead 1.0 (the Pigpen era).  The Dead released two commercial albums during 1970 and Dead.Net has released at least six concert from this year alone. This is a very rich year for The Dead.  The drums are kicking, Pig Pen’s organ is grinding, Bobby has finally learned how to play the guitar… There are a boat load of excellent concerts to listen to  free on the Internet Archive even after those which are no longer available because they have been commercially released by Dead.Net. The concerts selected here are limited small San Francisco area venues (the exceptions are the Fillmore East & The Winterland).  The listings here are of all Sound Board records.  The best of these, IMHO, are the Fillmore shows (East and West) and the Winterland shows.  For completeness I have included shows at the Matrix, The Euphoria Ballroom and at the Family Dog.  There are several audience recording patches of individual songs and parts of song among several of the shows.

The Winterland In the 1970’s (Grateful Dead 2.0 on stage).

Why 1970 (and not 1969 or 1971)?

This is a great year for Dead version 1.0, they are capable of playing as a tight ensemble with a funk and bluesy feel.  The psychedelic excesses of 1968 are (mostly) in the past and the power stadium rock band (Dead version 2.0 with the Godchaux’s ) is still in the future.  The band presents a warm mix of (what was to become) folk-rock and funk based blues (The versions of Turn on Your Love Light played here could last over 25 minutes where often used as a second set closer).  The jams feature great interactions between Jerry, Bobby and PigPen with a driven rhythm section of base and drums. And frankly these shows are what I have been listening to over the last few weeks.

Why Small California Halls?

The band often played their most intimate sets in small halls which were close to home.  Indeed the Fillmore West was a second home, The Matrix was a small club attached to the Fillmore West, The Euphoria was right around the corner from their practice space in San Rafael, The Winterland, although much larger, was also a San Francisco club and also a Phil Graham venue.  The Family Dog (on the Great Highway) was at one point owned by the Grateful Dead. The Fillmore East is obviously not a San Francisco club but the Dead have been playing there since 196X and it was also a Phil Graham venue.  “There’s not place like home, Auntie ‘Em”.  By listening to small venues over the year one can build up a better appreciation of how the Dead developed thematically during this crucial year.

Aren’t There Some Bad nights and poor sound board records in this Listing?

Yes, indeed.  But not among the Fillmore and Winterland shows.  But the great shows didn’t just happen.  Think of the Euphoria and the Matrix sets as live rehersals in battle conditions and The Family Dog is, well, the Family Dog.

Grateful Dead Studio Releases 1970:

Workingman’s Dead (June 14 Release)

American Beauty (November 1 Release)

Commercially Released 1970 Concerts (Not available on the Internet Archive):

1970-01-18 (Grateful Dead Download Series Volume 2)

1970-02-02 Fox Theatre (Dave’s Picks Volume 6)

1970-02-04 Family Dog (Grateful Dead Download Series: Family Dog at the Great Highway)

1970-02-13 & 1970-02-14 Fillmore East (Dick’s Pick # 4)

1970-05-02 Harpur College (Dick’s Pick #8)

1970-06-14 Fillmore East Road Trips Volume 3 Number 3

See here for details.

1970 Selected Grateful Dead Concerts

Source: Internet Archive Grateful Dead Collection

Click On The Date Column To jump to the Internet Archive For The Concert.

Click On the Track Column To Jump directly to the Song (To unlock and save the track locally: RIGHT CLICK the track.)

(Note the studio recording listed as 1970-01-01 manifestly did not take place on that date but it is the date placeholder used in the Internet Archive for this recording).

Type Column: S = Soundboard, Studio=Studio Recording, SC = Soundboard recording remixed by Charlie Miller.

Date Venue Type Track Time Title
1970-01-01 Studio Outtakes Studio 01 03:34 Ripple
1970-01-01 Studio Outtakes Studio 02 04:29 Tastebud
1970-01-01 Studio Outtakes Studio 03 04:27 Mason’s Children
1970-01-01 Studio Outtakes Studio 04 05:00 Uncle John’s Band
1970-01-01 Studio Outtakes Studio 05 03:34 Ripple
1970-01-01 Studio Outtakes Studio 06 04:32 Tastebud
1970-01-01 Studio Outtakes Studio 07 04:28 Mason’s Children
1970-01-01 Studio Outtakes Studio 08 04:51 Uncle John’s Band
1970-01-01 Studio Outtakes Studio 09 00:38 Radio Promo
1970-01-03 Fillmore East S 01 09:21 Morning Dew
1970-01-03 Fillmore East S 02 03:19 Me And My Uncle
1970-01-03 Fillmore East S 03 04:19 Hard to Handle
1970-01-03 Fillmore East S 04 05:43 Cumberland Blues
1970-01-03 Fillmore East S 05 05:14 Cold Rain & Snow
1970-01-03 Fillmore East S 06 04:01 Alligator->
1970-01-03 Fillmore East S 07 02:04 Drums->
1970-01-03 Fillmore East S 08 08:43 Jam->
1970-01-03 Fillmore East S 09 01:09 Bid You Goodnight Jam->
1970-01-03 Fillmore East S 10 01:29 Alligator->
1970-01-03 Fillmore East S 11 00:29 Caution Jam->
1970-01-03 Fillmore East S 12 07:38 Feedback
1970-01-03 Fillmore East S 13 06:55 Uncle John’s Band
1970-01-03 Fillmore East S 14 04:20 Casey Jones
1970-01-03 Fillmore East S 15 02:50 Mama Tried
1970-01-03 Fillmore East S 16 04:54 Big Boss Man
1970-01-03 Fillmore East S 17 04:30 China Cat Sunflower->
1970-01-03 Fillmore East S 18 05:39 I Know You Rider
1970-01-03 Fillmore East S 19 05:36 Mason’s Children
1970-01-03 Fillmore East S 20 02:05 Cryptical Envelopment->
1970-01-03 Fillmore East S 21 03:26 Drums->
1970-01-03 Fillmore East S 22 10:05 The Other One->
1970-01-03 Fillmore East S 23 04:55 Cryptical // Envelopment->
1970-01-03 Fillmore East S 24 06:57 Cosmic Charlie
1970-01-03 Fillmore East S 25 06:33 Uncle John’s Band
1970-01-03 Fillmore East S 26 08:41 Black Peter
1970-01-03 Fillmore East S 27 04:51 Dire Wolf
1970-01-03 Fillmore East S 28 09:15 Good Lovin’
1970-01-03 Fillmore East S 29 10:46 Dancin’ in the Streets
1970-01-03 Fillmore East S 30 06:20 St. Stephen->
1970-01-03 Fillmore East S 31 09:19 In The Midnight Hour
1970-02-05 Fillmore West S 01 07:14 Mason’ Children/
1970-02-05 Fillmore West S 02 12:24 The Eleven>
1970-02-05 Fillmore West S 03 11:35 Caution>
1970-02-05 Fillmore West S 04 05:16 Not Fade Away>
1970-02-05 Fillmore West S 05 05:05 Cumberland
1970-02-05 Fillmore West S 06 07:07 Uncle John’s Band
1970-02-07 Fillmore West S 01 04:14 Green Green Grass of Home
1970-02-07 Fillmore West S 02 02:52 Saw Mill/
1970-02-07 Fillmore West S 03 05:15 Seasons
1970-02-07 Fillmore West S 04 05:20 China Cat Sunflower ->
1970-02-07 Fillmore West S 05 04:39 I Know You Rider
1970-02-07 Fillmore West S 06 07:22 High Time
1970-02-07 Fillmore West S 07 05:16 Big Boss Man
1970-02-07 Fillmore West S 08 03:16 Me & My Uncle
1970-02-07 Fillmore West S 09 04:57 Cold Rain & Snow
1970-02-07 Fillmore West S 10 10:06 Uncle John’s Band ->
1970-02-07 Fillmore West S 11 10:18 Black Peter
1970-02-07 Fillmore West S 12 05:59 Good Lovin’
1970-02-11 Fillmore East S 01 05:16 The Other One \>
1970-02-11 Fillmore East S 02 04:27 Cryptical Envelopment
1970-02-11 Fillmore East S 03 04:27 Dire Wolf
1970-02-11 Fillmore East S 04 05:22 Casey Jones
1970-02-11 Fillmore East S 05 12:58 Intro -> Not Fade Away
1970-02-11 Fillmore East S 06 04:57 Cumberland Blues
1970-02-11 Fillmore East S 07 05:43 Cold Rain and Snow
1970-02-11 Fillmore East S 08 07:27 High Time
1970-02-11 Fillmore East S 09 03:36 Me and My Uncle
1970-02-11 Fillmore East S 10 16:18 Dark Star \>
1970-02-11 Fillmore East S 11 09:40 Spanish Jam \>
1970-02-11 Fillmore East S 12 33:37 Turn on Your Lovelight
1970-02-11 Fillmore East S 13 06:21 Uncle John\’s Band
1970-02-27 Family Dog SC 01 03:15 Tuning
1970-02-27 Family Dog SC 02 07:45 Cold Rain And Snow
1970-02-27 Family Dog SC 03 05:55 Me And My Uncle
1970-02-27 Family Dog SC 04 18:24 Dancing In The Street
1970-02-27 Family Dog SC 05 08:26 Easy Wind
1970-02-27 Family Dog SC 06 08:30 Black Peter
1970-02-27 Family Dog SC 07 13:03 Good Lovin’
1970-02-27 Family Dog SC 08 04:25 China Cat Sunflower ->
1970-02-27 Family Dog SC 09 05:19 I Know You Rider ->
1970-02-27 Family Dog SC 10 08:29 High Time
1970-02-27 Family Dog SC 11 08:36 Hard To Handle
1970-02-27 Family Dog SC 12 04:35 Casey Jones
1970-02-27 Family Dog SC 13 06:19 Cumberland Blues
1970-02-27 Family Dog SC 14 07:20 Not Fade Away ->
1970-02-27 Family Dog SC 15 27:57 Turn On Your Lovelight
1970-03-01 Family Dog S 01 00:00 Big Boy Pete
1970-03-01 Family Dog S 02 09:46 Morning Dew
1970-03-01 Family Dog S 03 06:09 Hard To Handle
1970-03-01 Family Dog S 04 03:30 Me and My Uncle
1970-03-01 Family Dog S 05 01:57 Cryptical Envelopment \>
1970-03-01 Family Dog S 06 03:36 Drums \>
1970-03-01 Family Dog S 07 10:23 The Other One \>
1970-03-01 Family Dog S 08 08:47 Cryptical Envelopment \>
1970-03-01 Family Dog S 09 09:11 Black Peter
1970-03-01 Family Dog S 10 03:02 Beat It On Down The Line
1970-03-01 Family Dog S 11 04:44 Dire Wolf
1970-03-01 Family Dog S 12 12:30 Good Lovin\’
1970-03-01 Family Dog S 13 06:26 Cumberland Blues
1970-03-01 Family Dog S 14 08:09 King Bee
1970-03-01 Family Dog S 15 04:54 China Cat Sunflower \>
1970-03-01 Family Dog S 16 04:31 I Know You Rider
1970-03-01 Family Dog S 17 07:53 Uncle John\’s Band
1970-04-15 Winterland S 01 08:10 It’s A Man’s World
1970-04-15 Winterland S 02 05:16 Candyman
1970-04-15 Winterland S 03 02:04 Cryptical Envelopment ->
1970-04-15 Winterland S 04 03:56 Drums ->
1970-04-15 Winterland S 05 05:55 Jam ->
1970-04-15 Winterland S 06 00:24 Drums ->
1970-04-15 Winterland S 07 08:42 The Other One ->
1970-04-15 Winterland S 08 03:20 Cryptical Envelopment
1970-04-15 Winterland S 09 04:11 Dire Wolf
1970-04-15 Winterland S 10 12:15 Dancin’ In The Streets
1970-04-15 Winterland S 11 12:47 Turn On Your Lovelight
1970-04-15 Winterland S 12 02:18 Not Fade Away
1970-04-15 Winterland S 13 07:12 Turn On Your Lovelight
1970-06-05 Fillmore West S 01 08:41 I Know You Rider
1970-06-05 Fillmore West S 02 04:02 Silver Threads & Golden Needles
1970-06-05 Fillmore West S 03 05:11 Friend Of The Devil
1970-06-05 Fillmore West S 04 03:42 Me & My Uncle
1970-06-05 Fillmore West S 05 07:46 Black Peter
1970-06-05 Fillmore West S 06 06:29 New Speedway Boogie%
1970-06-05 Fillmore West S 07 05:13 Cold Rain & Snow
1970-06-05 Fillmore West S 08 04:50 Easy Wind%
1970-06-05 Fillmore West S 09 01:16 Stage Banter
1970-06-05 Fillmore West S 10 02:44 Mama Tried
1970-06-05 Fillmore West S 11 02:52 Cryptical Envelopment–>
1970-06-05 Fillmore West S 12 00:39 Drums–>
1970-06-05 Fillmore West S 13 09:37 The Other One–>
1970-06-05 Fillmore West S 14 09:01 Cryptical Envelopment//–>
1970-06-05 Fillmore West S 15 02:08 Attics Of My Life
1970-06-05 Fillmore West S 16 07:04 Hard To Handle
1970-06-05 Fillmore West S 17 12:52 It’s A Man’s, Man’s World
1970-06-05 Fillmore West S 18 06:41 Uncle John’s Band
1970-06-05 Fillmore West S 19 06:16 St. Stephen–>
1970-06-05 Fillmore West S 20 05:26 Casey Jones
1970-06-06 Fillmore West SC 01 08:44 Morning Dew
1970-06-06 Fillmore West SC 02 03:32 Me And My Uncle
1970-06-06 Fillmore West SC 03 04:04 Casey Jones
1970-06-06 Fillmore West SC 04 13:14 Dancing In The Street
1970-06-06 Fillmore West SC 05 03:57 Next Time You See Me
1970-06-06 Fillmore West SC 06 05:13 China Cat Sunflower ->
1970-06-06 Fillmore West SC 07 04:51 I Know You Rider
1970-06-06 Fillmore West SC 08 02:10 Good Lovin’ ->
1970-06-06 Fillmore West SC 09 03:56 Drums ->
1970-06-06 Fillmore West SC 10 03:16 New Orleans ->
1970-06-06 Fillmore West SC 11 03:14 Good Lovin’
1970-06-06 Fillmore West SC 12 06:40 Attics Of My Life
1970-06-06 Fillmore West SC 13 03:54 Dire Wolf ->
1970-06-06 Fillmore West SC 14 03:55 Alligator ->
1970-06-06 Fillmore West SC 15 05:44 Drums ->
1970-06-06 Fillmore West SC 16 14:47 Jam ->
1970-06-06 Fillmore West SC 17 24:13 Turn On Your Lovelight ->
1970-06-06 Fillmore West SC 18 04:17 Not Fade Away ->
1970-06-06 Fillmore West SC 19 10:21 Turn On Your Lovelight
1970-06-06 Fillmore West SC 20 06:34 Uncle John’s Band
1970-06-07 Fillmore West S 01 03:22 Don\’t Ease Me In
1970-06-07 Fillmore West S 02 03:39 Silver Threads And Golden Needles
1970-06-07 Fillmore West S 03 00:08 My Dog Has No Nose
1970-06-07 Fillmore West S 04 03:36 Friend Of The Devil
1970-06-07 Fillmore West S 05 06:27 Candyman
1970-06-07 Fillmore West S 06 02:24 Cold Jordan
1970-06-07 Fillmore West S 07 03:42 Swing Low Sweet Chariot
1970-06-07 Fillmore West S 08 04:23 Cumberland Blues
1970-06-07 Fillmore West S 09 03:37 Me And My Uncle
1970-06-07 Fillmore West S 10 09:08 New Speedway Boogie
1970-06-07 Fillmore West S 11 02:21 Cryptical Envelopment
1970-06-07 Fillmore West S 12 01:48 drums
1970-06-07 Fillmore West S 13 09:33 The Other One
1970-06-07 Fillmore West S 14 11:12 Cryptical Envelopment \> Jam
1970-06-07 Fillmore West S 15 01:14 drums
1970-06-07 Fillmore West S 16 04:52 Main Ten jam
1970-06-07 Fillmore West S 17 05:12 transition \> Sugar Magnolia
1970-06-07 Fillmore West S 18 00:50 Louie Louie tease
1970-06-07 Fillmore West S 19 08:10 It’s A Man’s, Man’s, Man’s World
1970-06-07 Fillmore West S 20 03:20 Mama Tried
1970-06-07 Fillmore West S 21 03:15 Sittin On Top Of The World
1970-06-07 Fillmore West S 22 05:32 Teddy Bears Picnic tease
1970-06-07 Fillmore West S 23 07:59 Cosmic Charlie
1970-06-07 Fillmore West S 24 05:20 Casey Jones
1970-06-07 Fillmore West S 25 02:42 drums \> Good Lovin\’
1970-06-07 Fillmore West S 26 03:43 drums
1970-06-07 Fillmore West S 27 11:15 Good Lovin
1970-07-14 Euphoria Ballroom S 01 03:00 Don’t Ease Me In*
1970-07-14 Euphoria Ballroom S 02 03:40 Friend Of The Devil
1970-07-14 Euphoria Ballroom S 03 02:03 Tuning
1970-07-14 Euphoria Ballroom S 04 07:30 Dire Wolf
1970-07-14 Euphoria Ballroom S 05 03:15 Dark Hollow
1970-07-14 Euphoria Ballroom S 06 06:49 Candyman
1970-07-14 Euphoria Ballroom S 07 08:51 Black Peter
1970-07-14 Euphoria Ballroom S 08 05:03 How Long Blues
1970-07-14 Euphoria Ballroom S 09 05:26 Deep Elem Blues
1970-07-14 Euphoria Ballroom S 10 05:11 Cumberland Blues
1970-07-14 Euphoria Ballroom S 11 09:13 New Speedway Boogie
1970-07-14 Euphoria Ballroom S 12 04:42 Casey Jones
1970-07-14 Euphoria Ballroom S 13 05:50 El Paso
1970-07-14 Euphoria Ballroom S 14 10:55 China Cat Sunflower->
1970-07-14 Euphoria Ballroom S 15 02:53 Easy Wind
1970-07-14 Euphoria Ballroom S 16 03:30 Me and My Uncle
1970-07-14 Euphoria Ballroom S 17 02:08 Cryptical Envelopment->
1970-07-14 Euphoria Ballroom S 18 07:09 Drums->
1970-07-14 Euphoria Ballroom S 19 10:12 The Other One->
1970-07-14 Euphoria Ballroom S 20 05:18 Cryptical Envelopment->
1970-07-14 Euphoria Ballroom S 21 08:24 Cosmic Charlie
1970-07-14 Euphoria Ballroom S 22 06:17 Good Lovin’
1970-07-14 Euphoria Ballroom S 23 07:24 Uncle John’s Band
1970-07-16 Euphoria Ballroom SC 01 01:56 //China Cat Sunflower ->
1970-07-16 Euphoria Ballroom SC 02 04:51 I Know You Rider ->
1970-07-16 Euphoria Ballroom SC 03 08:26 Candyman
1970-07-16 Euphoria Ballroom SC 04 17:49 Turn On Your Lovelight
1970-07-30 The The Matrix S 01 07:12 To Lay Me Down
1970-07-30 The The Matrix S 02 04:06 Dire Wolf
1970-07-30 The The Matrix S 03 06:41 Candyman
1970-07-30 The The Matrix S 04 02:27 Tuning/Talk
1970-07-30 The The Matrix S 05 03:40 Rosalie McFall*
1970-07-30 The The Matrix S 06 02:16 Tuning/Talk**
1970-07-30 The The Matrix S 07 03:55 A Voice From On High**
1970-07-30 The The Matrix S 08 03:09 Swing Low, Sweet Chariot**
1970-08-30 KQED Studios S 01 07:36 Easy Wind
1970-08-30 KQED Studios S 02 07:39 Candyman
1970-08-30 KQED Studios S 03 05:00 Casey Jones
1970-08-30 KQED Studios S 04 03:53 Brokedown Palace ->
1970-08-30 KQED Studios S 05 05:50 Uncle John’s Band
1970-09-18 Fillmore East S 01 10:02 Truckin’
1970-09-18 Fillmore East S 02 08:41 Black Peter
1970-09-18 Fillmore East S 03 05:00 Me and My Uncle
1970-09-18 Fillmore East S 04 04:14 Operator
1970-09-18 Fillmore East S 05 16:02 Dancin’ In The Street
1970-09-18 Fillmore East S 06 06:34 St. Stephen ->
1970-09-18 Fillmore East S 07 09:48 Not Fade Away ->
1970-09-18 Fillmore East S 08 16:50 Good Lovin’
1970-09-18 Fillmore East S 09 02:17 And We Bid You Goodnight
1970-09-19 Fillmore East S 01 02:16 Sugar Magnolia
1970-09-19 Fillmore East S 02 25:23 Dark Star ->
1970-09-19 Fillmore East S 03 06:17 St. Stephen ->
1970-09-19 Fillmore East S 04 09:24 Not Fade Away ->
1970-09-19 Fillmore East S 05 22:08 Turn On Your Lovelight/Crowd
1970-09-19 Fillmore East S 06 04:53 House Music/Final Remarks
1970-09-20 Fillmore East S 01 07:17 Uncle John’s Band
1970-09-20 Fillmore East S 02 06:11 Deep Elem Blues
1970-09-20 Fillmore East S 03 03:46 Friend of the Devil
1970-09-20 Fillmore East S 04 03:25 Big Railroad Blues
1970-09-20 Fillmore East S 05 03:07 Dark Hollow
1970-09-20 Fillmore East S 06 04:36 Ripple
1970-09-20 Fillmore East S 07 06:30 To Lay Me Down
1970-09-20 Fillmore East S 08 05:57 Truckin’
1970-09-20 Fillmore East S 09 03:44 Rosalie McFall
1970-09-20 Fillmore East S 10 05:23 Cumberland Blues
1970-09-20 Fillmore East S 11 10:03 New Speedway Boogie
1970-09-20 Fillmore East S 12 05:35 Brokedown Palace
1970-09-20 Fillmore East S 13 02:30 Together Again (NRPS) //
1970-09-20 Fillmore East S 14 01:16 Intro
1970-09-20 Fillmore East S 15 05:06 Casey Jones
1970-09-20 Fillmore East S 16 05:31 China Cat Sunflower->
1970-09-20 Fillmore East S 17 05:00 I Know You Rider
1970-09-20 Fillmore East S 18 05:03 Candy Man
1970-09-20 Fillmore East S 19 03:51 Sittin’ on Top of the World
1970-09-20 Fillmore East S 20 02:25 Good Lovin’ //
1970-09-20 Fillmore East S 21 03:11 Big Boy Pete
1970-09-20 Fillmore East S 22 01:20 tuning
1970-09-20 Fillmore East S 23 03:29 Me and My Uncle
1970-09-20 Fillmore East S 24 11:10 Easy Wind
1970-09-20 Fillmore East S 25 06:16 Sugar Magnolia
1970-09-20 Fillmore East S 26 06:48 Attics of My Life
1970-09-20 Fillmore East S 27 03:16 Mama Tried
1970-09-20 Fillmore East S 28 14:58 Not Fade Away->
1970-09-20 Fillmore East S 29 19:28 Caution->
1970-09-20 Fillmore East S 30 06:35 Feedback->
1970-09-20 Fillmore East S 31 04:16 And We Bid You Goodnight
1970-10-04 Winterland S 01 03:03 Till The Morning Comes
1970-10-04 Winterland S 02 06:23 Brokedown Palace
1970-10-04 Winterland S 03 03:32 Next Time You See Me
1970-10-04 Winterland S 04 06:00 Cold Rain & Snow
1970-10-04 Winterland S 05 05:29 China Cat Sunflower>
1970-10-04 Winterland S 06 05:09 I Know You Rider
1970-10-04 Winterland S 07 03:11 Good Lovin’>
1970-10-04 Winterland S 08 06:08 Drums>
1970-10-04 Winterland S 09 06:23 Good Lovin’
1970-10-04 Winterland S 10 04:55 Sugar Magnolia
1970-10-04 Winterland S 11 04:43 Casey Jones
1970-10-04 Winterland S 12 06:52 Uncle John’s Band
1970-11-16 Fillmore East S 01 02:09 Friend Of The Devil
1970-11-16 Fillmore East S 02 06:14 Cold Rain And Snow *
1970-11-16 Fillmore East S 03 07:17 King Bee +
1970-11-16 Fillmore East S 04 05:25 I Know You Rider
1970-11-16 Fillmore East S 05 07:56 Hard To Handle
1970-11-16 Fillmore East S 06 05:22 Big Railroad Blues
1970-11-16 Fillmore East S 07 02:39 Mama Tries
1970-11-16 Fillmore East S 08 09:28 Not Fade Away->
1970-11-16 Fillmore East S 09 08:41 Goin’ Down The Road Feelin’ Bad->
1970-11-16 Fillmore East S 10 09:11 Truckin’-> +
1970-11-16 Fillmore East S 11 08:01 The Other One +
1970-11-16 Fillmore East S 12 07:22 Uncle John’s Band
1970-12-17 The Matrix S 01 07:14 Hard to Handle
1970-12-17 The Matrix S 02 07:27 Candyman
1970-12-17 The Matrix S 03 04:08 Me and My Uncle
1970-12-17 The Matrix S 04 05:37 Cold Rain and Snow
1970-12-17 The Matrix S 05 12:12 Dancing in the Street
1970-12-17 The Matrix S 06 07:23 Uncle John’s Band
1970-12-31 Winterland S 01 03:58 Dire Wolf,
1970-12-31 Winterland S 02 01:58 Cryptical ->
1970-12-31 Winterland S 03 07:51 Drums ->
1970-12-31 Winterland S 04 10:34 Other One -> Cryptical ->
1970-12-31 Winterland S 05 09:00 Black Peter,
1970-12-31 Winterland S 06 05:20 Sugar Magnolia

Sharepoint 2013: Get Me Out Of Here (Part I): Full Trust Proxy   1 comment

  • A Note About Our Development Environment: We’re all Bozos on This Bus

After several frustrating attempts to construct a working Sharepoint 2013 RTM development environment locally on both physical and Hper-V hardware we finally got out our (corporate) credit cards are purchased virtual cloud environments from CloudShare.   For a very reasonable fee, I have a three server reference implementation of Sharepoint 2013 RTM  (Sharepoint Server, Windows 2012 server SQL Server and Windows 2012 Active Directory Server).  All of which is fully re-configurable.  Plus all the Microsoft products you can shake a stick at (Visual Studio 2012, Office 2013 and more at no extra cost.  Make the pain go away.  If you are developing now and are waiting for corporate to configure Sharepoint or struggling to configure Sharepoint on your own STOP – Go cloud based.  Easy, fast, and fun.

  • SPProxyOperation Class How to Call into a Full Trust Assembly (Farm Solution) From a Sandbox Solution
 
 

The MSDN official documentation of the Full Trust Proxy Class is the rather terse:

 
public abstract class SPProxyOperation
public abstract Object Execute(
	SPProxyOperationArgs args
)
public abstract class SPProxyOperationArgs()

public static Object ExecuteRegisteredProxyOperation(
	string assemblyName,
	string typeName,
	SPProxyOperationArgs args
)

What more could you want? Start by reading base reference articles from MSDN:

You should review these papers before proceeding with this blog. I am attempting here to

  • correct some errors in those papers;
  • clarify some ambiguous points; and
  • provided some simplifications to development procedures.

You should refer to these papers for additional details and hand holding for sections of code development I am not going to discuss herein.

  • Step One Create a Full Trust Proxy.

Create a new Project as a Sharepoint 2013 – Empty Project and set the Sharepoint Server and select Farm Solution in the setup dialog box.  Once the project is created open the property pages for the project.  On the Application Tab:

Set Default Namespace: (for example) Contoso.SharePoint.UserCode

Set Assembly Name as Namespace.AssemblyName (for example) Contoso.SharePoint.UserCode.myProxyOp

On the Sharepoint Tab in the post-deployment step add this code:

net stop SPUsercodeV4

net start SPUsercodeV4

which will stop and restart the User Code module after deployment. Save The project and close the Property pages. 

Open the AssemblyInfo.cs file in your project and add this line to the bottom of the file:

[assembly: AllowPartiallyTrustedCallers]

This will enable Sandbox solution web parts to call the assembly.

Now create a new item for your project:  a class file.  Here is a simple shell of the code you will need to write.

//using statements

using Microsoft.SharePoint;

using Microsoft.SharePoint.Administration;

using Microsoft.SharePoint.UserCode;

namespace Contoso.SharePoint.UserCode

{

public class myProxyOp : SPProxyOperation

{

      public override object Execute(SPProxyOperationArgs args)

{

               if (args != null)

{

                  //Decode the arguments to your specific needs:

                  //See the two Serializable Classes below

MyProxyArguments myArgs = args as MyProxyArguments;

                                  MyProxyReturnDataStructure myData=new MyProxyDataStructure(myArgs.Thing1, myArgs.Thing2, myArgs.Thing3);

                

                  //Your FULL trust Code Goes Here

                  // …

                  // return your results

                  List<MyProxyReturnDataStructure> myReturnList=new List<MyProxyReturnDataStructure>();

                  myReturnList.Add(myData);

return myReturnList;

               } else{

                  //do nothing if the SPProxyOperationArgs is null

                  return null;

               }

       }

}

//Helper to Define the return object, optional

[Serializable]

public class MyProxyReturnDataStructure

{

public String Thing1 { get; set; }

public String Thing2 { get; set; }

public String Thing3 { get; set; }

       public MyProxyReturnDataStructure(string thing1, string thing2, string thing3)

       {

     Thing1 = thing1;

     Thing2 = thing2;

     Thing3 = thing3;

       }

}

//Define the parameter class (Argument Class) to pass arguments into the proxy class

[Serializable]

public class MyProxyArgumentsClass : SPProxyOperationArgs

{

       //Define Arguments

       public string Thing1 { get; set; }

       public string Thing2 { get; set; }

       public string Thing3 { get; set; }

       //Initialize Arguments (Optional)

public MyProxyArguments(string thing1, string thing2, string thing3)

{

Thing1 = thing1;

            Thing2 = thing2;

            Thing3 = thing3;

        }

    }

}

  • Add Registration Feature For your Full Trust Proxy

We must add an event receiver For Feature Activation and Deactivation. Why? Who Knows, just do it, its purely boiler plate code and we are only supplying the Class name of our class derived from SPProxyOperation.  Please remember to set the Scope to FARM.  See the Reference articles for details.

using System;

using System.Runtime.InteropServices;

using System.Security.Permissions;

using Microsoft.SharePoint;

using Microsoft.SharePoint.UserCode;

using Microsoft.SharePoint.Administration;

namespace Contoso.SharePoint.UserCode.Features.Registration

{

/// The GUID attached to this class may be used during packaging and should not be modified.

[Guid("a2a9ac81-7338-4f76-8f29-6a55f5aed186")]

public class RegistrationEventReceiver : SPFeatureReceiver

{

public override void FeatureActivated(SPFeatureReceiverProperties properties)

{

Type type = typeof(myProxyOp);

SPProxyOperationType proxyOperationType = new SPProxyOperationType(type.Assembly.FullName, type.FullName);

SPUserCodeService userCodeService = SPUserCodeService.Local;

userCodeService.ProxyOperationTypes.Add(proxyOperationType);

userCodeService.Update();

}

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)

{

Type type = typeof(myProxyOp);

SPProxyOperationType proxyOperationType = new SPProxyOperationType(type.Assembly.FullName, type.FullName);

SPUserCodeService userCodeService = SPUserCodeService.Local;

userCodeService.ProxyOperationTypes.Remove(proxyOperationType);

userCodeService.Update();

}

}

Note that I have removed the attribute adornment of both the SPProxyOperation class and the SPProxyOperationArgs class of

[Microsoft.SharePoint.Security.SharePointPermission(System.Security.Permissions.SecurityAction.LinkDemand, ObjectModel=true)]

This adornment is both obscure and lead to errors when the proxy class was called by the Farm solution. We note that the abstract class definition as documented in MSDN has these attributes already so there loss from the user code seems to not be a problem.

One final code addition, open the feature xml file, it will look something like:

<!–?xml version=”1.0″ encoding=”utf-8″ ?>

<Feature AlwaysForceInstall=”TRUE” xmlns=”http://schemas.microsoft.com/sharepoint/”>

</Feature>

We have added the attribute and value given in RED above. This will allow you to retract and deploy this package multiple times without manually removing the registration feature each time.

Build and Deploy your project to your Sharepoint server.  Ok, now we are ready to write a Farm solution to call the proxy.

  • Create A Sandbox solution to use the Full Trust Proxy Class

Get the public key of the Assembly which contains the Full Trust Proxy Class

Visual Studio command line utility called sn.exe.  It can be used to extract the public key from a strongly named assembly.

Get the physical address of the assembly you created.  You do not need to manually access the assembly in GAC.  In my example above this path is

C:\Users\Administrator.AD2012\Documents\Visual Studio 2012\Projects\WebAdminInfoOp\myProxyOp\bin\Debug

use this and the SN utility to get the public key:

{path}\SN –T {projectpath}\Contoso.SharePoint.UserCode.myProxyOp

Create a new Visual Studio Project Sharepoint 2013 Empty Project and make it a SANDBOX solution.  See the reference article for details.

Add a reference to your full trust assembly you developed above.  You do not need to use the assembly in the GAC, use the physical project path you obtained above.

The guts of the Sandbox solution is the call to the Full Trust Proxy. Use a non-visual Web Part to implement the call.   This critical code will look like this:

using Microsoft.SharePoint.Utilities;

using Contoso.SharePoint.UserCode;

//get the Assembly name,  the class name and the assembly’s Public key into strings into strings

String publicKey=”0c2fc14b21374a34”;

String assemblyName=”Contoso.SharePoint.UserCode.myProxyOp”;

String proxyOperationClassName = “Contoso.SharePoint.UserCodemyProxyOp”;

String fourPartProxyAssemblyName =String.Format(“{0},Version=1.0.0.0,Culture=neutral,{1}”, assemblyName,publicKey);

//Get the arguments ready

MyProxyArgumentsClass args = new MyProxyArgumentsClass(“a”,”B”,”c”);

//Make the call

Object returnObject = SPUtility.ExecuteRegisteredProxyOperation(fourPartProxyAssemblyName,proxyOperationClassName, args);

//translate the results back from type object

List myList = returnObject as List;

Ok that’s the code: see the reference articles for details on creating Farm solutions.  Deploy and add the Web part any Sharepoint page and off you go.

Aaron Swartz, Internet Pioneer Dead at Age 26,An Index of Recent Blog and News Articles   1 comment

Aaron Swartz, Internet Pioneer, Found Dead Amid Prosecutor ‘Bullying’ in Unconventional Case.

Great Set of Links about Aaron and the case on the blog: Schneier On Security

Amy Goodman on the Truthdig site.

BoingBoing: RIP, Aaron Swartz

JAconbin: How Aaron Swartz Helped Save my Ass.

NYT: What is a Hacktivist?

EFF:  Farewell to Aaron Swartz, an Extraordinary Hacker and Activist.

EFF: Follow up article and links to more links about Arron.

Anonymous, The Next Web:

Hackers knock out MIT and DOJ websites in tribute to Aaron Swartz

Altnet: 10 Awful Crimes That Get You Less Prison Time Than What Aaron Swartz Faced for Freeing JSTOR Articles

Rolling Stone

Big Think

The New York Times often covered Aaron and now with his death they have continued this coverage.  Here are some additional NYT links and Aaron in life and death:

Obit

2013 articles: here, here, here, here and here

2011 articles: here, here, here and here

2009: here

SOPA Campain: 

Free JSTOR!

Steal This Page: Abbie Hoffman, American Hero   Leave a comment

Today for no apparent reason we commemorate Abbie Hoffman.

Here are some free links to books and a facsimile of Abbie’s Realist Article which you may steal.

Fuck The System

Steal This Book

Revolution For The Hell Of It (Realist Article, includes Jerry Rubin’s Statement)

Shall I go off and away to bright Andromeda?
Shall I sail my wooden ships to the sea?
Or stay in a cage of those in Amerika??
Or shall I be on the knee?
Wave goodbye to Amerika
Say hello to the garden.

                                                                                                               Jefferson Starship (Let’s Go Together)

Out Demons, Out!

The Fugs (Ed Sanders)

Oct 21 1967: 70,000 demonstrators came to Washington, D.C. to “Confront the War Makers.” The biggest rally was held at the Lincoln Monument on the D.C. Mall. During the afternoon, people lined the reflecting pool and listened to speeches by Dave Dellinger and Dr. Benjamin Spock… The plan was for people to sing and chant until the Pentagon was levitated and turned orange, driving out the evil spirits and ending the war in Viet Nam. By the way, it was a year later that Abbie Hoffman was arrested in Washington DC for wearing a shirt that resembled the design of an American flag. “I wore the shirt because I was going before the un-American Activities Committee of the House of Representatives, and I don’t particularly consider that committee American, and I don’t consider that House of Representatives particularly representative. And I wore the shirt to show that we were in the tradition of the founding fathers of this country.”

Abbie later wrote:

No need to build a stage, it was all around us. Props would be simple and obvious. We would hurl ourselves across the canvas of society like streaks of splattered paint. Highly visual images would become news, and rumor-mongers would rush to spread the excited word. … For us, protest as theater came natural. We were already in costume. … Once we acknowledged the universe as theater and accepted the war of symbols, the rest was easy. All it took was a little elbow grease, a little hustle.

The first duty of a revolutionist is to get away with it. The second duty is to eat breakfast. I ain’t going.

  • Spoken to police immediately prior to his arrest at the Lincoln Hotel Restaurant in Chicago (August 1968), quoting himself in “Creating the Perfect Mess” (1 September 1968) in Revolution for the Hell of It (1968)

The 1968 Democratic Convention

-

Tactics At the Democratic Convention

-

Abbie Hoffman was a founder with Jerry Rubin of the semi-fictional Youth International Party. Abbie described himself as “an orphan of America” and “a child of Woodstock Nation.” during testimony in the Chicago 8 trail.  He was, perhaps, the most intriguing figure in Judge Hoffman’s courtroom.  Hoffman believed that identity is defined by myth propagated through the media.

Hoffman was born in Worcester, Massachusetts on November 30, 1936.  He graduated from Brandeis in 1959, then picked up a master’s degree at Berkeley.  In the early 1960′s, he returned to Worcester to work as a psychologist in a state hospital.  His career in political activism began with his work for the Student Nonviolent Coordinating Committee in the South.  Hoffman was still relatively straight until 1966 when he turned onto drugs and began the loosely organized Yippie movement.

Hoffman went underwent plastic surgery and assumed the underground alias of “Barry Freed” in 1974 to avoid trial on charges of possessing cocaine. He stayed underground in upper New York state until 1980, when he surrendered to authorities.  He was sentenced to a work-release program in 1981-82, then resumed his life of political activism.  In 1987, Hoffman was arrested for the forty-second time while protesting CIA recruitment at the University of Massachusetts with Amy Carter and thirteen others.

At a 1988 reunion of the Chicago Seven, Hoffman described himself as “an American dissident.  I don’t think my goals have changed since I was four and I fought schoolyard bullies.”

On April 12, 1989, Hoffman was found dead at his home in New Hope, Pennsylvania.  The death was later ruled a suicide.

The Chicago Eight ( later Seven)

-

You can count me out (in).  You had to be there.

There will be no fist shaking and we caution you not to repeat it. Judge Hoffman

Ruben Bolling’s Amazing Comic: Bill O’Reilly’s Nightmare   Leave a comment

Tom the Dancing Bug

Ruben Bolling’s Amazing Comic: Bill O’Reilly’s Nightmare

 

Cloud Atlas – Apocalypse Then and Now   Leave a comment

A version Of the Script is available here.

image

For those of you like me here is a graphical guide to actors and roles in this marvelous film.

This one is from Cinema Blend:

Cloud Atlas reminded me of another tale of the 1970′s (Perhaps an alternative history):

On the evening of November 13, 1974 Karen Silkwood, a 28‑year‑old laboratory assistant, left a union meeting near her work in an Oklahoma plutonium plant to make a 30‑mile drive to Oklahoma City. She was a skilled driver, travelling alone on an important mission ‑ to deliver to an official from her union’s national headquarters documented evidence of radiation leaks and other hazardous ‑ practices in her workplace: a plutonium recycling plant operated by the Kerr‑McGee Corporation. She had gathered the evidence secretly, but in an amateurish way which aroused the suspicion of her employers, and she was last seen minutes before she started on her journey, carrying a manila folder.

Karen never reached her destination. Unaccountably, her car veered off the lonely road and plunged into a deep culvert. She was killed instantly and the manila folder was never found. Police ruled her death accidental, but experts from her union who examined her battered car alleged that some of its damage was consistent with it having been rammed from behind by a heavier vehicle. A post‑mortem showed that Karen had low levels of alcohol and a tranquilising drug in her body, suggesting another possible cause of death.

Was she murdered or did she fall asleep at the wheel? And what happened to the documents which she was expected to hand over to the two men who were waiting for her in an Oklahoma City hotel ‑ the union official and a New York Times reporter? Did someone remove the folder from the car after the accident? Or did she make a last‑minute decision not to take it with her? And, if so, why hasn’t it shown up somewhere else?

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: