I wrote that Google is Going After PayPal with Google Wallet. What would be Google's natural next step? Google is a few components away from owning the money round trip: POS devices, mobile payment devices, bill presentment, and personal finance. Google could acquire Inuit, get all of those, sell you a mortgage, and prepare your taxes.
Intuit has its own cash-register size POS system and mobile payments device GoPayment. It has announced integration with Square via Square-Quickbooks integration. It has freebie Mint.com, and three paid tiers of the mobile-plus-desktop Quicken 2014.
That big green rectangle in the top left is Google, at $373B
http://www.marketwatch.com/tools/stockresearch/marketmap
Money Required
Intuit would cost less than Ebay, and more than recent Google acquisition Motorola. Square is arguably already on-track for an acquisition, given its recent integration to blood rival Intuit.
I'm far from the first to make this connection. Some have said that it will not happen because of the antitrust precedent set by the Microsoft attempt to acquire Intuit.
Andrew Carr in 2007
"...in 1995, Microsoft tried to acquire Intuit, only to be thwarted by the Justice Department's antitrust regulators. (That marked the real beginning of Microsoft's legal woes.) Even though, in the long run, Google could end up an even bigger monopoly than Microsoft, I don't think it would run into antitrust problems if it tried to buy Intuit today. (If it waits, though, all bets are off.)"
Sure, Android OS has 81% marketshare, but most Android is not on a Google/Motorola device. In fact, Google/Motorola are not even ranked in Gartner's latest article on smartphone marketshare. The newest Kindle Fire HDX is an Android device owned by Amazon, and used to promote its content. Apple is the largest corporation of any kind on the Market Map, and takes 56% of the mobile profit. A great argument can be made that Google is avoiding antitrust issues by being everywhere, and sharing its technologies.
The only question remaining is will Google build or buy the parts of its payment flow machine? They could acquire one or more of the Google Apps vendors with related technology. They might be building their own, and choosing to reveal it when the quality is impeccable. They are playing their long game again.
But, the easiest route to owning the cash register is buying Intuit and Square. It's not too late.
Are you a medium-sized business? Intuit has an army of resellers that can hook you up with the "full POS" solution; software, hardware, and integration.
Are you a small business? Amazon has the the whole shebang in a box.
And separately.
Are you a mom-and-pop brick and mortar? Sam's Club has the software.
Google has made no secret of its universal and generalized payment technology ambitions. Now, it is spending ad money to position Google Wallet directly against PayPal. Here is an example ad appearing in Gmail:
It is difficult to say which of these advantages is greatest. If I were going to build my non-auction business on one or the other, I'd choose Google. Google could search and sell my product or service(1,6), advertise it (9), provide an integrated suite for reporting, CRM, VRM (4, 10), and push the wallet to mobile devices it owns (3). PayPal may be the most recognizable or trusted wallet brand. I would argue that Google is a more trusted brand overall.
*Brand Reputation
One could argue that PayPal has a substantial head start at creating ill will. I have my own biases about both companies. To casually quantify or qualify the reputations, I used Yahoo search, factoring out the possibilities of a Google Search bias against Paypal, and a Bing bias against Google. Look at the qualitative difference in result content: Paypal complaints. (2.52M results on Yahoo) Google Complaints (1.75M). One could easily dismiss the quantitative difference, because PayPal has been around longer, and might be accumulating complaints at the same rate. However, most Internet users have received some services from Google for free. PayPal and eBay have long been associated with gray market transactions. eBay recently won a Supreme Court ruling, having been implicated in a copyright infringement case.
Mash-ups and Publishing
The publishing platforms may represent digital sharecropping or progressive use of cognitive surplus, depending on your point of view. The same can be said of mash-ups, which could be viewed as free integration code, or invention-on-spec. It would be tough to argue that either is not powerful or popular. The policies against scripts and Gadgets that take money speak to Google's agenda. PayPal's agenda has been more explicit from the start.
Are you generally satisfied with IntelliJ IDEA? How do you rate the product?
Yes. 7 out of 10
What features appear most useful?
Ability to parse, format, and refactor JavaScript. JavaScript JSLint, JSHint, and autocomplete.
Better than WebStorm for me, because I need to do likewise with Java files.
Are there any problems?
CPU Hogging
Priority 1, Severity High: CPU usage climbs to 300% when the IDE is not doing much of anything (no editing in progress).
I have read many bug reports and message boards about this (some sources of this behavior fixed). I have updated the application frequently. Still happens frequently. I suspect there is some endless recursion having to do with file indexing and/OR compiling. Notably, the four developers within earshot of me have only one application that regularly makes their CPU fans go berserk.
"Move Line" Munges Code
Move Line Up (Down) is trying to be too smart, sometimes dragging comments and other unselected lines with it. Eclipse does this as I would expect.
Repository Unavailable? Development Blocked.
Start up IntelliJ IDEA when the repository is not available (no wifi, vendor site down, etc). I would expect to be able to edit code immediately. IDEA churns, and hogs the CPU, and throws up a Wait cursor.
Priority 3:
Version Control Awkwardness
SVN version control is not very granular or easy to follow. In Eclipse, the results of a sync or diff are obvious; the corresponding panel opens. IntelliJ IDEA will report "Synchronize Finished" in the status bar, and not show me the results. The user then must infer whether to open Version Control or Changes Views, and what to do there. Selecting a Directory context menu / Synchronize seems to produce a synch list for the whole workspace, instead of that module.
Are there any features you'd like to have but did not find in IntelliJ IDEA?
Indexer > "Ignore Files"
Right-click and tell the indexer exclude certain directories. Without this, "Open File" produces compiled class files, copies of js files, and other resource copies. This makes the index larger, slower, and presents opportunities to edit the wrong copy of a file. Similar to SVN Ignore, this feature would match patterns or individual files/directories.
Resolve JavaScript References in other files
Ability to resolve JavaScript resources, given a path, a list of files, an ANT concat target, etc.
Show whitespace characters when selected
Sublime Text 2, instead of the preference hide/show whitespace, will show whitespace only when it is highlighted (selected). Very useful and subtle, and non-distracting, IMO.
Built-in keymap for Mac OS X Eclipse
Both Webstorm and IDEA lack this. You can get an Open-Source XML file and configure it (in different places for those two IDEs). Seems like this should be included, like the Windows one.
Mootools intrudes on native JSON and Crockford's json2.js
I recently upgraded an application to use JSON2. When it was used in an environment containing Mootools 1.2.4, the application broke, throwing an error, "failed to deserialized json object". The application is portable, and has to play nicely in polluted waters.
The object to be serialized client side had an attribute that was a two-dimensional array, constructed as array literals:
The object attribute was represented as a string!
So, I dug into the reasons why the shiny new JSON2 library had this issue, and only with Mootools present. Here is some history, and results of debugging.
To summarize the thread, Mootools users complained that a) Mootools does not use native JSON when available, and b) Mootools JSON does not support ECMA 5 standard method names "parse" and "stringify". Mootools developers argued that they "MooTools had the JSON object before it was specified" and that they did not like the names "parse" and "stringify". Mootools developers ended up apologizing, but not for the fundamental flaw: that of modifying native JavaScript Objects in the first place.
It would seem that my application's issue were solve because Mootools 1.3 has not tacked .toJSON onto the array-like [] object.
typeof value.toJSON === 'function') {
// (JSON2's test now returns false, so the serialization is handled by JSON, not Mootools)
Below is the nitty gritty of how Mootools 1.2.4 can break JSON2.
Mootools 1.2.4
Here's the line where Crockford's JSON2.js tries to optimize by using a native method:
function str(key, holder) {
...
// If the value has a toJSON method, call it to obtain a replacement value.
if (value && typeof value === 'object' &&
typeof value.toJSON === 'function') {
value = value.toJSON(key);
}
I've seen this a few times in the past 3 weeks. Thought it was an intermittent glitch, connection problem, CDN. Today, I've seen it in Chrome and Firefox (FireBug enabled and Firebug disabled).
The everyday user sees something like screenshot 1.
The FireBug-using developer types can see that LinkedIn's CDN, and the JavaScript that calls it, are in a world of hurt.
LI_WCT is not defined
[Break on this error] LI_WCT([
nhome (line 619)
LI is not defined
[Break on this error] LI.i18n.register( 'share-dialog-title', 'Share' );
nhome (line 2850)
LI is not defined
[Break on this error] LI.i18n.register( 'Dialog-closeWindow', 'Close this window' );
nhome (line 4116)
ChameleonService is not defined
[Break on this error] ChameleonService.setPanel('1', {div: d...panel-01'),txId: '0', maxSlots: 15});
nhome (line 10635)
LI is not defined
[Break on this error]
nhome (line 10804)
LI is not defined
[Break on this error]
nhome (line 10805)
LI_WCT is not defined
[Break on this error] LI_WCT([
nhome (line 11008)
LI is not defined
[Break on this error] LI.Controls.processQueue();
nhome (line 11160)
YEvent is not defined
[Break on this error] YEvent.onDOMReady(function() {
nhome (line 11244)
LI is not defined
[Break on this error]
nhome (line 11286)
YEvent is not defined
[Break on this error] YEvent.on( window, 'load', function() {
nhome (line 11310)
YEvent is not defined
[Break on this error] YEvent.on( window, 'load', function() {
nhome (line 11339)
appendTryNewEditorButton is not defined
[Break on this error] appendTryNewEditorButton();
Do you like mind mapping? I find it a good way to expand thinking about complex problems. Often, looking at the mark i just made results in a visual association, and a new but related idea.
Companies are adapting their iPhone mind mappper apps to iPad. Here is a video demo of one.
I'm not convinced that you can get your mind outside-the-box by working on a little box. There's also a disconnect that occurs, I think of a new node. Then I must switch to gizmo-futzing mode in order to create the node container. Then typing mode. The keyboard grabs up about half the screen. These "not-conceptualizing" steps disrupt the free association and flow of the exercise.
Seems like stylus and tablet would be a more natural and rapid combination. And it's hard to beat markers on vast expanses of craft paper.
I ran this as an app trial for iPhone and found it to be cool, but the maps are too complex and sprawling for the iPhone display. Two positive points: First, It can explore and some thoughts when you are in tight quarters, like a waiting room or airplane seat. Second, it was the only mind mapping app I kept on my iPhone.
There are extensions that print out your list of Firefox extensions as text.
Yeah... um, that's going the wrong direction, imho. If you need that list, you are debugging a problem. No need to introduce another variable.
Here's how:
Type about:config into your address bar
(You may get "void warranty" warnings. Proceed.)
In the Filter box, type extensions.enabledItems
Right-click on the result, and Copy.
Paste into a text file.
You now have a comma delimited list of extensions that are enabled.