An Argument for Race Abolitionism (2020) - <AUTHOR> https://www.spiked-online.com/2020/08/04/we-need-to-abolish-race/ <comment><USER2> Race or culture isn't the issue but "identity politics" which mandates that one must see themselves and others not as the unique and wonderful individuals they are but as an impersonal member of a class to be treated according to the understood (or assumed) qualities of that class. Nothing is more destructive to cordial interpersonal relations than saying "Oh, you're an X and I will treat you as X-types ought to be treated" without regard to who the individual actually is.

It's not impossible to see, recognize, and appreciate races and cultures as long as the dignity of the individual is maintained.

<comment><USER3> Race is a little bit the issue, because there's no biological basis for the idea that humans aren't just one single species.

A genuine observation and appreciation of "race" consists of understanding that humans do not have a single appropriate skin tone, mostly. I'm not sure what else there is for you, but it's not there for me.

<comment><USER4> Yes, humans are one single species, just like the dogs are one single species, and humans do not have a single appropriate skin tone, just like dogs do not have a single appropriate kind of fur, or single appropriate body proportions.

That doesn't change the fact that there are different dog breeds, or different human, well, let's not call them "races" or "breeds", but large vaguely- defined (because they form continuum) groups of distinctly different average appearances.

Edit: just to elaborate slightly, I suspect that if we would undertake a massive gene pool homogenization program (lots and lots of population migrations, cross-whatever marriages and child-bearings), we might in several hundred years arrive at a more or less uniformly skin-toned population in which case one, technically, could term that skin tone as "innately appropriate".

But I personally fail to see any allure in this: what's the point of averaging out the physical differences, they're mostly inconsequential anyway?

<comment><USER3> Gene pools are at least three-dimensional. Just because humans are diverse, does not imply that the gene pool is not well-mixed. And there's a rather famous anthropological observation that skin colors correlate with latitude, as well as well-understood mechanisms which control that correlation; there's a gentle tug-of-war between lowering the chance of rickets and lowering the chance of skin cancer.

Put another way, we _already have_ had centuries of high-speed travel connecting the world and globalizing the population, and we _do_ have region that produce "uniform" skin tones which look like the average of all of the local skin tones, but those regions _also have_ lots of non-"uniform" skin tones. The people that you imagine are but one thin slice of a much thicker and richer gene pool.

Finally, please don't confuse the deliberate fancy breeding of dogs, pigeons, etc. with humans' natural free choice of how to use their sexuality. We frown on eugenics for humans for precisely the same reasons that dog breeders bemoan hip dysplasia.

</comment></comment></comment></comment><comment><USER5> As a European, every US election season I'm always dumbfounded by how much the "black vote" is discussed. Just recently, when Kamala Harris was announced as VP, all they talk about is how she will contribute to the black vote. This makes it seem as she was only chosen because of her race, and even worse: it's an insult to black people, grouping them together as having one opinion.

I don't know why there's no backlash against this.

<comment><USER6> I'm European myself. I don't think we can compare Europe with the US. Due to centuries of slavery and then segregation, black and white communities are still somewhat separate and tend to have different cultures etc. Of course, individually, there are many examples of people who are "in between", but the cultural blocs do exist.

And by the way - in Belgium, parties have to pander to the French or the Dutch voters; in Switzerland, the different language regions have different voting behaviour; in Germany, east Germany votes significantly differently, as does Bavaria; and so on. Voter blocs are not something exclusive to the US, even if the history of the black population doesn't have a direct parallel in Europe.

<comment><USER7> > _in Belgium, parties have to pander to the French or the Dutch voters_

Well it's a bit different, as people in Wallonia can only vote for francophone parties and people in Flanders only for Flemish parties. Only Brussels gets both. So in effect, parties don't really have to choose whether to pander to the French-speaking or Dutch-speaking voters.

Which is even worse IMO, because how can you form a functioning federal government from parties that are each elected only by half of the country? Well you can't, as the current situation shows.

</comment></comment></comment><comment><USER8> The problem with race abolitionism is that it removes the language for discussing racial issues and hides these issues where they cant be addressed. Its essentially the equivalent of saying "All Lives Matter". It attempts to dismiss and ignore the problems that wont go away even if ignored.

It would be nice to live in a world where racial discrimination and issues dont exist and skin colour is as meaningless and superficial as eye colour or the colour of your clothes. And perhaps, someday, this may be the case.

But at the end of the day, racial problems still exists. Racial discrimination still exists. People are _still_ being treated differently by individuals and systems based on their physical features and the colour of their skin. Cops see and treat black people differently, so do doctors and judges and juries and home sellers and bankers and hotel clerks. And that causes real effects and impediments to people of colour that needs to be addressed first.

Identity politics is not saying these people _are_ different. Identity politics is saying that _society sees these people as different_ , and that its a problem that needs to be addressed

</comment><comment><USER9> There seem to be some conflicting ideas here. On one hand, the concept of 'race' is what allows racism to exist and we need to remove this concept from our collective ideology in order to defeat racism -- people are just people. On the other hand, it is a fact that external biological characteristics (predominantly skin colour and facial structure) result in social clustering and discrimination, at the individual, collective and institutional levels -- racism is real.

I appreciate the principles behind race abolitionism, as I have often applied the same logic to gender, which is arguably even more socially constructed than race, since the appeal to biological characteristics is weaker for defining one's gender than one's race. However, if we remove these ideas from our collective understanding of the world, do we not make it harder to argue cases of legitimate discrimination? If the generally accepted notion is "gender does not exist" or "race does not exist", how does one make the argument "I was discriminated against because of <attributes>?" Or is the idea that once people no longer make the distinction between different groups of attributes, then individual and institutional discrimination will no longer exist? It seems to me that in order for such an approach to be successful, we would need to train ourselves to not notice external characteristics of individuals, effectively becoming colour-blind, a task which not only seems impossible due to the nature of the human mind, but also a dangerous position to take while racism still exists -- since it also blinds us to an understanding of why a person was discriminated against and what factors affected their experience --, and risks destroying our concept of cultural heritage. Perhaps race abolitionism is more suited for a post-racism world?

</comment><comment><USER10> There was this aphorism: "It does not matter if you believe in God, but whether God believes in you." In the context of race, the lady can abolish races as much as she desires, but it does not matter as far as their are racists.

</comment><comment><USER11> The US is oddly concerned about race. I remember the first time they asked me about my race filling a form. WTF? How should I know? Also the categories are so arbitrary, I ended up picking other and be done with that.

</comment><comment><USER12> This is how it works in European countries, e.g. France. "Race" never figures in any government documents, forms and surveys. Mentioning someone's race considered to be somewhat rude and is regarded as a thing of the past. Not everybody is race-agnostic, but all government organizations and all businesses are required to be race-agnostic by law. This includes never asking about race, particularly in forms and surveys. Identity politics is actively _discouraged_.

I wonder why it is different in America.

<comment><USER13> I've been very influenced by Isabel Wilkerson's new book to look at America as having a racial caste system that's 400 years old. The entire economic and political history and present of the United States is governed by this caste system; it's even written into the physical geography, e.g. where there is lead and where there are trees. If you don't ask about race on government forms, how are you going to measure progress on dismantling this system?

Abolishing race is a good goal, but it's going to come after we've acknowledged and reckoned with the violence and harm this country has done to so many millions of people. And we've barely even started that process.

<comment><USER14> We can argue that there is work to do toward equality without discrediting ourselves and our objective with incredible claims about "having barely started" as though we still have slave plantations and so on.

</comment></comment></comment><comment><USER15> The author is the Brexit Party's person of color. I'm sure a lot of white men will agree with what she is saying. Just don't be fooled into thinking that minorities in general will adopt this position.

</comment><comment><USER4> > the concept of 'race' is scientifically and socially unsupportable.

