Gingko Desktop – Ready for Testing

gingko-alpha-linux

Gingko Desktop is now ready for testing.


Here are a few quick facts about it:

  • Runs on Windows, Mac, and Linux.
  • Is based on files, so all your data is stored locally.
    You can open, save, and sync (through services like Dropbox).
  • Persistent Undo/Redo
  • Export to JSON (so you can import into gingkoapp.com)
  • Export as text/Markdown
  • Visual changes, to increase the contrast, as well as other tweaks.

What it can’t do yet is:

  • Sync trees across devices.
  • Real-time collaboration.
  • Many other features missing as compared to gingkoapp.com (such as tags, search, focusing on one subtree, LaTeX etc.)

I need volunteers willing to test it on various platforms.
If you’re willing to try it out, please get in touch with me sign up at the form above.

I’ll be making wider announcements as I continue to iterate on this.

Thanks!
Adriano

Moving Forward : The Direct Path

I’ve decided not to pursue the Kickstarter Open Sourcing at this time. There are a number of reasons, but the most important is that it would mean a very long time before Gingko would start improving again for you, the user.

I had been working on the campaign for weeks, and still hadn’t completed the script for the video. After that I would have had to create the visuals to accompany my voiceover, edit it all, write all the campaign copy, write a newsletter. Then, once running, it would have been a month where my entire focus was on pushing the campaign, overriding both my ability to provide support, and the time I’d need to ship improvements. Assuming the campaign succeeded, it would then take significant work to make Gingko open source (I’d have to restructure the code, make it easier for others to install, document it fully, and much more). And in the end, it’s only a hypothesis that open sourcing would lead to a faster improvement cycle eventually… that’s something that depends heavily on random factors.

So, on the one hand, even assuming success (not guaranteed), it’s months of work, for very little actual return for you users. I still believe Open Source is a good direction to move towards. And I would like more collaboration. But it’s not time for this yet.

On the other hand, the work that went into the campaign isn’t a waste. I was reminded of the many exciting and powerful features that I had dreamed of implementing. And it’s made me rethink and clarify my priorities. What came out on top was this:

Make great software… everything else is a distraction.

For the last month, I’ve been working on a collection of features that combine both the most frequent request I’ve ever had (a true, download to your device(s), offline capable Gingko), with other changes that people haven’t asked for ever, but I believe will make Gingko far more powerful than it is now. It’s the greatest coding challenge I’ve ever undertaken, but it’s going well, and I’m making progress every day on it.

If you were excited about open source Gingko, I will mention that I am for it in principle. But I’m wary of big and irreversible change, in a direction I’m not experienced in, when it’s not clear that it will be for the better. Instead of open sourcing to everyone, all at once, I will instead be willing to take on “semi-open” collaborators as bandwidth permits. If you are yearning to hack Gingko (for the benefit of everyone and not just your own niche use-case), get in touch with me. If we’re a good fit, I will give you access to the code.

These days, I’m coding 100% of my working time (sometimes forgetting to eat lunch, which I don’t recommend). Customer support happens in pockets of time on my evenings and off days. And I’m loving it. I feel both relieved and excited about moving forward. An excitement I haven’t felt in years.

When I can, I will post specifics of my progress so far.

Later,
Adriano

PS: I added Copy/Paste to Gingko a few weeks ago. You can now hit Ctrl+C to copy a subtree, and Ctrl+V to paste it. It’s a little slow, but it works.

Gingko’s Path to Growth

Gingko is, and always has been, small, self-funded, and profitable. It continues to grow steadily, via word of mouth alone.

But I’ve reached the limit of what I can accomplish alone. For a long time, I believed I faced a tough choice:

  1. Take the path of selling Gingko off, and hope that my successor follows the spirit of the project and doesn’t let it die.
  2. Take the path of opening Gingko up completely in one shot, and risk irrevocably damaging the business. Thereby failing in my responsibility to my current users, and the family I help support.
  3. Devote all my energies to growth and profit, and stop making improvements until I achieve “scale”. Go big or go home.

Each had its attractions, but none are ideal. But, towards the end of the 5 month journey I took with my wife and son, I realized another option: “sell” Gingko to the world. Open-source Gingko, but raise a buffer to support both my current users, and my family in the transition. Bring Gingko, and its vision, to a wider audience.

