Hacker Newsnew | past | comments | ask | show | jobs | submit | n8agrin's commentslogin

With full respect to your right to criticize, I don't understand what differentiates an organization trying to build a social networking app around biodiversity data from an organization feeding the poor, and those organizations' ability to experiment with their governance system. Can you expand that thought or is it rhetorical?


One thing that comes to my mind is the question about what you actually want to achieve, expressed by what outcome you want to measure. In the case of „feeding the poor“, that’s relatively easy: people fed, calories distributed, maybe also health indicators and sociographic factors of the people you reach. For any app, that might be much harder: total installations? Total usage? New downloads? Additional funding raised? Feature X vs. feature Y? You can absolutely bring the „feeding the poor“ to the same level of complexity by involving politics and trying to scale to multiple locations and cities. So maybe the difference is in scale, not in technology vs. non-technology.


I mean I think there's a pretty stark difference between a charity feeding the poor and an app startup (even a non-profit one). So stark that it feels almost weird writing this comment, but I'll take your question at face value. Okay, here's a few:

- Decisions at a charity feeding the poor are likely less controversial and binary in nature than decisions for a product focused app organization. If people are making a lot of decisions bottom-up at the charity, as long as more people are getting fed, it's probably fine as long as it's not chaos. In a product-focused organization you need to make binary decisions: will we use this app icon design or that one? Will we have one app for professionals and one for laypeople or a unified app? Will we use SVM or a neural network? Somebody ultimately has to be the decider on these binary decisions. They cannot all be bottom-up decisions if you want to have a cohesive vision for the product.

- If you're feeding the poor you're probably a charity or a government. People who work for a charity or a government are more likely to be motivated by the common good. So they don't need as much extrinsic motivation from leadership. An app startup, even a non-profit one (which I guess can be technically a charity), is going to have workers who are also motivated by money (yes even if it's a non-profit, they have other high paying options), technical decisions, and sure the mission too. I have a couple friends who have hopped around between non-profit software organizations due to these non-mission reasons. Corralling those motivations often requires a different management mindset than working with people who are just happy to be there.

- If you're feeding the poor you're probably a charity or a government and you therefore probably need to answer to your donors or voters. You need full transparency. This was an app startup, albeit a non-profit one. It doesn't really answer to anyone except who it gets grants from and even then is not fully transparent/open (has a proprietary machine learning model).

These are just a few but do you really think any governance structure can just be applied to any organization? They're not all compatible.


I think an organization's governance structure being successful has more to do with how the people in the organization want to be governed than whether it's building an app or feeding the poor.


None of this matches my experience as a board member and officer at a nonprofit, nor what I observe with my partner who has worked at multiple nonprofits.

I don’t understand the distinction you’re drawing between “charity” and “nonprofit”. iNaturalist is a 501c3, so it’s a charity [1]. One of my partner’s previous 501c3 employers produced an app to aid with their mission.

Let me reframe your first bullet to reflect my lived experience (both in the nonprofit world and building software at a for-profit):

> Decisions at a charity feeding the poor are high-stakes and often controversial compared with decisions for a product focused app organization. If people are making a lot of decisions bottom-up at the charity, the scarce budget won’t stretch to cover the needs of the mission. In a product-focused organization, decisions are much lower stakes. Through the magic of version control, A/B testing, and vendor app stores, you rarely need to commit deeply to decisions, so the individual developer can make the initial call: will we use this app icon design or that one? Will we have one app for professionals and one for laypeople or a unified app? Will we use SVM or a neural network? Ship, learn, iterate.

My for-profit employer explicitly hires for (or at least used to) “passion” and intrinsic motivation. And there are several corporations I’m not willing to work for despite their reputation for high compensation. I think it’s pretty tenuous to connect org structure with motivation so directly and concretely.

The third bullet is uninformed. 501c3s answer to the people they derive funding from, their customers/clients/served population, their board, and the government (tax authority) whether they’re putting spaghetti on plates or pixels on screens. The IRS has a pretty readable intro to the requirements [2].

This kind of first-principles reasoning from vibes about what it must be like is seductive but often misleading. I encourage everyone I can to serve on a nonprofit board. The organizations can usually benefit from the perspective and different type of thinking that computer people bring, and it’ll open your eyes to new perspectives about your own work and life!

[1] https://www.charitynavigator.org/ein/921296468

[2] https://www.irs.gov/charities-non-profits/charitable-organiz...


Sociocracy is a theory of governance: https://en.wikipedia.org/wiki/Sociocracy


I’m mildly familiar with the idea, but I was referencing this subset of the quoted sentence

> … and, like many democracies before us, we ultimately voted to abolish our own democracy …

The ellipses are intentional, if the fragments of the sentence before or after change how to interpret this, please let me know


The US example that I would give would be the Articles of Confederation being turned over and replaced with our Constitution.

In the article I read this to mean: they designed a power structure thinking it should be fully open and flat, like a company where everyone can do everything on GitHub. But once they had run the project for some time, they acknowledged that the decisions were flowing through the three people.


> The US example that I would give would be the Articles of Confederation being turned over and replaced with our Constitution.

That’s a legit example I knew of, but didn’t come to mind when thinking through this. Thank you

Edit: legit from the view that the “democracy” was between states and they voted to give up some of their sovereignty to a federal government, not that The People voted for removing democracy


I've had similar thoughts. Any interest in sharing notes? Generally I've been thinking there should be a standard declarative format for data vis. This should be inspired by prior art like ggplot, Grammar of Graphics, Vega, VegaLite, etc.

From there it could be compiled to targets declarative or procedural (eg to generate VegaLite specs, echart specs or Observable Plot configs in JS).

How have you been thinking about this problem space?


https://www.inaturalist.org/

While I deserve no credit for its current success, it's been used by millions to:

* catalogue millions of plants and animals around the world

* tagged image data has become critical for computer vision training models

* map species range and impact of various natural changes to biodiversity, with data cited in scientific journals

* new species have been discovered through the app

previous HN thread - https://news.ycombinator.com/item?id=22442479


My wife (and sometimes me) use it. It's awesome!


:heart:


What was your involvement in iNaturalist?


Look for "A Little History": https://www.inaturalist.org/pages/about


I am a heavy user, so thank you.


:) Ty for being part of the community


iNaturalist is wonderful!


:heart:


iNaturalist was the final product of my Master's degree thesis team. I haven't contributed to it since school, about 11 years, so I don't deserve any credit for its success. The folks who have kept it alive are personal heros - they sacrificed a lot and invested so much to build the community that exists today. It's probably the project I'm still the proudest to have contributed to.

When we started, our goal was to encourage people to go outside and engage with the world around them. We dreamt that the data gathered by the community would be used in scientific research, but weren't confident it would ever reach enough of a critical mass. It has! More surprisingly, we had no idea how important iNat's image dataset would become for computer vision research.

Again, so proud of the folks who have helped to make iNaturalist thrive and so glad it still exists in the world.


Evidence that doing something great doesn’t need to be through startup-capital-based systems. One can build and study something that can be of great importance to humanity without its core values being tainted by money.


In the context of a large client application, I often advise engineers that if we're optimizing things like the types of `for` loops we use, we've won the performance lottery. That is, I've never found a critical performance issue that is the result of using `forEach` instead of `for`.


Agreed. I know that in some small use cases these differences are crucial, but in 95% of situations arguing these differences just feels like a waste of time.


I had the opposite experience. We had a large client application that was too slow, with no obvious bottleneck on the flame graph. I replaced all the functional iterators by for loops among other similar optimisations, and improved the performance by a factor of 50. If you use programming constructs that are 50 times slower on average, your program will be 50 times slower on average.


> If you use programming constructs that are 50 times slower on average, your program will be 50 times slower on average

Well, yes, but the relative difference between a for and foreach loop is miniscule - not 50x difference. In absolute terms, the overhead of both is barely measurable, and is extremely unlikely to be a bottleneck in any client-side application.


I've had it happen once, sort of, on a relatively small collection. Several seconds' delay due to the use of foreach, that were actually annoying production users.

The issue was that the collection being iterated over was a non-generic .NET 1.0 DataTable. Using a foreach loop would implicitly box and then re-cast each object, while the for loop directly accessed the correctly typed .Item() and did not need to do that.

Ironically, the body of the loop was a fairly tricky logistics algorithm I had just written, so I had every reason to assume the problem was on the inside. Imagine my surprise when I changed it to a for loop - strictly to access the index and print out some timings - and watched the procedure suddenly become instant...


For those curious, this is the law which allows you to sue the police: 42 U.S.C. § 1983

"Every person who, under color of any statute, ordinance, regulation, custom, or usage, of any State or Territory or the District of Columbia, subjects, or causes to be subjected, any citizen of the United States or other person within the jurisdiction thereof to the deprivation of any rights, privileges, or immunities secured by the Constitution and laws, shall be liable to the party injured in an action at law, suit in equity, or other proper proceeding for redress, except that in any action brought against a judicial officer for an act or omission taken in such officer’s judicial capacity, injunctive relief shall not be granted unless a declaratory decree was violated or declaratory relief was unavailable. For the purposes of this section, any Act of Congress applicable exclusively to the District of Columbia shall be considered to be a statute of the District of Columbia."

More here: http://en.wikipedia.org/wiki/Enforcement_Act_of_1871_(third_...


Here's a good paper about animated transitions in stats graphs and their effectiveness. http://vis.stanford.edu/files/2007-AnimatedTransitions-InfoV...


The referenced Heer & Robertson paper discusses chained animated transitions that take you from one type of visualization to another in a way that explains the relationship between the two visualizations. The usefulness of chained transitions is debatable, but it is important to note that Chart.js's implementation seems to starts from nothing and animate to the final position of a single type of chart. This is not really adding: "empty" is not an interesting state, so the transition is frivolous. Moreover, because it forces pixel movements on the page, the users are left with looking for meaning, and are distraction so I'd contend this impedes with overall usability. And yes, it is great eye candy, and the corporate powerpoint junkies will probably love it, but remember: they also love those 3D pie charts.


I couldn't agree with you more, that's why I linked the paper.


@nnnnnick this looks great. I work with d3 on a daily basis and while I think that it's a great toolchain, the need for something small, fast and canvas based was absolutely needed. Well done.


What's old is always new, especially on the Internet. I'm constantly reminded of the "Simpsons' did it" South Park episode whenever I'm reading press briefs about new startups.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: