Posts tagged developers

Developers Can Now Have Their Own Box, Says Box

The big news coming out of Box Dev 2015 was Box Developer Edition, a new offering that lets app developers build on top of Box’s storage and other services without making it obvious they’re using Box.

The new product allows developers to use the parts of Box they want—file storage, content previews, and so on—under the hood of their own applications. Users can just use the developer’s app without having to log into Box separately.

In a demonstration of the product in San Francisco at Box Dev 2015, Box’s annual conference for developers, a sample user logged into a dummy healthcare app and gained access to different folders which had content in them. The experience appeared seamless—and Box’s role wasn’t obvious. 

Later, Box engineering executives showed off an administrative dashboard. Developers using the product will have full access to information like all the users of the app, their folders, usage data, and more analytics.

“It doesn’t just integrate with our APIs,” said Box CEO Aaron Levie in a press Q&A following the keynote presentation. “You can actually build on all the technology we have. That’s what the Dev edition is all about. It’s a developer-owned instance of Box. They can store and manage all the content on their platform.”

Currently in a limited beta, Box Developer Edition will have a cost based on the number of users, according to Levie. Data storage will come free since that isn’t the focus, he said. 

Most other cloud providers, like Amazon and Google, charge developers based on storage or bandwidth used. This could make Box Developer Edition appealing to certain kinds of developers, but without details on the pricing, it’s hard to know how competitive the offering will be and for which apps Box will end up being cheaper or have more of the right features.

“[The value of Box Developer Edition] has far less to do with storage and way more to do with workflow in your app that Box is enabling,” said Levie. 

Formal pricing for the product will come this summer.

Photo by Owen Thomas for ReadWrite

View full post on ReadWrite

NPM Wants To Push JavaScript Developers To Make Lego-Like Web Apps

For all its virtues as the lingua franca for developing Web apps, JavaScript hasn’t always lent itself to modern and efficient programming practices. Not long ago, for instance, shortcomings in the language led many developers to write JavaScript programs as huge, monolithic entities instead of building them from common and reusable software building blocks, also known as “modules.”

JavaScript is more amenable to such Lego-like modularization than it used to be, but the practice still isn’t as widespread as some would like. So NPM, a startup mainly known for eponymous open-source software that installs and manages JavaScript programs, has decided to give things a nudge in the right direction.

Its new initiative is called Private Modules, and at first glance it mainly looks like a premium code-repository service, similar in many respects to GitHub’s services. NPM already offered a free Javascript-only repository service for open-source code. Private Modules introduces a paid option for developers or companies that want to keep their JavaScript private.

But that’s not the interesting element here. Where GitHub’s paid options limit users to a specific number of proprietary-code repositories—$7 to $50 a month gets you between five and 50 private code repositories—NPM has gone, well, unlimited. A flat fee of $7 a month for individuals, or $5 a month per person at an organization, gets you as many private JavaScript-storage buckets as you want.

Why unlimited? Because, NPM CEO and founder Isaac Schlueter says, it will encourage companies to build and use individual JavaScript code modules, each of which can now live in its own repository.

All Mod(ule) Cons


NPM CEO Isaac Schlueter

“There’s a broad trend where people are switching from building monolithic apps to small modules that can be pieced together,” Schlueter told me in an interview.

Such modules vastly simplify the process of both building and updating programs. Much the way it’s far simpler to replace a light fixture than to completely rewire your house, it’s much easier to pull out and replace an old code module with a new one than it would be to rewrite a much larger monolithic program.

See also: How Node.js Stays On Track

NPM’s move here basically reinforces the notion of modularity at the repository level. It’s an idea you might even sum up in a slogan: “One repo, one module.”

Edmond Meinfelder, director of Web and mobile engineering at DocuSign, uses NPM Enterprise to manage the company’s massive—and monolithic—JavaScript codebase. 

“We have a huge legacy code base, but we’re just starting to refactor it and break it down into small modules,” he said. “Modules are easy to understand, easy to write tests for, and make creating new functionality much easier.”

While Meinfelder said DocuSign will continue to use the Enterprise option since it’s tailored to large companies, he plans to use Private Modules as an individual. Furthermore, he said that NPM’s move in this area helped DocuSign realize that it’s worth the effort to break its JavaScript programs down into modules:

On Private Modules, you could host all the modules of an app without worrying about going over your pricing plan. Private Modules shows companies and individuals that its within their price range to build apps the right way.

More Modules … And Fewer Users?

When the announcement made Hacker News Tuesday, however, some individual developers were less enthusiastic about the new direction. One major concern: Private Modules might effectively limit the number of users who can work on non-open-source projects. GitHub’s premium pay-per-repository model, by contrast, encourages unlimited collaboration on a limited number of repositories.

“Everything looks pretty awesome, except the payment model… With NPM’s model all my collaborators will have to pay for NPM private modules as well,” one commenter noted. Another suggested that NPM’s per-user payment scheme might turn off small companies:

Sounds like a big pain to have to pay individually for each person on a team if your company wants to use private modules. We’re generally willing to throw money at problems like those private modules solve, but if we have to do it a dozen times it probably isn’t going to happen.

Schlueter remains confident that NPM is moving in the right direction by encouraging practices that have been spreading among developers for decades.

“If we want to look back to the historical roots of this decision, even the shift from Multix to UNIX was about splitting up code into independent parts,” he said. “From the GNU Revision Control System to Git, the trend has been for things being broken into smaller pieces. NPM is a really good example of that in practice.”

Lead image by David Hamilton for ReadWrite (via Build with Chrome); photo of Isaac Schlueter courtesy of NPM

View full post on ReadWrite

Apple Just Threw Some Shade At Pebble And Watch App Developers

Maybe Apple didn’t mean to insult other companies in Wired’s feature story on how it developed the Apple Watch. Nonetheless, some of the details that came out of the conversation between writer David Pierce and his subjects—Apple’s Kevin Lynch and Alan Dye—seem to throw a little shade at wearable tech competitors and even developers.

See also: How The Apple Watch Stacks Up To The Competition

The article, “iPhone Killer: The Secret History Of The Apple Watch,” describes the long path Apple took in creating a new type of arm-based experience. The company tried various things, accepting some and rejecting others—which is normal for a tech company creating a new gadget and software. But in this case, those inadequate cast-offs happen to resemble efforts put out by Pebble and a budding crop of watch app makers.

Take these as learning lessons or subtle, disguised barbs. Either way, Apple and its executives won’t be mincing words if the watch becomes a hit. So for now, let’s read between a few lines.

Time Jump


In one section, the Wired story reveals that previous versions of the Apple Watch software took a chronological approach, setting information in a timeline. But the concept was tossed aside early on for Short Looks, which prioritizes info based on whether or not you engage with it, and Glances, which offer a unified place for fast news and updates.

“We rethought the UI,” said Lynch, formerly of Adobe and now Apple’s vice president of technology. “We rebuilt the apps—messaging, mail, calendar—more than once, to really get it refined.” There was apparently no place in the refinement process for chronology—although the concept did find a home at Pebble. 

See also: Meet The New Pebble Time—Though Getting One Will Take … Time

When Pebble founder and CEO Eric Migicovsky told me about his revamped smartwatch software in February, he described a system that presents data based on chronological importance. “Instead of having individual apps, we’ve extracted the information from those apps that are relevant to you in your normal day,” he said. Pebble users can bring up activities that just happened, future appointments or data that’s important right now by hitting assigned buttons on the watch.


Pebble Time Steel

All that “button mashing” can be a turn off for some folks, but apparently not enough to derail Pebble’s new device and platform. Consumers also don’t seem to think a time-based approach is inadequate for a watch: Pebble’s second Kickstarter trounced its first $10 million record-breaking campaign, doubling the funds raised and setting another record. More than 78,000 people pledged more than $20 million to Pebble Time and its new software. Within a day of launch, the campaign was fast approaching the halfway mark, suggesting iPhone-worthy levels of interest.

Here’s some context: Sales for the latest iPhones, the models 6 and 6 Plus, together sold $10 million in their first weekend. If the Apple Watch sells as well as its smartphone counterparts, Apple would be thrilled. If it doesn’t, perhaps the company needs to reconsider whether a time-based concept for a watch is all that wrong-headed after all.

The Watch As A Cure For iPhone Obsession


Speaking of iPhones, our obsession with it and other smartphones is apparently what led Apple to create the Apple Watch.

We spend a great deal of our lives staring at glass displays, and more of us are coming into the fold. According to Pew Internet And American Life Project, nearly two-thirds of Americans now own a smartphone. Apple feels responsible for this problem. And, writes Pierce, “it thinks it can fix it with a square slab of metal and a Milanese loop strap.”

The Apple Watch was designed to liberate people from their phones by giving them convenient, but subtle access to data and faster ways to respond to it, if they choose. A lot of that hinges on the interface, which is Alan Dye’s domain.

Dye’s story must be fascinating: He was a graphic designer in the marketing division who helped design product boxes. Now he’s leading Apple’s human interface team.

See also: Apple Watch Developers Can Now Submit Watch Apps To Apple

One thing he doesn’t want is for people to get too involved with their watches. The thought of people uncomfortably holding up their wrists for more than 30 seconds appalls him. “We didn’t want people walking around and doing that,” Dye told Pierce. Ultimately, Apple settled on the idea that watch interactions shouldn’t take more than 5 to 10 seconds. 

But tell that to the burgeoning ranks of developers, now free to swarm the app admissions process with their best watch wares. Productivity apps, finance apps, social apps, news apps, and more are gearing up to make a play for our wrists. Based on what we’ve seen so far, some seem guaranteed to blow through the 10-second rule and give us the sore arms Dye wants to avoid. 


Knowing what the company focused on in creating the device and software should shed light on the experience it ideally wants watch apps to deliver. For instance, Apple spent a year figuring out what a tweet should feel like when translated as vibrations through the “Taptic engine.” Does the company expect others to put as much effort into their apps? Probably not initially, especially since WatchKit hasn’t even been out that long. But even if it were, Apple’s ramping up for the device’s launch now, and it wouldn’t want to squelch developer interest in a new technology that, frankly, not everyone is sold on.

See also: The Apple Watch Looks Great—But It’s Going To Disappoint Lots Of Users

So enjoy Apple’s learning lessons or whatever shade it may want to throw for now. The company won’t be beating around the bush later, especially if the Apple Watch takes off. Because if there’s one thing Apple knows, it’s how to take dead aim when it feels emboldened. 


Apple CEO Tim Cook, calling out Android by quoting ZDNet, at WWDC 2014

Apple Watch photos courtesy of Apple; Pebble Time Steel photo courtesy of Pebble; iPhone photo by Hadrian via Shutterstock

View full post on ReadWrite

Heroku May Be Limiting Free Service For Hobbyist App Developers

Heroku may be dropping the hammer on hobbyist developers, at least according to hints we’re seeing that it may soon limit its free services. The app hosting company has apparently floated a new pricing scheme that’s only visible to participants in a private beta of its service.

According to those who’ve seen it, the most notable change in the new plan is an apparent restriction on Heroku’s free offering. At the moment, this tier allows users the use of 1 dyno—Heroku’s unit of processing power—up to 24 hours a day, seven days a week. Under the proposed new plan, that level of service will force users into a new Heroku Hobby tier that will cost developers $7 a month.

Heroku, which hosts apps for customers as large as Macy’s and Toyota alongside trial efforts by students and part-time developers, declined to comment on its private beta. Tellingly, though, it also didn’t deny the reported pricing scheme.

Developer Eric Jiang, who reported seeing the new pricing tiers firsthand, described what he called the “verbatim text” of Heroku’s announcement in the private beta:

Free – Experiment in your own dev or demo app with a web and a worker dyno for free. Sleeps after 1 hr of inactivity. Active up to 12 hours a day. No custom domains. 512 MB RAM.

Hobby – Run a small app 24×7 with the Heroku developer experience for $7/dyno/mo. Custom domains. Run a maximum of one dyno per Procfile entry. 512 MB RAM.

Standard 1X, 2X: Build production apps of any size or complexity. Run multiple dynos per Procfile entry to scale out. App metrics, faster builds and preboot. All Hobby features. 512MB or 1GB RAM. $25 or $50/dyno/mo.

Performance – Isolated dynos for your large-scale, high-performance apps. All Standard features. Compose your app with performance and standard dynos. 6GB RAM. $500/dyno/mo.

Since only private beta users are able to see the potential prices, I wasn’t able to confirm them.

Those Who Pay, Pay Less; Those Who Don’t, Pay More

Developers are busily debating the merits of the possible pricing change. Many paying Heroku customers are greeting the news enthusiastically, as the reported changes actually result in lower prices for higher service tiers.

