Currently browsing category

General

Combining Twitter and WordPress Comments

Yesterday I had the crazy of idea of reviving my long dormant blog and tweeted that. Immediately Rich Miller (@rhm2k) had a great suggestion.

rhm2k_twitcomment_suggestion.png

Unfortunately, after looking around a bit, I couldn’t find any existing solution to do this. So I decided to hack my own. This hacked up solution is based on a slightly modified version of Twitpress and a new module I hacked up called Twitcomments. The basic idea is to have Twitpress tweet the blog post as it was designed to do, but adding a unique hashtag to the end of that tweet. Then add a section to the blog post to display the Twitter search results of this unique hashtag. For me it’s right below the blog post but before the normal blog comments.

So below is the steps to recreate what I have on Zen 2.0.

  1. Modify Twitpress to add a parameter for [postid]. The line I added to Twitpress 0.3.2 is line 250.
    $proto = str_replace( "[permalink]", $post->guid, $proto );
    $proto = str_replace( "[postid]", $postID, $proto );
    $proto = str_replace( "[link]", get_option( 'home' )."?p=".$postID, $proto );
    

    This essentially allows me to put “[postid]” (without quotes) in the Twitpress configuration. Mine looks like this

    New blog: [title] [permalink] #zen[postid]

    So when Twitpress post to Twitter, the actual tweet will look like this:

    zen284_tweet.png

    Note the “#zen284″ hashtag? That’s hashtag that I will later on use to search for any comments related to this post. The hope is that people would carry this throughout the conversation.

  2. To allow a bit more flexibility, you can add a few more lines to Twitpress so it will add additional hashtags based on the meta information associated with the post. To do that, add the following lines (for me this starts at line 254 below all the str_replace calls):
    $hashtags = get_post_meta($postID, "Hashtags", true);
    if ($hashtags) {
    	$proto .= " " . $hashtags;
    }

    And in the blog post, you can add a custom field with the name “Hashtags” and some value. For this blog post, I added “#csaguide”. The value of “Hashtags” will be added to the Twitpress tweet.

  3. To add the twitter search to each of the blog posts, you need to download my hacked up plugin Twitcomments and put it under the directory “wp-content/plugins/twitcomments”. Make sure you rename “twitcomments.txt” to “twitcomments.php”.

    In addition, you need to download SimplePie and copy “simplepie.inc” in the same directory. SimplePie is used for parsing the twitter search result, which is in ATOM format.

    You will also need to update twitcomment.php and change “#zen” to whatever you set your unique hashtag prefix to be.

    Once you have done all that, make sure you go into WP’s plugins page and activate Twitcomments.

  4. The last thing you need to do is add a function call to your theme’s single.php.
    <?php twitcomments(); ?>

    Add this to wherever you like your twitter comments to appear. Once you do that, you should see something like the following when you go to your post.

    WP_Twitcomments.png

    You can go to this post to see an example of this in action.

That’s it. I know it’s not pretty the way I’ve written it up. If someone wants to take this, modify it so it’s configurable through WP, and package it up nicely, please feel free to do so. You can consider my hacked up plugin to be New BSD licensed.

Enjoy!

Web X.0

Summary

  • Web 1.0 is about 1-way information sharing.
  • Web 2.0 is about bi-directional participation and collaboration.
  • Web 3.0 is about the semantic web and ubiquitous computing.
  • Enterprises always lag behind consumer adoption on all leading web technologies.
  • There’s a long overlapping period between each of these phases due to the laggards.

Long Version

Web 1.0 is about information sharing. Web sites are built and information are put up. Usually web 1.0 has the “build it and they will come” type of mentality, and it’s mostly a one way communication. The poster children of Web 1.0 are companies like Yahoo, Ebay and Amazon.

Web 2.0 is about participation and collaboration; it’s about bi-directional communication. Social media such as blogs, wikis, and forums are huge in the Web 2.0 era. Post children of Web 2.0 are Wikipedia, Facebook, and MySpace. Web 2.0 has the “build it and encourage others to come and participate” mentality. The expectation of “they will come” is not as prominent. Most of these sites work hard to create a core community and get others to join.

Notice how both 1.0 and 2.0 are both about users going to these sites. These sites require users to fill in their profiles, browse around and understand what the site is all about. In essence, these site require the users to understand the web and go to the web.

Web 3.0 is going to change that. The notion of Semantic Web, which was first described by Tim-Berners Lee, is about having the web understand its users and go to the users, wherever they are and whatever they are using (Ubiquitous Computing). The web will carry enough meta data so that it’s self-describing. The web will know where its users are (by communicating with the devices that the users are carrying wherever they go.) The web can go to the users and present/share the relevant information and allow the users to collaborate and participate with the web as well as other users.

The technologies behind Web 3.0 are quite long, including different ways to describe the web (RDF, OWL, etc), different ways to connect and locality awareness (cell phone, portal computing devices, etc), cloud or web services (cloud computing, SaaS), etc. The piece that’s not as well understood and developed is the Semantic Web. It will be a while before websites will start describing their information in a structured manner.

Like most trends, leading edge technology will first be used in the consumer space, then slowly migrate to the enterprises. So there’s usually a pretty long overlapping period between the X.0 phases. For example, universities and consumers started building websites way before the enterprises realize the benefit of using the web to communicate. Same as Web 2.0, the collaboration tools such as blogs, wikis, forums, communities are first popularized in the consumer world, and it’s just now that enterprises are starting to adopt them. This enterprise adoption trend is referred to as Enterprise 2.0.

This again will happen with 3.0. The consumer space is now attempting to to do a lot of mobile computing, which is the start of ubiquitous computing. Cloud computing and SaaS have also been more prevalent in the consumer space. For example, Facebook, Google and others have been offering web-based services for sometime now. The enterprise space are just now starting to wake up to it. Some of the key obstacles to enterprise adoption are data governance, SLA and integration issues. However, companies like Salesforce.com are trying to change that.

Enterprise Software Customer Survey 2008

McKinsey & Company and Sand Hill Group recently released a survey called “Enterprise Software Customer Survey 2008.” This report focuses mainly on the SaaS market. The survey received responses from over 850 enterprises and had some very interesting observations.

  1. 62% of the respondents believe that innovation is on the upswing
  2. 31% of the respondents believe that SaaS will be the most important trend impacting their business
  3. 19% of software budget is spent on SaaS/OnDemand solutions (expectation is 21% by 2009)
  4. SMBs (< 1000 employees) continue to be the biggest adopter for SaaS; however, large enterprises are spending a significant portion (11%) of their software budget on SaaS
  5. 74% of the enterprise customers are favorably disposed to adopting SaaS
  6. SMBs are more likely to acquire SaaS products from non-traditional mega-players such as Microsoft and IBM
  7. Ease and speed of deployment and integration still ranks #1 on the SaaS criteria
  8. Large enterprises are more likely to have budget control at the BU level than SMBs

However, I do have a few questions that the survey didn’t answer/clarify:

  • A comment on page 9 said that “large vendors such as IBM, Oracle, SAP and Microsoft do best in large enterprises, while SaaS ‘incumbents’ such as Salesforce, NetSuite and RightNow are more in favor with small business.” As we all know, SAP and Microsoft’s SaaS strategies are strictly focused on SMBs and the mid-market. For example, SAP’s Business ByDesign is focused on the SMB market; and Microsoft’s SaaS strategy is all about the long tail. So is Microsoft and SAP missing the boat by not focusing their SaaS strategy on the enterprise customers?
  • The survey doesn’t really breakdown the respondents by company size. However, some of the results were broken down that way. It would have been more useful if we know the break down by company size.
  • It unfortunately included managed hosting as a SaaS model, which I can’t really agree with. Of the 74% of respondents that are interested in SaaS, 32% are more interested in managed hosting. So does that mean only 42% are interested in SaaS (if managed hosting is not considered SaaS)?
  • It would also be interesting if they broke down the respondents by type, e.g., enterprise customer or ISV. After going over the survey, there seems to be a mix set of responses.

The survey also listed out the 3 “SaaS platform options” on page 6. It listed them as

  • Delivery platforms
  • Development platforms
  • Application-led platforms

This breakdown is more focused on enterprises who are looking to build a SaaS offering rather than use a SaaS application.

You can download the survey or view it below.

Read this doc on Scribd: Mckinsey software 2008 survey

5 Easy Ways to be a Better Developer :)

Read this post on 5 Easy Ways to be a Better Developer today.

Agree with most of what it says. Though I wouldn’t call these “easy ways.” None of them is easy unless you are willing to spend time working on them.

My comments on the points…

1) Learn Ruby and Ruby on Rails.

So I call BS on this one. I know the author says these are examples of how to write clean code, but you don’t need to learn a specific language just to learn how to write clean code. What happens now if you have to work in a C or Java or C# environment?

The latest language and coolest technology is just fad. It will come and go. However, basic fundamentals of good programming is always necessary. I’ve always said that once you understand the semantics of programming, syntax will come to you. There’s really no difference in how you program in C, PHP, Java, Python, Ruby or whatever the latest language is. Once you understand WHAT you want to do, you can pick up the language syntax fairly easily.

2) Read The Daily WTF?

This actually is a pretty interesting site to read, if you have the time. Every once in a while it gives examples of good and bad pieces of code.

3) Learn something new every week.

Couldn’t agree more. I’ve always told people that the best programmers are lazy programmers. Lazy programmers will try very hard to make things simple for themselves and avoid doing as much work as possible but still finishes the job. By that, I mean most lazy/good programmers will find existing code/libraries that fit their needs and use them. Obviously there’s certain amount of due diligence you have to do here to ensure the code you are copying is legal and “good.” For example, using Apache Foundation’s libraries is generally legal and “good.” Learning something new every week, e.g., find a intersting library and learn how to use it, will allow the programmer to be lazy when needed.

However, being lazy doesn’t remove the need for programmers to understand the fundamentals. I know I always have arguments with some folks on whether to develop everything from scratch or reuse other’s library. I am always on the side of reuse/copying other people’s code. Some folks tend to want to write his own to fit his exact needs.

Even though we are on the extreme opposite of each other, we generally agree that programmers do need to understand the fundamentals of algorithms and data structures, etc.

4) Understand customer wants != customer needs.

Again, agreed! To add to this point, I believe programmers need to understand the general market they are developing for as well. You need to make sure you understand the general market trend and why customers are buying your solution.

If you are just a programmer that always just take the “spec” from the architects and write the code to meet the “spec,” then you will never become a good programmer. A good programmer should be able to

  • Understand what the customers need
  • Anticipate the customer needs based on the understanding of the product and market. This is perhaps the MOST difficult step for most programmers as many are so used to just coding from spec.
  • Spec a solution that meeds the needs as well as being able to critique others’ specs. Again, some programmers can spec a solution based on the requirements, but a good programmer with understanding of the market and product and customer requirements can critique others’ specs.

5) Find some passion!

This is a bit general but it’s somewhat true. If you don’t like what you are doing, you most likely won’t spend the time on doing the best job.

I also want to add a couple things to the list:

6) Communication is king!

One of the the things I find most lacking in most programmers is the ability to communicate, both written and oral. Just because one can code (even if he’s a clever coder), doesn’t make one a good programmer.

I believe communication is what separates a average programmer from a good or great programmer. In a rapid development environment, it’s critical that everyone understands

  • What problem you are trying to solve
  • Do you understand the customer use case
  • What are the proposed solutions
  • What are the pros and cons of the proposed solutions, essentially what’s the thought process behind these solutions
  • Which proposed solution you chose and why
  • What are the caveats with the chosen solution
  • If there are any caveats, are there workarounds
  • What is the workflow of the solution, e.g., how is the customer going to use the solution?
  • Have you tested the workflow on others and convinced them that’s a viable solution
  • Can you prototype it and show it to others for feedback

A good or great programmer would have gone through this process and covered every angle to ensure a successful solution. As you can see, most steps in this process is about communicating to others what your proposed solution is. Communication should happen way before any code is written (unless you are prototyping.)

If I were to hire programmers, regardless of how good the programmer’s coding skill is, if he cannot communicate effectively with the team, then he’s not a good fit for the team.

This article on Engineer Interview Triage? also emphasizes the importance of communication.

7) Be able to do mock ups and prototypes.

This again has to do with communicating your solutions to others. One of the best way I’ve found/seen to communicate your ideas, however brilliant, is to show people what it looks like and how it works. Prototypes are just that, examples and models of the real thing. It doesn’t have to be perfect or covered all cases. But it should be able to demostrate

  • The solution. Does this idea really solve the customer issue?
  • The workflow. How the customer (customer in this case maybe your fellow team members) will use it from start to finish?

The prototype should convey enough of your solution to get people talking and discussing.

Anyways, these are my thoughts. Love to hear what your thoughts are…

I am alive

Hey all, I am back and I am alive.

Well, back is probably not the right word since I’ve never left. But I have been really busy with a new born for the past several months.

Between anZel and work, I have just not had any time to write or even read.

But now I am back. Things are getting better at home as anZel’s slowly easing into life outside of his comfortable womb.

I am looking forward to writing more and sharing in this little space.

SLA 104: Choosing the service hardware

Another article from my SLA series…

In this installment of a series on understanding service-level agreements, I’ll look at what you need to consider when choosing the hardware used to provide the services.

Service providers offer various hardware options depending on the nature of the security service for which users sign up. Some services will require the installation of dedicated hardware at the customer’s site or, if the service provider will be providing hosting services, in their cage. Some service providers host their own hardware in their own network operations center. Some provide the security service through hardware that is shared with many other customers.

Which option is better for your business depends on many factors, including your security policies, budget, trust in the service provider and the actual products used. In many cases, dedicated hardware may be more expensive than shared hardware.

revelation

I just had a revelation, I don’t know how to use Windows anymore.

I was trying to shutdown my wife’s Windows PC today and I didn’t know where the shutdown button is!

SLA 102: The Service Summary

My second article on the SLA series, SLA 102: The Service Summary, is out.

In this article, I’ll focus on the service summary. In most SLAs, this section describes the service you will be receiving in general terms. Here are some of the areas you should keep in mind as you negotiate your contract with your service provider.

SLA 101: What to look for in a service-level agreement

Computerworld is starting to publish a series of SLA 101 articles, written by yours truely: SLA 101: What to look for in a service-level agreement

Many IT administrators aren’t comfortable handing over control of the most critical security components of their infrastructure. But in recent years, security outsourcing has become a popular and viable means of lowering the cost of perimeter security management. More and more companies are outsourcing parts of their security infrastructure, including firewalls, intrusion-detection systems and virtual private networks, to managed security service providers (MSSP).

Anyone thinking about outsourcing such a mission-critical aspect of their network should understand in detail the potential implications to their IT security infrastructure and their company as a whole. One of the biggest differences among providers of security services is the service-level agreement (SLA). In this five-part series of articles, we will dive deep into the various aspects of the SLA and attempt to explain in details what the SLA should contain and why each of the items is necessary.

In general, an MSSP SLA should cover the following areas:

more…

Demo 2006: riya

Now I think this is one of the kewlest companies I saw today.

It uses facial recognition to automatically tag photos that you have. Once you train riya, it goes through all your photos to auto-tag all other photos that have the same face that you used for training.

It also recognize text inside the photo as well.

Definitely wins my 2nd kewl demo award (after LogLogic of course).

Demo 2006 continues (tue)

Ok so we have seen several demos today in the show, blurb, moobella, mp3cars, accomplice..etc..etc.

The only consistent theme I got so far is that none of these companies have really figured out how to make $$ yet. They are all here to debut their betas and seek funding.

Though I do see some interesting potentials…i can see blurb be quite useful (i recently got hooked on creating photo books using iphoto)…

freepath from grass roots software is quite a powerful presentation tool..it integrates many diff multimedia formats into a single presentation…tho it will be difficult to get ppl to switch from ppt. The force of inertia is hard to beat..$249 a pop

Stay tuned…

Demo 2006 continues

Blogging from the treo for the first time, using wordpress’ blog-by-email feature. It’s quite a nifty setup.

It’s been a busy day here at demo 2006. Lots of rehersal and testing of the setup for tomorrow’s full day event.

Met some interesting companies today. Many are taking advantage of the web 2.0 hype to launch some nifty products and services. Note I said nifty as some of these guys haven’t figured out how to make money from their nifty ideas yet.

Met an interesting company, network streaming, from MS. They’ve developed a pretty kewl remote support solution that’s appliance based and costs only around $3k.

Lots of VCs, journalists, bloggers and podcasters here as well. Podtech.net has partnered with the show, so check them out when you get a chance.

stayed tuned…LogLogic is demoing around 4pm tomorrow. If you are around, defly come by and check us out!

DEMO 2006

Flew over here to sunny PHX on Sunday to attend the DEMO 2006 conference, the leading conference for launching new products and services.

It’s my first time attending the conference and it’s interesting to see how organized they want you to be when doing a demo. You must have the whole demo script ready and sent in days before the conference. You have either a 3 or 6-minute slot for the demo. Everything’s well scripted and well rehearsed.

Will try to blog a few interesting items I see over here…

p.s. LogLogic’s launching 3 r2, the latest release. Check out our website.

GLTerminal

wow…this is really kewl!

It’s a terminal program for OS X that emulates to old amber or green terminals that I used back at Purdue!!

Running it on full screen on a small monitor would really make this a pretty awesome setup!

Leveraging Operational Intelligence

Found this interesting quote in the abstract of Leveraging Operational Intelligence – The Battle of Tannenberg and Masurian Lakes (1914)

A commander’s ability to leverage operational intelligence remains a cornerstone for managing the uncertainty, fog, and friction of war in this era of seemingly endless advances in battlefield awareness and information dominance. Operational intelligence, properly understood and utilized, can become a force multiplier maximizing traditional operational art factors. The goal is information superiority thereby increasing the speed at which decisions are made, while preempting enemy choices and courses of action.

LogLogic Career Fair

**CAREER FAIR**
Wednesday, January 11th at 4-8pm
LogLogic, Inc., 3061-B Zanker Road, San Jose, CA 95134
www.loglogic.com

We are hiring! Interview with Hiring Managers & VP’s for the following positions:

Loglogic is a premier start up, funded by leading VC firms (Sequoia Capital, Telesoft Partners, Worldview) with a broad range of both domestic and international customers. Our customers include Fortune 500 corporations, leading financial and healthcare service providers and managed services enterprises, to name a few. Our company develops ultra high performance Log management appliances on Linux platforms for enterprise IT departments to meet compliance and legal requirements. We accelerate and support responses to data center security and performance events, while providing complete log data archives for compliance and legal protection. Please visit us if you enjoy the startup environment, with its high demands and high rewards.

  • Senior Computer Scientist
  • Sr. Database Engineer, Search & Semi-Structured
  • Sr. Software Engineer, Parsers and Compilers
  • Sr. Indexing/Lucene Engineer
  • Sr. Web Application Engineer
  • Software Engineers (C, C++, Java)
  • IT Lab Administrator
  • Sr. Tech Writer
  • Director, Product Management

LogLogic’s ST appliances were named winner of a Best of Interop Award at NetWorld+Interop 2005 Las Vegas.

Bring your resume or paste your resume into an email with “POSITION –YOUR NAME” in the subject line to: careers@loglogic.com, Attn: V. Golub. Please visit us at www.loglogic.com or our blog at blog.loglogic.com.