Atlantic Business Technologies, Inc.

Category: Development

Here, you’ll find insights on programming languages, frameworks, and techniques that shape the web and software landscape. Whether you’re a developer looking to refine your skills or simply curious about how things work behind the scenes, this space offers practical knowledge and thoughtful perspectives.

  • Facebook Shutdown? Be Careful What You Wish For

    After stunning news broke that over 50 million Facebook users had their data breached and unlawfully harvested, lawmakers are calling into question the future of Facebook Advertising and irate citizens are calling for a total Facebook shutdown.

    As a private citizen, you should be outraged. As both a private citizen AND consumer of any goods or service, you should be prepared for {gulp}…higher prices and potential job losses. Let’s break it down.

    Facebook Shutdown as a Private Citizen

    No explanation needed. Just be mad.

    Facebook Shutdown as a Consumer of Goods and Services

    This is where a dose of “Careful What You Wish” will leave a bitter taste. We’ve all been there…inundated with ads everywhere we turn. Your Facebook feed. Instagram (owned by Facebook). Facebook Messenger. Video ads on video ads.  They chase you around the internet. You literally cannot escape them.

    “They’re so annoying”

    Most won’t disagree. But it’s hard not to notice that those annoying ads are pretty damn close to relating to some aspect of your life or a specific characteristic of who you are as a person.

    Facebook Ad Revenue

    The simple reality is Facebook is a marketer’s gold mine. It’s a behemoth compared to Google when it comes to targeting abilities. Facebook Advertising is drowning in user-level data. Every click you’ve made, every post you liked, every petty argument you’ve had in the comment section of some ridiculous meme…Facebook is recording every single touch point and continuously building out the most dynamic profiles of all 2 Billion of its users. And needless to say they sell that data to advertisers in the form of placing relevant ads in front you.

    But let’s dive into how the potential demise of Facebook Advertising affects you, the consumer.  Most companies operate in a Cost per Customer or Cost per Lead model in some shape or fashion.  Company A, through their own analytics and data, have established they are willing to pay X amount of dollars for a specific group of customers with identifying characteristics. Invest X amount of dollars into one targeted audience, expect to get X amount of dollars out of them.  Dumbed down, it’s the establishment of marketing contribution margins.

    Pay $.75, get a $1 in return. 25% margin.

    With Facebook Advertising, companies and their products are literally getting delivered two feet from their ideal customer (or whatever unhealthy distance you hold your phone in front of your face).  There’s no wasted marketing spend on trying to find you…Facebook does the heavy lifting.

    Now let’s imagine a world with no Facebook Advertising. A Facebook shutdown. Maybe we’re relegated back to more “traditional” advertising.  Back to more radio spots, perhaps a local TV commercial here or there, or {gasp}…newspapers. Instead of paying for exposure to a specific group of potential customers that Company A can expect to purchase, that same company will burn marketing spend on eyes and ears that they know are less likely to engage and make a purchase. In our world, we call that burning impressions. Burning money. Strike a match and just burn it.

    Facebook Shutdown?

    In the Cost Per Customer world, the $20 it previously cost a company to acquire a customer has now turned into $50/customer.   That aforementioned 25% margin? Poof.  And not only poof, Company A is now forecasted to operate in the red on paper.

    How will Company A attempt to remedy? Raise prices. Reduce expenses. And what is typically a company’s largest expense?

    Payroll.

    So while we have every reason to be outraged (and then some) over this egregious, unethical breach in the trust of our most personal data, a Facebook shutdown along with other similar social media platforms could have some very expensive repercussions for all of us.  Hyperbole? Maybe.

    Or maybe not.

  • What Does SSL Mean and Why Should You Care?

    Most of us have spent enough time online to notice some websites have “http” at the beginning of their URLs, while others use “http”. However, many people don’t understand the difference between the two. To make things simple, the S in HTTPS stands for Secure, and what we call SSL is a “Secure Sockets Layer.” The term SSL is still widely used to describe a critical aspect of web security, though you should note SSL has become insecure and has been superseded by the more secure Transport Layer Security, or TLS. This kind of cryptographic protocol is not only essential to the security of your website, but also has a major impact on your organic visibility, SEO, and website performance.

    Why Does an SSL or TLS Matter?

    SSL/TLS is the foundation for secure browsing; it protects users from sharing their sensitive personal information. A TLS Certificate is a small data file that digitally binds a cryptographic key to a website’s details. In layman’s terms, this certificate creates a secure, encrypted connection between your browser and a web server. This secure connection means the encrypted information can ONLY be opened and seen by the user and the website—preventing the connection from being hijacked or intercepted.

    So why is this secure connection so important? Say, for example, a user visits an eCommerce website and they’re asked to submit personal information like their email address, mailing address, credit card information, or bank account number. What many people don’t realize is the information the user provides is passed from computer to computer before reaching its final destination. Without a TLS certificate, that sensitive information could potentially be acquired by any of the computers that it passes through. The TLS safeguards that personal information so it can only be seen at the final web server that the user sends information to.

    This process makes TLS vitally important to the security of your websites and users. Not only does TLS protect user information by encrypting the connection, it also verifies you are actually connected to the right server (rather than a server that intercepted your traffic). In case the security of your entire website wasn’t enough, SSL/TLS also has a significant effect on your SEO ranking.

    How Does an SSL or TLS Affect SEO Rankings?

    Google and the other major search engines have coined a term called “trust factors” or “trust seals” that signify a website’s identity is authentic, the site is legitimate, and the site is not susceptible to data breaches. These “trust factors” can include badges from the Better Business Bureau, detailed privacy policies, and most importantly, SSL/TLS certificates. Sites that utilize these trust factors are more likely to receive higher quality scores and hence, better SEO rankings.

    During the summer of 2014, Google explicitly stated websites would receive a ranking boost if they featured a TLS certificate. In addition, they provided the following “best practices” for getting started with TLS:

    • Decide the kind of certificate you need: single, multi-domain, or wildcard certificate.
    • Use 2048-bit key certificates.
    • Use relative URLs for resources that reside on the same secure domain.
    • Use protocol relative URLs for all other domains.
    • Check out Google’s Site move article for more guidelines on how to change your website’s address.
    • Allow indexing of your pages by search engines where possible. Avoid the noindex robots meta tag.

    While the amount of ranking boost provided by implementing TLS is still unclear, we do know that Google can severely penalize unencrypted sites.  And in January of 2017, Google announced any Chrome browser users would be warned before entering unencrypted websites. Since Chrome is the primary browser for over 55% of web traffic, this is something that should not be taken lightly.

    If you fail to include SSL/TLS on your site, not only can your site be demoted in search engine rankings, your users are less likely to make purchases or interact with your webpages. According to SSL.com, implementing SSL/TLS securely can lead to dramatic improvement in a website’s conversion rate. And in contrast, lacking SSL/TLS protection can have negative effects on conversion rate.

    Integrate TLS on Your Sites Immediately

    In conclusion, SSL/TLS certificates are vital to any website, but especially important to the performance of online stores or eCommerce sites. Without encrypting your website, you are leaving yourself susceptible to malicious attackers, data breaches, and lost customers. Unencrypted websites are much less likely to rank well in search engines, and even less likely convert users into customers.

    If you’re concerned about the security or performance of your website, contact ABT’s cybersecurity department, or continue reading the ten critical elements of a successful retail e-commerce website.

  • Introduction to React for Javascript

    What Is React?

    Put simply, React is a javascript library for building user interfaces. Designed by Jordan Walke and Denis Popov (two software engineers at Facebook), React was built for creating large-scale applications that store and modify data without reloading pages. Influenced by Angular and other front-end libraries, React aims to provide speed, simplicity, and scalability with the use of its notable features. In this post, I’m going to walk you through React’s capabilities and explain why it’s my favorite library.

    React and Components

    When dealing with React, forget what you know about MVC frameworks and the “Separation of Concerns” methodology. React is a paradigm shift for those who have worked with MVC frameworks in the past, as there are no models, view or controllers—there are only components.

    React can be thought of as a “Separation of Components” methodology. Using the single responsibility principle, the UI should be broken up into a component hierarchy that encapsulates the behavior you need. Ideally, each component should perform a single task that will be used in conjunction to create our application. The advantages of a component-based application are vast: components are composable, reusable, maintainable, testable, and can be conditionally-rendered based on the state of the application.

    Here’s how to use ES6 to define a component:

    class Welcome extends React.Component {

     render() {

       return <h1>Hello, {this.props.name}</h1>;

     }

    }

    Here’s how to render a user-defined component:

    const element = <Welcome name=“Brian" />;

    ReactDOM.render(

     element,

     document.getElementById('app')

    );

    Props in React

    Properties (or props) are a set of immutable values that are passed to a component’s render method. Props are a way of passing data from a parent component to a child component. This is a channel in which components can communicate with each other, always from the top to the bottom.

    This uni-directional flow is advantageous for many reasons and uses React to its greatest potential. Any and all declared components must never modify props as they are read-only and immutable values. Components in React must act as pure functions with respect to their props. Consider the following:

    This is a pure function because it does not attempt to change its inputs:

    function sum(a, b) {

     return a + b;

    }

    This is an impure function because it changes its own input:

    function withdraw(account, amount) {

     account.total -= amount;

    }

    To make our UI interactive and dynamic, we will need more than just being able to pass around immutable properties. We will need to trigger changes to our underlying data model with the use of state, covered in the next section.

    State and Unidirectional Data Flow

    State allows React to update its outputs in response to user actions and network responses without modifying props within a function. The key thing to remember with this mechanism is “properties flow down, actions flow up.” One of the most challenging parts for newcomers is identifying where your state should live. Before we identify which component will hold state, we must remember that react applications have a unidirectional data flow. This means that a common parent should manage state in a multi-component application and pass the resulting values down to all of its children.

    This methodology is advantageous because we now have a single source of truth. There are a few simple steps we can follow to identify where state should live within your multi-component application.  

    1. Identify every component that renders something based on state.
    2. Find a common parent component.
    3. Either the common parent or another component higher up should own state.
    4. If all else fails, create a component simply for holding state and add it above the common parent component.

    Once an action is performed on a lower level component and flows up to its parent, a new object is created and passed down to its children. React’s virtual DOM will compute the resulting differences and then update the browser’s DOM efficiently.

    Virtual DOM

    React’s Virtual DOM is a more efficient way to update the UI than updating the browser’s DOM directly. This is one of the most notable features of React because of the abundance of benefits it provides to our application.

    The idea behind React’s Virtual DOM is to minimize and batch DOM updates that require redrawing the web page. Updating the browser’s DOM is fast, but the layout changes the browsers must render can happen very slowly. Every time the DOM is changed, browsers need to recalculate CSS and repaint the web page. The best thing any browser can do to shorten the time to repaint the screen is to minimize and batch the DOM changes—which is exactly what React’s virtual DOM does.

    How does React’s virtual DOM work? It’s essentially the same thing as the browser’s DOM, a hierarchy of nodes that contain elements and their attributes along with content as object and properties. The virtual DOM’s node tree is created by our components’ render methods and is updated in response to actions updating our data model. Whenever our data model is changed, there is a three-step process to update our browser’s DOM.

    1. The entire UI is re-rendered in a Virtual DOM representation.
    2. React will calculate the difference between the previous state of the virtual DOM and the new one.
    3. The browser’s DOM will then be updated with the computed difference, essentially applying a patch.

    React’s virtual DOM provides an elegant and simple way to asynchronously update our browser’s DOM, which can free up mental capacity and help optimize our user interface by applying minimal updates to the browser’s DOM.

    React: The New Industry Standard

    React, in my personal opinion, is the premiere javascript library for creating user interfaces. React’s stateful and reusable components combined with its virtual DOM’s ability to create highly scalable, high performing, and interactive applications make React the most desirable library in our industry today. React also outperforms its nearest competitor, Angular, which promotes two-way data binding rather than react’s single source of truth, one way data binding, and uni-directional data flow.  

    In addition, React’s virtual DOM takes abstraction to another level by minimizing and applying asynchronous patch updates to our browser’s DOM fast and flawlessly. React’s virtual DOM is also superior because we can render that DOM on the server for server-side rendering which other competing javascript libraries do not offer. All of these features are just high-level concepts of React, but are the reasons why it is my personal favorite library and the new industry standard way of creating your next application.

    If you have any questions about React or javascript frameworks, feel free to reach out using ABT’s Contact Us page.

  • ABT Launches Quick Start Program for Cost-Effective Insight

    Data-driven insight. This phrase shows up so often in B2B content marketing that it’s nearly a clichĂŠ. The phrase inspire images of a massive enterprise having an army of analysts dig into huge masses of data and then present 90-slide powerpoint presentations about the state of the market. In short, data-driven insight seems complex, expensive, and time-consuming. 

    ABT aims to change that. Our new Quick Start programs make deep data-driven insight available to organizations of all sizes. From workshops to detailed reports, these 3-week programs give all our clients trustworthy and cost-effective digital insight at the right price for any company.

    “We designed our Quick Start program to adopt our in-depth discovery process—which we’ve used for large clients like NC.gov, Campbell University, and Global Knowledge—into a condensed and quick-to-execute format. It’s exciting to take our love of data analysis and make it more time- and cost-effective for all our clients.”
    Eileen Allen, ABT Chief Marketing Officer

    Here are previews of our first four Quick Start programs. Click each link for more information about how to begin.

    The First Four ABT Quick Start Programs

    Lean Website Discovery – Rapid insight to kickstart any digital project

    Our Lean Discovery program delivers data-driven answers to strategic technology questions questions. Our experts will deliver quick, cohesive analysis and documentation of the challenges and possibilities you face with any new website project. This helps prevent costly mistakes in implementation and sets up your site to be more successful and reliable over the long term.

    Application Portfolio Diagnostic – Deep report into your utilization of key business apps

    Our Application Portfolio Diagnostic helps you assess the health of your organization’s application portfolio. Using this structured, objective mechanism for collecting user feedback about your application suite, we analyze the effectiveness, criticality, and utilization of each application in your business.

    Digital Marketing Audit – Fast-action plan to analyze, execute, and evaluate digital campaigns

    Our Digital Marketing Audit reveals ways to improve your tactics, reduce waste, and increase your return on investment for customer outreach. Our proprietary, multidisciplinary approach examines your marketing program from the ground up—providing a 180-day action plan to improve your bottom line.

    eCommerce Launch on Shopify – Start your online store on an easy-to-manage platform

    Our eCommerce Launch on Shopify is a streamlined process that gets online stores set up and ready to sell on an easy-to-manage platform. In addition to launching your online store, this program offers a long-term analytics and marketing plan to maximize conversions over time.

    To keep in touch with our ongoing updates to the Quick Start program and other news from ABT, follow us on Twitter or sign up for our newsletter.

  • The CIO Evolution in 2017

    Whether technology is your company’s core business or not, your customers have made tech  front and center. Your customers are empowered with tech and they are taking their expectations from one place to the next. Thanks to innovators like Amazon, we can order detergent at the push of a button and command a pizza delivery from our personal concierge bot. Customers who are accustomed to these conveniences do not have patience for disconnected companies. If you want your company to compete, you need to become technology-centered—and there’s no more important role for this than your CIO.

    Bridging the Tech Gap

    There used to be a separation between the CIO, the business, and the customer. Today, the accessibility of sophisticated research tools coupled with the exponential expansion of data that consumers have access to has bridged that gap. Customers now have enough intel to fill the Library of Congress 100 times over at their fingertips. They are even building their own tech stacks. A tech stack used to only refer to the arsenal of databases, programming languages and frameworks that companies use to build their applications. Nowadays, any organization related to Marketing, Sales, Support Services, or Customer Engagement will have its own specialized tech stack. Extend that even further, to list the myriad of personal productivity, messaging, entertainment, and information sharing technologies that your customers have to choose from, and voila, the consumer tech stack is born.

    As a result, the CIO can no longer operate from the inside out — they must meet and interact with their customers in their world. The CIO is now challenged with moving faster to keep up with the broader business because speed is the deciding factor in the new customer success operating model.

    Moving at Your Customer’s Speed

    Why is speed uniquely important to the CIO? There’s no other role in the organization that has operational engagement across multiple levels. The CIO role used to just focus on IT strategy, an area that touches every organization and department. Meeting the company’s objectives and goals for the CIO meant building and maintaining a robust infrastructure of internal IT systems. But this is no longer enough. The technology that customers use to interact with companies changes regularly, and a company’s internal technology must be able to adapt to those changes if they are to stay in touch with their customers.

    While the demand for progressive pioneers runs throughout the business operational ladder, the customer-focused outlook is new to the CIO, who has traditionally been removed from the outfacing spotlight. For example, millennials now have tremendous buying power and can injure a company’s P&L if organizational leaders don’t prioritize an understanding of their emotions and motivations (which are now far more complex and span multiple touch points). Customer experience and customer engagement are now tied to all areas of the organization from initial contact, to billing, to order fulfillment, to call center support, and shipping.

    Becoming a Chief Digital Officer

    So how does the CIO influence these touchpoints? By taking a strategic look at what their industry is doing and delivering in a way that continuously adds to the customer experience. This lets the CIO guide initiatives that leverage technology to transform their organization into a well-oiled, customer-obsessed machine. These new initiatives can no longer be planned once on an annual basis. They have to be built, experienced, learned, and tested. To lead the charge, the CIO needs to think like a digital disruptor. In a sense, the CIO’s new title is Chief Digital Officer.

    CIOs need to build a new customer-focused vision and evolve their organizations to a more agile and customer-obsessed operating model. The decisions made at the speed of the customer must be linked to outcomes by measuring and analyzing customer data. Customers might have buying and investing cycles that don’t fit into the fiscal calendar box. Refine what the journey towards customer obsession looks like for your organization and make an honest assessment of where you are today. On the practical side, find the internal organizations that you can partner with to gain quick wins, while you’re getting the strategic layers in place. For example, your marketing department may be open to sharing the results of a new data visualization tool with the product management team that is responsible for new releases. Leverage the technology to build stronger customer loyalty systems and you’ll pave the way for a shift that will direct your company’s future towards the downstream current of the new digital movement.

    What are your thoughts on the CIO’s role? Has it been evolving and will the trend continue? Let me know in the comments section below.

  • Interview: The Essential Relationship of the AE and PM

    Behind every great marketing strategy or successful deployment, there is a vital relationship that doesn’t get much press—the teamwork of the account executive and the project manager. To get an in-depth look at how this relationship works at Atlantic BT, Senior Writer/Content Strategist Allan Maule sat down with AE Townsley Minton and PM Andrea Osborn.

    As a project manager or account exec, how would you describe what you do at your job? What are your usual goals?

    Andrea (PM): I’m responsible for overall delivery and execution of a project. AEs like Townsley do the project estimate and sell the work, and PMs like me set up the schedule, the deliverables, the workflow, and create the tasks in Mavenlink (our project planning software) using 2 week sprints. On a daily basis, I’m checking the budget, the deliverables, and how well we’re doing at finishing things based on the schedule we created. I also look at how to adjust to ensure that our project gets finished at the level of quality and timing we agreed on.

    Townsley (AE): As an AE, I own the relationship with the client. My #1 priority is that we hear their needs and are meeting them. I want to keep clients happy, but I also need to ensure my team at ABT is happy and able to do their job well. Clients can also come to me to vent about any issues they have with the project and with ABT.

    Andrea (PM): That works the other way too. As a PM, if I feel stuck with the client, the AE is here to help. She works to ensure communication is clear and smooth throughout the process.

    Townsley (AE): YES. Communication is a key part of what I do. That means managing expectations on the client end so they know what to expect and are happy with the work. It also means communicating with the PM so they can understand the client’s fears, goals, deadlines, and other extenuating circumstances.

    What are some of the most common hurdles or issues you run into at your job?

    Townsley (AE): It’s not always easy to get a client to see the big picture of everything we are trying to accomplish with their projects and all the possibilities of what technology can do for them. They might be hesitant about the first estimate we give them, so I help them understand how the money they spend with ABT will deliver value at each stage in the process.

    Andrea (PM): The AEs’ understanding of the client and project set the tone for the entire project. So there’s a lot riding on them getting everything the client wants and aligning it with the reality of what our team can accomplish. I don’t see this problem often with our team at ABT, but hurdles happen when client expectations don’t align with the reality of the project. When they expect something that’s not what they’re getting…

    Townsley (AE): …or that we can’t deliver in the timeline they require, it’s a major issue. And that’s a challenge to communicate and handle. I don’t worry about our AEs getting off-the-rails, but it’s important that we have our best communicators be the point people with the clients. Ultimately, miscommunication is the main hurdle an AE can face. We want to do as much as we can with the smallest budget possible, so how do you balance that to set your team up for success and make the client happy? A big part of the answer is recognizing personality conflicts and having a plan to deal with them before they become a problem.

    What tensions do you see with personalities on the ABT end and on the client end?

    Andrea (PM): Here’s a classic one: The architect provides the estimate, then the developer who actually has to do the work protests that he/she needs more time. Again, this is typically caused by miscommunication. Either the architect didn’t realize the full effort or the developer is misunderstanding what’s required. As the PM, it’s my job to make sure this red flag is raised early so we can address immediately.

    Townsley (AE): On the client-facing end, sometimes you have highly technical people try to explain things to clients who don’t have the technical background to keep up with the explanation. This is frustrating to our techs (because they aren’t being understood) and overwhelming to our clients. My favorite solution is to work with my PM to translate technical needs with non technical people.

    Andrea (PM): In turn, I usually ask my technical colleagues to show me what they’re talking about rather than just relying on words. People are different, so they explain themselves in different ways.

    Townsley (AE): In the same way, no two clients are identical. So it’s really important to approach each client with a fresh slate, listening actively to their ideas and concerns to get a good look at what they need. This is also why it’s great to keep the same clients over the long term so you don’t have to start from scratch each time.

    3) How do you work together with project managers/account execs to handle these tensions?

    Townsley (AE): I try to work with PMs to understand client’s personalities, such as “They don’t like this wording, they prefer this form of communication and not that form,” etc. I step in when there are delays, budget issues, etc. so the PM doesn’t feel like they’re alone in delivering hard news about the project’s progress. So my relationship with the client is key.

    Andrea (PM): When dealing with tensions on a project, my relationship with the AE is vital. We can’t survive without each other. And Townsley’s a great communicator. One client of ours has multiple contacts in their organization whom I work with, and having Townsley to help me work with these contacts’ boss is invaluable.

    Townsley (AE): We’re each other’s cheerleader. When I have a difficult call with a client, I can go directly to Andrea and get her encouragement when I’m heading into a tough situation. When I was on maternity leave, I had other AEs to handle client relationships but the PMs were crucial to helping my substitute AE handle these clients effectively. I never would have been able to have the smooth transition to and from maternity leave without the help of my PM.

    What advice would you offer PMs or AEs to help them get the AE/PM relationship right?

    Andrea (PM): Make sure you HAVE a relationship with them beyond just work. If you’re invested in them as a whole person, you’ll actually care about their success and be able to work with them well.

    Townsley (AE): You’ve got to be a team player. If you’re here to make yourself look good, you are going to end up hurting yourself. Bond, dammit! You’ve got to actually care if you want the other person to care about you. That provides a level of trust that makes your job work.

    What advice would you offer companies like ABT to help them get the AE/PM relationship right on a structural level?

    Townsley (AE): Organizationally, companies want to firmly define roles. But you have to understand that each team will want to manage their projects differently. So you’ve gotta leave room for the gray areas.

    Andrea (PM): Don’t let your PMs and AEs work in silos. Make sure there’s crossover. An example: If the AE doesn’t work with the PM on estimates, you’ll run into trouble if the client needs extra feedback or more rounds to define something. The PM or AE’s knowledge of the client is crucial.

    Townsley (AE): The AE doesn’t just sell it and be done. I keep in touch the whole time to celebrate wins with the team and the client as they happen. I want to help the client happy, so I keep my finger on the pulse of the project. This doesn’t mean I project manage the project by directing the production team or making choices on how the deliverable should go; it means I stay in touch and make sure the client is being well-represented and find any red flags early so we can communicate about them as soon as possible. Even if it’s just listening, I can hear what the client is reacting to and be ready for it.

    Andrea (PM): I wouldn’t want to do what Townsley does. That professional respect for roles and gratitude for what she does helps us work better together by knowing who is going to handle what.

    Townsley (AE): We can sub in for each other on individual tasks, but I’d never want to handle her day-to-day over the long term. We can hold each other accountable in a constructive way.