Homepage of Matthew Brooks

I make things… sometimes

Google – Where are you Going? 14.03.13

I must say that I am sad to hear that Google Reader is being discontinued. Google was by far my favorite Google App. It was the only App that I used everyday. I am, however, more puzzled as to why Google doesn’t believe that this was a core product.

No matter how many Androids sell, no matter how many YouTube Videos are played, Google’s core product is search. When websites are chaotic and unorganized, Google is still able to cut through the clutter and give users the info they want by directing them to the correct page. When websites are decentralized Google wins. Google is effectively the Yellow Pages of the internet.

If anything, discontinuing Google reader may do more harm than good to Google. It speaks to everyone out there that RSS is dead. It says to everyone that it is time to centralize your postings to facebook if you want your customers to receive updates. The blog is dead, facebook is now the yellow pages of the internet. Congrats Google, you guys are now contributing to the destruction of one thing that made you special… Web Search. The trade is that all of the internet will be trapped into the facebook box to be searched by social graph.

It’s clear to me now that Google does not understand social media. A few years ago, Google had built in a lot of social aspects to Google Reader. A community started forming, then Google+ was launched and the community was killed. Google+ started strong, but quickly became a ghost town. Why did Google kill a community that was successful only to trade it in for one that died. Google may never understand social media. It’s also sad to say, that Google promoting social media may be in the end what kills them.

Social Possibilities? 12.01.12

Unless you’re under a rock, you should know that Facebook is the king of Social Networking. Facebook is the leader in managing your social life with those you currently know. Facebook focuses on learning who you are socially in the real word and tying together with the digital world.

Today, I see several efforts of players in the social networking realm, like Google+ and Myspace, attempting to make a competitive product to Facebook. Unfortunately, these websites will always fall short as long as Facebook has more people. The power of Facebook is that everyone is on it and everyone you know is connected.

So how do you compete with Facebook? Ultimately the design of the Facebook application could be it’s biggest enemy. What’s missing from Facebook is a way to venture out and meet people. Sure you can do it somewhat, but it’s hard. It’s hard on Facebook to find people with similar interests. It’s hard to join in discussion about the latest artists or coding practices that you like. It’s also very unlikely that Facebook would make meeting new people any easier, because it seems that it’s not the point of Facebook.

If I were making a competitor to Facebook, I would definitely start with that in mind and create a website that starts with meeting people first. Maybe this is why it seems that a new dating websites pops up everyday? Maybe this is why I endlessly search programming related forums?

Ironically, in some ways, this is what made Myspace so popular. With Myspace, for the first time, you were given a forum to find people like you, near you. In some ways Myspace’s chase after Facebook (and band empowerment) inevitably killed what made Myspace successful in the first place.

Don’t believe me? How many people do you know who dated someone they met from Myspace? Do you know anyone who met someone off Facebook? I’m sure it has happened, but to my recollection, those meeting off Facebook were friends of friends and not total strangers.

It’s probably true that if a website succeeds at creating new relationship for people, they will be trading Facebook pages soon after meeting. The catch is ensuring that the relationship stays with the original website.

The Cloud OS 30.10.11

Recently, the thing that has been fascinating me the most is the idea of a Cloud OS.

What is a Cloud OS?

A Cloud OS would be a group of web-based applications that allows the user to communicate to a group of the servers in the cloud without having to know how it all operates to make the running and setup of applications easy.  It’s my belief that there is a need for organizations to run their own private clouds.  The Cloud OS tools could also be resold by service providers to the private industry.

What are the basic features of a Cloud OS?

1. Store and retrieve files
2. Handle user authentication
3. Store user preferences
4. Allow launch of applications from a launchpad
5. Contain basic document & image editing tools
6. Development tools to create new applications for the Cloud OS

What would a Cloud OS look like?

I believe it would be a collection of web applications that when put together provide a piece to the functionality as a whole.  The web applications will be able to be extended with a set of web-based APIs.

Best setup for Web Development in a group setting 27.10.11

Recently, a former co-working, Chris Horlick, asked me what the best setup would be for Web Development in a group setting.

I need some suggestions. Whats the best tool/setup for doing web development in a group setting? The requirements are a centralized code repository, a location to test development code on, and finally a way to push tagged code out to a staging server. What im thinking is svn/redmine for code repo, each user has an account on a central development machine to allow for ssh access(eclipse over ssh) and their own virtual host one the dev server. Code is tested then checked back into svn and later tagged and pushed out to the staging server. Yeah? Thoughts comments or recommendations?

*Also, in a dev environment what is the best way to handle databases? Is it wise to pull from the production database? Also should each developer have his/her own db or work off a master db?

I decided to make my response public in hopes that it may be useful to someone:

First off, SVN or Git version control is a must if you are developing in any kind of group environment.

It is best to have 3 different types of setups for servers; A production server (running a tag), A staging / test server (which runs trunk), and dev server or local environment (running a branch).

How you go about setting this up really depends on the framework you are using. There really is no good way to dev for PHP in a group environment. I’ve learned the best way to dev for PHP is to have a shared Dev server setup with SMB shared drive to aptana (unless everyone uses vi). We use SMB because frankly a SSH mount is too freaking slow. The actual staging server setup is a lot more complicated than I want to go into, but it’s a lot of work to get up and running. The main point to it all is that development should never be done in Trunk and should never be done on the actual main staging or testing site. Just about every other language besides PHP has support for Development instances built into the framework. Ruby on Rails, Django, and Java all let you run multiple Dev instances on your local machine which makes things really nice.

The database work pretty much the same way as the production, staging, dev setup. Each instance should have it’s own MySQL server. You should NEVER use mysql or any admin tool to create or modify DB schema. This should always be scripted out. Once again, PHP in general is lacking in this area, however you may be able to find a tool or Framework to handle schema versions correctly. Rails and Django have DB migration tools built into the framework and make updating and playing with DB schema easy. With both Rails and Django, DB development is always done in sqllite and then testing and production can be done in mysql. This allows for a more flexible development environment.

Rolling out a tag to a server is mainly process driven. It’s best to document the process and always follow it. We create the tag from the staging server’s trunk after it passes all of our tests. The roll out is very simple. We have also played around with tools called Capistrano that rolls out branches from SVN or Git to product or test servers. Capistrano is really nice once it is setup. Use Capistrano if you can.

12 Questions For Service Providers 10.07.10

Read Write Web had a great article about 12 questions you should ask a Service Provider. The article is more for Cloub Services, but I think it applies to pretty much anything IT related. If you are part of an IT organization, you really need to be thinking about the questions addressed below.

This is an excerpt from Read Write Web below.  You can find the original article here.

SaaS Chronicles has put together a good list that can help gain more insights into security and provide some additional context for the ways data does flow in the cloud:

  1. Where will my data be stored?
  2. Who will have access to my sensitive data?
  3. What controls do you have in place to ensure safety for my data while it is stored in your environment?
  4. What type of employee / contractor screening you do, before you hire them?
  5. Will my data be replicated to any other datacenters around the world (If yes, then which ones)?
  6. What is your Disaster Recovery and Business Continuity strategy?
  7. Is your Cloud Computing service SAS70 compliant?
  8. Do you offer single sign-on for your services?
  9. How do you detect if an application is being attacked (hacked), and how is that reported to me and my employees?
  10. Do I have full ownership of my data?
  11. Will you provide me my data in a readable format – Pdf, Excel, Access…?
  12. Do you offer a way for me to run your application locally and how quickly I can revert to the local installation?

JavaScriptMVC brings MVC to JavaScript 23.05.10

In the likes of Ruby on Rails and CakePHP, a new project has been started to bring MVC to javaScript!  You can check out the JavaScriptMVC project to find out more about it.

I’m not sure how the framework can actually save and update data model to the webserver yet, but it maybe interesting to learn how exactly it does that.

Google needs to create an App Appliance 22.05.10

I love using google apps for my personal stuff.  The apps are simple and easy to use and I don’t have to bother purchasing expensive software licenses for software that I may only use once or twice.

Unfortunately, most of the office software I deal with is installed on the computer and is not web-based.  I find that most installs are either Open Office or Microsoft Office.  Both are great products, however, both of the office suites lack the social features that you can get by using Google Apps by themselves.

Microsoft Office does have the ability to add social features to documents by using the Sharepoint server.  Unfortunately, this requires a separate server install and software purchase.  Another bad issue with Sharepoint and Microsoft Office is that they are only compatible with Windows and MacOSX.  If you have ever used Office on the Mac, you will know that this support is not as up to par as with Windows.  Vendor lock-in really makes the Microsoft Office product stink.

Google Docs give users the ability to collaborate with documents without having to buy or setup additional software.  It runs on any system that has a javascript enabled web browser.  It also gives an organization a way to share and give access all of the organization’s documents.  Utilizing these sharing and collaboration features can be a real timesaver for an organization.

Although Google makes great software, many people have the feeling that Google does not do enough to protect personal data.  No one knows, except maybe Google, who truly has access to the data on Google’s server.  Some are concerned that Google itself is reading through documents stored on their servers. Because of this, it’s very hard for a company to trust Google.

If Google ever wants to move into the enterprise completely, then it may need to rethink its strategy.  I think making a Google App Appliance would go over great in the enterprise world.  The Google App Appliance would simply let the entire Google App Suite available behind a company’s firewall.  This will allow Google to get into enterprises easier and the enterprises will be happy to have the software.

