First day of CascadiaFest is CSS day. Here are my notes from the first part of the morning talks.
Alan Mooiman: CSS is dead, long live CSS
There is a trend where we declare something dead much like a monarch.
CSS Preprocessors
clearly useful:
- code organization
- customizable
- DRY-ness
They give you a lot of flexibility, but there are some problems. Not necessarily the language, but how they’re used.
Problems
Nesting
- can be taken too far
- need to think about the processing impact
deprecation
- doesn’t happen a lot, but it does
configuration
- e.g. different versions
abstraction
- remember: it compiles down to CSS
CSS Will Save Us
Preprocessors save us from CSS
CSS will save us from preprocessors
Flexbox
- has finally come into play
- allows for dynamic layouts
- will change the size of children
- content and presentation layers are further separated
CSS Grid Layout Module
- useful for prescribing layout
- more layout options
Variables
- one of the easiest selling points of preprocessors
- becoming native in CSS
- implemented in Firefox
- do have to add scope
- can do more than preprocessor variables
- e.g. div colour hot pink, add green, turns white
Extends
- processes can inherit
- easier to implement natively?
- proposal: https://tabatkins.github.io/specs/css-extend-rule/
Mixins
- e.g. vendor prefixes
- will start to go away
CSS Extensions
- super early, theoretical discussion
- custom-selector
- variables for selectors
Web Components
- might solve the global scope problem
- … eventually
@import
- HTTP/2
- better to make separate requests
- help browsers figure out what to load instead of one massive file
- will help with caching
Container Queries
- theoretical query where it’s based on the parent’s container instead of just based on viewport
- may need to sprinkle in JS magic to get it working as desired
- http://dev.w3.org/csswg/css-containment/
Preprocessors are a great testing ground
The idea was to show how some programming will greatly simplify things, and that’s happening.
So what do we do?
Both are going to be useful
Should keep using progressive enhancement to bring in new “shinies”.
The king isn’t dead, he’ just planning what’s best for his subjects.
Long Live CSS
Jeff Lembeck: The Design of Developing
Starting working through the book, The Family Meal. It’s about how we communicate, make things more accessible,
A better understanding of how end users’ minds’ worked, it would completely change development.
We use lots of tools that are supposed to help us better interface with the computer, but you will find at least one complaint about each tool.
Wrote Frontacon, which was a tool written over the weekend. Once public, got lots of issues.
If you want to build a project that people trust.
First: Write integration tests, will know that what things work now isn’t broken.
Second: Postel’s Law: Be conversative in what you do, and be liberal in what you accept from others.
- be consistent
- be output heavily documented
- throw clear errors when appropriate
The Patterns
The Filter Pattern
- takes data, pipes into transformer, pipes into files
The Cantrip Pattern
- run a command, no standard output, something happened along the way
- error to go with side effect
The Source Pattern
*
The
* read input, transform, write files
* not standard in / out, because write files
* e.g. grunt tasks
Patterns breed familiarity. Makes intentions more transparent. Establish ease of use. Less cognitive overhead.
Write programs that do one thing and do it well, and work well with others.
The Unix Philosophy
- users want each function separately anyway
- maintenance was easier
- tests were easier
- small, simple
Community
- can’t go at it alone, will wear you down
- let them know you hear them
- setup contribution guidelines and code of conduct
- it’s all about people and interacting with people
- make code style decisions early
- trust those that offer to help
- utilize your already existing tools
- as a user, remember to be kind
What it all comes to is understanding the user and their problem and how the tool can solve it.
empathy in creation
Be aware that you’re a little bit blind due to your domain knowledge.
You’re building this to be used
If you want to build something different, then start with empathizing with your users.
Let’s go out and build some stuff
Amy Lynn Taylor: Remote and better for it
Works remotely from Portland.
Thanks to the internet, many of us can work from anywhere.
Remote work can be challenging, but the payoffs can be huge.
Live wherever you want. Travel wherever you want.
The fun stuff was still happening, but missing out when working remotely. Lacking sense of togetherness.
But more important information in accessible places. More connections, the better things got.
One of the most important choices: You are a leader.
As a leader, choose to make the health, happiness and positivity of your team a priority.
Building and maintaining an awesome team is everyone’s job.
Common Problems
- Communication is a struggle.
- it can be hard to find information they need
- feel out of sync
- feel and pain of missing out
Solutions
The more we solve the problems for remote workers, the more we solve problems for the entire team.
It doesn’t matter how physically close or far if we don’t actively seek to connect with our team.
Proximity without connections is useless.
- put people first
- share your goals – find and focus on things that unite you, Who do you want to be together?
- connect on a regular basis: be vulnerable, watch your tone – e.g. deeper daily check-ins, talk about tasks, but also go a little deeper. Talk about their lives. The thing that has connected us the most, because it humanizes everyone on the team.
- communicate well with kindness and respect
- handle bad news with extreme care
- have fun together e.g. cheesy ice breakers
- put everything important in a place where the whole team knows to look for it
When your face can’t be there to express yourself, use emoji as an alternative.
- express gratitude and often
- put it on the schedule
- do 1:1, not just manager, peer to peer, video chats helps to feel connected and see faces
- show and tell, ongoing team chat
- find ways for remote people to join in at the office!
- inside jokes e.g. team chats
- get together IRL
There is no magic that creates a great team. THre are just people, choosing to work towards great things together.
Anything we can do, you can do better. You’re all leaders, all creative, you’re all completely capapble of bringing magical feeling into your workplace. Be intentional, creative, kind, respectful, vulnerable, listen, and have fun.