Quotes

“Why can’t things just be good?”

Kimi is a thriller about someone who steps in some 💩 working on a Siri– or Alexa-like voice assistant for a fictional company. It is a stylish, tech-savvy romp.

However, this quote stuck out for me when some characters were talking about having the “best” Thai food ever.

‘Why can’t things just be good? Why do things always have to be the best?’

Angela Childs (Kimi)

Hey, if it’s good Thai food, does it even matter if it’s the best Thai food? I just thought it was a cool observation nestled in the middle of a pretty good movie. 😜

👉 See also: “Comparison is the thief of joy” and perfect is the enemy of good.

Books · creativity · Practical

Super Summary: Deep Work

Next up in my super summary series: Deep Work: Rules for Focused Success in a Distracted World by Cal Newport.

On this blog, a super summary is basically a “summary of a summary” of a book (with a few additions of my own). It gives you the basic idea of a book to see if you want to read the real thing. Most of the content comes from Lucid visual book summary series.

👉This book gives you official permission to set your chat app to do-not-disturb or enable Focus mode on your iPhone.

Deep vs. shallow work

Shallow work is work that’s done in small pieces, doesn’t require your full attention, and keeps you busy. It is often necessary, but does not lead to great achievements.

Deep work means complex thinking in a state of distraction-free concentration. Think flow. Your brain can do amazing things in this state of focus.

Many great thinkers in history went to incredible lengths to isolate themselves from distractions while they worked. Studies show that many of people’s happiest moments come when they are stretched to their mental limits and lose themselves in this state.

This intense focus allows you to master difficult skills and produce at an elite level.

👉 It’s a career builder.

Making time for deep work

Switching frequently between tasks leaves “attention residue” and makes it difficult to focus on a new task after switching focus, especially if you leave the previous ask unfinished.

To allow yourself to get the most out of deep work, schedule you time in blocks of deep and shallow work with one of these strategies.

👉I’ve found that I can only be productive at highly creative deep work for about 90 minutes at a time. Then I need a mental break.

Monastic

On one end, monastic deep workers go to great lengths to make time for deep work. They eliminate social media and use email sparingly to achieve their goals.

👉This seems pretty extreme unless you aim to be Henry David Thoreau at Walden Pond or Bon Iver at his cabin in Wisconsin. 🤷🏻‍♂️

Bimodal

Bimodal deep workers plan their day to make time for the shallow and deep work they need to do.

This strategy can mean bookending a solid day of deep work email and busy work at the beginning and end.

 Rhythmic

Rhythmic deep workers break their time down into smaller chunks to fit their schedule.

👉This is how I work because, you know, meetings. 🤷🏻‍♂️

Journalistic

For those whose less predictable days, journalistic deep workers capitalize on spare moments that come up throughout the day, even if it’s just 30 minutes.

These people fighting for deep work time as their day evolves. 🏃🏻‍♀️

👉 For some additional ideas, check out Wired article How to Use Block Scheduling to Revamp Your Workflow.

The World

Trams, cable cars, ferries, and bikes – making transportation cleaner (and more fun)

Since I first discovered the care-free movement years ago, I’ve always been a sucker for ways to get around besides those same old gas-guzzling, traffic-jamming cars.

It just seems like walking, biking, and taking a ride on something are more fun than cars. Mass transit makes the world more beautiful and is better for the planet.

Here’s a great overview of how cities across the world are finding better, electric options for moving lots of people around.

creativity

J.K. Rowling’s storyboard – writing as engineering

Below is a snapshot — literally — of one of J.K. Rowling’s storyboards.

Firs of all, it looks cool!

But more importantly, it illustrates an interesting point. No matter how natural and effortless a Harry Potter book is to read, clearly writing it is a pretty analytical process. Starting with a big vision, drilling down into the details, and finally “shipping” the end result seems similar to making software.

I’m organizing and planning my own book using software engineering tools and processes, all the way down to version control and text formatting. What can I say, as a software engineer, this is my comfort zone. Having a good process gives me the freedom and security to be creative, try ideas without risk, and literally commit when I’m done. 🤷🏻‍♂️

And like a great app, I hope the end result will impact you but appear effortless. Stay tuned to see how that goes. 🤓 #goals

Quotes

“Noise is the enemy, clarity the goal.”