I imagine the Google App Appliance would be easy to install and update via a webpage.  The Google App Appliance would also be able to scale from a basic appliance model, to a full shipping container model (Why not right?).

The Google App Appliance would come with a few basic apps.

  1. Google Search (for internal company search)
  2. Google Docs
  3. GMail
  4. Google App Engine

Smart companies would realize the power of the Google App Engine and can standardize development on this platform.  This will allow companies to write applications without having to worry about scalability, if it’s written in App Engine, it will scale.

Please Google, make this happen!

Clock calculates wasted time at meetings – Boing Boing 19.05.10

Bring Tim

I definitely need one of these for work.  This is a Clock that calculates wasted time at meetings. It would definitely keep things on tack even though I’m the cause for most of the distractions, LOL.  Maybe it will just work good for me.

The Irrelevant IT department? 15.05.10

I wrote this in response to an article on ReadWriteWed called Is IT Show Insecurities in the Distrust of Users?.  In the article, the author makes the claim that IT is at risk for becoming Irrelevant.  As I work in an IT department,  the article struck a cord with me.  Maybe I am being defensive?  But hey, it was my first response to anyone’s blog so I feel it’s kind of special in a way.  Please read the article on readwriteweb and  my response:

Sorry to those who believe that their IT department is slow and not flexible to changes. This is probably due to poor management in your IT department and should not be a general statement that *ALL* IT is bad. In fact, most of the issues people have with IT can be traced back to poor management or poor communication. IT will not go away, as much as you would like it to because they say ‘no’. I’m sure they have a good reason for saying ‘no’ and I am sorry you do not understand this. In a way this is like sales saying accounting is bad, because commission should be calculated by the salesperson. What could possibly go wrong???

When IT is centralized as with most organizations, it is the only department aside from Administration that have a view into what every other department does. Without centralized IT every department will start to form these mini-IT departments within each department. Each mini-IT department will grow IT in the direction that only benefits their department. There are somethings that need to be under centralized IT control, like calendaring applications, email services, project management tools, order collection tools, etc. Could you imagine a company where everyone used a different application for each of these? The application religion arguments would become endless (my app is better than your app, so use my app to figure out what needs to be done on your side rather than actually having me put in the proper format that you can actually use to begin with). And productivity will cease. This is where IT is good, because IT helps these departments get on the same page and help with the information flow throughout the company.

I do not feel IT should be the decision maker for ALL applications, like which graphic design software to use or which CAD software engineering should use. These obviously are department decisions, however, IT definitely needs to be involved to make sure the resources needed to run them are provided and the costs are calculated.

IT still has a place and should make IT decisions for the company. IT does not understand marketing, so why would they make marketing decisions? In the same way, marketing does not understand IT so why would marketing make IT decisions? This is why IT exists. The argument behind IT becoming irrelevant baffles me. I think it is good for those pushing the cloud to sell this idea as fewer people involved in a sale the more likely it will be to happen right? Because hey, wow, IT doesn’t have to be involved in the decision. Especially if selling to a VP or someone high up in the company. I think this is a bad way to run a company.

On a side note:
At my company, we have a very open IT policy surrounding computers. IT at my company runs on the philosophy that people are smart and not just dumb users. They allow users to have admin on the desktop and they can install any applications that they feel fit. They also allow users to setup servers and host applications for their departments. In a way, this is the same philosophy as cloud computing. Although it does cut the IT costs, we have found that each department has started to hire people who fit in the IT admin role (masked with a different title of course). The true cost of IT has now become impossible to calculate and makes it harder for IT to justify the resources they need to better help the company as a whole. Other departments are being granted personnel resources to run whatever application benefits them only. In some ways, these admins could be shared resources allowed to work on other projects, but because they are in other departments, they are hands off to anything but the needs of the department. We have also found IT role becoming “clean-up” duty as many of the applications were setup incorrectly or not in a scaleable way, from an organization user management stance. They probably scale good infrastructure wise, but in all honesty, managing infrastructure is usually not that hard to begin with. Sometimes the most basic things like user authentication are the most important things to get right. Maybe you can imagine the headaches it causes for help desks trying to reset a password for a rouge cloud app managed by someone in sales who is always on the phone.

War Eagle 16.04.10

I’m excited about the Auburn A-Day game tomorrow!  I wish I could go down to see it, but I’ll just have to watch it from home on ESPN-U.

Reasons to watch:
  1. Cam Newton is a beast
  2. Mario Fannin will finally get his chance at running back
  3. Auburn has more capable receivers than any Auburn team in history
  4. Gus Malzahn may have a new trick play
  5. The cornerback race is heated
  6. Will Auburn have a defense?