Action Stream

On 2008-05-09

On 2008-05-08

  • tweeted, "@TrishaLyn aw shucks. seriously, ain't no thang." (and 1 more...)
  • tweeted, "@samharrelson is that with or without a lisp?"
  • posted Time for a New Slogan Sherwin (and 1 more...)
  • posted Time for a New Slogan Sherwin
  • disqussed Re: featured t-shirt
  • tweeted, "@toddcrawford zero seconds." (and 4 more...)
  • tweeted, "@toddcrawford my gmail count is at about 1000 spams per day."
  • tweeted, "@kensavage yeah, sure. IM sjangro"
  • tweeted, "@kensavage don't stay too long, it's a scary place. what are you reading? @andrewwee's post?"
  • tweeted, "@trishalyn this house is clean http://tinyurl.com/5kd9r6"

On 2008-05-07

  • disqussed Re: More content coming soon!
  • tweeted, "@kensavage why don't you have it anymore? I just retired my old powerbook which might become a webcam for that actually. Good for travel." (and 5 more...)
  • tweeted, "@ky shaddup. it's better than workin!"
  • tweeted, "forgot to eat lunch."
  • tweeted, "@kensavage started in a much smaller tank a little over a year ago, adding to it since."
  • tweeted, "video of my fish tank: http://flickr.com/photos/sjangro/2474155706/"
  • tweeted, "I just listened to the entire latest geekcast.fm episode. down to the bitter end."
  • disqussed Re: More content coming soon!
  • tweeted, "@andrewwee thanks! it was fun to join the list of cool kids who have been on your friday podcast."

On 2008-05-06

  • tweeted, "OMG, I had to walk away from Jason Castro." (and 10 more...)
  • tweeted, "@lisaP I couldn't wait to get rid of the treo."
  • tweeted, "@lisap don't listen to them. iphone will be on 3G and have GPS soon."
  • tweeted, "@trishalyn awesome tshirt. Does it say sorry jangro on the back?"
  • tweeted, "@LizardWisdom same machine as yours. got it last summer. You'll know if it isn't fixed. listen for the screams."
  • tweeted, "@LizardWisdom iMac is back. time will tell if it's fixed. They replaced the video card."
  • tweeted, "@jimkukral say hi to me! please! ;) or just swear and say sorry."
  • tweeted, "@LizardWisdom it's fixed, but haven't picked it up yet. Take yours in for a warranty fix. They repro'ed it by stressing it for a day or two."
  • tweeted, "@lizardwisdom I was getting random glitchy horizontal lines, like this http://urltea.com/35oc plus some hanging that I hope was graphics too"
  • tweeted, "sorry, bad link http://urltea.com/35nx (and hey, urltea is back)"
  • tweeted, "When idiots attack:http://urltea.com/35nx Some people are having trouble getting to my blog. Please lmk if you are having proboems too."
  • saved the link Sweatcast: Two Miracles and Good People
  • posted When Idiots Attack (and 1 more...)
  • posted When Idiots Attack

On 2008-05-05

  • tweeted, "at town meeting voting on purhase of a tractor, police car, dump truck, and computer network." (and 4 more...)
  • tweeted, "Just pledged allegience to the flag. When is the last time you did that?"
  • tweeted, "Participating in local govt: annual town meeting"
  • tweeted, "@toddcrawford my os x ftp client of choice cyberduck"
  • tweeted, "@kensavage it won't do anything, but it's so gross you'll forget about the cold. Same effect as slamming your hand in a door. feel better ;)"
  • posted How Do I Grow My Affiliate Marketing Business?

On 2008-05-04

  • tweeted, "Back home from NYC. It's a three hour drive. Don't know why we don't go down more. Maybe it's the $400/night hotels." (and 2 more...)
  • tweeted, "@samharrelson welcome to my world of twitter gtalk strangeness"
  • tweeted, "@toddcrawford I had the same first cellphone as you. http://www.retrobrick.com/motomicro.html"

On 2008-05-03

  • tweeted, "@lisap @jericasey @affiliatetip I ordered the tiger woods. Strangely there was no big papi on the menu" (and 3 more...)
  • tweeted, "at the stage deli the sandwich I want is called the Jeter. I can't order it."
  • tweeted, "at the central park Zoo"
  • tweeted, "driving in NYC."

On 2008-05-02

  • tweeted, "@trust Boston fans are used to it all. Winning championships and losing some. down-to-the-wire playoffs, and of course the haters." (and 1 more...)
  • tweeted, "@trust nah, we're used to this."

Recent Posts

Hacking Disqus

08 April 2008 – 4:13 pm

No video for this post today. It’s just pure geekery that just cannot be made any less geeky or any more interesting by staring at my talking head.

Have I mentioned before that I <3 Disqus? I think maybe I have.

And a big thanks to the disqus guys for adding in a quick feature request I had that allowed me to pull my own disqus comments from every blog into my lifestream here on my homepage.

There are some other features that I’d like to see, and to work that out on my own, I’ve been doing some hacking and tweaking to get Disqus to do exactly what I want in Wordpress. Here’s what I’ve done so far and how you can implement it on your own.

If you do make these changes, keep a few things in mind:

  1. I did this in the beta version of the wordpress plugin.
  2. once they issue an update, these changes will be overwritten and if they haven’t addressed them, will need to be redone. That’s the life of a gangsta.
  3. proceed at your own risk.

Trackbacks

Disqus doesn’t have any support at all for trackbacks. But since Wordpress will still grab and store them in your comment database, you can still display those. Add the following code somewhere in your wp-plugins/disqus/comments.php script. Be sure to edit the one in the plugin dir. I put mine way down at the bottom.

<h3>Trackbacks</h3>
<ol>
<?php foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php } ?>
<?php endforeach; ?>
</ol>

DoFollow/NoFollow

Disqus posts all links in comments as dofollow links. (sans the rel=”nofollow”). That’s not that bad since Disqus has measures to prevent spammers. But it doesn’t stop the comment monkeys.

So I’ve been playing with a few different ways do put nofollow on some of the spammier comments while taking the opportunity to give dofollow back to the good guys.

Here’s what I did, again to comments.php. The bold code is what I added, I’ve included a little context so you can put it in yourself:

<ul id="dsq-comments">
	<?php foreach ( $disqus_response['posts'] as $comment ) : ?>
	<?php
		//SCJ added check for rel=nofollow
		if ($comment['points'] < 1 || $comment['user']['is_anonymous']) {
			$follow = ‘ rel=”nofollow” ‘;
		} else {
			$follow = “”;
		}
		//SCJ end change
		$profile_url = DISQUS_URL . ‘/people/’ . $comment['user']['profile'] . ‘/’;
	?>

That sets the $follow var which I just slip into the website link here, down about 30 lines from the first change.

<?php if ( $comment['user']['url'] ) : ?>
	<li><a href=”<?php echo $comment['user']['url']; ?>”
	target=”_blank” <?php echo $follow?>>Website</a></li>
<?php endif ; ?>

Feature Requests for Disqus

While I’m at it, here are some feature requests…

  1. Incorporate real trackback support. I don’t think I care whether you just use Wordpresses trackback support like I did or try to incorporate it into your service. If you think you can do something about the spammers and scrapers, then by all means take it in. Maybe just allow an option to show trackbacks above or below the comments?
  2. Do something with the Dofollow/Nofollow. I’m pretty happy with the rules I set, which is to add in a nofollow for anonymous commenters and for comments that have been voted down. But something more sophisticated could surely be done and would be welcomed here.
  3. I want more notifications on blogs that I comment on. Right now, I think you send me an email if someone replies to one of my comments somewhere. But if there’s a conversation going on in a blog post that I’ve commented on, I want to know about it. Can I opt to get notified of any reply in a blog post that I’ve contributed to?
  4. I want to do more with Disqus, namely allow people who read my blog to START conversations, not just respond to the ones I start. I sent you guys at Disqus an email about this with more details. But I really think you guys are just scratching the surface here.
  5. I’m sure your lunches with Loic have you thinking about video comments, so I won’t waste a wish on that one. ;)

What do you say, does anybody have other wishes? They’re hiring and surely need stuff for that Python hacker to do.

If you enjoyed this post, please subscribe to my RSS feed


Sweatcast: Two Miracles and Good People

03 April 2008 – 12:46 pm

Today’s video comes to you “fresh” from a run, so I apologize for the smell.
But just I had to get this all out.

Check it…

Mentioned, some damn good people (sorry jangro)

Gary Vay.ner.chuk, Good People Day 2008.

Share your thoughts about GP’s on GoodPeopleDay.net

I’m meeting Shawn Collins and Missy Ward in Boston tonight as they’re in planning for the Affiliate Summit East 2008 Conference in August.

Daniel and Jason from Disqus.com

Loic Lemeur’s Social Map

Stephen Weber’s Wordpress port of the ActionStream MT Plugin.

The entire GeekCast crew: Lisa Picarille, Shawn Collins, Sam Harrelson, and Jim “Kurkal” “Stinky Feet” Kukral.

And be sure to get your friends together to play Sorry Jangro. All sorts of family fun.

If you enjoyed this post, please subscribe to my RSS feed


Affiliate Fools Day

01 April 2008 – 10:54 am

Affiliate Marketers do love their April Fools Jokes.

How many times did you get Rickrolled today? Too many, I’m sure.

April Fools day is completely out of control. People way ahead in the timezones have a major advantage. It’s just not fair.

And more and more, serious news is taking over. Non-jokes are the new April Fools jokes.

Watch the video…

Stuff I Talked about

Monkey C Affiliate Social Network
Sam Harrelson’s Big Idea Agency
eBay Partner Program - the new ebay partner program launched today, April 1st. I signed up and checked it out quickly. It really looks great. C

What truly creative Affiliate Marketing April Fools stuff have you seen? Please, no rickrolls, whamrolls, etc.

If you enjoyed this post, please subscribe to my RSS feed


Evaluating Blog Comment Systems

28 March 2008 – 12:33 pm

Continuing on my everquest to reach blog comment nirvana, I’ve been evaluating some of the blog comment systems out there.

I really think that there’s a sea-change coming in the way bloggers and readers interact. The lines will blur between the authors and the readers, and even between blogs. That’s what needs to happen anyway, IMO.

In the meantime, I’ve got less lofty requirements. Here’s my definition of Blog Comment Nirvana (BCN):

1. No spam
2. Encourage comments
3. Get people thinking and talking about interesting (and maybe just fun) stuff.
4. Did I mention spam?

Is that really too much to ask?

Here’s a quick overview of what I’ve tested and learned about some of the blog comment services out there. I’ve looked at SezWho.com, IntenseDebate.com, and Disqus.com.

IntenseDebate and Disqus are very similar products. They both intercept the comment system in your blog and instead of the comments going into your own database, they store them on their servers. They store the comments as “discussions”, providing functionality for nested replies, ratings and commenter profiles.

SezWho has a lesser set of features, basically minus the threaded comment management.

All services come with the stated promise of better engaging your readers and turning them into commenters. And all have the potential to reduce comment spam. This benefit will remain to be seen. I don’t see how they can stop the comment monkeys.

Intense Debate

Intense Debate is very well designed and nice to use and look at. The comments are nicely formatted on the blog page, including avatars, RSS feeds to follow blog comments and user comments. You can edit CSS to format the comments however you like them. There’s even integration with Twitter so when you hover over a user’s avatar, you see their latest update.

On the Intense Debate site, you can see stats on your commenting behavior, how many comments you’ve left, the average size of your comments, and information on your “friends”. I haven’t come across any of my friends using it though, so I haven’t been able to exercise this much, but you can do the typical stalker behavior, view profiles, and see all the comments that your friends are leaving all over the Intense Debate enabled Interwebs.

As a blog owner, you can manage the comments that are left on your blog, but you cannot interact on the intense debate site, leave additional comments, etc. They leave that to the blog itself, which is fine.

Intense Debate has a number of widgets to show stuff like the number of comments and readers, as well as the most recent comments, some of the typical sidebar stuff you might want for your blog.

While it was a little slow tonight while I was poking around on their servers, all in all, it is a very nice system.

Installing the plugin on Wordpress was very, very simple. It has some nice options, allowing you to import all your old school comments into the Intense Debate system, as well as export the comments back into Wordpress if you want to disable it. I did test the latter, and the comments that were entered into Intense Debate have been integrated into Wordpress without a hitch. That’s a good feeling.

You can also opt to have intense debate only activate on posts that don’t (yet) have comments. So your old posts can still exist as it, with the old comment system. New posts will get the Intense Debate comments.

The major problem I have with Intense Debate is that it is integrated with Javascript. More on this later.

intense debate-1.jpg

Disqus

Disqus is also very well done and the on-blog comments, hosted by the Disqus service, are well-integrated and look very nice. Customization is possible with CSS. Threaded discussions, avatars, ratings etc. are handled nicely by Disqus.

A bonus for Disqus is that they’ve been integrated into FriendFeed recently (last week), so your comments can appear in your “lifestream”.

There is a bit more going on at the disqus service. Each blog’s has a public “forum” where the comments appear and you can participate in the comments on their server as well as on the blog. So for each blog post you have with comments, there’s a page on disqus listing all the comments. It appears that they’ve actually moved away from this “forum” idea and are now calling it “community pages”. I don’t recall the difference prior to this recent change, but the functionality is similar.

Installing the plugin is also very easy for Disqus. Likewise, you can opt to enable it only on blog posts that don’t have any comments. The import and export features are less developed. All comments can be exported to XML and RSS. I don’t know if scripts exist to import those. The Export from Wordpress to Discus is “coming soon”.

Integrated Blog Comments
disqus-1.jpg

Discus Community Page
discus forum.jpg

SezWho

I also briefly tested SezWho and honestly, it doesn’t really compare feature-wise. SezWho matches the features on the commenter ratings, avatars, etc., but doesn’t tackle the threaded discussion aspect that the other two do.

Even though I can create a profile on the SezWho server including an avatar, the avatars on the blog are taken from MyBlogLog and were a bit squished on my blog.

The good news here is that they don’t disrupt the comment database and display on the blog page, avoiding the Search Engine issues that Intense Debate has. That also means the comments stay right in your own database.

Honestly, to me, SezWho seemed a bit out of place on my blog. Their components are bright red, though perhaps that can be customized, but in my quick test it didn’t fit well with my blog design.

My primary goal is to improve my the overall community on my blog, and for that, I really like the threaded comments. So I’m discounting SezWho for now.

sezwho.jpg

The Heavy - SEO and Search Engine Impact

Here’s the big area where they differ. At least with the Wordpress plugins, which is all I’ve tested though they do integrate with other blog systems, the Disqus comments are integrated with the blog content on the back-end. The Intense Debate comments are served up to the client via javascript.

I received feedback from someone from Intense Debate in a previous blog post that Disqus uses the same Javascript method, but this is not my experience. Granted, I’m testing with their Beta version. Maybe their “stable” version uses the Javascript. Or maybe other blog platform integrations must use the Javascript. For me on Wordpress, the comments from Disqus are integrated at the server-side prior to display in the browser so the Search Engines can see it.

A concern that I do have is that a lot of my blog content is duplicated on the Disqus community pages. Hopefully not enough to create duplicate content issues with Google and other search engines, but it’s a concern. Perhaps they should provide an optional NoIndex meta tag for the community owner to enable if they wish.

SezWho doesn’t intercept comments, so this isn’t much of a concern with that service.

Summary

For me, it’s between Intense Debate and Disqus.

Feature-wise, it’s a pretty even choice between the two. They’ve both got the user profile and discussion features pretty well nailed. Feature-wise, I don’t really feel like I’m missing anything from either one, though they each have their unique nice-to-haves.

It comes down to a few things. Disqus has the risk of duplicate content on their “community pages”, though besides that concern, the community pages are a nice extension to my blog. Intense Debate is a full Javascript integration which means that my comments are nowhere to be seen by search engines. And that’s the kicker for me.

I’m going to give Disqus a try on this blog, starting with this post. Give it a go. Even if you’ve got nothing to say, leave a comment!

If you enjoyed this post, please subscribe to my RSS feed


I <3 Women Affiliate Marketers

27 March 2008 – 4:02 pm

Today’s video blog is completely off the cuff, fresh in from a run. Yeah, getting back into it after a long winter.

Here are some links to the stuff I rambled on about…

GeekCast episode I was listening to during my run.

Lisa Picarille asks the question, Videoblogging: Is it a man’s World? and goes on to answer the question with her
Video debut.

Jen Goode’s video: Pricing what you’re worth. Jen, is there a blog post I can link to?

Trisha Lyn’s Video: March BAAMC Meeting Sorry, Trish, I spaced in the video. Of course you have a last name. It’s in my face all the time on Twitter, pownce, etc. Duh.

Jim Kukral’s TwitterMeThis?

Fun stuff. Check’em out. I’m off to the showers.

Added: OMG How could I have missed this one when compiling the “Women of affiliate marketing” list of videoblog posts? Missy!

If you enjoyed this post, please subscribe to my RSS feed


Twitter Become Facebook?

26 March 2008 – 8:47 am

This morning I watched Gary Vaynerchuk with no C compare Facebook and Twitter and thought I’d grab my own real-time reaction to what he had to say.

Rather than a comparison between Twitter and Facebook, which there isn’t much of in my opinion, I find myself wondering, will Twitter turn into Facebook?

I know some of you are probably asking, why the fascination with Twitter? In my mind, it’s got potential on par with Facebook and Myspace. If you’re the type of person that would read a blog like this (except you mom) you need to know Twitter. Even if it hurts, jump in. Friend me on Twitter.

Very low production and preparation for this video. If I’m going to be able to post with any regularity, I need just push these out. So, damn the black eye and the facial hair. To hell with preparation and editing. Let’s get on with it.

If you enjoyed this post, please subscribe to my RSS feed


The Action is in the Comments

21 March 2008 – 2:00 pm

My favorite part of blogging has always been the comments. I enjoy participating in discussions on other blogs and I love when lively discussions happen on my own blog posts. It’s what keeps me going. I love comments!

It totally blows my mind when bloggers have comments disabled on their website, or even when people require accounts to get people to comment. I understand that these decisions are mostly driven by spam issues, but try not to let the spam ruin a great thing. Make it easy for real people to comment!

More and more, I’ve been noticing the use of some pretty fancy comment plugins for Wordpress.

Here are some great new tools that you can use to pimp up your blog comments:

Video Comments
Viddler Video Comments

Comments on Steroids
Disqus Comment System
SezWho Comment System
IntenseDebate Comment System

I want so badly to try out one of these comment systems, but they make me a bit nervous from a data migration perspective. The comments are stored on their servers, which is fine, but can I get them out and put them into my blog later if I don’t want to use them any more?

They also concern me from a search engine perspective. Some of them are pure javascript includes, which mean when a search engine comes by, the comments are invisible.

I’ll be experimenting with these on my test blogs, and will post more on what I find and some recommendations.

Sites Mentioned in Video:
CostPerNews
Mashable

If you enjoyed this post, please subscribe to my RSS feed


Twitter Teams

20 March 2008 – 11:00 am

Something really interesting is brewing in the Twitterverse. (Did I just say twitterverse?)

Out of the blue (no pun intended, you’ll see), Ze Frank declared that he was on the “Blue Team”. No explanation, he changed his picture to contain a blue team badge on the bottom, talked it up a bit, and that was it, @blueteam is born.

Now different colored teams have popped up.

It seems to me that Ze is totally messing with us with another one of his social experiments. But that’s ok, we like Ze, and he has permission to screw with our heads. It’s amusing anyway.

Gary Vaynerchuk of Winelibrary.tv jumped in both feet and created the @verygreenteam.

It’s all sort of silly, but what’s interesting is that Twitter has no control over this. They didn’t create a Teams or Groups feature. We’re just using what we’ve got to make it happen on this platform they’ve created. Add some color badges to our profile pictures and all of a sudden…teams!

That must be pretty a pretty cool feeling that something they built is taking on a life of its own. And probably a little scrary. So yeah, I think it’s earned the term, “twitterverse”.

So far, there’s no purpose for this, but Ze Frank seems to be up to something. Keep an eye on it.

In the meantime, I’m going to mess back in my own little way and join two teams, the @verygreenteam and the @blueteam. That gives us the @bluegreenteam, which isn’t really a team, it represents two teams. Or maybe it is a team. Who knows? There are no rules. If you want to join me in stressing the system , here’s a graphic for you to use.

bluegreenteam1.png

Mentioned in this video:

Twitter
Ze Frank
Gary Vaynerchuk

If you enjoyed this post, please subscribe to my RSS feed


eBay, CJ, and St. Patrick’s Day

17 March 2008 – 9:39 am

I’m a little torn up this morning about what’s more important to talk about, the eBay and CJ news or that it is St. Patrick’s Day. So let’s combine.

eBay announced today that they are taking their U.S eBay and Half.com affiliate programs in house.

More details are available from eBay directly, but the short of it is that on April 1st, affiliates will be able to register for the in-house program with a goal of having the program migrated affiliate links by May 1st.

Yes, change out affiliate links.

A year and a half ago, eBay changed their links from standard CJ tracking links to their own “rover” tracking links on an eBay domain, specifically rover.ebay.com. The most obvious reason for this, or seemingly so, was that they could just cut CJ out of the mix once they had ownership over the tracking links. We’ve been waiting for this other shoe to drop for so long that it was all but forgotten. It’s beyond me why they aren’t leveraging this in the transition. Perhaps that was never the plan in the first place and it was always just about SEO as some others speculated.

I spoke to Dave Osman, Sr. Vice President of Operations at Commission Junction who told me that this has been in the works for a long time now, and has been factored into the public company’s financial forecasts for quite some time. I’m sure CJ will be just fine.

eBay hasn’t ended the relationship that they have with Valueclick and will continue to employ the services of the Medaiplex division.

From a purely selfish standpoint, I think this could be a good thing. First of all, I’m not a major eBay affiliate, so the fire drill doesn’t affect me in any significant way. We’ll have only a little bit of scrambling around to do.

eBay is the type of client that can essentially demand anything from a vendor. Custom requirements keep development teams from focusing on product improvements and are generally very disruptive. Hopefully this will allow the CJ product development team to focus more on non-ebay-specific requirements and innovate more in the way they should be.

Surprising news? Does this impact you?

I tried to have a story ready to be “First!” with the news, but it was scooped by ValleyWag last night, and my good friends Shawn Collins and Sam Harrelson were hovering over the submit button this morning. Be sure to read their takes on this as well.

And, you know what they say, if you can’t be first, be better. Do they say that? I don’t know. I do anyway.

So, I celebrate the occasion, and St. Patrick’s Day with the inaugural video blog by yours truly.

OK, maybe not better. But different. It was fun for me anyway. A beer at 8am on Monday. Let me know what you think.

From the video: Shillelagh is the correct spelling of, well, “shil-lay-lee”

If you enjoyed this post, please subscribe to my RSS feed


Don’t Hate. Innovate.

14 March 2008 – 6:55 am

You ever get the feeling that every idea in the world has been thought of already?

It happens to me every day. My brain’s always working on the next “big idea” for us to work on. Once in a while I get that killer idea that I know could be a huge success.

It happened again to me yesterday. I had an idea for a fun website. It would also make a great Facebook app. It stuck with me all day and I had sort of mapped out how the site would work in my head. I started thinking about names for the website and came up with the perfect name. The plain two-word version of that name was taken by someone doing something completely unrelated, so I changed it up into something more fun and typed it into my browser…

DAMMIT. There it was. My idea, all finished and running on the domain that I though of.

How many times has this happened to you? How do you react to this kick in the stomach? Do you drop the idea? I think most people probably do.

I was reminded today that just because a good idea has been done already, doesn’t mean that you cannot do it better.

We all know about the TinyURL service, right? You’ve got a big long URL you want to share with someone, you put it through TinyURL and they give you a nice short url that redirects to your long one. What an awesome idea. It’s been around forever. 62 million urls shortened. Why would anyone ever try to do the same thing?

TinyURL.com - shorten that long URL into a Tiny URL-1-1.jpg

That didn’t stop URLtea from trying. They do exactly the same thing but put their own spin on it. They’ve got their own take on the exact same service. In their case, you can annotate a link with a simple plain-text description on the end. And the site is prettier. Simple right? But it’s working, because I see URLtea urls around all the time now, especially on Twitter.

urlTea - smooth sips of decanted web addresses-1.jpg

And just today I’ve spotted yet a third. PeaURL. Also prettier, and they’ve innovated even further. You can opt to get a readable url. So instead of gibberish, you get a url that is somewhat memorable. Again, simple, but well done. Maybe they’ll grab a share of the market that TinyURL owns, but seems to be losing grasp of.

PEA URL-1.jpg

You’ve got a great idea that’s been done before? Don’t give up on it. Just do it better.

If you enjoyed this post, please subscribe to my RSS feed