It’s cool that Jon Stewart is back with a new show. And it’s really cool it’s on a streaming service that I already have. 😛

In this interview, he’s is talking about doing his new show in a deeper and more focused way than he did The Daily Show, which was funny but all over the place.

In the interview, a really cool quote popped out to me.

 Noise is the enemy, clarity the goal.

Jon Stewart

It seemed so succinct and true. And probably applies to more than just TV shows. 🤔

Via Apple news.

Austin

The sisters behind some of Austin’s best tacos

For a while, I thought Veracruz All Natural was basically just the taco truck at Radio. But they’re all over town. 🤷🏻‍♂️

Here’s the story behind the immigrant sisters who founded Veracruz All Natural.

Key facts: they’re actually from Veracruz, Mexico and came to the US illegally 22 years ago. They contributed a lot to the Austin taco scene by not changing what they knew growing up in Mexico. They started in 2006 with $6,000. A 2009 mention in the Austin Chronicle gave them a good early the boost.

👉 I’m more of a Pueblo Viejo guy because there’s one that is walking distance from my house. But Veracruz is great too, and I love the story.

Quotes

“Being one’s self is a twenty-four hour a day job anyway, isn’t it?”

It struck me recently that most of the quotes I post on this blog are from men; usually men from like 100 years ago or even 1000 years ago. I like the classics! 🏛

Yeah, these guys have some great perspective. But it’s become a pretty stuffy group of old guys. 🤔

So I was happy to come across something a little lighter that just happened to be from a famous modern(ish) woman. It goes nicely with the self-awareness kick I’ve been on.

I am content to be Marilyn Monroe, to the best of my ability. Being one’s self is a twenty-four hour a day job anyway, isn’t it?

Marilyn Monroe

It turns out that this blonde bombshell had some interesting things to say, and she worked hard on her career. She just made it look effortless.

Portrait of Monroe aged 20, taken at the Radioplane Munitions Factory
Marilyn Monroe sporting a nerdy vibe in 1944 🤓

Quotes

“Life can only be understood backwards, but it must be lived forwards.”

Back in college, I remember philosophy geeks loved to say, “Well, Kierkegaard said…” and would quote him and act all superior. It was so annoying.

Kierkegaard

But now I get it, dammit. 🤦🏻‍♂️ The dude was smart. Here’s one of my favorite quotes.

Life can only be understood backwards; but it must be lived forwards.

Søren Kierkegaard

It’s the basic trick of life. Take what you’ve learned so far in life and use it to more forward. ➡

I really like this quote because, like with Rumi, it’s practical advice about living a good life. It’s right on the edge between “cool ideas” and basic self-help.

Wait, am I become a philosophy geek? 😱

Quotes

“Move, but don’t move the way fear makes you move.”

Another gem from Rumi, the 13th-century Persian fountain of wisdom. 🤯

Move, but don’t move the way fear makes you move.

Rumi

Rumi was part of the old-school philosophy (quite literally) that focused on how to live a good life rather than the big questions of the universe. Although these two questions can certainly meld together.

👉 This open and fearless attitude might be useful for those anti-vaxxers among us.

I’m adding Rumi to my list of ancient people I wish I could hang out with, along with Marcus Aurelius, the Roman philosopher king and self-awareness guru who pre-dated Rumi by over 1000 years.

The World

The helicopter on Mars

I’m taking a minute to appreciate that, despite all the challenges we currently face here on Earth, we’re flying a helicopter around on another planet. 🤯 We can still do incredible things.

This image goes with my continued fascination that we’re invading Mars instead of the them invading us. If there were really such as thing as Martians, then they surely would have blown this helicopter to smithereens and sent us an ultimatum by now. 🤷🏻‍♂️

(Also: NASA, can I use this as an album cover? Some stylish text would fit nicely against the pale Martian sky.)

Me · Practical

In case you notice a change in case

It struck me recently that I didn’t have a strategy for capitalizing my blog posts. So I’m making a change.

As the sole proprietor of this blog, I hereby decree that henceforth and regressively back to 1 June, year 2021, all blog posts shall follow the Sentence case standard.

Title Case was starting to bug me. It was overly formal and hard to read, as in Who Do You Want to Be On The Other Side Of This Crisis? And it was confusing. Which words do you capitalize, again? I took my best guess on 5 Things You Don’t Need to be Happy, Fulfilled, and Successful.

Plus Capital Case was constantly being dissed up by quotation-titles such as “The only real escape from hell is to conquer it.”

Capital Case also made it hard distinguish Proper Nouns from normal words, as in Favorite Austin Hotel Pools. Was that post about hotel pools in Austin? Or was it about pools at the Austin Hotel?

I’m pretty happy with this change, so much so that I am tempted to go back and fix all the old posts, such as “Favorite Austin Hotel Pools” to “Favorite Austin hotel pools”. But there are 742 of them, and sometimes it’s better to live with your imperfect past anyways.

With that, enjoy all the easier-to-read blog titles, future reader. I’m going to figure out punctuation for quotations next. 🤷🏻‍♂️

Quotes · The World

“Consider yourself blessed if you have a passion for anything.”

At the end of an article about a decades-long archaeology effort in Southern California, the protagonist says this:

Consider yourself blessed if you have a passion for anything. Passion is a way of organizing your life; otherwise you go off in 20 different directions, and in the end, you wonder what you have.

Fred E. Budinger (LA Times | Apple News)

This dude knows what he’s talking about.

Fred E. Budinger has been pushing to prove, from the evidence in the ground in the Mojave Desert, that humans were in North American 200,000 years ago (not 11,000 years ago as previously thought) despite decades of misfortune, hostility, and even vandalism.

Good luck to you, Fred (pictured right, below). ✌️ Your passion is inspiring.

Travel

From rebel outpost to Silicon Docks

The story of Boland Mills in Dublin is sort of the story of modern Ireland itself.

In 1916, the mills stood as a rebel outpost for an independent Irish state. Now it’s part of a high-end residential development in that independent Irish state. See the post for more. 👇

This looks like an interesting stop on my upcoming trip to Ireland. ☘️

Quotes · You

“What a man can be, he must be.”

Good ol’ Abraham Maslow, the American psychologist who gave us a pyramid and a hammer, is at it again with some pretty sensible insights.

This time he’s riffing on Aristotle’s function argument about what the heck we’re even doing here. Basically, we’re here to be useful.

A musician must make music, an artist must paint, a poet must write, if he is to be ultimately at peace with himself. What a man can be, he must be. This need we may call self-actualization.

(Apparently he was an old-school fan of the “he/him/man” pronoun. 🤷🏻‍♂️)

It’s one thing to find your purpose — and those who do so should consider themselves fortunate. But the real trick is to actually do something about it.

It refers to man’s desire for self-fulfillment, namely, to the tendency for him to become actually in what he is potentially: to become everything that one is capable of becoming.

Thank you for the reminder, Mazzy. Can I call you that? Because here’s another Mazzy who found her purpose.

Software Dev

“Perhaps you could tell us what you personally have been doing for the last seven years.”

As MacBreak Weekly celebrated the 14th anniversary of the iPhone’s launch, I was reminded of Steve Jobs’ “redemptive arc.”

Here is Jobs addressing a somewhat hostile question at the 1997 WWDC. At the time, Apple was nearly out of money, and Jobs had just returned after previously being kicked out of the company.

George Bernard Shaw said that “your patience when you have nothing” is one of the two things that define you. It’s interesting to look at Steve Jobs when he is down and see the vision and patience that was brewing at the time.

As we have tried to come up with a strategy and a vision for Apple, it started with what incredible benefits can we give to the customer, where can we take the customer. Not starting with ‘let’s sit down with the engineers and figure out what awesome technology we have and then how are we going to market that’.

And I think that’s the right path to take.

It would be four more years until the iPod launched and ten years until the iPhone launched.

The end of Jobs’ answer also reminded me of Teddy Roosevelt.

Some mistakes will be made a long the way. That’s good, because at least some decisions will be made along the way.

Steve Jobs

Ah yes, patience and decisiveness. Like a good game, they are easy to learn and hard to master.

You

How To Talk To People You Disagree With

Lots of people are still hesitant to get the Corona vaccine. Maybe you’re one of them. Or maybe they’re driving you crazy.

If you want to know how to talk to people about this — or really about any subject on which you disagree with someone — then there are some good tips in this example text message conversation.

Hint: It turns out that it’s not helpful to lecture people, judge them, or overload them with information. Who knew? 🤷🏻‍♂️😉

Books · You

Super Summary: Think Like a Monk

I accidentally subscribed to this visual book insights app called Lucid. It promised “Read faster. Remember more.” so I had to try it. 🤷🏻‍♂️

Neglecting to cancel my free trial (oops!), I now have a full year of this service, so I might as well get the most out of it.

So this is my first “super summary” (a summary of the summary) for books I find interesting. You can see if you’re interested in reading the real thing. (audiobook | “book” book).

Think Like a Monk by Jay Shetty

👉 Luckily, we can take some useful lessons from monks without actually being Christian or abstinent. 😜

The monk mentality

Via Lucid

A monk has an inward focus and moves past pain and anxiety, leading to a happier and more meaningful life.

A monk focuses on core issues, long-term vision, and strives to find meaning. This is in contrast to a “monkey” mind, which is distracted, overwhelmed, and focusing on temporary fixes.

Identity and meaning

Via Lucid

Our core values define who we are and the meaning of our life. Our values should come from within rather than from other people’s influence.

We need to figure out what we’re all about so that we can focus our priorities and goals.

👉 This fits with some things the Savvy Psychologist said about values and meaning.

Dealing with negativity

👉 This section reminds me of the idea that people’s criticism often says more about themselves than the person they are criticizing. 🧐

If you think of others negatively, you think of yourself negatively.

To break this cycle: identity your negative thoughts towards others, stop, and reframe them in a more empathetic, specific, and helpful way.

If you think of others more positively, you think of yourself more positively and make better choices.

Conquering Fear

Via Lucid

👉 I like this section because I learned a while back that decisions driven by fear generally do not turn out well. 😱

Identify your deepest underlying fears. Acknowledge these fears and embrace them.

Then detach from your fears to make smart, independent, intentional choices.

Positive routines

👉 Despite this book calling for an early morning routine, I’m personally finding a relaxing nighttime routine especially useful. 😴

Wake up early to give yourself time to have a positive boost to your day. Use this time to be grateful, read & learn, meditate, and exercise.

Get to bed early and plan how you will conquer the next day.

The battle in your mind

Via Lucid

👉 I love this section because of the wolf analogy. 🤩

In each of our minds are two wolves battling with each other for control. One wolf is consumed by fear, anger, insecurity, and ego. The other is driven by love, kindness, humility, and positivity.

You can feed one of them (yes the good one!) by giving it your time and energy.

This internal battle is normal, and we should view it as external to us. Use meditation to observe your mind and better understand what might be triggering any negative thoughts.

Reframe negative thoughts in a positive way, changing problems and fears into positive actions.

Me · Music

“I Want It All” 🎶

Here is Japanese Breakfast’s perfect companion to The Walkmen singing “Baby, I want everything”.

I want it all.

Japanese Breakfast – Diving Woman

I’m feeling this vibe. I do want it all.

I don’t want six cars, a mansion, a helicopter, or even a fancy watch. Please, no. Just no.

I do want to travel, but not all the time. I could probably spend 1000 years happily just goofing around Central Texas.

But I do want to write a novel, make some music, raise some amazing kids, have a long and challenging career, learn to tell good stories and jokes, improve the world a bit, take care of myself, and be a good friend.

Am I asking too much? We shall see. 😆

We’re only given this one life, so you might as well at least try to make the most of it.

You’ll have it all
I’ll have it all
We’ll have it all

creativity · You

Doing Great Things is Boring 🤷🏻‍♂️

It’s all about consistency, process, and patience… I know, yawn. But also, wow!

Interesting story here about how this guy changed his life in one year.

👉 How I Changed My Life’s Trajectory in Only 1 Year

For him, it came down to a few simple behaviors applied consistently.

  • Being curious
  • Meditating
  • Writing
  • Reading
  • Saying no
  • Deemphasizing external approval
  • Doing these things consistently

I’m trying to do the same, but I would add exercising, playing music, and goofing around with the kids to the list as well. 😛


See also

This article about going slow and sticking to the process.

The moment you start enjoying the process, you’ll realize that this is what life is all about.

And this article about consistency.

The world is brimming with ideas, but few act as vessels.

Creating is not simply laying out the concept, but adapting through implementation as many times as needed until it finally works.

You

“Sometimes it’s their looks, but it’s never just that.”

I recently rediscovered a dazzling post from one of my previous favorite writers on Medium, who has taken lately to more of a “We’re screwed” vibe. 🤷🏻‍♂️

👉What Really Makes Someone Beautiful

Despite the title, this is not just one of those “beauty is only skin deep” platitudes.

Aren’t we drawn to people with hidden depth and curiosity? People who show who they really are. People who are strong, funny, creative, and kind. People who see beauty in the weirdness and in the darkness. People who are not innocent, even if they appear innocent.

Beauty can be found in the balance of all these things.

Software Dev

Scroll Hitch Rate

Xcode 12 is adding a new metric to objectively track how smoothly your app scrolls. This is kind of cool since scrolling smoothness feels right and is a sign of a good design.

Via iOS Dev Weekly.

Texas

10 Weird and Wonderful Places to Stay in Texas

Are you tired of sitting around the house during this pandemic? Do you want to get out somewhere fun and interesting but keep socially distanced?

If you’re in Texas and not ready to hop on an airplane or crowd into some cosmopolitan hotel, then this guide is for you.

👉 10 Weird & Wonderful Places to Stay in Texas

Would you like to spend your weekend in a treehouse high up in the cypress trees with a canopy tour to boot? Or perhaps in a teepee? Maybe being surrounded by gazelles, zebras, yak and emu sounds fun. Or maybe glamping in an Airstream at the beach is your cup of tea. Sleeping in a caboose is a choice. There’s also an old Spanish mission.

Okay, this all sounds like a Dr. Seuss book. I’m tempted to go back and make it rhyme. Maybe another time.

You

Introvert-Friendly Conversation Tips

As a bit of an introvert, I find happy hours 🙄, networking events 🥱, and other stand-around-talking situations frustrating. They tend to feel shallow, and they get boring fast.

But these events can be fun, even for us introverts!

I really like this Medium article because it’s just such a simple win-win: tips for having fun and being more likable when meeting random people. Plus it lets the people you are stuck talking with have a better time too!

👉 3 Habits of Super-Likable People

Basically, it says to go ahead and be the geek that you really are and curiously let other people geek out about themselves. Hmm, that feels like two tips. Anyways, it’s three somehow. 🤷🏻‍♂️

There is no right or wrong way to interact with people. There’s only the authentic way — being you; which means connecting with others in a way that feels right for you.

See also: 3 Ways To Improve A Conversation If You’re An Introvert (👉 Ask Open-Ended Questions, Don’t Make The Conversation About Yourself, Improve Your Body Language.

By the way, these tips overlap a lot with a previous post about easy conversation here as well.

Software Dev

Mac-assed Mac Apps 😆

I came across the phrase “Mac-assed Mac apps” 😆 in this short post about Proxyman. Proxyman is a “Modern and Delightful Web Debugging Proxy” for the Mac.

👉Proxyman

Proxyman looks like a really nice alternative to Charles Proxy, which is very functional but drearily cross-platform app for Mac, Windows, and Linux.

Other examples are Mac-assed Mac apps are the Paw REST client as an alternative to the cumbersome Postman and Things as a true Mac-first app. And I’ll add Mail as an alternative to the crusty Outlook, which is slow to load and I just cannot use because it doesn’t support the standard Mac keyboard shortcuts (e.g. Clrt-A, Crtl-E).

What can I say, I just love these true Mac-assed Mac apps because they’re fun and easy to use. 🤷🏻‍♂️

Via iOS Dev Weekly.

Travel

Rolf’s NYC

Cool-looking German restaurant for next time I’m in New York City.

You

Can’t Sleep? Try ‘Quiet Wakefulness’ Instead

I just stumbled upon this idea myself and love that it’s being validated here. ☺️

If you can’t sleep, then don’t stress about it. Just lay there and meditate. Or simply lay still and relax without trying to sleep. It’s low-stress and almost as good as actual sleep.

👉 Can’t Sleep? Try ‘Quiet Wakefulness’ Instead

Actually, with meditation it’s better in some ways such as in increase in “relaxation, an uptick in creativity, a decrease in depressive symptoms“.

The way I look at this is, if I wake up at 3:00 am, this is a great chance to mediate (laying-down style) with no time pressure at all. All sleep-stress goes away, and it feels pretty luxurious. It’s best to have some basic meditation practice down first, of course. But nothing fancy is required.

Most of the time I fall back asleep. But if not, I’m still getting meaningful rest and feelin’ good!

Software Dev

The what, why, and how of the RIBs mobile architecture

Continuing my mobile architecture kick, let’s look next at RIBs. In this case, RIBs is not a delicious, slow-cooked entrée but rather a software architecture that Uber developed a few years ago. It lets their 200+ mobile developers knock out features quickly without stomping all over each other.

Why RIBs?

The original design worked well for the first three developers. (via Uber)

Back in 2016, the Uber team had quickly expanded from three mobile developers to 15 to several hundred. But the app’s design did not scale well. It became difficult to add features, from both a UI design and a technical perspective. Citing “quite a few examples of, you know, pretty bad UI”, the design team bravely demanded a rewrite.

The design team came in and said, you know, ‘We probity have to redesign the whole application.’… Everybody was super concerned.

Classic engineering understatement

The Uber engineering team resisted the rewrite (which can be nightmare on a large app) for a year, but eventually came around to its necessity. So they defined a few goals for the new design (99.99% reliability, scaling to ~1000 developers, …) and experimented with that they knew – MVC, MVVM, MVP, and VIPER.

Nothing worked. 🤦🏻‍♂️

The problem is that all these architectures are based around the view, and if you base everything around the view, everybody has to integrate at one point, and that becomes a mess at the scale that we have.

The state tree solution

So they came up with a fresh idea, which was to model the whole app as a state tree. Much to their surprise, it worked really well. 🤷🏻‍♂️

We haven’t found an application that you couldn’t model with this very nicely.

The crack architecture team spent six months reworking some “super ugly looking” core app flows, and then turned the rest of the team loose on the new architecture.

And now we have RIBs and the modern Uber app.

Whoa! That looks too easy! (via Uber)

But how does it work?

A RIB is a combination of Router/Interactor/Builder (plus Presenter/View, but I guess “RIBPV” doesn’t sound very good). Each RIB represents a state of the app, which can have sub-states as children.

For example, the root of the tree has two children: logged-out and logged-in. Every RIB under logged-in can safely assume that the user is logged in — and it has an authenticated user token to prove it. 🔑

RIBs present themselves hierarchically on top of each other on the screen. Or some RIBs just do background support don’t show themselves at all.

No auth token for you, left side. (via Uber)

For more…

Pretty cool, eh?

Okay, I’ll stop here since this is a conceptual overview (aka a teaser) and not a tutorial. ✋ For more details, see the original Uber presentation below or try it yourself at the RIBs GitHub repo.

Up next in the architectural series, we’ll attack The Composable Architecture, which is responsible for at least one cool game and, like RIBS, has a concrete implementation rather than just a bunch of vague ideas. 🙏

Austin

Favorite Spots For Remote Work in Austin

Even if you have a top-notch home office, sometimes it helps to get out and clear your head.

I get some of my best work done at Cosmic (in good wether) or Barley Bean (in most weather). Do512 did their own polling and came up with the best places to work all around Austin.

👉 Our Favorite Spots For Remote Work

I’m bookmarking this list in case I find myself somewhere besides South Austin (gasp!), looking for a place to pull out my laptop and knock out some writing or code.

👉 See also: The Best Outdoor Seating in Austin, TX

Software Dev

Scaling up: how AirBnB ships a quality, gigantic app

AirBnB’s iPhone app has a gigantic code base (1.5 million lines of first-party code), a giant mobile team (75 iOS engineers), and a long history (first commit: 2010).

Over time, their app got so big and complex that the project began to take minutes to open (not build) in Xcode. Developers had to use the USB port on the right side of their MacBooks to avoid thermal throttling. 🤦🏻‍♂️

Given all this sheer complexity, the team there made some clever adjustments to develop, test, and ship their app pretty efficiently. Check it out.

👉 Designing for Productivity in a Large-Scale iOS Application

Among the highlights are independent modules called Dev Apps.

A Dev App allows a product developer to iterate on their feature’s UI and much of its business logic while building a fraction of the overall Airbnb application.

Dev App for an existing Airbnb module

For dependencies across modules, module types allow for “visibility rules” to minimize and document dependencies.

Also, AirBnB uses the Buck build system to keep Xcode projects out of source control (bye bye, Xcode project merge conflicts).

via iOS Dev Weekly.