NFC Technologies

March 13th, 2013 by wadoodr

With 150 million NFC equipped phones shipped in 2012, and an expected 1b+ million phone equipped with NFC to be shipped by 2016, NFC technology is going to be the next generation solutions for interactive consumer experiences . With companies, such as Google, Samsung and (eventually) Apple, backing NFC technology with chips within their handsets giving consumers a way to use the NFC chips built into their phones, it’s becoming seemingly obvious that this technology is growing rapidly.

NFC Technologies also identified by the Razorfish leadership team as one of the top technologies for 2012 and beyond. NFC technology is about to revolutionize the access control industry to create, use and manage secure identity on NFC-enabled smartphones. NFC will change how people access digital content, connect online content with printed media, social media check-in and boost loyalty program, deliver multiple experience regardless of where you are in the landscape.  Smartphone users will  have a single device that provides physical access to their home and workplace, consume various experiences, secure access to their PCs and corporate networks and many more.

NFC Technologies presentation can be viewed or downloaded from Slideshare




windows 8 Learning & App development considerations.

November 1st, 2012 by wadoodr

Windows 8 the New OS was launched on Oct 26 2012. As you all know Razorfish Seattle office been engaged to develop metro apps for the MSFT Retail business group from October 2010 (last year). The entire app is built on total flexible architecture to adapt changing business content and design requirement.  The app is totally re-usable with some level of customization for any other businesses/clients to provide a windows store app experiences to their customer base.

The App itself is a challenging piece which  includes a mixed technology, supporting more than 34+ localization and flexible enough to support any variation of content  and design (to some extent ) for more than 100+ retailers, 5000+ stores worldwide, running 100,000+ PC to start with and  all of this are part of customization without touching the code base.

Presentation: Windows8_AppDevelopment_Presentation_RF10252012V1.0




Razorfish Technology Summit 2012!

May 30th, 2012 by rnaipaul

Our 2012 Technology Summit is just around the corner!

The event is by invite only, so please reach out to your Razorfish contact, or send a note to techsummit@razorfish.com for the details!

Here’s the agenda so far:

Thursday, June 14th

  • 7:30-8:45am ::  Breakfast
  • 9:00-9:30am  ::  Welcome/Introduction – Ray Velez, Global Chief Technology Officer
  • 9:30-10:15am  ::  Keynote – Bob Kupbens, VP of Marketing and Digital Commerce, Delta Air Lines
  • 10:15-10:30am  ::  Break
  • 10:30-11:00am  ::  OmniChannel Commerce – Paul do Forno, SVP of Multi Channel Commerce and Kristen Flanagan, Senior Product Manager, Oracle
  • 11:00-11:30am  :: The Evolution of Platforms – Drew Kurth, CEO, Fluent and Matt Comstock, VP of CIG
  • 11:30-12:00pm :: Emerging Experiences – James Ashley, Presentation Layer Architect and Jarrett Webb, Principal Developer
  • 12:00-1:00pm  ::  Lunch
  • 1:00-1:30pm  ::  Do or Die – Clark Kokich, Chairman
  • 1:30-2:00pm  ::  Developing for Responsive Design – Frederic Welterlin, Senior Presentation Layer Architect
  • 2:00-2:45pm  ::  Afternoon Keynote – John Mellor, VP Strategy and Business Development, Adobe
  • 2:45-3:00pm  ::  Break
  • 3:00-3:45pm  ::  Big Data panel – Moderated by Pradeep Ananthapadmanabhan, CTO of VivaKi’s Nerve Center
    »Michael Howard- VP, Marketing, Greenplum
    »Dwight Merriman, CEO, 10gen
    »John Coppins, SVP-Product, Kognitio
    »Charlie Robbins, CEO, Nodejitsu
    »Florent de Gantes, Product Manager, Google
  • 3:45-4:15pm  ::  Multichannel Architectures, a Practical Case Study – SpecialK Design Your Plan – Gustav Hoffman, Global Director, Application Solutions, Kellogg; and Martin Jacobs, VP of Technology
  • 4:15-4:45pm  ::  The Year Ahead in Social Technologies – Rafi Jacoby, Director, Social Technologies
  • 4:45-5:00pm  ::  Closing – Ray Velez
  • 6:00-8:00pm  ::  Cocktail Party

Friday, June 15th

(Optional workshops—please RSVP to techsummit@razorfish.com in advance.)

These workshops are designed for groups of 15-20 and will be working sessions; certain workshops require specific software and pre-reads. Please RSVP to receive more info.

  • Workshop A - Scrum for teams: A hands on cross-disciplinary deep dive for how to apply scrum on your projects. – John Ewen, VP of Delivery
  • Workshop B - Razorfish Open Digital Services and Google AppEngine for rapid app development – Stuart Thorne, Experience Director
  • Workshop C - Using Amazon Web Services for rich and automated cloud hosting – Steve Morad (Amazon), Krish Kurrupath, Group Technology Director, and Ke Xu, Senior Technical Architect
  • Workshop D - Working with Rackspace and Adobe CQ to enable and cloud host powerful CMS web experiences – Vasan Sundar, VP of Technology



Razorfish Named 2011 Adobe Global Partner of the Year

March 28th, 2012 by Raymond Velez

It’s really exciting to see Adobe bring together Omniture and CQ to help us build better experiences for our clients. We’ve been fortunate enough to work closely across our clients to help drive better experience. A big goal for us this year is to help our clients get more value out of their implementations by driving experiences that listen to what customers are telling us. Every digital interaction with a customer is an opportunity for us to learn their interests and unique asks as they interact with mobile, desktop, or any other channel experience.

The Adobe product suite is growing very rapidly, so spending time at an event like this helps us to understand the complimentary capabilities from Omniture through to CQ. Some of the highlights including

  • Adobe’s new predictive marketing technologies enabling the future of data driving digital experiences
  • Rapid integration of Adobe’s new tools from Context Optional and PhoneGap
  • The big push around data enabling all touch points from mobile and social all the way to traditional desktop



We are joining Google’s Cloud Transformation Program

October 1st, 2011 by Raymond Velez
Razorfish is super excited to join Google’s Cloud Transformation Program.  Our clients will benefit from the computing power, scalability, and security of Google’s cloud services, as well as Razorfish’s ability to deliver quickly and iteratively. As part of the Cloud Transformation Program, Razorfish will focus on helping our large enterprise customers build custom web applications and analytics tools using Google App Engine and Google Prediction API.

At Razorfish we provide our clients with cloud-based tools to create experiences that build their business. We’re proud to be a part of Google’s Cloud Transformation Program, which highlights Google partners who have expertise and a proven track record of success helping businesses make the most of their IT investments. As a member of the Cloud Transformation Program, we will train our employees on Google’s cloud services, with support from Google.

“We’re very happy to have Razorfish as part of the Cloud Transformation Program,” said Rahul Sood, Google’s Global Head of Enterprise Partnerships. “We’re excited to work with Razorfish to help enterprise customers build customized web applications and predictive analytics solutions—all hosted on Google’s cloud infrastructure. Razorfish has a great record of helping businesses make smart IT investments.”



Highlights from Razorfish’s annual tech summit!

July 21st, 2011 by Raymond Velez

Back in April, Atlanta hosted the fifth annual Razorfish technology summit. We explored how Gesture, Mobile, and the Cloud technologies are enabling a new digital reality for consumers as well as the enterprise. The concept of a cloud-enabled app store is a revolutionary new way to deliver software to the masses across devices and platforms. Enabled by high-speed mobile connections, powerful devices and increasingly low barriers to use, these technologies will change how we interact with brands, each other and the world around us. 
Here are a few videos/presentations:

Introduction: I kicked off the day with an overview of topics discussed and the pace of technological change—and how it’s influencing the way we do business

Keynote: Building an Ecosystem for Web Apps: Rahul Roy-Chowdury, Product Manager, Google (41 mins) Rahul spoke to us about an exciting innovation that Google has brought to market—the Google Chrome Web store—and the evolution of web apps, and how connectivity, offline/online storage and semantics give meaning to them.

Apps Everywhere: Mike Scafidi, Technology Director & Paul Gelb, National Mobile Lead (32 mins) From waking up and heading to the office to catching a plane and a night out, Mike and Paul take us into a future where our refrigerators talk back and facial recognition helps recognize contacts at a conference. And yes, there is an explanation for the mid-morning mobile traffic usage bump.

Case study: The Unilever Greenhouse Platform and Amazon Web Services: Norm Driskell, Director of Service Operations (45 mins) Norm shares a case study on how Razorfish created a digital marketing platform that leveraged the cloud to support, monitor and host one of the world’s largest portfolio of brands.

Marketing in the Age of Big Data: Pradeep Ananthapadmanabhan, Chief Technology Officer, VivaKi Nerve Center (26 mins) Marketers now have to contend with huge amounts of data—from websites, campaigns, mobile activity, social media, location-based, etc. Pradeep shows us one way marketers can make sense of it all.

Open Digital Services: Salim Hemdani, Group VP, Technology & Basel Salloum, Group VP, Technology (41 mins) Salim and Basel introduces the concept of Open Digital ServicesSM, a way for businesses to open up their APIs and accelerate innovation.

Case study: Mercedes-Benz Tweetrace: Ray Velez, Chief Technology Officer (5 mins) In the interest of time, we didn’t get into the technical aspects of creating the world’s first Twitter-fueled race, but here’s a great overview of the case study.

The Interface Revolution: Luke Hamilton, Associate Director of Emerging Experiences & Steve Dawson, Technology Lead, Emerging Experiences (27 mins) Luke and Steve brought their toys along to show us how gestural interfaces are changing the way marketers can interact with their customers.

Concluding Remarks: Ray Velez (2 mins) Special shoutout to @totkat, the summit’s most prolific tweeter and winner of a Motorola Xoom!

Approved presentations and videos can be downloaded from Slideshare if you’re interested. Hope to see even more of you at next year’s summit!

The summit might be over, but let’s keep the conversation going! What are your thoughts on cloud-enabled technologies, views on mobile, or predictions on gestural interfaces? Feel free to leave any thoughts in the comments section.




Using Microsoft Kinect to create new natural experiences

June 10th, 2011 by Raymond Velez

Razorfish’s Emerging Experiences team is using Microsoft Kinect to create new natural experiences. These natural experiences bring computing power to a larger and larger audience. Combined with the adoption of touch on smart phones, plus the large format, physical experiences continue to benefit from digital augmentation. We’ve been really impressed with the Kinect SDK(from Primesense), as EE Technology Director Steve Dawson mentioned it’s been better at recognizing hands than other gesture technologies. Since the hand can take so many forms it’s hard to recognize. Once you recognize the hand, people can naturally take control, kind of like a orchestra conductor. Check out the video here from the Fast Company Article.




From Threads to Coroutines

April 15th, 2011 by Benjamin Mord

Twitter’s recent move to Netty brought with it significant performance improvements, highlighting the importance of network and concurrency architecture. Netty looks like a great framework, making the most of what Java provides today – but at heart, Netty must still be based on multithreading. Mysterious problems are therefore expected. What is really needed is for the world to move past multithreading (any day now, please) which is just a terrible concurrency paradigm.

Coroutines are a better idea. You can do that in python now as of 2.5, via enhanced generators. Prior to PEP 342, the idea was first popularized among python fans via the stackless fork. This approach has proven useful for high-throughput networking, but not many other languages support this paradigm.

ECMAScript *almost* added it in version 4 – and how marvelous that would have been! The need is especially poignant in the thread-starved world of browser programming. The pushback came from concerns about interpreter complexity, but that feature isn’t as hard to add to interpreters and compilers as people think.

Imagine making an AJAX call, where the call stack of your calling function is set aside and the thread released for browser use. Once the server responds, your function resumes – and it is as though you never left! Isn’t this just the obvious way to do it? I remember one scenario recently where I needed to solicit user input in the middle of a recursive backtracking algorithm, except – oh yeah, ActionScript can’t. Of course I could and did restructure around this language deficiency (Turing completeness and all) – but shouldn’t we instead be structuring our code in whatever way maximizes algorithmic clarity?

So why not fix it? As further evidence of feasibility, Mozilla JavaScript found a way - and as predicted, this lets us do I/O in the way we should.

Now all we need to do is get ECMAScript on board. And while we’re at it, why not Java, .Net, and other thread-based langauges? Let’s stop threading, and start generating. All the event-based I/O frameworks we see popping up are fine workarounds in the interim, but let’s address the core language deficiency instead.




What infrastructure changes are required when working with Amazon Web Services?

March 7th, 2011 by Jibi Scaria

Working with cloud services like Amazon Web Services requires significant changes to the way we look at core capabilities taken for granted in traditional infrastructures. Imagine a world where you only get 5 static IPs or where load balancers are software based. Or what happens if I am using traditional software that requires technologies like Microsoft Active Directory. The following section highlights the learnings we have had in those areas.

Infrastructure and AWS:

While the AWS infrastructure allows operation teams a large amount of flexibility in terms of provisioning and managing resources, there are a few limitations of the infrastructure that teams have to be aware of and design around.

Addressing EC2 instances consistently

Almost every addressable infrastructure element (e.g. EC2 instances, elastic load balancers, RDS database end points, etc) has a dynamic IP. An EC2 instance has an internal IP / DNS and an external IP / DNS. This means that the internal name resolves to the internal IP and the external name resolves to an external IP. AWS recommends that the internal IP be used when addressing instances internally as this will ensure that traffic is routed to the instances internally rather than going out to the external network and coming back in. Both the internal and external IPs are dynamically allocated – this is done to facilitate failover and also because static IPs (especially external ones) are a very limited and scarce resource.

This also means that if the instance is terminated and re-instantiated there is no guarantee that the element will retain the same IP as before. This is especially important when using EC2 instances. Any kind of restart – stopping and restarting the instance (restarting it immediately does not cause this), instances that are brought up on another EC2 node if there is a failure on the original node, etc will cause the IP address of the instance to change. This can be a challenge especially if some other component has to address the instance or a component running on the instance e.g. the instance could be hosting an internally visible search engine or a database engine that is addressed by other components within the infrastructure by a search URL or a JDBC url that has the IP address / hostname of the host server.

NOTE : We need to verify that for a vanilla instancethe  external name resolves to external IP internally? Anyone?

One way to overcome this is to have a static IP associated to an EC2 instance. Once a server is assigned a static IP, it has been seen that the external DNS name when resolved internally, resolves to the internal IP of the server as opposed to the external IP of the server.

Assigning a static IP doesn’t mean that the EC2 instance will have a static address for the lifetime of the server, just that it will have a static address as long as the instance is up. If the instance is rebooted (either by the user or automatically on a failure), the intense will come back up with a dynamically allocated internal and external name and IP. Once the instance is back up, the static IP can be associated back to the instance. This could mean that instance startups have to be monitored and startup events scripted to achieve this automatically.

Another thing to note is that while the instance is being associated with a static IP, it will be unavailable for a small period of time while the association takes place. In our tests we have seen this time to be anywhere between 5 and 20 minutes.

An important point to note is that each AWS account is limited to only 5 static IPs that they can use. This is because static IPs are a rare commodity. If a user requires more than 5 IPs, they have to submit a case to AWS support who will then review the case for approval.

Active Directory(AD) / Domain Name Servers (DNS)

As previously noted, addressing instances / services on an EC2 instance is a challenge given the dynamic addresses of the servers. This is especially a problem when setting up something like an Active Directory within EC2. One way to mitigate the addressing of servers within your environment is to use a DNS server with a static IP address associated with it. Once a DNS server is setup within your environment, it should be easy enough for the administrator to allocate DNS names to these servers. Each EC2 instance is then configured to use the internal DNS server as the primary DNS server. In cases where these individual servers have their dynamic IP change on outages or restarts, the administrator can update the DNS records appropriately, allowing the servers / components to continue to access the services on these EC2 instances without having to be aware of the new dynamic IP.

Since the DNS server becomes key central sub-system within the architecture, it would be a good practice to have a secondary DNS server (possibly setup within another availability zone), also setup with a static IP, as a backup in case the primary DNS server goes down.

Elastic Load Balancing

Elastic Load balancers are a great resource when you want to have external traffic load-balanced to a group of servers. For maximum availability, performance and redundancy, these servers are distributed within more than one availability zone. This allows you to add or remove servers that are servicing requests during peak load and non-peak traffic hours. ELBs can also be configured with auto-scaling triggers such that server instances are added to or taken off automatically from the available pool of servers servicing user requests, when certain thresholds (e.g. CPU utilization, memory high-water marks etc.) are reached. Beneath the hoods, these ELBs are managed such that any outages in the underlying instances that service the requests at the ELB layer are handled automatically with minimal down time, to ensure that the ELB layer is available as much as possible.

An ELB is allocated an external IP and a dynamic DNS name. Unlike EC2 instances, it cannot be allocated a static IP. It should always be addressed by its dynamic DNS name as the IP can change on failover.

The one disadvantage of ELBs are that they are always externally facing i.e. one cannot setup an ELB such that it is visibly only internally. Thus they are not suitable for cases where you have a set of EC2 instances that have to send requests to a pool of internal servers. In these cases, users are forced to setup software load-balancers (like HAProxy or XXX) and manage them on their own. Users are also responsible for ensuring redundancy and avoiding single points of failure in such cases.

ELBs provide 2 layers of load handling – one at the inbound gateway layer and the other at the target server pool by the EC2 instances that the user adds to the ELB configuration. If there is a lot of inbound traffic at the ELB endpoint, AWS can handle this higher load by bringing up new ELB instances. AWS then updates/adds DNS records for these new instances and uses DNS round-robin to distribute load among these ELB instances. As long as the end-users continue to address the ELB by the dynamic DNS name, the system will leverage the additional ELB capacity and result in better performance. AWS can also increase the capacity of the internal servers that form the ELB servers e.g. use medium or large instances instead of small instances to server as ELB servers.

Root DNS:

A typical web application setup on EC2 leverages ELBs that load-balance external traffic to a pool of internal EC2 instances. As we have seen above, users should always address the ELB via its dynamic DNS name rather than its external IP address to be able to leverage the scaling that AWS may provide internally in times of load or outages. Not being able to use an IP address can become a problem, especially when you want to address an apex record for a DNS zone to an ELB.

e.g. Assume that you are using the “example.com” zone for your application. In a typical scenario, you will CNAME over the DNS records for www.example.com to DNS name of the ELB that you setup for your account.

e.g. zone : example.com

www 3600 IN CNAME my-load-balancer-888888.us-east-1.elb.amazonaws.com

But a typical use case is to have to ability to setup traffic from the domain i.e. “example.com” to be also serviced by the web-application (i.e. by www.exmaple.com), you need to have the apex record (@ record) point to the ELB. But since you don’t want to use the dynamic IP of the ELB, and since you cannot use a CNAME for a DNS apex record, you may be forced to setup a dummy server (again with appropriate redundancy for failover) that can handle requests for “example.com” and have that dummy server redirect requests made to “example.com” to “www.example.com” , thus allowing the requests to be served eventually by the ELB fronted web-application.




The NoSQL Movement

February 23rd, 2011 by Mandhir Gidda

The NOSQL movement that has recently taken on a momentum of its own, NoSQL is not an out pouring of frustration with databases, but is taken to stand for ‘Not Only’ SQL, and is seen as response to technical architectures where traditional database/data query technologies are not the ‘de facto’ approach to data storage and management.

Personally I believe that this movement began with Eric Brewers CAP theorem in 2000. Brewer was talking about trade-off decisions that need to be made in highly scalable systems. He postulated that there were three core system requirements that any distributed system had to exhibit those of Consistency, Availability, and Partition tolerance hence the ‘CAP’ of CAP theorem. However he went on to make the distinction and state that any scalable system could only be guaranteed to have any two of these attributes.

The result of this was that Werner Vogels CTO of Amazon in 2008 coined the term ‘Eventual Consistency’, i.e that Availability and Partition tolerance were the running attributes that were most important and that system inconsistencies could be resolved in time i.e that continuous consistency is not usually required. As continuous consistency is the raison d’etre of the database, this has meant that the classic role of the RDBMS has changed or at least has undergone a rethink in the context of extremely scalable distributed processing. The fact many of the Internet scale businesses (Google, Amazon, Facebook etc) have been instrumental in developing ‘open source’ NoSQL products for their own line of business applications has added to the impetus behind this movement. The very nature and price point of cloud computing and storage for our enterprises, has meant that we are able to store, process, and analyze much more of our own business data, more often than not we are able to make use of the ‘NoSQL’ tools that have been developed by these leading internet business.

Products like Hadoop/Hive originally developed by Google for doing massive data mining using the Map/Reduce pattern have evolved into Cloud based services like ‘Elastic Map Reduce’ from Amazon, and has been taken on as a top-level project by the Apache foundation, and thus available to use at the public or private cloud level by any company with the requirement to process petabytes of data.

The NoSQL movement has also had increasing adoption and impetus from those application domains where the problems to be solved do not necessarily fit snugly into the classic ‘Relational’ model. A wide range of NoSQL products has sprung up which use different logical models to represent ‘semi-structured’ data these include Map/Key-Value oriented (Voldemort, Dynomite), Column Familiy oriented (BigTable, HBase, Hypertable), Document oriented (Couch DB, MongoDB ), and Graph oriented (Neo4j, Infogrid)

At the same time traditional schema based database structures are more often considered too inflexible to accommodate changing business models. Our own experience of working with O2 on a telecoms product catalogue has lead us to consider a NoSQL solution as the natural path in the ecommerce platform evolution. The O2 business model and the types of products that it sells now include not only handsets, tariffs, and accessories but broadband, games, ringtones, consoles, financial services, content, and could progress onto many other as yet not envisioned physical and logical product offerings. We have been looking at NoSQL ‘Graph’ databases as a way of modeling products, their attributes, relationships, and eligibilities to customer segments in an attempt to develop a product catalogue that can continue to offer flexibility as the business evolves.

The case outlined is not uncommon, whereby data, and the approach to dealing with it necessitates a cloud technology landscape, one that is a departure from the intrinsic constraints of fixed datacenters and the RDBMS. Another good example of this is Razorfish’s own EDGE platform. Historically this application and its data would have made exclusive use of Enterprise level database infrastructure, hosted in a proprietary datacenter in a DR configuration. The volume of data however has been growing exponentially, as has the compute power required, necessitating an entirely new approach. This approach has been to use Amazon EMR consisting of the Apache Hadoop/Hive/HBase product sets, to both host and process the increasing data volumes. This approach makes the most use of the utility of Amazon’s cloud as well as the frameworks that others have positioned on that cloud i.e NoSQL databases.

It can be seen that patterns for managing data in modern web centric enterprises, through the use of the new application class of NoSQL on the cloud, are a better choice for anticipating change and trends (compared to RDBMS solutions) given their support for unstructured data, horizontal scalability through partitioning, and high availability support.