New Office 2016 for Mac now available for purchase

Microsoft has released the final version of Office 2016 for Mac. The company had released a preview back in March but now you can purchase the full version from Microsoft.

Office 2016 for Mac is a complete revamp of the old Office 2011. The new app brings the new UI design seen on the Windows and mobile versions of Office while harmonizing with the new design and features of OS X. It supports features like fullscreen mode, multi-touch gestures, and also has Retina assets for all the high resolution Macs.

Office 2016 for Mac comes with five applications – Word, Excel, PowerPoint, Outlook, and OneNote. If you are an Office 365 user, you can just download it for free. If you are a student, you could get it for free or at a substantial discount. If you are a home user, you can get it for the same monthly or yearly subscription price as the Windows version or from your local retailer.

Sony’s Xperia Aquatech store – a unique marketing promotion and amazing underwater experience

Earlier today Sony opened its first of a kind underwater store. But before you put on your bathing suits, there is a slight catch. The Xperia Aquatech store is a promotional activity, carried by the Japanese company in Dubai, or rather 4 meter under sea level near the city.

The three daylong event aims to demo the marine capabilities of some of Sony’s water-proof devices and most of all build publicity. The guest list is very short, with only competition winners, media and VIPs attending and from the looks of it was nothing short of a spectacular experience.

Attendees are required to participate in some mandatory scuba diving training and are put under the constant supervision of a diving instructor. The preparations extended even further as gкests, who happened to own a Sony Experia Z3 or Z3 Compact are even given special waterproof cases to ensure that their smartphones will survive even further beyond the 1.5 meters of water they were rated for.

The store experience underwater itself is more of a technical demo by a company representative and arguably Sony could not have picked a better setting to make it as convincing and engaging as possible.

Sony Aquatech storeSony Aquatech storeSony Aquatech storeSony Aquatech store

Sony Aquatech storeSony Aquatech storeSony Aquatech storeSony Aquatech store

The whole endeavor looks extremely pricy and even somewhat risky, but it definitely is very out of the box and should bring about a lot of viral heat. Photos from the thrilling event, tagged #XperiaAquaTech, are already floating around Twitter so be sure to check them out for a glimpse of the catchy venue.

Redesigned Google Play store for Android is coming our way

Just a few weeks after releasing it, Google has updated its Messenger app with the ability to allow you to choose your own colors for individual contacts, a feature requested by many. Earlier, the app used to do this automatically.

To access the feature, go to the “People and Options” button from the overflow menu and select the color you want to assign to the contact. In addition, the update also brings some Material Design related animations following complaints of a significant delay and lag in the old sliding animation.

The update is gradually rolling out so it may take a few days before it reaches everyone. Meanwhile, if you have yet to give the Google Messenger app a try, you can download and install it from Play Store — the app is supported on devices running Android 4.1, Jelly Bean, and above.

Redesigned Google Play store for Android is coming our way

Google is about to launch a redesigned Play store app for Android. Version 5.1 of the application features refreshed looks and layout changes.

The upcoming new Android Play store features full-height navigation drawer and real-time card shadows.The My Account page has been thoroughly redesigned and features order history and easily changeable payment methods.

The My apps page has been tweaked too. It features improved scrolling and visuals.

Top 5 websites to create your own mobile apps with coding skills

Today, everybody knows the craze of smartphone apps whether they are Android apps or iPhone apps. Every smartphone users crazily install the desired apps on their device. That’s why we are looking on the internet that new apps are launching day to day. So, if you also want to create your own mobile apps and suppress your this dream due to the lack of coding skills, then let me tell you that you can make awesome smartphone apps without programming skills.

Yes guys, actually I’m going to introduce you with Top 5 websites to create your own mobile apps with coding skills. So, why to wait? Just move forward to know about these excellent websites.

1. AppBar

Appsbar is a very useful online tool to create mobile apps without know any programming knowledge. Appsbar was introduced in 2011 as the first cost-free way for anyone, at any skill level and with a limited budget, to make rich, personalized apps that reflect their own personality, business or event with direct access to app stores.

Appsbar

Appsbar

Appsbar helps you design apps for almost every operating systems such as you can create apps for Android, iOS etc. It also allows you to create Facebook apps. It takes three steps to create apps. In first step, you need to select your app type (business,
music, events, and more). Second step deals with d
esigning and previewing your app as you go and in the third step Appsbar develop your app and provide you with the necessary tools to share your app with the world.

2. Buzztouch

Buzztouch is another mobile applications designing online tool where you can design the both type of apps i.e, Android and iOS. It provides you every facility to design your own apps without no limitation. You can use pre-written plugins or create something custom without any limitations.

Buzztouch

Buzztouch

On visiting the website, it provides you the complete guide for how it works. You can watch the videos for how to create, download and launch the apps. In case of pricing, it offers you to create 3 apps hosted on its server free of cost. For more (50 hosted apps) facilities you can go for premium that takes $79.99/Year.

3. Andromo

With Andromo, you can create your own Android apps very simply. It provides the facility to create your first app free of cost. To create your first free app, you’ll need to sign up with Andromo.

Andromo

Andromo

If you want to create more Android apps, you’ll need to pick a premium plan. It offers three plans, one is on monthly basis and other twos are on yearly basis. It takes $30 for a month and #99 for a year but with limited features. Instead, the third Professional plan takes $249 per year. In the professional plan, it will never seen Andromo logo on About screen but with the previous two plans it includes.

4. AppMakr

AppMakr is an online web place where you can create your own thousands of mobile apps free of cost. It offers you to create Android, iOS and Windows Phone apps. It provides very easy module to create free mobile app. You just need to visit the website and type in your App title and move ahead step by step.

AppMakr

AppMakr

However, the its free tool has some limitations such as shows contextually relevant ads, your designed app will be published to the AppMakr market and more. So, you can hire its premium plan for creating professional apps. It uses three premium plans $1/month, $9/month and $99 All Time Free. Visit the website for more information.

5. iBuildApp

iBuildApp is also a free online web tool to create Android and iPhone apps in just 5 minutes. No single coding is required to create these apps. There are several features of the apps created by site such as GPS Notifications, Make money by placing ads, Create app for selling goods and receiving payment, social sharing and more.

iBuildApp

iBuildApp

Its pricing ranges are higher than the above 4. It provides 4 types of pricing plans including Free, Basic, Business & Enterprise. If you want to create app for your Tablet, then here is no plan to create free tablet app. For tablet apps, it offers two premium plans – Business and Enterprise.

What Do You Think?

What do you think about these websites? After the reading the above information about the all of them, you can judge a best one for you very simply. So, did you liked this post? Found it useful? Make me know about your responses via our comment system.

Wind Up

I filtered this list from a huge amount to mobile apps creating websites. This list of online web tools to create mobile apps is very rear and you all will definitely find it very useful if you are going to create your own app. In case if you’re not so good in programming or even don’t have any knowledge of coding, nevertheless you can create your fantastic, professional and business apps using these websites.

How to Create Triggers in MySQL

This article was written in 2011 and remains one of our most popular posts. If you’re keen to learn more about MySQL, you may find this recent article on administering MySQL of great interest.

This is the second article in a series about database automation with triggers and events. A trigger is SQL code which is run just before or just after an INSERT, UPDATE or DELETE event occurs on a particular database table. Triggers have been supported in MySQL since version 5.0.2.

Our Database Plan

We’ll create a small example database for a blogging application. Two tables are required:

  • `blog`: stores a unique post ID, the title, content, and a deleted flag.
  • `audit`: stores a basic set of historical changes with a record ID, the blog post ID, the change type (NEW, EDIT or DELETE) and the date/time of that change.

The following SQL creates the `blog` and indexes the deleted column:


CREATE TABLE `blog` (
	`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
	`title` text,
	`content` text,
	`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
	PRIMARY KEY (`id`),
	KEY `ix_deleted` (`deleted`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='Blog posts';

The following SQL creates the `audit` table. All columns are indexed and a foreign key is defined for audit.blog_id which references blog.id. Therefore, when we physically DELETE a blog entry, it’s full audit history is also removed.


CREATE TABLE `audit` (
	`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
	`blog_id` mediumint(8) unsigned NOT NULL,
	`changetype` enum('NEW','EDIT','DELETE') NOT NULL,
	`changetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
	PRIMARY KEY (`id`),
	KEY `ix_blog_id` (`blog_id`),
	KEY `ix_changetype` (`changetype`),
	KEY `ix_changetime` (`changetime`),
	CONSTRAINT `FK_audit_blog_id` FOREIGN KEY (`blog_id`) REFERENCES `blog` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

Creating a Trigger

We now require two triggers:

  • When a record is INSERTed into the blog table, we want to add a new entry into the audit table containing the blog ID and a type of ‘NEW’ (or ‘DELETE’ if it was deleted immediately).
  • When a record is UPDATEd in the blog table, we want to add a new entry into the audit table containing the blog ID and a type of ‘EDIT’ or ‘DELETE’ if the deleted flag is set.

Note that the changetime field will automatically be set to the current time.

Each trigger requires:

  1. unique name. I prefer to use a name which describes the table and action, e.g. blog_before_insert or blog_after_update.
  2. The table which triggers the event. A single trigger can only monitor a single table.
  3. When the trigger occurs. This can either be BEFORE or AFTER an INSERT, UPDATE or DELETE. A BEFORE trigger must be used if you need to modify incoming data. An AFTER trigger must be used if you want to reference the new/changed record as a foreign key for a record in another table.
  4. The trigger body; a set of SQL commands to run. Note that you can refer to columns in the subject table using OLD.col_name (the previous value) or NEW.col_name (the new value). The value for NEW.col_name can be changed in BEFORE INSERT and UPDATE triggers.

The basic trigger syntax is:


CREATE
    TRIGGER `event_name` BEFORE/AFTER INSERT/UPDATE/DELETE
    ON `database`.`table`
    FOR EACH ROW BEGIN
		-- trigger body
		-- this code is applied to every 
		-- inserted/updated/deleted row
    END;

We require two triggers — AFTER INSERT and AFTER UPDATE on the blog table. It’s not necessary to define a DELETE trigger since a post is marked as deleted by setting it’s deleted field to true.

The first MySQL command we’ll issue is a little unusual:


DELIMITER $$

Our trigger body requires a number of SQL commands separated by a semi-colon (;). To create the full trigger code we must change delimiter to something else — such as $$.

Our AFTER INSERT trigger can now be defined. It determines whether the deleted flag is set, sets the @changetype variable accordingly, and inserts a new record into the audit table:


CREATE
	TRIGGER `blog_after_insert` AFTER INSERT 
	ON `blog` 
	FOR EACH ROW BEGIN

		IF NEW.deleted THEN
			SET @changetype = 'DELETE';
		ELSE
			SET @changetype = 'NEW';
		END IF;

		INSERT INTO audit (blog_id, changetype) VALUES (NEW.id, @changetype);

    END$$

Finally, we set the delimiter back to a semi-colon:


DELIMITER ;

The AFTER UPDATE trigger is almost identical:


DELIMITER $$

CREATE
	TRIGGER `blog_after_update` AFTER UPDATE 
	ON `blog` 
	FOR EACH ROW BEGIN

		IF NEW.deleted THEN
			SET @changetype = 'DELETE';
		ELSE
			SET @changetype = 'EDIT';
		END IF;

		INSERT INTO audit (blog_id, changetype) VALUES (NEW.id, @changetype);

    END$$

DELIMITER ;

It’s beyond the scope of this article, but you could consider calling a single stored procedure which handles both triggers.

Trigger Happy?

Let’s see what happens when we insert a new post into our blog table:


INSERT INTO blog (title, content) VALUES ('Article One', 'Initial text.');

A new entry appears in the `blog` table as you’d expect:

id title content deleted
1 Article One Initial text 0

In addition, a new entry appears in our `audit` table:

id blog_id changetype changetime
1 1 NEW 2011-05-20 09:00:00

Let’s update our blog text:


UPDATE blog SET content = 'Edited text' WHERE id = 1;

As well as changing the post, a new entry appears in the `audit` table:

id blog_id changetype changetime
1 1 NEW 2011-05-20 09:00:00
2 1 EDIT 2011-05-20 09:01:00

Finally, let’s mark the post as deleted:


UPDATE blog SET deleted = 1 WHERE id = 1;

The `audit` table is updated accordingly and we have a record of when changes occurred:

id blog_id changetype changetime
1 1 NEW 2011-05-20 09:00:00
2 1 EDIT 2011-05-20 09:01:00
3 1 DELETE 2011-05-20 09:03:00

This is a simple example but I hope it’s provided some insight into the power of MySQL triggers. In my next post we’ll implement a scheduled event to archive deleted posts.

If you enjoyed reading this post, you’ll love Learnable; the place to learn fresh skills and techniques from the masters. Members get instant access to all of SitePoint’s ebooks and interactive online courses, like PHP & MySQL Web Development for Beginners.

MySQL: Creating a simple stored procedure

Let’s start creating stored procedure with a very simple one and then we will analyse it line by line.

DELIMITER $$

DROP PROCEDURE IF EXISTS MyFirstSP$$
CREATE PROCEDURE MyFirstSP()
BEGIN
SELECT * FROM MyTable;
END$$
Analysis:

By default MySQL treats semicolon(;) as the statement terminator or end of statement. But as we are going to use it inside the procedure body, so we need another different delimiter to state the end of the stored procedure. DELIMITER $$ sets $$ as the statement terminator.
The DROP PROCEDURE IF EXISTS statement checks for a duplicate stored procedure with the same name and if there exists any then issue a DROP command. You can skip this line if you are sure that there is no other stored procedure exists with the same name in your selected database.
Statement CREATE PROCEDURE marks the start of the stored procedure definition. Here, MyFirstSP is the name of our stored procedure. The stored procedure name followed by a pair of parentheses. The use of these parentheses is to define parameters inside it. In this stored procedure we don’t need any parameters, but we have to put these parentheses as this is mandatory in MySQL unlike SQL Server.
The BEGIN Statement marks the start or begining of a block (here the block is the stored procedure itself).In stored procedures, every statements with multiple statements should be enclosed with a block defined by BEGIN and END, where END statement marks the end of the block;
The statement inside the BEGIN .. END is a simple SELECT query, which fetches all the records from MyTable table.