Fedora 25: With Wayland, Linux has never been easier (or more handsome) - <AUTHOR> http://arstechnica.com/gadgets/2016/12/fedora-25-review-the-best-linux-distro-of-2016-arrived-at-the-last-moment/ <comment><USER2> After the author mentions who this is the best/easier Linux distro ever, and how Wayland mades everything so much better, there's this:

> _There are some things to bear in mind about using Wayland with GNOME, > especially since more than a few GNOME hacks won 't work anymore. For > example, take desktop icons. These aren't really a GNOME 3.x thing, though > you could use Gnome Tweak Tools if you can get them, but they are not > supported in Wayland and never will be. I've also been unable to find a > clipboard manager that works properly under Wayland. The other problem I've > run into is that neither of the tint-shifting applications I use work with > Wayland. Neither f.lux nor redshift do anything when running under Wayland. > Judging by posts from around the Web, video playback is sometimes an issue > too, though I have not actually experienced this problem. In terms of > hardware support and Wayland, I would definitely suggest sticking with > kernel 4.8.x or newer, which is exactly what Fedora 25 ships with. The other > major gripe I have with Wayland is that it doesn't appear to support > fractional scaling for HiDPI screens. It works great at 2X, which covers > most screens, but there are those where 1X is too small, but 2X is too much. > If you have a screen that works best at 1.5X, you might want to stick with X > for now. Those are, however, relatively minor issues._

So desktop icons, no proper clipboard, no fractional HiDPI scaling, video playback issues, and those are "relatively minor issues"?

The only actually "relatively minor" issue he mentions is the lack of screen- tinting support (a la f.lux). The above seem quite major to me...

<comment><USER3> OSX does not support fractional HiDPI scaling, but nobody made a fuss, ever. So I wonder, why is that a bad thing, when Linux doesn't do it either?

<comment><USER4> I believe it has ever since going Retina. It wasn't always presented up front, but it was an options.

<comment><USER3> It's still integer only scaling.

OSX uses slightly different trick - it creates a framebuffer that is @2 scale and lets the hardware to scale it down. (iOS goes even further and has @3 scaling).

Which is the right approach - for example, one of the rMBP options is to have 1440x900 (2880x1800) resolution, which to the native 2560x1600 is the ratio 9/8\. Nobody is going to track that 9-th pixel for each block of 8 pixels in software. Using hw scaler is simpler, cheaper and has smaller margin for errors.

Frankly, implementing fractional scaling is waste of time, resources and would produce software that is slow, buggy and bloated.

<comment><USER5> I'm aware of how OSX implements scaling. It's still rendering at a resolution that is a non-integer multiple of the screen's native resolution and then scaling it to the native resolution. How is this not fractional scaling?

<comment><USER3> User space software stack is not aware of it, the frameworks know only of scale 1, 2 and 3 (on iOS). Nothing between it. That's why it is integer scaling.

The fact that the framebuffer size is not the same as display resolution is known only to the driver and it is not something that is requested to be implemented for Linux.

<comment><USER6> > User space software stack is not aware of it, the frameworks know only of > scale 1, 2 and 3 (on iOS). Nothing between it. That's why it is integer > scaling.

Well whatever the case might be, whether it's kernel's fault, GNOME's fault, Wayland's fault or device driver fault, fact of matter is that one can easily get 1920x1200 resolution on Retina Macbook 15" with sharp font and images, and cannot on Fedora. This is why perhaps people are making "a fuss".

OS X CAN do fractional scaling as far as user is concerned (doesn't matter who scales it up or down), while Fedora cannot (with Wayland, at least).

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Xorg doesn't really need a configuration file today; it's good at auto detecting hardware. But one of the things I really like about X is that you can have a config file and specify exactly which devices you want. In this way, you can connect two keyboards, two mice and two video cards to the same machine and have two totally different login screens. You can essentially have two people logged into the same machine as if they were using two different terminals (just do try to plug in a USB device if both users have automounters running).

Even on my current single user machine, I still run multiple X servers (one for my work related stuff and one for non-work. I work remotely so that way, I can just switch X servers at the end of the business day).

Can Wayland support multiple terminals on a single machine in the same way? Can you have two Wayland instances running like you can with X servers?

<comment><USER8> Wayland (or more "correctly" the support plumbing that will surround it, but developed by the same team) will likely support all that, in time.

Just that rather than manually configure it, it will be automatically (they hope) configured by combo of systemd, polkit and your DE of "choice".

<comment><USER9> So once again freedesktop.org pushes out the new software with the promise that some day it will meet the capabilities of the current tools, honest, we pinky swear. They did it with systemd and they'll do it again with Wayland.

<comment><USER2> Yeah, ignoring those seldom-used edge cases (multiple mice, keyboards, N people using the same computer at once, etc.) all the while solving several real issues and improving common uses cases in the process...

Damn those freedesktop.org people!

<comment><USER10> Yes, we know the Gnome team (and by extension, most of Freedesktop) wants to reimplement macOS on Linux. But trust me, Miguel isn't coming back, the best course would be just going to macOS instead (or hell, Windows, he's a happy camper now, isn't he?) or do your work downstream.

The rest of us just want our own systems to run as well or better for our own usecases as they currently do. Wayland is a great opportunity to rearchitect the Linux display system rather than organically grow it as X11 has over decades. But if you don't take into consideration those of us who use our Linux workstations as more than a Facebook machine with SSH preinstalled; you're just going to recreate the problem.

People will start disregarding freedesktop, Wayland and so on and either stay in X or using a Wayland compositor that couldn't care less for standards and short-circuit every single convention and security protocol you have designed as long as it lets them _get shit done_ , because at the end of the day, as beautiful as we like our code to be and our software to be architected; people want their systems to work for _them_.

<comment><USER11> > The rest of us just want our own systems to run as well or better for our > own usecases as they currently do.

Well, speak for yourself. Which seems to be the loudest voices in these debates, people speaking for themselves.

Wayland solves real, systemic issues in windowing, most notably around security, that _need_ to be solved. It also allows outsourcing of many of X's most unwieldy features to the clients (IPC, rendering, and networking). In many ways, Wayland is closer to the Unix philosophy of one program/one task than X while also being safer to use.

And, it's not like you need to drop X, just like you don't need to drop init. The beauty is that you can continue to use and maintain whichever you feel are the best tools.

> People will start disregarding freedesktop, Wayland and so on and either > stay in X or using a Wayland compositor that couldn't care less for > standards...

I feel like the same things were said about systemd a few years ago and here we are, every major distribution uses it out of the box. And every windowing system and graphical toolkit supports Wayland, long before Wayland was a default. Though I'm not an expert in graphical compositing and rendering, I can't imagine this is by accident. Numerous projects must feel the technical advantages of Wayland outweigh the disadvantages of change.

<comment><USER10> >Wayland solves real, systemic issues in windowing, most notably around security, that need to be solved. It also allows outsourcing of many of X's most unwieldy features to the clients (IPC, rendering, and networking). In many ways, Wayland is closer to the Unix philosophy of one program/one task than X while also being safer to use.

That's exactly my sentiment and I brought it up in the comment. The problem is designing these protocols without regard for how the thing you're replacing is being used. That's only going to result on a pile of hacks. It's just baffling how short-sighted some of the Wayland devs are when the project was born precisely because of these hacks accumulating in X.

> And, it's not like you need to drop X, just like you don't need to drop > init. The beauty is that you can continue to use and maintain whichever you > feel are the best tools.

Oh yes, because obviously everyone wants to maintain 10 different code paths so it's not like Red Hat is _pushing_ their software with their influence over the ecosystem oh no no. But enjoy maintaining those shims, we sure as hell don't care about standards! Gotta move fast, break things and compatibility is for losers.

>I feel like the same things were said about systemd a few years ago and here we are, every major distribution uses it out of the box.

And it's just been dandy isn't it? We still don't have stable interfaces between its parts (yet they still have the gall to say that systemd isn't monolithic), good effin luck debugging it when it shits the bed... list is long, but pick your poison: [http://without- systemd.org/wiki/index.php/Arguments_against_...](http://without- systemd.org/wiki/index.php/Arguments_against_systemd)

Negative points will be awarded on "works for me".

> And every windowing system and graphical toolkit supports Wayland, long > before Wayland was a default. Though I'm not an expert in graphical > compositing and rendering, I can't imagine this is by accident. Numerous > projects must feel the technical advantages of Wayland outweigh the > disadvantages of change.

The premise is great, what's not to love about it. The problem is execution. Because of Wayland's model, a lot of applications relying on X's nature are left out in the dirt. Standards are the way to solve this, and some work is being done about this, but the comment I replied on by coldtea simply shat on all this with a message akin to "Don't stop the momentum, you're a minority FUCK YOU we don't care about you get on board or get ran over". This is what I was criticizing.

We _need_ standardization. Ideally we have a single solution that improves on the status quo and we call it a day; but where there's disagreement let's find our middle ground and standardize it. If you don't need 4 mice and 4 keyboards working simultaneously great! But what you find useless and nonsensical can be the greatest fun ever in a 4-player co-op session of Serious Sam 3 for groups of friends around the world; or just as well prove to be one of the most productive formats for groups of people working together in a local application.

<comment><USER12> > _Oh yes, because obviously everyone wants to maintain 10 different code > paths_

Can you really blame X developers for not wanting to maintain something painful?

It's fair for them to focus on things that will please the majority of users. Not everyone are happy with using 40-year-old technology for their daily needs. But this is open-source; contribute if you like it.

> _We need standardization. Ideally we have a single solution_

X has its own barely readable standard, and Wayland is a separate standard protocol which is unavoidably incompatible. The core X protocol makes assumptions that are no longer valid, and its maintainers have tried patching around it for dozens of years without breaking the standard, but many issues were simply unsolvable.

<comment><USER10> I think you misunderstood me. The people I had in mind were those maintaining code that writes its own windows (toolkits, libraries like SDL2, plenty of games rolling their own and applications like Steam).

And I mentioned it plenty of times: But _I like_ the idea behind Wayland, and think it's a great thing that the display system is finally getting rearchitected and rewritten.

My problem isn't "I no longer have X", my problem was the attitude of "Wayland doesn't have to care about non-average users when replacing X" which I was previously responding to.

<comment><USER12> Wouldn't supporting simultaneously the X protocol and the Wayland protocol be very hard, if not impossible? It's already hard enough to replace the "basics" of X.

<comment><USER10> Not impossible, just ugly as hell. The first two examples I mentioned (toolkits like Qt or Gtk and the SDL2 libraries) actually do it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> One of the things I loved in Linux was the ability to swap out the "window manager", the program that takes app's windows, draws decorations like title bar and window borders around them, and arranges them on the screen. I had fun with Compiz, I fiddled with Enlightenment, and I finally settled for Awesome because I decided Tiling Was The Best (tm).

If I understand correctly from following the Gnome and KWin blogs, in Wayland it looks like the "window management" job is with the Compositor, which takes on a lot more of the display and input work that was traditionally handled by the X Server. So there's much more complexity to handle there. This would mean that we're unlikely to see the proliferation of WM experiments that X saw.

Is this a correct assessment?

(I'm personally waiting for a good tiling window manager/compositor to show up with Wayland before I make the swtich)

<comment><USER14> > If I understand correctly from following the Gnome and KWin blogs, in > Wayland it looks like the "window management" job is with the Compositor, > which takes on a lot more of the display and input work that was > traditionally handled by the X Server.

This is basically right. However, you have to remember that the Wayland protocol is at least an order of magnitude (if not two) smaller than X11. It's also defined/specced using a machine-readable XML document which means that an implementation of the protocol can basically be auto-generated from the spec document -- thus making it a lot easier to keep your implementation up to date.

> This would mean that we're unlikely to see the proliferation of WM > experiments that X saw.

Remains to be seen, I guess.

<comment><USER8> Give W as much time as X11 has had, and it will be of comparable size as X11 is right now. They will perhaps try to play semantic games by putting much of the additions into support libs that you "don't need", unless you want to run anything more than a decade old.

Wayland, X11, SVGALib, F if i can tell a diff...

<comment><USER14> No. It's already basically feature-complete as compared to which parts of X11 are _actually used_ these days[1]. X11 is burdened by absurdly obsolete extensions like drawing stippled lines, a font server, etc. See the talk by Daniel Stone[2] if you're interested in the kind of crud that's been cleared out. It's basically the kind of stuff that we will _never_ go back to wanting in any type of server process. The trade-off between bandwidth and latency has changed fundamentally in basically all areas of computing, but _especially_ anything to do with graphics.

[1] Alright, there might be a few bits and bobs that are missing, but nothing major as witnessed by the very article under discussion.

[2] [https://www.youtube.com/watch?v=RIctzAQOe44](https://www.youtube.com/watch?v=RIctzAQOe44)

<comment><USER8> Who gets to declare those things "crud"? I am sure that if you poke around you will find someone still relying on those features being present daily.

<comment><USER15> Daniel Stone does. Maybe you get a say in it when you've spent as much time on the Linux graphics stack as Daniel Stone has.

Seriously, when's the last time _you_ wrote a program that relied on the ability of the display server to draw stippled lines?

<comment><USER16> What's so bad about stippled lines? They sound useful for so-called "real work" applications for drawing grids and graphs and marching ants.

<comment><USER14> It's not that stippled line are bad per se. It's just that they shouldn't be baked into a protocol that goes "over the wire" (so to speak). It's much faster if the program just gets a bitmap to draw on and draw the stippled line itself. It's important to note here that "itself" could mean that you just call a (Qt/Gtk/SDL/whatever) library function to do it.

There's _no conceivable reason_ (these days) that you'd want to send a "draw a stippled line from point a to point b" command to an X server or graphics card.

<comment><USER16> I haven't done much 2D drawing recently. My intuition is that sending a batch of line/polygon/stipple/fill commands to a GPU would be more efficient than occupying a CPU and then using a bunch of memory bandwidth to transfer a bitmap. But on modern systems, software rendering to a bitmap in RAM is more efficient than sending a command to a GPU (which probably lacks dedicated 2D hardware)?

<comment><USER8> Bingo. X was in part made for working over network and serial connections. And for that it works quite well when the clients play nice (async code between front and back end etc).

But the major toolkits have taken to rendering everything outside of X and just dumping the result as a bitmap into a box, that is absurd for all but the most local of work. And yet they complain about X being the problem.

X is not the problem. The problem is a generation of devs coming over from MS and Apple platforms and not recognizing that X is different. They just want to dump their eyecandy into the buffer and rely on Moore's Law for things drawing more than 1 pixel an hour.

<comment><USER12> Blame is not on toolkits. The history is clear: came a point where MacOS X and Windows supported flawless animations with no screen tearing, and transparency, and antialiased rounded corners for windows.

Meanwhile, Linux still had blitted windows that left a grey trace for a brief instant when you moved them, and pixelwise window edges, and terrible transparency.

Came along Compiz, which reversed the way clients interacted with X, and which did the slick animations and fancy graphics of the mainstream OSes. What was the only way it found to do that? Rendering everything outside of X. And nobody could do it with the old design. So that design was quickly adopted by KWin and so on.

It turns out that nowadays screens are not lightweight clients over a serial line, and they have more than double the number of pixels of VGA.

Compositors became a necessity for the Linux Desktop to compete, reducing X to an IPC system that it cannot be good at, because it is not the situation it was built for. Wayland is built for the status quo.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> > This release also brings improved support for Flatpak apps in GNOME > Software. Flatpak apps are designed to improve the software installation > process in GNOME and Linux in general by making it easier for developers to > package, and users to install, software across distributions. With Flatpaks > you don't need to worry about dependency conflicts or even if your distro of > choice has the app you want. Flatpaks also offer improved security and > stability by sandboxing applications.

Another competing packaging format. Why?

<comment><USER18> Because I can finally download the same file and run it on my distro of choice without installing it as a system package. This is not a replacement for traditional linux packages. It has it's own set of advantages and disadvantages. This may lead to a good solution for app support fragmentation on linux.

<comment><USER8> Good? This is the devops container boys recreating Windows' DLL hell and selling it as an "improvement".

If you want to run something without installing it as a distro package the option was always to download it as a tar-ball.

BTW, Flatpak is a Gnom/freedesktop creation. It is a reaction to distro maintainers overriding the "perfect" decisions made by upstream (Gnome devs etc), and is upstreams attempt at taking over control.

Gnome+Freedesktop is aiming to make a singular Linux desktop experience, for all the wrong reasons.

<comment><USER19> _> This is the devops container boys recreating Windows' DLL hell and selling it as an "improvement"._

I'm not a fan of Flatpak (Nix/Guix for the win), but this is completely incorrect.

<comment><USER20> So how you plan to fix security holes in flatpak aps, please?

Static bundling predates UNIX. It's long known nightmare. New developers are not familiar with static bundling, so they thinking that they are «moving forward».

<comment><USER19> The same way you solve this anyway, or the same answer you should hear when people say "how do you handle security with Docker": Continuous Integration.

<comment><USER20> CI and maintenance are different things. AFAIK, it's recommended to pin versions of libraries, not to update libraries at every integration, so security fixes will be delayed. Moreover, developers never release new version of an app when a dependency is updated only, while maintainers do. It's called bit rot.

<comment><USER19> Take NixOS as an example. When libc gets a security fix, everything is automatically rebuilt and binary cache packages are available for users.

<comment><USER20> It's waste of resources. Fedora does mass rebuild once per 3 months at average. If libc gets a security fix, dnf in Fedora will download just a delta between packages. Lower consumption of resources mean faster turn-over rate and is better overall. But I can mimic NixOS behavior with mock (tool for clean rebuilds) and chroots or containers, if I want.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> I totally agree with the need for eliminating tearing from games (and every other application, and increasing the overall smoothness of desktop displays). However, from the article itself, the list of regressions associated with the switch to Wayland seems to be non-negligible ; especially the lack of fast drivers for Nvidia graphic adapters, which makes it unlikely for GNU/Linux- gamers to do the switch.

Is it impossible to fix the tearing and smoothness issues of Xorg/X11?

<comment><USER22> The problems with X go beyond just screen tearing. For example, it's possible for Xorg apps to spy on each other, such as reading keypresses when a user is entering a password.

<comment><USER8> Something that could have been eliminated without chucking the whole of X. A starting point is the Security extension that introduce the concept of trusted and untrusted X Clients.

Thew basic thing is that different clients can see those inputs because they live inside the same root window. Give each a different root window and the issue "magically" disappears.

<comment><USER22> Yes, everything can be solved with more extensions, but that approach is part of why X became unwieldy in the first place.

</comment></comment></comment></comment><comment><USER23> Fedora has really made great progress. The font situation is improved and used purely as a development/hacker workstation it works great on common hardware. Media playback, battery life remain big issues but I don't expect those to get any better soon. You can always fix the former with Rpmfusion packages and the latter by not using it unplugged :)

<comment><USER24> Care to explain what you mean with issues regarding media playback?

<comment><USER3> Fedora does not ship with many popular codecs (mp3 decoding is a new thing in F25, decoding h.264 was new in F24). Third party repositories do offer the codecs, but Fedora project itself does not.

<comment><USER24> Ah, I see. Unfortunately this is most likely due to software patents. Bummer.

Thanks though.

</comment></comment></comment></comment><comment><USER25> As a Mac user who's considering switching to Linux as a desktop OS, I gave this a go inside VMware. I sincerely hope this isn't the best Linux distro in 2016, because that was... underwhelming. Not quite a trainwreck, but still pretty bad. How is Elementary or Mint?

One positive thing I can say is that they seem to have accomplished what they wanted with Wayland -- unlike earlier X-based distros I have tried out, rendering smoothness seems pretty much on par with macOS (unlike Windows, which still flickers and stutters a lot).

</comment><comment><USER26> As software developer I spend all of my time doing reading/writing code and text. So the _most_ important aspect of a linux distro is font rendering and font aliasing for me.

And fedora, last time I tried it, didn't have smooth font by default ! (it was version 23 if I remember correctly)

<comment><USER27> As another software developer, I haven't noticed or cared about fonts in about 20 years. 20 years ago font rendering was sometimes bad. The last 20 years? I guess not or I would have noticed. Seems like whatever the defaults are on Fedora+Awesome, they're fine.

<comment><USER28> I've basically only noticed or cared about fonts when I'm on a windows computer or a poorly configured linux computer. Windows's hinting drives me nuts.

</comment></comment></comment><comment><USER29> Can anyone comment whether this problem with GUI isolation

[http://theinvisiblethings.blogspot.de/2011/04/linux- security...](http://theinvisiblethings.blogspot.de/2011/04/linux-security..).

is now solved?

<comment> TD-Linux Yes. Some applications still use the XWayland compatibility layer, so they can snoop on each other, but not on Wayland apps. I think the only XWayland-using app that Fedora ships with is Firefox.

</comment></comment><comment><USER30> He comments in the conclusion that he runs Arch on his main machine. It seems like I've been seeing a lot of comments like that from people around the web lately.

What's the draw of Arch over Ubuntu/Fedora/Mint, etc?

<comment><USER11> It's a great way to learn Linux.

But really, the documentation is the best of any GNU/Linux distribution, bar none. There are very few things I cannot figure out by going to the arch wiki.

<comment><USER31> For every Fedora release, the Documentation Project prepares a new version of the System Administrator's Guide[1] and of five other high-quality manuals. These manuals are usually up-to-date, accurate and comprehensive, and since they are maintained in the DocBook format (which is very superior to wikimarkup for technical documents), they can be converted into HTML (for the version on docs.fedoraproject.org), PDF (for printing or viewing in a PDF reader) and EPUB (so I can put the guides on a e-reader and read them comfortably). The documentation is even translated in multiple languages.

[1]: [https://docs.fedoraproject.org/en- US/Fedora/25/html/System_A...](https://docs.fedoraproject.org/en- US/Fedora/25/html/System_Administrators_Guide/index.html)

<comment><USER11> Fedora is my preferred Linux distro, but when I'm looking for a solution or how-to on setting up, say MPD or bittorrent, I inevitably end up at the arch wiki.

</comment></comment></comment></comment><comment><USER32> my only gripe with it is the mouse lag. I have a feeling input is not multi- threaded like in Xorg.

</comment><comment><USER33> I'm not certain, but I think they're still running Firefox under Xwayland along with LibreOffice. I'd like to see them run the native Wayland versions of those apps by default.

</comment><comment><USER34> Does anyone know if the KDE spin will also be using Wayland by default?

<comment><USER35> The KDE upstream developers release a distribution called KDE Neon that is based on Ubuntu, with an extra file in /etc/apt/sources.list.d which provides significantly newer builds than what Ubuntu / Kubuntu offer.

They offer two flavors of this distribution-- one meant for end-users with the stable Plasma releases and one with bleeding-edge git builds. The bleeding- edge git build now defaults to Wayland, but the build meant for daily usage does not. AFAIK, they aren't yet recommending that downstream distributions default to wayland. Hopefully it will happen in 2017!

<comment><USER36> I think we're on track for delivering that in 2017. We do already have users on Wayland; it's not yet a drop-in replacement feature-wise, so it's up to whether we have the subset you use already in place.</comment></comment></comment>


Mechanical Keyboard Sounds: An album of bespoke keyboards recordings - <AUTHOR> https://boomkat.com/products/mechanical-keyboard-sounds-recordings-of-bespoke-and-customised-mechanical-keyboards <comment><AUTHOR> Info and back story [http://www.trunkrecords.com/turntable/mech_keyboards.shtml](http://www.trunkrecords.com/turntable/mech_keyboards.shtml)</comment>


This website extracts GPS data from EXIF and locates a photo on map - <AUTHOR> http://www.pic2map.com

<comment><USER2> I recently discovered the Photo Find app for iOS, which does the same thing:

[https://itunes.apple.com/app/id939480376](https://itunes.apple.com/app/id939480376)

</comment><comment><USER3> This is why you should remove EXIF data before sharing photos to protect your privacy

<comment><USER3> Here is a tool one can use for that and other metadata removal:

[https://mat.boum.org/](https://mat.boum.org/)

</comment></comment><comment><USER4> There's also [http://www.verexif.com/en/](http://www.verexif.com/en/)

</comment><comment><USER5> Not a single photo i tried returned results??</comment>


Learn D3 - <AUTHOR> https://observablehq.com/@d3/learn-d3 <comment><AUTHOR> Most intros to D3 (including D3's own home page, for now) focus first on selections for DOM manipulation. Selections are great, but given how many viable approaches there are today for DOM (React, Svelte, hypertext literals, etc.), I wanted to emphasize the modularity of D3. So selections and joins aren't introduced until part 7 where they're framed as a tool for animation and interaction: efficient, incremental DOM transforms. I think that's a better way of thinking about joins, and hopefully helps people focus first on building effective static visualizations before getting into dynamic graphics.

<comment><USER2> Hi Mike! I really like what you've done with D3. I've been hesitant to include D3 in my personal projects though just because of how complex both DOM manipulation and async data binding through APIs can get.

Most tutorials focus on D3 itself, but I haven't been able to find much on how to properly integrate D3 into a complete web application (e.g. a REST API build on Express/Koa serving data to a React/Vue frontend). Is this an area where you think there is a lack of tooling, or perhaps simply a lack of information? Given how many companies use D3 I feel like I must be missing something!

<comment><USER3> one thing that might help is this blog post I'm (slowly) putting together:

[https://wattenberger.com/blog/react- and-d3](https://wattenberger.com/blog/react-and-d3)

I've done a lot of work that uses d3 within a JS framework (React, Vue, Svelte, & Angular), and the key is to understand 1. how to create shapes in plain SVG, and 2. how to use the parts of d3 that don't do DOM manipulation. I've found the least-hacky way is to handle DOM manipulation with the framework, and use d3 for things like data manipulation, creating SVG path strings, creating scales to map from the data domain to the visual properties, etc.

<comment><USER2> This is a great resource, thanks for putting this together.

</comment></comment></comment></comment><comment> jake-low This looks like a great new introduction to D3. It uses Observable as an interactive playground for D3 example code, which I think is an ideal environment for teaching concepts like these. I hope this will help more folks get started in visualization.

If anyone hasn't given Observable a try yet, I highly encourage you to do so. It's more than just "IPython/Jupyter but for JavaScript" — it's reactive, like a spreadsheet. You define "cells" of JS code that are automatically re- evaluated whenever one of their dependencies (another cell) changes.

It's an amazingly productive programming environment. These days, most of my JavaScript projects start off as Observable notebooks because it's such a great platform for experimentation. And I find myself wishing for Observable's features whenever I'm developing in other languages.

I know reactive programming is nothing new, but Observable has been my first opportunity to use it regularly, by "backporting" reactivity into one of the languages I work in most often. Being able to use it for prototyping and visualization for the past couple years has given me a really warm, fuzzy, "what-a-time-to-be-alive" feeling.

</comment><comment><AUTHOR> A different introduction to D3 was published a few weeks ago by Arvind Satyanarayan of MIT, if you want another perspective. Here's the link and discussion on that.

[https://observablehq.com/@mitvis/introduction- to-d3](https://observablehq.com/@mitvis/introduction-to-d3)

[https://news.ycombinator.com/item?id=22476930](https://news.ycombinator.com/item?id=22476930)

<comment><USER4> In my opinion, the Observable introductions and learn-by-example posts[1] are the best way to learn D3. They are very well written and easy to follow. I have a couple books on D3 and: 1) they are all out-of-date because of the changes in V4 to V5, 2) the authors write/use D3 in weird ways. I look at Observable's code examples as the canonical way of using the library. Please keep up the good work!

One suggestion is to have some sort of curriculum or categorization of the posts from easy to hard. For example, I had to skim through 120 posts to find the easy examples (bar chart, line chart, pie chart) then moved on to the more difficult.

[1] [https://observablehq.com/explore](https://observablehq.com/explore)

EDIT: Oh, i just found this: [https://observablehq.com/collection/@d3/learn-d3](https://observablehq.com/collection/@d3/learn-d3)

<comment><AUTHOR> Rating the difficulty of the examples is a great idea, thanks! The gallery currently leads with harder ones because they tend to be more interesting (animation and interaction), but you can find easier ones farther down.

[https://observablehq.com/@d3/gallery](https://observablehq.com/@d3/gallery)

</comment></comment></comment><comment><USER5> I've always enjoyed Amelia Wattenberger's approach to teaching D3. Her intro blog post ([https://wattenberger.com/blog/d3](https://wattenberger.com/blog/d3)) actually pushed me to purchase her book ([https://www.newline.co/fullstack-d3](https://www.newline.co/fullstack-d3)). I found her on the last D3 post on HN ([https://news.ycombinator.com/item?id=22480270](https://news.ycombinator.com/item?id=22480270)).

<comment><USER6> I'm on the fence about purchasing the book. How do you find it?

<comment><USER7> I bought it as well and it served its purpose (then I transitioned to Observable). Worth it if you are serious and want some 'hand-holding' getting started.

</comment></comment></comment><comment><USER8> As someone who has a codebase with a number of custom D3-based visualations: complex D3 could be your future maintenance headache (unless you have someone who really understands D3).

It's so different from other parts of web development that a developer probably can't just jump into the code and fix a bug, you have to understand D3's coding model, and then read the code you've got to build a mental model of how it's translating to what you're seeing on screen (the mental model building is hardly unique to D3, but you're not going to be reusing any of your existing mental modelling skills here). Then you will go back to your normal web-dev, forget everything you learned, and have to go through the whole process again in 6 months when you have to make another change.

D3 is super powerful, and very fun to use, but for production we stick to Highcharts whenever we possibly can. There's lots of stuff you get out of the box from a good charting library that you're going to be building for yourself if you use D3. Though I have been told that D3 v5 is easier to learn and use.

</comment><comment><USER9> D3 is pound-for-pound probably the most powerful tool for front-end development. However, its imperative interface makes it really hard to use when combined with most modern stacks. Are there any tools out there with similar feature sets to D3 that use a more declarative interface?

<comment><AUTHOR> The "imperative" part only applies to selections. I encourage you to read the tutorial to get a better sense of the other declarative parts of D3 (d3-scale, d3-shape), and how you can use these parts with whatever UI library you prefer. Selections aren't even mentioned until near the end of the tutorial.

</comment></comment><comment><USER10> I tried to learn D3 over the weekend. Observable was one of the worst experiences I have ever had with code examples. Every other line is riddled with console output, which makes it hard to take in the example as a whole. Downloading and modifying the example is even worse. It gives you the compiled output of their GUI coding tool.

I ended up using plotly's libraries that are built on top of D3, and it really made me appreciate how much work they put into making it so easy to use.

<comment><AUTHOR> I'm so sorry you had a bad experience. We're trying really hard to make it great! Our entire reason for being is to make it easier for people to tinker with and share examples.

One of the least obvious things of Observable is that it's not actually JavaScript—it's a reactive extension of the language. We're making that more apparent by making the dataflow visible, and we'd love to hear any more feedback or suggestions you're willing to share.

[https://observablehq.com/@observablehq/observables-not- javas...](https://observablehq.com/@observablehq/observables-not-javascript)

[https://observablehq.com/@observablehq/introducing-visual- da...](https://observablehq.com/@observablehq/introducing-visual-dataflow)

<comment><USER10> No where on the site do I see how to use these tools in my development environment. Even searching the topic produces no results. A quick browse of your GitHub does not lead to any obvious entry point for developing with Observable locally. This feels like a startup has prioritized onboarding people onto their platform rather than providing examples that are representative of how D3js is actually used. I am baffled as to why these are the official code examples.

<comment><USER11> It seems that Observable is an online environment - it's true that this is not explicitly stated, but it's alluded to throughout the homepage.

EDIT: Check out their about page for an explanation: [https://observablehq.com/about](https://observablehq.com/about)

<comment><USER12> > It seems that Observable is an online environment

The site's interface is a massive turn off. I love using my editor, and if there's a way for me connect it to Observable, I'd use the platform full time.

</comment></comment></comment></comment></comment><comment><USER13> I've done a few small personal projects in d3 and I like it a lot. My biggest gripe though, is that I can't find decent online help for it. It's not popular enough to have its own subreddit/stack exchange. So often when I've been stuck, I end up having to find 5 year old stack overflow threads that work about half the time.

Is there a good community for it I don't know about? Great tool either way though.

<comment><AUTHOR> Our goal is for Observable to support the D3 community, but we're not quite there yet in terms of collaboration features (e.g., making it easier to comment and ask questions on notebooks). We do have a nice forum, also: [https://talk.observablehq.com](https://talk.observablehq.com)

The D3 slack is another place you can ask questions if you don't want to use Stack Overflow. And you're always welcome to ask me questions on Twitter, and I'll try to point you to the relevant example or make a new one.

<comment><USER14> "Slack Overflow" ;)

</comment></comment></comment><comment><USER15> Having created mostly static in excel, I found the premise of d3 awesome! As the complexity to use it was kind of overwhelming, I ended up using plotly.js and its react wrapper for an analytical app at work.

Whilst this works great and is super straightforward, there's many little things that you can't easily control in plotly (and other similar libraries). They come with some bugs/quirks that perhaps are meaningless to 95% of their users, but limit me from making my ideal dashbaord.

E.g. plotly doesn't seem to support formatting a date as a week with a ISO8601 (%V): [https://github.com/plotly/plotly.js/issues/424](https://github.com/plotly/plotly.js/issues/424) and many other little things.

What's the best way to use d3 with react these days, then? Is there some recommendation from Mike or someone else who is experienced in this area?

<comment><USER3> Repeating a comment I made above, this semi-finished blog post I'm working on might be helpful:

[https://wattenberger.com/blog/react- and-d3](https://wattenberger.com/blog/react-and-d3)

I generally like to stick with React for DOM manipulation, and use D3 like a utility library.

</comment></comment><comment><USER16> > This may feel like cheating, but it's okay! Examples are not merely reusable > templates but tools for learning, hinting at subjects for study. "Breaking" > an example by tinkering—changing stuff and seeing what happens—helps you > achieve understanding faster than passive reading.

I haven't had to use d3 in anger for some time but have an idea that means I need to re-learn it; I haven't finished yet but this is a great article. Thanks all for writing and/or sharing it.

</comment><comment><USER17> In my limited experience, I've found that D3 excels interactive graphs / data visualizations. However, when I've tried to use it for interactive math diagrams, I've found that it doesn't save me much effort. I found it was still necessary to manually track state and enforce geometric constraints. (not mine, but here is an example where d3 doesn't help much: [https://observablehq.com/@renatoppl/torus- knots](https://observablehq.com/@renatoppl/torus-knots))

Does anyone have tips for getting more mileage out of D3? Or using other tools? I'd be especially curious if anyone's successfully used React+SVG for interactive science/math diagrams.

<comment><USER18> I have!!! I use d3 and react (and react native!!) together with SVG to create the charts on my site here: [https://hopewaves.app](https://hopewaves.app)

I learned from this repo [https://github.com/sxywu/react-d3-example/tree/master/src/vi...](https://github.com/sxywu/react-d3-example/tree/master/src/visualizations) . I have been using this combo for a while now so let me know if you have any questions about it

</comment></comment><comment><USER12> This tutorial is the best reference I've read in the six years I've used D3. Previously, the documentation was too esoteric for the normal person to learn. Now, this really opens it up for more people. Nice work.

</comment><comment><USER19> D3 is great, but last time I looked at D3 it worked a lot more like jquery than modern frameworks. Is it still worth using or in the decade there are better ways to work with React/Vue/Angular.

<comment><AUTHOR> One of the primary goals of this new introduction to demonstrate that D3 is not primarily a DOM framework, so you can use it with React, Vue, or Angular if that's what you prefer. I encourage you to read the post!

<comment><USER19> Thanks! I feel honored you replied. I'm mostly a backend programmer who tries a bit of front end work so dont have a lot of time to learn everything. I will try again because every beautiful visualization I've seen is d3 based.

</comment></comment></comment><comment><USER20> Had decent amount of success with learning plain SVG and generating it from Angular/React/Vue.js. It's very nice to be able to mix some SVG into your webapp, lot's of tools can generate SVG for you too...in one of my home projects I drew my apartment in Draw.io, exported it to SVG, copied it into a React project and added some lamp icons. Now I have a custom IOT frontend for my ikea lamps.

</comment><comment><USER21> I learned it a little bit when working on my scientific analysis tool for single cell RNA-seq analysis. It takes time to learn, but there are many examples out there.

[https://alona.panglaodb.se/results.html?job=uOBMsjyQfFK8G7wQ...](https://alona.panglaodb.se/results.html?job=uOBMsjyQfFK8G7wQjdPPXM3VacfYkm_5e665c15c718d)

</comment><comment><USER22> I'll provide another voice to support the idea that d3 is a really great library. For anyone who has tried to learn it in the past and found it a bit too complicated, I'd suggest you approach it with the following perspective: Learning d3 is more about learning SVG than it is about learning d3 (unless of course you already know SVG).

</comment><comment><USER23> There are more and more articles on hacker news where I find myself reading an article about X, only to find myself wondering the same thing as before I read the article: "What is X?".

</comment><comment><USER24> D3 has fascinated me for the past 3 years. I've spent this time embedding interactive charts in mobile apps. Thanks for creating this

</comment><comment><USER25> Interesting. Is there a reason someone would prefer D3 versus say R's ggplot2 or Python's seaborn for a non-interactive graph?

<comment><USER26> One of the reasons I love d3 is that it's built on standards such as CSS and SVG/HTML. They are so widespread you can't go wrong learning them, and that knowledge is immediately usable elsewhere (other related benefits include extremely powerful graphic capabilities and tons of documentation).</comment></comment>


Ask HN: How did you find your passion? - <AUTHOR> <comment><USER2> All my passions are either commercially not useful or things I am not talented enough to be in front. Example: martial arts and boxing. I really loved it but I am naturally very nonathletic so I was never be able to hang with the top people which is frustrating considering the effort I put into it. Same with hiking and photography. I like doing it but somehow I lack the artistic ability to stand out.

I have passion for software development. I am good at it but somehow I never managed to do it in an environment that doesn't kill my passion for it. I have done my own thing but failed at the business side like selling.

I really wish I had passion for something I am good at and that also allows me to do it for a living instead of feeling like I am wasting my life sitting in a cubicle. People who have managed to make their passion into a career should be envied.

<comment><USER3> Remember this: Albert Einstein had a simple clerk position in a Swiss patent office. While working at the patent office, Einstein had the time to further explore ideas that had taken hold during his studies at Polytechnic and thus cemented his theorems on what would be known as the principle of relativity.

<comment><USER2> I am not sure what to learn from this.

<comment><USER3> You're not wasting your life sitting in a cubicle. Your mind is always free to create and discover...

<comment><USER4> Sometimes a low stress job is ideal for the opportunity to create.

<comment><USER3> But high stress can do some amazing things to your brain. And immediately when I found this out I use it at my advantage. For years I worked on my project with results like "a step forward, two steps behind". So I quit my job with only a few thousands $$ and put as much stress on my "system". I found my "eureka moment" a few days before I ran out of $$. They call this the survival instinct.

<comment><USER2> I think it's great that you succeeded but you shouldn't generalize your experience. I also put everything on the line for a business idea and failed miserably with a lot of debt. There are a lot of factors involved in success. It's not only persistence.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> As some commenters have alluded to anecdotally, there's science behind the idea that "follow your passion" is bad advice. So it's not something you find, but rather something you build. There are probably very many things that could become your passion(s) if you build them.

I'm still working on building mine. I've found at least one (coding) that fits into the picture somehow, being that I've been doing it since I was a kid. Some others are more recent interests that I want to spend a few years diving deeper into before rendering a verdict.

Cal Newport wrote a whole book refuting the "follow your passion" hypothesis in 2012: So Good They Can't Ignore You [1].

And more recently, there's a Stanford study out that makes the same claim [2].

[1] [https://www.amazon.com/Good-They-Cant-Ignore- You/dp/14555091...](https://www.amazon.com/Good-They-Cant-Ignore- You/dp/1455509124)

[2] [http://gregorywalton- stanford.weebly.com/uploads/4/9/4/4/494...](http://gregorywalton- stanford.weebly.com/uploads/4/9/4/4/49448111/okeefedweckwalton_2018.pdf)

<comment><USER6> There is another great book written by Cal: Deep Work [1].

Don't follow your passion. Instead, become _really_ good at something. Apply methodical approach to improve your craft skills. Once you got mastery, you might actually like it.

[1] [https://www.amazon.com/Deep-Work-Focused-Success- Distracted/...](https://www.amazon.com/Deep-Work-Focused-Success- Distracted/dp/1455586692)

edit: formatting

<comment><USER7> > Don't follow your passion. Instead, become really good at something.

The important question always seems to be: at what?

You can't pick a lot of things because mastery takes years, and if you picked something you're unsuited for, you've just wasted a lot of time.

This just doesn't seem like a high value proposition.

</comment></comment></comment><comment><USER8> There are lots of self help resources on the topic (ex. [https://youtube.com/watch?v=6pgaJb2Wwhs](https://youtube.com/watch?v=6pgaJb2Wwhs)), but IMO a passion is when you enjoy the process of something rather than looking forward to an outcome. Your life probably already demonstrates your passions.

What do you actually do in your free time (not what you wish you were doing)? Go to the bar? Play video games? Go to the beach? Those are your passions right now.

If you want different passions, try different things for an hour a day for a week or two. Try hiking, photography, reading, writing, etc. If you enjoy the act itself and such with it, it's a passion of yours.

IMO, there is no shortcut, you have to try different things until they click.

<comment><USER9> Simple advice but I needed to be reminded of that finding your passion partially means that you need to try _everything_.

Okay, maybe not everything, but it sure sounds fun! :)

</comment></comment><comment><USER10> After years of hearing people I respected on podcasts talking about how Brazilian Jiu Jitsu is one of the most dominant fighting sports, a smaller guy can beat a bigger guy, etc... I hear a philosopher I like talk about how it is the most thoughtful and complex practices he does. He says he's like an addict who is carefully maneuvering around injuries to practice it for the rest of his life. I decide I'll give it a shot.

Cut to me, a 21 year old weighing in at a strong ~200 pounds (I had been powerlifting for a couple years), getting flipped and choked in under 15 seconds by Doc, a 60-something year old brown belt at my local gym. Nearly four years later, I spend 15-20 hours a week at the gym and I think about techniques all day long.

I'm a software engineer by trade, but my "retirement plan" is definitely opening a gym and moving the other 40 hours I spend coding into this. The best description I have heard is "chess with your whole body", when you start to learn how movements interact with each other on a higher level than just trying to survive, it's the most complex and precise physical activity in the world.

And there is always someone who can make you feel like a child fighting your 300 pound uncle.

<comment><USER11> Do you still lift? I'm pretty into weightlifting and I'd like to add a martial art and BJJ looks like the best fit for me, but I don't want to lose muscle definition.

<comment><USER12> Continue to lift. Eat protein. Your TDEE might go up if you lift the same amount and add BJJ on top. If recovery becomes an issue hit the usual sleep, hydrate, eat, stretch points.

Most of what I've read about muscle loss is that it happens when you eat at a deficit or don't hit your protein targets.

This video talks about the creators experience balancing BJJ w/ lifting. [https://www.reddit.com/r/weightroom/comments/6o8ubw/balancin...](https://www.reddit.com/r/weightroom/comments/6o8ubw/balancing_weights_and_bjj_dr_mike_israetel/)

Edit: personally I switched to a 5/3/1 variant for athletes, but plan on going back to a higher volume program soon, after some weight loss.

</comment></comment></comment><comment><USER13> I found my passion by getting really pissed off. One day I was sitting at my windows xp box and I wanted to do something really stupid/simple. I wanted to change all the icons for a application so it would fit my theme. Long story short I ended up switching to ubuntu learned to program and learned more about operating systems and networking then I ever should have. Now as a software developer I find my passion is driven by being pissed at a problem or situations that I want to control. Twitter tells me I can't do what?? I will write entire library just for that purpose. Windows 10 wants to run what in my background?? I will either figure out a way to change that in the registry, boot it in linux and delete things I shouldn't, or write some script that keeps it in check.

<comment><USER14> > I wanted to change all the icons for a application so it would fit my theme.

In 2012 I wanted to move the notification badges to fit my theme on my jailbroken device. However there were no way to do it, so I got into developing software for jailbroken devices and did it myself. 6-ish years later I still do it. It also led me into my current (iOS) developer career.

I've been programming for way longer than this, so my passion was known beforehand, however the current direction seemed very relevant to your comment.

</comment></comment><comment><USER15> 2013\. My 19yo self, having spent almost two years doing nothing but learning programming, wants to read CS at the uni, but knows not maths. Signs up for a class to prepare for the national uni qualification exams in order to learn enough 1 + 1 to qualify for a CS undergrad course. But midway the preparatory classes has a crush on the philosophy instructor and reads a platonic dialogue and 1984 to impress her. But ends up actually falling in love with literature and studying Italian literature from fall 2014. Fast forward to 2018: I'm now freshly graduated and considering whether to study general literature for my master's or comparative literature. I'm also planning a career in academia. But I also have programming skills and live in Gnu Emacs compiled from master and run Debian stable on my laptop (after a year of FreeBSD after some years of Arch Linux). So a bit of a unique blend I have ended up being :)

I guess I should be thankful to how stupid I was back then (hopefully I improved a bit since) :) Getting into philosophy and literature has not only change my career plans, but helped me tackle my adolescence depression, have peace in my mind, and overcome the coercions of tradition and society and work towards realising myself.

</comment><comment><USER16> travel on a shoestring for a year and then work abroad and expose myself to different cultures, helped me discover mine.

maintaining passion over a longer period of time (turning the hobby/passion into a career) is much harder than finding it. it requires a routine with a rule to restrict/timebox the joyous activity as much as one timeboxes the chores.

Hunter S. Thompson's Letter on Finding Your Purpose and Living a Meaningful Life [https://fs.blog/2014/05/hunter-s-thompson-to-hume- logan/](https://fs.blog/2014/05/hunter-s-thompson-to-hume-logan/)

<comment><USER17> That's an interesting point - passion does fade over time. I spent 10 years of my life intensely devoted to music, but at some point it just evaporated. It's baffling, really.

As for software development, I found my passion as a kid when my father taught me some simple scripting on his old Dolphin. I was simply amazed by the vast landscape of possibilities.

</comment></comment><comment><USER18> I didn't find mine until recently, but even then - it definitely found me.

I worked really hard on stuff that I just "liked" enough that I said "hey, if this is all I did, I would be happy and would make enough money to live." This was actually something that Phil Knight talked about in Shoe Dog - he was an accountant, and he knew that if Nike totally failed, he could still be an accountant and eat.

Eventually I fell in with a group of people where a bunch of things lined up - it matched my technical skills, I liked the people I was working with, there were a set of long-term goals I really believed in, and there was career runway within those goals. I hadn't done anything proactive to find myself in that situation, I just tried to work hard and be pretty good at anything I was doing.

If you don't have a passion yet, I'd instead recommend getting a reputation for being responsible, proactive, and enjoyable to work with. Be an executor. That gets you introduced to people who have passions and need someone who can help them get the job done. Being around those people is critical to helping you discover your own passions.

</comment><comment><USER19> People usually think passion is a magic spark that ignites and suddenly you become obsessed. And maybe that is the case when you're still young.

As an adult I've found that passions do not suddenly explode but are built out of habit.

Sure, you need an interest in something to begin with (finding a thing that is compatible with character), but one has to put some effort until that interest gains momentum, so to speak.

</comment><comment><USER20> Originally, my primary passion (non-fiction writing) arose as a form of escapism. I was unhappy with my life due to a bad marriage; she turned out to be a nasty person and a secret hoarder who spent us into the poor house within a few years. I had long been trying to write fiction, but I found none of it worthy of exposure to the public. So I decided to try my hand at non-fiction. After all, I had been collecting knowledge of strange true stories for as long as I could recall. Writing served me well in distracting me from the crappy situation I inhabited.

In a way I was lucky; I discovered this passion and acted upon it when it was possible to launch a small website, start publishing, and have a reasonable opportunity to cultivate an audience (ca. 2005). The site now has tens of thousands of monthly readers. I still love writing non-fiction, but my life is much better these days. I divorced the wretch, married a great woman, and started a family. It's harder to find time to scratch the writing itch, but I still find scraps of time here and there.

</comment><comment><USER21> My passion used to be programming. I went back home and programmed or read stuff about programming. After close to 10 years in job market, I think it's not so great idea after all. It was much harder to de-stress. I took problems at work too personally. I sometimes made work decision that weren't unbiassed enough. Now I think that no matter how much you like your work, for long term personal well being do not do it at home.

My current after work hobby in an unlikely place. Precision rifle competitions. It's very scientific sport in nature - winning is pretty much about forecasting flight of your bullet, that involves lots of physics, statistics and controlling 10s of different variables. Recent king of 2 miles competition looked more like science olympiad: [http://precisionrifleblog.com/2018/07/05/what-the-pros- use-k...](http://precisionrifleblog.com/2018/07/05/what-the-pros-use- king-2-miles-edition/) .

</comment><comment><USER22> I think I got very lucky or I get easily passionate about things.

When I was 13 I wanted to become a hacker, my dad got me a scrape yard DOS box with a then already obsolete 386SX. There was GW-Basic on it and I hacked away trying to implement viruses. I got me a QBasic compiler and wrote a programm that overwrites the config.sys and autoexec.bat and catches the usual interrupt keys like ctrl-c. Then it showed a blinking colorful ascii-art. My mother was not impressed when I let it run on her accounting machine...

Fast forward 3 years, I played piano for a while but it felt not cool enough and I was in to classic rock (I still am) so I wanted to learn guitar since I couldn't afford a Hammond organ. My friends needed a bass player and so I listened to my favorite songs, figuring out what bass players actually do and it got me. So I learned bass.

2 years later I finished school and wanted to study Jazz with my bass, tried to get into universities but they somehow felt I wasn't completely behind it, being more of a rock guy, still I wanted to move out from home. I remembered my coding sessions from my early teens and went into CS. After 2 semesters I realized that programming and reading about CS 8 hours a day is fun, 8 hours of practicing bass isn't.

Since then I love my job and still have fun with a blues rock band in the evenings. Only downside, I don't do martial arts anymore (Boxing, Kali), I got afraid of hand injuries.

So as stated, there was a lot of luck involved but still I found out, if there is a slight chance something is fun to do and you invest some energy, you probably develop some passion for it. I never thought about it if something is commercially useful or if I even got good enough to stay out of the masses, I don't do magic on the bass, I'm not the best dev out there. But at least I feel good after coming home from work and every time wasted with the band is time well spent. What else do I want?

</comment><comment><USER23> Learning to build discipline will keep you moving forward until you find interesting opportunities in most any problem.

The world isn't responsible to entertain, fulfill or inspire us. We have to learn to see that for ourselves, until we do, we have to put in the work until we uncover things about ourselves we like doing. Try new things regularly to cultivate a truly open mind. Passion can't exist where logic alone is.

Passion doesn't matter as much as you think. If you can through saying yes to solving problems uncover a universal passion (learning, helping others, making tech work for people) you will find it can be applied anywhere.

This helps to separate the industry from the improvement and making a difference. Sometimes we have the same lessons to learn no matter the path we pick. Choice can be an illusion when we are still learning to become well rounded and would probably learn the same skills from a few equally positioned opportunities.

If that doesn't make sense, for me the idea/area doesn't have to be as sexy as much as building the entire system around it, and effecting change with it.

I have worked in some dry industries, but I had plenty to learn independent of industry which was thanks to good people. I picked up a lot of transferable skills that I applied when those opportunities that I felt passion for came up.

PG is right, solve problems, build stuff that people want. Make tech work for people, not just the digitally inclined.

</comment><comment><USER24> My mother died recently(~2 years) from cancer and the things she thought I would do, and even I, at some sense, tried to and gave up, came back.

I was a naturally talent kid for music. Even without any education I could get a instrument and figure it out. Sure, that wouldn't me make a great player, as that involves a lot of dedication. But we were very poor and couldn't afford the instrument or the musical education(or the time to, as music rarely becomes something profitable in one's life) and I instead focused on at least having a job. So I studied computer science now and live abroad. Good choice.

So, I've bought a guitar around the time she died and started playing. Definitely not playing as much as I should to become very good, but enough to talk about it being a hobby. I also enjoy it very much. I think that if I would try to become good(as I had to, for other things, in exchange of money), it would lose the fun of it. So I don't try hard.

My other hobby is reading. I want to learn how to speak German(I can speak other 3 languages), as I live in Germany and have been trying to improve myself in that language consistently. I'm not such a good language learner, but I've been consistently studying them throughout my life.

Another hobby I would like to take on, maybe once I get more confortable with life in Germany(and the language) is to paint. I can draw quite well but got bored of it. I had plenty of fun painting at school and some other occasions. I really like color and abstract art. It is very relaxing and might help me to relieve some stress from my day job as a software dev.

</comment><comment><USER25> Honestly, I started w/ my pain. What caused me to struggle the most often goes against my core values. It wasn't until I sat and jot down "why" my recent problems escalated so quickly and had a greater negative impact. Often my new problems were mirroring old problems. It was then that I realized my beliefs. This is where I stood during adversity. What I was willing to fight to protect and nurture. It's why I'm willing to stop every bad habit just so I don't become its bottleneck. It's my compass for every decision. Your passion has a direct correlation to your pain. Start w/ your pain, verbalize it instead of being reactive. Once you know the words at least you can go to thesaurus.com and use the antonyms as a start to explore your passion ;-) Good luck and much joy to ya!

Also, passion isn't just a burst of energy, excitement or full of woo-woo emotions. It's strategic, empathetic, intelligent, loving, strong, and actionable. Plus reading/listening to Start with Why is helpful AF! Much success to you on your journey!

resource: [https://www.goodreads.com/book/show/17447384-start-with- why](https://www.goodreads.com/book/show/17447384-start-with-why)

</comment><comment><USER26> Career wise? I haven't yet. I've found a company I'm really excited about and have applied though but just playing the waiting game.

Outside of career? Reading. Reading a lot. I read a ton of hard science fiction and SHTF type stuff as well as books like The Doomsday Machine: Confessions of a Nuclear War Planner by Daniel Ellsberg (just started it this morning, been sitting on my kindle for months) and Powering the Future: How We Will (Eventually) Solve the Energy Crisis and Fuel the Civilization of Tomorrow by Robert B. Laughlin. Reading books like these have, over probably 20 years, really developed a mind that spends a lot of time thinking about what problems our species faces in the immediate, near and even far future. I enjoy this, even though many things outright terrify me for my own future as well as our collective future.

I like the 'what if' aspect of how reading this variety of works has brought about in me. What if nuclear war, what if asteroid impact, what if supervolcano, what if peaceful first contact via broadcast or in person, what if automation frees up humans to do what they want to do instead of working to live, what if cancer is all but irradicated in small religious sects, what if what if what if.

<comment><USER27> I'm same as you, but I'm actually getting tired of it. Everytime I encounter a problem, I start compulsively thinking in this direction, scaling it during the process, eventually getting frustrated about my inability to implement necessary changes.

<comment><USER26> I feel you. Food production is a big one with me right now and I've been drastically reducing the animal products in my diet and switching to less processed foods (black beans have become my staple).

I find writing can help manage it a bit, in fact I just finished a piece on food production and indoor farming [https://www.ryanmercer.com/ryansthoughts/2018/7/8/tackling-t...](https://www.ryanmercer.com/ryansthoughts/2018/7/8/tackling- the-problem-of-food-production)

<comment><USER28> What are some good things to do with black beans?

<comment><USER29> Peruvian Black Beans with Rice & Aji sauce (Yellow or Green Sauce) is delicious and inspired by a local place I ate at a few times.

Black Bean burgers/patties are great.

I like making tacos with the refried beans (mashed or not).

You can also use black beans in 'stir-fries'! I'm actually trying to decide what typical Asian sauce to try it with next. Maybe General Tso's?

</comment></comment></comment></comment></comment><comment><USER30> A parent dying in my early 20s. Now I'm in my 40s, but because of that age maybe (not handling death maturely), I became obsessed with the immortality / singularity movements. Now it's become who I am, someone that believes technology is the answer to everything and I find anything else boring / immaterial (stopped caring about sports, recreational maths, fiction, politics etc, that I had a passion for in my teens).

</comment><comment><USER31> I wished upon a star.

Joking asides, I think a better question to pursue is how to find contentment. One key for me has been learning to live for today and not worrying too much about tomorrow.

A friend just received more money than she could have ever imagined. Sadly it was an insurance payout after the untimely death of her young husband. I know what she would rather have.

Keep reading, learing and making plans but don't get too hung up on what you think is missing and enjoy the now.

</comment><comment><USER32> I like my job (marketing strategy and execution). But if I could I would play competitive starcraft all day, every day. It just scratches an itch.

</comment><comment><USER33> I don't know that I've found things which I'm passionate about as much as I've found things I enjoy, or which intrigue me, and I pursue obsessively competitively in order to excel. Whatever it is, I become fairly skilled at it, through sheer determination, persistence, and immersion, then for one reason or another I move on - no financial reward, I find the point where genes separate the men from the boys, etc. I'm a programmer for a living. I enjoy doing my own programming, not so much work programming, but partly do it simply because I've been doing it since the zx81 - "... if you're warm and happy in a pile of crap, keep your mouth shut" \- or something. The Helsinki Bus Theory seems worth mentioning in this conversation: [https://jamesclear.com/stay-on-the-bus](https://jamesclear.com/stay-on-the- bus) .

</comment><comment><USER34> Step one, it seems to me, is to figure out what passion isn't ... there are several mental trips that may _seem_ like passion, but don't last. I think of it as a challenging journey you're drawn to regardless of what others think (so it's not ego-tripping) or how conventionally rewarding it is (if it is, lucky you, but ... danger, Will Robinson).

Something that opens you up and allows you to develop ... challenging enough to keep you from ever getting bored. A large set of related problems, for example, a universe to apply your growing expertise to.

That (not so elegantly) said, finding it may mean a lot of trial and error. So staying open to new candidates is important, until you can rule out most avenues and focus on those you stay drawn to.

</comment><comment><USER35> Finding your passion is a bit of a trap; this article explains some reasons why:

[https://mashable.com/2017/03/22/7-habits-you-need-instead- of...](https://mashable.com/2017/03/22/7-habits-you-need-instead-of-passion/)

Some of the history of "passion primacy" is based on the Hedgehog Concept of Jim Collins in his book Good to Great:

[https://www.jimcollins.com/concepts/the-hedgehog- concept.htm...](https://www.jimcollins.com/concepts/the-hedgehog-concept.html)

Mr. Collins was talking about great companies, however. But his three criteria are instructive.

Put another way: passion finds you. And it probably won't if you're thinking too much about it.

</comment><comment><USER36> I discovered Brazilian Jiu Jitsu in college and have trained 5+ times a week (barring sickness and injury) since then.

I am not very good, but it is definitely my greatest passion. I took a PE class on a whim after a professor talked about it and it has defined my life ever since.

</comment><comment><USER37> I found my passion researching about spirituality. We spend so much time doing daily worship and related rituals, I decided to dig into the meaningfulness or otherwise of this. That has kept me going for last 4 years or more, bridging the link between Spirituality and Science. I think today most people are missing out by not finding out what the composite goal for life should be, I would love to make them think on those. But at my age of 78, I dont have energy or technological ability to set up a video, audio or similar lecture medium. If I did that I would find a meaning for my life at my stage. That is still my passion and that could keep life exciting.

</comment><comment><USER38> My two (biggest) passions are code and the guitar. The latter I discovered after I found a html-guitar-course on my friend's laptop when I was 14 and simply went for it (I'm 32 now).

Finding the former was more interesting. I started coding a little bit when I was 12/13-ish, but it was never more than the basics. Some QBasic, HTML and Visual Basic. I wanted to do an apprenticeship as a software-dev, but I guess my math-grades were too bad back then, and I was discouraged to pursue the path any further. So by 18 I did one in an unrelated field (banking) and during that started drawing/painting a lot.

I thought I found my calling/passion/etc. and went to an artistic secondary school and studied Design in Munich (Graduated with a BA).

Around the middle of Uni (26), I had posted a painting [1] to ConceptArt.org for critiques. I had spent several hours on that one. One respected and popular member mentioned, that the painting is nicely rendered and all, but it doesn't make sense; it has no message; it's saying nothing.

That comment and lots of thinking made me realize that I actually wanted to _have painted_, and not really to paint. I had nothing to say, there was no purpose I wanted to fulfill by doing art, other than get likes and compliments.

It took some time (years) until I was completely honest to myself regarding art. (Nowadays I do pixel-art, calligraphy and caricatures occasionally, but seldom)

Thankfully, we had a very good HTML/CSS-Intro-Course in Uni, which enabled me to make a website for my friend's band, which helped me get an internship at an agency where I did design and HTML/CSS. I very quickly discovered what I should have known for 15 years: that coding and building digital stuff is my passion.

I am still working there. Now as Senior Front-End-Developer. Every day I am grateful that I can work in this awesome (and well-paid) field, doing work I like and enjoy.

[1] [http://radovcic.blogspot.com/2011/01/guitar-girl- ii.html](http://radovcic.blogspot.com/2011/01/guitar-girl-ii.html)

<comment><USER15> > I actually wanted to _have painted_, and not really to paint.

Oh, this resonates so much with me... But WRT purpose of art and it having a message, I don't think that that's a valid approach. I'm into writing fiction and poetry, and (also as a graduate in literature) believe that art is not a medium for messages. It's a form of reflection, exploration, thinking, experimentation. If there ever is a message, it's what the spectator/reader/listener collects.

</comment></comment><comment><USER3> Well...this is how:

It was 1997, I just landed in San Francisco as a fresh new commercial Architect/Designer... and I was just starting coding in my spare time.

I got lots of contracts designing new .com Startup and was invited to there "opening" parties. At one of the party, someone asked me a question that will change the course of my life.

<<are you going to invest in our coming IPO?>> IPO... what the hell is this ??? I said...

A few days later, I came across an article about how Miami was fighting crime using a Pattern Recognition Software. And I thought I could apply the same kind of software onto the Stock Market... and this is how I found my passion.

</comment><comment><USER39> From a very young age I was obsessed with adversarial thinking. Some of interest came from being raised on heroic tales of Hannibal of Carthage and Archimedes out thinking the Romans. I can't not think about breaking systems.

</comment><comment><USER40> Define passion. Your better off understanding your fundamental drives beyond basic primal urges. Is it money? It is power? Is it helping others? Is it praise from others?

My own personal experience is this. I did engineering, then worked in various parts of the hardware/software stack and found myself in finance. I have no real interest in finance, but much more in economics. I love economics. I have this deep desire to understand why we do the things we do and why the world works the way it does today

</comment><comment><USER41> There's also a slight chance you might find similar answers from asking this specific question in HN.

Imagine asking this question in a literature conference, juggling competition, cup-stacking competitions, etc.

Various age groups, hobbies, interests will show that people find passion in different ways. However, it'd be intriguing to see the similarities between the "how" and "why" of people discovering their passion.

</comment><comment><USER42> My friends think its passion, but really I just forced the medicine down until it became habit, then a permanent fixture, and now is familiar and relaxing. I love learning new things but the "passion" idea is really just me exploring the nuanced depths of a topic I now know a lot about, and that seems to be fulfilling enough that it can masquerade as "passion" to outsiders.

<comment><AUTHOR> Could you elaborate? Are you eluding to software engineering?

<comment><USER42> Software engineering (not as a job) for data analytics and data science that help me automate information consumption.

</comment></comment></comment><comment><USER43> I had a family and developed hobbies with some depth to them.

Work is fine, I'm grateful for what I do as it puts me in a better position than the vast majority of people on this planet. I enjoy solving engineering problems, so I truly enjoy a portion of what I do Mon-Fri.

It's not my passion, and I'm fine with that. There was a time in my twenties when it was, but now I invest myself in other things.

</comment><comment><USER44> I became passable at software development and could then create stuff I like.

I didn't realize just how creatively challenging and empowering software development is when I started studying engineering, I knew I was ok at math and just wanted to get a job. I got the skills to do stuff I was passionate about because of it, and I do all the things I'm passionate about off the clock.

</comment><comment><USER45> After the world fell apart around me.

Little dramatic, but here's my shitty life story as fast as possible. My girlfriend of just a few days shy of 6 years left me, day before my birthday. For another graphic designer that was mildly...successful? Whatever, I failed as a designer. We just moved to the west coast. Zero family or friends. I couldn't find a job. Was a truck driver for a while. Quit that. Lost my apartment. Luckily I made friends with a guy that let me crash at his place a month prior to eviction. Broke, shit work, student debt, freshly single, no real home, no old friends, family broke ties with me a while back for other reasons I won't get into, thus I literally watched buses go and tried to find the best road where they maintained high speed with easy access for me to walk into.

My literally only friend now got some IPAs and I drank myself silly. The next day, hung the fuck over and sitting outside, I realized I didn't want to even attempt a better "old life", which is the default setting to getting your life together.

Round about way to saying "freedom" is my passion. Started some businesses with that buddy. Taught myself to program in 2 weeks (yes, I'm that asshole programmer you all hate, but I'm far better now than those days). Taught myself sales skills and worked commission only at Frys to build up those skills. Got contracts and never had an employer since. I walk away from anything I want to with zero fucks to give. Each of my contracts have a clause I sneak in that I can drop the project whenever I want with no repercussions. No lawyer has ever caught it in the past 6 years. I do what I want without a single concern for permission or qualifications. Especially since a majority of college edu lawyers are that retarded. I learn different programming skills and do them. We wanted to setup a retail shop that competes with a local law enforcement supply store, we did that. Worked on wind farms. Did a few power plant jobs for various things. Worked security surveillance contracts. I've been asked by a police chief to run some classes he holds for the state. Did one so far, it was fun. I write as well and get paid for most of it. 3D modeling for fun, sell that too. I'm finding a muscle car beater I can project repair and learn some mechanic skills. Wood working on the weekends. No permission. No asking. Just do what I want, nearly exactly to when I want (within reason obviously).

Or I could have been a graphic designer. Just the one thing.

I think the one passion thing is horseshit mostly. That's why people feel "lost", like I did. Diversify, just like in everything else. Like all the things and have fun. Even the high class mathematicians and physicists of history have multiple and many passions. They're normally considered "hyper focused" by pop culture idiots. Read a book on them. They weren't. Every single one was ADHD as fuck.

Just do shit and ride that wave. Farther from "normal", the better. Random cool things are bound to happen. Just roll with them. I always loved surfer mentality.

Figured doing this on my phone would force me to keep it short... fail. Excuse errors.

<comment><USER46> Impressive comeback for sure. When you say 'Got contracts', how do you go about finding these contracts? Am in a similar place to where you were where I've little interest in 'improving the old'; Would rather just deliver value to a bunch of people but don't know how to find the people to deliver value to!

</comment></comment><comment><USER47> I pretty much found my passion when I was 5-7 years old and played my first video games on my father's Commodore 64 and Apple IIe, playing board games and card games with my grandparents, and then the day I met my wife and when our children were born. None of those pay the bills, but they don't have to.

</comment><comment><USER48> I read Steven Levy's Hackers. I'd been doing tiny bits and pieces of coding here and there (this is pre High School) in ActionScript, VisualBasic/FoxPro etc, but that was the book that inspired the hell out of me.

I started spending more and more time learning things and here I am. (Software/InfoSec/UX)

</comment><comment><USER49> Have not found my passion. Currently using money as a proxy. Optimizing my software dev career for it.

</comment><comment><USER50> One part accident, one part research. I took a college class that cast a lot of light on things that I had thought were "normal" for people like me, but weren't. Then I researched what my options were for doing something with X that met Y parameters.

<comment><USER51> Could you elaborate on this?

<comment><USER50> I was a homemaker, military wife and homeschooling mom. I returned to college and took two classes and CLEPed some others to lock in my old college credits so I wouldn't have to start over from scratch if I ever got around to going to school again. If your classes are too old and you didn't complete a degree of some kind, they won't take them as transfer credits.

One of the classes I took was an online _Environmental Biology_ class (possibly not the correct name of it). The big project for the class was to plan a residence in the middle of nowhere that didn't have existing infrastructure, like electricity and sewer, and how you would support yourself in the middle of nowhere. I immediately knew that half of my answer was "Build an Earthship."* This clued me that, no, not all homemakers are fascinated with alternative energy, passive solar design, etc as some means to save money and so forth.

I decided that quarter that I wanted to do something career-wise with the built environment. I pulled out a big book of college info on various universities in the US and scoured it for majors having to do with the built environment.

Architecture was on the list, but architecture programs generally are self- contained and do not take transfer credits of general ed classes. I would have to start completely from scratch.

Civil Engineering was on the list, but required multiple Calculus classes. Although I had a strong math background, I had dropped out of calculus my first quarter in college and never wanted to see it again.

I think there were about six or seven majors on the list. After going through all of them, I settled on Urban Planning as the degree program and career that interested me. Most Urban Planning degrees are Masters programs, not Bachelors. That fall, I enrolled in an online BS in Environmental Resource Management.

At some point, my life was derailed by a serious health crisis and divorce. I never completed my BS degree, though I did later get a Certificate in GIS (equivalent of Masters level work) and I moderated a planning sub-forum for a time that I founded on what was, at that time, the world's foremost planning forum. I currently do some volunteer work at a non-profit that is pertinent to this interest and I have a very part-time job with the same non-profit.

I don't know if this will result in a planning job (unlikely, since I have no driver's license) or exactly where I am going with this, so I didn't really want to get into the details because, in some sense, it is currently a failed dream. But I felt the basic model of "have epiphany, then do some research to flesh it out" might be a useful thought for some people.

* [https://en.wikipedia.org/wiki/Earthship](https://en.wikipedia.org/wiki/Earthship)

</comment></comment></comment><comment><USER52> I think I only have my passions in life because I don't have to spend all day doing them in an environment that isn't conducive. I really enjoy coding but I have had jobs that make it a chore and not fun.

I also really love learning Chinese!

</comment><comment><USER53> For me it's commit to th unknown if you have 1percent of interest and if you could do that job without any motivation that's your job. If not then move ahead to another until you click. Keep repeating .

</comment><comment><USER54>
      The belief that interests arrive fully formed and must simply be "found" can lead people to limit their pursuit of new fields and give up when they encounter challenges, according to a new Stanford study.

      Mantras like "find your passion" carry hidden implications, the researchers say. They imply that once an interest resonates, pursuing it will be easy. But, the research found that when people encounter inevitable challenges, that mindset makes it more likely people will surrender their newfound interest.

[https://news.stanford.edu/2018/06/18/find-passion-may-bad- ad...](https://news.stanford.edu/2018/06/18/find-passion-may-bad-advice/)

</comment><comment><USER55> I love cars.. so I went where the money was in order to afford my taste in cars. You win some, you lose some.. :)

</comment><comment><USER56> What Scott Adams has to say on the subject:

[http://slidesha.re/1dPgJ0p](http://slidesha.re/1dPgJ0p)

[http://blog.dilbert.com/2014/01/21/goals-are-for-losers- pass...](http://blog.dilbert.com/2014/01/21/goals-are-for-losers-passion-is- bull/)

</comment><comment><USER57> Here's my tiny secret I use in my mind to try a lot of new things with the same amount of energy and enthusiasm (without feeling like I'm getting beat down)...

I think of my life like a series of lit candles. I actually visualize it as such.

Each candle represents a project, a way to make money. When a candle dies or the flame goes out, it means I got bored of that project, it didn't make money, it failed, whatever.

The goal of my life is to have several lit candles at once, and not only that, but a better and better FALLBACK.

A fallback in my terms is basically "if EVERYTHING else fails, you will have THAT thing as something that makes you happy/will carry you the rest of your life". It's basically something you have _already_ achieved, or have, or ONE HUNDRED percent certain you can get it if you don't currently have it.

The point of a fallback is that it lets you focus on something, giving it your 100%, without that nagging feeling like you're "wasting time" or FOMO. You can fully commit to it, and just enjoy it for what it is, without a fear of failure (because why should you care if it fails, you can always do X, your fallback)

When I was 22, my fallback was "I can at least learn real estate, which isn't that fun, but I can make money and I can backpack around the world on a shoestring budget"

insert _more projects, more success, more freelancing_... all driven by the limitless energy stemming from the fact that the 'worst case scenario' wasn't actually so bad.

When I was 25, dozens more lit candles, dozens more burn out, my fallback was "at least I can do freelancing for $20/hr for the rest of my life and have true freedom to do whatever I want"

When I was 28-29, my fallback was "at least I can make $230K+/year coding, working for someone else, but still making an awesome living and traveling"

When I was 30, my fallback was "at least I can make companies in a weekend and just make money from all my side projects, and potentially try to hit a winner to retire, and if I don't hit it soon I can always go back to working"

When I was 33, my fallback was "at least I have the relationships with my network that I aggressively spent time building to build at least one 50-100 million dollar business... at least I have about 20 very successful people wanting me to build stuff/start companies with me and any one of them could be a winner.. and if EVERY ONE ELSE FAILS I can always get a job and travel"

That's where I'm at right now. Each fallback increases over time, just keep replacing candles with more candles and let others burn out.

I probably have gone through 500 candles... some burn for years before they go out, others burn for a day. I have over 100 private repos on my GitHub of (fully-written) projects, 90% of them bombed. I've met an insane amount of awesome people in the process, and have learned a lot. The companies I built that are successful are now are doing well, including one in the alexa top 50.

All of this came from a boy sitting in a room of my friend who graduated from harvard saying "you should learn programming" and me thinking "Im just an art student, I'm way too dumb for that"

So programming / business / companies is one passion.

For my other passions, guitar, drawing, painting, biking... those don't come EXTREMELY naturally to me, except drawing, but I have drawn since I was a kid and it just 'makes sense'. Just because I'm really good at it (fairly early on) however doesn't mean I don't struggle with the resistance to doing it every day. Sometimes I look at people who are obsessed on instagram and can just paint or draw for 10 hours a day... and wish I had that. I suppose in that sense coding is my most crazed obsession, I can program for 15 hours a day fairly effortlessly. But other hobbies I have to work for it.

</comment><comment><USER58> Over time I've discovered several interests that probably meet the criteria of being passions. They wax and wane, and I find I usually burn really hot on them initially, go through a cooling off period, and come back eventually after having taken a break with something else. The frequency with which I come back tends to mark how big a passion it is for me.

A few examples of how I came across them:

\- Photography -

Started working at a company where photography is front and center in everything I do. Started there with no real skills or gear, am currently several years in, have a DSLR, several lenses, am comfortable with Lightroom and Photoshop, understand photography technique, and am actually proud of some of my work. With the responsibilities of life eating up my time, these days I focus more on mobile device photography, and on taking fewer, better photos.

\- Espresso -

Was introduced to this by someone at work who helped train me and guide me through getting gear. Got a home machine thinking it would be an easy way to get my espresso fix at home and realized how deep and nuanced the world of espresso is. Turns out, it tends to be a good match for data nerds who spend their day optimizing things. I've now built several spreadsheets modeling things like my savings over time, brew ratios, etc.

\- Role-playing Games -

Lucked into randomly discovering where the Gygax family would meet to play D&D with their friends, and started playing every weekend with them in high school. Something about being with people who are at the "top of the game" (no pun intended), deeply passionate about it, and welcoming to newcomers likely made it easier for me to get immersed.

\- Cooking -

Got sick of microwaved meals in college by week two. Discovered asian super markets a few blocks away, got some cookbooks and some gear, and started learning how to cook authentic asian cuisines. Then started reading up through Julia Childs "Mastering the Art of French Cooking," lived with a couple other passionate foodies, and never looked back.

If I had to pick out a few common threads between these, it would probably be that they had mechanisms for giving direct, and fairly immediate feedback, room to optimize so I could see tangible gains from my efforts, and that I was exposed to others who were similarly passionate, and often more experienced. This last bit is critical I think as it let my passion continue growing without being dampened by others around me not having as much interest in them. Ie. when you start geeking out about something and someone is clearly getting bored, that lessens my excitement. On the flip side, when they start geeking out too, we start building on each other's excitement, and it reinforces the enjoyment I get from the passion.

In terms of discovering new passions, it tends to be somewhat random, but now I'm actively on the lookout having discovered a few so far. Shockingly, Reddit has been useful for helping gauge where I'm mildly interested, or potentially on the verge of finding a passion. When something catches my interest, I browse the main subreddit for it, and if I find I'm losing hours of time consuming everything there, that's a fairly good indicator.

Another thing that is somewhat obvious only in hindsight, is to ask others about their passions. There's so many random things to discover in the world, and when someone shares their passion, you get a glimpse beyond "the thing" into what gets them to geek out over it. Often times it may not be the thing itself, but a trait of the thing (ie. process optimization coupled with caffeine addiction for espresso).

Hope that helps!

<comment><USER11> Do you do any analog photography? That's how I got into the hobby and I love it, and a lot of my friends who used to shoot on DSLRs got tired of them and switched to analog for the quirks and simplicity.

Also, check out the book Salt, Fat, Acid, Heat if you haven't already. It's not a cookbook per se, more of a technique and cooking theory book, but it really changed the way I approach cooking most dishes.

<comment><USER58> I do not--it is cool stuff, but I don't have the time or patience for it.

Thanks for the book recommendation. I've heard of that one before. I have a giant molecular gastronomy cookbook that's also fascinating, but I'm finding these days my culinary adventures are more geared towards finding solutions to cook good food in bulk with easy cleanup and reheating.

</comment></comment></comment><comment><USER59> By failing at all my other passions.

</comment><comment><USER60> Follow your passions

</comment><comment><USER61> You don't find/choose your passions. Your passions choose you. As early as 6 and as late as 13 - as far as I know. If you ask such a question, you don't have any passion in particular and my suggestion is "you might want to keep going the career/job route". A passion is a calling, you don't "find" callings.</comment>