Tuesday, October 2, 2007
7 Steps to Web 2.0
We have all wondered how can we start using Web 2.0 in our businesses. Well, lets start small. Business people, CIO's, and high level management have always had a hard time changing their businesses on the fly. This is why Ford is still making SUV's, in such a weak market. The rise in gas prices didn't just hit, but Ford's production lines can't change overnight. Thats the beauty of technology. IT people can welcome change overnight, with buy-in from the right people.
1) Find out the homepage of you CIO/CEO/and high level management. Now I am not going to condone this, because your companies policies might be different, but why don't you put a little tracking on your firewall or check their actual computers. We are IT people, we all know how to do this. I can tell you, this is a great way to start building your "new" intranet to be productive. This will become evident later as to why we did this. I mean how many of us actually have the intranet as our homepage beyond the first week we have our machine. I personally use my Google page.
2) Get a copy of your intranets source code. Now this can be more complicated than most people think. Small company IT departments, you will have no problem, however larger companies guard their secrets even on the inside. However, there is a way around this, download the HTML and write your own backend prototype for later use. It will look the same, but for proof-of-concept it will work great. After all, the internal team can integrate your contribution a little later.
3) Setup a virtual machine to run an instance of intranet++. Sorry, I couldn't resist with the ++. So you are going to need a development environment, simple is king. I recommend a simple LAMP stack from RPath, after all you probably aren't on the actual infrastructure team.
Now for the fun part:
4) Get information out of your intranet. To do this, I would recommend using javascript to allow hiding and showing of divs. This will keep your content people happy, as the information is still on the page, but it will make your users happy, because they can hide the information they don't want. You can check out webmaster world: http://www.webmasterworld.com/forum91/441.htm. This will simply hide those ugly tables of stock prices, unnecessary links, and irrelevant stories.
5) Create a few widgets for the pages from step 1. Using your management chains homepages you will really hit home the power of Web 2.0. Get the RSS feed, tie into their API, or just take and make a simple iFrame (not quite so web 2.0). If you use the API, make sure you get generic functions that will allow all users to use the widget. These widgets can now be placed into the space created earlier by hiding the divs with simple javascript
6) Catch your management chain the next time they walk by your office. You just ask them to stop by for a minute and say, "Hey, do you know who is in charge of the intranet, I had a few ideas like, (DEMO TIME)". Another option is say, "Have you heard of Web 2.0, over the weekend I threw some ideas around and wrote this up, what do you think", or if you aren't comftorable with that just implement it as a secondary intranet and spread it around virally, like viral marketing in Web 2.0 really works. Grassroots has been beneficial for many companies.
DISCLAMER: Make sure you don't alude to the fact that this might have distracted you from your normal job, I don't want to be responsible for a rise in unemployment.
7) Prosper
Management will notice that they can get all the information they need, all on one page. They should quickly see the benefit of having more homepages set to the intranet. You can get company data directly to the users, while allowing them to keep the same functions they are used to.
I wish you the best of luck, and if none of these steps work, I will give your intranet team a call. Send me an email with their phone number, and I will give them a piece of my mind.
As always
John
Wednesday, September 26, 2007
Web 2.0: The Concerns
Confidentaility: From wikipedia "Confidentiality has been defined by the International Organization for Standardization (ISO) as "ensuring that information is accessible only to those authorized to have access" and is one of the cornerstones of Information security. Confidentiality is one of the design goals for many cryptosystems, made possible in practice by the techniques of modern cryptography."
This is great and all, but what about a cornerstone of Web 2.0 being the openness of data. Well have I got some great resources for you:
The rest security manager (link) First, the security policy is applied by a proxy, not be the security manager, which makes sense. Second, in order to integrate transparently into a web architecture, the security proxy MUST make its policy decisions solely on the basis of the REST verb (POST, PUT, DELETE, GET, etc.), the URI, and the user, e.g., as authenticated with HTTP.
Integrity: From wikipedia Data integrity is a term used in computer science and telecommunications that can mean ensuring data is "whole" or complete, that the condition in which data is identically maintained during any operation, (such as transfer, storage, and retrieval), that the preservation of data for its intended use, or, relative to specified operations, the a priori expectation of data quality. Put simply, data integrity is the assurance that data is consistent, correct, and accessible.
People have found attacks based on this principle to be very disconcerting. Enterprises and businesses today are not build on their business model, but rather, their data. Amazons customer list is a lot more important to them than the idea of E-Commerce. The product catalog has value along with the comments, ratings, etc... not a drop shipment. At all costs companies must protects their data in a Web 2.0 world. With enterprises we must validate and put audit trails behind the scenes of our Web 2.0 applications. Lets us not forget the mistakes we made with Web 2.0 when we come into the new world.
Checkout HDIV (link) - We can briefly define HDIV as a Java Web Application Security Framework. HDIV extends web applications’ behaviour by adding Security functionalities, maintaining the API and the framework specification. This implies that we can use HDIV in applications developed in Struts 1.x, Struts 2.x, Spring MVC and JSTL in a transparent way to the programmer and without adding any complexity to the application development. It is possible to use HDIV in applications that don’t use Struts 1.x, Struts 2.x, Spring MVC or JSTL, but in this case it is necessary to modify the application (JSP pages). It grants us confidentiality, integrity, and data validation.
Availability: From wikipedia "The degree to which a system, subsystem, or equipment is operable and in a committable state at the start of a mission, when the mission is called for at an unknown, i.e., a random, time. Simply put, availability is the proportion of time a system is in a functioning condition."
When we move to an on demand world, we are faced with forcing users to use online applications. However, if the applications are not available, we loose productivity. Skype lost 2 days of service and it was a "black eye" in their business. How can you be trusted, used, and seen as legitimate if you aren't on demand. People have a desire for what they want when they want it. The day you become unavailable is the day you become unnecessary.
For this NexaWeb has created the Internet Messaging Bus (link). This can easily be recreated through little effort by most java developers, but provides a great software architecture. The IMB provides Nexaweb-enabled applications with richly-featured communications capabilities which few development platforms offer. It provides a built-in communications layer, which transparently handles most aspects of client-server messaging. The features of the IMB make it possible for developers to build multi-tier applications without having to create protocols, encode and decode messages, understand network topology, or immerse themselves in the communications and networking intricacies which client/server programming have traditionally required. The IMB uses industry standard technologies, HTTP and HTTPS, for its communications protocols. Nexaweb has done a lot of work to ensure that messaging is bidirectional, that it passes through firewalls and proxy servers, and that it can tunnel through security mechanisms such as SSL. The IMB extends the request/response model familiar from HTTP requests sent and received by browsers, so that it is not just client to server, but anywhere to anywhere — client to server, server to client, even client to client.
Secondly, I would recommend checking out O'Reilly's great article on load balancing web applications.
I hope through this you have learned a few techniques to increase security in a Web 2.0 world through the mistakes that we have learned in a web 1.0 environment. It is critical that we learn from our mistakes and make sure that we bring this web into the enterprise with thorough understanding of how to protect ourselves.
As always, if you have any questions, let me know.
John
Sunday, September 23, 2007
Why Web 2.0 Startups Fail
1. Does it take a platform dependent task online - Services like Mint, Google Docs, and Meebo have taken things that are platform dependent and put them online. One thing that I love about the AJAX world we live in is I can now do my personal finances, not in quicken, but in Mint. Sure it is still in its infancy for features, but it works! Google Docs no longer forces me to be using a computer with an office suite installed. I constantly switch amongst my many computers, so knowing if this laptop or that laptop has an office suite installed is no longer an issue. Oh yeah, it also means I don't have to keep emailing files to myself. Lastly, meebo, what a revolution. Who needs to go to oldversions.com to get a stripped down version of AIM. How about using the bloated trillian, no longer. I can now be on a machine, without an installed instant messaging client, and it is ok. Oh yeah, it even saves my chat history amongst all my different computers, across the internet.
2. Is it easy to adopt - One of the problems traditional software developers have run into is horrendous user interfaces. Functions are scattered, graphs are slow loading, and users get frustrated at weird error messages. Web 2.0 in the enterprise and personal space has brought about a great new world of easy to use (not necessarily accesible) web sites. Youtube is simple, no plugins, files searching, etc... It is data when you want it, where you want it, how you want it. The world has gone from one in which organization is king (remember renaming your files with date stamps) to one in which search is king. Who can really organize their 500+ emails a day. Just let your inbox go, let it grow, and learn to search. That called easy adoption, let me do less when I end up getting more.
3. Promotion is necessary - Sure, you have a great website, great code, and an awesome idea, but it can still fail. Promotion is very difficult. People get frustrated that on day 1 they don't have 100,000 users. This won't happen, it takes time. Remember, Google didn't grow in a day, they went through many phases of development. You have to stick it out and promote like there is no tomorrow. Put it in your signatures on forums, get people to write about it in blogs, put it into wikipedia, have an aboutus.org. Embrace web 2.0 by using the tools they provide if you want your web 2.0 to thrive.
4. Legal issues - I am no lawyer, but lets face it, there is a right and wrong when it comes to the web. We have learned from the greats of Napster that you must know the law before you tread. Patents are your friend and your worst enemy. Do youself a favor and do a search or two at Google Patents, this isn't the end all be all, but will give you a good idea. It is called market research. The last thing you want is to have the feds knocking. It might be a good idea to take an opencourseware session or two. Like Law for the Entrepreneur and Manager, it might just save you in the long run.
5. Too much too fast - People adopt things at different rates. Being ahead of your time is great and all, but who remembers the 3d worlds of 10 years ago. No one had hardware, the expertise wasn't there, and adoption didn't happen. Secondlife, however, has hit the world like fire. We are talking massive adoption and desire to be in the world. Companies are buying up land like people were buying houses 3 years ago. This is a great example of being the first to do it right. Secondlife made sure the product was in tune to modern hardware demands, societies willingness to be online, and their desire for more social interaction. I am not saying to not go for the next latest and greatest thing, just make sure it is what you want and that the world can keep up.
I hope that you have learned a thing or two on if your web 2.0 idea will be the next big thing. If I had all the answers I would be in TechCrunch's 40, but I feel like developing in a web 2.0 world for several years I have seen what works and what doesn't. The last thing you want is for your great idea to flop, when someone who put in an extra 30 minutes makes it big. My last piece of advice is ACT FACT!!!, most likely someone else has your idea or will very soon. The old adage still follows: The early bird gets the worm.
John
Thursday, September 20, 2007
Top Ten Web 2.0 Tools
Over the years of developing and past year or so of developing Web2.0 applications I have come across tools of all types. I have tried to narrow down a list of the top development tools for a Web2.0 website. Now these are not meant as a list of tools for the entire development, but rather just the Web2.0 aspects. If I included all tools, you would see tools like Toad and Rational development modeling. I will be coming out soon with my top 10 free and open source development tools soon.
MyEclipse - http://www.myeclipseide.com/ – Eclipse is an open source community whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. A large and vibrant ecosystem of major technology vendors, innovative start-ups, universities, research institutions and individuals extend, complement and support the Eclipse platform. MyEclipse adds some great Web 2.0 development tools with Version 4.1.
JSEclipse - http://labs.adobe.com/technologies/jseclipse/ - JSEclipse is a new plugin for the Eclipse environment that helps developers code JavaScript faster and with no errors. With JSEclipse, you can complete a variety of tasks, from editing small sections of code to working with the next big AJAX library or developing plug-ins for a product that embeds JavaScript snippets.
WSMT - http://sourceforge.net/projects/wsmt - The Web Service Modeling Toolkit (WSMT) is a collection of tools for Semantic Web Services intended for use with the Web Service Modeling Ontology (WSMO), The Web Service Modeling Language (WSML) and the Web Service Execution Environment (WSMX)
Google Web Toolkit (GWT) - http://code.google.com/webtoolkit/ – Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript's lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.
InstantSVC - http://sourceforge.net/projects/instantsvc/ - Create Web Services with PHP5 in minutes. InstantSVC provides a set of tools to easy your development. Just document your code with PHPDoc and generate Web Services from it. SOAP Services as well as RESTful Web Services.
Assembla - http://www.assembla.com/ - Get free workspaces with unlimited team size and integrated tools like wiki, discussion, alerts, chat, Subversion and Trac. Use Assembla spaces for rapid software development, job networking, and collaboration.
JAXB - http://java.sun.com/developer/technicalArticles/WebServices/jaxb/ - XML and Java technology are recognized as ideal building blocks for developing Web services and applications that access Web services. A new Java API called Java Architecture for XML Binding (JAXB) can make it easier to access XML documents from applications written in the Java programming language.
Firebug - https://addons.mozilla.org/en-US/firefox/addon/1843 - Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
BrowserShots - http://browsershots.org/ - Browsershots makes screenshots of your web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your web address, it will be added to the job queue. A number of distributed computers will open your website in their browser. Then they will make screenshots and upload them to the central server here.
And for those of you with money:
----------------------------------
Stylus Studio - http://www.stylusstudio.com/ - Stylus Studio, a product from DataDirect Technologies, an operating company of Progress Software Corporation, is the industry's most innovative XML IDE, providing a comprehensive suite of advanced XML tools and scalable deployment components for working with XML, XSLT, XPath, XQuery, XML Schema, Web services, EDIFACT, X12, legacy data integration, XML Pipeline, XML mapping, XML Publishing and more. Used by leading software developers world-wide, Stylus Studio simplifies XML programming and enhances developer productivity through innovation.
Monday, September 17, 2007
Collaboration, the essential aspect
With that being said, I must give my insight into how to make the collaboration more consistent and rewarding. For Web 2.0 applications to succeed there must be some visualization to the user as to how they impact the system. Think if digg never showed how many diggs your story got, or the one you just voted on got. This is critical. People need a benefit. So if you are using information from the user to resort results or relevancies on a page, make sure you show their impact. A great example of this would be to have a small explanation box that they can scroll over and it pops up (more javascript), yet it would explain why the results showed up where it did. Have you ever used Pandora? Well it gives a great sampling of music, want to know your impact, well they tell you exactly why they picked the song for you. It is an immediate feedback loop. Now the user has implicit value in their system. So in order to make better Web 2.0 applications, we must embrace the collaboration and lets the user know that they truly are valued.
Look forward to the coming days where I will release the top Web 2.0 development tools.
John
Thursday, September 13, 2007
Why Web 2.0 in the Enterprise
Modern enterprises have a new challenge ahead of this. This is the fact that a new work force of skilled computer users recognizes tools outside the firewall, but can’t find them on the inside. Businesses have not adopted and tailored the facebooks,del.icio.us, and digg’s of the world for their needs. Value in Web 2.0 to the enterprise will come from two areas: increased workforce collaboration and making workers more productive by given employees tools that they are use to. Intranets setup with wiki’s can improve call center performance, Facebook style internal company directories can help connect company experts, and blogs can lead to recreating the watercooler discussion in a distributed workforce.
Intranets with wiki’s are a new phenomenon within the SMB (Small/Medium Business) market. Call centers have traditionally had turnover rates grater than 20% annually. With processes documented, not in long training manuals or tedious video exercises, but rather easily readable wiki formats training costs are cut drastically. Also well documented problem areas can be quickly resolved when a secondary agent encounters a similar issue. The list of reasons for wiki’s, not only in call centers, goes on and on. Technical manuals are often written by people who have a complete disconnect from those really using the system. Sure they are great if you are already and expert, but only those who have similar skillsets to you, and have already solved the problem, can really help you. This is why social computing has really hit the internet.
With company directories having more than a name, telephone number, email address, and position we are really able to leverage the existing assets in the modern business in ways we never knew possible. No longer do we need to ask out manager to find the right person to answer your question, we can go directly to them. Employees are given the power now. Secondly, in a distributed environment this helps with personalization of your workforce. No longer do employees call someone on the phone and not know anything about the person on the other end. Employees now have a picture others can look at, activities and interests employees can break the ice with, and connections employees can build.
Enterprises must recognize that these are conveniences that the modern worker has grown up with outside the firewall. Much like instant messaging, web 2.0 is going to happen one way or the other. Businesses must embrace it, or companies will see their sensitive data going outside the firewall to web 2.0 services that will offer the conveniences. Have you ever thought about what would happen if your confidential documents were written using Google Docs, as opposed to your own internal collaborative space. How about an accounting specific forum, that might be private, but the company on the outside definitely has access. Employees want these tools, and will take the risk. If you in the IT department, you know you will be responsible anyhow. If blogger goes down, and the marketing department uses it for their communication, they will call you anyhow. It is too late at that point, so we must get on board before it happens.
As always, I would love to hear what you have to say. After all, I am writing about web 2.0 and so collaboration is something I embrace.
John
Wednesday, September 12, 2007
Web 2.0 the Definition
Think about this for a minute. Have you ever entered a customer site and they really want you to implement this new custom report, well with web 2.0 you turn it around on them. Previous development cycles required 3, 6, and even 9 months to get new reports available. If the data is available to the cusomer, web 2.0 allows mashups that can enable the user.
No longer do we have development cycles, we have continual releases. No 1.1.1 r6, we have the beta. If you are a software developer, you know this mindset, but how do you convince your boss? Don't just tell them everyone's doing it, prove it to them. Take 10 minutes, grab an api and overlay it on google maps. We are talking about rapid prototyping.
You have now hopefully realized that Web 2.0 isn't just MySpace and Facebook, it is about time-money-value. The big talkers to your executive board. So now you are wondering, how do I bring a social component into your enterprise. Well think about it, how often are your developers duplicating work. You have developers who know Java, PHP, Apache, Linux, Tomcat, etc... Well a simple use case is an Apache/Tomcat person needs to install a new server for your Java developer. They know each other. Lets say though, you don't have a dedicated Linux staffer. How will the Apache expert solve permission issues or unforseen package dependencies on non-Apache services. IT people are famous for being hobbyists, through the use of profiles, semantic data collection, and contextual relevancy, users can be connected to each other. I have seen this work. You enterprise can not only work together, but work more efficiently. Average IT folks spent between 30 minutes and 1 hour a day researching bugs and features, why not bring collaboration to their fingertips. With a mobile/agile workforce, we can show Web 2.0 will improve the enterprise as we know it.
So let me end with this statement, Web 2.0 is here to stay and like Web 1.0 if the enterprises don't embrace it, they will be left in the dust.