Jeremy Green of Octolabs wrote a blog post graphing how much money developers could save in the paid tiers. “If you already pay Heroku just about anything for hosting your app(s) this new pricing is nothing but Good News,” he wrote.

See also: Five Steps To Build Your Own Random Non-Sequitur Twitter Bot

The changes won’t affect the most casual users much. If you are using Heroku to host very small apps that don’t run continuously—such as the randomizer Twitter bot I created and described here at ReadWrite—you’re still in the clear.

But hobbyist developers who don’t use Heroku to make money, especially students, are less excited. “So, as a fellow hobbyist with 12 free dynos running on Heroku with custom domains, I clearly don’t want to pay $84 a month for apps that aren’t meant to generate revenue,” one commenter wrote on Hacker News before asking where he should move his projects.

See also: Heroku Grows Up As It Courts Bigger Players

Heroku rose to prominence in the world of app hosting thanks in part to its freemium model, in which developers could launch apps for free on a small scale, and then upgrade to paid support if and when those apps become popular. But as the service has grown, it has started catering to larger business customers.

The purported new pricing structure appears designed to court big paying customers while shutting out what some call “freeloader” developers who game Heroku’s free services in order to run their apps continuously on Heroku’s servers. (Heroku normally idles apps after an hour of disuse.) That practice itself has long been a subject of debate; some, and perhaps many, such developers go on to become paying customers.

Those days may be coming to an end.

View full post on ReadWrite

Apple Watch Developers Can Now Submit Watch Apps To Apple


The primary question for the Apple Watch remains, “What are we supposed to use it for?” Now, any iOS developer with the WatchKit development tools and some chutzpah is free to make his or her best case, now that Apple is finally taking Watch app submissions.

Until now, no one except a limited group of partners had Apple’s blessing to roll out apps for its upcoming wearable. Those early entrants mostly covered news, social, shopping, travel, fitness and some limited productivity features. 

But now developers of all stripes can take their best whack at making this curious wrist gizmo more tempting.

How Watch Apps, And Submissions, Will Work


To start, the company advises developers to update Xcode to the latest version, Xcode 6, which includes the iOS 8.2 SDK with the WatchKit framework. For more information, check out Apple’s Watch app guidelines for App Store submissions.

All third-party Watch apps will work as various components that click together to, hopefully, provide a seamless experience to the user. Here’s how Apple describes these parts working together:

WatchKit apps have two parts: A WatchKit extension that runs on iPhone and a set of user interface resources that are installed on Apple Watch. When your app is launched on Apple Watch, the WatchKit extension on iPhone runs in the background to update the user interface and respond to user interactions. WatchKit provides three opportunities to extend your iPhone app to Apple Watch: WatchKit apps, Glances, and actionable notifications.


“Glances” display snippets of information, similar to the Notifications Center’s “today” widgets on the iPhone. “Actionable notifications” allow users to reply or perform some other task on the watch. “WatchKit apps” on the wearable feature a full user interface that lets users run, manage and interact with the app “in ways unique to Apple Watch.”

Essentially, the Watch will work like an extension of the iPhone, with the wearable tying into the apps running on the phone. Apple is expected to offer a native Apple Watch software development kit later this year so developers can make apps tailored for the wearable.


Of course, getting the green light to submit apps doesn’t mean every one will flood into the App Store. Apple will still vet app submissions—probably with an even more stringent eye than usual, considering how badly the company wants to ensure the success of the new device.

End Users: Getting Up And Running

Eend users will need to snag the latest app updates on their iPhones by April 24, when the Watch launches.

Once the device hits the market, users can get their Watches up and running in three steps:


1: Pair the Apple Watch to the iPhone. (Open the Apple Watch app on the iPhone, tap the “Start Pairing” button, and hold the Watch up to the phone’s camera. You’ll need an iPhone 5, 5s, 5c, 6 or 6 Plus running iOS 8.2 or later.)

2: In the app, open the App Store for Apple Watch.

3: Download apps directly from the Apple Watch App Store.

The unofficial 4th and 5th steps: Decide whether any of these apps justify that pricey purchase, and whether it’s worth holding out for the new ones that will surely storm your wrist before long. 

Watch App screen captures by Adriana Lee for ReadWrite; All other images courtesy of Apple

View full post on ReadWrite

Briefing Web Developers: SEO & Content Mistakes to Avoid – Internet Marketing News

Briefing Web Developers: SEO & Content Mistakes to Avoid
Internet Marketing News
Download your copy now and discover more expert tips to help you create the perfect web build brief. All too often, marketers treat SEO and content as 'added extras' when planning a web build. The thinking goes: “We don't have to worry about that now.

View full post on SEO – Google News

Google Now To Get API So All Developers Can Integrate Their Content

With third party content Google Now becomes much more useful.

The post Google Now To Get API So All Developers Can Integrate Their Content appeared first on Search Engine Land.



Please visit Search Engine Land for the full article.

View full post on Search Engine Land: News & Info About SEO, PPC, SEM, Search Engines & Search Marketing

Among Web-App Developers, AngularJS Is Gathering Steam

Among JavaScript frameworks used to build Web apps, BackboneJS stands out. Across large or small websites, BackboneJS owns at least half the market, according to data aggregated by VisionMobile.

What BackboneJS clearly does not own, however, is the future.

That distinction goes to AngularJS, the popular framework gestated at Google. Though BackboneJS has a head start in terms of deployments, AngularJS rules the community—and community, in the long run, always wins.

Flavor-Of-The-Month Club

Ask a Web developer to name her preferred front-end JavaScript framework—a collection of JavaScript code libraries, templates and other software intended to make it easier for developers to build dynamic Web pages or Web apps—and you’re likely to get a wide range of answers. jQuery! EmberJS! AngularJS! SproutCore!

Actually, no—you won’t hear anyone say SproutCore anymore. 

In its day (five years ago, an eternity on the Web), SproutCore was everyone’s darling. It was what Charles Jolley and his team used to build Apple’s iCloud apps. It enabled developers to build sophisticated Web and mobile apps. It was cool.

Until it wasn’t.

BackboneJS more or less replaced it, used by LinkedIn and others. But then along came EmberJS (born from the ashes of SproutCore), then AngularJS, then ReactJS….

You get the picture. Change is the one constant in tech, generally, but nowhere is this more true than in the fast-changing world of JavaScript. Every other year, fashions seem to change and a new framework emerges.

AngularJS, however, seems different.

Simplifying Development


Source: VisionMobile

For several years, BackboneJS has has accumulated design wins. Web apps as diverse as Sony Entertainment Network, WordPress, and Stripe use BackboneJS to build native-quality app experiences that run in a browser. This translates into close to 60% market share among other JavaScript frameworks, as VisionMobile shows.

The problem for BackboneJS, however, is that red portion of the chart. That’s AngularJS, and all signs point to it taking a massive chunk of the JavaScript market.

AngularJS, like MongoDB and MySQL in the database world, makes Web application development simple. It’s so easy to get started, it lowers hurdles to developers itching to build their apps.

Of course, “simple” can be deceptive. As Anand Mani Sankar describes:

The AngularJS journey can evoke mixed feelings. The learning curve is very different from other JS frameworks. The initial barrier to get started is very low. But once you start diving deep the learning curve suddenly becomes steep. 

But it’s not just AngularJS’ initial simplicity that makes it appealing. As its creator, Misko Hevery, notes:

[T]he thing that really hits it home for people is that we have this idea of a directive. Rather than writing everything inside of JavaScript and then having a bunch of templates to generate the UI, you write a lot of it in HTML and HTML drives the assembly of the application. It’s kind of the reverse thing. It’s very unique. Nobody else has this particular approach.

This ability to live in HTML is powerful: It’s not super complicated yet also very expressive. It allows Web developers to do a lot with comparatively little.

The Community Has Spoken

Developers love it. Really, really love it.

One way to visualize this is through GitHub activity. AngularJS has far more contributors than any of the competing JavaScript frameworks.


Source: VisionMobile

Other ways of measuring popularity, like StackOverflow mentions or Google searches, also favor AngularJS.

As VisionMobile finds, AngularJS has twice as many posts as BackboneJS and EmberJS combined on Stackoverflow, and 65X more than relative newcomer ReactJS. 

It’s hard to argue with those numbers.

Perhaps even more compelling, however, are the employment trends for the different frameworks. As developer jobs site Indeed reveals, AngularJS dwarfs every other framework, whether measured in terms of absolute jobs posted (as seen below) or relative job growth.


Source: Indeed.com

So Has AngularJS Won?

None of which means you must use AngularJS. Fans of EmberJS, for example, will appreciate its more careful approach to backward compatibility, an area in which AngularJS has not done very well.

And then there’s ReactJS, a framework developed at Facebook that has lately been leading the pack in terms of innovation. Many of the other frameworks, including AngularJS, have borrowed from ReactJS’ approach, signaling that it may be the new framework to beat.

Or, really, there may be any number of reasons to choose one framework over another, as we’ve covered here at ReadWrite before.

But if you’re hoping to find safety in numbers, your choice is clear: AngularJS. It’s the clear community winner, and is starting to match that outsized community with real-world app deployments. That may not declare it the once-and-for-all winner, but it’s a pretty compelling argument for at least giving it a try.

Photo by Phil Whitehouse

View full post on ReadWrite

Developers Get A New Dropbox Groups API For Business Use


Dropbox gave developers another toy today, unveiling a new API to go with a new “groups” feature it has just formally introduced into its Dropbox for Business service.

The groups feature allows users to create of lists of users that get access to a set of files. Dropbox insists this makes for more efficient sharing with coworkers and is “especially great” with training new employees. It explains the feature this way:

Using groups, you can create and manage lists of members to share information directly with the group instead of adding each person individually. Any new member you add to a group will be automatically added to all shared folders that the group has been invited to. You can also manage the entire group’s permissions to what you’re sharing by granting editing or view-only access.

Dropbox said the groups feature was the function most requested by business customers. It’s been in beta testing since November, when over 12,000 customers signed up for early access.


The group feature of Dropbox for Business has been in beta testing for several months. 

The groups API lets developers build the feature into their applications. Several Dropbox partners like CloudLock, Bitium, and Okta—which offer various combinations of security and user-identity management services—got early access to the API so as to extend their security options to ad-hoc groups of users.

It wasn’t entirely clear what other features developers might implement using the groups API. 

Photo by Joris Louwes

View full post on ReadWrite

Google Gives Game Developers More Tools To Play With


That vaguely creeped out feeling you get from Googling something for the first time and then seeing ads for it when you log on to Facebook two minutes later? It’s soon going to follow you to your Android games. 

Google announced Monday that it will offering game developers additional tools in the form of player analytics and additional features in AdMob, Google’s mobile advertising platform. Google says the analytics will launch within “the next few weeks” and should give developers greater insight into average revenue per paying user, session habits, and more. 

Analytics And Advertising

“At launch, we’re using achievements the developer has included as a way of measuring progress,” Greg Hartrell, senior product manager at Google Play Games, said in an interview with ReadWrite. “This gives tools to the developers so they can craft their progression data.”

Developers will also be able to track player progress more discreetly with hidden milestones, Hartrell said, created using custom event tags they can then follow with the new analytics. “We launched player stats last year to give you a simple way to look at basic data like daily active users or demographics,” he said. “This we’ve been working on since last year.”

In its official blog post, Google claims one beta user, San Francisco-based BombSquad, was able to double its revenue per user on Google Play with the new information. 


An example of the visually consistent ad option for developers, which is currently in beta testing.

Google also announced three additions to AdMob: visually native ads within games, better ad targeting, and an audience builder. The native ad initiative allows developers to show ads in their game from Google advertisers, but customize them such that they are aesthetically consistent with the game.

Perhaps the most exciting announcement for developers—though least exciting for players’ wallets—is a new AdMob feature (launching “in a few weeks”) that will predict which customers are most likely to make in-app purchases. The audience builder gives developers a tool to create sorted lists of their users based on in-game behavior.

New API For Android TV

Launching alongside these changes is the Nearby Connections API (see our API explainer), which will allow games on Android phones or tablets to connect to Android TV. Users will use their mobile device as a controller while the game runs on the TV. The current example is Beach Buggy Racing, with a planned summertime release. 

The devices all need to be running the same version of the game and be on the same WiFi network, at which point the TV and the devices can create their own p2p network that lets the magic happen. 

You should expect more games using this API in the next few months. “We have a handful of developers in different phases of development,” said Benjamin Frenkel, a Google Play Games product manager. “We’re elated by the response. We’ll show demonstrations on Monday using the Android TV ecosystem.”

Lead image by Anita Hart; others courtesy of Google

View full post on ReadWrite

Go to Top
Copyright © 1992-2015, DC2NET All rights reserved