background preloader

Development articles

Facebook Twitter

Introducing Microcosm: Our Data Layer For React. One of my favorite things about working in client-services is the interval with which we start new work.

Introducing Microcosm: Our Data Layer For React

As a React shop, this means we build a lot of new apps from the ground up. Along the way, we've distilled what we've learned and baked it into a tool that I, finally, want to talk about. Microcosm is our general purpose tool for keeping React apps organized. We use it to work with application state, split large projects into manageable chunks, and as the guiding star for our application architecture. In this post, I'll provide a high level overview of Microcosm and some of the features I find particularly valuable. Paul Gray's Blog. Currently, there’s no standard way of sharing and consuming learning content.

Paul Gray's Blog

Most LMS’s have a way to add a generic “Content Item” link to a course. If it’s more than just static content, there’s probably been some expensive custom integration developed in order for integration to occur. If you’re lucky enough to have a tool that supports LTI, your organization has probably gone through a complicated setup process while on the phone with someone from that company.

If you haven’t noticed, this process is far from being automated. Luckily, IMSGlobal(an organization that publishes standards) has been hard at work on CASA to address this issue. CASA stands for Community App Sharing Architecture, but it has more to do with than just apps. Sharing Apps CASA provides the means to share these URLs in a federated environment.

Technical Debt - 10x Software Development. The term "technical debt" was coined by Ward Cunningham to describe the obligation that a software organization incurs when it chooses a design or construction approach that's expedient in the short term but that increases complexity and is more costly in the long term.

Technical Debt - 10x Software Development

Ward didn't develop the metaphor in very much depth. The few other people who have discussed technical debt seem to use the metaphor mainly to communicate the concept to technical staff. I agree that it's a useful metaphor for communicating with technical staff, but I'm more interested in the metaphor's incredibly rich ability to explain a critical technical concept to non-technical project stakeholders. What is Technical Debt? Two Basic Kinds The first kind of technical debt is the kind that is incurred unintentionally. The second kind of technical debt is the kind that is incurred intentionally.

The rest of my comments focus on the kind of technical debt that's incurred for strategic reasons (Type II). Short-Term vs. Node.js End-to-End Testing with Nightwatch.js. In this article, we are going to take a look at how you can do end-to-end testing with Node.js, using Nightwatch.js, a Node.js powered end-to-end testing framework.

Node.js End-to-End Testing with Nightwatch.js

In the previous chapter of Node.js at Scale, we discussed Node.js Testing and Getting TDD Right. Essential DevOps Skills: Part I - DZone DevOps. New Automation Features in OS X Mavericks. Not content to chill and sip sodas in the sunny surf, Apple waxes its boards and delivers important updates and innovations to the automation tools in OS X Mavericks.

New Automation Features in OS X Mavericks

The new automation features in OS X Mavericks range from integration with key OS frameworks (iCloud, Notifications, Security), to important advancements in popular established technology (AppleScript Libraries, the “use” statement), to the downright cool and innovative (Speakable-Workflows). The ongoing struggle » Blog Archive » XFS, Reflinks and Deduplication. Btrfs Past This post is about XFS but it’s about features that first hit Linux in btrfs, so we need to talk about btrfs for a bit first.

The ongoing struggle » Blog Archive » XFS, Reflinks and Deduplication

For a long time now, btrfs has had a useful feature called reflinks. Basically this is exposed as cp --reflink=always and takes advantage of extents and copy-on-write in order to do a quick copy of data by merely adding another reference to the extents that the data is currently using, rather than having to read all the data and write it out again, as would be the case in other filesystems. Google blurs the line between websites and Android apps. Web Automation Test Pages. Where to Store JWTs - Cookies vs HTML5 Web Storage.

Update 5/12/2016: Building a Java application?

Where to Store JWTs - Cookies vs HTML5 Web Storage

JJWT is a Java library providing end-to-end JWT creation and verification, developed by our very own Les Hazlewood. Forever free and open-source (Apache License, Version 2.0), JJWT is simple to use and understand. It was designed with a builder-focused fluent interface hiding most of its complexity. We’d love to have you try it out, and let us know what you think! JSON Web Tokens - Service logging in JSON with Bunyan. Service logs are gold, if you can mine them.

Service logging in JSON with Bunyan

We scan them for occasional debugging. Perhaps we grep them looking for errors or warnings, or setup an occasional nagios log regex monitor. Java - Javascript workaround for drag and drop in Selenium WebDriver. User Guide — Certbot 0.10.0.dev0 documentation. Certbot Commands¶ Certbot uses a number of different “commands” (also referred to, equivalently, as “subcommands”) to request specific actions such as obtaining, renewing, or revoking certificates.

User Guide — Certbot 0.10.0.dev0 documentation

Some of the most important and most commonly-used commands will be discussed throughout this document; an exhaustive list also appears near the end of the document. The certbot script on your web server might be named letsencrypt if your system uses an older package, or certbot-auto if you used an alternate installation method. Throughout the docs, whenever you see certbot, swap in the correct name as needed. Getting certificates (and choosing plugins)¶

Introduction - Material design - Material design guidelines. GitHub - mobxjs/mobx-state-tree: WIP - Opinionated, transactional, MobX powered state container. React DnD. React DnD is a set of React higher-order components to help you build complex drag and drop interfaces while keeping your components decoupled.

React DnD

It is a perfect fit for apps like Trello and Storify, where dragging transfers data between different parts of the application, and the components change their appearance and the application state in response to the drag and drop events. Installation npm install --save react-dnd npm install --save react-dnd-html5-backend The second package instructs React DnD to use the HTML5 drag and drop API under the hood. You may choose to use a third-party backend instead, such as the touch backend. ReactData Grid - Excel-like grid component built with React. Measure. Inspect. Test. You Probably Don't Need a Message Queue - Bozho's tech blog. I’m a minimalist, and I don’t like to complicate software too early and unnecessarily. And adding components to a software system is one of the things that adds a significant amount of complexity. So let’s talk about message queues. Message Queues are systems that let you have fault-tolerant, distributed, decoupled, etc, etc. architecture.

That sounds good on paper. Message queues may fit in several use-cases in your application. But then you probably want to be able to add another consumer that does additional thing with a given message? Solving the ultimate meta-problem. As my co-founder Justin put it recently, “technology empowers small groups of passionate people with an astonishing degree of leverage to make the world a better place.” Like him, I believe that everyone should reflect carefully about whether they are using that leverage to the best possible effect, on something that matters to them deeply and that will have positive impact on the world. We’re not the only ones that feel this way. There are so many vital and exciting projects that groups of people are working on and, frankly, I wish I could work on all of them. I’d love to connect people through software, find the cure for cancer, solve global warming, make government more efficient, and build art.

Building Asana's framework: Malcolm Handley. Over the last few months, we’ve given you a look inside the day-to-day lives of Asanas including Frank from our Sales team, Yev on Customer Success, and Phips on Engineering. Today, we’re sitting down with Malcolm Handley, a member of our Framework team. Malcolm is working on building the technical framework that Asana runs on. Testville and beyond: Massive parallel testing at Asana. By now, it’s a given that virtually every company that delivers a service over the web should have a robust automated testing system. We have a recipe that’s served us well over the last few years and we thought we’d share it.

First, we have these goals for how our automated testing system operates: Prevent developers from being impacted by other developers’ broken code.Give developers as fast a response as possible on whether a commit is good or bad.If a commit is bad, provide enough information for the developer to efficiently find and fix problem.