Twitter as Record of the Evolution of Language

In Our Magnificent Bastard Tongue, John McWhorter presents the case that the Celts were the reason for the introduction of the “meaningless ‘do'” in the English language, and presents other similar implicit influences that have no recorded evolution in formal language. Counterarguments cite that since the evolution wasn’t written down, it didn’t happen that way.

Twitter may be the first opportunity for us to actually observe a recorded evolution of language as it actually occurs. Twitter is an extension of text messaging, which is a proxy for the bleeding edge evolution of spoken language. With the Library of Congress archiving tweets, we may have the first official and publicly accessible record of the nuances of change in language.

Before Twitter, most written communication occurred, minimally, in the writer’s best dressed understanding of the language. Some email may be a little bit different, but emails are lost to abandonment of accounts and servers, and still follow etiquette more closely than a medium purposely restricted to 140 characters. I thought about its impact of recording speech usage when I mimicked nonstandard use of “because” and “why is” in my social media posts. Regardless of whether our own language use immediately evolves, we are reflecting the “misuse” of language more than ever before, and possibly as a larger sample of overall recording of language.

Why not radio and television? Because access to publishing on TV and radio is restricted to a relatively elite class of publishers, just as scribes, as the only literate class, controlled the language that was written. Art and music is more representative, but is still restricted by the boundaries of was is “good” even if a popularity formula is the judge of “good and proper” rather than grammar rules.

Facebook and other social media have similar impact, but Facebook has privacy controls that limit its visibility and other social media (LinkedIn, Google+, blogging) are prone to professional scrutiny and editing due to longer form.


Twitter Bootstrap Modal Won’t Load Content from Another (“Remote”) Page

Short answer

You apparently need a skeleton [modal … modal-body … /modal] for your data-target, not just an empty modal with the data-target.

A Programmer’s False Assumptions – The API is Broken or Old

Initially, I was concerned that my Rails plugin wasn’t using a version of Bootstrap that didn’t include the remote loading of a page into the modal (via href attribute). That functionality has only existed since 2.0.4.

However, when I checked the script being loaded into the project against the current bootstrap-modal.js on github, the MODAL DATA-API section was the same. Repeated checks of the javascript being loaded into my project confirmed that the code was up-to-date enough.

Maybe a Little Too Helpful

The forums discussing how to load remote content into a Bootstrap Modal suggested that the data-target div could be empty:
Original calling page sample:
The contents of the calling page div never changed.


“Remote” page sample

...extra code here...

...extra code here...

What Was Really Happening

The documentation states that, “If a remote url is provided, content will be loaded via jQuery’s load method and injected into the .modal-body.”

From there, I put a stub modal-body in my calling page’s modal and discovered that modal-header, modal-body, and modal-footer appeared to be getting replaced now!
New calling page:

Getting an RSS feed of a user’s Twitter timeline

I like to keep a few Twitter feeds in my RSS reader, but can never remember how to get them from Twitter.

I found “Creating an RSS feed of a users Twitter timeline“…

However, I found there is a simpler method (for now)–replace USERNAME with the twitter name. This probably fails when a user changes names, but for stable usernames, this seems to work:

All Twitter clients are worthless

That was my thought today as I was looking at the wonderfully developed, yet totally worthless, TweetDeck. Tweetdeck is so far my favorite, despite playing with Seesmic Desktop, and sobees bDule.

It seems like everyone has their own Twitter client: there are Excel clients, shell script clients, Perl clients, and many online Twitter interfaces.

What do I want?

  • If I use a new client, I better be able to import my Tweetdeck groups. I’ve never latched on to any other clients because of this barrier.
  • I don’t really want a limit on groups.
  • For every new person I follow, I should be able to have the opportunity to add them to one or more groups as a new follow.
  • I want to thread conversations and/or people’s updates.
  • I want a “show less” of this person update.
  • I would be thrilled if it would work on my mobile phone.

Is the #Twitpocalypse overhyped?

Initially heard through Programmable Web: The Twitpocalypse is Near: Will Your Twitter Client Survive?, twitter is rapidly approaching the maximum for a 32-bit signed int. You can view the countdown here.

This got a also mention at GigaOM: Today, We Think Think Twitter is Dead (for now). While the Twitpocalypse was not the primary topic of the post, it made use of it as a supporting argument:

there is a bug in the Twitter system that would be like Y2K. Apparently each tweet is identified by an integer value and the maximum signed 32-bit integer value for most database applications is 2,147,483,648. And since Twitter is getting so popular, we are inching close to that number.

The implication of the mention here is that Twitter itself will come crashing down. It shouldn’t, although many clients might have issues: those written in C (anyone?), those using the default INT in MySQL (which is 32-bit, unsigned) or SQL Server (even 2008).

Interestingly enough, SQLite would only have a problem for INTEGER PRIMARY KEY (32-bit signed int), which could be a problem for TweetDeck, although it doesn’t look like status IDs are stored as INTEGER PRIMARY KEY (apparently, it’s the only fixed type in SQLite).

Apparently each tweet is identified by an integer value and the maximum signed 32-bit integer value for most database applications is 2,147,483,648.

Also, because I had way too much computer science in college, some technicalities (both articles above made this error):

  • The correct range is [-2147483648,2147483647]. The representation for 2,147,483,648 (0x80000000) would actually be understood as -2147483648 (two’s complement).
  • The range for signed 32-bit integer values doesn’t change.

Update: Mashable has mentioned that Twitterific, Tweetdeck, Destroy Twitter, and possible Tweetie have experienced issues. It also looks like Tweets are down to 133 per second.

History repeats itself, affiliate naughtiness and twitter spam

Looking at the updates to How to Sell Your Soul on Twitter and Who’s Buying – ReadWriteWeb, it looks like all the “funding” for BeAMagpie is drying up. and StubHub have booted BeAMagpie from their affialiate programs, and I suspect the rest of the companies will too, once it gets on their PR radar screen.

Why? Because these are not direct transactions with the company being mentioned, but through 3rd party affiliate programs, and there’s nothing an affiliate network hates more than losing big companies as customers. Most affiliate networks have specific provisions on not just spamming, but where and the manner in which you are allowed to provide a link to your affiliate network–if the referal did not come from a website you specified, you may be subject to termination.

While I am in awe of BeAMagpie’s gall to use referal links without direct advertiser approval, I’m not surprised that they did not ask. What reputable company would say yes? You’d be left with the realm of advertisers who advertise on warez, lyrics, tab, and free lottery sites. Very few of those advertisers have solid business models.

Breaking down Tweetdeck configuration and storage.

I decided to look at the possibility of eventually exporting the configuration data contained in TweetDeck:

You can find the groups, friends, and columns settings in a SQLite database file in a path like:
C:Documents and Settings{USERNAME}Application DataTweetDeckFast.{some hideously long hex string}Local Storetd_{version?}_{twitter username}.db

I used SQLite database browser to look at this file. (I copied it first, of course.) The data storage is pretty simple.

CREATE TABLE friends (fUserID INTEGER PRIMARY KEY, fName TEXT, fScreenName TEXT, fScreenNameHTML TEXT, fLocation TEXT, fDescription TEXT, fProfileImageURL TEXT, fUrl TEXT, fProtected TEXT, fFollowers INTEGER);

The columns table actually defines the groups, group names, and group displays.

The groups table provides the linkage between the columns and friends tables.

There is a preferences_{username}.xml in this same directory as well, for colors, positioning, etc…

Thoughts on “Why Big Brands Struggle With Social Media”

Mashable:  Why Big Brands Struggle With Social Media.

The reference example in this article is Twitter, but discussion boards, blogs, and social networking sites count, too.

  1. Understating social media as “just another marketing channel” instead of building a long term relationship with consumers.
  2. Social media does not fit in the existing corporate structure–it falls somewhere between “marketing, PR, communications, content production, and web development.”
  3. Social media has no borders.  Departments and marketing campaigns are often set up by region or nation.
    • Beyond this, I think that social media provides a wake-up call to some businesses.  Some regions, demographics, and countries, do not look on the brand favorably.  Venturing into the space forces companies to face this problem.
  4. Social media is long term.  Growth and cultivation of the relationships in social media take time, and cannot be placed in marketing windows or into quarterly objectives.
  5. There are no guaranteed results in social media.  I’d like to think of this a different way.  Every company’s relationship with its customers needs a different approach.  There isn’t a standard formula for leading to x% sales growth or xx,xxx page views.
  6. Different magnitude of exposures.  A superbowl may guarantee millions of viewers, while social media may, at best, gain you 50,000 fans.  Which would you rather pay for?
    • In the dot com boom, a publisher could get $3.00 for one thousand page views, $0.10 for a single click to the advertisers’ site, and up to $20.00 for a “purchase” or “sign-up”.  Which one was more valuable for the advertiser?  Depends on what the advertiser was trying to accomplish.
      • Brand impressions – CPM (banner ads at cost per 1,000 views)
      • Extended impression – CPC (cost per click) – user has to click-through to advertisers’ site.
      • Sales leads – CPA (cost per action) – user has to offer up, at a minimum, contact information.  Often a sale of some sort has to be made.
    • Social media may gain you dedicated fans, or possibly even better–put you in touch with your brand evangelists.

Clearly I missed out on all the fun.

Apparently, there was another exploit on Twitter today?  #dontclick

Those exploited would end up tweeting the following message:

Don’t Click:

So, it was a Twitter worm by way of clickjacking.  Though I missed out on the fun, I learned a new security term:  CSRF (Cross-site request forgery).  I tell you, security geeks get to see all kinds of cool stuff.

Code analysis:  Twitter Don’t Click Exploit

Twitter’s response:  Twitter Blog: Clickjacking Blocked.