Google Takeout – Download your data
Create an archive with your data from Google products.
backup  google  gmail  privacy  tools 
13 days ago
Create and share beautiful images of your source code.
Start typing or drop a file into the text area to get started.

Great for generating nice looking code examples in Keynote slides. The only problem with an image is the lack of text and hence copy-and-paste capabilities of your slides.
tool  code  presentation 
20 days ago
Three flavours of iteration

- Scientific iteration is about shipping to prioritise learning. This is where the Eric Ries Lean Startup fans hang out.

- Greedy iteration is about shipping incrementally to get the value of each increment sooner. This is where the Dan Reinertsen Cost of delay kids are.

- Defensive iteration is building incrementally parts of a whole, not for the value of any increment specifically, but so you’ve defended against having an incoherent whole when an arbitrary product cycle closes. This is the domain of “potentially shippable increment” scrum types.

In short: iteration can mean a few different things, each thing has pros and cons but misalignment is all cons, so double check you’re all aligned and be kind to each other.
via:andyfowler  team  iteration  development  product_management  agile 
25 days ago
Remote Starter Kit by Hanno
Get off to a flying start as a remote team with these mighty-fine tools that are tried and tested by the Hanno team. We’ll help you to power your team’s virtual collaboration and happiness.

A good rundown of tools and processes that seemingly applies to all teams that value asynchronous communication and non-interruption, not just remote teams.
collaboration  tools  reference  remote-work  team 
25 days ago
brunnolou/react-morph: Morphing Ui transitions made simple
I was blown away by [the storybook demo][1].

I’m interested in trying it to see where it could breakdown, but at first glance it looks like a sweet API.

animation  react  is:repo  javascript  design 
25 days ago
The Push Train
This is a presentation I've given about managing the human side of continuous delivery. In my experience, the challenges of deploying dozens of times per day are mostly interpersonal rather than technical.

Similarly, check out


Some key takeaways:
The thing you should know about writing web-driving integration tests is that doing this well is at least as hard as writing a multithreaded program. And that’s a domain where human competence isn’t estimated to be high. The other problem with testing across process boundaries is that failure is a thing that can’t be entirely avoided.

So what you tend to wind up with there is a lot of tests that work most of the time. Even if you’re really good and prevent most race conditions, you’re still going to have some defects. Given enough tests, that means that one is always failed.
We realized that the whole point of tests is to gain confidence before changing things. And to the extent that there are false negatives in the tests, or the tests gum up the works, they’re doing the opposite of that.

Tests are one way to gain some confidence that a change is safe. But that’s all they are. Just one way.

Ramping up code very gradually in production is another way
via:andyfowler  development  deployment  devops  ci  team  culture  testing  is:presentation 
26 days ago
<bockquote>Build Apps, not Infrastructure
Heroku User Experience in your cloud account within minutes.
deployment  devops  cloud  google_cloud  aws  heroku  docker  cli 
27 days ago
How to Disable Caps Lock on Happy Hacking Keyboard – Takashi Yoshida's Blog
toggle Caps Lock on and off on Happy Hacking Keyboard: Press Shift + Fn + Tab.
keyboard  hhkb  happy_hacking_keyboard 
4 weeks ago
Timezones and Python | Julien Danjou
A good, simple, articulate read on dealing with timezones it datetime objects.
python  date  datetime  time  timezones 
6 weeks ago
Weather in your iOS and macOS Calendars
A cool little trick! I like having a weather forecast in my calendar.

Subscribing to Ann Arbor weather:
calendar  tips  ical  weather 
6 weeks ago
Choose Boring Technology
Slide version of the classic Dan McKinley essay
software_engineering  technology  team  via:andyfowler 
8 weeks ago
Some thoughts on security after ten years of qmail 1.0
Daniel Bernstein is the author of qmail. Bernstein created qmail because he was fed us with all of the security vulnerabilities in sendmail. Ten years after the launch of qmail 1.0, and at a time when more than a million of the Internet’s SMTP servers ran either qmail or netqmail, only four known bugs had been found in the qmail 1.0 releases, and no security issues.
bug  security  software_engineering  bestpractices  engineering 
9 weeks ago
GC Support in Rust: API Design - In Pursuit of Laziness
A pervasive GC (where every Rust object is GCd) is an explicit non-goal; if you need a GC _everywhere_ a different language may make more sense. We’re expecting `Gc<T>` to be used only where needed, much like how `Rc<T>` is today.
rust_lang  rust  gc  garbage_collection  llvm  via:dadrian 
9 weeks ago
Tiny Wins
The big benefits of little changes.
design  github  work  iteration  product_management 
9 weeks ago
Ask HN: Companies who adopted React Native over a year ago, do you regret it? | Hacker News
Some good discussion on Hacker News about adopting React Native. So good points against at, lots of terrible points against it, but mostly a strong :thumbsup: from those that have used it.
react  ReactNative  javascript  iOS  mobile  development  via:chriscain 
october 2017
flav/php-docker-sandbox: Linux (E)nginx MySQL PHP - lemp stack sandbox
A nice Docker-based _development_ environment for PHP. The intent here is to replace a vagrant box with a docker container, but still give you the ability to tinker within that environment.
docker  development  php  via:flav  vagrant  github_repo 
september 2017
iOS 11 Sucks
One of my sources at Apple recently told me the reason why things don’t seem to click the way they did in Steve Jobs’s era. It’s just a matter of scale: “We have been growing so fast so much that it is impossible to hire people that are excellent and obsessed with detail all the time.” There are so many teams and so much middle management and so much design by committee that it is impossible for them to keep the consistency they need to make not just a good OS, but the perfect OS that an obsessive Steve Jobs would have demanded back in the day.
ios  design  apple  entropy  scale  ios11 
september 2017
On the Bottom Navigation Bar – Android UI Patterns – Medium
What happens when you press the back button now?

