Why aren’t there any journalistic startups?

I think it’s time that we can all agree that the news industry is failing. Hundreds of newspapers have declared bankruptcy and gone under in the past couple years — and thousands of Journalists are out of work. But I’m curious: what are all these journalists doing? Laying down and giving up? [...]

I think it’s time that we can all agree that the news industry is failing. Hundreds of newspapers have declared bankruptcy and gone under in the past couple years — and thousands of Journalists are out of work. But I’m curious: what are all these journalists doing? Laying down and giving up? I’m wondering why I don’t see a flurry of journalistic startups.

The state of startups

Call it “Valley Culture” or however the hipsters wants to spin it — there is a definite attitude of Entrepreneurship in California. I’ve lived around it my whole life. People are itching to start companies so bad that they get VCs to give them extraordinary amounts of money for really dumb ideas. I mean, really dumb ideas. Ideas that never had a hope in the world of making money, let alone becoming popular.

My point being: if we can get VCs to put up millions of dollars for practically any idea, why don’t we see more lean journalistic startups? Nothing fancy, just some (good) reporters, editors, and a small syndication (web) team. Editors & reporters generally get paid shit, and you wouldn’t need more than 2-3 tech people to support a couple dozen reporters with today’s technology — so a few million would go a long way.

It’s not the news that’s dying, it’s the news organization

Increasingly I’ve been hearing the same mantra from smart people around the web: It’s not the news that’s the problem, it’s the newsroom. In any modern newspaper, the people producing content (editors & reporters) are a small fraction of the costs. One of my favorite quotes on the subject comes from Mr Gruber:

The question these companies should be asking is, “How do we keep reporting and publishing good content?” Instead, though, they’re asking “How do we keep making enough money to support our existing management and advertising divisions?” It’s dinosaurs and mammals.

The truth is, people are hungry for news. And there’s plenty of money to be made. I don’t see TechCrunch or Mashable hurting for money. And they’re out there just producing bottom-of-the-barrel reporting. Could you imagine how much money someone would make if they had a TechCrunch style news organization with real reporters? People might even start trusting them as a source of information.

So where are the startups?

Maybe it’s me, but the answer seems so clear in my head. We have thousands of unemployed journalists. Good journalists. We have VCs ready to hand out money for a shit sandwich. We have a proven business model. Why don’t I see a flurry of journalistic startups? Get rid of the cruft of the newsroom, give power to the reporters and content producers.

Stop trying trying to grasp onto idiotic ideas like “social news” or stabbing blindly at twitter in hopes of saving an archaic organizational structure. People aren’t buying printed newspapers? Stop printing them. People only want to read their news online? Let them read it online.

America needs to stop concentrating on how to save our dying industries and start concentrating on how to create the next booming industries. Isn’t that what the American dream is all about, anyways?

Quick & Dirty Referral Tracking

Ever wondered where people came from to sign up for your web app? Recently I wanted to track referrals for Tender and wanted something quick and dirty. The only problem? Our setup page is on a different domain than our marketing site. This meant I couldn’t use Google Analytics since it thought every “goal” came from exactly one place: the marketing site.

Ever wondered where people came from to sign up for your web app? Recently I wanted to track referrals for Tender and wanted something quick and dirty. The only problem? Our setup page is on a different domain than our marketing site. This meant I couldn’t use Google Analytics since it thought every “goal” came from exactly one place: the marketing site.

So instead, what I did was hack together a quick referral script using Javascript to track where people came from and add that to a field on the Site model (each install of Tender is considered a ‘Site’). The Javascript (in MooTools):

var Tracker = new Class({
  tracker: null,

  initialize: function(){
    this.initCookie();
    this.updateCookie();
    this.markLinks();

    var field = $('site_referral');
    if (field){
      field.value = this.tracker;
    }
  },

  initCookie: function(){
    this.tracker = Cookie.read('tracker');
    if (!this.tracker || this.tracker == "") this.setTracker();
  },

  // Order of precidence
  // 1. ?source= from in the URL
  // 2. ?utm_campaign= in the URL
  // 3. Referrer / Direct
  setTracker: function(){
    var final_source = document.referrer ? document.referrer : "direct";
    var args = $get();
    if (args.utm_campaign && args.utm_campaign.trim() != '') final_source = args.utm_campaign;
    if (args.source && args.source.trim() != '') final_source = args.source;
    Cookie.write('tracker', final_source, {duration:1});
    this.tracker = final_source;
  },

  // Updates the cookie if another ?source or ?utm_campiagn is set
  updateCookie: function(){
    var final_source = null;
    var args = $get();
    if (args.utm_campaign && args.utm_campaign.trim() != '') final_source = args.utm_campaign;
    if (args.source && args.source.trim() != '') final_source = args.source;
    if (final_source){
      Cookie.write('tracker', final_source, {duration:1});
      this.tracker = final_source;
    }
  },

  markLinks: function(){
    $$('a.signup-link').each(function(el){
      el.href += "?source=" + this.tracker;
    }, this);
  }
});

function $get(key,url){
   if(arguments.length < 2) url =location.href;
   if(arguments.length > 0 && key != ""){
       if(key == "#"){
            var regex = new RegExp("[#]([^$]*)");
        } else if(key == "?"){
            var regex = new RegExp("[?]([^#$]*)");
        } else {
            var regex = new RegExp("[?&]"+key+"=([^&#]*)");
        }
        var results = regex.exec(url);
        return (results == null )? "" : results[1];
    } else {
        url = url.split("?");
        var results = {};
            if(url.length > 1){
                url = url[1].split("#");
                if(url.length > 1) results["hash"] = url[1];
                url[0].split("&").each(function(item,index){
                    item = item.split("=");
                    results[item[0]] = item[1];
                });
            }
        return results;
    }
}

The way this works is the following:

  1. If someone comes with ?source=something or ?utm_campain=something (a Google Analytics keyword), it stores that value in a cookie called ‘tracker’
  2. If no ?source or ?utm_campaign can be found, it stores the referrer
  3. If no referrer can be found, it stores the value ‘direct’
  4. Every URL that has the class signup-link gets ?source=trackerhere appended, so that the referral gets tracked over to our setup domain.
  5. If it finds a field with the id of site_referral (the rails default for Site#referral field), it sets that value to whatever is stored in the tracker cookie.

Now when people sign up, I can see where they came from in the admin panel:

Referral Screen

How To Increase Your Online Presence Right Now With Press Releases

We all want more business. More customers mean higher profits. One way to achieve this is to have a powerful online presence. Making your website work for you 24/7 should be the #1 priority of your online marketing strategy. The challenge is to get past the clutter. To soar above the competition. And to rank [...]

We all want more business. More customers mean higher profits. One way to achieve this is to have a powerful online presence.

Making your website work for you 24/7 should be the #1 priority of your online marketing strategy. The challenge is to get past the clutter. To soar above the competition. And to rank high on the search engine pages.

So, how do you successfully drive traffic to your site? Let’s look at one powerful strategy you can apply to enhance your online presence today: submitting press releases online.

Regularly publishing a newsworthy release is an excellent way to boost your online visibility. When you post, it helps maximize your SEO efforts and drives more traffic to your website. As mentioned in the previous section on directories, including keyword-rich links in the copy increases your search engine rankings. Another benefit of submitting news worthy information online is that they are archived. One release will get exposure for a long time.

Regularly posting -or whenever you have something newsworthy-is great for publicity and direct exposure. Companies, journalists, PR agencies, and the general public opt-in to have specific types of press releases sent to them daily.

There are numerous PR websites. Some are free while others charge. Express-Press-Release.com is free, easy to use, and requires no registration. www.PRWeb.com allows you to choose from 4 distribution packages. The basic package is $80 and the most advanced is $360.

Anatomy of a press release:

• Must be newsworthy and interesting.

• Must include your key message.

• When announcing a new service or product, you must be clear about what it is and why
it’s important.

Michelle Salater Writing & Editorial Inc. is a copywriting and editing company specializing in writing marketing materials for travel-oriented companies and small businesses. Visit http://www.mlsalater.com and sign up for The Tourism Marketing Solution, a free newsletter that offers articles and tips on how to successfully market your travel business.

Article Source: http://EzineArticles.com/?expert=Michelle_Salater http://EzineArticles.com/?How-To-Increase-Your-Online-Presence-Right-Now-With-Press-Releases&id=997859

Having fun with the Lighthouse API

I’ve been using Lighthouse since it’s inception, but now that I’m working with the ENTP folks I get to thinking about what to do with Lighthouse a lot more. I’ve had a few ideas on ways to play with the API and I finally got around to implementing one of those ideas with Burndown. [...]

I’ve been using Lighthouse since it’s inception, but now that I’m working with the ENTP folks I get to thinking about what to do with Lighthouse a lot more. I’ve had a few ideas on ways to play with the API and I finally got around to implementing one of those ideas with Burndown.

Burndown is a simple little app that adds a new dimension to Lighthouse – Time. It shows you a burndown chart for each milestone in your project, recording the number of open tickets each day so you can see the progress of your milestone. If you’re running in short iterations, it’s a good way to measure your team’s velocity all agile and whatnot. You can see an example for Tender’s current milestone. As a bonus, you can keep tabs on our development on Lighthouse and Tender for the sample install :)

Screenshot

Miniapps are fun

Burndown is what I’d call a miniapp — it can’t survive on it’s own, doesn’t have fancy permissioning, security or even the best code. It just gets the job done. For me, it was a way to play with a lot of new technologies I haven’t played with before. It’s currently running on Heroku, powered by Sinatra & Datamapper, with the front-end powered by jQuery & Raphael. I haven’t touched a single one of these, but the app still only took about a week to build.

If you want to try it out, I’d suggest opening up an account over at Heroku. From there, it should take a few minutes to get your own Burndown instance running.

Some thoughts on the tech

Since this was an all new experience I thought I might share some of my thoughts on the tech I used to build Burndown.

Heroku… rocks

I’d heard great things about Heroku, but never really had a need to play around with it. My first reaction: holy crap this is awesome. Getting the app up and deployed was easier than setting up WordPress on Dreamhost. That says a lot. That being said, there were definitely some rough patches debugging the app, and I’m really not sure what was causing them. I’m guessing it’s whatever database they’re using, but can’t be certain. Weird ordering with my records.

Datamapper… I’ll take AR, thanks

Datamapper was definitely a struggle. I’m not down with the way conditions work at all. I understand what they’re trying to do here, but :age.gte => 15 is freakin weird lookin Ruby no matter how you slice it. I also ran into quite a few random bugs where my association finders weren’t getting scoped (want an example of a really hard bug to track down?). All in all, I’ll take my ActiveRecord over it any day.

Sinatra… rocks, reloading does not

Sinatra is an awesome little framework. I’ve played around with it in the past to the extent of hacking other people’s code, but never deployed something for myself. It’s a pretty rockin framework, and with PassengerPrefPane it exists seamlessly in my dev environment. Unfortunately the lack of code reloading is really a pain. Can’t tell you how many times I typed in touch tmp/restart.txt

Raphael is awesome, if a bit obfuscated

I wanted to play around with a more powerful graphing library, so I ended up choosing Raphael. The end result is smooth, awesomely extendable, and fast. Unfortunately the sample code is really hard to understand. A few comments in this file would have gone miles. So would have using regular hex color values instead of crazy hue math. There is also zero documentation from what I can tell. Yes, there’s a documentation page… it does not show you how to use it.

When you HTTParty, you must party hard!

My first turn when interacting with the Lighthouse code base was to turn to the Lighthouse API gem, but because of the ActiveSupport dependency — and quite frankly gem conflicts I didn’t want to deal with — I decided to go the HTTParty route. Honestly, it’s just too easy to use. It made dealing with the API a breeze.

Go forth and create Lighthouse miniapps!

Feel free to fork / steal the source (including the design!) and create more miniapps for Lighthouse. Everyone uses bug trackers differently, and sometimes the best idea is to just build the interface / chart / feature you need. This app should cover the basics of saving / validating API keys, as well as some simple examples of how to sync data locally through cron jobs.

AdAge’s 2009 Ad Network and Exchange Guide

AdAge produced some good content on the the state of ad networks and ad exchanges in 2009. There’s numerous articles on a number of topics, but “Why Ad Exchanges are Picking Up Steam” hits closest to home for me being a Yahoo. I may update this with some more thoughts when I get [...]

AdAge produced some good content on the the state of ad networks and ad exchanges in 2009. There’s numerous articles on a number of topics, but “Why Ad Exchanges are Picking Up Steam” hits closest to home for me being a Yahoo. I may update this with some more thoughts when I get a moment…

Page 15 of 15« First...1112131415

Seth Godin: Sliced Bread

Malcolm Gladwell: Outliers

Anthony Parinello: Your Price is Too High