Mikov's Blog: You Don't Like Google's Go Because You Are Small
Funny:
Trust me, you don’t need the ternary operator “?:“. It is too complex for you, with your small mind.
You might end up needing something like that in a very obscure corner case which is referred by computer scientists as “calling methods of objects”.


Ultimately a good articulation of what I think of Go:
I don’t “hate” Go, I think there is lot there to like, and that is precisely why its big failings bother me even more.

I view Go as a huge wasted opportunity.
go  golang  programming  google  via:dadrian 
6 weeks ago
Static CMS for Hugo & Jekyll | Forestry.io
Sync your Jekyll or Hugo site. Your editors will love it and won’t realize they’re making commits.


Seemingly a web UI CMS to update s static site with commits still as the backend changelog.
staticsite  jekyll  hugo  cms  wordpress  website 
6 weeks ago
Tabler - Admin panel made simple
Premium and Open Source dashboard template with responsive and high quality UI. For Free!


This can act as a nice reference implementation of skinning [Bootstrap][1]

[1]: https://getbootstrap.com/
css  templates  design  web  webdesign  via:andyfowler  twitter_bootstrap  sass 
7 weeks ago
Jason Fried @jasonfried

Twitter is beginning to feel like secondhand smoke. The amount of anger and anxiety you walk into just browsing your timeline is like walking into a cloud of cigarette smoke from the smoker in front of you.
twitter  deep_work 
7 weeks ago
Augmenting Artworks: AR at Artsy - Artsy Engineering
Remember, React Native is native, so you can write chunks of your app without ever touching RN's toolchain:
React Native is really great for nearly every screen we deal with typically. We tend to basically build pretty screens of JSON. This experience is far from that. It requires constantly changing states between two very separate but linked worlds. One of the biggest advantages to doing it in React Native would have been using it for cross-platform work, but that’s speculative as only ARKit supports vertical plane detection today. We’d have had to either use a dependency, or build our own simpler bridge from ARKit to JS and maintain that. It just felt like a lot of work for a one-off section of the app.
react  ReactNative  reactjs  iOS  uikit  arkit  native  development 
7 weeks ago
Ryan Singer on Twitter: ""Design decisions can have enormous, cascading effects" — Yes. That's why we "integrate uphill" at Basecamp. We learn together by building rough concepts with clickable UI and real code on staging servers with real data. There's
"Design decisions can have enormous, cascading effects" — Yes. That's why we "integrate uphill" at Basecamp. We learn together by building rough concepts with clickable UI and real code on staging servers with real data. There's no risky hand-off step.
is:tweet  design  development  prototyping  iteration  risk 
8 weeks ago
N+1 is a Rails feature - rossta.net
N+1 is a feature, which is usually seen as a bug, right?

If you have N+1 query it means you're executing one SQL query per element so if you have 50 emails in an inbox, that'd be 50 SQL calls, right? That sounds like a bug. Well in a Russian doll caching setup, it's not a bug, it's a feature. The beauty of those individual calls are that they're individually cached, on their own timeline, and that they're super simple.

Because the whole way you get around doing N+1 queries is you do joins; you do more complicated queries that take longer to compute, and tax the database harder. If you can simplify those queries so that they're super simple, but there's just more of them, well, you win if and only if you have a caching strategy to support that.
activerecord  rails  sql  database 
8 weeks ago
Distributed “versus” HQ Org Structures – Learning By Shipping
Industry experiencing helping support [Conway's Law](https://en.wikipedia.org/wiki/Conway%27s_law)

Early on when it comes to balancing work and assigning who does what, the skills of people almost always defines who does what. […] the next derivative of this is that the overall product architecture is thus defined by the location of people. This is literally shipping the org chart, but without really deliberately deciding that.

Very tough to over-state how massive a future constraint this will be. When we say “don’t ship the org chart” baking in these architectural boundaries literally cements the path the team will take to evolve the product. Very risky while establishing P-M-Fit.

As an example, if you allocate work to people based on front-end/back-end simply because of skills and those people are remote, as you scale these teams (in terms of number of people) you are “cementing” this definition of an API between subsystems (you can take this to any level of granularity — not just UI/back end, but where data resides, how subsystems communicate, etc.). These APIs come to define not just the elegance of how a product works BUT importantly the seams to overcome and constraints in what can be done over time.

Many say things like “separate UX from back end” for ex., because those are two types of Eng. BUT where to put code is often a competitive/feature advantage not something done simply for consistency of strategy/architectural purity. Innovation breaks old notions of abstraction.

[…]

APIs seem like such an elegant and desirable approach for how remote teams work. In practice, APIs are great for external users of products to extend them because they are “contracts”. But why enforce and live with a contract internally? A role of a company can be to operate without such hard boundaries within the company. There’s a massive execution challenge that comes from building a single product composed of APIs across components. It slows innovation and builds “dependencies” across what would otherwise be “teammates”. It becomes very tough to scale and manage over time.
conways_law  team  management  product_management  engineering  engineering_management  remote-work  microservices  api 
8 weeks ago
Google Takeout – Download your data
Create an archive with your data from Google products.
backup  google  gmail  privacy  tools 
10 weeks ago
Carbon
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 
11 weeks 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 
12 weeks 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 
12 weeks 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.

[1]: https://brunnolou.github.io/react-morph/?down=0
animation  react  is:repo  javascript  design 
12 weeks 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 http://frequentdeploys.club/

---

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 
12 weeks ago
Datacol
<bockquote>Build Apps, not Infrastructure
Heroku User Experience in your cloud account within minutes.
deployment  devops  cloud  google_cloud  aws  heroku  docker  cli 
12 weeks 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 
february 2018
Timezones and Python | Julien Danjou
A good, simple, articulate read on dealing with timezones it datetime objects.
python  date  datetime  time  timezones 
february 2018
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:
https://ical.wunderground.com/auto/ical/MI/Ann+Arbor.ics
calendar  tips  ical  weather 
february 2018
Choose Boring Technology
Slide version of the classic Dan McKinley essay
software_engineering  technology  team  via:andyfowler 
january 2018
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 
january 2018
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 
january 2018
Tiny Wins
The big benefits of little changes.
design  github  work  iteration  product_management 
january 2018
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: 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 
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
« 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 color 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 python 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 technicaldebt testing tips tool tools tshirt tutorial twitter types typography ui uicollectionview uiimage uikit uitableview uiview uiviewcontroller unix ux valueobject via:androidweekly via:andyfowler via:cdzombak via:github via:henrik via:iosdevweekly via:mikelinington video vim web webapps wishlist writing xcode

Copy this bookmark:



description:


tags: