How To Downgrade The iOS 7 Beta Back To iOS 6 The Easy Way – ReadWrite


http://readwrite.com/2013/06/13/how-to-downgrade-from-ios-7-beta-back-to-ios-6#disqus_anchor&awesm=~ocS2CVXpn8lQfM

How To Downgrade The iOS 7 Beta Back To iOS 6 The Easy Way

How To Downgrade The iOS 7 Beta Back To iOS 6 The Easy Way

Upgrading to iOS 7 is a pretty painless process. All that’s required is an Apple Developer account and the time it takes to download the install file. Going back, however, isn’t quite so easy.

Unlike instances in the past where upgrading to Apple’s new beta OS was a one-way road – which will likely be the case again once iOS 7 is released to the world at large – you can in fact still revert back to iOS 6 if you’ve upgraded to the iOS 7 beta.

If you’re like me, you may have thrown caution to the winds by loading iOS 7 on your iPhone without much more than a vague hope that you could restore it to its prior (and fully functioning) glory. Fortunately, it’s a lot easier than various online guides are making it out to be.

Step 1: Download The Proper iOS 6 File

In order to install iOS 6, you must pick the proper version or iTunes will spit an error back at you. For the iPhone 5, you must download iOS 6.1.4. For everything else, it is iOS 6.1.3. If you use the wrong file for your device, iTunes will not allow you to restore it.

To review:

Step 2: Plug The Device Into Your Computer, Cancel The iTunes Automatic Sync Process (If It Starts)

When plugging in your smartphone back into your computer, the iPhone may begin syncing its data with iTunes. This could happen even if you had previously had it set to manual sync. This could be problematic if iTunes tries to make a new backup of your device with iOS 7.

You should cancel the sync just to be safe. While I did not let it happen with my device, having an iOS 7 backup could supersede your old backups and keep you from restoring your phone as it was in iOS 6 with all your content – apps, settings, music, photos – intact. Despite that, you should still be able to, at the very least, setup the device as a new iPhone.

Step 3: Do Not Put Your Device Into DFU Mode, Just Hit Restore

The popular notion when downgrading from iOS 7 to iOS 6 is to put you iPhone into DFU (Download Firmware Update) mode, which is Apple’s version of recovery mode for iDevices. It turns out that this is completely unnecessary and your iPhone can be downgraded without that extra effort.

To put your iPhone in DFU mode:

  • Hold down the home and power button for 10 seconds.
  • Release the power button while continuing to hold the home button for eight seconds.

(Read more: Apple’s New iOS 7: What You Need To Know Now)

This process sets up your phone automatically for a restore. It is not technically required to downgrade to iOS 6. At the same time, using DFU mode will not have any negative effect on restoring to iOS 6. You can use it if it makes you comfortable.

Once your iPhone is recognized by iTunes, simply hold the Alt/Option button on a Mac or the shift key on a Windows machine and click “Restore iPhone…” The option to choose the iOS6 .ipsw file will pop up, the same way it does when upgrading to iOS 7.

Find the proper file, click it and wait. If you don’t hit any annoying road blocks, your device should be back on the iOS 6 train. At this point, choose to restore it from a backup and pick your most recent iOS 6 backup. Hopefully, you made that backup the same day you took the iOS 7 plunge.

A Special Case: iTunes Error 3194

If you run into an error immediately following the process of the restore where iTunes says it’s verifying your iPhone’s eligibility, you might have simply downloaded the wrong iOS 6 file, noted above.

But if you’re absolutely sure you have the right file, then you may just be running into a common iTunes error. Cult of Mac detailed how to fix it.

Here’s the step-by-step breakdown:

  • Navigate to the Finder, and select Go in the menu bar
  • Click ‘Go to Folder…’
  • Type ‘/etc’ and find the ‘hosts’ file
  • Copy the ‘hosts’ file and paste it your desktop, then open it in Text Edit
  • At the very bottom of the file, find a line that reads, “74.208.105.171 gs.apple.com” and delete it
  • Drop that file back into the ‘/etc’ folder, choose replace (your Mac may ask you to authenticate the decision).
  • Go back to iTunes restore using the methods described above

Let us know in the comments if you successfully downgraded from Apple’s newest beta. And don’t hesitate to let us know if you used a different method from the one described here to downgrade from iOS 7 to iOS 6.

By Reda Bouaichi Posted in Tech, tips Tagged

There’s More To Google’s Artificial Brain Than Finding Cats On The Internet | Fast Company


There’s More To Google’s Artificial Brain Than Finding Cats On The Internet

ebrain

Google’s got a brain. An actual electronic brain.

The New York Times has news that inside Google’s high-tech R&D “X” laboratory the search giant has been creating a simulation of the human brain. And rather than teaching it programs, Google’s staff have been exposing it to information from the Net so that it learns organically, a little like the way we humans do. It’s built by hooking together 16,000 processor cores with over one billion interconnections, in a notional model of the around 86 billion neurons in a typical adult human brain.

Some AI systems are all about code run in very fast computers, simulating the various layers of thought and decision that make up a mind with statistics or logic. But Google’s approach is a bit closer to a natural model where the inspiration isn’t some abstract algorithm for simulating a brain, but instead relies on building a replica of a brain and exposing it to raw information. Google has lots of information at its disposal.

In Google’s case they did no complex training, but simply exposed the brain to around 10 million random digital pictures extracted as thumbnails from YouTube videos and let it do its own thing, adjusting signals from some neurons up and down and strengthening and weakening some of the connections between them. It’s a concept well known to science fiction, and Douglas Adams even used it in The Hitchhiker’s Guide To The Galaxy, to describe the Deep Thought super computer “which was so amazingly intelligent that even before the data banks had been connected up it had started from I think therefore I am and got as far as the existence of rice pudding and income tax before anyone managed to turn it off.”

Google’s brain, more or less undirected through a process of repetition, developed a “concept” of human faces and the different parts of a human body from these images, and also a concept of cats. “Concept” here means a fuzzy ill-understood pattern that it could use to categorize a new image it had not seen before, based on its previous learning. The cats concept was a surprise to the researchers, but given the fact that YouTube is a skewed data set, and that we humans do love Lolcats and their like, perhaps it was inevitable.

So what Google’s done is develop a very simplified digital simulation of a human visual cortex. Given that such power is usually imagined as belonging to some military research facility, why’s Google trying it?

The answer is manyfold. In some sense, it’s a natural progression from much of the semantic web research Google’s been doing–investigating how to best process and interpret really human, natural language inputs so that it can deliver even more relevant web search results. Google’s Knowledge Graph is the most recent example of how powerful semantic search can be. The idea is that if you can better understand what someone actually means when they type data into Google, then you’ve got a better chance of actually delivering a matched set of answers in the search results.

A more complete artificial intelligence is simply the successor to these systems, because it would be able to make a guess at the meaning of a search term like “how many roads must a man walk down?” far beyond merely matching the words to the famous song, perhaps guessing that the milage of metaled roads in the U.S. may be useful data, or even engaging in a little discussion about the meaning of life or even the stupidity of Homer Simpson. Though this is a frivolous example, think about how you sometimes have to trawl through hundreds of Google search answers to find the one you want because searching for it isn’t straightforward. An AI search may well be swifter and more helpful.

But an AI trained like this would also make for an improved image recognition system, and also a much more astute voice recognition system. That could turbocharge the usefulness of search using text or imagery on your Android phone. And given what we know of Project Glass, Google’s effort to get us all wearing augmented reality goggles, a future Glass system hooked up to an AI that recognizes what the wearer sees and what they’re saying would seem an almost inevitable goal. Smarter AI could also help with Google’s self-driving cars project, perhaps resulting in safer drives or more efficient journeys.

Ultimately you have to wonder if Google’s system could plug into its Siri-like service, rumored to be codenamed Majel, to create a genuinely smart digital personal assistant. Fun though that is, we can also guess that Google would most likely use an AI for its own ends, to best work out what kinds of targeted ads to sell to its users.

[Image: Flickr user Saad Faruque, Google via New York Times]

Chat about this news with Kit Eaton on Twitter and Fast Company too.

Regards,

Reda Bouaichi
J2EE Web Developer
reda.bouaichi
773-574-0538


Originally posted on Gigaom:

Very few companies know how to scale and deploy cloud applications like Netflix(s nflx), the ginormous movie streaming site. And now it’s making some of that cloud management expertise available to the masses via Github.

On Monday, the company open sourced Asgard,  a Grails and JQuery web interface that Netflix engineers use to deploy code changes and manage resources in the Amazon(s amzn) cloud in a massive way. The technology was named after the home of the Norse gods Norse god of thunder and lightning but was once known as the Netflix Application Console or NAC. And it offers some capabilities that the AWS Console does not.

Asgard, for example, helps engineers track the multiple Amazon Web Service components — AMIs, EC2 instances etc. — used by their application and manage them more efficiently.

As Joe Sondow, the Netflix senior software engineer who leads the project, wrote in the blog:

View original 207 more words

More Cloud Wars: Another 50gb giveaway by Box.net


Originally posted on A little bit of this, a little bit of that:

Box.net is giving away another 50gb free to its existing and new users. This coincides with their launch of the Box for Android app, which introduces bulk upload, commenting and collaboration features. To get this free upgrade, users have to access their Box.net account from an Android device.

 

box.net

box.net (Photo credit: thejedi)

 

A note – iOS users who availed of the free 50gb offer last year cannot use this offer to get a 100gb account.

 

 

 

 

 

 

Read more at Android Users Get 50GB FREE. Get Your #Box50GB and Enter the Box Mobile Giveaway | The Box Blog and Bonjour! Box for Android Adds New Collaboration Features and a 50GB Upgrade to Boost Productivity | The Box Blog.

 

 

View original

Square Register iPad POS system makes old cash registers look like ‘POS’


Originally posted on 9to5Mac:

Square just announced a new Point of Sale (POS) product called Square Register.  The maker of those little dongles that allow you to make or take payments anywhere on iOS or Android devices now offers a full register solution integrated with iPad.  The UI is beautiful and Square takes only a 2.75% charge on credit card transactions.

The announcement, so close to the iPad 3 launch event this week, makes me wonder if Square got cut from the docket at the last second. Or, perhaps Square is hoping to get its product into the market with enough time to get a mention.

Either way, the product looks impressive, screenshots below:

via Techcrunch

View original 2 more words

How to Be Happy At Work. Short tutorial.


Then God said to Adam, “You listened to your wife and ate fruit from the tree. Cursed is the ground because of you. Through hard work you will get your food, every day of your life.”

This Adam curse continues and now – we have to work hard every day to earn our food. It is inevitable fact – most of us spend at work more than half of conscious adult life. How well do you spend this half of our life? Are you unhappy, stressed or bored on your job?

Why people are unhappy at work?

  1. Conflicts with other people and especially your boss. We all humans and, surprisingly not only you, but everybody has own agenda, interests and needs. Conflicts often happen, because we forget about this. Care about people around you and you’ll enjoy their company much more.
  2. Burnout - too much pressure, too much stress, too little time to think about yourself. Stress comes from inside – we are creators of own stress. There are hundreds ways to relieve – better organization, delegation of responsibility, better communication with co-workers. External factors are most important: enjoyment from family, home, physical activity and leisure, fulfilling personal life and achievements. At the end, we work to live, not living to work.
  3. Lack of variety and challenge. And first step to have interesting and enjoyable job is to design your job.

Designing your job

Don’t allow to treat yourself as a pluggable work unit. You should have

  1. Control over your task assignments and execution.
  2. Environment and time to focus on your tasks.
  3. Clear goals and immediate feedback.

Enjoyment from work comes at very specific point: when our tasks and challenges match our capabilities (Mihaly Csikszentmihal, Flow). Work should be not overwhelmingly complex and not too simple. With these conditions you will enjoy your work and grow quickly.

If you cannot change your job, change your job. Find another. (Strategy advise from Martin Fowler).

Me, Inc. or Hire yourself.

Don’t allow other people to decide what you do, your career and your future – not your manager, company or even trends in your profession. Take charge yourself and consider yourself as a mini enterprise.

Follow 5 step process (Pollan and Levine, Fire Your Boss).

  1. Write your own job description– One sentence with focus on active verbs.
    • Example: “I build enterprise software”.
  2. Give yourself a performance review. Look beyond your company or industry – become expert in job market. What skills and achievements are valued? What experience is required? How much people earn?
    • Example: “Companies become interested in Ruby-on-Rails, Flex, Silverlight. Agile development enters mainstream.”
  3. Define alternative paths- from 2 previous steps you’ll discover alternative courses open to you today and in a future. Brainstorm all possible fields and occupations that would fit this general description. Add imagination.
    • Example: “I can receive certification, move to another company, freelance, become consulting coach or teach programming.”
  4. Find gaps– what are you missing to move to alternative path or improve your current job position.
    • Example: “I should improve communication skills. I should learn new software platforms and try Agile.”
  5. Put your work plan in action – abandon narrow path predetermined by your boss, company or profession. Focus on achievements and skills you need to advance on your current and future job in the same time. Use a good time/goals management system as GTD. Come up with Next Actions.

Most jobs are not created to make us happy. They are created to make money for someone else. If we allow them – they will suck our lives. Instead, we should take charge, design our jobs and hire ourselves.

Sigmund Freud gave simple receipt for happiness: “Work and Love”. And I hope you can break “curse of Adam” and love your work.

Original: How to Be Happy At Work. Short tutorial

5 Steps to Understanding Drag and Drop with Ext JS. Translations of articles for developers: web-development


5 Steps to Understanding Drag and Drop with Ext JS. Translations of articles for developers: web-development.

One of the most powerful interaction design patterns available to developers is “Drag and Drop.” We utilize Drag and Drop without really giving it much thought – especially when its done right. Here are 5 easy steps to ensure an elegant implementation.

Defining drag and drop
A drag operation, essentially, is a click gesture on some UI element while the mouse button is held down and the mouse is moved. A drop operation occurs when the mouse button is released after a drag operation.
From a high level, drag and drop decisions can be summed up by the following flow chart.
5 Steps to Understanding Drag and Drop with Ext JS
To speed up our development, Ext JS provides us with the Ext.dd classes to manage the basic decisions for us. In this post, we will cover coding for the appearance and removal of the drop invitation, invalid drop repair and what happens when a successful drop occurs.

Organzing the drag and drop classes
A first glance of the classes in the Ext.dd documentation might seem a bit intimidating.  But, if we take a quick moment to look at the classes, we see that they all stem from the DragDrop class and most can be categorized into Drag or Drop groups.  With a bit more time and digging, we can see that the classes can be further categorized into single node and multiple node drag or drop interactions.
5 Steps to Understanding Drag and Drop with Ext JS
In order to learn about the basics of drag and drop we’ll focus on applying single drag and drop interactions to DOM nodes.  To do this, we’ll utilize the DD and DDTarget classes, which provide the base implementations for their respective drag and drop behaviors.
However, we need to discuss what our objectives are before we can start implementing drag and drop.

The task at hand
Lets say we’ve been asked to develop an application that will provide a rental car company the ability to place their cars and trucks in one of three states:  available, rented or in repair status.  The cars and trucks are only allowed to be placed in their respective “available” container.
5 Steps to Understanding Drag and Drop with Ext JS

To get started, we must make the cars and trucks “dragable”. For this, we’ll use DD. We’ll need to make the rented, repair and vehicle containers “drop targets”.  For this we’ll use DDTarget.  Lastly, we’ll use different drag drop groups to help enforce the requirement that cars and trucks can only be dropped into their respective “available” containers.
The HTML and CSS for this example is already constructed and can be downloaded here.  With that downloaded, we can begin coding by adding drag operations to the cars and trucks.

Step 1: Starting with drag
To configure the vehicle DIVs elements as dragable, we’ll need to obtain a list and loop through it to instantiate new instances of DD.  Here’s how we do it.
Hide code highlighting

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Create an object that we'll use to implement and override drag behaviors a little later
varoverrides = {}; 
// Configure the cars to be draggable
var carElements = Ext.get('cars').select('div'); 
Ext.each(carElements.elements, function(el){
 vardd = newExt.dd.DD(el, 'carsDDGroup', {
 isTarget : false}); 
 //Apply the overrides object to the newly created instance of DD
 Ext.apply(dd, overrides); 
});   
var truckElements = Ext.get('trucks').select('div'); 
Ext.each(truckElements.elements, function(el){
 var dd = new Ext.dd.DD(el, 'trucksDDGroup', {
 isTarget : false
}); 
Ext.apply(dd, overrides); });

All drag and drop classes are designed to be implemented by means of overriding its methods. That’s why in the above code segment, we have create an empty object called overrides, which will be filled in later with overrides specific to the action we need.
We get of list of car and truck elements by leveraging the DomQuery select method to query the cars container for all the child div elements.
To make the cars and truck elements dragable, we create a new instance of DD, passing in the car or truck element to be dragged and the drag drop group that it is to participate in. Notice that the vehicle types have their own respective drag drop group. This will be important to remember later when we setup the rented and repair containers as drop targets.
Also notice that we’re applying the overrides object to the newly created instances of DD using Ext.apply., which is a handy way to add properties or methods to an existing object.
Before we can continue with our implementation, we need to take a quick moment to analyze what happens when you drag an element on screen. With this understanding, the rest of the implementation will fall into place.

Peeking at how drag nodes are affected
The first thing you’ll notice when dragging the car or truck elements around is that they will stick wherever they are dropped. This is OK for now because we’ve just begun our implementation. What is important is to understand how the drag nodes are being affected. This will aid us in coding for the return to their original positions when they are dropped on anything that is a valid drop target, which is known as an “invalid drop”.
The below illustration uses FireBug’s HTML inspection panel and highlights the changes being made by when a drag operation is applied to the Camaro element.
5 Steps to Understanding Drag and Drop with Ext JS
Demo

While inspecting the drag element during a drag operation, we can see a style attribute added to the element with three CSS values populated: position, top and left. Further inspection reveals that the position attribute set to relative and top and left attributes updating while the node is being dragged around.
After a the drag gesture completes, the style attribute remains along with the styles contained therein. This is what we have to clean up when we code for the repair of an invalid drop. Until we setup proper drop targets, all drop operations are considered invalid.

Step 2: Repairing an invalid drop
The path of least resistance is to repair an invalid drop by reseting the style attribute that is applied during the drag operation. This means that the drag element would disappear from under the mouse and reappear where it originated and would be quite boring. To make it smoother, we’ll use Ext.Fx to animate this action.
Remember that the drag and drop classes were designed to have methods overridden. To implement repair, we’ll need to override the b4StartDrag, onInvalidDrop and endDrag methods.
Lets add the following methods to our overrides object above and we’ll discuss what they are and do.
Hide code highlighting

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Called the instance the element is dragged.b4StartDrag : function(){// Cache the drag elementif(!this.el){this.el = Ext.get(this.getEl()); }   //Cache the original XY Coordinates of the element, we'll use this later.this.originalXY = this.el.getXY(); }, // Called when element is dropped not anything other than a dropzone with the same ddgrouponInvalidDrop : function(){// Set a flag to invoke the animated repairthis.invalidDrop = true; }, // Called when the drag operation completesendDrag : function(){// Invoke the animation if the invalidDrop flag is set to trueif(this.invalidDrop === true){// Remove the drop invitationthis.el.removeClass('dropOK');   // Create the animation configuration objectvaranimCfgObj = {easing : 'elasticOut', duration : 1, scope : this, callback : function(){// Remove the position attributethis.el.dom.style.position = ''; }};   // Apply the repair animationthis.el.moveTo(this.originalXY[0], this.originalXY[1], animCfgObj); deletethis.invalidDrop; }   },

In the above code, we begin by overriding the b4StartDrag method, which is called the instant the drag element starts being dragged around screen and makes it an ideal place to cache the drag element and original XY coordinates – which we will use later on in this process.
Next, we override onInvalidDrop, which is called when a drag node is dropped on anything other than a drop target that is participating in the same drag drop group. This override simply sets a local invalidDrop property to true, which will be used in the next method.
The last method we override is endDrag, which is called when the drag element is no longer being dragged around screen and the drag element is no longer being controlled by the mouse movements. This override will move the drag element back to its original X and Y position using animation. We configured the animation to use the elasticOut easing to provide a cool and fun bouncy effect at end of the animation.
5 Steps to Understanding Drag and Drop with Ext JS
Demo

OK, now we have the repair operation complete. In order for it to work on the drop invitation and valid drop operations, we need to setup the drop targets.

Step 3: Configuring the drop targets
Our requirements dictate that we will allow cars and trucks to be in be dropped in the rented and repair containers as well as their respective original containers. To do this, we’ll need to instantiate instances of the DDTarget class.
Here’s how its done.
Hide code highlighting

1
2
3
4
5
6
7
8
9
10
11
//Instantiate instances of Ext.dd.DDTarget for the cars and trucks containervarcarsDDTarget = newExt.dd.DDTarget('cars','carsDDGroup'); vartrucksDDTarget = newExt.dd.DDTarget('trucks', 'trucksDDGroup');   //Instantiate instnaces of DDTarget for the rented and repair drop target elementsvarrentedDDTarget = newExt.dd.DDTarget('rented', 'carsDDGroup'); varrepairDDTarget = newExt.dd.DDTarget('repair', 'carsDDGroup');   //Ensure that the rented and repair DDTargets will participate in the trucksDDGroup rentedDDTarget.addToGroup('trucksDDGroup'); repairDDTarget.addToGroup('trucksDDGroup');

In the above code snippet, we have setup drop targets for the cars, trucks, rented and repair elements. Notice that the cars container element only participates in the “carsDDGroup” and the trucks container element participates in the “trucksDDGroup”. This helps enforce the requirement that cars and trucks can only be dropped in their originating container.
Next, we instantiate instances DDTarget for the rented and repair elements. Initially, they are configured to only participate in the “carsDDGroup”. In order to allow them to participate in the “trucksDDGroup”, we have to add it by means of addToGroup.
OK, now we’ve configured our drop targets. Lets see what happens when we drop the cars or trucks on a valid drop element.
5 Steps to Understanding Drag and Drop with Ext JS
Demo

In exercising the drop targets, we see that the drag element stays exactly its dropped. That is, images can be dropped anywhere on a drop target and stay there. This means that our drop implementation is not complete.
To complete it, we need to actually code for the “complete drop” operation, by means of another override for the instances of DD that we created some time ago.

Step 4: Completing the drop
To complete the drop, we will need to actually drag the element from its parent element to the drop target element using DOM tools. This is accomplished by overriding the DD onDragDrop method.
Add the following method to the overrides object.
Hide code highlighting

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Called upon successful drop of an element on a DDTarget with the sameonDragDrop : function(evtObj, targetElId){// Wrap the drop target element with Ext.ElementvardropEl = Ext.get(targetElId);   // Perform the node move only if the drag element's // parent is not the same as the drop targetif(this.el.dom.parentNode.id != targetElId){   // Move the elementdropEl.appendChild(this.el);   // Remove the drag invitationthis.onDragOut(evtObj, targetElId);   // Clear the stylesthis.el.dom.style.position =''; this.el.dom.style.top = ''; this.el.dom.style.left = ''; }else{// This was an invalid drop, initiate a repairthis.onInvalidDrop(); }

In the above override, the drag element is moved to the drop target element, but only if it is not the same as the drag element’s parent node. After the drag element is moved, the styles are cleared from it.
If the drop element is the same as the drag element’s parent, we ensure a repair operation occurs by calling this.onInvalidDrop.
5 Steps to Understanding Drag and Drop with Ext JS
Demo

Upon a successful drop, the drag elements will now will be moved from their parent element to the drop target.
How does the user know if they are hovering above a valid drop target? We’ll give the user some visual feedback by configuring the drop invitation.

Step 5: Adding drop invitation
In order to make drag and drop a bit more useful, we need to provide feedback to the user on whether or not a drop operation can successfully occur. This means that we’ll have to override the onDragEnter and onDragOut methods
Add these last two methods to the overrides object.
Hide code highlighting

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Only called when the drag element is dragged over the a drop target with the same ddgrouponDragEnter : function(evtObj, targetElId){// Colorize the drag target if the drag node's parent is not the same as the drop targetif(targetElId != this.el.dom.parentNode.id){this.el.addClass('dropOK'); }else{// Remove the invitationthis.onDragOut(); }}, // Only called when element is dragged out of a dropzone with the same ddgrouponDragOut : function(evtObj, targetElId){this.el.removeClass('dropOK'); }

In the above code, we override the onDragEnter and onDragOut methods, both of which are only utilized when the drag element is interacting with a drop target participating in the same drag drop group.
The onDragEnter method is only called when the mouse cursor first intersects the boundaries of a drop target while a drag item is in drag mode. Likewise, onDragOut is called when the mouse cursor is first dragged outside the boundaries of the drop target while in drag mode.
5 Steps to Understanding Drag and Drop with Ext JS
Demo

By adding overrides to the onDragEnter and onDragOut methods we can see that the background of the drag element will turn green when the mouse cursor first intersects a valid drop target and will lose its green background when it leaves the drop target or is dropped. This completes our implementation of drag and drop with DOM elements.

It doesn’t stop here
Drag and drop can be applied to mostly everything in the Ext JS framework. Here are a few examples that you can use to learn how to implement drag and drop with various widgets:
Example of Drag and Drop
Second example of Drag and Drop

Summary
Today, we learned how to implement end to end drag and drop of DOM nodes using the first-level drag and drop implementation classes. From a high-level, we defined and discussed what drag and drop is and how to think about it in terms of the framework.
We also learned that the drag and drop classes can be grouped by drag or drop behaviors and whether or not they support single or multiple drag or drop operations. While implementing this behavior, we illustrated that the dd classes help make some of the behavioral decisions, and that we are responsible for coding the end-behaviors.
We hope you’ve enjoyed this thorough look at some fundamental drag and drop operations with DOM nodes. We look forward to bringing you more articles about this topic in the future.

By Reda Bouaichi Posted in ui, web

Confessions of a Successful Entrepreneur – Forbes


http://www.forbes.com/sites/rajeevpeshawaria/2012/02/21/confessions-of-a-successful-entrepreneur/

Confessions of a Successful Entrepreneur

Lessons corporate executives can learn from entrepreneurs

When my friend Jim took the giant leap from corporate executive to technology entrepreneur back in 2000, even he never imagined that he would lead a Nasdaq listed company with over 20,000 employees in eight countries by 2009. How did he pull off this rare achievement? Many things, of course – strategy, ability to execute, funding, and able leadership to name a few. I asked Jim what he believed to be the biggest reason, and without hesitation, he attributed most of his success to the fact that he made some important behavior changes along the way. As I listened to him, I realized that this (the ability to make behavior and mindset changes) is common to all successful entrepreneurs, but always missed in analyst reports. Furthermore, I strongly believe they apply equally to people who want to remain and excel in corporate executive roles.

Here are the four changes Jim made:

1. From Shut to Open

In his corporate executive avatar, the more senior he became, the more he unknowingly shut himself off from people. As he became busier, he instructed his secretary to screen his calls and sequester his time. After all, how could he entertain every caller when he could barely finish his work? His assistants also took control of his e-mail in-box, only involving him in the “most critical” ones. He ignored anyone who “wasn’t worth it”. .

Once he started his own business, he quickly realized how important networks were. “It is not what you know, but who you know that matters in business. You cannot ignore anyone these days – who knows where the next big opportunity will come from,’” he told me. With this realization, he began to return each call and email personally with curiosity. Even today, with all his responsibilities as CEO, he wakes up at 5:00 a.m. everyday, answers his email for an hour over a cup of coffee, then goes for his morning run.

2. From Opportunistic to Helpful

During his days in the corner office of the division he headed for the old company, he routinely ignored help requests from friends and acquaintances. If someone called to ask him to recommend her son for an internship position, or if a friend asked him to introduce them to his company’s procurement guys, Jim usually did not bother unless he felt the person asking was important enough and could be of use to him in future. In most cases, he thought people were taking advantage of his position at the company.

In his early days as a businessman, Jim found a lot of closed doors. He noticed that the same people who had run after him when he was a senior corporate executive were now not returning his calls. His initial anger eventually gave way to humility and he realized that he must help anyone he can without weighing the usefulness of the person. Now as CEO he often tells his senior team, “You must go out of your way to genuinely help as many people as you can even if it is unclear how they might ever be useful to you – it is just good business.”

3. From Telling to Asking

As the big shot executive, he often told everyone how important his work was. As people asked him questions, he was happy to tell them everything he knew. After all, he was an expert in his field and it was only natural that people wanted to learn as much as they could from him. He felt really good about himself as people were so in awe of him. It was quite normal for him to spend a few hours at a party and come back without knowing much about the people he had met. He usually did most of the talking.

Now one can barely get a few sentences out of him when people try to probe about the importance of his work. He is far more interested in finding out about what others do, and never stops asking questions. He even attended a memory seminar which helps him remember the names of people he meets at social gatherings. I asked him why this sea change in behavior, and he was quick with his response: “It’s all about the people – you have to be genuinely interested in them…. As I proactively built this habit, I found that I felt deep intrinsic satisfaction when I knew I had understood (and helped) someone….. And usually in turn, they do their best for you. It’s a win-win habit.”

Mu Sigma offers $108M reasons to believe in big data


Originally posted on Gigaom:

Chicago-based big data firm Mu Sigma has closed a $108 million private-equity investment round to expand its analytics-outsourcing business. Armed with a team of data scientists and subject-matter experts, Mu Sigma takes customers’ data and it turns it into business insights, meaning customers don’t have to built their own in-house big data expertise. It’s an already-profitable business that will only get bigger.

The engineering, programming and math skills necessary to do big data analytics are in hot demand but short supply, which is what makes companies like Mu Sigma so appealing. All customers have to do is bring their data and their money, and the analytics experts go to work figuring out the best strategies for getting insights, and then run the big data workloads. Whereas using cloud-based resources eliminates the capital expense of big data projects, outsourcing eliminates the human resources expense, too.

It’s a fine business to be…

View original 206 more words

4 Business Metrics You Can’t Afford to Ignore | Inc.com


http://pulse.me/s/4o1eH
4 Business Metrics You Can’t Afford to Ignore

OWNERS’ MANUAL

Profit and revenue tell you a lot–but they don’t tell you everything about the health of your business.

4 business metrics you can't afford to ignore

Flickr/MStewartPhotography

Every business focuses on and measures revenue. Every business focuses on profit and loss.

And they should, but there are a few other financial and performance measurements that can provide earlier warning signs of trouble—or early indications of longer-term success.

Here are four metrics your business can’t afford to ignore:

Cost to Acquire Customers (CAC). Also known as customer acquisition cost, this measures the cost of landing a customer. In simple terms, add up the cost of marketing and sales—including salaries and overhead—and divide by the number of customers you land during a specific time frame.

Spend $100 and acquire 10 customers and your CAC is $10.

What’s a good number? That depends on your industry and business model. It’s also important to understand how CAC fits into your overall operating budget. The leaner your operation the more you can afford to spend to acquire a customer.

Also keep in mind that a high CAC makes sense if you also generate a high…

Lifetime Value of a Customer (LTV). Unless your business is truly one-off, some percentage of customers will become repeat customers. The more repeat customers you have, and the more those customers spend, the higher CAC you can afford. (Some business models are built on breaking even on the customer’s first purchase; future purchases will be profitable since the CAC is at or near zero.)

LTV is often tricky to calculate and does involve making a few assumptions, at least during the startup phase. But once you’ve built a little history you can start to spot customer retention and spending trends. Then the math gets a lot easier: Determine what the average customer spends over a specific time period and calculate the return on your original CAC investment. Sense-check that against your profit and loss statement. Roughly speaking, the greater the LTV, the higher CAC you can afford.

Why do these two metrics matter so much? A rising CAC means you’ll need to start cutting costs or raising prices—or do a better job in marketing and sales. A falling LTV indicates the same measures are necessary… and means you’re failing to leverage the most important and least expensive customers you have: current customers.

Churn rate. Every business gains and loses customers; that’s a fact of business life. But still, lost customers are like failed investments. You spent money to acquire them, service them, and try to retain them… and now they’re gone.

A rising churn rate could be caused by a number of factors: Dissatisfaction with your products and services, new competition in your market, or even the coming end of a product or service cycle.

Churn rate is a solid indicator of rising CAC and lower LTV. In fact, all three are great leading indicators of problems—or successes—to come, both in other metrics and for your business overall.

Revenue percentages. Very few businesses only have one source of revenue. Most have multiple sources, and changes in the contribution percentage each makes can indicate problems are ahead.

Take wedding photography, a business I know something about. To keep things simple, say 80 percent of revenue historically comes from the initial wedding package sold to couples, 10 percent from additional sales after the wedding to the couple, and 10 percent from post-wedding sales to friends, family, etc. If post-wedding sales fall off that will impact overall profit levels since almost all marketing and sales costs go into booking weddings so margins on additional sales are naturally much higher.

Changes in revenue percentages can often signal not only changes in customer spending habits but also broader trends in your industry and market.

If you have other key metrics your business follows, share them in the comments below.

Read more:

5 Jobs You Should Have Before Starting a Business

Best Way to Become an Expert

Best 2011 Books for Entrepreneurs
jeffhaden.bucket_11526.jpg

Jeff Haden

Jeff Haden learned much of what he knows about business and technology as he worked his way up in the manufacturing industry from forklift driver to manager of a 250-employee book plant. Everything else he picks up from ghostwriting books for some of the smartest innovators and leaders he knows in business. He has written more than 30 non-fiction books, including four Business and Investing titles that reached #1 on Amazon’s bestseller list. He’d tell you which ones, but then he’d have to kill you.

Regards,Reda Bouaichi