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: https://zachholman.com/posts/integration-tests

A potentially simpler set up for Nutshell's Ruby+Cucumber-based HTTP API integration test suite.
github_repo  test  testing  unittesting  bash  cli  shell 
2 days ago
I’m a White Man. Hear Me Out. - The New York Times
“You must understand my experience, and you can’t understand my experience.”
8 days ago
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 
24 days ago
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 
4 weeks ago
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.

[1]: https://docs.google.com/forms/d/e/1FAIpQLSfHlw_qQLPcZTE4_oSlSxdivJQEJQ30jL7E8FFusUdqqHUbEw/viewform
presentation  rails  railsconf  goos  testing  programming  inspiration 
5 weeks ago
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 
6 weeks ago
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 
7 weeks ago
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 
7 weeks ago
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 
7 weeks ago
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
IBM's Carbon Design System
A component atomic design system and toolkit from IBM
design  sketch  ibm  design_system  atomic_design 
april 2017
The Unnecessary Fragmentation of Design Jobs
We skip most of the formal process stuff, and our Designers do everything: writing, visuals, code, project management, whatever it takes.

We’re living proof that this approach works well. We support hundreds of thousands of customers, plus multiple platforms and products, with a design team of 10 people.

We pull that off specifically because we don’t assign one designer to UX, and another to UI, and another to writing, and another to code.

Think this sounds too hard? Like there’s no way you could possibly be good at all of that?

Take a step back for a second. We’re only talking about making software.

Yes it’s hard…but in the grand scheme of things it’s not THAT hard.
design  team  product_management 
march 2017
in which four pieces are placed in a row
Lovely little write up and building a connect 4 app with your kids. Makes me look forward to those days :-)
emacs  games  lua  programming  kids 
february 2017
jasonrudolph/keyboard: Toward a more useful keyboard
A set of Karabiner-Elements + Hammerspoon configurations to set up my desired keyboard on macOS Sierra.
macos  osx  sierra  keyboard  github_repo 
january 2017
minimaxir/big-list-of-naughty-strings
The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
github  github_repo  testing  tools 
january 2017
The Semantic Versioning Anti-Pattern
My preference is just to use something that intentionally does not look like a semantic version—this is the important step—as it helps to signal that you are simplifying the version message. I have found a simple way to do this with CD looks like:

```
YYMM.xxxx
```

Where you have a two digit year, a two digit month, followed by a zero padded incremented build number, reset as the date stamp changes. Ideally, you would not do more than 10k builds in a given month. With this you can know what build you are on, and you can also easily support continuous delivery systems. A few examples of what this might look like:
library  software_engineering  semantic_versioning  software  api  versioning 
january 2017
A crazy, better kind of roadmap – Basecamp
It's hard to have a consensus about the state of the product because we all track different issues and different feature ideas in different places and different ways. We solved this issue when we do feature development by making a map of the scopes and tracking them in lists. Is there a way we could have a kind of "canonical reference" that is an overview of the whole product as we see it right now, with pain points and opportunities called out?

A crazy idea came to mind that I had to spike. I imagined the whole product projected onto a map, with pins stuck in the areas where we need to fix something or want to change something.
roadmap  product_management  development 
december 2016
10 Things that Immediately Happen when Real Leadership Shows Up – The Mission
An obsessive focus on the nuts and bolts (the fundamentals) creates an expectation of ensuing success

It’s all about the fundamentals. The better you get at the basics, the more confident you will be.

You don’t have to worry about the outcome when you master the nuts and bolts. Success takes care of itself. You just do work that’s so good it can’t be ignored. You focus on becoming a true professional in every sense of the word.
december 2016
Multitouch is a Red Herring
After all this time, after all this waiting and lying to myself, I think multi-touch has been a big red herring. I’ve always looked at it and seen potential, like, this is the year of the multitouch desktop but it’s never materialized.
productivity  multitasking  computing  ios  multitouch 
december 2016
Management theory is becoming a compendium of dead ideas
The theorists’ third ruling idea is that business is getting faster. There is some truth in this. Internet firms can acquire hundreds of millions of customers in a few years. But in some ways this is less impressive than earlier roll-outs: well over half of American households had motor cars just two decades after Henry Ford introduced the first moving assembly line in 1913. And in many respects business is slowing down. Firms often waste months or years checking decisions with various departments (audit, legal, compliance, privacy and so on) or dealing with governments’ ever-expanding bureaucracies. The internet takes away with one hand what it gives with the other. Now that it is so easy to acquire information and consult with everybody (including suppliers and customers), organisations frequently dither endlessly.
management  productivity  business  theory 
december 2016
Optimistic UI
Optimistic UIs can make your app more fluent, straightforward and enjoyable for a user.
design  ux  errors  via:cdzombak 
december 2016
Etsy CTO Q&A: We Need Software Engineers, Not Developers
Those people over at Etsy seem to have a good head on their collective shoulders:
[A]re you abstracting away so that you truly can say “I don’t have to worry about this”? Or are you abstracting away because you’re aware of those guts, but want to focus your attention right now in this area. That is what we’re looking for.

Post-mortem debriefings every day are littered with the artifacts of people insisting, the second before an outage, that “I don’t have to care about that.”

If “abstracting away” is nothing for you but a euphemism for “Not my job,” “I don’t care about that,” or “I’m not interested in that,” I think Etsy might not be the place for you. Because when things break, when things don’t behave the way they’re expected to, you can’t hold up your arms and say “Not my problem.” That’s what I could call “covering your ass” engineering, and it may work at other companies, but it doesn’t work here.

And the ironic part is that we find, in reality, engineers are more than willing to want to know. I’ve never heard an engineer not wanting to know more about networking. I’ve never heard an engineer wanting to say “You know what, I don’t want to care about database schema design.” And so if the reality is that people do care, then it’s kind of a waste of time to pretend that we’re abstracting away. Because you’re going to not care up until the absolute second you do, and when you do, that’s all you want to care about

Abstraction not as a means to mask complexity and shift responsibility, but to help empower you on your current problem without total naïveté. It's not an escape hatch, but a compartmentalizing tool.
software_engineering  bestpractices  abstraction  team  etsy  development  management 
december 2016
JavaScript Glossary for 2017 - Artsy Engineering
Good overview of concepts and terms. Also, glad to see an iOS dev thought leader shop (Artsy) doubling down on React Native.
ReactNative  ios  javascript  react 
december 2016
GitHub - pubkey/rxdb
Reactive Offline-first Database with Sync, Schema, Mongo-Query, Encryption, LevelDown

Nice RxJS interface, JSON-Schema for defining your data, PouchDB interface for syncing (CouchDB on the server), React Native compatible.

So much good buzzword soup.
reactiveprogramming  offline  database  rxjs  couchdb  react  pouchdb 
december 2016
Nobel prize winner Holmström basically says sales bonuses suck
Bonuses create an incentive to close deals that might not even have the most rudimentary preconditions for success. Bonuses create an incentive to focus on closing the next deal instead of following up on the delivery of the previous one. Bonuses create a reason for sales to blame delivery and delivery to blame sales.
business  team  sales  compensation 
december 2016
Avoiding Accidental Complexity When Structuring Your App State
I particularly liked the point of keeping view-related list ordering in a separate array, and how that plays well with React Native's ListView component.
redux  state  reactjs  ReactNative  javascript  via:reactnativenewsletter 
november 2016
A Review of the Fujifilm XF 35mm f/2 Lens
I shot modt of the twins' first photos with this lens. Especially given its price point, I was blown away.
photography  fuji  fujifilm  lens 
november 2016
Future Imperfect
The future is looking less and less like Star Trek and more like that woman in Black Mirror, thumb in the wind, begging for a ride.
october 2016
The data we leave behind
If post-death memories is the “product” and the family and close friends the “users” then I’m sorry to say but the accessibility of that is close to zero.

We’re slowly giving everything to the cloud. Uploading ourself piece by piece but where is our backup of those digital memories we have?

Something we could auto-deliver once our brain stop functioning, for our loved ones to have another way to mourn and maybe finally erase the steps we left in the snow. If we could just run a simple command line…

$ chmod 777 @samuelzeller
memories  death  backup  data 
october 2016
How the Web Became Unreadable
When you build a site and ignore what happens afterwards — when the values entered in code are translated into brightness and contrast depending on the settings of a physical screen — you’re avoiding the experience that you create. And when you design in perfect settings, with big, contrast-rich monitors, you blind yourself to users. To arbitrarily throw away contrast based on a fashion that “looks good on my perfect screen in my perfectly lit office” is abdicating designers’ responsibilities to the very people for whom they are designing.

My plea to designers and software engineers: Ignore the fads and go back to the typographic principles of print — keep your type black, and vary weight and font instead of grayness. You’ll be making things better for people who read on smaller, dimmer screens, even if their eyes aren’t aging like mine. It may not be trendy, but it’s time to consider who is being left out by the web’s aesthetic.
accessibility  color  design  typography 
october 2016
Pixieset - Client photo gallery for modern photographers.
Good for creating a one-off gallery of photos with download & printing options.

Info on custom domain setup: http://support.pixieset.com/knowledgebase/articles/309629-setting-up-custom-domain
photography 
october 2016
Savings and retirement waterfall strategy
A simple visualization of account and strategy priorities on the path towards retirement.

Copied here for my own posterity, but originally via some reddit thread that @kylehendricks linked.
finance  personal_finance  retirement  ira  via:kylehendricks 
october 2016
VSCO Film 01 | VSCO Film | VSCO
As recommended by andyfowler:
i’ve got 00, 01 and 07. i’d say i spend about 90% of my time with 01, though
photography  wishlist  adobe_lightroom  via:andyfowler 
october 2016
You Might Not Need Redux – Medium
A good introduction to redux by showing you a poor man's, single-function implementation. Also shows how it would be absurd to use all this tooling for a trivial app.
react  reactjs  redux 
september 2016
« 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 coreanimation coredata coregraphics couchdb css cucumber culture data database debugger design designpattern development 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_repo golang google goos 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 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_lang rxjava rxjs scala search security simplicity sketch smalltalk software software_engineering srp ssl startups static_analysis storyboard struct swift swift_lang swiftlang sync tdd team testing 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 wishlist writing xcode

Copy this bookmark:



description:


tags: