5 Tips On Running Meetings Effectively

Overview

Meetings are vital to any organisation. It can be the difference between being a well communicated business and complete discord and miscommunication. Here I will give you 5 tips on running meetings effectively. You should also check out my other post on the best ways start a new project for tips on kicking your project off in the right direction.

Stick To The Agenda

Before the meeting, create a topic driven agenda. It is important to make sure you cover all the topics during the meeting and ensure that you don’t stray off topic to discuss other points. If another point is raised, jot it down and place it in the following meetings agenda.

Keep Your Team In The Loop

The more your team knows about the project, they more they will feel involved. It will also help them realise their importance and keep them motivated. Let them know if you are on track, what the current issues are and any changes to the project.

Don’t Obsess Over A Point

If you find you are stuck on a topic too long, don’t stress about it. Put it aside and move onto the next topic. Getting stuck on a single topic will draw out the meeting and causes frustration and can lead to lack of interest and loss of focus from your team. Sometimes a difficult topic is worth throwing to the team to research or ponder over in their own time and then have them bring their research into the following meeting.

Make Sure Are You In Control

It is way too easy to stray off course. Be in control of (but not overpowering) the meeting and keep the your team’s focus on the points of the agenda. Allow everyone to have their say and be involved in the meeting however don’t let anyone overpower the meeting. A well heard meeting allows you to hear what your team has to say and allows you to pick up any issues your team may have. Let them know what their priorities are and what their focus should be on.

End Correctly

Meetings are incredibly important and the outcome of a meeting is one of the main reasons you have them. It lets everyone know where the project is at and what is still required. At the end of the meeting make sure that everyone knows what their responsibilities are, what their priorities are and that there are no uncertainties with their tasks. It will ensure that everyone can quickly proceed with their part of the project and will be working on the correct milestones.

Is Apple Losing It’s Innovative Edge

iOS8 Renovates Their Design

The world has played audience to the overhaul Apple has gone through this last year. Not only has the company changed its stance to be a more friendly entity, it’s also promised to be more open. After releasing iOS 7, which completely renovated the visual palette of the original iPhone, Apple has gone a step further this time. The release of iOS 8 took everyone by surprise as it discarded the original iPhone blueprints and replaced them with a more interactive and friendlier interface.

Is Apple Losing It’s Innovative Edge

Lightbulb

Lightbulb

It is very hard to completely redo the design of a popular interface without altering the experience of dedicated users. This task proved hard even for Apple, as the new interface with a wide range of flaws, both trivial and fatal, hit the market. With numerous bugs coming into the spotlight as users and critics explore the new OS, there is an obvious capacity for improvement. Some of the more vital areas of problem are related to Wi-Fi and battery drainage. Despite working flawlessly on iPhone 6, iOS 8 doesn’t seem to pay much attention to the older phones or iPads. The dragged Wi-Fi speed, massive amount of storage for the update, and heavy apps draining battery are really getting on users’ nerves.

Many new Features And Just As Many Bugs

Although the number of bugs in iOS is much higher than anticipated, it also includes quite a few cool new features. One of the most useful addition is Continuity. Allowing the user to pair devices, Continuity makes transition of work smooth and you can switch devices easily. To respond to the complaints, Apple has also added a Bug Reporter to the mix, which allows you to report any foul play to the company. Gamers and have a reason to rejoice as Safari allows them to run Web Software for the WebGL and hence get 3D graphics. IndexedDB standard has also been met which lets the users continue emails, word processing etc without interruption during faulty internet access.

Apple Is Losing It’s Polish

Apple Losing It's Polish

Apple Losing It’s Polish

Apple’s products have always been well polished and any features and designs are well thought out and beautifully implemented. That being said, the latest round of products seem to have less passion and polish that what we have come to expect. Will they step up their game and get back to where they were? I certainly hope so.
It is starting to appear that Apple is playing more of a game of catch up than leading the world in innovation.

They’ll Bounce Back

Or will they? Is Apple Losing It’s Innovative Edge? Apple’s diehard fans are highly unlikely to think much of the bump on the road Apple’s hit. Looking at the brand’s past reputation, we know they’ll bounce back and reclaim their position.

Fastest Way To Format File Size In PHP

Overview

In this short post, you will find a PHP function that has got to be the quickest way to convert bytes into an easier to read format of kilobytes, megabytes, gigabytes and petabytes. The PHP filesize convert function below takes the number (as bytes) passed to it and will convert it into an easier to read format. It will also round off the result to 2 decimal places. Very convenient and free from my site.

Fastest Way To Format File Size In PHP

The PHP convert function will take the number passed to it and continually loop and divide the number by 1024. We divide by 1024 since that is the number of bytes in a kilobyte as well as the number of kilobytes in a megabyte and so on. Each time we divide by 1024, we see if the result is still bigger than 1024. Once the number is less than 1024, we then count the number of times we had to divide the original number and that will tell us if the number is B, KB, MB, etc. For example, if we divided the number 3 times, that would mean the original number is in the GB. So we get the third element out of our $types array which returns GB.

<?php

function formatSize( $bytes )
{
	$types = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB' );
	for( $i = 0; $bytes >= 1024 && $i < ( count( $types ) -1 ); $bytes /= 1024, $i++ );
		return( round( $bytes, 2 ) . " " . $types[$i] );
}

Usage Examples

Below are some examples on how to format file size in php using the above function.

<?php

// call the above formatSize function and pass it a number as bytes

echo formatSize(8763432); // will echo 8.35 MB
echo formatSize(258); // will echo 258 B
echo formatSize( filesize('/path/to/some/file'); // will echo out the file size of that file

 ?>

Agree To Xcode License Command Line

Overview

With the newer versions of Xcode and iOS being released lately, you will undoubtedly be presented with the updated license agreement. Agreeing to it is mandatory and below I will show you how. So if you are not sure, read on.

Agree To Xcode License Command Line

Performing tasks on the command line in Terminal will cause you to continually be prompted to accept the license agreement like so

12:25pm @ darianbr:  xcodebuild

The prompt looks something like this

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
Agree To Xcode License Command Line

Agree To Xcode License Requires Admin Privileges

Accepting the license will require admin privileges. Do so by running the xcodebuild command as sudo. You will be prompted to enter your password and you will be shown the Xcode license agreement.

12:26pm @ darianbr: sudo xcodebuild

You will be prompted to etner your password and will be shown the license agreement.

Password:

You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.

Hit the Enter key to view the license agreements at '/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'

Accepting the Xcode License Agreement

At the end of the license agreement, as show below, you will need to type ‘accept’ (I highlighted in yellow) in order to accept the xcode licence agreement.

5. Services; Mac Developer Program.
A. Apple may provide access to services by or through the Developer Software for you to use.  Use of these services may require an Apple ID, may require you to accept additional terms and may be subject to additional fees. If you elect to use such services in conjunction with the Developer Software, your usage of such services will be subject to those additional terms and conditions (e.g., your use of Developer IDs obtained from your Apple Developer Program account will be subject to the applicable Apple Developer Program terms for Developer IDs), but this License will continue to apply to your use of the Developer Software licensed hereunder. If you would like to submit Applications you develop to the Mac App Store, then you must apply to join the Mac Developer Program. More information about Apple’s Developer Programs is available at http://developer.apple.com/. Apple reserves the right to refuse admission to any of its 

By typing 'agree' you are agreeing to the terms of the software license agreements. Type 'print' to print them or anything else to cancel, [agree, print, cancel]

Final Words

After typing ‘accept’ and hitting enter, you will now have accepted the license agreement and will no longer be prompted to agree to xcode license agreement.

5 Tips To Starting A New Project

Overview

Starting a new project with a client can be a daunting process. It will set the tone for your relationship with your clients so it is important to start our correctly and on the same page as your clients expectations. It is also vital to run your meetings effectively to ensure complete project success.

Understand Your Client Needs

Before you can deliver the project to a client, it is imperative that you understand what they need. Starting a new project on the right track can be the difference between a happy client and an irate client. Make sure that you listen carefully and document what they need from you and then tailor your solution to fit in with their needs not the other way around. In meetings, don’t be scared to take too many notes and draw small annotations to capture what your client is thinking. Miscommunication happens all too easy and can cause projects to derail off course

Review Their Needs

After meeting with your clients and listening to them closely, go through all your scribbled notes and build a project overview. It will allow you to see how much work is involved as well as letting you know if you have the ability to deliver exactly what they want.

Let The Know What They Are In For

You have now decided that you are able to deliver what they want so go through your project overview and get a ball park figure on what it will cost them and let them have it. There is no use wasting both you and your clients time going through all the steps only to have them pull out at the end when they see the cost.

Functional Spec

Now that you understand exactly what is needed, it is time for you to show your client exactly what they are getting and what they can expect from your. Flesh out all your notes and plan the project stage by stage. It will give your client a first glimpse of what they are getting and allows both you and your client to see anything that has been overlooked or perhaps misunderstood. Have your client approve the functional spec and move forward with the quote.

Quote With Deliverables

So both you and your client are on the same page and both agree on what you are to deilver, now it is time to give them the quote and deilverables. Deliverables are a step by step timeline of what each milestone will deliver to them and when it will be delivered. The quote is a list of the costs against each section of the project. It is important that your client understands how long it will be before they can expect to see more results. If a milestone is going to be delayed, let your client know as soon as you can. It will reduce a lot of the stress. A client that is left in the dark is can easily become an irritable, unhappy client.

Apple iPhone 6 Full Review

Apple iPhone 6 Full Review

The most awaited phone of the year is finally here. Yes, we are talking about Apple iPhone 6. People all over the world have waits anxiously for new Apple iPhones and Apple never disappoints them. This year also Apple has come up with new, unique and amazing device, iPhone 6.

Features of Apple iPhone 6

Design: For the past few years Apple has stuck to its sharp edges and flat sided design. But, this time the Apple has changed the design and has come up with curved edges like the iPad-mini. Although, changes have been made in the design, the quality of material from which the device is made has been kept same. Also, iPhone 6 has gone thinner and is 6.8mm thick and the iPhone 6 Plus is 7.1mm. The volume button and the power button are same as before.

Dimensions

iPhone 6:
Height: 138.1 mm (5.44 in)
Width: 67.0 mm (2.64 in)
Depth: 6.9 mm (0.27 in)
iPhone 6 Plus:
Height: 158.1 mm (6.22 in)
Width: 77.8 mm (3.06 in)
Depth: 7.1 mm (0.28 in)

Apple iPhone 6 1

Display

iPhone 6 has a screen of 4.7 inches and iPhone 6 Plus sports a massive 5.5 inch screen. The with a resolution of 750X1334 pixels and 1080X1920 for the iPhone 6 Plus. The pixel density of the device is 326ppi. Just like it’s predecessor, it still has the Retina HD which is considered a better technology and claims to give better and wider angle of view.

iPhone 6:
4.7 in @ 1334 x 750 pixel resolution
326 ppi pixel density,
iPhone 6 Plus:
5.5 in @ 1920 x 1080 pixel resolution,
401 ppi pixel density

Apple iPhone 6 2

Interface

The iPhone 6 comes with the newer version of iOS 8 which looks great visually although some people are saying the Apple iPhone 6 has the same novel flat looks of iOS7. This time, iOS 8 biggest features are the Health Hub and Apple Pay which are updated with passbook. The feature of the Health Hub is that it basically collects data about a user’s vitals from different gadgets including the iPhone and Apple Watch. Apple has planned to replace wallets by iPhone 6 it has the NFC Chip. This NFC Chip can be used to pay in bills in McDonalds, Starbucks and many others franchises.
Apple iPhone 6 3

Processor and Memory

The biggest highlight of iPhone 6 is its new A8 system chip which is 25% smaller than the A7 but still A8 has 2 billion transistors which makes Apple, the first company in the world to get 20nm chips in mass production devices. Instead of 32 bits, A8 runs with a 64-bit enabled chip.
A major change has also been done in the memory part. Apple iPhone 6 will not be available in 32 GB and will be available only in 16GB, 64G and 128GB of internal memory. However, the option of micro SD Cards is still not there in iPhone 6.
Apple iPhone 6 4

Camera Quality

The device comes with a of 8MP camera with 1.5u pixels same as before. But changes are done in optics as iPhone 6 will have a wider lens, f/2.2 aperture and sapphire cover. Also, a new slow mode is introduced which will allow user to capture a twice the frame-rate for a twice more pronounced effect which means 720p at 240fps. Optical image stabilization is missing and it comes with digital stabilization.
Apple iPhone 6 5

Battery

The battery is of 2915 mAh for the iPhone 6 Plus while the iPhone 6 is 1810 mAh which gives better backup than previous versions of iPhone.
iPhone 6: 1810 mAh
iPhone 6 Plus: 2915 mAh
Cost: $299 for 32GB.

Final Verdict

The Apple iPhone 6 has got better screen and better features. It looks good in design and has got better iOS. So it’s definitely a good buy, only if you can afford it.
Apple iPhone 6 6

List Of Common Ports And Protocols

List Of Common Ports And Protocols

Below is a list of common ports and protocols as well as the service it is generally associated with. If you feel there are ports that should be on this list, please leave a comment or contact us.

PortDescriptionTCPUDP
20FTP – data port (File Transfer Protocol)
21FTP – command port (File Transfer Protocol)
22SSH (Secure Shell)
23Telnet
25SMTP – Sending Mail (Simple Mail Transfer Protocol)
43WHOIS – Domain Name Lookup
53DNS (Domain Name System)
67DHCP – Server (Dynamic Host Configuration Protocol)
68DHCP – Client (Dynamic Host Configuration Protocol)
80HTTP – Webservers such as Apache2 and IIS – more info on accessing websites on alternate ports
110POP3 – Receiving emails (Post Office Protocol, version 3)
123NTP (Network Time Protocol)
143IMAP – Receiving emails (Internet Message Access Protocol)
443SSL – Webserver with encryption (Secure Socket Layer)
Plesk Control Panel also uses this port
1433MSSQL – Database (Microsoft SQL Server)
2082cPanel
2083cPanel over SSL
2095cPanel Webmail
2096cPanel Webmail over SSL
3128Squid Proxy – Default Squid Proxy Port. Port 8080 is another common port for squid.
3306MySQL – Database
8080HTTP Port (Alternate port generally used when port 80 is already in use – more info)
8443Plesk Control Panel

 

Accessing a website on a different port

When you access websites, you are, by default, accessing them on the port 80 since this is the default web port used by websites. This means that http://www.darian-brown.com/ is the exact same as http://www.darian-brown.com:80/ (where :80 specifies the port number). However if the website server is using another port such as a more commonly used alternate port 8080, then you will need to specify the non-default port in the following format: http://www.example.com:8080/ where www.example.com is the website domain or IP address and 8080 is the port number the website is running on.

Output Json Header In PHP

Overview of JSON

JSON http://www.json.org/ is an acronym for JavaScript Object Notation. It is essentially a way of exchanging data between a source and destination using name/value pairs. Commonly used when transferring data from a database to a website using AJAX.

Generating a JSON object using php is pretty simple (although it won’t be covered in this article), the lesser known technique is setting the correct content type so that the php page that generates the JSON object is seen as an actual JSON object rather than a plain text/html page.

Some libraries such as jQuery.getJSON() will detect wether or not the html page is a json response by looking at the Content-Type header of the response.

Json Content Type

What I mean by the correct content type is that each file type has its own content type which tell the browser how to handle the file. It informs the browser of what type of file follows so the browser is more aware on how to handle the content. For example a css file is seen as text/css where as an html or php file is seen as a text/html and likewise an image file can be image/jpg or image/png.

For a complete list of mime-types view this article or if you want to learn how to determine a mime-type of a file, click here.

Output Json Header In PHP

As for JSON, it can be output as a javascript file but also output as a json file. To overwrite the default content of text/html that the php file will most likely be, we will set the correct headers using php’s header(); function as you can see below.

Output as Json Using PHP Headers

<?php

// set our content-type to json
//  note that a Content-type of application/javascript works just as well as application/json
header('Content-Type: application/json');

// now output our json object
echo '{"name":"darian","lastname":"brown","age":87,"adress":{"21 somewhere street","my city","Australia"}}';

?>

Now when the page is loaded, the page will be seen as a JSON script rather than a simple html page.

Convert PHP Array to JSON Object

It is very easy to convert a php array into a json object using the php function json_encode(). It simply takes a multidimensional php array and converts it into a valid json string that will be read as a json object by javascript.

<?php

// create our php array - this will convert to a json object
$array = array(
	"name" => "darian",
	"lastname" => "brown",
	"age" => 87,
	"address" => array(
		"21 somewhere street",
		"my city",
		"Australia"
	)
);

// now we convert the above array to json string using json_encode()
$json = json_encode($array);

// set the json header content-type
header('Content-Type: application/json');
// and output the $json string so that it can be handled by our javascript code as a json object
echo $json;

// above echo will output our array as
//	'{"name":"darian","lastname":"brown","age":87,"adress":{"21 somewhere street","my city","Australia"}}'

?>

Calculate Time Difference Between Your End User And Your Server

Overview

People access your site aren’t always in the same timezone as you are. Now perhaps you would like to determine what the time is for a user in a different country. Then here is a quick way to find this information out.

This example is very useful if you simply want to fetch your clients date and time or timezone; but also good to see what time of day (their time, not server time) your clients access your website.

Now before I should you the code, remember that PHP is server side code – ie. it runs on the server and as such doesn’t have access to the clients local time. Javascript however is client side code which means it can see the localtime but the servers time. So a combination of the two will allow us to calculate the difference.

How To Calculate Time Difference

The way the below example works, is that the client will click a submit button which sets the value of the hidden input field to their local time stamp and that gets submitted to the same php script. Then the php script checks if that value has been sent and if it has, then it gets the local time (of the server) and takes the clients times and shows a message depicting the difference.

<!DOCTYPE html>
<html>
<head>
	<title>Server and Client Time Example</title>
</head>
<body>
	<script type='text/javascript'>

	// when we submit the form, get the client time and submit it as the
	// hidden field 'client_timestamp'
	function getClientTime() {
		var d = new Date();
		// we divide the timestamp by 1000 to go from milliseconds to seconds
		var timestamp = Math.floor(d.getTime()/1000);

		// put the timestamp into hidden field to be passed with the form
		document.getElementById('client_timestamp').value = timestamp;
	}

	</script>

	<form method='post' id='myform' onsubmit='getClientTime();'>
		<input type='hidden' id='client_timestamp' name='client_timestamp' />
		<button type='submit'>Send My Time</button>
	</form>

	<?php

	// if the form with the timestamp was submitted
	if( isset( $_REQUEST['client_timestamp'] ) ) {
		// the time posted to this script through the form
		$client_time = $_REQUEST['client_timestamp'];

		$server_time = time();

		$client_string = 'Your clients time is: ';
		$client_string .= date('d F Y h:i:s A',$client_time);

		$server_string = 'Your server time is: '
		$server_client .= date('d F Y h:i:s A',$server_time);

		// display the times
		echo $client_string.'<br />';
		echo $server_string.'<br />';
	}

	?>

</body>

</html>

Why Unix Timestamp Is Useful

Overview

Unix timestamps are a way or storing a specific date and time. Unix timestamps are a 10 digit number that represents the number of seconds that have passed since midnight Universal Co-ordinated Time (UTC) of January 1st, 1970.

What makes timestamps ever so useful is that since timestamps are recorded as of UTC (or GMT) a single time stamp can be used to to represent all time zones. Once you have your timezone, the unixtime stamp will adjust the time accordingly. For example, a unix timestamp of 1304951846 can represent 10th May at 0:37 AM in London, but it would also represent 10th May at 10:37 AM in Brisbane/Australia.

Why Unix Timestamp Is Useful

How can this be useful? Just think, users can see dates and times on your website relative to their own timezone, rather than the timezone of the server the website is being run on. Being a web developer, I am forever finding myself storing dates do be displayed back to the user. It may be a date a user last logged into a program or website, perhaps even a date that a user posted an article such as this to a website. Once we store a specific timestamp, we can display the time and date to users but also in the correct relevant timezone. On top of which, timestamps are easy to use, and many languages support them.

Online Timestamp Converter

There are online unix timestamp generators to convert to and from unix time stamps such as the one found here.

PHP can convert a timestamp to a human readable format by using the date() function and likewise using strtotime() and mktime() to convert a natural language string to a unixtime stamp to be stored. Short examples are:

PHP Timestamp Example

<?php

/* convert unixtime stamp to human time */
echo date('d F Y H:i:a',1304951846); // would display a time of 10 May 2011 00:37:am

/* convert to a unix time stamp */
echo strtotime('+1 Year'); // would return the timestamp of 1 year from today
echo mktime($hour,$min,$sec,$month,$day,$year); // echo a timestamp specified by the variables

?>

MySQL Timestamp Example

MySQL uses the syntax FROM_UNIXTIME to convert data to a human readable format for example:

SELECT *,FROM_UNIXTIME(timestamp_column) FROM `table`;

Free Online Unix Timestamp Converter

Generate your own unix timestamp online using an Online Unix Timestamp generator.