Thursday, July 30, 2009

Bing and Yahoo to Merge - My thoughts

My thoughts on the new Search Engine Service from Bing/Yahoo

I recently reported on this in my site's news section to read that post, please go here

We all know that competition is good in any market and I think that if Microsoft's Bing and Yahoo can create a real rival to Google then it will be good for the state of Internet. It's not that I am anti-Google, I the contrary I like it. I use many Google services, not just the search engine, but also Spreadsheets that I need to keep at a centralised location, as well as other services like the GoogleMail and Blogger.

Another point that I would like to make, that unlike many other industries, where one major player is dominant (i.e. a monopoly) Google does not seem to take its customers for granted. They have realised that people can quickly move from one Search Engine to another and that they must continue to offer more and more services to make sure they remain on top.

I have to say that I think this could be good for the industry as a little competition never hurt anyone and that it could really could improve. Knowing Google though, they will probably already making plans to make sure they remain on top and are probably relishing the challenge this new rival offers.

How this will affect the Search Engine Industry and those who work in it, only time will tell. I work within the SEO industry and at the moment, nearly all the focus of our work points towards Google and not either Yahoo or Bing, this will now, no doubt change.

I do add one note of caution to those who want MS to succeed against Google. Remember that when Microsoft obtain market dominance (like they did in the browser wars of 90's or the home PC software market) competition can suffer - something that no one would like to see in the world of the Internet, least of all me.

Labels: , , , , ,

Wednesday, July 15, 2009

Essential tools for PHP web developers

Essential tools for PHP web developers

I hope you enjoyed the book list, here are some of my recommendations for software to use when you develop your applications.

Editing Software
I use an excellent named PHPED IDE from NuSphere. It is very well priced and it has some brilliant features including intellisense and will pick up all classes, objects, methods, properties, variables and functions that are available to the page you work on. It also has support for CSS, Javascript, Perl and Smarty Templates. The installation also comes with a debug software and a few other tricks and whistles. I see it as an essential tool for anyone coding PHP on a PC. Find out more at nusphere.com

Primarlily I am a PC user, whether it be Linux or Windows, I like using PCs and my reasons go beyond this article. However I am not averse to new ideas or opinions and I have heard from many people that there is an editor called BBEdit by barebones sofware for OSX, unfortunately I have never tried it and cannot comment, but if you have the means, then please do so.

Browsers


I have chosen Firefox as an essential tool for a number of reasons. It has great support for CSS, is secure and is updated on a very regular basis. However, these are not the only reasons for me choosing this program. The other reason is that is has support for add-ons (little additions written by 3rd part developers) which I now consider to be essential.

Here are my list Firefox add-ons that I use:
  • Firebug - great for looking at problems and properties of the DOM or Javascript. Has an excellent JavaScript console which is brilliant for debugging scripts. Has so many different options that it would be pointless to go through them here. Find out more here
  • Web Developer - Adds new menus so that you can view CSS properties, JavaScript, Image Info... Again too much to list, so please go here for more info.
  • Live HTTP headers - Allows you to view header information as it happens. Great tool for looking at information sent by the server. Find out more here
Internet Explorer - The other browser I must add here is IE. It is not the best browser in the world, but the market place deems it to be essential as it is still the dominant browser on the market. Your client based scripts, HTML and apps could many great things but if they do not work in IE then they are not going to gain popularity. In fairness to Microsoft they have done their best to iron out many of the CSS problems that has caused issues in the past. I tend to develop my apps using FF as the main browser. Once I'm happy with a page or the area I have been working, I always give it a test in IE to make sure it all renders properly.
  • If you really do not want to use Internet Explorer, then there is an option for those with a love of Firefox. You can actually download an addon that will simulate IE within FF. To find out more, please go here.
The obvious choices:

You of course must have an installed PHP installed on your system. With most Linux distributions, the packages can be added at installation or later. You will also need MySQL installed as well, again if you do know how to do this or do not feel comfortable adding to a Linux system it can be tricky. In terms of the Operating System, PHP is a very versatile piece of software and can be installed to be used with either Apache in Linux or on Windows or it can be even installed on IIS in Windows. It is your choice to make and should be made according to your ability at using these Operating Systems.

Unfortunately for people who want to use PHP or MySQL in a Linux installation is beyond the scope of this article. However for those who want to use Windows, there is a simple alternative called WAMP and that can be downloaded here. It installs and configures all the things you need and can get you up and running very quickly. The components that can be installed on Windows include Apache Web Server, MySQL and PHP (WAMP) and once added, you do have a fully working web server.

Reference Manuals/Books
Hope these recommendations help and happy coding...

Labels: , , , , ,

My PHP development Book List (Advanced)

Advance your PHP knowledge...

I hope you all enjoyed my recommendations on PHP books for beginners. I now give you my list for more advanced books that will take you further into the world of PHP programming and development.

1. I touched upon this book in the beginners book list, but feel like it should be mentioned upon more here. Advanced PHP 5 by Larry Ullman would be the first book I would start to read if I was to go in to more Advanced PHP 5 programming and the reasons are as follows. It has great reference chapters on XML, Ajax and OOP - all of which I would recommend you move on to with more detailed books (some of which are listed below). Each chapter is (relatively) light weight and will give you a good grounding in the subject.

2. The next book I would take a look at is PHP Object-Oriented Solutions by David Powers for friends of Ed. This is a brilliant book, I didn't learn OOP from this book, but from looking at it retrospectively I wished I had. It's great book to learn from and (chapter 2 especially) works as a great reference manual should you need it.

You quickly realise when you are building your applications that you often have retype lots and lots of code. OOP is based on code reusability and modularity so that once you have classes in place, the hard work is done. OOP is also good for those who have to keep one eye on the profitability of their business i.e. free lance developers. With OOP in PHP, you can use common classes so that your time can be utilised in a more efficient manner.

I recommend OOP to all people learning PHP, it may take you more time in the early stages when you are designing and building your class, but once the classes are finished you will find your projects running far smoother. Getting one's head around OOP can be tricky so, unless you can do it in another language I would leave this until you really feel comfortable with the language before you proceed.

3. To learn Ajax with PHP I would use Ajax And PHP Building Responsive Web Applications by Cristian Darie et. all. If you managed to master many of the concepts in JavaScript and PHP then this shouldn't be too hard a book to digest. Not only does teach you about Ajax and how to use it with PHP and MySQL, it also gives you real life examples of concepts that can be used in most modern websites.

N.B. I would suggest that you work through at least some of the chapters in the previous book as this Ajax book does use PHP OOP concepts.

Ajax is a brilliant concept and again, it is something that I would recommend all developers to at least try. Not only does it add that all important visual flair to pages, it also has other benefits too. If server loads are an issue, either through the amount of data or instructions they can handle it helps as only the parts of a page that are needed are sent from the server, rather than the server having to send the whole page again.

Labels: , , , , , , , ,

Tuesday, July 14, 2009

My PHP development Book List (Beginners)

Learning PHP and web development from scratch...

Learning a new language can be difficult, especially when you haven't got someone looking over your shoulder trying to help you. That is why we have text books and believe me, some are definitely better than others. This is not just a statement based on 1 example, there were numerous times throughout my time at university that we were given a recommended reading list and the books that were supposed to help, were in fact just being endorsed by some unscrupulous lecturer who wanted to line their pockets - though this could never be proven. If you are reading this as a student, then please before you buy a book that has been 'recommended' take a look at some reviews on web sites that are freely available, after all £30 of your loan cheque is quite sizeable. I have numerous books that were truly awful and have never seen the light of day since the 13 times I attempted to read them.

Anyway, back to the subject at hand:

Here are a list of books I would use to start learning PHP and web development from scratch. You may disagree with me and that's fine, I may open comments on this post, so please do leave me your choices. You may find that I recommend the same published on numerous occasions, I am endorsing any published over another and all recommendations are purely my opinion based on my own experiences.

1. Start at the beginning - Learn (X)HTML - I was a fresh faced first year when I started learning HTML and loved it almost immediately. I had never done any real programming at this point and found it awe inspiring that you could write something in Notepad, refresh it in a browser and there you go, rendered immediately and outputting your thoughts to the world. The book I used for this was by a lady named Elizabeth Castro called 'HTML 4 for the World Wide Web' which was published in 1999 by Peachpit Press. It has of course been updated for the modern age of W3C standards and is now called HTML, XHTML, and CSS by the same author. This is a fantastic book, moves a manageable pace and unlike then will help you learn HTML and CSS all in one go, rather than how I learnt the two technologies years ago when CSS was just a bit of an extra to be used in your HTML. Technically HTML isn't programming, you are writing Markup but it will get used to many things that as a programmer will be using later on in your career i.e. attributes, properties (in CSS) and referencing different parts of your code.

2. It's another Peachpit publication, this time from Larry Ullmang. PHP and MySQL is now in its third editon and is still going strong. I have had to buy this a couple of times (different editions) as I still use for it a little bit of reference. My first edition was worn out very quickly, constant flicking through the pages and index to find what I need took its toll and as a result my first copy is in numerous parts.

Larry is a great programmer and teacher (as I have mentioned in other posts) as he can teach without laying too much on the student. He also has another more advanced PHP book which will advance your knowledge over a number of key subjects, i.e. OOP in PHP and Ajax with PHP. I would recommend that you build a number of sites first before you tackle that book as it can be heavy going in places. The advanced book is definitely more of reference manual and can be dipped in and out of, rather than the PHP MySQL which I would recommend reading in its natural order.

3. Now that you have hopefully sites coming together. I would recommend taking a look at JavaScript. Javascript has had its ups and downs (mainly due to unscrupulous coders and hackers) but has since had a well deserved revival. I like Javascript, it adds an extra dimension to a web site and makes a site feel more like a desktop application than a website (even more so when Ajax is used). However it can be a quirky language, some of the naming and referencing conventions can be tricky, but once you get the hang of it, you will love it.

JavaScript as well as being a programming language for your browser, it also gives you access to the DOM (Document Object Model) and when you learn to manipulate it, can give you some really impressive looking results.

The reason I have added Javascript after PHP is that it looks rather similar to PHP in terms of the code and that with PHP you only have to worry about 2 or 3 real events. Page Load and then GET and POST. JavaScript has many more events and uses objects (HTML elements etc) to add to its functionality.

So the book I recommend for learning JavaScript is the JavaScript Bible (now in its 6th edition) by Danny Goodman et al. A brilliant book, set a good pace and has a massive reference section for you to look almost every property, method and attrbute in the language. It also teaches you about the DOM and how to create scripts that affect it, so is a very good all round.

There are more books that I have used but I will talk about them in my next post. These books will move in to more advanced areas including Object Oriented Programming, Ajax and a few other areas.

Labels: , , , , , , ,

Friday, July 10, 2009

Dreamweaver - an excellent way to start your web development career

My love/hate relationship with Macromedia/Adobe Dreamweaver

I have since moved on from Dreamweaver but for some jobs it is still a very useful tool. A lot of pro developers hate Dreamweaver and in many cases they have a point. However like many things in life, when people get an idea or an opinion it can be very hard to change. I feel like I am an open minded person that believes in using the right tool for the right job.

Dreamweaver is an excellent program created by a great time of programmers and designers. It has a fantastic interface and it makes site creation available to the masses. When I first started using DW I thought the program was amazing and I was very impressed with how well it created dynamic pages with such a minimum of effort. Also it gives a person a very good look at how server pages work along with some basic interaction with databases and really does ease them in to the whole server side world of the web. It has been created to use many different models including ASP[.net] with MS SQL Server or Access; PHP with MySQL on different servers including IIS and Apache and is therefore a very adaptable piece of software.

Dreamweaver also allowed you to use the WYSIWYG side that allowed you to combine the design and the server side parts all on one page. This was indispensible for a person who had some HTML experience but hardly any server coding experience.

OK, on to the bad points. For people who can code their own apps in a server side language this piece of software will no doubt infuriate them. It writes a lot of code (sometimes needlessley) and creates huge amounts of script to do some very simple operations. This is Dreamweaver's main issue for seasoned developers and like I said it is understandable, but if used sensibly Dreamweaver can still have its place in a developers arsenal.

It is also is quite inflexible with the way creates files in to its structure that it uses for database connections - but this is only a minor issue.

I mentioned on the blog front page that I hope to use this blog to help a business be more profitable. Dreamweaver fits in to this idea perfectly. As a developer, a significant amount of time can be used on the inital stages when design meets the site structure. You can create classes, functions and all manner of time saving techniques to try and make site development more streamlined but if you want to speed up this stage I still stick by Dreamweaver. One of Dreamweaver's finest tools is its ability to help you create CSS and how it can fit in to your site development. CSS in Dreamweaver will allow you to (when your elements are in place) to add an atribute and it will allow you to see immediately how it affects the site's layout rather than loading and refreshing in a browser. If you are creating a site that uses a non-standard layout, this is a fantastic way to do things and will no doubt help you at many stages in the design/structure. Of course you need a fairly good understanding of CSS, but once you have that - page layout becomes a whole lot easier.

Labels: , , , , ,

PHP - A New Start in my development

Using PHP to develop websites

So here I was, a brand new book (PHP 4/MySQL by Larry Ullman for Peachit Press) in front that promised me how to learn PHP and create dynamic websites. I had, of course already created dynamic website using classic ASP but I wanted to use PHP and use it well. Many of the concepts mentioned early on in the book just reiterated how to do things that were already common to most programming languages. The common if, else, echo and so on and so forth and these chapters were a breeze and I sailed through the first few chapters in a matter of hours.

However when I started to meet new ideas and concepts I was starting to slow down as the new information had to absorbed and understood for future use. Things like arrays and functions were, though not ultra complicated were new to me as I had learnt ASP in such a disjointed way that this new approach was very heavy going.

With functions in PHP there were new ideas and concepts that had to be understood - like variables within a functions, parameters and the idea of whether or not it is even worth writing the function in the first place! When it came to arrays and using them in PHP, this was such a refreshing change. I had used arrays in ASP but they were, I felt a little clunky, with PHP they feel flexible and you can manipulate them in so many ways (thanks to PHP's inbuilt functions).

I have to say Larry Ullman is an excellent teacher and his books are very, very good and without him I think learning PHP would have been a lot more difficult, so thanks go out to him. I have bought many of his books and it's a testament to his skill at writing technical text books that I keep buying updated versions as there are so many useful bits of information in them.

Labels: , , , ,

Thursday, July 9, 2009

On the road to becoming a PHP developer

My Learning Curve on the road to becoming a web developer living in Burnley, Lancashire...

When I came to web programming my background primarily lied in SEO, but thanks to the requests of my employer I found myself having to learn (Classic) ASP using VBScript as he needed a specific application to be built in-house. This was a bold step from my employer but he must have seen that I had the ability to learn this [archaic] language and allow me the time to start down the programming/scripting road. I felt I was up to the challenge as I had played with a couple of languages at University including C++, JavaScript and HTML and therefore proceeded on to the aforementioned project.

Fortunately, prior to this I had already become proficient in the use of the application Dreamweaver by Macromedia. When I started to create server side apps using Dreamweaver it became apparent that, whilst Dreamweaver was excellent at creating server scripts for beginners it was creating extremely bloated scripts. Now this is not, I repeat not, a slur on Macromedia/Adobe as I realised that the scripts had to be like this to make sure they worked on nearly all servers/machines as a newbie wouldn't have the know-how to fix and issues that cropped up.

In conjunction with the ASP VBScript server, I learnt MS Access - one of many the many choices you can use with DW. Again I had a little knowledge of SQL and of RDBMS (Relational Database Management Systems) from university when I used a very old language called clipper. As a result I found it to be no real problem using the comparatively ultra modern MS Access. After a few weeks of creating this in-house application I was creating session based pages, login scripts and many other components all based around common programming techniques i.e. if, else, then etc. etc. It was also at this point I noticed that ASP/VB used a small number of Objects/classes to build its server connections and saw the obvious benefits they offered - but more on Object Oriented Programming (OOP) later.

I decided to learn a new language and really try develop my skills as a developer. I also knew at this point that Classic ASP was never going to cut it as a language to take my forward in my career (especially as one of my friends was raving about .NET) and I had to make a decision on which language to use for my web development projects. I looked at the options and chose PHP (which was being championed by a colleague) which was standing at version 5. I looked at all the articles I could find and made my decision and decided to use PHP rather .NET. There were reasons for this and they are listed below:

1. It was open source and cheap to create a working server using Linux/Apache at home compared to IIS/Windows Server.
2. The language - Most of my prior knowledge had been in writing procedural code instead of using OOP and I thought PHP was a better choice as it gave me the choice to do both. PHP was at version 4.xx and did have a limited support for OOP and with PHP 5 (which had much better support for OOP) on the horizon it became the deciding factor.
3. The PHP manual - a complete and definitive source for every function in the PHP language with user contributed notes. From my ASP/VB script days I knew that whilst Microsoft did its best to maintain its support, pages were often moved and I found myself going round in cirlces.
4. I could step up to using OOP when I felt I was ready and not from the outset.
5. SEO was in grained in me and I knew that PHP was proven when it came to creating more Search Engine friendly pages.
6. MySQL was free and MS SQLServer was (back then) very, very expensive and cost way beyond what I was earning. -- Edit -- In fairness to MS you can now download free (albeit limited) versions of Visual Studio and the MS SQL server interface.

These are only a few of reasons I chose PHP over .NET, but over the rest of my posts you will see how I moved on and I hope that my posts can try and help you become more than you are at the moment. I will list books, resources and a few other snippets to try and make your career/hobby that little bit better :-)

For people who are a little more interested in how PHP and how OOP and developing re-usable sites/models can contribute towards a more profitable business there will be plenty here for you too. After all, a large majority of websites are used to create profits and the more you can squeeze out of them the better.

Labels: , , , ,