To Find Out Version of LAMP (Linux, Apache, MySQL, PHP) Via the Command Line

I am running a LAMP server on Slicehost. I always have to look up how to determine the version of each component of the LAMP server I am running. I am using Ubuntu Linux 8.04.4 (Hardy). In my case, here are the command-line instructions I use. I hope this helps you too. Btw, the command "whereis" is very helpful in locating programs (i.e. whereis apache2). Linux

> more /etc/issue

or

> lsb_release -a

Apache 2

> /usr/sbin/apache2 -V

Note: Apache 2 doesn't have "httpd" anymore. It was changed to "apache2" instead.

MySQL

First log into your MySQL database from the command line, using something to the effect of:

> mysql -u username -p

Then:

mysql> select version();

PHP

> php -v

or

> php5 -v

Note: This assumes you have PHP 5 installed and that you have installed the Command Line Interface (CLI) to PHP via "sudo aptitude install php5-cli". Alternatively, you can find out the version of PHP via instruction "< ? phpinfo() ?>" within a .php file.

Announcing the Launch of Programming Classroom


So, I finally did it. My company Twin Roots has launched an actual product. Well, not a product exactly; more like a service. Along with my outside partner in crime, Rex Jaeschke, we planned a website where we are providing a service geared towards programmers.

Programming Classroom is the result of this effort.

Rex is well known throughout the programming community, especially in the standards world. He is also highly regarded for his live programming seminars where he teaches classes in C, C++, C# and more.

We thought it would be a great service to offer the seminars that Rex uses in his live classroom teachings to the general public in electronic format. These are the exact same materials from documentation to example source code. It is just that it is at a much lower cost than a classroom setting because it is self-paced learning. You will find seminars on C#, C++, Java, Visual Basic, and C. You will also find some freebies like sample chapters and tips.

So check out ProgrammingClassroom.com and let us know what you think. Needless to say, I am very excited while very nervous at the same time.


Publicly Announcing the Website To My Software and Consulting Company, Twin Roots

twin-roots-logo-notext  

My company website is now publicly online.

Twin Roots, a software and technical consulting, contracting and development company has been active for about a year now. And while I have had an initial website up for the last month or so (basically so that I didn’t have to have the GoDaddy start page as the website), I have never really publicized it.

However, I have found what I consider a pretty good theme for my website and am happy enough with it publicly announce it here. I am using a *free* theme from Six Shooter Media (credits maintained on the web site, of course). I just liked the theme. It is simple yet different enough to where I think it can stand out quite nicely. I see an easy maintenance path for the site, being able to highlight current developments, work or products very easily.

I know a free theme is sometimes frowned upon for a business website. And it could be down the line that I have an original site created. But for my first go around, I feel this will do quite nicely.

I invite you to visit the site and comment on it, either through my email address provided there or right here on my personal blog.

Some items I am looking at adding in the near future are:

  • A company blog
  • Maybe a quick comment section to talk about items such as the site or its content

I am happy that I can get a presence for Twin Roots finally out there.

Possibility of Bringing Down the Internet via a DNS Flaw and Security Hole

I read a wonderful article in Wired last night. I guess I was out of touch because I didn't even know this happened. Check out this quote from the article:

Kaminsky froze. This was far more serious than anything he could have imagined. It was the ultimate hack. He was looking at an error coded into the heart of the Internet's infrastructure. This was not a security hole in Windows or a software bug in a Cisco router. This would allow him to reassign any Web address, reroute anyone's email, take over banking sites, or simply scramble the entire global system. The question was: Should he try it?

The vulnerability gave him the power to transfer millions out of bank accounts worldwide. He lived in a barren one-bedroom apartment and owned almost nothing. He rented the bed he was lying on as well as the couch and table in the living room. The walls were bare. His refrigerator generally contained little more than a few forgotten slices of processed cheese and a couple of Rockstar energy drinks. Maybe it was time to upgrade his lifestyle.

Or, for the sheer geeky joy of it, he could reroute all of .com into his laptop, the digital equivalent of channeling the Mississippi into a bathtub. It was a moment hackers around the world dream of—a tool that could give them unimaginable power. But maybe it was best simply to close his laptop and forget it. He could pretend he hadn't just stumbled over a skeleton key to the Net. Life would certainly be less complicated. If he stole money, he'd risk prison. If he told the world, he'd be the messenger of doom, potentially triggering a collapse of Web-based commerce.

Can you imagine if he decided to actually go to the black market with this thing?!?! Unfathomable, really.

Luckily a patch was implemented, although not a foolproof one.

Though the Redmond group had agreed to act in concert, the patch—called the source port randomization solution—didn't satisfy everyone. It was only a short-term fix, turning what had been a 1-in-65,536 chance of success into a 1-in-4 billion shot.

Still, a hacker could use an automated system to flood a server with an endless stream of guesses. With a high-speed connection, a week of nonstop attacking would likely succeed. Observant network operators would see the spike in traffic and could easily block it. But, if overlooked, the attack could still work. The patch only papered over the fundamental flaw that Kaminsky had exposed.

I guess 1:4 billion is better than it was pre-patch ;-)

Google Chrome is "Officially" Released; and Gmail is still in Beta?

  imageimage

Well, talk about interesting. As seen in this article, Google has dropped the beta label from its web browser, called Chrome.

  Why do I find this interesting? Well, a product coming out of beta into release is actually kinda normal in software development. But, I have been using Gmail for over 4 years, and it is still in Beta!! I even wrote about this before.

  Something tells me that Gmail is a little more stable than Chrome at this point in time. Maybe I am wrong. Heck, though, there isn’t even a Mac version of Chrome yet! :-)

User Interface Before Code

Jeff Atwood had a great post earlier this month entitled UI-First Software Development.

In the blog he mentions:

Of course, UI is hard, far harder than coding for developers. It's tempting to skip the tough part and do what comes naturally -- start banging away in a code window with no real thought given to how the user will interact with the features you're building.

Actually, I am the exact opposite of this. I need an understanding of the UI before going off and writing any code for an application. To me theory, while important, is different than reality. The UI prototype serves as a guide not just for the navigation of the application. For me it serves as an aid in understanding what classes, methods, etc. are going to be needed for the application.

Jeff's post is apropos since I am just starting to sketch out how my application Z is going to look and feel.

That leads me to a minor dilemma. What to tool to use to create my UI prototypes. Many people use pencil and paper, and I see much merit in that. However, I am, for better or worse, and electronic type of guy. So I am trying to see if I can use something besides pencil and paper to do my prototyping.

I have Visual Studio 2008 that I could use, but I am trying to stay somewhat away from the temptation to do any coding.

I also have Microsoft Expression Studio which I may indeed just end up using. I could use Microsoft Expression Blend which is specifically geared towards application UI development. The only downside is that it might be way overkill for what I am trying to do initially.

So, if I don't use Microsoft Expression, what do I use then? PowerPoint? Paint.NET? Other?

I found a couple of posts that list some UI Prototyping tools.

Here is one.

Here is the other.

Given that I already have Microsoft Expression Studio, and even Microsoft Office 2007 if I wanted to go the PowerPoint route, I am not sure I want to spend a bunch of money on such a tool. However, if anyone has any recommendations, I am surely open to purchasing something -- I mean, come on....being a wannabe micro-ISV who would want people to buy my product, I need to support my fellow software developers if it warrants. Of course, a really good free tool isn't so bad either ;-)

Btw, here are some free trials I am thinking about checking out:

  1. Mockup Screens
  2. Serena Prototype Composer (this is actually free)
  3. Designer Vista

If anyone has any thoughts, recommendations, or ideas about this, I am all ears.

Until next time.....

Finally! I Know the Product I Am Going To Develop

image

So, a while ago, I put a list of ideas out into the wild that I was choosing between as my first micro-ISV project. I haven't really made progress on those ideas because I have been busy doing consulting work and I haven't always been convinced that the ideas were all that good.

But now, I have finally broken through. I have what will be my first micro-ISV product. And I am very excited. I am not going to let the cat out of the bag this time. What I will say that is primarily a desktop application, has some competition and sprouted from a need that I personally have had for a long time.

I have started the design specification. I have most of my development tools in order. I am ready to go!

I am still doing some consulting work, but that may be winding down soon. Thus I will be able to concentrate on this full time. I am thinking a beta within 6 months, maybe sooner depending on what else is going on. We'll see.

Whether this succeeds or fails, it is great to finally know that I can be excited about something and put some passion into it. The worst that is going to happen with this product is that I will learn something and I will be able to market my software development skills again. Woo Hoo!

And, to boot, I have some other ideas to follow this first idea. So I am building a nice little queue.

Until next time....

P.S. I have a name for my company, almost have a logo developed and have someone to develop my web site.

My First Micro-ISV Product Ideas

[Note: I have a phone meeting on Wednesday with an old colleague where the result could change my plans. I will keep you posted]

OK, here it goes....for better, worse or the other, I am letting the world know my first product ideas. We'll see if announcing these now was a good idea or not. ;-)

Before reading my specific ideas, make sure you obtain some context by reading my previous post about goals.

As you will notice below, I am entering into pretty saturated markets (i.e much competition exists). However, I have subscribed to the theory that while a totally unique idea that is a hit may provide the best overall outcome, those come very far and few between. Instead, it is much more normal to add value to existing ideas, and let the execution and marketing of the added value bring success. Looking at it from the glass half full perspective, having competition means that people want the product or service (i.e. there is a market).

Also, I have a motto that I want to develop products that *I* will use on a daily basis. That is important to me because it makes me my own customer -- and I don't want to use crappy products either.

So without further ado, here are my product ideas for the next year or so. Again, these products align with my goals.

 

RSS Reader (Desktop)

Yes, there are many RSS readers out there, both web (e.g. Google Reader) and desktop (e.g. FeedDemon) based. I am going to enter my hat into the desktop ring. I will offer the basics, of course. But, I do have some ideas that I hope, in conglomeration, will differentiate mine from others. One is having both a Mac and Windows reader, with the same user experience. The second is being able to sync your feeds (e.g. read/unread) so you can be up-to-date no matter which computer you use the reader on (this requires some sort of web-based storage solution, probably). The third is being able to....well, I don't want to give this one away yet :-)

Business Model: Free basic version; Fixed-price premium version [Note: I am still working out if the free/premium model is the best way to go.]

 

Fantasy Football Information Web Site

Two of my many passions are sports and technology. I figured, hey, why not merge the two. I love playing fantasy football (NFL). There are many fantasy football websites that offer information about who are the best players to play during a given week, game previews, answers to emails, draft software, etc. Some of these sites are from the big boys (e.g. ESPN) and some smaller, yet popular, folks (e.g. Fantasy Football Today). I figured I would offer the same sort of valuable information and tools, but try to do it better and/or differently. In the end, when it comes to sites like these it is all about providing good, relevant and as accurate as possible information.

Business Model: Advertising

 

Package of Tools and Utilities for Windows

I have always like building small tools and utilities. Most of the tools I have built, either for my own uses or for work, I was doing back in my corporation days. I have had folks appreciate the tool work I have done. So I figured why not come up with a list of (hopefully) useful tools and utilities and offer them up free for people. I don't consider any of my ideas here earth shattering, nor unique, but just things I have found a need for. I don't plan for these tools to make money, nor get bought out by Microsoft like SysInternals. I just want to provide them for fun and test an open source business model -- where my goal wouldn't be to make money, but more just get my name out there. Here are a few examples I am thinking of implementing (and, yes, initially these will be Microsoft centric because that is what I know)

  1. An Outlook mail component that makes sure you actually have an attachment in an email that is supposed to have an attachment.
  2. A component for IE7 that automatically puts widely used links in the Links portion of the IE7 browser and makes sure they are bubbled to the "top" of the Links portion (e.g. they are visible in the max screen browser window)
  3. A small utility that allows a user to increase/decrease the number of simultaneous downloads allowed from IE7
  4. A tool that finds all the files where there are multiple instances on your computer (this could be Mac and Windows)

Business Model: Free, Open Source

 

I will provide specific details on each of these efforts as I move along the development path. Right now, I think I am going to work on the Fantasy Football website first so I can have it ready in time for the next NFL Fantasy season, which begins in full force around August.

So there you go. The cat is out of the bag. :-) Now it comes down to execution. Also, I am not adverse to discussing/collaborating/partnering on these ideas or any other ideas. So if you have any thoughts you want to share with me personally, feel free to contact me by email or leave a comment.

Micro-ISV: Working on Multiple Projects at the Same Time?

I believe I have decided on my first Micro-ISV projects; three to be exact. One is a primarily web-based effort. Another is a primarily desktop application. And one is just a fairly simple tool.

My contracting work supposedly ends in January, at which time I can start to focus fully on developing these products. (Of course, other contracting/consulting work could come my way after January, and I have to do the normal cost/benefit analysis -- but let's just assume for the time being that I have full time devotion to Micro-ISV products after January).

The tool I think I can get out relatively quickly. But the web-based application and the desktop application are quite a bit more complicated. I would like to get both out as soon as possible, but as a one person shop, new to this whole Micro-ISV thing, I am wondering about serial vs. parallel work styles when it comes to developing products.

In other words, is development "multi-tasking" a good idea?

clip_image002

Back in the "corporate world" working on more than 1 distinct project at the same time was fairly common. However, at least in my case, you worked in a team setting; so you didn't own the whole project/product on your own. Plus, you didn't necessarily have to worry about the non-development aspects of the company (marketing, finances, etc.)

With a Micro-ISV I can see it both ways. On one hand, working on two or more projects at once can remove focus from one project and you might miss something. On the other hand, if you get stuck or just burnt out on one project, you can always move to another project for a while.

So I am hoping I can hear about some experiences from folks that have attempted and either failed or succeeded in managing to work on two development projects at one time.

Input appreciated. Thanks.

10 Types Of Programmers

I read an interesting, and rather humorous, commentary about the 10 types of programmers you will find out in the field. My thinking is that many software developers fall into more than one of these camps depending on the situation. For example, I can safely say that I have been a Ninja, a Code Cowboy (yes, I admit I have written spaghetti code) and an Evangelist ---- on the same project! Here is my favorite:

#4: Vince Neil

This 40-something is a throwback to 1984 in all of the wrong ways. Sporting big hair, ripped stonewashed jeans, and a bandana here or there, Vince sits in the office humming Bon Jovi and Def Leppard tunes throughout the workday. This would not be so bad if “Pour Some Sugar on Me” was not so darned infectious.

Vince is generally a fun person to work with, and actually has a ton of experience, but just never grew up. But Vince becomes a hassle when he or she tries living the rock ‘n roll lifestyle to go with the hair and hi-tops. It’s fairly hard to work with someone who carries a hangover to work every day.

....and, yes, Pour Some Sugar On Me *is* infectious if you hear it enough. It's crazy! :-)

Apple Will Allow 3rd Party Applications for the iPhone

This is good news! Why? Well, 2 reasons:

  1. Customers and developers alike have demanded this functionality, and Apple has seen the light. Applications that just run in the iPhone version of Safari was not going to cut it.
  2. My new business can make use of this wonderful news in product development :-)

More details need to emerge before I get super-excited, like what will the developer limitations, if any, be? But I am a bit excited.

Some discussion has been going on everywhere in the blog-o-sphere. Example: Robert Scoble discussed this.