We're Happier Together! NYC Devshop has joined the HappyFunCorp family! Learn more!

Devshop

Devshop Blog

12 results returned for "Application"

Tuesday, Nov 1st, 2016

Lauren Basil

Lauren
8 Technology Trends to Look for in 2017

1. Artificial Intelligence

Artificial intelligence and advanced machine learning are composed of technologies and processes like deep learning and neural networks. Techniques are moving beyond rule-based algorithms to create systems that understand, learn, predict, adapt and potentially operate autonomously making smart machines appear "intelligent". As encouraging as AI and machine learning sounds, many people don't realize that as AI evolves, so does its criminal potential.

2. Intelligent Apps

Intelligent applications such as virtual personal assistants (VPAs) are making everyday tasks easier. VPNs and virtual customer assistants (which promise to enhance customer service and sales) should transform the nature of work and structure of the workplace.


3. Intelligent Things

Intelligent things, such as drones, autonomous vehicles and smart appliances, permeate the environment, but we expect to see a shift from stand-alone intelligent things to a collaborative intelligent things model. Intelligent things will leverage AI and ML to interact with humans and surroundings.Smartphones, smartwatches and smartglasses will partner with intelligent things and form a Smart Ecosystem.

4. Virtual and Augmented Reality

Immersive technologies, such as virtual reality (VR) and augmented reality (AR), have captured the imagination of gamers and other consumers, but they will increasingly have business-to-business implications. We are still in the beginning stages of VR and AR and we will evolve dramatically through 2021. We will see rooms and spaces become active with things, and their connection through the mesh will appear and work in conjunction with immersive virtual worlds.

5. Digital Twin

Within three to five years, hundreds of millions of things will be represented by digital twins. A digital twin is a dynamic software model of a physical thing or system that relies on sensor data to understand its state, respond to changes, improve operations and add value. Organizations will use digital twins to proactively repair and plan for equipment service, to plan manufacturing processes, to operate factories, to predict equipment failure or increase operational efficiency, and to perform enhanced product development.

6. Blockchain Technology

Current blockchain technology hype is around the financial services industry, but a growing number of industries have joined the party. According to the Economist, a blockchain is a distributed database that maintains a continuously-growing list of records called blocks secured from tampering and revision. Each block is chained to the previous block, and the process is noted in a specially encrypted peer-to-peer network.

7. Conversational Systems

Currently the focus for conversational interfaces is focused on chatbots and microphone-enabled devices. Soon, they will move from chatbots to a broader digital mesh, which will move to an expanded range of endpoints that we will all interact with on a daily basis. These will work together to a growing extent. This will enhance ambient digital experience in the process.

8. Digital Technology Platforms

Digital technology platforms provide the basic building blocks for a digital business. There are five major focal points to enable digital capabilities and business models:



  • Information systems

  • Customer experience

  • Analytics and intelligence

  • IoT

  • Business ecosystems

Every organization will have some mix from across these five digital technology platforms. The platforms provide the basic building blocks for a digital business and are a critical enabler to become a digital business.

Tuesday, Oct 18th, 2016

Lauren Basil

Lauren
8 Reasons Snapchat Spectacles Won't Last

Snapchat is attempting to stay relevant by introducing their first piece of hardware and changing their name to Snap Inc. Obviously, the Snapchat app is still their bread and butter, but they're exploring hardware as the next endeavor to further the company's influence. I don't see this as the next stepping stone in growing their company, but only time will tell.

That Ray Ban Vision

Let's be honest, if I'm going to buy myself a pair of sunglasses for $130, I'm going to buy myself a pair of Ray-Bans that look great and won't go out of style. Not Snapchat Spectacles that only have one frame available that may or may not look good.

Kim K.

The Spectacles can only be used outside, unless of course you think you're Kim K and wear sunglasses no matter where you are. But truthfully, the fact that they are sunglasses limits use to outdoors and if I were to buy something like Spectacles (for the purpose of recording), I would want to be able to use them wherever and whenever.

Lights Out

To limit the use of the glasses even more, half of anything worth documenting outside is going to happen while it's dark out. Snapchat Spectacles won't do you any good then.

Thirty Seconds

Realistically, that's not a lot of time. Not to mention, you have to prompt the glasses to continue recording past 10 seconds if you want a longer video. The glasses are set to end after 10 seconds in correspondence with the length of a snapchat video. So what happens if you record a longer video and want to upload to Snapchat?

Blurred Lines

Who's to say how good the quality of the recordings will be? We won't know until the hardware makes it's debut and users give their feedback. My guess is that I wouldn't want to use the video many other places outside of the Snapchat app because of the quality.

Sorry Android

Using an Android limits the user friendliness. You have to be connected to wifi in order to transfer the recordings onto your phone, unlike an iPhone user who can easily transfer via bluetooth.

Need an Endorsement?

So far, the only person endorsing Spectacles is the Snap Inc. CEO, Evan Spiegel. That doesn't instill very much confidence in potential buyers because of course the CEO should LOVE the product.

Creep it real

They have the ability to classify someone as creepy. I could be wearing the glasses and be recording my friends and they might not even realize it... or frankly, they may not want to be recorded!

The Spectacles give Snap Inc. a glimpse into the world of hardware, an unknown territory for the company thus far. I can't say this will be their breakthrough product, but it's a start and they will continue to improve the hardware just like any tech company would. Everyone has to start somewhere.

Tuesday, Aug 30th, 2016

Jesse Nagelberg

Jn
A Few Words On Wordpress

In the role of a web developer who's worked on numerous projects involving Wordpress, and as someone whose friends and colleagues are seeking advice on the best web framework to choose, I often express the same opinion to them. I'm not a fan of WordPress. I believe that in several cases there are options that people overlook because WordPress is such a household name, and they assume that it's their only option.

I've been spending quite a bit of time lately wrestling around with WordPress. With an ever-growing competitive landscape in the web framework market, the options for your site are endless, making it difficult to choose the right one. As this isn't my first rodeo, I'm here to help guide you into making the right decision for you and your business.

I'm going to lay out the pros and cons of WordPress, my experience with it as a developer, and broadly cover some alternative services.

Everyone Has Heard of WordPress, But What Is It?

Built back in 2003, WordPress is currently the most popular framework with around 15,886,000 websites on the web and boasting an impressive 17 posts published every second on WordPress sites worldwide. WordPress.com gets more unique visitors than Amazon (126 million per month vs. 96 million per month) and WordPress.org powers some well known, highly trafficked sites such as CNN, Spotify, and TechCrunch.

It's important that I state that there is a big difference between WordPress.com and WordPress.org, here's a great resource on explaining this further. Simply put, the .com is the fully hosted version of the framework where there is no coding required whatsoever and you can pick from a range of themes and customize the designs yourself, much like SquareSpace which I'll mention later. You pick a theme and they handle the technical aspects for you. The .org version is the self-hosted version where you can install custom themes and plugins to get a more customized and feature rich website. In this article I'm mainly going to be talking about my experience with the .org version.

Wordpress is a Content Management System (CMS) that allows you to create, edit, and publish web content through their web interface. Out of the box, one would consider it a very useful product, offering inexhaustible numbers of themes, plugins, and options for integrations with 3rd party services such as MailChimp and contact forms. You would have everything you would need to build a basic website and the ability to create a far more advanced one if you so choose. These numerous features available to you are designed to take the whole development (i.e. coding) aspect out of your way by allowing you to create and edit content and utilize other tools on both the front end (visual aspect) and backend (data) portion of the site. An example of this could be dragging and dropping rows of text and images via tools like Visual Composer or creating, editing, and deleting blog posts that are created through your backend web interface.

Most importantly, WordPress has a huge developer community. In fact, it's an open source platform, meaning that the core code used to power the CMS is open to anybody to use and develop. Many developers can create their own themes and plugins to share and sell with the community making it an opportune choice for people to hop on the bandwagon and contribute.

This Sounds Great, But There's A Few Problems:

Despite its vast popularity and widespread use, someone simply uttering the word "WordPress" aloud stirs up several emotions and groans amongst developers and non-developers alike. WordPress is essentially the Regina George of CMS's in that it's really popular as the statistics have proven, but relies heavily on the work of the open source community, so can you really trust her? Would you reference stats from Wikipedia in a PhD thesis? You probably wouldn't, so why develop your site on the same foundation with WordPress?

Due to the nature of having this large open source community, there is a serious saturation of themes and plugins, inevitably meaning some bad apples in the group that lack in quality. "At this point in time there are over 44,000+ WordPress plugins which are downloaded more than 1.2 billion times." With these kinds of numbers it's unrealistic to be able to police the creation and sale of said tools because of the size and scale of the community. What this means for users is that they really can't feel comfortable choosing the right tool for their site, and usually have to resort to purchasing a "premium" plugin which will end up costing them extra money. Decisions... decisions... decision fatigue.

In my own recent experience working on WordPress sites for clients, I came across several speed bumps that made my development experience unpleasant. This includes, but is not limited to: broken tools, intrusive workarounds to get small customizations to work, visual bugs, and web interface bugs. WordPress is highly customizable, but has a steep learning curve and doesn't play nice when you want to make customizations.

Ultimately I feel that WordPress would be cumbersome for those that want to launch a new business quickly and without any setbacks, but may be appropriate for those with more time on their hands and who really want to gain a better understanding of CMS's and coding in general.

What About The Competition?

SquareSpace, Shopify, Weebly, Wix, Drupal, Joomla. No, I'm not just making noises with my mouth, these are some alternative services and web frameworks to WordPress.

These alternative services are similar to WordPress in a few ways, namely offering out of the box solutions for generating quick websites with a front end template and a database. These services don't require any development experience and are also customizable through their web interfaces. Take SquareSpace for example, with the main difference lying in the fact that where WordPress is an open source community, SquareSpace is not, meaning that their in-house development team produces all of it's tools specifically for it's users. SquareSpace would be a direct competitor of the .com version of WordPress.

These services both new and old are gaining traction, especially amongst millennials that want cool looking sites with minimal time and assistance required in building. In my next post I'll be talking more in depth about SquareSpace and my thoughts and experience using it.

Is A WordPress Site Right For Me?

The .com version would be the better choice if you're looking for something quick and easy that you can start building right away. I think there are so many other great services nowadays that it can't hurt to try a different one if you're looking to build a more advanced, customized site.

Thanks for reading and be sure to look for my next post taking a closer look at the pros and cons of SquareSpace.

Wednesday, Jul 20th, 2016

Lizzie Healy

Lizzie
Benefits To Building A MVP

Are you jumping in head first or biting off more than you can chew? At Devshop, we work with all levels of business, from startup to enterprise level, and everything in between. Sometimes we are tasked with building an application for an existing business, but often the application is the business. In these cases, where the platform is so heavily intertwined with the business itself, the importance of a successful, streamlined application with the cleanest functionality out of the gate becomes even more relevant.
When we are approached by businesses in the idea formulation phase of development, we find that many platforms stand to benefit from building a MVP up front. We often recommend the MVP, or minimum viable product, route because it helps in determining the practicality of an idea is at its core. Creating an initial MVP does not mean releasing an unfinished product. Your MVP should still accomplish your main goals, but save the bells and whistles for V2. Coming from a non-tech background, one of the first things I learned working at a development shop was that a website or application is never really done. It's constantly evolving, developing, and pivoting based on the needs of the user and the goals of the business. Focusing on the main functions of your application as a starting point comes with a long list of benefits.


  1. Getting To Market Sooner

    Competition is constantly present, so a business stands to benefit from any advantages possible. Being the first to market provides a leg up on the competition, gaining valuable recognition before similar apps are on the scene.

  2. Avoiding Overwhelming Users
    A major hurdle in acquiring or converting users lies in their ability to grasp the concept of an app. Beyond designing UX with the user in mind, building an initial product that is simple enough for a user to easily understand can aid in overcoming this barrier.

  3. Getting Real User Feedback Before Adding Features
    User feedback gets watered down when too many features are introduced, making it harder to draw conclusions about the core functionality of the application. Streamlining what components users are interacting with allows them to provide deeper insight into the overall concept, rather than being bogged down insignificant details.

  4. Avoids Wasted Time And Resources
    A client who approaches us with an extensive list of features for their initial product will often be met with a longer timeline and a higher estimate to build it. Whether you're a startup or an enterprise level client, no one benefits by wasting time and money. Creating an initial MVP accomplishes the ultimate goal while saving man hours and cutting down on costs.

  5. No Product Is Ever Finished
    We know you don't want to release an unfinished product to market, and neither do we. We would never recommend that. What we would advise is that no product is ever really complete, so if you are waiting until your application is finished you will never launch. Leaving room to grow once your application is in the hands of users ensures that you're are growing in the right direction.

  6. Lessens Chances For Bugs
    Have you ever opened an application that unexpectedly quit on you in the middle of an action? Frustrating. We want to avoid that. Throwing everything but the kitchen sink in means less time devoted to core functions and a greater likelihood of having bugs within the application.

  7. Makes Implementing Changes As Simply As Possible
    Venmo didn't start out seeking to be Venmo, and Uber offered a fraction of the benefits it does today. Features can always be added on, but changes can occur more quickly when you begin with a less complex product. You may be one easy pivot away from the next best thing, but going too far down a specific path with your initial product can deter any simple adjustments.

Building an MVP allows for easier analysis and adjustments, which will ultimately result in the best possible product. A MVP is a way to test a platforms business model with the least amount of complex features. While this is not a one size fits all method, considering creating an MVP initially has clear benefits that could ultimately mean the success of an application in the long run.

Wednesday, Jun 15th, 2016

Lizzie Healy

Lizzie
Time For A Redesign? The Importance of Updating Your Website

First Impressions: Make or Break
A website has between 2-4 seconds to engage with a new visitor before they navigate away from the page. 2-4 seconds for a user to determine: Is this site professional? Does it have useful information? Does it meet my needs? While the benefits of a well designed website are clear, (making your business accessible to anyone, reflecting your organization's brand, and serving as the best and most effective advertising), operating with a website that hasn't been updated recently could be driving away users and potential customers. Changes to the web occur at such a rapid rate that even a website that was created a few years back could be in need of some serious updates. If a user doesn't feel your website is interactive, functional, and informative, they won't hesitate to hop over to your competitor's page. So how can you design a website that meets the users needs and prevents those defectors?

What is "Good Design"?
There's an episode of Modern Family where Cam reorganizes his mother in law Gloria's kitchen "so it makes sense." While in the midst of cooking, Gloria asks Cam where the cutting board is, to which Cam responds, "where would you want it to be." This is the simplest description of an effective UI/UX design. Elements unfold in a simple, intuitive manner with one step leading the way naturally to the next in order to get to the desired end result. In the case of Modern Family, the cutting board goes to the left of the knives. In the case of UI/UX design, it means that a BUY NOW button shouldn't smack a user in the face if the price of the product is buried at the bottom of the page. Designs aren't about good screens, they're about good experiences for users. Modern interface focuses on the needs of the user, with trends being dictated from necessity.

UX design, or user experience design, considers how the product feels and whether there is a logical flow from step to step. When you first open the page, do you know what to do next? A good user experience requires logical steps within the application, like simple input methods, navigations, and menus. UI design, or user interface design, primarily focuses on how the product is laid out. A good UI includes things like designs that are consistent throughout the application. These components have to work together to provide an instinctive path for users to find the info they're seeking when navigating through your website.

How Do I look?
A website is often the customers first impression of your business, so it makes sense that this is where your business should look it's best. While users won't typically acknowledge a well designed website, they will always recognize a poorly designed website. In 2015, users spent an average of 2.8 hours a day on their phones. Even if your company has the most stunning website design for desktop, if your site is not optimized for mobile, you could be bleeding users. Your site needs to be optimized for a variety of different screen sizes, so that this smooth user experience can function just as logically on both mobile and web. Think of clutter on your website as the enemy of logical design. When you are designing your website to fit in the palm of your hand, having unnecessary text and useless elements is a big no no. While what constitutes good design is often up to interpretation, a few telltale signs can indicate that your website is in need of a makeover. Your website may be out of date if: It includes glossy or multicolored buttons, if white text dominates a black screen, or if an aggressive musical feature pops up as soon as a user navigate to the site (yikes). Beyond the aesthetic aspects, a few hints can indicate that your users think your website is out of date, like a high bounce rate. A bounce rate looks at the percentage of peeps who pop onto your website and just as quickly pop off, without navigating to a second page or clicking on anything. No clicks indicate that they couldn't find the information they were looking for. This could possibly be because they clicked onto your website by accident, but more likely indicates that your websites functionality is clunky, poorly structured, or filled with unnecessary features. We can glean from this click rate that the way your website communicates information is not clear and effective. Some simple changes can be made to update your website, such as including copy that is simple, on target, and effective. Some other changes require a more comprehensive update, such as making sure your website interacts with mapping and location technologies (especially important for brick and mortar businesses).

Do I really need to spend the money?
On the fence about updating your website? The cost can sometimes seem daunting, but the cost of not updating could even more detrimental to your business. When considering whether to pull the trigger on a new site design, we put together a little checklist for analysis. If you answered NO to 5 or more questions, seek immediate technical attention!


  1. Do the images on your website reflect your businesses overall message?

  2. Is your website responsive and mobile friendly?

  3. Does your site interact well with mapping and location technologies?

  4. Is your site quick, nimble, and easy to navigate?

  5. Is your website focused, providing users with easily accessible information?

  6. Does your website reinforce your businesses overall branding?

  7. If your user experience designed around the flow of a person?

  8. Is your website organized with some hierarchy to help highlight common choices?

  9. Is your websites design easy to digest, with clear, easy to read copy and no explanations needed?

  10. If your content fresh, up to date, and modern?

Tuesday, Aug 12th, 2014

Steve Weiss

Steve
Missing The User Experience

Our team was racing through a project, a goal tracking app for companies based on individual employee goals and criteria a company would be graded on. We had already gone through several iterations, created mockups, implemented those designs, and had a good amount of functionality working. This thing was looking great! But during a meeting reviewing the current progress, the tone changed.

The overall tone from those who had not interacted with the app on a daily basis was "Wait, how does this thing work?" We had glossed over a very important concept: Usability. It's quite a big concept, but an easy one to miss when your head is down and you're focused on bringing an app to production.

Viewing an app from the perspective of a user can be difficult. It requires you to not only have functionality in mind, but to also second guess all of your work. If you make a decision on where to place a button or what to label a text field, will the majority of users understand what it's trying to accomplish? What about a first time user who has never seen the product before? Try to put aside all the hours you have spent viewing these pages and go back to square one.

We realized that many things needed labeling. We needed more buttons. We needed to create a first time sign in flow. (remember the Microsoft Word Paperclip/Wizard?) These things all required more work. It's an interesting dilemma to balance. Do you have the goal of making an app as simple and user friendly as possible so it's just so intuitive that anyone could pick it up? Or do you enter the process with a first time set of instructions in mind? It depends on the functionality, your design, and the opinions of your client. It's a complicated mix!

Sometimes the best solution is showing the app to someone who hasn't worked with it before, and just see how easy it is to navigate through. There is no substitute for actual interaction. Also, drop all defenses, because no explanation or justification should be necessary. You won't be sitting next to a user while they're clicking around.

Just imagine the frustrating image of being enclosed in a soundproof cube, watching a user interact with your product. You can't say or do anything. Now, do you beam with pride at your fantastic and intuitive user experience, or do you pound on the glass of this mythical cube in frustration (not unlike Bill Murray as the Ghost of Christmas Past in the cinematic classic "Scrooged")? Just something to keep in mind.

Friday, Aug 1st, 2014

Shawn Broukhim

Shawn
To Code or Not to Code?

In a recent YouTube video produced by Code.org, President Obama, encourages young people to spend some time this week learning how to code. He remarks, "Don't just download the latest app, help design it." With these words, Obama joins the ranks of a number of other entrepreneurs and celebrities encouraging computer science to play a bigger role in our nation's education system. The idea seems to be that by learning how to write code, we will become masters over our technologies, rather than simply consumers of it.

As someone who recently learned how to build web applications in an intensive twelve-week long boot-camp, I agree that gaining computer literacy beyond basic use has changed my life. When I graduated college with a liberal arts degree, I felt frustrated by my lack of practical skills and found it difficult to secure a fulfilling job that paid the bills. Taking a bootcamp reversed my trajectory - I enjoy the variety of challenges in writing code and work at a place with people like myself.

However, the notion that coding is a new form of literacy, that we wouldn't be able to function as citizens if we don't know how to code, is a tentative one.

Having a solid background in the liberal arts has helped me to more easily grasp the ideas that drive programming, such as object orientation and behavior inheritance. So much of programming is not just math and science, but also rhetorical in nature - we are constructing systems, driven by conditional logic, being creative, visually and dynamically, and pushing the boundaries of our knowledge. In some ways, I didn't learn the true value of my liberal arts education, years of reading old books and writing essays, until I learned to code.

Steve Klabnik, a prominent coder and Ruby educator, gives a really interesting talk on Object Oriented Programming and its relationship to Philosophy. He begins by tracing a connection between classes and instances to Plato's notion of forms as abstract from real objects. The relation is helpful when designing objects and modeling behaviors - something we spend a lot of time dong while building web applications. He also identifies a direct relationship between RESTful practices and semiotics - that routes point to database entities in the same way a signifier and signified join together to form a sign. There is also a Google group about the relationship between Philosophy and Programming.

Even though coding is important, it is worthless as a skill if one learns it in a vacuum. The true merit of coding only becomes apparent if we experience it through the lens of whatever else we are interested in or passionate about. Overly stressing the importance of learning to code ignores the importance of a well-rounded and multifaceted education in developing individuals who are thinking and feeling beings. We must learn how to program, but only if it makes us better human beings.

Friday, Jul 25th, 2014

Jared Rader

Jared
A Shopping Cart For Your Web App

If you're looking to build an e-commerce web application, there is no shortage of tools you can use, from Spree to Shopify. However, it's not too difficult to build your own - which is something we were tasked with over the past week.

In this post, I'll cover creating a shopping cart that will keep track of products and their quantity and allow users to remove items.

Having read Agile Web Development with Rails 4, I decided to use that book's shopping cart implementation. I'd encourage you to go through the book, especially if you're new to Ruby on Rails, but I'll give you an outline of everything required to make a robust shopping cart for your web application.

At least four models are necessary for an e-commerce site: Products, Carts, Orders and Ordered Items (which is a join table between products and orders and products and carts).

Creating and retrieving our cart

Because setting a cart is functionality we'll need to access among different controllers, a great place to put it is inside the concerns folder provided by default in Rails 4. In here, you can create a module where you retrieve the right cart object based on the cart ID stored in the session, or you create the cart if it doesn't yet exist.

module CurrentCart

extend ActiveSupport::Concern
private
def set_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end

The astute reader may look at this and say, wait, what happens when a customer creates a cart but then abandons it? That's a great question, and there are a number of things you could do to handle this scenario. You could create a cron job that checks how old the cart is and determine an expiration date, upon which the job destroys those cart records. On the other hand, you may not want to destroy the carts, especially if you add users later on and associate carts with users. Abandoned carts will help you determine which users aren't checking out, which can be useful information.

Adding products to our cart

A good time to call our `set_cart` method would be at the moment a customer decides to add an item to their cart, or in terms of our web application's functionality, right before creating an Ordered Item record:

class OrderedItemsController < ApplicationController

include CurrentCart
before_action :set_cart, only: [:create, :update, :destroy]

def create
@cart.add_product(params)
if @cart.save
render partial: 'carts/shopping_bag', locals: { order: @cart }
else
flash[:error] = 'There was a problem adding this item to your shopping bag.'
redirect :back
end
end
end

To include the current cart functionality, all you need to do is `include CurrentCart` in the controller. Then you can use a `before_action` filter to specify which actions need to retrieve or create a cart.

You probably also noticed the `add_product` method on cart. This is a special method we create on the cart model that allows us to create initial Ordered Items records, as well as keep track of the quantity of the same product. If we simply used `@cart.ordered_items.build`, we'd be creating individual records of the same product each time.

Let's take a look at the `add_product()` method:

class Cart < ActiveRecord::Base

def add_product(product_args)
current_item = ordered_items.find_by(product_id: product_args[:product_id])
if current_item
current_item.quantity += product_args[:quantity].to_i
current_item.save
else
current_item = ordered_items.build(product_args)
end
current_item
end



This method differed a bit from the one in Agile Web Development. In our application, users could choose the quantity of items they wanted to add, rather than adding them one at a time. So a quantity parameter was always being passed to the controller action inside of `product_args`.

`add_product()` checks for the existence of the Ordered Item record in the cart. If we have the same product in our cart, it simply updates the quantity and saves the record. Otherwise, we build the relationship and return the item.

Adding and removing products

Like most e-commerce sites, we built a page where customers can look at their cart and update the quantity of items or remove them entirely. This calls for two more actions in our Ordered Items controller: update and destroy:

class OrderedItemsController < ApplicationController

include CurrentOrder
before_action :set_cart, only: [:create, :update, :destroy]
before_action :set_ordered_item, only: [:update, :destroy]

# ...

def update
@ordered_item.update(quantity: params[:quantity]) if @ordered_item
if @ordered_item.save
render json: { itemPrice: @ordered_item.quantity * @ordered_item.product.price, subtotal: @cart.total_price }
else
flash.now[:error] = 'There was a problem updating your shopping bag.'
end
end

def destroy
@ordered_item.destroy
render json: { order_total: "$%.2f" % @cart.total_price }
end

private
def set_ordered_item
@ordered_item = @cart.ordered_items.find_by(id: params[:item_id])
end
end

Now we have everything we need to keep track of items in a customer's cart.

In my next post, I'll cover how we handled check out and processing orders with ActiveMerchant and Authorize.net.

Monday, Jul 21st, 2014

Steve Weiss

Steve
Emerging From A Bootcamp

Today our developer fellow Shawn and I were interviewed for a story on developer bootcamps (particularly General Assembly) and our fellowship at DevShop. This is not the first interview I've done on the bootcamp subject, every media outlet with even a partial focus on tech has a few stories out there. Several developers here at DevShop went through General Assembly's WDI program, as well as one from DevBootcamp, and I'm sure there will be more variety down the line.

One question stuck with me - "What advice would you give to potential bootcamp students?" My answer was twofold.

1. The experience is yours, and you will have to take responsibility for everything involved.
This particularly applies when finding a job. These programs offer great opportunities to gain an entirely new set of skills, but once the program is over, it's up to you to choose the direction you want to go in. No one is going to hand you an offer upon graduation, regardless of statistics you're presented. You'll go on a lot of interviews, some will be great, some not so much.

There is definitely the occasional negative attitude towards the bootcamp process from those who went on the traditional programming path, but that's just something you have to deal with. You have 3 months experience, go out there wanting to learn more, and don't feel like you're owed anything.

2. Stand out.
You're competing with a ton of other people with the exact same experience, and that number is growing every day. With the popularity of these programs comes more graduates, which makes standing out that much more challenging.

Upon completing the web development immersive at GA and going on a boatload of developer interviews, I felt like I needed to do more to stand out. This meant looking at my previous professional experience combined with what I'd learned. I'd worked for years as a sound engineer and voice over producer, working with all sorts of clients, studios, and other engineers. This led me to look for more more client facing positions rather than exclusively developer roles, and eventually to the project manager fellowship with DevShop.

As someone choosing a new educational path post college, you probably have some professional experience you can use to make yourself stand out, even if it's just one aspect of your previous life.

No matter what anyone has to say, positive or negative, these bootcamps have changed the direction of our lives. At DevShop, we currently have 6 examples. Don't pay attention to the haters, it's definitely possible, just know that completing the bootcamp itself is only the first step in the process.