Just like the concept of "culture". See [https://slatestarcodex.com/2014/08/12/does-race-exist- does-c...](https://slatestarcodex.com/2014/08/12/does-race-exist-does- culture/) , here's the kicker:

"There were two arguments against race being a real concept: it didn't cluster nicely, and within-group variation was greater than between group variation. _And both of these are equally true of culture._ Any mathematical argument considering races as clusters of genes can be used equally well considering cultures as clusters of memes, and will likely return the same results.

Yet I can't imagine someone saying "culture doesn't exist" or "culture isn't real"."

<comment><USER3> Are accents cultural or racial? There's plenty of cultural traits which are heritable and measurable. The difference is that there's only one human race, while there's many different cultural memeplexes.

Race literally doesn't exist: The partitions that you imagine as dividing people aren't actually backed by any particular observable or experiment. Meanwhile, cultural markers do exist: We can measure what people wear, speak, trade, value, etc.

Aside from accents, another good example is that of locally-grown staple foods. Different locales support different crops, so that merely living in a region for a time is sufficient to alter one's diet. Yet it is not due to differences in people, but differences in soil, which determine which crops are grown and eaten where.

<comment><USER16> > The partitions that you imagine as dividing people aren't actually backed by > any particular observable or experiment. Meanwhile, cultural markers do > exist: We can measure what people wear, speak, trade, value, etc.

I'm having genuine difficulty wrapping my mind around this argument.

I don't mean to inflame tempers or anything here, but would we agree that any operational definition of "race" probably needs to include some mix of both cultural and phenotypic attributes (including but certainly not limited to skin color)? If so, then:

\- aren't the cultural aspects of race just as measurable as you just pointed out -- what people wear, speak, trade, value, etc.?

\- aren't variations in human bodies (differences in phenotype) arguably even _more_ measurable than that? It's easy for me to determine from a low-res photo that someone is of East Asian descent. It's nigh impossible for me to tell whether they're culturally Chinese, rural Texan, Jamaican, etc.

To claim that race "literally" doesn't exist while in the next sentence pointing out that cultural markers exist just seems really dissonant to me, and I'm honestly not sure what part of my model of the world needs changing to become compatible with these two claims.

Are you saying that you could chat up a person, maybe interview them, and conclude that they're probably indigenous to Tibet, but phenotypic markers (or whatever your definition of "racial," or even genetic? [1]) are guaranteed to be uninformative toward this conclusion?

[1] [https://www.pnas.org/content/114/16/4189](https://www.pnas.org/content/114/16/4189)

<comment><USER3> No worries. It sounds like you don't have a problem with the latter part, just the former part, so we'll focus on that.

You say that it's "easy" for you to determine whether somebody is "East Asian", just by looking at a photo. What are you looking for, though? Probably some sort of appearance affected by genetics. However, no East Asian can carry the complete gene pool from their region, so no East Asian can carry a set of genetic markers which is guaranteed to produce an appearance which is reliably recognizable. (This isn't specific to East Asia, of course.) So, whatever you're seeing in that photo, it's not just their genes, but also at least some of your biases, which lead you to think that your classification rate is better than it actually is.

Phrases like "cultural aspects of race" are meant to excuse bigotries beyond racism, I think. As soon as we draw a hard line between genes and memes, and agree that they have different mechanisms of action upon people, then suddenly we need to have a _very_ hard look at anything we do which conflates genes and memes.

I'm saying that, when chatting up a person, their genetic history is extremely irrelevant. Maybe their country of origin matters (as for spies), maybe their religious beliefs matter (as when handling dietary restrictions at a dinner), maybe their accent matters (just when trying to chat!) but their genetics, and thus any notion of race, are not germane.

Keep in mind that genes are affected by pedigree collapse but memes are not. We are one race partially because we do not have enough ancestors to have more races; however, this limitation doesn't apply to cultural knowledge.

<comment><USER16> > You say that it's "easy" for you to determine whether somebody is "East > Asian", just by looking at a photo. What are you looking for, though? > Probably some sort of appearance affected by genetics. However, no East > Asian can carry the complete gene pool from their region, so no East Asian > can carry a set of genetic markers which is guaranteed to produce an > appearance which is reliably recognizable.

It feels like this discussion is disproportionately weighted toward exceptions to demonstrably real correlations between a person's ancestral origin and their appearance and genes. Why would _every_ member of a given cluster of related people be required to carry every one of the criteria that define the cluster? In my mind, that defeats the whole purpose of clustering in the first place, and seems especially out of place given that normal people in normal situations make fuzzy, heuristic classifications of people based on incomplete information.

Also, doesn't this "nobody carries the complete pool from their region" argument apply equally to any conceivable definition of culture? Not every rural Texan espouses _exactly_ the same cultural values as each other, or cultural memes, or what have you. Despite the inherent fuzziness in defining what it means to be rural Texan, you can still make the definition meaningful. The ability to define a Sherpa culture seems equally plausible as the ability to characterize Sherpa genotypes and phenotypes. The fuzziness of a classification does not negate the fact that fuzzy classification is still possible.

> So, whatever you're seeing in that photo, it's not just their genes, but > also at least some of your biases, which lead you to think that your > classification rate is better than it actually is.

That makes sense to me.

</comment></comment></comment></comment></comment><comment><USER17> Hofstadter's argument: [https://www.cs.virginia.edu/~evans/cs655/readings/purity.htm...](https://www.cs.virginia.edu/~evans/cs655/readings/purity.html)

</comment><comment><USER18> As a German I always feel offended, when American sign-up forms (conferences and such) ask for my 'race'. Are they asking for my migrant background? Asking for race is just so Nazi, what should I put there, "Herrenrasse", "Fremdrasse", ...?

There are no different human races.

<comment><USER17> Yeah, I used to enter "mutt"

What do real Caucasians (people _from_ the Caucasus) enter in these fields? [https://news.ycombinator.com/item?id=23914667](https://news.ycombinator.com/item?id=23914667)

</comment></comment><comment><USER9> Post seems to have been delisted from the front pages, @dang can we get a reason? This is political but seems like a genuinely interesting perspective.</comment>


Huawei P30 Pro allegedly fakes its touted moon shots - <AUTHOR> https://www.androidauthority.com/huawei-p30-pro-moon-mode-controversy-978486/ <comment><AUTHOR> Another report. [https://www.forbes.com/sites/paulmonckton/2019/04/26/new- hua...](https://www.forbes.com/sites/paulmonckton/2019/04/26/new-huawei- camera-controversy-sparks-debate/#75eca7017c36)

Chinese post. [https://www.zhihu.com/question/319986727/answer/652664005](https://www.zhihu.com/question/319986727/answer/652664005)</comment>


Show HN: React SpreadSheet – Google Sheets-like performance - <AUTHOR> http://rowsncolumns.app <comment><AUTHOR> Hi HN,

I am the developer behind SpreadSheet Grid. It's a React Library for users who want to develop an Excel-like DataGrid in their application.

The reality is it's very hard to get users off Microsoft Excel, and especially during these times, it's good to have an online Excel viewer and editor in your, private and secure.

Demo - [https://rowsncolumns.app/demo](https://rowsncolumns.app/demo)

1\. The library is built using React, and due to its declarative nature, it is very easy to customise and integrate it within your app

2\. It is fast. Canvas is used for rendering.

3\. Supports Autofilters, Frozen rows, columns, data validation, conditional formatting etc

4\. Custom cell renderer

5\. Formula support is coming soon with web worker support

6\. Grouping Columns and Rows is coming soon

We support 2 licenses. Non-commercial use (FREE) and Commercial use (USD 199 with 1 year support)

Would love to answer any questions you have :)

<comment><USER2> Incredible job, I just shared it with our React team. I hope to see it somewhere into our code.

<comment><AUTHOR> Thank you. Appreciate it.

</comment></comment></comment><comment><USER3> there's something that I'm definitely missing if people refer to google sheets (or any kind of google product really, except google.com homepage.. maybe) as stuff with "good performance". Every action, keystroke, menu opening, whatever, is laggy to a frustrating degree in these software compared to non- browser-engine-based apps.

Like, I just did a test, and it takes, more than 5 seconds from a "refresh" to all the UI elements of gdocs showing up, versus less than 3 seconds from a fresh start of libreoffice, and less than 2 seconds if I'm having the LO daemon running in the background. And LO is _much_ more featureful, & my install has a few additional plug-ins, some of them using freaking java. It also takes 4-5 seconds to make an export of that doc from docx to odt while it's pretty instantaneous with LO.

And, before anyone comments on my specs, I have gigabit fiber internet, an HEDT i7, 64 gigs of RAM and a GTX 1080. Everything should be _instant_ on these specs.

<comment><USER4> I'd still take Google Docs over LibreOffice any time of the day.

<comment><USER5> (LO Dev) what is LO missing?

<comment><USER6> Very occasional non-professional user here...

LO feels like it's from the 90's - the UI feels outdated and hard to use. It's probably great as a regular user, but I have probably only three 10 minute sessions per year of use. At least half of that time is spent hunting for some feature that I know where to locate in Google Sheets or Excel.

I use it just because it's default on my Ubuntu machine for some file types, and would use it more if I found it more effective.

<comment><USER5> Try the latest releases, and maybe try switching themes. We have quite an active UI design team, but for every person like you who hates the "old" look, there is another person that hates the "new" looks.

<shrug> what is a team to do ? :-)

Also come hang out on the #libreoffice IRC channel if you need help.

<comment><USER6> I'm the kind of user who probably wouldn't switch themes or ask for help on IRC - I'd just find another way to solve the issue I have at hand right now.

To cater for users like me, you need to do user studies (watch a user try to complete a task, and time how long it takes them). Then adjust the software to minimize that time.

There are a _lot_ of users like me, but each user isn't super valuable - we're the ones who would fire up LO Writer, type "Party Next Tuesday", set the font size big, hit print, then close without saving. Then don't open LO again for a few weeks.

You may decide I'm not the type of user LO is designed for, and that's a perfectly valid choice, especially for an opensource project with limited resources.

<comment><USER5> We're in the process of doing that - our design team periodically moves things around, and tries to do that. But as you note, we have very limited resources, so a lot of the design teams suggestions get parked.

We're also fighting the usual battles \- people for whom the "old" way is perfect and they hate change \- people for whom anything other than 100% the same as Microsoft is wrong

But feel free to log issues in our bugtracker if you have concrete suggestions.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm probably not the target audience for this, but "Google Sheets-like performance" does not sound like a selling point to me.

Historically, their performance has been downright awful (especially in non- Chrome browsers).

<comment><USER2> Not in my experience. I copy and paste large datasets directly from other sources. Performance is constant with multiple tabs. At work, we strongly rely on G Sheets as a daily base tool for accounting, data reconciliation, reporting in general.

How many rows do you usually manipulate at the same time?

<comment><AUTHOR> For a web based excel tool, Google Sheets has really good performance IMO. Other alternative is Microsoft Online Excel, which is quite slow, bloated and _cough_ horrible.

If you have highly interactive data in cells, (eg: svg graphs), scroll performance can be improved by enabling `snap`. With this only one row/column will scroll at a time.

</comment></comment></comment><comment><USER8> You had me at smooth scrolling. Take my money.

<comment><AUTHOR> This is something i was very particular about from Day 1. It's quite hard to get smooth scrolling, even in canvas.

Still lots of optimisations to be done, but i will never sacrifice anything for a smooth scrolling experience :)

</comment></comment><comment><USER9> Doesn't work on the iOS please make it mobile friendly.

<comment><AUTHOR> On mobile, we support view only mode. Edit mode is not compatible. But we can add it to our roadmap if more users ask for this.

I doubt a lot of people edit excel files on mobile. I maybe wrong.

<comment><USER10> Sometimes spreadsheets are used for collecting data from many people. Then it needs to be accessible. Example: At work we often use spreadsheet to coordinate employees plans for vacation days.

In those use cases you just want to be able to click a link to the spreadsheet and quickly fill your information, regardless of what device you're using.

</comment></comment></comment><comment><USER11> Would someone elaborate on the choice of canvas vs DOM for grids like this? There is this older stackoverflow discussion[1] that seems to indicate that one can get decent performance with large data volumes by maintaining DOM cells for just the viewport area and managing the grid content in response to scroll events. Since the row heights are fixed, the scrolling algorithm should be manageable. So why a canvas rather than DOM?

[1] [https://stackoverflow.com/questions/2402953/javascript- data-...](https://stackoverflow.com/questions/2402953/javascript-data-grid- for-millions-of-rows)

<comment><AUTHOR> I can only give you the reasons why I picked canvas. So here you go.

1\. Scroll performance is much better than HTML

2\. Drawing on canvas is cheap compared to modifying DOM or attributes

3\. Streaming updates are much smoother in canvas as drawing is quick. I had used Canvas as an interface for high-frequency trading

4\. Canvas is easy to work with. And with Konva - [https://github.com/konvajs/react-konva/](https://github.com/konvajs/react- konva/), any React developer will find it at home

5\. No Browser bugs :)

6\. Performance tuning is quicker with Canvas

7\. In the future, we can decide to use WebGL (using PixiJS)

Some problems with canvas IMO

1\. There is no relative positioning :(. It sounds silly, but coming from HTML, any element can be positioned relative to its parent.

2\. Styling/Pixel ratio/Stroke - can be hard to figure out first. And the 0.5px crisp stroke workaround on DPR 1 devices. Took me a long time to figure out

There are pros and cons for both, I guess it all comes down to your personal preference and picking the right tools for the task in hand.

</comment></comment><comment><USER12> Another plug - [https://datagridxl.com](https://datagridxl.com) It's a fully HTML SpreadSheet, no downsides that come with canvas. The Grid works even without any frameworks.

You can see a demo here of One Million Cells - [https://www.datagridxl.com/demos/one-million- cells](https://www.datagridxl.com/demos/one-million-cells).

Granted, it does not have as many features as the React grid, but it's super fast & super reliable and comes with decent touch support.

</comment><comment><USER13> Looks good, but feels wonky when you actually use it.

When I type =SUM( in cell A1 and hit arrow right (before hitting enter or tab), I expect the address of the formula to change to =SUM(A2

F2 should work for editing formulas instead of actually entering "F2" into the cell's content

Many other little "expected behaviors" need to be implemented for this to be a frustration-free experience. You should get a team of experienced Excel users involved so you can see how they work / or they can tell you how they work

<comment><AUTHOR> Hi, I have not shipped Core support for formula yet. Working on it actively

Multi-Selection mode is a WIP

[https://rowsncolumns.app/docs/formula#multi-selection- mode](https://rowsncolumns.app/docs/formula#multi-selection-mode)

<comment><USER13> Thanks. I suggest you look into Excel's behavior while in formula mode and the difference between the Enter and Edit modes which you can toggle with F2 after already being in formula mode

So F2 once to switch to editing a cell, then F2 again to switch between edit and enter, then start typing a formula and click around

</comment></comment></comment><comment><USER14> I can't seem to figure out how to reference another cell. I Also can't seem to get it to use the "=SUM(1,2)" example in the documentation page for formula.

Am I doing something wrong?

Edit: Okay, I can use formulas in the demo spreadsheet on the Formula documentation page, but not the demo linked from the main page. I'm not sure how to reference other cells though.

<comment><USER15> Hi, I have not shipped Core support for formula yet. Working on it actively

In the demo you see, I am using hot-formula-parser to parse formula during render. This won't scale for large applications, cos any parent render will re-render the grid and trigger a recalc

Am working on adding a Directed Acyclic Graph to manage cell dependencies, so that Grid knows which cells needs to be re-rendered.

<comment><USER15> For the parser, we will be using [https://github.com/LesterLyu/fast-formula- parser](https://github.com/LesterLyu/fast-formula-parser)

</comment></comment></comment><comment><USER16> Support for formulas is the killer feature here. Formula that update when you cut / add rows & columns. Would be a happy paying customer once that's live and reliable.

Proper keybindings for copy and paste, undo, redo, column insert as well as image support inside cells. Get in touch with me via my bio if you can implement.

<comment><AUTHOR> Formula support is in our roadmap.

Keybindings can be added easily. I disabled global key handler for copy/paste/undo/redo for now, but that can be enabled.

Images inside cells are pretty straightforward. I will update the docs.

Please signup for our newsletter and I will keep you updated on formula support

[https://rmdort.typeform.com/to/H5TjLoun](https://rmdort.typeform.com/to/H5TjLoun)

I will keep u updated too. Saved your bio :)

</comment></comment><comment><USER17> This is huge. I've been looking for a way to easily use a spreadsheet interface for data intensive applications, and was starting to look at making API calls from the Google Sheets API. This would be much better.

What is the timing for adding formulas / calculations?

<comment><AUTHOR> Hi, I don't have an exact timeline yet. If you are looking for simple calculations, you can try this workaround - [https://rowsncolumns.app/docs/formula](https://rowsncolumns.app/docs/formula)

Do note that this wont scale for larger applications. You would not want to calculate formulas everytime during render.

You could signup for our newsletter and I will keep you updated

[https://rmdort.typeform.com/to/H5TjLoun](https://rmdort.typeform.com/to/H5TjLoun)

<comment><USER10> I really like the prospect of "pluggable" formula parsers. I've thought many times about the possibilities of custom formula languages.

Imagine populating the table using a graphql query to the backend for example. Not sure if that would make sense as a formula by itself but I can see that there are many nice possibilities here.

<comment><AUTHOR> Yes. If you are able to write custom formulas and async handlers for these formulas, I think this is certainly possible.

</comment></comment></comment></comment><comment> shobhit-singhal Awesome work, and good luck!

Some questions:

1\. Is commercial pricing (USD 199) per developer or per application?

2\. Is there a different license needed for SaaS products? handsontable needs something like that.

3\. `fast-formula-parser` looks great. How do you plan to handle writing complex formulas on the front-end?

<comment><AUTHOR> Thank you.

1\. Commercial pricing is per developer. Otherwise it can be misused

2\. No

3\. Formula parsing module that I am building is capable of running in a Web Worker or in the same UI thread. For lag-free calculations, Web Worker is preferred.

Basically Calculations are async. The calc engine can also reside in your own server (future :P)

`fast-formula-parser` does support adding custom formulas, So i think you will have control over it.

</comment></comment><comment><USER18> Works well. What are the use cases for this library? Why use it over Google Sheets?

<comment><AUTHOR> This is mainly targetted at companies who wants to have an in house web-based excel-like grid in their application.

1\. It can be a used to build Apps that render multiple tables in a Sheet. Or a CryptoCurrency trading app where numbers tick at high frequency.

2\. It can be used to edit and download Excel files

3\. Quick slice/dice of csv/excel data for DataScience projects

4\. Formula can be used to run Custom calculations or to fetch data from a third-party server and display them on a Sheet.

Most corporates do not allow Google Suites in the workplace due to privacy concerns. The only alternative is Microsoft Excel, which are not shareable. (unless u send them as attachment :P)

</comment></comment><comment><USER19> \- i type 1 character into a cell and click somewhere else, that cell will be empty.

2 or more characters, the value is set like expected

\- select all (ctrl A) and change font, it freeze for a few seconds

<comment><AUTHOR> Thanks for reporting.

1\. Fixed

2\. Thats because React State of all the cells are updated. One way is to reduce the number of columns. Currently the grid size is 1000 x 1000, which means 1 million objects needs to change.

Need to think of a proper optimization technique.

</comment></comment><comment><USER20> I was making something similar today to integrate into a dashboard, looks like I don't need to anymore. This is very nice and well executed, thanks a million.

</comment><comment><USER21> This is awesome! I was searching the net to find excel like grid and now I have finally found it. Any chance it has pivot table feature?

<comment><AUTHOR> Thanks. Pivot table is a hard one. Doable. In a new Sheet, like how google sheets does.

Some kind of a Layout Component that has top/left/right/bottom bounds, and access to sheet data

</comment></comment><comment><USER22> Can't seem to select cells on android chrome

<comment><AUTHOR> On Mobile, you can view and scroll through the data, but lacks support for selection and editing. This is something that I am looking at. Will come back to this depending on urgency :)

</comment></comment><comment><USER12> Congrats on your launch and front page mention! Must have been a lot of hard work, I can relate. Best of luck!

<comment><AUTHOR> Hey Robbert.. Thank you :)

And congrats on your launch too. Wish you all the best.

</comment></comment><comment><USER23> Hotkeys in firefox don't seem to work properly.

Pgup/Pgdn, ctrl-down etc just inputs the keycode on my machine.

<comment><AUTHOR> Good find. Tracking the issue here [https://github.com/rowsncolumns/grid/issues/62](https://github.com/rowsncolumns/grid/issues/62)

</comment></comment><comment><USER24> Can you hide columns?

<comment><AUTHOR> Yes you can [https://rowsncolumns.app/docs/features/hidden-rows- columns](https://rowsncolumns.app/docs/features/hidden-rows-columns)

I did not add this options to the Context Menu yet.</comment></comment>


How are things inside Facebook after so many scandals? - <AUTHOR> <comment><USER2> Mark said we can`t talk about this.

<comment><AUTHOR> So he's threatening his employees now!!!</comment></comment>


Piketty Inequality Theory - <AUTHOR> https://www.bloomberg.com/news/articles/2019-09-12/piketty-is-back-with-1-200-page-guide-to-abolishing-billionaires <comment><USER2> I don't see what "Piketty Inequality Theory" has to do with the linked-to page.

The Bloomberg title is "Thomas Piketty Is Back With a 1,200-Page Guide to Abolishing Billionaires".

The new book is titled (in English) "Capital and Ideology".

</comment><comment><USER3> The theory looks like a fraud because it is analyzing the inequality only in static not in dynamic

<comment><USER2> What is the theory you refer to? It's not mentioned in the Bloomberg article. It does say:

> Piketty says his conclusion is that it's a mistake to see inequality as > rooted in nature, or driven by changes in technology. Its real causes are to > be found in politics and ideology -- and that makes it easier to challenge.

I don't even see how that ties with your comment, so could you elaborate?</comment></comment>


World War II's Last Doolittle Tokyo Raider Dies at 103 - <AUTHOR> https://gazette.com/pikespeakcourier/world-war-ii-s-last-doolittle-tokyo-raider-dies-at/article_59a79ffc-5c70-11e9-a970-9339832d293a.html <comment><AUTHOR> I usually grimace when Hollywood remakes a classic movie and it is rarely better imho than the original.

But if there is ever a story that needs retelling it's the story of Doolittle's Raiders, they're the original super heroes, who gave America back its swagger after the tragedy of Pearl Harbor.

[https://www.imdb.com/title/tt0037366/](https://www.imdb.com/title/tt0037366/)

<comment><USER2> It's also worth a mention that the Chinese hid the Doolittle's Raiders and got them to safety in face of massive punitive reprisals by the Japanese.</comment></comment>


Tip: How to get an iPad 2 at Target - <AUTHOR> http://log.maniacalrage.net/post/4030658171/tip-how-to-get-an-ipad-2-at-target-today-i

<comment><USER2> As someone who is waiting for the next 4 or 5 weeks before their iPad 2 ships I'm tempted to give this a try.

Also, I'm surprised that Apple is able to open up worldwide when demand is this high and supply seemingly so low.

</comment><comment><USER3> Don't show this to my wife. ;)</comment>


Robot Finds Mysterious Spheres in Ancient Temple - <AUTHOR> http://news.discovery.com/history/archaeology/mysterious-spheres-emerge-from-ancient-temple-130429.htm <comment><USER2> That's not just any temple. When the Aztecs discovered that city, they gave it a name in their Nahuatl language: Teotihuacan means "place of the gods" because they had no idea who built that city, and to this day no one has figured out the origin. 2 millennia ago, it was the largest city in the Americas, covering 30 sq km. The mystery can take your imagination on a wild ride, and I half-expected to see the Predator dropping down out of the sky as he made his rounds on the world's pyramids. ;) I recommend you visit, because it's quite accessible via a half-hour bus ride from the north station in Mexico City.

<comment><USER3> Well the spheres do sound like "Alien" eggs.

</comment></comment><comment><USER4> You have a remote controlled robot, but not a single photo of this cool, unknown object?

Please tell me I missed something on that site.

On another note, this is pretty cool:

[http://en.wikipedia.org/wiki/Jarosite#Use_in_materials_scien...](http://en.wikipedia.org/wiki/Jarosite#Use_in_materials_science)

especially the bit about frustrated magnets. I wonder if the creators of these had any concept of this phenomenon.

<comment><USER5> Here they are: [http://static.ddmcdn.com/gif/1.spheres-660x433-mysterious- sp...](http://static.ddmcdn.com/gif/1.spheres-660x433-mysterious- spheres-130429.jpg)

<comment><USER6> I don't really get why they call them "spheres". Maybe there's some analysis they did to figure out that they used to actually be spherical, but why doesn't the article mention that?

<comment><USER7> They don't look like spheres to me either.

But I guess "robot finds rocks on the ground" doesn't have the same ring to it.

<comment><USER8> One expects spheres to be roughly spherical. These are not.

</comment></comment></comment></comment></comment><comment><USER9> Why do designers think a bar over the content at the top of a webpage is a good thing? There are a lot you types around here, maybe this question can be answered.

I use (used to use, anyway. Before everyone decided to mount a bar at the top) space or page-down to read stuff online. When there's a bar riding above the content I can't use space anymore. I have to use space and then my arrow keys because the visible portion doesn't match what the browser thinks of the page, so it ends up doing a full-size page down, which means the bar covers text I haven't read yet. :(

<comment><USER10> Chrome and Firefox both correct for fixed-position headers to make pageup/pagedn/space work correctly in pages like this one. Some details:

<https://bugzilla.mozilla.org/show_bug.cgi?id=780345>

<https://bugzilla.mozilla.org/show_bug.cgi?id=830479>

<comment><USER11> Chrome does not compensate properly on the linked page. Firefox does. I've written a short article about the issues with this implementation of fixed headers here: <http://gist.io/4950242>

</comment></comment></comment><comment><USER12> "Tell us what you think of this site" lightbox + close button too small to press accurately on a touch device = walk away

<comment><USER13> It's broken even for Chrome on my laptop. Nasty little bit of Flash that renders this page barely viewable

<comment><USER14> To everyone who has asked: this is why we use NoScript :)

</comment></comment></comment><comment><AUTHOR> What are the chances that we're on the cusp of a golden age of archaeological discovery as robots/drones/etc advance in capabilities and allow us to deeply explore ruins, underground lairs, underwater wrecks, and other remains of past, buried civilizations that previously required human-sized openings / human-supportable environments? Or is it more likely to be continued marginal advancements over time as we keep discovering the next-hardest stuff to discover? (It's been decades since Alvin explored the Titanic, but the technology is getting much better and much more affordable.) Either way, it's an exciting time to be alive.

</comment><comment><USER15> It's the Temple of the Feathered _Serpent_ , and they don't get the significant of round objects buried in the ground? Seems to me that it's possible that they would represent eggs, though I'm no expert on Meso-American culture/religion.

<comment><USER16> Maybe they've discovered an ancient bowling alley.

</comment></comment><comment><USER17> Related in some way to the Costa Rica Spheres?

<http://en.wikipedia.org/wiki/Stone_spheres_of_Costa_Rica>

<comment><USER18> This is much closer to what I was imagining...

Except in my head they were also levitating in the midst of a vast antechamber paved with demihuman skulls, while bathed in a murky, sourceless flame whose flicker caused the wall reliefs to seem to dance, and stab at the probe with wicked implements of shadow.

So I suppose disappointment was inevitable :\

</comment></comment><comment><AUTHOR> Since this page appears to be uselessly bloated for many users, here is the text: (I cannot find a link to another news article)

Hundreds of mysterious spheres lie beneath the Temple of the Feathered Serpent, an ancient six-level step pyramid just 30 miles from Mexico City.

The enigmatic spheres were found during an archaeological dig using a camera- equipped robot at one of the most important buildings in the pre-Hispanic city of Teotihuacan.

"They look like yellow spheres, but we do not know their meaning. It's an unprecedented discovery," said Jorge Zavala, an archaeologist at Mexico's National Anthropology and History Institute.

The Mesoamerican ruins of Teotihuacan, a World Heritage Site, represent one of the largest urban centers of the ancient world. Thought to have been established around 100 B.C., the pyramid-filled city had more than 100,000 inhabitants at its peak, but was abandoned for mysterious reasons around 700 A.D. -- long before the Aztecs arrived in the 1300s.

The excavation at the temple focused on a 330-foot-long tunnel which runs under the structure. The conduit was discovered in 2003 when heavy rain uncovered a hole a few feet from the pyramid.

Exploring the tunnel, which was deliberately filled with debris and ruins by the Teotihuacan people, required several years of preliminary work and planning.

"Finally, a few months ago we found two side chambers at 72 and 74 meters (236 and 242 feet) from the entrance. We called them North Chamber and South Chamber," archaeologist Sergio Gómez Chávez, director of the Tlalocan Project, told Discovery News.

The archaeologists explored the tunnel with a remote-controlled robot called Tlaloc II-TC, which has an infrared camera and a laser scanner that generates 3D visualization of the spaces beneath the temple.

"The robot was able to enter in the part of the tunnel which has not yet been excavated yet and found three chambers between 100 and 110 meters (328 and 360 feet) from the entrance," Gómez Chávez said.

The mysterious spheres lay in both the north and south chambers. Ranging from 1.5 to 5 inches, the objects have a core of clay and are covered with a yellow material called jarosite.

"This material is formed by the oxidation of pyrite, which is a metallic ore," Gómez Chávez said. "It means that in pre-hispanic times they appeared as if they were metallic spheres. There are hundreds of these in the south chamber."

According to George Cowgill, professor emeritus at Arizona State University and the author of several publications on Teotihuacan, the spheres are a fascinating find.

"Pyrite was certainly used by the Teotihuacanos and other ancient Mesoamerican societies," Cowgill told Discovery News. "Originally the spheres would have shown brilliantly. They are indeed unique, but I have no idea what they mean."

Even the walls and ceiling of both chambers were covered with a mineral powder composed of magnetite, pyrite and hematite which provided a special brightness to the place.

"We believe that high-ranking people, priests or even rulers, went down to the tunnel to perform rituals," Gómez Chávez said.

Indeed the archaeologists found many offerings, including pottery and wooden masks covered with inlaid rock crystal, jade and quartz -- all dating from around 100 A.D.

Gómez Chávez and his team now look forward to the next phase of the project -- exploring the last part of the tunnel and three chambers which archaeologists have seen through the robot cameras.

"The tunnel is in pristine condition, untouched for almost two millennia," said Ng "TC" Tze Chuen, an independent researcher who worked on the design of the Tláloc II-TC robot. "Can you can imagine what can be found inside?"

Ng, who helped create the Djedi robot that explored Egypt's Great Pyramid in 2010, believes the Mexican tunnel might lead to one of the most significant archaeological finds in Teotihuacan.

"The results are very encouraging indeed," he said.

According to Gómez Chávez, the tunnel was sealed twice by the Teotihuacan people. Thick walls, erected to block access, were demolished about 1,800 years ago in order to deposit something very important in the central chamber at the end of the tunnel.

"Maybe in this place," Gómez Chávez said, "we will find the remains of those who ruled Teotihuacan."

<comment><USER19> No way! The page works fine.

Copying and pasting whole articles into comments? Maybe when the internet actually breaks, do that. But when a couple of people have a whinge about a lightbox, or someone else complains about Flash which doesn't seem to be there...

What if they edit their article? Will you update your post with those corrections?

<comment><USER20> The page is actively hostile towards readers. On my mobile device, a large 'survey' box covers the text, which cannot be closed. The discovery.com website is broken.

</comment></comment></comment><comment><USER21> Best headline I've seen on HN in years.

</comment><comment><USER22> You can see some better pictures of them here, along with the archaeologist:

[http://lh4.ggpht.com/_-- Z3sZFnME0/TKN3KSl_pmI/AAAAAAAAAJY/09...](http://lh4.ggpht.com/_-- Z3sZFnME0/TKN3KSl_pmI/AAAAAAAAAJY/09nMxFSGf8c/s800/a_148NewtRipleyNest.jpg)

</comment><comment><USER23> "Mysterious Spheres"? They look like ordinary rocks to me.

</comment><comment><USER24> Call Ripley to open the easter eggs.

<comment><USER25> That was my first thought too! It's totally a (bad?) sci-fi movie plot:

1) Ancient pyramid? Check

2) Hidden tunnel under pyramid to special room? Check

3) Weird items of unknown purpose hidden in room? Check

4) Tunnel filled in and hidden from view by ancient people? Check

5) Tunnel uncovered in modern times by accident? Check

6) Modern Archaeologists disturb ancient alien eggs causing decimation of the human race? Che...

<comment><USER26> facemasks... uhhh, facemasks? Who was supposed to bring the facemasks?!?!

</comment></comment></comment><comment><USER27> Damn. Still no ancient aliens.

</comment><comment><USER28> Cast Analyze so you don't waste MP on spells that don't work.

<comment><USER29> Use bayesian logic first! They're yellow therefore they are likely electric type. Cast a rockslide spell first and see if you get type damage.

</comment></comment><comment><USER30> Why is this posted to Hacker News? It didn't seem at all related to programming or starting a business

<comment><USER31> <http://ycombinator.com/newsguidelines.html>

_On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity._</comment></comment>


OpenDrop: An Open Source AirDrop Implementation - <AUTHOR> https://github.com/seemoo-lab/opendrop <comment><USER2> If you are interested in possible uses for this kind of technology, my R&D work until recently has been to find use cases for WiFi Aware and bring them to life.

Some examples:

* 1-tap file transfers: [https://darker.ink/static/media/uploads/08_awarebeam_1.mp4](https://darker.ink/static/media/uploads/08_awarebeam_1.mp4)

* Sharing presentations, images and drawings: [https://darker.ink/static/media/uploads/05_meshpresenter_1.m...](https://darker.ink/static/media/uploads/05_meshpresenter_1.mp4)

* Playing Quake 3 (OpenArena): [https://darker.ink/static/media/uploads/02_openarena_1.mp4](https://darker.ink/static/media/uploads/02_openarena_1.mp4)

If you want to know more details, this talk is a good starting point:

[https://fosdem.org/2019/schedule/event/device_to_device_netw...](https://fosdem.org/2019/schedule/event/device_to_device_networks/)

[https://darker.ink/blog/mobile-design-with-device-to- device-...](https://darker.ink/blog/mobile-design-with-device-to-device- networks/)

</comment><comment><USER3> Interestingly the article on the bottom links to a Usenix 2019 (held Aug 14 - 16) paper with the title "A Billion Open Interfaces for Eve and Mallory: MitM, DoS, and Tracking Attacks on iOS and macOS Through Apple Wireless Direct Link"

Abstract:

"Apple Wireless Direct Link (AWDL) is a key protocol in Apple's ecosystem used by over one billion iOS and macOS devices for device-to-device communications. AWDL is a proprietary extension of the IEEE 802.11 (Wi-Fi) standard and integrates with Bluetooth Low Energy (BLE) for providing services such as Apple AirDrop. We conduct the first security and privacy analysis of AWDL and its integration with BLE. We uncover several security and privacy vulnerabilities ranging from design flaws to implementation bugs leading to a man-in-the-middle (MitM) attack enabling stealthy modification of files transmitted via AirDrop, denial-of-service (DoS) attacks preventing communication, privacy leaks that enable user identification and long-term tracking undermining MAC address randomization, and DoS attacks enabling targeted or simultaneous crashing of all neighboring devices. The flaws span across AirDrop's BLE discovery mechanism, AWDL synchronization, UI design, and Wi-Fi driver implementation. Our analysis is based on a combination of reverse engineering of protocols and code supported by analyzing patents. We provide proof-of-concept implementations and demonstrate that the attacks can be mounted using a low-cost ($20) micro:bit device and an off-the-shelf Wi-Fi card. We propose practical and effective countermeasures. While Apple was able to issue a fix for a DoS attack vulnerability after our responsible disclosure, the other security and privacy vulnerabilities require the redesign of some of their services." [1]

I got nothing to add regarding OpenDrop other than that I love interoperability, and that I love it when FOSS enables this.

[1] [https://www.usenix.org/conference/usenixsecurity19/presentat...](https://www.usenix.org/conference/usenixsecurity19/presentation/stute)

<comment><USER4> I can't hep but think that these seemingly numerous security flaws are a product of proprietary software development. There is the old "many eyes" idea for software bugs, but even on a standards level. Did Apple not send out an RFC? Isn't this type of architectural level screw up exactly what you want to avoid with an RFC?

I'm glad Apple are taking the privacy issue to heart, but for every inch we've won in privacy, we lost an inch in openness and interoperability. Apple is perhaps one of the worst offenders when it comes to vendor lock-in.

I use almost only Apple products out of sheer laziness (and honestly inertia.) At least their war with Qualcomm and NVIDIA creates some competition in their respective markets...

<comment><USER5> The "many eyes" hypothesis is routinely debunked when severe security bugs are found in things like the Linux kernel that have been there for years. The same is true for standards that end up being fundamentally broken at later dates. In the end software and hardware is so overly complicated that we cannot currently build secure systems.

<comment><USER6> Debunked is a loaded term.

It's a tradeoff. The point is not MANY eyes, it's ANY eyes. Proprietary software has NO public eyes on it, zero, and the vendor must (1) report to you promptly when there's a new vulnerability, (2) produce a fix for it. Most vendors do neither until forced. How many undisclosed vulns does your vendor have? You'll never know.

Of course FLOSS has bugs, it's software, and ALL software has bugs. In the FLOSS case you know what everyone else knows, AND you can fix them, hire someone to do it, or choose not to use the software, all with that knowledge.

<comment><USER7> > Proprietary software has NO public eyes on it, zero

If that were true, security flaws would never be found in proprietary software by outsiders. And they are, so it's not true. Eyes have less visibility into the codebase, but people are looking and do find flaws.

> How many undisclosed vulns does your vendor have? You'll never know.

How many undisclosed vulns does RedHat, Canonical, or Mozilla have in their FLOSS software? You'll never know.

> Of course FLOSS has bugs, it's software, and ALL software has bugs.

Then "many eyes makes bugs shallow" is at least partly debunked and your "ANY eyes make bugs shallow" is debunked completely - otherwise the original developers would see every bug, in FLOSS and proprietary software.

> In the FLOSS case you know what everyone else knows

There may be bugs which nobody knows about. The claim "many eyes make bugs shallow" suggests that open source software has more eyes on the code, and that having more eyes on the code is all it takes to reduce bugs. OpenSSL turned out to have very few eyes on the code, and it wouldn't be too surprising if codebases with many eyes on them had the developers focused on the bits they were developing and not looking for security flaws.

</comment></comment></comment></comment></comment><comment><USER8> This is great, especially considering that AirDrop is used for instance by Hong Kong protesters to bypass the great firewall [1].

[1] [https://qz.com/1660460/hong-kong-protesters-use-airdrop- to-b...](https://qz.com/1660460/hong-kong-protesters-use-airdrop-to-breach- chinas-firewall/)

<comment><USER9> GFW is only implemented in the mainland China, not Hong Kong.

        China == (mainland + (Hongkong SAR + Macau SAR) + (... possibly other de jure claims))

To use Airdrop the main advantage is it can be used to spam everyone nearby.

If it can be used by protestors it also can be used by advertisers.

<comment><USER10> They are not using AirDrop to bypass the GFW for themselves, they are using it to spread information to citizens that are otherwise normally subject to GFW and therefore only have government-approved or government-generated information available to them.

Mainland news put HK protesters as violent, rebellious youngsters that are causing trouble and injury to everyone else by having greedy demands of something better than what mainland has. Such story leads to minimal sympathy and curiosity.

Even knowing that this information is filtered, few will end up truly questioning it, and thus even when they leave GFW, they will not know that there is conflicting information to find.

<comment><USER11> That's a very loose definition of the word "evade" and the headline is definitely misleading. The average person was probably expecting to find some sort of censorship evasion while current being censored.

<comment><USER10> Censorship evasion is doable within minutes for most, which is well known for those interested in it.

However, many do not feel compelled to evade it, and have no idea of what happens "on the outside".

<comment><USER12> Censorship evasion is no longer trivial. Deep Packet Inspection (DPI) exists and makes it difficult to use even VPNs. Shadowsocks works but has limited UDP support out of the box iirc.

<comment><USER10> There are massive regional variations, so what I say is likely not universal, but my non-techie acquaintances still successfully use VPNs, in their case to use services like Facebook and WhatsApp.

I do not know what provider they use, but their knowledge of VPNs go no further than knowing that "VPN = facebook access", so it would seem that "commoners" still manage at least in some bigger regions.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> I wonder if it's more reliable than Apple's own implementation for MacOs. It used to be rock solid – and between iOS devices it still is – but between Macs I regularly have to switch both to "Search for an older Mac" to make them see each other, with no explanation why.

<comment><USER14> I was complaining about this with a coworker today. AirDrop 1 was flawless, since 2.0 it has been more often than not unreliable between Macs.

I'd love to know if anyone knows the technical details about what caused this regression?

<comment><USER15> Interesting, my own experience has been the opposite. From what I remember v1 was constantly broken, initial v2 was not much better but now everything is very smooth all the time.

<comment><USER16> I had the same experience. The first AirDrop worked about 30% of the time, once AirDropv2 came along it works 90% of the time.

The "Share Only With Your Contacts" option still seems broken to me, I usually have to temporarily allow all access before AirDropping something.

</comment></comment></comment></comment><comment><USER17> It is 2019, and it is quite surprising - and disappointing - that we STILL haven't universally solved the means to easily, securely, and (yes, I'll use this term again) universally share files. I wish we could share files in a peer-to-peer fashion securely without hindrance of mobile platform, nor blockage of network MiTM, etc. </sigh>

<comment><USER18> [https://files.google.com/](https://files.google.com/) is a standard and it works on the vast majority of phone sold this year, by every manufacturer except Apple. Checks all 3 of peer-to-peer, secure, no MiTM network blockage. It's only 11MB.

Many popular file manager apps on android have peer-to-peer xfers as well, via WiFi direct, etc.

EDIT - As people are pointing out this isn't universal because it doesn't work on Apple devices or desktops / laptops, but it's as close as I can think of currently.

<comment><USER19> Almost. People need to install the app to use its transfer functionality, and it does not work with computers. We're still far from the universal, no- install solution that should've existed for so many years now.

<comment><USER20> Well, no install basically means every OS vendor needs to ship a proper and compatible implementation (hah yes that'll surely happen) or you basically need something web based which means it needs an internet connection for bootstrapping.

</comment></comment></comment></comment><comment><USER21> I'm guessing someone will take a $10 esp32 chip and put this code on it and just drop the esp32 in some hidden location and it just sending images to any open airdrop that passes by.

<comment><USER22> ESP32 theoretically can provide all of the hardware requirements (WLAN monitor mode, BLE) but there is one missing part:

> Triggering macOS/iOS receivers via Bluetooth Low Energy. Apple devices start > their AWDL interface and AirDrop server only after receiving a custom > advertisement via Bluetooth LE (see USENIX paper for details). This means, > that Apple AirDrop receivers may not be discovered even if they are > discoverable by everyone.

If someone reverse engineer BLE advertisement, yes they can build such hardware.

<comment><USER23> This has been reversed - see [https://hexway.io/blog/apple- bleee/](https://hexway.io/blog/apple-bleee/)

<comment><USER24> Thanks, I did not know about this; looks like something fun to play with :)

</comment></comment></comment></comment><comment><USER25> Could this technology be used to create a "shadow" internet/network/messaging service where devices connect and communicate directly with each other. This way governments can't just block internet access or services during demonstrations.

<comment><USER26> For what it's worth, I have been able to get the Yggdrasil Network ([https://yggdrasil-network.github.io](https://yggdrasil-network.github.io)) to peer over AWDL, allowing nearby Macs to mesh without even being connected to the same Wi-Fi network, or any network at all.

It's not perfect - there are trade offs, like how the wireless performance is reduced somewhat when AWDL is active due to channel hopping and how AWDL expects a single node to play the role of clock sync source. It's also not very well tested yet.

However, it works and in theory it allows an infrastructure-free IPv6 mesh network to be built ad-hoc.

<comment><USER27> Any chance you could throw together a quick blog post on this? Or maybe a quick gist; doesn't have to be polished.

<comment><USER26> Sure thing - I threw this together over the last hour or so: [https://yggdrasil-network.github.io/2019/08/19/awdl.html](https://yggdrasil- network.github.io/2019/08/19/awdl.html)

<comment><USER27> Thanks, that was an educational read. Much appreciated.

</comment></comment></comment></comment></comment><comment><USER28> I wish we had something like AirDrop to work between android and iOS devices.

<comment><USER29> iMessage too. It's insane to me that this is still a problem.

<comment><USER30> That's not a problem. That was precisely Apple's idea: a not interoperable message network.

We had XMPP among others, and Apple decided not to be open. We now also have Signal or Telegram, which are multi-platform.

<comment><USER31> Sorry but how is iMessage being a walled garden not a problem for those outside that wall?

<comment><USER32> It might be a problem but it's definitely intended by Apple. FaceTime, too.

<comment><USER33> Steve (Jobs) _famously_ , and impulsively claimed they were going to release FT as open source - so impulsive that he never even checked with their lawyers first, because it never happened due to legal/licensing issues, not because they didn't want to.

<comment><USER34> Do you think that's true, sounds exactly like a publicity stunt to ensure a big launch in the face of having no answer to "is it interoperable".

If you say "yeah sure it is, we're even releasing it as open source" then you prevent the product falling at the first hurdle because people want an interoperable solution. Once you have adoption network effect carries you through.

Sounds like most probably a standard corporate lie by Jobs; do you have evidence to the contrary?

<comment><USER33> Very little original software from apple is open source.

Things that they've adopted/forked/bought are but there's not much they've started from scratch and released as OSS.

There is almost no expectation of it from people who know Apple.

Promising something unexpected and not delivering is undoubtedly more damaging than saying nothing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> Cross-platform local file transfer alternative with resumable file transfer:

[https://feem.io](https://feem.io)

<comment><USER36> Looks great, I wonder why it doesn't have more traction.

<comment><USER37> Maybe because it's not free: 5$ a year for 4 devices but only the same type, you cannot install it on your Mac and your iPhone With only one licence. So if you want to transfer between Mac and iPhone, it's at least 10$ a year.

<comment><USER38> And the other big problem - that is $5 a year just for your own devices. I have plenty of ways to move files from one machine to another, but if I have a file that I want to give to a family member sitting next to me, or a co-worker across the table the chances of him having the same service is zero unless I sell them on it. With AirDrop I just look at what hardware they have and immediately know if it is compatible.

</comment></comment></comment></comment><comment><USER39> Xiaomi, Oppo And Vivo just introduced their own version of AirDrop. [https://www.forbes.com/sites/bensin/2019/08/19/xiaomi- oppo-a...](https://www.forbes.com/sites/bensin/2019/08/19/xiaomi-oppo-and- vivo-team-up-introduces-own-version-of-iphones-airdrop/)

<comment><USER40> Seems like theirs is not cross-compatible with airdrop. But OpenDrop is.

<comment><USER41> If there's a standard for this new thing, apple can stuff it.

</comment></comment></comment><comment><USER42> An HTML5 alternative: [https://github.com/cowbell/sharedrop](https://github.com/cowbell/sharedrop)

Uses WebRTC for file transfer.

<comment><USER43> Just to make it more obvious: You don't have to self host it, there is a free (no registration) Version deployed at [https://sharedrop.io](https://sharedrop.io)

Works perfect between IOS, Android, Linux, MacOS and Windows.

<comment><USER44> Why does it need firebase? That doesn't seem to tic the "not-google" box. :-)

<comment><USER45> FilePizza also uses WebRTC without Firebase - [https://file.pizza/](https://file.pizza/)

</comment></comment></comment></comment><comment><USER46> Let's talk for a minute about why all the Apple things aren't open. There is zero about iMessage or AirDrop that should be proprietary. The only reason I know of is vendor lock-in, and that stinks for users. It would be way more helpful to way more people if these features were ubiquitous, open, and standards-based like SMTP or IMAP is for email. We wouldn't except an Apple- only iMail, why do we accept iChat and iPhotoShare?

<comment><USER47> OK, I'll talk about why...

What does Apple sell? A commodity computing device running undifferentiated software? Or the experience of a holistic tool?

When someone distributes a Messenger by itself, you don't ask why it isn't open. You don't ask why the hardware device isn't open. Why should a vendor unbundle the two just to make you happy?

What if it doesn't really unbundle, what if the capabilities combine to offer most buyers something they value more than pieces parts?

<comment><USER46> I totally get that argument for things that aren't commodity. Chat and file share should be interoperable services in 2019. Like Email is and has been for ages (though not always as any GroupWise or BBS user will tell you). The vendors can bundle and have closed source implementations, but by definition they should work with any provider. But I feel the same way about "you can only iMessage other iPhones" as I would if I could only email other iPhones (or as a better analogy if emails to non-iPhones were reduced in functionality.) and yes, they should make me happy- I'm the customer.

</comment></comment></comment><comment><USER48> I haven't looked at the OP yet but as convenient as AirDrop is, I find its reliance on both BT and WiFi confusing. One needs both the devices to be connected to the same network to be able to able to drop stuff.

Few days back my home router broke down and I was unable to send URLs from my iPhone to Mac just because there was no common network.

I wish for AirDrop to be more like Pushbullet.

<comment><USER49> You just have to be within bluetooth distance; AirDrop doesn't require the same wifi network. It does require wifi to be enabled, because AirDrop creates its own wifi network side channel for the actual transferring of files.

<comment><USER48> Really? I'll give it a try again. It was clearly not working for me when the router was down.

<comment><USER50> Yes, I've used it to send photos/videos I've taken to friends while outside in places where there are no wifi networks.

<comment><USER51> I wonder if it's different if you have it set to "Contacts only". It may need to connect to iCloud.

<comment><USER52> I have mine set to Contacts Only, and regularly use it to move photos between iPhone and iPad when on flights (and indeed other locations) without wifi or cellular.

</comment></comment></comment></comment></comment></comment><comment><USER53> It's sad there is a certificate involved so it can't be 100% compatible open alternative. I use Linux with KDE and KDE Connect which offers "send file" functionality from Android and it's enough for my use case.

</comment><comment><USER54> Get this into Android at the OS level and I would consider one of those sexy flagship devices

But it would also need to seamlessly mix bluetooth and wifi discovery too.

</comment><comment><USER55> Would it also be possible to share contacts and links to sites? Thinking of a new reception desk feature (lots of apple customers)

<comment><USER56> I believe AirDrop defaults to "Contacts Only" so you'd need to have every customer add your reception phone number.

</comment></comment><comment><USER21> Is there any valid use cases for something like "legitimate airdrop"?

Maybe things like hyper local advertisements.

<comment><USER57> I wouldn't consider that legitimate at all. Legitimate airdrop is its exact intended use case: p2p transfer between people who are both consenting into it.

</comment></comment><comment><USER58> How hard would it be to use this to spam iOS devices where AirDrop is set to "Everyone"?

</comment><comment><USER59> Not all heroes wear capes.

</comment><comment><USER41> Balls in Android's court to deliver some kind of p2p connectivity that works beyond Android2android. Can't happen soon enough. Stop playing with yourself & start doing real computing, Android.

<comment><USER60> WebRTC has been around for a while.

<comment><USER41> What a dumb reply. Webrtc works on the web for p2p ok. But how do people in the same area transfer files with each other? There are huge rendezvous problems webrtc comes no where near addressing.

</comment></comment></comment><comment><USER61> God, I wish people would stop using Python for these sorts of things.

It is an okay language, but after tracking down why it doesn't build and considering messing around in my system and making either installing older versions of libraries or messing around with symlinks I stopped and asked myself "really? I want to spend my time fixing this?" and just deleted the entire clone of the git repos.

Python is a nice language and all, but it is not a language suitable for writing applications that you distribute. (I wish the Python core developer would devote some time to making Python less horrible for distributing applications, but after around 30 years, I don't think so).

<comment><USER62> I honestly haven't run into this issue in a long time. `pip install --user` is one of your friends. Just using the official python:3 docker container is another. If you really want, you can even go back to virtualenvs.

npm was also really bad about nothing building or working a few years back. It's improved, and there are alternatives like yarn. Rust/Cargo has this issue as well (whenever I attempted to pick up some Rust; every example I found would break -- constant language changes were an issue; not sure if that's still the case).

Package management is a big problem in general, but we have solutions like the ones I've mentioned. This is a bad argument against not using Python. I honestly thing this type of application is fine in Python (you might need a privileged container if you go the docker route; wasn't sure how low level the Wi-Fi stuff it needs is).

What language do you recommend for this type of application and why?

<comment><USER61> Primarily any language that can produce executable binaries. Preferably statically linked binaries so that you can ship a unit that will not depend on the state of the system you try to run things on.

(With disk and memory sizes, dynamically linked binaries aren't really as relevant anymore since the often trivial cost of size more than makes up for the nontrivial cost of having to fiddle around to make things actually work)

<comment><USER63> It's possible to produce a self-contained executable with Python, there's multiple solutions for this it's just not a part of the core language.

I agree that the situation isn't perfect in the python world but it's actively being worked on and I think PyOxidizer looks like one of the most interesting recent developments in this space: [https://pyoxidizer.readthedocs.io/en/latest/](https://pyoxidizer.readthedocs.io/en/latest/)

Some other alternatives (depending on your use case, e.g. target platform) are PyInstaller, py2exe, py2app, cx_Freeze, Shiv, PEX (basically tooling for native .pyz), XAR, Nuitka (compiles Python into a native binary), pyninst (creates windows installer), PEP 441 style .pyz (executable python archive, can easily vendor in dependencies). Then there's tools like fpm if you want to create packages for deb, rpm, FreeBSD, macOS .pkg, paceman, tar-archives, etc.

I've used some of these in enterprise settings building rich GUI-applications being distributed to end users who have no idea of what Python is and to whom underlying technology choices are invisible.

<comment><USER61> So with so many solutions to the same problem being made: which do you choose?

The thing is: for it to be useful people have to use it. And for people to use it nothing works better than one clear, idiomatic way.

If you have many solutions you often end up having no solution.</comment></comment></comment></comment></comment>


What license to use for open source, if I want to guarantee attribution - <AUTHOR>

So, what license should I use if I want to be assured that anyone that uses the software will ship with the license that shows that I wrote the software? <comment><USER2> Something really short, so your desire doesn't drown in a sea of verbiage.

Some people are assholes. Not many, IMSNHO. I assume you don't want to spend your days talking to assholes, or pay a lawyer to do that, so ignore that factor.

The others will do as you want if they can tell what you want and it's reasonable. If you pick a short, readable license your chances are good. One of the BSD licenses will do.

</comment><comment><USER3> Why doesn't the GPL do what you want?</comment>


Ask HN: Why does it cost $1.4B to take the US census? - <AUTHOR> I was reading an article today about the head of the census quitting, citing lack of funding from the Trump admin.  In the article, is says they requested $1.4B to take the 2020 census, $936M of which was for "computer system upgrades".
I understand they need staff to go around and hassle people who haven't filled out the forms, find the homeless, etc, and also marketing expenses to get people to fill it out.
But $1.4B seems ridiculously high, and so do $936M for computers.
Is anyone familiar with what is involved in a census that can tell me why it costs so much?  I'm having trouble finding good (digestible) info with Google. <comment><USER2> 1.4B / 10 years = 140M a year to hire people to go out and talk to residents and systems to collate it. I've nothing to compare that to to sanity check it but it does seem high.

1.4B / ~ 300 million is about 4.33 usd per person. That doesn't seem all that high especially if you divide that 4.33 / 10 as the census occurs every 10 years.

<comment><USER3> Do they actually get data from 300m people?

<comment><USER4> Pretty close.

One year we didn't fill out the foum, and they came and knocked on our door, twice.

It isn't the data collection thats expensive it is the cross checking and completeness that is expensive.

</comment></comment></comment><comment><USER5> First, that's just for 2017. Each progressive year before 2020 will be even higher.

Second, the link below to the 2017 budget details provides some detailed answers:

[https://www2.census.gov/about/budget/FY2017-census-budget- su...](https://www2.census.gov/about/budget/FY2017-census-budget-summary.pdf)

General budget page:

[https://www.census.gov/about/budget.html](https://www.census.gov/about/budget.html)

tl;dr - the $778 million is for a wide range of modernization efforts, not just "computers".

</comment><comment><USER6> It isn't $936M for computers, it is for "computer system upgrades". I would guess that includes software upgrades and licenses and, possibly, programming.

Also: PII ([https://en.m.wikipedia.org/wiki/Personally_identifiable_info...](https://en.m.wikipedia.org/wiki/Personally_identifiable_information)), definitely when combined with 'government' makes for expensive systems, partly rightfully so.

</comment><comment><USER7> Furthermore, would you as the civic duty minded citizen plan to tread deep into the desert or bayou to find the rural citizens for their census? Can't exactly automate that.</comment>


LimeWire Resurrected By Secret Dev Team - <AUTHOR> http://torrentfreak.com/limewire-resurrected-by-secret-dev-team-101108/ <comment><USER2> Alternatively, <http://www.frostwire.com/> is a pretty decent LimeWire fork.

</comment><comment><USER3> "If you strike me down, I shall become more powerful than you could possibly imagine."

<comment><USER4> I'm just waiting for someone to build a searchable distributed index for bittorrent that connects you not with a peer but with a hop that just happens to be on the network. The people who actually have the files don't ever connect to the people they're sending it to directly. This network is self- aware enough that fast seeds tend to connect to fast hops and slow to slow. You pay a throughput penalty but you get a massive "security" boost.

Of course, the legitimate reason to be on this network is a tor-like "to help dissidents access files they're blocked from".

Seeing the *AAs trying to litigate that would be something.

</comment></comment><comment><USER5> Wasn't the Gnutella protocol/network designed to be impossible to kill for this reason? Limewire's increasing centralization (in an attempt to "monetize" people stealing stuff) was what made them vulnerable.

</comment><comment><USER6> You can download it here: <http://metapirate.webs.com>

</comment><comment><USER7> From the title here, I wouldn't have guessed the article was breathlessly proclaiming the software back from the dead like a zombie vampire Jesus!!1!

</comment><comment><USER8> Where can one download this new Limewire?</comment>


Hearst Shows Off Its Snazzy E-Reader, The Skiff Reader - <AUTHOR> http://www.businessinsider.com/hearst-shows-off-its-snazzy-e-reader-the-skiff-reader-2010-1

<comment><USER2> I'm waiting on a fully-featured, well-designed [non-Sony] reader that's small enough to pocket: say, the size of a very thin mass-market paperback. These huge things aren't something I can see myself carrying around.</comment>


Quick Q - <AUTHOR>

Hey, I don't know much about computers but I'm interested in learning how to make great web pages, Web 2.0 Apps,and Facebook Apps.  Right now, I have been brushing up on C++ and Pascal (languages I have previously learned).  Basically what is the right progression for me to develop the skills for the aforementioned? <comment><USER2> Web development requires small slices of dozens of skills. You need to be able to design web-pages (CSS, HTML, a personal design aesthetic). You need to be able to interface between your pages and your server (web frameworks ease the pain of this: Django (Python), Ruby On Rails (Ruby), Seaside (Squeak), Lift (Scala), and others in Scheme, Common Lisp, Java, etc). You (will probably) need to be able to add interactivity to your projects: javascript/ajax or Flash (or, theoretically, Silverlight). You will need to interact with databases to create persistent data (PostgreSQL, MySQL, SQLite), or at least learn how to use an ORM (object-relational mapping, used to create a simpler interface to interact with databases without using Structured Query Language).

If you are seriously devoted to developing a web applications, I would consider trying Django. It is a full development stack (it will help you with templates for your html, views to populate the templates, an ORM to control your database, etc), and I found it more intuitive than Ruby-on-Rails.

However, given the wide number of skills involved in web programming, I would strongly consider focusing on one aspect and becoming proficient at that. Specializing means you can more quickly become an asset (to a team), but will also develop skills you would need to develop anyway to develop quality web applications.

Although many web applications seem stupidly simple, there is still a huge amount of time and effort being spent invisibly: testing for cross-browser compliance, designing and building a system that scales horizontally, designing your website to appeal to customers, setting up your production hosting, cleaning and escaping all incoming data to prevent various security exploits, creating a caching framework to avoid hitting your database if possible (slow), designing your overall system to perform quickly, and the list never ends: there is always something else.

This is the joy of web programming, and also the reason that it is hard to do well. Don't be discouraged, just realize that it isn't simple, and get to work. :)

</comment><comment><USER3> C++, Pascal will be of little help I'm afraid. Web developement can be broadly categoriesed into points as below, that you might want to learn.

Server side : PHP, JSP,ASP,Ruby. Presentation/Client side scripting : HTML,CSS,Javascript Backend: MySql, Oracle etc.

I suggest you to start a project and learn while you code, learning curve may be high for you depending on the level of exp you have.</comment>


News of Bin Laden's death causes highest tweet rate ever - <AUTHOR> http://techcrunch.com/2011/05/02/bin-laden-announcement-twitter-traffic-spikes-higher-than-the-super-bowl/

<comment><USER2> This is interesting, but I am struggling to accept it as being a useful Hacker News post, because it provides trivia neither useful nor lasting.</comment>


Why I love having tabs in source code. - <AUTHOR> http://www.derkarl.org/why_to_tabs.html

<comment><USER2> Most of the author's points are easily avoided if you _learn how to read other people's code._

Srsly. When you're starting a brand new green-field project, you can indent however you feel like. But if you're working on an existing project, _just do it the way the original person did it_ , even if it's not your favorite coding style. It's not worth the time and energy arguing over it. All this talk about ease of reformatting code is ridiculous...you shouldn't reformat code, you should just do what everybody else on the project does.

<comment><USER3> Exactly. As someone said the other day on HN, argue over the issues, not the details. :)

</comment></comment><comment><USER4> FTA: "Reformatting the file (with indent, for example) makes diffs completely impossible since the whole file will be different."

Apparently the author doesn't know about the -w option to diff, which makes it ignore whitespace.

<comment><USER5> So you have a rule, "every file gets formatted in <style> before it gets checked in - edit in any style you please, but reformat it after".

<comment><USER6> Exactly. This is almost common sense; I have never specifically told anyone "to commit to my repository, make sure you indent in such-and-such way". I have also never been told this rule; if I notice that every indentation level is two spaces more than the last level, I assume I should do the same. (If it's a whole project, I just add the changed settings to my .eproject file, and never think about it again. Very simple.)

I have found, in general, that it's the very new or very bad programmers that want to quibble over style. Everyone I've worked with is fine with anything. In the long run, it just doesn't matter at all.

<comment><USER7> The rules is somewhat common sense. But I _have_ had to tell people the rule (mostly to very new programmers). Interestingly I haven't found that they wanted to quibble about style, they just didn't notice they were doing things differently.

Putting the correct thing in their .emacs usually clears things up (show- trailing-whitespace throws your loose whitespace habits right in your face).

</comment></comment></comment></comment><comment><USER8> According to this person, KWrite is better than Emacs and Emacs is a bug. In my opinion, this makes his post a little less credible. The rules that he suggests we all learn for how to use tabs and spaces in a file are helpful, but only when you're forced to use tabs. Otherwise, using spaces is always easier when you have to share your code with people that are not required to use KWrite.

<comment><USER9> I personally use kwrite. That doesn't mean it's "better" than emacs, just that I prefer it. Editor use is an indiviual choice, and people are more productive when using the editor of their choice.

Similarly, people are more productive when using the indentation style of their choice. I like 3 or 4 spaces of indenting, and I find using 8 spaces makes the code hard to read. Other people have different preferences. It seems to me that the best way to accomodate everyone on a multiple-developer project is to require that code is run through a formatting utility before being checked in, and to allow people to use similar utilities to format it when checking it out and editting it.

</comment></comment><comment><USER10> "Why I'd like to rehash the same tired old arguments people have been making ever since we first got the '\t' character" would be a more accurate title.

<comment><USER11> In its defense (though I'm definitely a spaces man), this article is about 10 years old.

</comment></comment><comment><USER6> _Decent editors do automatic indentation anyway of course, but there are often circumstances (especially in Perl, where even GNU emacs can't always parse the syntax correctly) when they don't do the right thing._

I have been working on cperl-mode's indentation recently, and think it gets indentation right in 99.9% of cases. If you encounter that 0.1% case, you should submit a bug report here:

<http://github.com/jrockway/cperl-mode/issues>

(Keep in mind that indentation is highly customizable, so you probably just need to flip some switches to get what you want.)

</comment><comment><USER12> I really dont see the big deal. This is simple stuff and we are programmers. It is obvious that a standard is the easiest and safest way to go wheather its 2 tabs , 1 space , 1 tab... etc. But are people really having that many problems? It is annoying to see tabs and spaces used in the same file and unclean code but is it that bad? Who is programming with you to the point where their tabs/spaces actually makes your code unreadable (dont count html which really needs correct indentation to read). Has anyone ever had a huge bug created by indentation?

</comment><comment><USER13> Spaces are fine, tabs are fine, but mix them together (for indentation) and you're asking for trouble. That's all I've ever had to think about the subject. Personally I consider two-space indentation to be the One True Way, and my tab key is setup to physically insert two actual spaces.

<comment><USER14> What about backspace? Do you use a greedy backspace that deletes two spaces at a time? Or do you have to hit it twice?

<comment><USER13> Greedy backspace. I use vim, and it's actually pretty smart about it; most of the time it kills two spaces when that's what I want, and only one space when that's what I want.

</comment></comment></comment><comment><USER15> I've been using ':set list' in vim with different characters for spaces and tabs ('_', '| ') appearing at the start of a line for the better part of a year now. This makes sure that I stick to the convention of whatever project I'm working on because it's very obvious when I don't.

I agree with the article's rationale and use this practice for new projects. Nearly all the arguments I hear for spaces are 'Other people screw it up, so just go with spaces to accommodate them'. I think this is quite defeatist. Why not enforce the coding style of choice for a project with some check-in hooks?

</comment><comment><USER16> I think the main issue is just that on a given project, there needs to be agreement on what will be used. I hate opening up a file in vim and seeing some lines tabbed and some lines spaced and things not lining up right at all.

:retab has helped on several occasions.

</comment><comment><USER17> Not a terrible article, although I was a little put off by the "K&R Style is obsolete" remark, considering that a lot of the projects I work on use a slight variant of K&R, the Linux kernel included.

</comment><comment><USER7> I first heard of this technique a long time ago--it made sense then and it makes sense now. But for it to be actually usable it would need some good editor support (I'm not about to micro-manage my editor and alternate between spaces and tabs manually). I would love to see some Emacs code that integrates with c-mode and perl mode. Short of that I have to say banning tabs completely from your source is the only way to make it look consistent across editors.

<comment><USER6> Emacs does what the author wants out of the box, I think. It indents with tabs until that is no longer possible, then it switches to spaces. I don't really see what this buys anyone (except confusion), so I disable it and only use spaces.

This article did not convince me to change my mind. (It did convince me that the author knows nothing about Emacs, like most Vim users.)

<comment><USER18> What you describe is not what the author (and I) want. You should not use tabs until it is no longer possible, you should only use tabs to indicate the indentation level. To perform further alignment beyond the indentation, for example to align arguments to a function after the opening parenthesis you use spaces.

<comment><USER6> In most cases, the behavior is identical.

I think as you implement what the article describes, you will find it to be tedious and impractical in real-world use.

<comment><USER19> Most cases isn't good enough. Exceptions are still frequent, such as this example FTA:

      SomeClass::SomeClass()
      _____.:.InheritingClass(false, false
      _____...................5, 10, true,
      _____...................bleh, blah)

As compared to

      SomeClass::SomeClass()
      _____.:.InheritingClass(false, false
      ____________________....5, 10, true,
      ____________________....bleh, blah)

Which will no longer align if tabstops are changed.

I've set up emacs to do the right thing in c-mode, and possibly in other modes which inherit from it. It's not hard to find a solution online, but it's certainly not "out of the box".

<comment><USER7> > I've set up emacs to do the right thing in c-mode

Would you mind posting a .emacs snippet? I've tried to do it in the past and got the impression it was not possible. I'd love to see what you did.

<comment><USER19> What I use is here: <http://philh.net/smart-tab.el>

Which is a (very slightly) modified version of what I foud here: [http://bytes.inso.cc/wp/2009/01/07/dot-emacs-smarter- indenta...](http://bytes.inso.cc/wp/2009/01/07/dot-emacs-smarter-indentation- with-tabs-and-spaces/)

This seems to be a more language-agnostic approach: <http://www.emacswiki.org/emacs/SmartTabs>

<comment><USER20> Wow, people have been telling me this was impossible for years. Thanks :D

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> I use `:tabstop=2` in vim, and whenever I load the java library source files, the indentation is mucked up: they mix space and tabs (`:ts=8` fixes it). I'm guessing this a common (?)

I use tabs mainly from habit, but I think it helps keep consistent indentation (it's quite easy to be off by one space). Also, with my habit of using `h` and `l` for navigation, tabs mean fewer keypresses than spaces (I should use `w` and `e` I guess)

</comment><comment><USER20> Am I the only person who finds these arguments childish? Why can't people just respect whatever style the original author chose?

Also one of the best things you can can do to help avoid a lot of this frustration, is put those comments at the end of every source code file that configure indents for _both_ emacs and vim. It makes switching between 4 and 8 space indents a bit less irritating.

</comment><comment><USER22> Elastic tabstops, anyone? <http://nickgravgaard.com/elastictabstops/>

</comment><comment><USER23> Ah, one assumption I never like in this discussion: code will always be read via an editor.

I've been flirting around with a literate programming environment, and it's been far easier to use spaces with a traditional line measure - around 80 chars. The code can be included into HTML or print layouts with few edits. That seems to be the "easy to layout" setup.

</comment><comment><USER9> Saying you can define tabs to be a different number of spaces is, at least some of the time, erroneous, because some languages (e.g. Python) define tab as 8 spaces.

I have a very simple policy on tabs: I don't use them. And since I've had that policy, I've never had a problem involving tabs.

</comment><comment><USER24> Tabs vs. spaces is soon going to join the following: GPL vs. BSD; VIM vs. Emacs; Centralized vs. Decentralized; et cetera.

As long as people are consistent, either way is fine.

</comment><comment><USER25> Having a "coding standard" is always a good practice especially when you have a team of developers.

</comment><comment><USER26> Yeah, I love having tabs because I love inducing subtle errors in python...

Oh wait. That's right, I don't. Spaces all the way because tabs blow up some languages.</comment>