Monday 29 December 2014

Detect Shake in Phone using Jquery

In this post I want to explain you how to implement phone shake detection using jquery. Using this I had implemented an interesting concept that shake the mobile device and get the product discount. Very easy to use add this to your e-commerce project, sure this user experience feature will attract the people for more sales. Please try these live demos with your mobile device, this works with mobile web browser device accelerometer.

Detect Shake in Phone using Jquery

Read more »
Share:

Monday 22 December 2014

Sharing the Cookies in Web Farm OR across different servers

Consider you have an application which provides you an authentication cookie using ASP.NET Membership provider, and you are using this authentication cookie across multiple servers to access the secured contents. I have depicted this scenario using the diagram below.

image

Now to read the client cookies across the applications you can simple use the following line of line of code fetch the cookies

HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value;

But wait a minute, is it that simple? In fact yes except the fact that to secure your session and prevent from any men in the middle attacks your cookies are encrypted using the machine key of Authentication Server. Which might look similar to the one below. This is configured at your machine level, which means you may not usually find this key in your local web.config files.

<machineKey
validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey
="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation
="SHA1" decryption="AES"/>


And also you might be aware that every machine has its own machine.config file which is tailored to that particular machine, so if the cookie is encrypted using the machine key of Server1 then it cannot be decrypted using machine key of Server2 or any other Server.



So even if you managed to get the cookie, but when you try to read the data from the cookie you must have to first decrypt the cookie in order to read any key from the cookie. I have provided below a sample code which exactly does the same.



private void SetFormsAuthenticationTicket()
{
FormsAuthenticationTicket ticket
= default(FormsAuthenticationTicket);
if (System.Web.HttpContext.Current.Request.Cookies.Get(System.Web.Security.FormsAuthentication.FormsCookieName) != null)
{
ticket
= System.Web.Security.FormsAuthentication.Decrypt(
System.Web.HttpContext.Current.Request.Cookies.Get(
System.Web.Security.FormsAuthentication.FormsCookieName).Value);
string[] roles = ticket.UserData.Split(new char[] { '|' });
GenericIdentity userIdentity
= new GenericIdentity(ticket.Name);
GenericPrincipal userPrincipal
= new GenericPrincipal(userIdentity, roles);
System.Web.HttpContext.Current.User
= userPrincipal;
}
}


To get a better view I have also provided the screenshot of the code below.



image



This does solve your problem, but the when you try run the code you might get the following exception.




System.Web.HttpException : Unable to validate data. at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo, Boolean signData)




image



This happens because as I mentioned above, your cookie was created by machine key of Server1, but some of the part of your application is served by Server2 which tries to decrypt the cookie using the code above. So to mitigate this issue first this you might need to do is to generate the machineKey which can be shared across all your applications who is sharing the cookies and located across your network. I have written a separate post on How to generate  the machineKey using IIS 7.0+ you can visit the link: http://tutorials.indianjobs.co.in/2014/12/generate-machinekey-in-iis-70.html



Secondly you have to place the same decryptionKey in all your application local web.config, and you are done.



You might encounter this types of scenario is small scale applications, but for most of the complicated application these days where applications are placed on completely different domains, you will need to implement your own SSO architecture. Details are out of then scope of this article, so you might take a look for details in some other article such as Single Sign On (SSO) for cross-domain ASP.NET applications or Single Sign-On (SSO) for .NET or Using a third party identity provider like Facebook, Google, etc




References:



http://msdn.microsoft.com/en-us/library/ff649308.aspx



http://www.codeproject.com/Articles/288631/Secure-ASP-NET-MVC-applications

Share:

Wednesday 17 December 2014

Generate MachineKey in IIS 7.0+

Normally machineKey is already configured in your machine.config file which is applied to all your application if you are working in the same Web Farm. But most of the time this may not be the scenario, it may be possible that your applications are distributed across different Web Farms.

To deal with this all you need is to configure the same decryption keys in web.config of all the applications to decrypt the authentication cookie created at client side.

To generate a new machine key all you need is to first open the IIS Admin Console, and

1. Select the Server

2. Select the Machine Key from right hand side of the console

image

3. Double Click to open the Machine Key and then Select ‘Generate Keys’ from Actions

image

4. You got the Decryption Key and Unique Key

You can use this Keys in you web.config file which might look similar to something like

image

Share:

Monday 15 December 2014

UnSubscription Email Utility

In this post I am going to show a very simple yet very useful utility which everyone of us encounter when we get lots of unwanted mails which we had subscribed sometime in our web exploration but later we want to get rid of those subscribed mails. Moreover this is a very integral part of our business use cases.

I have used ASP.NET MVC as an example but if you understand the concept, this can be achieved using any of your favorite programming logic as well.

I tried to keep the example as simple as possible so that I can cover the concept/business logic in more details. In this example as soon as I run the application I will call the Index action method with my hardcoded email id. In real world you might want to make it more dynamic and will try to pass this as a parameter.

image

Now I have written a utility  method which is used to generate the subscription link, which can be embedded in the marketing emails, so when the user click on this link Say Unsubscribe Me, he will land on the page where just in a click of button his mail id will be removed from the marketing email database.

image

For the simplicity sake of this example I have not used the real time database operations but for your implementation you will definitely need DB operation to update the user preferences.

Not let me highlight the most important logic of this GetUnSubscriptionLink method; since we are dealing with one key information of a user which is his email id, so I have used CryptoHelper utility which is used to Encrypt the email id of the consumer. This will also help us to filter any Brute force attack where the hacker will try to enter random emails on his list to invoke the unsubscribe methods.

You can download your copy of CryptoHelper utility from here: http://1drv.ms/1r2kisl

One of the example of the unsubscription link is shown in the screen below. For better programming practice you can configure the root URL in your config file.

image

Additionally you can do a second level of validation where you can prompt the end user to provide his email id in a text box and validate this against the decrypted string containing the email id from the query string, if both has a match then unsubscribe otherwise ignore the unsubscribe request.

In my example as soon as you pass all the validation I am calling the Unsubscribe action method of my controller which takes the encryptedText as a parameter and decode the text to unsubscribe the user from marketing emails.

image

Sample screen once the user is unsubscribed

image

I am providing below a utility Property which I found somewhere on internet, this might be very useful to you if you are playing with URL’s

image

Crypto Helper Utility: http://1drv.ms/1r2kisl

You can download the full working copy of this example from this link: http://1drv.ms/1vU5ZCO

Hope this helps, let me know in comments if you have any trouble in downloading the files or understanding my thoughts Smile

Share:

Planning Angular 1.4

We had a planning meeting last week to decide what will go into AngularJS 1.4. Here is a summary of what happened. You can watch the video of the meeting on YouTube below.

Release Schedule

We decided that the first release (1.4.0) will be in Spring 2015, coinciding with ng-conf on 5th March 2015. In the meantime, we'll continue with 1.3.x releases as usual.

Work Planning

Lucas prepared a spreadsheet with a list of suggested items for 1.4 from the issues and PRs on GitHub with the most community interest. This focussed on large work items or things that would require breaking changes or considerable new API. The bulk of the meeting was going through these items, deciding whether they should appear in Angular 1.x and, if so, which release and who would own the item.

1.4 Targets

There is a tracking spreadsheet for the items that are scheduled for 1.4.

The main themes for 1.4 are as follows:
  • Router - Brian - a new router for Angular 1 and 2 - Progress
  • I18N - Chirayu - provide a first class internationalization story for Angular - Design Doc
  • Forms - Martin - a fresh look at parsing/formatting/validation to simplify usage and maintenance (while fixing numerous outstanding issues) - Design Doc
  • HTTP - Pawel - improvements to the $http service, such as serialization, JSON parsing, testing mock DSL
  • Parser - Lucas - performance improvements to $parse service
  • Documentation - Caitlin - redesign the look of the docs app to use Material Design

In addition, we're planning to include the following notable or breaking changes:
  • $injector - Brian - throw an error if you redefine a module, to help identify bugs faster (#1779)
  • $compile - Igor - provide extra new module.component helper for defining component type directives more easily (#10007).
  • $compile - Caitlin - throw an error if non-optional isolated scope mappings are missing their attributes (#9216).
  • Project layout/Modularity - Pete - further partition angular.js into smaller optional modules/files to reduce the non-optional core file size (useful for mobile use cases).

Github Milestones and Labels

Finally we will start developing 1.4.x on the master branch soon. To support this here are the new labels/milestones for on-going development:

Milestones:

1.4.x - use this for issues and pull requests that are accepted and scheduled to be in 1.4

Labels:

branch: 1.2.x (replaces stable: yes)
branch: 1.3.x (replaces stable: no)
branch: 1.4.x (replaces 1.4 - for triaging 1.4.x issues and PRs)
Primary Focus: (new for items that we are focussing on for 1.4 - i.e. the stuff in the tracking spreadsheet)

Other Versions and Backporting

The master branch (i.e. 1.4.x) will now receive the majority of the focus.
The 1.3.x branch will receive version specific fixes backported from master.
The 1.2.x branch will now only receive fixes for security issues and major regressions.

Video

In our continued efforts to be transparent and open about our design and development activities, we published a recording of our planning meeting: https://www.youtube.com/watch?v=Uae9_8aFo-o

Screen Shot 2014-12-14 at 22.14.10.png

Just the Beginning

The planning we did for 1.4 is just the beginning. In addition to the outline above, we welcome additional suggestions for 1.4 via GitHub. Once we've released 1.4.0, we'll continue with 1.4.x releases that include non-breaking fixes that didn't make it into 1.4.0.

Share:

Thursday 11 December 2014

Hello World !!! using Apache Cordova and Visual Studio 2013

You heard it right, this is for all the .NET Developers (other platform also welcome) who have ever wished to build an app using Apache Cordova that targets multiple mobile platforms: Android, iOS, Windows, and Windows Phone.

Disclaimer: All images are copyright to their respective owners.

I am going to show you a very simple mobile application which displays Hello World, using apache Cordova and Visual Studio 2013.

1. Setup the environment by installing the Preview of Visual Studio Tooling Support for Apache Cordova, you can download the CTP from here.

Visual Studio Tools for Apache Cordova

image

2. Once the installation is complete, run Visual Studio 2013 and create a new project. You need to go to Javascript templates or you can select the Multi device Hybrid App and click OK button. this will give you default project structure

image

image

3. For this post I am not going to explain all the files, rather I will go directly to my index.html and change the default text Hello World !!! and we are done.

image

4. And finally select the desired Emulators and run the program.

image

And here is the output, that’s it and you are done.

image

You can double click on config.xml file to customize the Custom and Core properties of your application individually for each platforms.

image

Hope this makes your life simple Smile Enjoy.

Other helpful link:

http://msopentech.com/blog/2014/05/12/apache-cordova-integrated-visual-studio/

http://msdn.microsoft.com/en-us/library/dn757054.aspx

Share:

Monday 8 December 2014

Create a RESTful services using Slim PHP Framework

Two years back we had published an article called create a RESTful Services using PHP, in that most the PHP methods got depreciated. I have been looking for a simple RESTful api framework in PHP, I found few lightweight frameworks called Slim and Epiphany. In this tutorial I had implement a sample user updates RESTful web services project using Slim framework in PHP, it is very simple to implement and only focused on RESTful.

Create a RESTful services using Slim PHP Framework

Read more »
Share:

Wednesday 3 December 2014

Google New reCaptcha using PHP - Are you a Robot?

Today Google has been introduced new reCaptcha API called Are you a robot? “No Captcha reCaptcha” a complete new design captcha system. This protects your website for spammers and robots, in this post I had implemented new reCaptch API system with HTML login form using PHP. I like the new design it is clean and impressive, hope you will like it. Please take a look quick look at the demo.

Google New reCaptcha using PHP - Are you a Robot?

Read more »
Share:

Wednesday 19 November 2014

Angular CLA Infrastructure Changes

As of today, we are unifying our Contributor License Agreement (CLA) checking tool with the newly rolled out infrastructure for all Google open source projects. Just as before, a single CLA signature will enable you to contribute to any open source project from Google, but the new CLA bot is much faster, more reliable and can handle corporate CLAs better.

The new CLA signature repository requires a GitHub account to be linked with a Google account. In many but not all cases we were able to link the two accounts automatically. For those contributors where an automated match was not possible, we'll ask you to re-sign the CLA or add your GitHub username to your contact info the next time you send us a PR.

To check your CLA status you can visit https://cla.developers.google.com/clas. To see if your CLA is linked with a GitHub account please click on 'Edit Contact Information' next to a CLA record where you can check and edit your GitHub account name.

Once your GitHub account name is linked correctly, Googlebot will comment on your future PRs and give it the label 'CLA: yes' (see this PR for an "exemplary" conversation with Googlebot). If you already have an open PR that hasn't been verified, you will need to comment on it for Googlebot to re-verify your CLA.

We apologize for the inconvenience, but this stuff is important for the Angular project and the community that depends on it. Thanks and stay awesome!

Share:

Monday 17 November 2014

Using ngAria

A new feature released in Angular 1.3.0 is the accessibility module, ngAria. As someone involved in delivering this community-driven effort, I thought it might be helpful to introduce ngAria, a module which can improve the user experience for many people with disabilities.

In this post:

What is ngAria?

The goal of ngAria is to improve the default accessibility of Angular.js by enabling common ARIA attributes for directives. Using ngAria is as simple as requiring the ngAria module in your application. It then hooks silently into standard Angular.js directives and injects accessibility support into your application at runtime.

Currently, ngAria interfaces with the following directives: ngModel, ngShow, ngHide, ngDisabled, ngClick, ngDblclick and ngMessages. The list of supported attributes is currently limited; we are identifying additional ways the module can improve accessibility, described later on in this post.

Related reading: What is WAI-ARIA, what does it do for me, and what not?

By centralizing accessibility features into one module, they can be easily added and tested, allowing ngAria to grow over time. On the flip-side, automatic accessibility features are only added if the module is included, making it possible for accessibility to be forgotten—something we can’t continue to do as developers. When you include ngAria in your projects, you can improve the experience for many of your users without doing much at all. However, it’s important to inform yourself about ngAria’s capabilities and limitations so you know what it actually does to your code.

To learn how ngAria works with the directives listed above, explore the ngAria Developer Guide.

Why ngAria?

Many people in the world depend on assistive technologies such as screen readers, high contrast mode, braille keyboard support, closed captioning and more to use the web applications and services we take for granted. The popularity of MV* frameworks such as Angular.js has contributed many inaccessible web applications as our attention has gone to shinier topics such as mobile performance, databinding, automated tooling and ES6 support. We love to innovate the way we work, yet we forget basic things such as HTML semantics and supporting the keyboard.

In the past, Angular.js didn’t do much for accessibility–in fact, it made it more challenging by injecting attributes that didn’t work for accessibility, such as disabled on a custom element directive like <md-checkbox>.

See this rendered markup example:


<md-checkbox ng-model="someModel" ng-disabled="isDisabled" disabled>
Inaccessible Checkbox
</md-checkbox>

The above checkbox directive is inaccessible because it doesn't communicate anything to assistive technologies and it's inoperable from the keyboard. Although it's easy to use directives like ng-disabled on non-semantic elements, this leaves us responsible to also manage ARIA by ourselves. A helpful framework would eliminate this kind of pain and do the heavy lifting where we needed it.

With the introduction of ngAria, common ARIA attributes are now handled by default when the module is included, helping to communicate the state of our application to users of assistive technologies.

Let's look at the same markup after ngAria has done its magic:


<md-checkbox ng-model="someModel" aria-disabled="true" tabindex="0">
Checkbox
</md-checkbox>

Note: this example also requires role="checkbox" and aria-label to be accessible. In Angular Material, we handle this internally but those attributes could become managed by ngAria in the future.

Including ngAria

Using ngAria is as simple as requiring the ngAria module in your application:


angular.module('myApp', ['ngAria'])...

After including the module, any directives in your code that ngAria is hooked into will be automatically fitted with ARIA attributes. To learn more about ngAria's effect on directives, check out the ngAria Developer Guide.

Disabling attributes

Because ngAria's attribute magic may not work for every scenario, you can opt out of specific ARIA attributes by configuring ngAria with $ariaProvider:

angular.module('myApp', ['ngAria'], function config($ariaProvider) {
$ariaProvider.config({
tabindex: false
});
});

For the full list of configurable properties, visit the API Documentation for $ariaProvider.

New to ngAria

ngMessages

A recent pull request for ngAria and ngMessages, the module for form validations, will improve accessibility by also reading errors aloud in a screen reader as they become visible. This functionality can be enabled by adding aria-live to the ng-messages directive. It's a simple way to expose dynamic content to assistive technologies and is a good example of the type of problem ngAria should help to solve.

Proposed for ngAria or Elsewhere

ARIA Role Handling

To communicate better to assistive technologies, ngAria should add missing roles to non-semantic elements such as <md-checkbox> and <div type="range">. An issue has been filed to track these two small features and more will be added as they come up.

End-to-End Accessibility Testing with Protractor

Early work has begun on a plugin system for Protractor that would allow automated integration testing for accessibility as well as ng-hint. Rough ideas for automated testing include HTML hierarchy audits, keyboard operability tests, logs for missing labels and color contrast warnings. Catching accessibility issues before they are deployed gives you more time to fix them and is a lot more fun. Stay tuned for updates as we have them!

$mdAria.expect

An ARIA service method in Angular Material aims to improve a common accessibility issue: forgotten labels, which add accessible names to elements for assistive technologies. For commonly mislabeled components, such as checkboxes or radio buttons, $mdAria will attempt to copy text content to the aria-label attribute. If no suitable text is found, a warning will be logged to the JavaScript console telling the developer they forgot a label for accessibility. We are fixing bugs with this utility as they come up and evaluating whether it could be useful in ngAria or ngHint.

Other Ideas

Some other things we have discussed or proposed for Angular accessibility: warnings for missing alt attributes, default keyboard bindings such as the escape key or question mark key, color contrast assessments and more. I'm excited to see this list grow as we dogfood ngAria on Angular Material and see it battle-tested in the community. If there are things you feel ngAria should do, please write about it in the comments or submit a pull request.

Let's Make it Better

It is our responsibility as developers to build accessible, well-tested web applications. However, the frameworks we use should do as much as possible to improve accessibility by default. As a new module, ngAria will continue to evolve as we discover common use cases it can handle or warn about. Balancing performance and developer experience with end-users' needs requires careful planning and execution, which means it will take time to get right. Consider contributing on Github if you have ideas for ngAria and feel free to comment!

Special Thanks

The module was originally contributed by @arbus, with feedback and improvements from the community through Github issues, pull requests and support from members of the Angular.js core team: Tobias Bosch, Brian Ford, Marcy Sutton and Pete Bacon Darwin.

Share:

Sunday 2 November 2014

iOS Style Switch Button using CSS3 and Jquery.

I said earlier the mobile revolution has been started, now time to build mobile web application for your web projects. Many third party platforms like Apache Cordova and Phonegap are offering that you can convert web application into native mobile application. This tutorial will help you how to design iOS style switch button component using HTML, CSS and Jquery. Specially I love CSS :before and :after pseudo-elements, this helps you to minimize the HTML code.

Facebook Style Notification Popup using CSS and Jquery.

Read more »
Share:

Monday 27 October 2014

ng-europe, Angular 1.3, and beyond

Last week we presented at ng-europe in Paris on the past, present, and future of Angular. In this blog post, we'll recap the main points and announcements.

Angular 1.3

We've just shipped AngularJS 1.3 -- the best Angular yet. With it, you get many features and improvements not found in AngularJS 1.2. Though there are many we focused on:

  • Performance. With many operations like DOM manipulation and digest 3-4x faster, you automatically get snappier apps. 
  • Forms. Simpler and more capable APIs let you write less code and better match user expectations when validating forms
  • ARIA support. With ngAria, you're given a big leg up on adding and removing the correct ARIA attributes to support assistive software like screen readers. 
  • Material Design. We're nearly fully functional on implementing Google's specification for user interface design and interaction. Find it now at material.angularjs.org.

If you are building web applications today, this is the version you should use. This is the tried and true version that we really believe in. With over 1600 apps at Google built with Angular 1.x, we are committed to supporting it as the first class AngularJS version for a long time to come.

One thing that is changing, however, is our support for new features and breaking changes in Angular 1.x. With a few exceptions, these will be deferred to 2.0, and will be better addressed with the new design. We'll still be reviewing PRs and responding to issues but our focus with 1.x will be on stability, security, performance, rather than features.

If you are using Angular 1.2, please check out the migration instructions to find out more about how to transition your code to 1.3.

From 1.3 to 2.0: Angular's Next Step

In the keynotes of ng-conf in January we first mentioned our plans to build Angular 2. In the last few months since then we've been brainstorming what the next evolutionary step will be for Angular. In March, we published our thoughts in design documents. We read your feedback to make sure we understood the types of things you do or wanted to do with Angular. Then we explored different approaches, built prototypes and benchmarks, and iterated on our designs to find the best one we could.

Last week at ng-europe, we presented a look at our vision for Angular 2.0 that resulted from this research and prototyping. In 2.0, you'll find the things that make Angular truly Angular (like DI, HTML-based templating, directives, and testability baked-in). But you'll also find a number of design changes aimed at adapting Angular to the recent tectonic shifts in the web platform (web components, module system, etc.), and making Angular significantly faster and easier to use in ways we couldn't achieve in incremental steps from 1.x.

Specifically:

  • A unified component model that encompases "controllers" and "templates" in Angular 1.x. This means fewer concepts, less boilerplate, and better reusability. 
  • A revised concept of "scope" that makes nested contexts simple to understand, and improves the division of responsibilities between components of your app. 
  • Modular, mobile-first design that also scales to needs of enterprise-grade desktop apps - With over 50% of the world's population yet to connect to internet mainly via mobile, not desktop, and we want to make it easy to develop directly for these users. However desktop web apps remain important, especially in the enterprise space. 
  • Support for Web Components out of the box. Many assumptions we made about the web platform in 1.x are no longer valid, and Angular will change to accommodate these. 
  • Built on top of ES6, with easy transpilation to ES5. This means that you can start writing for tomorrow's JavaScript in today's browsers. Or you can write Angular 2 apps with ES5 just like you do today. It's totally up to you. 
  • We're introducing AtScript, an extension of TypeScript syntax and ES6 that adds optional runtime types and annotations to help large teams build large apps and better document them. Just like ES6, you're not required to use AtScript for building your applications; it's just another tool in your utility belt. 
  • Angular won't rely on jqLite or DOM wrappers in general. The DOM has significantly improved since 2009 and AngularJS doesn't need wrappers any more. In fact, removing them will give us a performance boost. You are still free to use jQuery or other DOM libraries in your directives as you wish.

Many of these ideas come from long discussions we had with Angular developers. Thanks again to everyone who weighed in on these documents! With a stable and performance-focused AngularJS 1.3 out in the world link to blog, we're now turning our attention to building Angular 2.0.

What does this mean for me?

The Angular community is what makes Angular awesome. We're sharing our plans for 2.0 early so that you can be part of the discussion as we move from concept to real code. We want your input and we're excited to hear what you think. For now the best way to do this is by filing issues on GitHub, or reaching out to us on Twitter (Brad, Igor, Brian, Jeff) or Google+, coming to our meetups and following and commenting on our meeting notes.

When can I use Angular 2.0?

If you're interested in Angular 2.0 in its current experimental state, you can follow along on GitHub and through our meeting notes. It's too soon to start building anything with 2.0 code -- we're still in the very early stages of building out the project. In the coming months you should be able to see the pieces falling into place. We're not announcing a release date because we honestly don't know yet, but we're working hard at delivering an early version very soon.

How can I learn more about Angular 2.0?

It's still very early, but watching the videos from ng-europe (when they are available) is the best way to get started. Specifically the keynotes from both days and the session on Angular 2 Core.

If you have more time and want to dig deeper, then check out all the design docs and research we put together and iterated on with the Angular community already.

For people that seek truth in code, there are first bits of code on GitHub in the angular/angular repo. There is lots more to come in the upcoming months!

And lastly you can check out some resources published by our partners, for example a TypeScript blog post that mentions "alignment with ES6" and Angular 2.0, Traceur, EcmaScript 6 and Web Components

What about Migrating from 1.3 to 2.0?

Our goal with Angular 2 is to make the best possible set of tools for building web apps not constrained by maintaining backwards compatibility with existing APIs. Once we have an initial version of Angular 2, we'll start to work on a migration path for Angular 1 apps.

We know that you have invested a lot of time learning how to build web apps with Angular. Since we are preserving most of the core concepts, this knowledge will help you be proficient in Angular 2 much faster.

What's next?

ng-europe was an amazing event for the whole Angular community. We definitely had a blast and are all energized and inspired by presentations, demos, but most importantly by all the informal hallway conversations we had there. Now is the time to start to make the ideas we showed more real and we invite you to be part of it. While 2.0 is under construction, we encourage you to build awesome apps that you want to be proud of with Angular 1.3.
Share:

Tuesday 14 October 2014

Wall Script 7 The Social Network Clone Script.

An insult made me to build the Wall Script a social network script built in PHP, Jquery, Oembed, OAuth and MySQL, now my life has been changed completely. Last one year I received lots of requests from Wall Script 6 users that asked to me about more social features like Groups/Page, Notifications, Photo Album and Admin Control. Today I am introducing the most improved Wall Script 7 with lots of social network features. This script is a collaboration of 9lessons.info tutorials and adopted Twitter and Facebook social features, sure Wall Script 7 helps you to understand social networking system in a simple way.



Read more »
Share:

Monday 13 October 2014

AngularJS 1.3.0 – superluminal-nudge

Today, after eight months of work, over two thousand commits, nineteen beta and six release candidates, we finally released AngularJS 1.3.0 superluminal-nudge!

This release includes many notable new features:

  • One-time bindings – by prefixing an expression with "::", it will only be interpolated once, and then no longer watched.
  • ngAria – a new module that helps make custom components in Angular more accessible by default
  • ngMessages – a new directive that simplifies writting and coordinating feedback for on form validity
  • ngModelOptions – a directive that makes it easy to customize the behavior of bound models. For instance: debouncing, getter-setter-style models, update-on-blur, and more.
  • Strict DI – an option for finding places in your application that will not minify due to use of short-hand DI syntax

Included in this release are over four hundred bug fixes, and nearly one thousand documentation improvements. We also improved the APIs around custom form controls and animations to make them more clear and easier to use.

1.3.0 has substantial performance improvements that reduce memory consumption, increase the speed of common DOM operations, and improve overall latency of Angular apps. You can take a look at the benchmarks in the AngularJS source code on GitHub for more information.

You can read the exhaustive list of changes in our changelog on GitHub.

By popular demand, AngularJS now officially has packages published to npm. You can do npm install angular to get AngularJS 1.3.0. We hope this makes it easier for developers to make use of some of the great tools built around npm for front-end web development.

If you're on Angular 1.2, please refer to the corresponding section of the migration docs to see what breaking changes you should be aware of. And as we announced back in December, AngularJS 1.3.0 no longer supports IE8. This allowed us to make improvements and performance enhancements that otherwise would not be possible. If you're developing an application that does need IE8 support, the good news is that most non-breaking fixes are included in the latest 1.2.x branch.

As always, please try out this new version of Angular and submit issues on GitHub if you find anything amiss.

Last but not least, this 1.3.0 release includes work from over 400 contributors. Thanks to everyone who took time to submit issues, send PRs, improve docs, and give us feedback. We couldn't have done it without you!

Here's the full list of contributors who helped with this release:

ABitTooCalm, Aaditya Talwai, Aaron Wang, Abdessamad Idrissi, Abraham, Adam Bradley, Adam Humphrey, Agam Rafaeli, Ahmad Moussawi, Ahmed Nuaman, Aiden N, Ajay Roopakalu, Akhlesh, Alan Rubin, Alessandro Bahgat, Alex Miller, Alex Muntada, Alex Sanford, Alexander Harding, Alexander Karpan, Alexandre Potvin Latreille, Allon Hadaya, Almar, Amar Patel, Amin Ogarrio, Ammar, Andreas Gruenbacher, Andreas Krummsdorf, Andrei Korzhevskii, Andres Kalle, Andrew Barbarello, Andrew C. Greenberg, Andrew Delikat, Andrew Farrell, Andrew Kulinich, Andrew Mortimer, Andrew Pham, Andrew Silluron, Andrew Silluron-Gonzalez, Andrew Tarry, Andrey Sidorov, Andy Ferra, Anuj More, Archer, Ari, Ariel Mashraki, Arjunkumar, Artem Chivchalov, Artem Tyurin, Artemy Tregubenko, Artiom Neganov, Arturo Guzman, Ashutosh Das, Ayrat Aminev, Baptiste Fontaine, Basem Mostafa, Bastian Buchholz, Ben Harold, Ben Lesh, Ben McCann, Ben Wiklund, Bernhard Hofmann, Bijan Boustani, Bill Neubauer, Blaise Kal, Bobdina, Bocharsky Victor, Boris Serdyuk, Brad Williams, Brady Isom, Brett Porter, Brian, Brian Andersen, Brian Atkinson, Brian Feister, Brian Ford, Brian Hall, Brian Iversen, Brian Nenninger, Brice, Bruce Davidson, Bruno Baia, Buu Nguyen, Caio Cunha, Caitlin Potter, Cameron Spear, Carl Sutherland, Carlo s A. Guillen, Casey Flynn, Casey Garland, Chad Smith, Chaker Nakhli, Chance, Chia-liang Kao, Chirayu Krishnappa, Choi YoonSung, Chris Chua, Chris Constantin, Chris Inch, Chris Kuehl, Chris Rose, Chris Wheatley, ChrisRose, Christian, Christoph Burgdorf, Christophe Krebser, Christopher Rains, Christopher Rose, Chung-Min Cheng, Ciro Nunes, Clark Pan, Colin Casey, Corey Burrows, Cory Boyd, Craig Younkins, Dan Barua, Dan Matthews, Daniel, Daniel Aden, Daniel Luxemburg, Daniel Tabuenca, Daniel Zimmermann, Danielle, Dave Gaeddert, Dave Smith, Dave Wells, David Bennett, David Burrows, David I. Lehn, David Mosher, David Nelson, David Pope, David Rogers, DeK, Deepak Kapoor, Denis Parchenko, Derek Peterson, Derrick Mar, Diego Algorta, Diego Muñoz Escalante, Diego Plentz, Dken, Domenic Denicola, Domenico Matteo, Dominic Watson, Drew Perttula, Dylan, Dylan Semler, Eddie Hedges, Eddie Monge Jr, Edward Brey, Efthymis Sarbanis, Eli Dalbey, Elnur Abdurrakhimov, Elwin Arens, Emile Silvis, Emma Guo, Erich, Erin Altenhof-Long, Evan Winslow, Evgeniy Tkachenko, Firexion, Foxandxss, Franziskus Domig, Frederik Creemers, Freek Wielstra, GSC Leticia, Gaëtan PRIOUR, George Cox, Georgii, Georgios Kalpakas, Gias Kay Lee, GiffenGood, Gonzalo Ruiz de Villa, Greg Fedirko, Grigoriy Beziuk, Gronblom Sam, Guilbert, Guilherme de Souza, Hallvard NygÃ¥rd, Hari Menon, Hendrixer, Henrik Nyh, Hopiu, Hubert SABLONNIÈRE, Igor Minar, ImaginaryDevelopment, Isaac Shapira, Ivan Alvarez, Iwona Lalik, Izhaki, J. Bruni, Mizael Galvez, J. Michael Palermo IV, JMRodriguez24, Jack Hsu, Jack Wearden, Jake Buob, Jakub Zych, James Brewer, James Ferguson, James Harrison Fisher, James Kleeh, James Kyle, James Roome, James Vanneman, James Wagoner, James Watling, James deBoer, Jamie Krug, Jan, Jan Hancic, Janas Page, Jann Horn, Jarrett Harris, Jason Bedard, Jason Carver, Jason Farnsworth, Jason Hamm, Jason Miller, Jason Schapiro, Jason Travis, Jason Winnebeck, Jay Goldman, Jayson Harshbarger, Jeff Balboni, Jeff Cross, Jeff H. Parrish, Jeff Jewiss, Jeff Sheets, Jeff Whelpley, Jennifer Song, Jens Berthold, Jeremy Likness, Jesse Browne, Jesse Houchins, Jesse Palmer, Joe Pettersson, Joel Hooks, Joey Yang, John K. Paul, John Kurlak, John Lannon, John Papa, John Reilly, Jonathan Gotti, Jonathan Sampson, Jonathan Woodard, Jorg, Joscha Feth, Jose Martinez, Joseph Orbegoso Pea, Joseph Spencer, Josh Kurz, Josh Schreuder, Joshua Flanagan, Juampy, Juan Manuel Palacios, Julie, Julie Ralph, Julien Bouquillon, Julien Sanchez, Justin Walsh, Jürgen Walter, Kamil Pekala, Karl Seamon, Karl Yang, Kasparas Galdikas, Kebabpizza, Ken Sheedlo, Kenneth Lynne, Kent C. Dodds, Kevin Aenmey, Kevin Brogan, Kevin Western, Kindy Lin, Klaus Weiss, Kristian Hellang, Kristof Mattei, Kurt Funai, Lajos Veres, Laurent Curau, Lefteris Paraskevas, Leniel Macaferi, Leonardo Zizzamia, Levi Weiss, Louis Haußknecht, Lucas Galfaso, Lucas Galfasó, Lucas N. Munhoz, Luis Ramón López, Lukas Ruebbelke, Luke Eller, Luke Schoen, M Alix, Maarten Stolte, Maksim, Manan, Marc Lipovsky, Marcy Sutton, Mark Jones, Mark Miyashita, Martin Field, Martin Jezek, Martin Probst, Martin Staffa, Marty Kane, Mateusz Jedruch, Mathew Foscarini, Mathieu Tricoire, Mathis Hofer, Matias Niemelä, Matt Ginzton, Matt Johansen, Matt Kim, Matthew Davies, Matthew Miller, Mattias Holmlund, Mauro, Mauro Carrero, Max, Max Tobias Weber, Maxi Ferreira, Mehul Patel, Melissa Ip, Michael Barton, Michael Benford, Michael Gallagher, Michael Payne, Michael Silver, Michal Kawalec, MichaÅ‚ GoÅ‚ębiowski, Michel Salib, Michele Beltrame, Mike Haas, MikeMac, MikeMcElroy, Misha Moroshko, Mitch Robb, MiÅ¡ko Hevery, Mohamed Daif, Namolovan Nicolae, Naomi Black, Narretz, NateRedding, Nathan Wiebe, Neil Giarratana, Neil Johnston, Neil Rubens, Nick Carter, Nick Heiner, Nick Van Dyck, Nicolai Skogheim, Nicolas Leger, Nicolás Andrés Gallinal, Nikita Tovstoles, Nikita Vasilyev, Nima Mehanian, Noam Lewis, Oivvio Polite, Ole Michaelis, Ole Weitz, Oliver Schmidt, Olivier Louvignes, Omede Firouz, Paolo Moretti, Pascal Precht, Patrice Chalin, Patrick Hallisey, PatrickJS, Paul Dijou, Paul Harris, Paul Jolly, Pavel Pomerantsev, Pawel Kozlowski, Pete Bacon Darwin, Peter Bacon Darwin, Peter Coles, Peter Deak, Peter Kosa, Phil Westwell, Phillip Alexander, Pop, Praveen, ROUL, RafaÅ‚ Jagoda, Rahul Doshi, Ralph Giles, Renat Yakubov, René Wilhelm, Reuben Doetsch, Rhys Brett-bowen, Rich Snapp, Richard, Richard Collins, Richard Harrington, Richard Littauer, Rob Wormald, Robert Kielty, Robert Speicher, Robin Böhm, Robin Böhm, Rocky Assad, Rosseyn, Rouven Weßling, Roy Ling, RoyLING, Ryan Hall, Sadaoui Abderrahim, Sagie Maoz, Sam Dornan, Samuel Rats, Sandeep Panda, Sean Griffin, Sebastian K, Sebastian Müller, Sekib Omazic, Sequoia McDowell, Sercan Eraslan, Sergei Z, Sergio Sanguanini, Seth Stone, Shahar Talmi, Shai Reznik, Shane Keller, Shane M. Pelletier, Sharon DiOrio, Shawn Flahave, Siddique Hameed, Simon Taranto, SirTophamHatt, Smith, Smitha Milli, Sorin Gitlan, Stanislav Sysoev, Stephanie Nacios Staub, Stephen Bunch, Stephen Nancekivell, Steve Purcell, Steven Benjamin, Steven Petryk, Stéphane Reynaud, Subra, Søren Louv-Jansen, TLChan, Takashi Nakagawa, Tatham Oddie, Taylor Hutchison, Teddy Wing, Tero Parviainen, The Big Red Geek, TheMrSteve, Thiago Colares, Thom Allen, Thomas Belin, Thomas Guillory, Thomas Junghans, Thomas Tuts, Thomas Wicker, Tiago Ribeiro, Tim Kendrick, Tim Kindberg, Tim Ruffles, Tim Whitbeck, Tim van den Eijnden, Timothée Jeannin, Tobias Bosch, Tobias Leugger - Vibes, Tom Kadwill, Tom Yam, Tomer Chachamu, Tony Bergeron, Tony Cronin, Traxmaxx, Trevor Ewen, Trey Hunner, Tyler Eich, Tyler Kellogg, Tyler McGinnis, Uri Goldshtein, Valentin Waeselynck, Vic Metcalfe, Victor Berchet, Victor Queiroz, Vikram Soni, Vincent Driessen, Vitali Tsevan, Vlad GURDIGA, Vojta Jina, Warlock, Wes Alvaro, Wesley Cho, William Bagayoko, William Chen, Wladimir Coka, Wojciech Fornal, Wojciech Krzystek, XrXr, Yaron Uliel, Yiling Lu, Yuri Sulyma, Yutaka Yamaguchi, Yves Brissaud, Yves Richard, Zach Pomerantz, Zachary Babtkis, Zacky Ma, Zahid Mahir, Zak Johnson, Zhong Liang Ong, Ziang Song, Zorigt Bazarragchaa, active-low, adam77, adeelcap15, ahliddin, akerekes, alexgarrett, alirezamirian, amagee, andre, aschokking, ashley williams, asif22, b9chris, barcahead, benjamingr, bolasblack, bradwheel, bullgare, cexbrayat, cgwyllie, chadfennell, chimney-sweeper, chirag, chrisrhoden, cnlevy, corrupt, cranesandcaff, cwclark, danrbergman, dbwhddn10, deepak-kapoor, dennishall1, desertapple, doodeec, dumpweed, ephigabay, erikrahm, expilo, eydreeyawn, frandroid, fuqcool, fvanderwielen, gabrielbrasil, garetht, gdennie, gdi2290, gipsy86147, gogotanaka, grsmvg, hambyiii, hanstest, jbnizet, jeffavis, jenkins, jerryfan, jesse, jfortunato, jim lyndon, jimmywarting, jody tate, jpsimons, justmiaotou, k-funk, kalvn, kimwz, krusty, letsmakesense, linclark, ltrillaud, m-tretyak, magoswiat, marcin-wosinek, marcwright, markau, martco, matthewhintzen, mbrookes, mgerstenblatt, miknsh5, mishoo78, mjfroehlich, mkolodny, mrmrs, ncuillery, nderoche, nnennajohn, nosideeffects, oojerryoo, oweitz, paranoidandroid522, perek, plmetz, poshest, pyriand3r, raghudodda, rodyhaddad, royling, rsnapp, sanfords, sap9433, scottywakefield, sgrebnov, sixin210, skwakman, smarigowda, snicolai, spacemigas, specialorange, standup75, stucash, sunderls, sunnylost, tamakisquare, thammin, thenickcox, thorn0, tommyangelo, tpiere, ttam3d0, unclejustin, unicodesnowman, vaibhav kohli, vdyckn, venticello, victorbjelkholm, wbyoko, winkler1, winsontam, wjtk, xdhmoore, xi, zahragh, zainengineer, and 刘朋飞

Share:

Wednesday 8 October 2014

Groups or Pages Database Design.

Last few days I have been working with an important release from 9lessons.info, I am introducing many exciting features hope everybody will love. This post is about how to implement Group of Fan Page system using MySQL and PHP. Here I have discussed how to design a database and implementation of SQL queries, hope this post will help you to understand the Group/Page system.

Friend Request System Database Design.

Read more »
Share:

New Way to Download Free Apps - MoboMarket 3.0 Now Released

Today, android based smartphones are much more preferred over the Windows or iOS based phones. And one of the major aspects for this preference is the large number of amazing applications available in the Google Play Store which is the default marketplace for all the devices. However, today a very few people know that there are many other marketplaces other than the Play Store that offer you all the more amazing applications and games.


New Way to Download Free Apps - MoboMarket  3.0 Now Released
Read more »
Share:

Sunday 14 September 2014

ASP.NET vNext

With ASP.NET vNext Microsoft has remodeled the entire pattern, with lots of added features and improvements in programming model. I have tried to compile the information from few useful source in this post which contains the complete list of ASP.NET vNext features.

The best part of this is it’s a open source, in this post I have just collected few interesting features of ASP.NET vNext and the video of 2 great Scott’s (Scott Hanselman and Scott Hunter) originally presented in Microsoft TechEd North America 2014.

Download :- MP3 (Audio only), Mid Quality MP4 (Windows Phone, HTML5, iPhone), High Quality MP4 (iPad, PC, Xbox), MP4 (iPhone, Android)

Here are some of the new features in ASP.NET vNext.

  • Cloud-ready out of the box
  • A single programming model for Web sites and services
  • Low-latency developer experience
  • Make high-performance and high-productivity APIs and patterns available – enable them both to be used and compose together within a single app
  • Fine-grained control available via command-line tools and standard file formats
  • Delivered via NuGet
  • Release as open source via the .NET Foundation
  • Can run on Mono, on Mac and Linux

Ref : http://blogs.msdn.com/b/dotnet/archive/2014/05/12/the-next-generation-of-net-asp-net-vnext.aspx

Rebuilt from the Ground Up
  • MVC, Web API, and Web Pages are merged into one framework, called MVC 6. The new framework uses a common set of abstractions for routing, action selection, filters, model binding, and so on.
  • Dependency injection is built into the framework. Use your preferred IoC container to register dependencies.
  • vNext is host agnostic. You can host your app in IIS, or self-host in a custom process. (Web API 2 and SignalR 2 already support self-hosting; vNext brings this same capability to MVC.)
  • vNext is open source and cross platform.
Leaner, Faster
  • MVC 6 has no dependency on System.Web.dll. The result is a leaner framework, with faster startup time and lower memory consumption.
  • vNext apps can use a cloud-optimized runtime and subset of the .NET Framework. This subset of the framework is about 11 megabytes in size compared to 200 megabytes for the full framework, and is composed of a collection of NuGet packages.
  • Because the cloud-optimized framework is a collection of NuGet packages, your app can include only the packages you actually need. No unnecessary memory, disk space, loading time, etc.
  • Microsoft can deliver updates to the framework on a faster cadence, because each part can be updated independently.
True Side-by-Side Deployment

The reduced footprint of the cloud-optimized runtime makes it practical to deploy the framework with your app.

  • You can run apps side-by-side with different versions of the framework on the same server.
  • Your apps are insulated from framework changes on the server.
  • You can make framework updates for each app on its own schedule.
  • No errors when you deploy to production resulting from a mismatch between the framework patch level on the development machine and the production server.
New Development Experience

vNext uses the Roslyn compiler to compile code dynamically.

  • You can edit a code file, refresh the browser, and see the changes without rebuilding the project.
  • Besides streamlining the development process, dynamic code compilation enables development scenarios that were not possible before, such as editing code on the server using Visual Studio Online ("Monaco").
  • You can choose your own editors and tools.

You can find this video and many other interesting videos of TechEd North America 2014 @ http://tena2014.eventpoint.com/topic/list

Link to Scott Hanselman blog: http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx

Complete list of feature in Text:

http://www.asp.net/vnext/overview/aspnet-vnext/getting-started-with-aspnet-vnext-and-visual-studio

http://www.asp.net/vnext

I hope this compiled information might help you to kick start your journey of ASP.NET vNext, please share your views in the comments below.

Share:

Thursday 11 September 2014

4.93 million Google accounts HACKED !!! – Username List

Couple of days back I heard that few millions Google users account id and passwords are leaked online, initially I though its just a rumor, but later after reading in leading news papers I got to know the seriousness of the issue

Russian hackers have leaked the email IDs and passwords of as many as 4.93 million Google accounts. The same Google account password is used across all Google products, such as Gmail, Drive, Plus, YouTube, Maps etc.

The account details have been posted on bitcoin forum btcsec.com by a user named Tvskit. On the forum, Tvskit has said that approximately 60% of the passwords are still active.

Source : http://timesofindia.indiatimes.com/tech/tech-news/4-93-million-Gmail-passwords-leaked-by-hackers/articleshow/42241159.cms

http://www.nydailynews.com/news/world/5-million-gmail-usernames-passwords-posted-online-article-1.1935155

After digging down into the thread I managed to download the complete list of users whose account passwords are hacked, remember this is just the list of users not their passwords. Though this list does not contain my user name but I found couple of emails I am familiar with, so though to share the complete list with the readers of my blog and friends.

You can also query your email on the link here, to see if your Google account is present in the hackers database.

https://isleaked.com/en

image

I have uploaded the file here, if you find your username in this list then I suggest you to take necessary action to protect your account, as you might be aware that the same account is used across all your Google services like Gmail, Google Drive, You Tube, Android, etc.

Link to download the file containing all the Usernames: http://1drv.ms/1qOspGg

Share:

Facebook Style Notification Popup using CSS and Jquery.

Are you looking for Facebook UI features, this post will explain you how to create a Facebook style notifications popup using Jquery, HTML and CSS, you will understand how CSS elements will helps to improve better web design. This is the most needed feature for social networking web projects to minimize and enrich the UX elements. Just few lines of code implement these concepts in your next project, take a quick look at this live demo.

Facebook Style Notification Popup using CSS and Jquery.

Read more »
Share:

Tuesday 9 September 2014

Finline Touch – Version 4.0.0.1

Version 4.0.0.1 of Finline Touch is live in Windows Phone store, with major enhancements.
You can now Sync your Saved Quotation across multiple mobile devices using Microsoft OneDrive, in addition to the following features from the previous version.

  1. Loan Calculator, for mortgage, car or personal loans
  2. Special Loan calculator, supporting 0% EMI and down payment
  3. Fixed deposit calculator, supports simple interest and interest compounded annually, monthly, quarterly and semiannually.
  4. Saved loans, quotes allows you to view the loans or quotes saved by you. This can be used to generate a quick reference to the loan you already have with amortization details.
  5. Loan Calculators provided in this application supports zero down payment, zero interest rate, calculation of processing fees, etc
  6. Loan quotation generated can be saved for feature reference. This is also useful if you have existing loans. You can save you existing loans with loan reference number and short description which can be used for quick reference without searching and looking into you loan documents provided by you banks.
  7. Save the quotations on OneDrive to sync across multiple mobile devices

You can download the App from Windows Phone Store @ http://www.windowsphone.com/en-in/store/app/finline-touch/e004e119-7f4b-46f1-bda5-aa1b1b94e6ef

Or you can Scan the QR Code from your mobile to download the app

FinlineTouch

SplashScreenImage.screen-WXGAMenuPageSavedLoan

Sync to OneDrive, helps to share the saved quotations across multiple mobile devices*

Backup, Restore, Sync to One drive is in BETA mode, please share your feedback so that I can improve this feature.

Share:

Tuesday 12 August 2014

Building Native iPhone Applications using HTML, CSS and JavaScript

Mobile revolution has been started, now right time to build mobile applications for your web projects. This tutorial will help you how to develop native iOS mobile applications using HTML, CSS and Jquery. Apache Cordova is a platform for building native applications and it is providing device APIs that helps you to access native device functions such as GEO location or mobile camera. If you are a Apple Mavericks use just implement the following steps.

Building Native Mobile Applications using HTML, CSS and JavaScript

Read more »
Share:

Friday 8 August 2014

Manage Your Smartphone Easily with MoboRobo Now

Having a Smartphone is not a big deal nowadays. It has become so mainly due to availability of Smartphones that are suitable for different budgets. Although there are a number of exceptions, major issue of low-budget Smartphones is their lower screen size. Albeit the fact that you might not face issues while performing common tasks like listening to music and messaging on WhatsApp, the notable issues will be when you want to manage information in your device such as editing contacts, downloading applications massively, managing media files including videos and music etc.
Read more »
Share:

Wednesday 30 July 2014

Ajax Upload and Resize an Image with PHP.

Today I am presenting the most important social networking feature called ajax upload and resize an image without refreshing the page using jquery and PHP. This tutorial a continuation of my previous post, I just included image re-sizing function for different dimensions. It is very useful for your web project that saves lots of hosting space and bandwidth limit. Take a quick look at the live demo.

 Ajax Upload and Resize an Image with PHP.

Read more »
Share:

Tuesday 15 July 2014

Google Blogger 404 Page Redirection

If you are using Google blogger you must setup 404 page redirections, if not this will affect your organic search results. I am using blogger since 2009 for 9lessons.info and I am not paying any hosting charges till today, I suggest everyone should start a blog with blogger. This post will explain you how to setup a blogger 404 redirection page in a simple way, now you can try here with wrong URLs.

Google Blogger 404 Page Redirection

Read more »
Share:

Tuesday 8 July 2014

Ajax PHP Login Page with Shake Animation Effect.

I received few tutorial requests from my readers that asked to me how to create Ajax PHP login script, in this post I want to discuss how to create a simple Ajax PHP login with welcome page using MySQL database. This will explain you creating user tables, posting form values and storing and destroying the session values. If you are a PHP beginner take a quick look at this live demo with Username: 9lessons Password: 9lessons. This post has been updated with mysqli.

Ajax PHP Login Page

Read more »
Share:

Monday 30 June 2014

Timeline Design using CSS and Jquery

Timeline design is the current web trend that visualizes the data in an interesting way. Today I want to discuss about how to design a timeline in a simple way with JSON data feed , that using CSS pseudo elements such as :before and :after. Pseudo elements are used to apply special effects to selectors. This post is a combination of my previous post, please take a quick look at this demo and try demo script with your WAMP server.

Timeline Design CSS and Jquery

Read more »
Share:

Tuesday 17 June 2014

CSS3 Animation Effects with Keyframes

Using CSS3 keyframe property, you can create cool animation effects without using any JavaScript frameworks, CSS3 & HTML5 is helping to solve many web problems in a simple way. In this article I want to discuss how to implement CSS3 animations in a better way, use these and enrich your web projects. Take a quick look at these demos and try all these with modern browsers like Chrome, Firefox and Safari, sure you will love these effects.

CSS3 Animation Effects with Keyframes

Read more »
Share: