List of free pomodoro apps to improve your productivity as a web developer

Looking for a pomodoro app, to help keep you on task and productive?

Below is a list of different options for different OS’s

Windows

Mac

Android

Web based / online

iOS

Chrome apps:

  • Pomodo’more is a lightweight app you can add to your Chrome Browser.

You can read more about Pomodoro here: Why breaking time and tasks in to small blocks will increase your productivity as a web developer

Do you really need a custom e-commerce website developed for your small business?

The perfect custom e-commerce website for your business may be best left as a dream for now.

Most small businesses don’t need a custom e-commerce website. When an off the shelf product will work.

If your small business is tight on funds as most small businesses are. You don’t want to tie up your cash flow with a custom e-commerce dream site.

Think of it another way. Say you need to buy a car. Will you buy a car that’s already made and ready to go? Or would you order a custom made car, to your exact specifications? Are you prepared to pay for the extra cost and wait for it to be made for you?

And that’s after the time it will take to find a developer or company to make the site for you.

Almost everyone will choose a ready made car. So choose a ready made, easy to configure e-commerce solution.

There are many options:

  1. Don’t overlook the worlds largest e-commerce platform Amazon
  2. Ebay used to be about auctions, but now many buyers and sellers are just selling at a fixed price Ebay
  3. Etsy if you are selling craft / homemade style things Etsy
  4. Shopify has a great platform and even a POS solution for your small business Shopify
  5. Volusion is a competitor to Shopify Volusion and also has a 14 day free trial.

Don’t forget WordPress, Wix, Weebly and Squarespace also offer e-commerce integrations / plugins, but maybe at the end of the day all you need is a PayPal or Stripe button to accept payments?

So if you are looking to get going with e-commerce for your small business. Consider the options above, to get you transacting online

If you have any questions about the above and need any more help / advice, please contact me.

Do you have enough time for a custom e-commerce website to be developed?

Time, money and patience is required for custom software development.

Custom software development can really hurt, so do your research before committing to it.

Developing a customer e-commerce website can be very time consuming. Do you really need to try and “re-invent the wheel”?

The development process can also be annoying and irritating. More so if you don’t understand the technical aspect. Even seemingly small visual changes can seem to take way more time than you think they should.

You might start thinking…

“Am I being ripped off by my website developer?”

If you haven’t yet embarked down this process, pause and consider your options:

  1. Pay to develop custom software to exactly meet your needs. Which could be a long frustrating expensive journey or
  2. Use an existing e-commerce service like Shopify. Where in a few hours you could have a professional looking site live and ready to take orders.

I’m a software developer. Through years of experience of being paid to develop custom software. I recommend you avoid all the potential pains associated with option 1. Take option 2, start accepting orders today!

Save yourself the pain, take the easy way of using software. That you can then customize (within certain boundaries) for yourself!

If you liked this post about developing a custom e-commerce website, be sure to subscribe below for my next post

How to get started with PHP as a complete newbie

How do you get started with PHP as a complete newbie?

A common question that I get asked is

How do I get started with PHP?

The following is a simple recipe to get you started with PHP.

You’ll need the following basic ingredients for success:

  • A reasonably modern computer running Windows
  • A text editor, notepad for example
  • A web browser, like Chrome or Firefox

Then follow these instructions to cook up your first “hello world” PHP page:

  1. Setup a local webserver on your computer, by installing WAMPSERVER – download from here
  2. Once installed, right click on the WAMPSERVER icon in your Sys Tray and click on “www directory”.
  3. Create a new folder called “Project1”
  4. Enter the folder
  5. Create a new file, called index.php
  6. Edit the file with your text editor, notepad will do
  7. Enter the following code into the file, or copy and paste from here:
  8. <?php echo "Hello World!";
  9. Save the file
  10. Open your web browser and navigate to this URL: http://localhost/Project1
  11. You should see a page with the text “Hello World!” displayed in it
  12. Congratulations you’ve successfully made your first PHP page!

Pros and cons for switching to MariaDB from MySQL?

What are the advantages of switching to MariaDB from MySQL?

And are there any disadvantages?

If you like me, you may have only just heard about MariaDB. I came across it as a new option when adding a database to RackSpace Cloud hosting environment. After a quick read up about MariaDB and seeing that it was MySQL compatible. I thought why not give it a shot for the website I was working on. The website was a demo site, so there weren’t any concerns about production stability. Rackspace Cloud Hosting provided PHPMyAdmin for accessing the MariaDB. Just like you would have with MySQL. Everything appeared to look the same and work the same setting up the database. Once set-up I immediately saw that MariaDB is definitely faster than MySQL.

So what are the pros and cons for switching to MariaDB from MySQL?

Pros of MariaDB vs MySQL

  1. MariaDB has better query performance.
  2. MariaDB has more of an open source attitude.
  3. Switching to MariaDB is easy.
  4. Galera implementation is better in MariaDB.
  5. MariaDB is available as an option with some hosting environments, like RackSpace Cloud.
  6. MariaDB comes by default with some distros, like the Red Hat series.

I took a big site from MySQL to MariaDB with zero issues.

Cons of MariaDB vs MySQL

  1. Switching back from MariaDB to MySQL may not be so easy.
  2. If you are using AWS, Amazon Aurora may be even faster than MariaDB and MySQL.
  3. Your Operating System may not support MariaDB yet.
  4. Your hosting environment may not support MariaDB yet.
  5. Percona may be an even better option than MariaDB.

As with all software there are new versions in development. Each release bringing better performance with it.

So if you are looking to switch from MySQL, make sure the benefits outweigh the risks.

Wikipedia made the switch in 2013 as outlined in this blog post

Rackspace is updating all it’s Cloud Sites from MySQL to MariaDB in 2016.

Useful knowledge base articles from Maria:

If you liked this post, be sure to subscribe below and be the first to get my next post…

How to use CodeIgniter to prevent malicious SQL injections

Should you escape input when using CodeIgniters active record class?

Do you need to worry about MySQL injection vulnerabilities when using CodeIgniter?

Yes, yes you do.

It is of course good security practice. To escape your data before submitting it into your database.

CodeIgniter provides three helpful methods. Which are part of it’s database library to stop SQL code injection.

$this->db->escape()
$this->db->escape_str()
$this->db->escape_like_str()

CodeIgniter also provides a method to to use Bindings. Whereby the question marks are replaced by the data parameters. That you pass to the query function.

For example:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));

This way they are escaped so you don’t have to escape them. Resulting in safer queries for you. Stopping attackers from injecting malicious SQL.

Refer to the last two sections of this page of the CodeIgniter manual.

If you liked this tip, be sure to subscribe below and be the first to get my next tip…

MySQL terminology guide for newbies

MySQL Terminology helpful guide

If you are newbie to MySQL, this guide explains some terminology that is used when developing with MySQL and PHP.

This is not meant to be a definitive guide, but will be updated. Did I miss something? Please let me know or leave a comment below.

Aliases for column names Produces a more readable column name if needed. Especially when a column is produced from a function like CONCAT() for example
Aliases for table names Makes queries shorter and easier to read / write
Backticks ` MySql’s (non-standard) method for delimiting problematic identifiers
Composite Index An index made of more than one column.
Database A collection of one or more tables. Think of a Excel workbook containing many sheets.
MySQL client Software to allow to connect and manage MySQL databases. MySQL Workbench, HeidiSQL, phpMyAdmin etc…
ORDER BY clause Used to sort the results of your SELECT query by one or more columns in ascending or descending order.
Primary Key A unique identifier of a row consisting of one or more columns
Query A way of SELECTing / INSERTing / DELETEing / UPDATEing data
Results / Result set The data / result of a query being run
Row / Record A single row or record of data in a table
Schema The design of one or more tables
SQL Structure Query Language
Sub query A quested nested within another query
Table A repository of data (entity). Think of a sheet in Excel with column headers.

If you liked this guide, be sure to subscribe below and be the first to get my next post…

How to use a local fallback in the event a CDN isn’t available for jQuery

Worried about using a CDN?

  • Worried about a CDN being down?
  • Concerned a CDN might slow your site down?
  • Thinking there must be a down side to accessing files from a CDN?

Fear not a CDN (Content Delivery Network) is a globally distributed network of servers deployed in many data centers. Giving you several advantages:

  • A CDN is unlikely to be down, after all, up time is one of the big selling points of CDN.
  • Decreased latency so that a user accessing your site will be able to download the content faster
  • Increased parallel connections can be made. Again increasing the speed your content and site can download to a users browser
  • Cross-site caching if other sites your users have visited also use the same CDN. jQuery may already be cached in their browser

If that hasn’t allayed your fears? Then you can always use a fallback for a local version of jQuery like this:

If you found this post useful, please subscribe below. If you have any questions, don’t hesitate to leave a comment…

How to integrate a WordPress.com blog RSS feed into a PHP page

What comes first your wordpress blog or your website?

You might have started with a free wordpress blog. Then later created a separate website or vice versa. Well whichever way round it is. You might have ended up with two disconnected websites. Now you want to reuse your wordpress.com blog content in your website.

One easy way to do this and integrate your blog content in your website is using its RSS feed. Which is available on your wordpress blog. Just add this query string “?feed=rss” to your blog’s url and you will get an RSS feed from your blog.

Try it now in your web browser, by clicking on this link:

http://element121.com/?feed=rss

Now that you can access the RSS feed, you can parse the RSS data into your page

Last RSS is a PHP RSS parser. Available to download as a single file here: http://lastrss.oslab.net/

So you can now parse the RSS feed. With a few lines of PHP code as demonstrated below. This is based on one of Last RSS’s examples.

If you found this post useful, please subscribe below. If you have any questions, don’t hesitate to leave a comment…

How to replace NULL values in a MySQL SELECT statement

Sometimes when you are SELECTing data from MySQL, some of your columns may have NULL data values and NULL’s don’t display well to end-users, so it may be best to replace the NULL’s with a string of text instead such as:

  • “Not defined”
  • “Undefined”
  • “Default value”

You could do this in PHP when you are echoing out your data, but it’s a lot easier to do it your MySQL statement.

For example if you have this simple SELECT statement, but not every manufacturers website is defined, so that the website column value is sometimes null.


SELECT id, manufacturer, website
FROM manufacturers

Then you can simply use the COALESCE function to check for and replace any NULL values with ‘Not defined’.


SELECT id, manufacturer, COALESCE(website, 'Not defined') AS website
FROM manufacturers

Also I’ve given the same column name as an alias to the function so your resulting recordset will have the same column header as your first query.

Did you find the above helpful? Please leave a comment below and let me know…