So, here’s what’s in store:

Gingko Kickstarter OS
I’m creating a Kickstarter campaign to accomplish several things at once: Continue reading Gingko’s Path to Growth

Settling Down Again

6 months ago, myself, my wife, and our then-2-year-old son, sold many of our possessions, packed what was left into a 5′ x 5′ storage unit, and set off for Spain, Kuwait, and Sri Lanka.

We have stayed in 21 different places over this time, ranging from a luxury hotel in the center of Madrid (on deep discount, of course), to a night “sleeping” on the floor on the grounds of a church in Sri Lanka. All told, the trip cost us little more than rent & utilities would have, had we stayed.

As you might imagine, we are very happy to be back in Canada. We’re settling next week into a nice 2 bedroom apartment we’ve found to rent in the suburbs of Ottawa-Gatineau.

There were times during the trip where I let some things slide, mostly email and this blog. For that, I’m sorry. But at no point was I out of reach for anything major. Gingko as of right now has been up continuously for 3,361 hours, and only had 4 minutes of downtime in 2016.

Most importantly, for readers and Gingko users: I’ve had a lot of time to think during this trip. And more than time, I’ve gained some perspective on what matters. This perspective has given me a way forward for Gingko that I’m very excited about. While I can’t reveal much yet, watch this space for announcements.

The Cascade of Costs

I’ve been considering raising Gingko’s prices.

However, I realized that I can achieve the same effect by dropping Intercom and replacing it with something free or much cheaper. Intercom is an incredibly powerful tool, but I am just using it as a second inbox for support.

Why did I jump to “raise prices”?
I believe this is a perfect example of a “Cascade of Costs”.

Intercom has raised $66 million over 5 rounds of funding, and so it needs to do more than cover its costs, pay to continue developing the product, and have enough of a buffer to survive hard times. It is forced to grow rapidly, and forced to charge more, to make a profit for those investors.

Because Intercom is a tool for businesses, that means that every single business that uses it also needs to charge their customers a little (or a lot) more to cover their expenses and make their own profit. If those businesses serve other businesses, the cascade of higher costs/higher prices continues down to all their customers.

Don’t get me wrong: I love Intercom, and I believe they’re making the best choices out of the ones they have. It’s just that the pattern of “move to San Francisco, get funded, get big, raise prices” is so ingrained into the tech world that it’s not questioned half as often as it should be.

I just got back from a trip to San Francisco. It’s a nice city. But frankly, I was very underwhelmed. The single most striking thing I noticed is the absolutely out-of-control cost of rent and living.

Which means that every body on Earth pays more for software (with money or attention), because of the cost-of-living in Silicon Valley.

Also, fewer kinds of software are developed, because the focus needs to be on the few that can make a vast profit for a corporation, not the many that can make a decent living for individuals.

I don’t question the logic of this, only it’s seeming inevitability.

For myself, I might still raise Gingko’s prices. After all, it’s evolved a good deal since launch. But because I’m free of investor pressure, and mobile, I am not tied to just that option.

For instance, to better support ourselves, we might move somewhere cheaper. Right now I’m travelling Spain with my wife and son, to escape both the (relatively) high costs and (insanely) low temperatures of Montreal.

Got my work done in the pre-sunrise hours, so I could spend the day roaming Madrid with my family. By the way, everything I now own (except books) fits in that backpack I'm wearing.
Got my work done before sunrise, so I could spend the day roaming Madrid with my family. By the way, everything I now own (except books) fits in that backpack I’m wearing.

Who knows, we might fall in love with some white-washed small town on the Spanish coast, and make our base here instead!

Freedom and profit don’t have to be mutually exclusive.
But if they were, I’d choose freedom any damn day!

How do you start writing your thesis?

How many times a week do you think “I should be writing”?

For some reason, even when reaching the end of their PhD, most people have trouble actually starting to write the thesis.

  • “Just a little more data.”
  • “There’s just one more source I have to cite.”
  • Or the seemingly rational “but I don’t have my key results yet!”

The truth is, we procrastinate on starting because we don’t know where or how to start. We imagine The Thesis as a complete whole, as a monolithic slab of pages; and we cringe and avert our inner eye. If you’re at the beginning of the PhD, you also feel it’s probably pointless to start, because you don’t have results or even a firm topic.