That damn back button…

This article shows how that persistent hardware button has inconsistent behavior.
design-navigation  usability  back-button  design  android  mobile 
september 2017
The Problem with Saying “Don’t Bring Me Problems, Bring Me Solutions”
Require problem statements instead of complaints. Although you should want people to alert you to potential issues, they need to learn how to distinguish between raising a valid concern and simply complaining. Complaints are stated in absolutes, such as always and never, rather than in concrete facts. They lack accountability and often have villains (them) and heroes (us). And they often don’t look beyond the surface of the issue. For example, “Group Blue never hits their deadlines, and we’re always left holding the bag” is a complaint. It makes an absolute statement, identifies a villain, and doesn’t show any accountability on the part of the speaker.

Problem statements, on the other hand, provide objective facts, examine underlying factors and causes, and reveal everyone’s role in creating the problem, even the person presenting it. A problem statement for the same issue would be something like this: “In the past six months, Group Blue has missed deadlines four times, by an average of 6.5 days. In two cases we were also unprepared to meet the deadline. However, in the other two cases our group completed our part of the project on time, but we had to work weekends to integrate Blue’s late work so that it wouldn’t impact the customer.”

When the issue is presented in the form of a problem statement, it’s much easier to spot the pattern of repeated delays. Because the presenters acknowledge their part in the problem, you know they’re open to being part of solution, not just blaming others. This allows everyone to dig in deeper and identify the root cause of the issue. Perhaps Group Blue needs more resources or isn’t receiving the information they need to complete their work on time. Or maybe the way projects are scheduled fails to account for unexpected events.
team  hbr  business  management  leadership 
september 2017
Sketch Runner
Runner helps you to get around Sketch quicker by giving you an intuitive interface to supercharge your daily workflow. Stop searching through your menu & start running commands directly from your keyboard.
sketch  plugin  tools  design 
september 2017
nikitavoloboev/my-mac-os: 💻 a list of applications, alfred workflows and various tools that make my macOS experience even more amazing
a list of applications, alfred workflows and various tools that make my macOS experience even more amazing
mac  osx  macOS  apps  github_repo  tools 
september 2017
Offline Only
You must go offline to view this page.
Enable Airplane Mode.
inspiration  distraction  deep_work  cool 
august 2017
sstephenson/bats: Bash Automated Testing System
Writing tests in bash.

A good application is using `curl` to run integration tests on an HTTP endpoint, with the harness being these bash scripts.

Zach Holman has a good example here:

A potentially simpler set up for Nutshell's Ruby+Cucumber-based HTTP API integration test suite.
github_repo  test  testing  unittesting  bash  cli  shell 
august 2017
I’m a White Man. Hear Me Out. - The New York Times
“You must understand my experience, and you can’t understand my experience.”
august 2017
Artificial Intelligence Is Stuck. Here’s How to Move It Forward.
To get computers to think like humans, we need a new A.I. paradigm, one that places “top down” and “bottom up” knowledge on equal footing. Bottom-up knowledge is the kind of raw information we get directly from our senses, like patterns of light falling on our retina. Top-down knowledge comprises cognitive models of the world and how it works.
ai  neural_network  opinion  deep_learning  artificial_intelligence 
july 2017
Complexity and Strategy – Hacker Noon
A high-level review of the convex curve of functionality vs. cost in software:
This reflects a model where new functionality gets _harder_ to add as a system gets more functional.
It does so by showing example from Microsoft with their development of FrontPage, Word, PowerPoint, OneNote, and how they all harnessed their complexity and document-format moat to go up against Google Apps.
In Fred Brooks’ terms, this was _essential_ complexity, not _accidental_ complexity. Features interact — intentionally — and that makes the cost of implementing the `N+1` feature closer to `N` than `1`.
For those closer to code, APIs, and open-source libraries, this passage is relevant:
What I found is that advocates for new technologies tended to confuse the productivity benefits of working on a small code base (small N essential complexity due to fewer feature interactions and small N cost for features that scale with size of codebase) with the benefits of the new technology itself — efforts using a new technology inherently start small so the benefits get conflated.
complexity  simplicity  software_engineering  programming  microsoft 
july 2017
RailsConf 2017: Keynote by Justin Searls - YouTube
An incredibly quotable talk, such as:
99% of the work that I've done as a professional programmer can be boiled down as, "a business person trying to get a spreadsheet onto the internet

Introduces [a personality profile][1] for the type of programmer.

presentation  rails  railsconf  goos  testing  programming  inspiration 
july 2017
Reducers - Chris Eidhof
Building up a Redux-like pattern of reducers in Swift and iOS's `UIViewController`.

Swift's enums and structs make this really nice.
swift_lang  redux  swift  UIKit  elm  enum 
july 2017
Stop waiting for perfection and learn from your mistakes - All Things Distributed
2. Make due with incomplete information

German companies have a tradition of being thorough and perfectionist. In the digital world, however, you need to loosen those principles a bit. Technology is changing so fast; you need to be fast too. Make decisions even if the information you have is not as complete as you would like.Jeff Bezos put his finger on that when he wrote in his most recent letter to shareholders that "most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you're probably being slow. Plus, either way, you need to be good at quickly recognizing and correcting bad decisions. If you're good at course correcting, being wrong may be less costly than you think, whereas being slow is going to be expensive for sure."
decision_making  inspiration  failure  experimentation  mistakes  development  product_management 
july 2017
How To Make Use Of Weekly Design Meetings – Smashing Magazine
In a nutshell, The Design Kiosk consists of:

10 minutes for going through our current tasks and our top priorities for the company’s objectives and key results (OKR);
15 minutes for sharing the latest articles we’ve read, links we’ve found and other useful resources we’ve discovered (up to three for each member);
5 minutes for sharing a quick design tip that we learned in the past week (Photoshop, Sketch or other); for example, pressing “Alt” in a Photoshop panel displays the “Reset” button — Yipee!;
25 minutes for the main topic to be discussed (this could consist of how to adopt the latest design trends, or how to improve our presentation skills, or how to organize the style guide for our agency’s website);
5 minutes for wrapping things up, writing clear actions to be taken and deciding on the main topic for next week.
management  design  projectmanagement  team  meetings 
july 2017
The rise of the McModern
Like modern art, many seem to think they can design a “modern” house—it’s just a box made up of smaller box-like shapes, right? To look at the simplicity of Philip Johnson’s Glass House and say, “I could design that” is—though flawed—relatively understandable: To the casual observer, it is a box made of windows sandwiched between a roof and a floor. Just as Jackson Pollock’s paintings are merely “paint splatters,” modern houses are merely “boxes.”
mcmansion  modernism  architecture  midcentury_modern 
july 2017
Developer experience is the ball game · Justin Duke
there’s a difference between What approach produces the best software for users? and What is the best approach for producing software for users?
native-vs-web  mac  javascript  native  development  ReactNative  electron 
april 2017
« earlier      
aaron_swartz actormodel aeropress afnetworking alternativeto amazon analytics android andyfowler animation annarbor api apple arc architecture autolayout backup bdd bestpractices blocks book bunny business c c++ chrissalzman chrome ci clang cli clojure clothing cocoa cocoapods codeoptional coffee collaboration complexity concurrency cool coreanimation coredata coregraphics couchdb css cucumber culture data database debugger design designpattern development devops documentation dokku dropbox dsl dynamiclanguage dzombak editor education elixir email encryption engineering erlang facebook falsedichotomy focus font fonts formobject framework from:dribbble frp functional functionalprogramming futures gcd gif git github github_repo golang google goos graphql gtd guide guitar hardware hateoas health heroku home http humor hypermedia iconography icons ifttt innovation inspiration instagram interface ios ios7 ios8 ipad iphone java javascript javascriptcore jenkins jmsto json jsonapi jvm kvo layout library lisp llvm mac machine_learning management markdown material_design math memorymanagement mobile mutability mvc mvvm native-vs-web networking nsa nsfetchedresultscontroller nsmanagedobjectcontext objective-c office omnifocus onethingwell oop osx performance photography php podcast presentation privacy product_management productivity programming projectmanagement promises prototyping quote rails rails4 react reactive reactivecocoa reactiveprogramming reactjs reactnative recipe redux reference resources rest reveal-controller review rss ruby rubymotion rust rust_lang rxjava rxjs scala search security simplicity sketch smalltalk software software_engineering srp ssl startups static_analysis statictyping storyboard struct swift swift_lang swiftlang sync tdd team testing tips tool tools tshirt tutorial types typography ui uicollectionview uiimage uikit uitableview uiview uiviewcontroller ux valueobject via:androidweekly via:andyfowler via:cdzombak via:github via:henrik via:iosdevweekly via:mikelinington video web webapps wishlist writing xcode

Copy this bookmark: