Friday, December 17, 2010

Automated Gawker DB Lookup/Reset Script

Due to the Gawker user database compromise, we thought we'd share the script we're using to reset passwords for those users that are found in the Gawker list. It's a Ruby script that will go through the list of compromised emails and check it against your database of emails.

You can find it on GitHub here.

Add Image

Note: You will need the list of usernames and emails that were compromised in the Gawker hack. Due to privacy/security concerns, we are not including the username/email list (although it is widely available on the Internet). We know this is kind of a pain, but we don't want to be the ones spreading spam love around.

Included on the GitHub page for the script is a form to fill out if you need help or would want access to the Gawker list (provided we can verify you're who you say you are).

Thursday, December 16, 2010

IBM DeveloperWorks Features Appoxy's SimpleJPA

In keeping with Appoxy open source week (not nearly as cool as Shark Week but still), it makes sense to mention another Appoxy open source "win." This time its with Appoxy's SimpleJPA, a Java Persistence API (JPA) implementation for connecting to Amazon's SimpleDB, Amazon's key-value data store.

IBM published a great post in its developerWorks section a little while ago providing a tutorial on SimpleDB, Java, and SimpleJPA. The article was written by Andrew Glover, an author/developer at Beacon50. Glover does a terrific job explaining SimpleDB and showing how SimpleJPA can easily connect a Java application to it. Here's a synopsis of the tutorial:
This whirlwind tour of SimpleDB [shows] you how to manipulate objects in the non-relational datastore using both the Amazon Web services API and SimpleJPA. Simple JPA implements a subset of the Java Persistence API to make object persistence in SimpleDB easier. One of the conveniences of using SimpleJPA...is that it automatically converts primitive types to the string objects that SimpleDB recognizes. SimpleJPA also handles SimpleDB's no-join rules for you automatically, making it easier to model relationships. SimpleJPA's extensive listener interfaces also make it possible to implement logical data integrity rules, which you've probably come to expect from the relational world.

SimpleJPA was written by Travis Reeder, one of Appoxy's co-founders. He's on the Ruby side of the fence now but has spent many years building highly scalable Java applications, for employers and clients as well as on open source projects. Of note, he served on the project management committee for the Apache MyFaces project, which is an open-source implementation of JavaServer Faces, an established standard for web-development frameworks in Java. (It is based on the MVC paradigm and includes advanced component-based and event-oriented support.)

Amazon promotes SimpleJPA as one of the primary Java interfaces to SimpleDB, using it in sample code and evangelizing its use. Having it also appear in IBM's developerWorks section is just another validation of Appoxy strong. Here's the concluding sentence to the post:


Note: Given we're talking about SimpleJPA, it makes sense to mention Appoxy's SimpleRecord, a Ruby gem that makes it easy to connect Ruby applications to SimpleDB. Like SimpleJPA, SimpleRecord performs the mapping from application code to SimpleDB's key-value data storage format. Below is a mention of a blog post at hubertlepicki.com that explains it's use.

Amazon SimpleDB, Rails, and Appoxy SimpleRecord

This post is a tie-in to the post above. A bit ago, a blogger/developer did a piece on Amazon SimlpeDB, Rails, and Appoxy SimpleRecord. Seems fitting to put it here so that we appear developer inclusive. We don't have a Python interface SimpleDB so Pythonites (istas?) are unfortunately left to their own.

Tuesday, December 14, 2010

Redesigned Appoxy Website

If you're reading this, you've likely seen the redesigned Appoxy website we released over the weekend. Captures all the things we're doing at Appoxy -- building web applications for others and developing cloud management tools in the process.

It's just a start. Look for more information on services, on customers, on products, and on tips and insights on developing in the cloud.

And also more pictures of the team and the fun Appoxites (Appoxians??) bring to their work.



Tuesday, December 7, 2010

Cloud Computing Tests

Watching the live stream of Marc Benioff's keynote at Salesforce's Dreamforce conference today in San Francisco. He's moving quickly from topic to topic burying the ledes in many of them. He says, "databases need to be in the cloud" and then moves on. Took Travis to note to me that Techcrunch this morning posted a notice that Salesforce launched database.com, a SimpleDB-like cloud data storage service. Update: At the end of his talk, before handing the mic over to the product people, he runs through the list of products -- database.com included. It looks like an
impressive list, putting Salesforce as a serious company to watch in the cloud infrastructure space.

At some point, he moves on to some digs at Oracle. (There are many of these throughout.) One story he tells leads up to his call for a cloud test. "We need a cloud computing test" soon followed by "beware the false cloud." It's a nice couple lines. The slide that goes along with it makes a lot of sense when going up against Oracle.


But it's not necessarily as good as Amazon's list of cloud attributes:


Note that the first slide talks about cloud (kloud) definition number 1 (software as a service). Amazon, of course, is offering up cloud definition number 2 (infrastructure as a service).

Now if only Marc could go after Microsoft for their brainless "into the cloud" TV commercials. (We're not linking to them because you won't forgive us if we do.)

Wednesday, October 13, 2010

Web 3.0 | More Parts on the Table

It's easy to hear a term like Web 2.0 – and now Web 3.0, Internet of Things, and BigData – and think they're trite and meaningless. Conjured up by "thought leaders" and used by marketing folks to position companies as new, different, and on the leading edge. They can be overused and difficult to define.

But that doesn't mean that there isn't something to them. With Internet 1.0 and Web 2.0, it's easy to see in retrospect how powerful base sets of technologies were in allowing people to come up with revolutionary things.This power of base components was brought home by a recent article in the Wall Street Journal by Steven Johnson.

The article explores the genius of tinkerers and their abilities to take commodity parts and assemble them to make brilliant and resourceful inventions. A baby incubator for developing countries made from car parts, appliances, and other assorted pieces is the example he uses to open the article.

Web app developers share many of the same traits as these tinkerers, especially these days with widely available open source software, on-demand cloud computing, sophisticated language frameworks, and affordable web services.

The key reason why the terms above – Web 3.0, Internet of Things, and BigData – have real meaning is because behind them are serious technologies that have commodity aspects to them – affordable, widely available, and simple to employ.

The Genius of the Tinkerer

There is a famous moment in the story of the near-catastrophic Apollo 13 mission--wonderfully captured in the Ron Howard film--in which the mission control engineers realize they need to create an improvised carbon dioxide filter, or the astronauts will poison the lunar module atmosphere with their own exhalations before they return to Earth.

The astronauts have plenty of carbon "scrubbers" onboard, but these filters were designed for the original, damaged spacecraft and don't fit the ventilation system of the lunar module they are using as a lifeboat to return home. Mission control quickly assembles a "tiger team" of engineers to hack their way through the problem.

In the movie, Deke Slayton, head of flight crew operations, tosses a jumbled pile of gear on a conference table: hoses, canisters, stowage bags, duct tape and other assorted gadgets. He holds up the carbon scrubbers. "We gotta find a way to make this fit into a hole for this," he says, and then points to the spare parts on the table, "using nothing but that."

The space gear on the table defines the adjacent possible for the problem of building a working carbon scrubber on a lunar module. (The device they eventually concocted, dubbed the "mailbox," performed beautifully.) The canisters and nozzles are like the ammonia and methane molecules of the early Earth, or those Toyota parts heating an incubator: They are the building blocks that create--and limit--the space of possibility for a specific problem.

The trick to having good ideas is not to sit around in glorious isolation and try to think big thoughts. The trick is to get more parts on the table.

Thursday, September 30, 2010

Congrats to Plaster Networks for Winning CEPro's BEST Award!

A panel of industry experts, integrators and the editors of CE Pro and Electronic House, has awarded Plaster Networks (www.plasternetworks.com) PLN3 powerline adapters the 2010 Best Award in the home networking category. Criteria included creativity, innovation, incorporated equipment, obstacles overcome, aesthetics, and lifestyle benefits. The selection was announced last week at the custom installer conference CEDIA in Atlanta, Georgia.

Our team at Appoxy congratulates Plaster Networks for the award and wishes them many more successes!

And yes, Plaster Networks is one of our long time clients. We work on their big data in the cloud and remote management capabilities.


Monday, September 27, 2010

cloud (kloud) n.

Had a couple conversations in the last week with smart tech people about what "cloud" means. Thought it was well understood but based on these conversations, it appears not so much. In light of debate, here's a definition that bridges the different interpretations I came across.
cloud (kloud)
n.
1. Web services and applications that operate through the browser and http and are accessed through the Internet. Examples include Salesforce, Google mail and Google docs, Basecamp, and any of the thousands of other applications hosted on the Internet. Also referred to as Software-as-a-Service. Most people not arm-deep in building applications have this definition in mind when they come across the term "cloud".

2. Infrastructure for building and running applications hosted by third party services. Leading providers include Amazon Web Services and Rackspace although IBM, Microsoft, SalesForce and others are quickly rolling out cloud platforms of their own. This type of use is also referred to as Infrastructure-as-a-Service and comes in public and private variations. The base offering is access to virtual servers -- on-demand computing resources that can be accessed and provisioned in minutes. Additional services include load balancing, elastic data storage, distributed content delivery, and other infrastructure capabilities.

Friday, August 27, 2010

ReadWriteWeb - Why Cloud Equals Better Outsourcing




The following is a post that was written by Appoxy for ReadWriteWeb:

Business Week published an article recently that talked about changes in outsourcing. They got the cloud part right - massive disruptions and changes in the IT infrastructure stack both in technology and company power positions. But they got the outsourcing part wrong.

There will be big changes for large and middle-tier outsourcing companies. But the large won't necessarily get larger. In fact, the combination of cloud and modern programming frameworks makes it perfect for small developers and medium IT shops to get a leg up on the big consulting firms, putting their models - and margins - at risk.

This post explains why cloud makes for better outsourcing. More specifically, why cloud lets you keep a better eye on outsourced development, lets you more quickly correct issues that might arise, and gives you more security when taking ownership of the work.

Read more >>

Friday, August 20, 2010

Minimum Viable Product = Measure Once, Cut Many Times

Developing with RoR + AWS provides incredible agility - making it possible to quickly develop products that people can react to. This combines well with “minimum viable product” theory -- an approach which is rapidly moving from web 2.0 startups to many companies across the spectrum.
From Wikipedia:

A Minimum Viable Product has just those features (and no more) that allows the product to be deployed. The product is typically deployed to a subset of possible customers, such as early adopters that are thought to be more forgiving, more likely to give feedback, and able to grasp a product vision from an early prototype or marketing information. It is a strategy targeted at avoiding building products that customers do not want, that seeks to maximize the information learned about the customer per dollar spent. "The minimum viable product is that version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort."

The idea is not that different than the long-time approach of developing a prototype except that now the prototype becomes a production version. It may not be released widely but it’s not necessarily built to be disposable. The prototype is expressly created to test market reaction. Prototypes in the past were developed primarily to assess the technical challenges or to create a version for internal reaction only.

In this MVP process, requirements and user interface design are still important (and essential). The difference is that it’s no longer the case of working with internal team members using long documents and multi-week processes. Development now gets front-loaded more quickly into the process -- which for architects and developers is a great thing given how eager they are to roll up their sleeves.

Getting to a minimal viable product means that you have to be practical and determined in taking the vision, focusing in on a market and specific use cases, reducing what’s possible to the essential features and flows. Approaches for distilling requirements are similar to approaches for time-management. There are many often opposing ways to organize to-do lists but that’s because they map to the different ways people work.

One back-of-the-napkin approach to reducing requirements is to take a data model view and prioritize and group the entities that you’ll be tracking. You’ll find they are probably 3-4 major data elements with others nesting around these. By mapping the flows and actions between these elements you should have the primary value of the application. Add in straightforward navigation, minimal visualization and design and you’ll have a rough outline of the first agile cycle. The other data elements will accommodate additional features and capabilities and take care of edge cases. But you’ll want to get to these only if and when you find out they’re in demand.


Ruby’s object support and GEM structure makes it easy to build and extend. Rails provides a great framework for structuring applications. AWS enforces a loosely coupled but solid approach to system architecture. This means you can create and adapt applications quickly.

Which means you can measure once and then you can start developing. And then based on market data from real use, you can develop again. Without protracted periods of
measurement market research and requirement cycles. The application becomes the plan.

MVP + RoR + AWS couldn't make for a better combination. (Unless of course, there was a monkey.) **


** Great commercial and back story on the monkey. We recommend.

Wednesday, August 11, 2010

Clickstreams, footstreams, sensorstreams, tweetstreams, and otherstreams

Came across an interesting term today -- “footstream”. Used by Jeff Holden at Whrrl to describe geolocated data event that has a particular meaning or importance to it. Here’s his description from a talk he gave at Where 2.0 in 2009.

People vote with their feet. An individual person visits places that are in some way important to that person... Location-based services [can now] provide us with the ability to capture, in digital form, the places people go. And “places” does not mean just the lat/longs, the cities or zip codes or neighborhoods. ... We can capture which businesses or other points of interest individual people visit. This data set is the real-world analog of a clickstream in the Web domain; in fact, we might call it a “footstream.”
This comparison of footstreams to clickstreams is interesting and apt. The pervasiveness of capturing and analyzing clickstream data was recently explored in-depth in a recent WSJ series. To anyone in analytics, interactive advertising, ecommerce, and other consumer tech industries, the practice of capturing clickstream is not necessarily new.
What is new is the proliferation of companies getting data over the past 2-3 years. Several years ago, websites would typically have just a embed to capture clickstream data -- their analytics program. And if it was sent to the service provider, it wasn’t use beyond providing the analytics service and for internal provider needs. Now sites have upwards of 60 services included within their pages that capture clickstream data and metadata around the clickstream data. The ad widgets, recommendation widgets, and other services that appear on a pages all use the data the click to provide the appropriate response. They also store and use this data across their networks and for secondary and tertiary purposes (market research, subsequent service requests, selilng it to third parties, etc.)

When the comparison is made between footstreams to clickstreams, you can see where geolocation is going. You can see that the data being captured will be used to provide benefit now and stored and processed in the future for individual users and for benefits of third parties. You can also see the issues and magnitude in dealing with this data. Capturing and processing clickstream is not a simple matter. When servicing a number of high-traffic sites, it quickly becomes overwhelming -- such to the point its difficult to make use of it because of the amount of data and the complexity of the variables (sites, pages, and query stream parameters are just the tip).

As industries grow around the use of more and more realtime atomic streams of data -- tweets, smart meter data, sensor data -- we’re increasingly seeing patterns in dealing with this deluge of streamed data. The capture, processing, storing, analyzing, and archiving these streams takes thinking. It also horizontal scaling of both servers and data storage. And stateless approaches to web application and development. Something that developing in the cloud helps with immensely. (In a subsequent post, we’ll explore these patterns.)

Products and services built to process email, securities trading, ecommerce transactions, even user-generated video are used to these issues. But a number of industries are just beginning to see what they’re in for. The Smart Grid and Internet of Things has been getting a lot of attention recently.
But only this summer has there been much mention of data handling issues for these areas. That will change. Especially as the streams grow in amount and complexity and as the derivative uses become more apparent.

Every web application is now an event transaction processing application. It's just a matter of what type of datastream you're working with.


Tuesday, August 10, 2010

MiniFB Ruby Gem for Facebook Now Supports Facebook Graph API

Our lightweight gem for interacting with Facebook, mini_fb, has been updated for use with the new Facebook Graph API. This also includes support for the new Oauth authentication and of course you can still use the old API if you must.

If you want to get started quickly, you can check out our demo application on github at http://github.com/appoxy/mini_fb_demo.

Friday, June 25, 2010

Agility: Cloud Benefit Number One

A couple of Team Appoxy attended the GigaOm Structure 2010 conference this week. The big themes that resonated at the conference were agility, big data, and frameworks and orchestration. All things in line with Appoxy’s views but the consistent pattern throughout the two days speaks to consolidation of thinking in the space.

In discussions at different panels on why cloud, agility consistently appeared at the top of the list. Cloud company after cloud company said it was the most vocal benefit they’ve been hearing from their customers. Cost savings, scalability, and rationalization of IT processes certainly rank up there but the most disruptive element for app developers working in the cloud was the agility it gives them to rapidly build applications that benefit customers and drive revenue.


In the airline industry, Southwest gained tremendous efficiencies by using a limited number of airplane configuration (starting at first with the Boeing 737-200 and then progressing through other 737 variants). Using standard configurations allowed them to run a leaner operation and maintain higher aircraft use. (They had to order and store fewer parts, could provide more streamlined training and maintenance procedures, etc.)



Application development in the cloud has the same benefits. Developers and workgroups can make use of consistent stack recipes and server architectures and reduce the number of steps in the process. They can also reduce the number of people involved given the reduction in system administration needs. Add in the use of programming frameworks and data store abstractions and app developers can spend less time on setup, orchestration, configuration, and other system level task and more time creating great applications.

In the airline industry, cost reduction and maximizing airplane use is key. In cloud computing, simplification of development processes translates into increased speed and agility. If you’ve architected and built your application correctly* you’ll be able to scale from pilot to prototype to production without having to worry about moving pieces around or allocating resources for an undetermined need.


Having push-button build-test-deploy processes in place for cloud development (like
SimpleDeployr) gives you a 2x to 3x advantage in app building time from just a few short years ago. For iterating and improving on an app, the benefit is even greater (3x-5x) because teams are able to act more independently and deploy quickly on on-demand servers and connect easily to test datastores, and test routines. This can be for simple back-of-the-envelop work (let me spend an afternoon to try something), as part of formal build-stage-and-deploy development cycles, or anywhere in between.
At the conference, Facebook says they make interface changes at least once a day which indicates they’re running concurrent cycles as well as maintaining some amazingly flexible risk tolerant release practices. The flexibility of the cloud along with good development practices, a/b release tests, and heavy metrics analysis gives them this capability.
If the conference is an indication, you’ll be reading a lot more about agility and the cloud in the coming months. You'll be hearing it in combination with Lean Startup. And it will be talked about in combination with John Boyd's OODA loop. This disruptive aspect isn’t a secret among SaaS companies and social web companies but the dramatic scope of the benefit is still making it’s way across all technology and industry sectors. These sectors know there’s something to the cloud and they know they should be doing things in it but they don’t quite have a measure yet for how to value the cloud. It's late in the game for many that have seen their competitors and upstarts iterate many times faster than them. Hopefully it's not too late for others.

*By running and testing on multiple servers, shutting servers down and sparking them up, and, for big data applications, building a data tier that can more easily scale horizontally.

Thursday, April 29, 2010

Tuesday, April 6, 2010

Send Transcribed Voice Notes to Yourself with Note 2 Self for Android

We're pleased to announce a super handy little Android app that will allow you to take notes AND drive legally at the same time! Note 2 Self lets you record notes with your voice that are transcribed into text and sent to your email so you can review them later. No more forgetting things while on the road or when you're about to go to sleep, just fire up Note 2 Self, record your note and send it off.

This is the main screen where you can click Record to start recording.


Note 2 Self will translate the note to text and if you like it, you just click Send. That's all there is to it. 


Super simple and amazingly useful. Give it a try, it's free. Search for "note 2 self" in the Android Market.

Wednesday, March 31, 2010

TimeDroid Pro Now Available on the Android Market

We've just released TimeDroid Pro on the Android Market which sports additional features over TimeDroid free such as viewing your time entry history and editing those entries. No more going to the Freshbooks site to fix up or view your time log, it's all in the palm of your hand.

Search for TimeDroid in the Android Market to get your hands on it!

Sunday, March 21, 2010

We've added RDS to SimpleDeployr

We're excited to announce that SimpleDeployr now supports Amazon's Relational Database Service (RDS)!

Following our one-click mantra, with just a single click you can launch a new RDS instance that is ready for your migrations and data import.

If you aren't familiar with RDS, it is Amazon's MySQL cloud service that provides a fully functioning MySQL database in the cloud while taking care of a lot of the tedious tasks for you.  Wedded with SimpleDeployr, you can now get a scalable RDBMS solution up and running with a single click!

Obviously, we love the cloud, so naturally RDS is a great alternative to dealing with your own MySQL database instances.  However, don't forget, you can still build apps without a relational database!  If you're working with Rails, check out SimpleRecord, our ActiveRecord-compliant interface to SimpleDB.  We've used this strategy at Appoxy many times over and love not dealing with schemas, scaling, etc.

As always, thank you to all our loyal SimpleDeployr users, and stay tuned for some very exciting announcements soon!

Chad


Thursday, January 28, 2010

One Click Launch, Deploy and Scale with SimpleDeployr

After many months of development, we're proud to announce the launch of SimpleDeployr, the easiest way to get your applications up and running on the AWS cloud. With one-click, SimpleDeployr will launch an Amazon EC2 server, configure the server, checkout your code and add the server to a load balancer so you can get your app up and live to the world in only a few minutes. After the initial setup, it's only one more click to launch more servers, or deploy your latest code across all servers.

Remember, this is all your AWS infrastructure, so you have full control over the environment, SimpleDeployr just makes it easier than ever. Customers are already figuring out how to use SimpleDeployr in ways we hadn't even thought of. The best part? It's free for a developer account.

Here are just a few of the things you can do with SimpleDeployr:

Manage Multiple Projects

Try SimpleDeployr our for every single one of your projects! Set up an environment for testing, staging, and production! Setup an environment for each one of your developers....



Visualize your infrastructure so you can see everything that's going on

The dashboard is where the action happens. At a glance monitoring of CPU usage and server statuses.




Easily manage all your servers.


The one on the left is happily running at 16% CPU usage, the one in the middle has been terminated and the one on the right is in the launch process. Once it completes, it will be added to the load balancer and start handling traffic.





One-Click Load Balancer Creation

No need to worry about your load balancer, we'll manage the attachment of servers to the load balancer so you don't have to.



One-Click Scaling

If your usage gets up to a certain threshold, just click Launch New Server to add another server to the pool and spread the load. And if you have too many servers, you can terminate them just as easily as you can launch them.



Developers can use SimpleDeployr for free so give it a try and let us know how we can make it better. Also, there's a demo app that you can use if you just want to kick the tires.
Get a development account today, free. Also, there's a demo app that you can use if you don't have your own Rails repo yet and want to kick the tires around.

SimpleDeployr: One-Click Launch, Deploy, and Scale!


Thursday, January 21, 2010

We've Got an Exciting Announcement Coming Down the Pipe

I know we've been quiet around here for a while, but that's because we're days away from launching a new product and let me tell you, we're very excited about it! Stay tuned. 

 

Posted via web from Appoxy - We Live in the Clouds