Sorry, but these are all excuses. When should you start?
Whether you’ve just chosen a supervisor, or you’re ABD and a year away from having your funding cut off, the answer is the same: Start today.

Easier said than done? Not really.

After all, a thesis is nothing more than a big document. Whether you’re writing in Word or LaTeX, it’s just a file of text, like any other.

phd040809s

But if we imagine that we have to write a coherent argument over 200 pages, and we’re starting at page 1, it’s no wonder we’re overwhelmed! That’s like saying “You have no idea where you want to go in these woods, but you have to take the first step right now. Here’s a backpack with a few supplies. Go on, get moving!”

If a journey of a thousand miles begins with a single step, you wonder “What if I step in the wrong direction? I could end up 2000 miles from where I’m supposed to be!”

The problem here is linear thinking. Because our documents are linear, we start to think linearly, and so anything big instantly becomes overwhelming. By thinking “non-linearly” I don’t mean to jump around, and write things out of order. I mean that you need to think holistically, and in slowly increasing detail.

Plant Your Seed, Watch It Grow

The solution is simple.

Write a mini-thesis.
Then grow it, daily.

Imagine the following:

What if your thesis only needed to be 100 words long?
Oh, and quality doesn’t matter, because you’ll have regular feedback and hundreds of revisions. Also, you don’t have to worry too much about “making a unique contribution”… even a semi-coherent plan to get results is enough.

Could you do it? Absolutely!
Once you’ve done that, all you have to do is expand and elaborate on your mini-thesis!

Here’s how it works.

  1. Write your title.
  2. Write your seed: the “100 word thesis”.
  3. In a separate document (or, if you’re using Gingko, right there next to the seed), write a slightly more detailed version of each section you mentioned in the seed.
  4. Repeat, each time expanding and refining what you have, rearranging as necessary.

Of course, Gingko is ideal for this (after all, I designed it while struggling with my own PhD in physics). But you can use any other word processor as well (my competitor Scrivener is a good alternative). Simply create a new view/document/column, so you can have your current iteration to the left, and the version one you’re expanding on to the right.

In fiction, this is sometimes called the “Snowflake Method” . But the principle is far deeper, and can be found in all kinds of different fields. For instance, artists often make small sketches, which expand to bigger studies, before tackling the full-sized canvas. Digital Images are often compressed so that no matter how small a chunk of the file you get, you still have the whole picture (albeit at lower-resolution). For the physicists and mathematicians among you, all we’re doing is taking the writing process from linear space, to Fourier space. I call this process “Sketching with Words“, but I digress…

Growing your thesis has a number of advantages over other methods.

  1. Instantly kills overwhelm; it’s easy to start small.
  2. You always see the question you’re trying to answer, making it less likely your thesis will turn into a “project” instead. A “project” thesis is much harder to work on, trust me.
  3. You always have a sense of the whole, lending coherence to your argument.
  4. You can get early feedback and expose major flaws, before you’ve written walls of text. This makes it easier to get feedback (less to read), and to make changes (less to change, and you’re less attached to your ideas).
  5. At each pass, you know exactly where you’re going, because you’ve already written that section before (though not in as much detail).

So, now you have no excuse. If you can write a shoddy 100 words, you can start your thesis today. Just remember the steps:

  1. Start with a small seed.
    If you’re using Gingko, select the “Organic Thesis” template.
  2. Sprinkle words on it every day.
    Start a “Mini-Habit” of writing daily.
  3. Expose it to sunlight (feedback) regularly.
    Hint: you can share a read-only private link to get feedback.
  4. Watch your thesis grow, organically.

 


If you liked this post, sign up to the newsletter below.  Or simply give Gingko a try today.

Signup to get more tips like this.



Lessons Learned from Public Introspection

I’ve been giving this blog a great deal of my mental space over the last couple months, and it’s been extraordinarily valuable. Here are a few of the lessons I learned:

  1. On Wealth: To have more doesn’t mean other must have less. Wealth is neutral: it can arise out of competition or out of creation. Creating wealth is a worthy goal.
  2. On Time Scarcity: Whatever we feel we lack captures our thought processes and forces us to blindness. Just as people get into negative spirals of debt and low income, I was in a negative spiral of time debt and “never enough time”. Time investments are immensely powerful.
  3. On the Fixed Mindset: perfectionism, procrastination, blaming others, and fear of making mistakes, all have the same root cause: the belief that our intelligence/strength/personality are fixed and cannot be changed. Whether we think highly of our abilities, or feel inadequate, doesn’t matter. Whether we think we can change those abilities or not makes all the difference.

Investing in Focused Time

A few posts ago, I also made a commitment to action. In order to fully do this however, I needed to address the two largest recurring time commitments I had:

Continue reading Lessons Learned from Public Introspection

Marketing: Ramjets vs Signals

Dubai+Attempts+Reassure+Investors+Over+Debt+rrOk17FxuC0lIn Kuwait, where I grew up, one can still find local fisherman using funnel cage traps. I used to watch them throw their cages into the sea, and found myself wondering about the funnel.

“How wide does the mouth need to be to capture enough fish?”
“How narrow does the funnel end need to be to keep them?”
and finally, “I wonder what it feels like to be the fish?”

Recently, I had a chance to find out.

I came across an online version of one of these traps, and became the fish being funnelled into it. I was fully aware of it, but I kept going deeper into the sales funnel because I wanted what was inside: a productivity program I had been interested in for some time.

I did end up purchasing a trial, but it was entirely in spite of the funnel, and not because of it. I purchased because I believed in the creator’s work, his vision, and his product; all beliefs I had held from material I had seen outside the funnel.


The sales funnel is the way we usually discuss, visualize, and track online marketing. This model is so prevalent and unquestioned, it is very likely that it lies underneath all of your marketing efforts. It might even be the reason why you hesitate to market in the first place, as it is for me.

Holding this model in your mind is damaging to your customers, to your business, and to you.

The funnel treats people as indistinguishable data points, and leads to a single path to sustainability: burn a large amount of fuel, get as many page views as possible, convert as many as those into leads, and keep shoving people through the funnel until the numbers work out and the system runs on its own.

This is what I call
the “Ramjet” model of marketing.

It works very well in a few narrow situations, but utterly fails in the ones that matter most to you.

I’ve been exploring an alternative mental model that works no matter your level of funding, your scale, or your market. And most importantly, it flows naturally from you, and doesn’t require you to join the life-draining shouting match that is advertising.

The Ramjet

Let’s first look at how the sale funnel model works.

First, you need an intake wide enough to capture the customers you need to survive. Then you need to plug all the gaps in the funnel, even if it means being slightly sneaky about things (disabling navigation, hiding content behind opt-in forms, etc). You also need to move fast enough to have enough people coming in at the top to continue fuelling forward motion. And finally, you need to spark powerful emotions at the right time, by whatever means necessary,  to make a sale. There are only two ways to sustainability: get bigger, or move faster.

In all, this works exactly like a ramjet.

A ramjet is a kind of engine that can move incredibly fast, once it hits a particular velocity. It can do so because it uses its forward motion as part of the thrust process. This is efficient, but it has a number of drawbacks.

A ramjet only works at high speeds. Which also means it needs assistance to take off. The stresses involved are very high, the body needs to be extremely lean. There is no distinguishing characteristic of the air entering the engine… we just need a lot of it, very very fast. Ramjets are expensive to test, because you can only find out if they will succeed once you’ve hit supersonic speeds.

The only way to find out if a ramjet works is to propel it with an external engine, hurl it through the air, and see if it flies, or if it explodes.

If you’re in startups, this might start to sound a little familiar.
Try these substitutions:

Air →People
External engine → Funding/Advertising
Drag → “Fat”
Course correction → Pivots
Speed → Profit

A startup based on the ramjet model is a very stressful place. Sure there’s an adrenaline rush, but it’s very much shaped by the requirement to get to a certain scale and speed in order to function properly. Once there, it’s a beautiful piece of human engineering. And the model can reach breathtaking speeds/profits.

However, is it any wonder that 9 out of 10 of these ramjet startups crash and burn?

In a ramjet startup, there is constant pressure for more volume, plugging gaps, and getting to the point where the engine runs itself (often requiring several stops of refueling/refunding).

The lean startup cult is just a scale model version of this.
Sure it’s smaller, but the principles and the mental model is the same.

“Will it fly?” is still the primary question.

The key drawbacks of this model are:

  1. It will not work unless you have enough external propulsion to fully test your engine.
  2. It treats people as indistinguishable particles to be captured.
  3. It is too simplistic. Hardly anyone goes neatly from “prospect” to “customer” in linear steps.
  4. It forces you to hide everything except the funnel mouths, leading to unnatural and forced linear paths determined by the marketer, not the customer.
  5. It contradicts the excellent advice to “narrow your focus” and “find a niche”. People are afraid to focus in part because they can imagine the funnel narrowing, and assume it will lead to fewer sales.
  6. The model leads to a zero-sum competitive landscape, where the only way to get ahead it to be bigger, louder, and faster than the competition.

It’s time to put an end to the ramjet model of business.

The Signal

Let’s talk resonance.

In common language, when something “resonates” with you, we say it “speaks to you”, reflects you in some way, or is somehow “aligned” with who you are.

In a rare occurrence, the physics definition of resonance is the same. A deep understanding of resonance leads to a far more powerful mental model for marketing.

The goal of marketing is simple, but a concise statement eluded me for some time.

Ideally, marketing connects the value you create with everyone who would derive a net benefit, and with no one who wouldn’t.

Let’s imagine every one of us is broadcasting ourselves into the world. Every time we speak, write, share, or create, we are emitting a part of ourselves into space, for it to be received by someone else.

What are the aspects of these signals that we can tune, in order to achieve maximum reach with minimum energy and waste?

1. Natural Frequency & Resonance

Every oscillating system, whether it’s a pendulum, a swing, a tuned radio circuit, has its own natural frequency.

If you try to force the system at an other frequency, the system will resist you. If however, you give the system the slightest nudges at the natural frequency, it will respond powerfully.

This is resonance.

  • When you’re pushing a swing, the slightest nudge at the right frequency is all it takes to keep swinging.
  • Sing any note but the right one, and a crystal glass does nothing. Sing at precisely the resonant frequency, and it shatters.
  • Resonance is what allows your tiny low-power cell phone transmitter to reach the nearest cell tower, up to 13km away.

The first and most important step, is to decide what signal you’re broadcasting, and make sure it resonates with you. You have your own natural frequencies as well. The language you use, the things you’re drawn to, and the values you hold, all form the spectrum of your being.

When you speak, write, and create in a way that resonates with yourself, broadcasting becomes effortless.

There is also resonance in receiving signals.
In fact, resonance is the essence of receiving signals.

[A system] will easily vibrate at those [natural] frequencies, and vibrate less strongly at other frequencies. It will “pick out” its resonance frequency from a complex excitation, such as an impulse or a wideband noise excitation. In effect, it is filtering out all frequencies other than its resonance.
Acoustic Resonance, Wikipedia

In order to be heard above the noise, you don’t need to shout louder.
You just need to resonate with your audience.

But resonance isn’t solely about finding your natural frequency.
Focus is as important.

2. The Quality Factor

There is no such thing as a perfect frequency. It’s physically impossible to create. Every signal has a spread, and so we need a way of quantifying that spread.

The “quality factor” is a measure of how focused a signal is around the resonant natural frequency.

01fe1
Signals can be tightly focused, like the black dashed line, or completely spread out, like the red line. The more focused, the higher the “Quality Factor”

 

A crystal glass, a bell, and a tuning fork all have high quality factors. It’s what keeps them ringing long after they’re struck. Radio signals also have quality factors (often called “bandwidth”).

There is a trade-off here.

If the quality factor is extremely high, then the signal can be received many km away, but only if the receiver has precisely the same frequency. If the receiver is simply scanning the band, it’s very likely to miss your narrow broadcast.

On the other hand, if the quality factor is low, your signal starts to blend in with neighbouring signals, your broadcast energy is spread thin, and you need a lot more power to reach the same number of people.

When you pick a niche, you are increasing your quality factor. When you refine your message, you are increasing your quality factor. Any time you reduce the spread in your signal, you’re allowing it to go further and resonate more powerfully with the people you want to reach.

How narrow should you go?

Far narrower than you’d expect. The only way to cut above the noise is to resonate very strongly with a very small number of people. Your signal is then amplified by them, and will reach more people with the same narrow frequency.

If you go too broad, however, your message is filtered out by everyone equally, and just passes through without affecting anyone or anything. It leaks out into space as wasted energy.

3. Channels and Barriers

You can have the most powerful, most focused signal on Earth, but if you’re broadcasting in a lead box, it’s just going to bounce around you and go no where. Probably frying you in the process.

Your signal has to overcome the natural barriers that exist in the world.

This is simple, but it can be overlooked. You need to place your broadcasts in the channels that are likely to reach your resonant audience. But while it’s important to avoid being in an echo chamber, it’s a waste of time to try to maneuver your signal around every single obstacle.

In other words, make sure you can be found by search, using search terms that resonate. Choose one or two social media outlets. But don’t waste your time trying to optimize your SEO, and your social media presence in 6 different outlets. It dissipates your limited energy.

Your goal is to be findable.
Resonance and quality should do the rest.

4. Amplitude

Amplitude, or how much power you’re putting into broadcasting your signal, is the last thing to tune.

With the ramjet, you need to pump power into the system, get it up to a certain scale, before you do anything else, in the hopes of tuning it mid-flight until it works. When you look at this approach with a signal mindset, however, the futility is striking.

There is nothing more wasteful than to pump a great deal of energy into broadcasting a message that will resonate with no one.

A World Of Broadcasts

I despise advertising.

I don’t have a television, and my browsers have ad-block. So every time I come into contact with the “normal world” of commercials and ads, it’s jarring. Why do we tolerate this noise?

It is a distraction based economy, one that rewards the biggest and loudest players. They play to our lowest selves, by bypassing our consciousness and reaching into our lizard brains, our base instincts.

The ramjet model plays this game very well. We get sucked into the engine, and have no choice but to try to escape, or be forced out the other side, sometimes with less than we came in. It’s these images as modes that give marketing a bad name.

But if we change our perspective,
marketing becomes a beautiful thing.

It’s a world of broadcasters and receivers, each resonating in tune with each other, amplifying each other. It’s a world where people don’t need to shout, they just need to create, refine, and share.

So which would you rather be,
a ramjet operator, or a resonant signal?

We Restrain Ourselves

“THE YEAR WAS 2081, and everybody was finally equal. They weren’t only equal before God and the law. They were equal every which way. Nobody was smarter than anybody else. Nobody was better looking than anybody else. Nobody was stronger or quicker than anybody else. All this equality was due to the 211th, 212th, and 213th Amendments to the Constitution, and to the unceasing vigilance of agents of the United States Handicapper General.”
– “Harrison Bergeron”, by Kurt Vonnegut Jr.

Harrison Bergeron“, is a dystopic short story (a 10 min read).
It asks and answers the question: What if everybody were forced to be equal?

I understand now that to produce a dystopia from equality requires a set of false assumptions. The very same false assumption that I’ve uncovered lately: that there is a measurable and fixed amount of intrinsic worth available to each human being. For one person to have more, of anything, another must have less.

Taken to the extreme, this fixation of the fixedness and limitedness of the resources of the planet and the internal resources of each person, combined with a desire for equality, leads directly to a world of mediocrity.

What’s incredible to me is that we don’t need a “Handicapper General” to diligently limit people’s abilities. We limit ourselves.

I feel like we’re all Harrison Bergeron: great in our own unique way.
We’re also our own Handicapper: putting on our own shackles and distractions, weights and masks…

Continue reading We Restrain Ourselves

The Lies I Tell Myself

On the morning of April 4th, my “self reliance” ritual was cut short when I looked at the calendar and saw the day before was an empty box, where there needed to be a checkmark. I felt a dull ache rising in the back of my gut.

“Did I forget to write yesterday?”
“Did I break my unprecedented 123 day streak?”
“No no no! This can’t be!”

My panic rose steadily, but I simply wasn’t sure. So, I seized the benefit of the doubt, slowly filled in the missing checkmark, and went about my days, trying to forget this lie I told myself.

the-lie
Exhibit A: The lie I tried to tell myself.

It’s now 3 weeks later. My mini-habits of writing, programming, and exercising daily have lost all their former power. Even my morning ritual is starting to slip.

Rationally, I know that one misstep shouldn’t matter. That I should brush it off, learn from it, and keep going. But I can’t stop myself from feeling that it does matter.

Worse, this pattern is disappointingly familiar.
Something is deeply wrong here… Continue reading The Lies I Tell Myself