Let's Invent B(+)-Trees - <AUTHOR> https://shachaf.net/w/b-trees <comment><USER2> That made sense. I was following along, and then all of a sudden, it just kind of ended.

As a layman who doesn't clearly remember B Trees, it would be awesome to have even a sentence at the end, like

...and that's B Trees! Commonly used for storing fields in relational databases, filesystems, and more!

For fellow laymen, [https://en.wikipedia.org/wiki/B-tree](https://en.wikipedia.org/wiki/B-tree) isn't bad, but is there more?

<comment> why-el The Postgres documentation on btrees is absolutely stellar if you can afford some extended time to study it [1]. From there you can read the actual code or watch some videos on how Postgresql indexes use them. You can even dump indexes locally to see their content! from root all the way to the leaf nodes [2] (this assuming you read and understood the above).

[1] [https://github.com/postgres/postgres/tree/master/src/backend...](https://github.com/postgres/postgres/tree/master/src/backend/access/nbtree)

[2] [https://www.postgresql.org/docs/10/pageinspect.html](https://www.postgresql.org/docs/10/pageinspect.html)

</comment></comment><comment><USER3> This sounds exactly how the excellent Python Sorted Containers library works, and achieves "faster than C" performance in pure Python by effective use of the bisect module (which itself is written in C). [http://www.grantjenks.com/docs/sortedcontainers/implementati...](http://www.grantjenks.com/docs/sortedcontainers/implementation.html)

> The Sorted Containers internal implementation is based on a couple > observations. The first is that Python's list is fast, really fast. Lists > have great characteristics for memory management and random access. The > second is that bisect.insort is fast. This is somewhat counter-intuitive > since it involves shifting a series of items in a list. But modern > processors do this really well. A lot of time has been spent optimizing mem- > copy/mem-move-like operations both in hardware and software.

> But using only one list and bisect.insort would produce sluggish behavior > for lengths exceeding ten thousand. So the implementation of Sorted List > uses a list of lists to store elements. In this way, inserting or deleting > is most often performed on a short list. Only rarely does a new list need to > be added or deleted.

> Sorted List maintains three internal variables: _lists, _maxes, and _index. > The first is simply the list of lists, each member is a sorted sublist of > elements. The second contains the maximum element in each of the sublists. > This is used for fast binary-search. The last maintains a tree of pair-wise > sums of the lengths of the lists.

<comment><USER4> "Faster than C", by effective use of C? Maybe I'm missing something, but that seems to immediately be a contradiction.

<comment><USER3> Yeah, you're right. On its homepage it's labelled as "fast as C extensions" and "often faster than C implementations". I guess because C implementations often use inferior data structures -- I used to say "algorithm is better than assembly".

</comment></comment></comment><comment><USER5> Haha, his web directory layout cracked me up.

After reading, I thought to myself, "Hmm... I wonder what else he has written. I'll navigate upwards a level to [https://shachaf.net/w](https://shachaf.net/w) "...

It returns a blank page with the letter "w". That actually made me laugh out loud.

"Ah, shucks. Let's go up again."

Returns a non-styled page that reads "Success!".

<comment><USER6> And then when you click on Success you get this graph (which is a bit sad) - [https://shachaf.net/pet.txt](https://shachaf.net/pet.txt)

<comment><USER5> Oh shoot, I didn't even notice that. Looks like he's at a constant Happiness=100 though.

</comment></comment></comment><comment> ar-nelson This is weirdly relevant. I just finished implementing a persistent B-tree library in Scheme.[1][2]

I don't know why B-trees aren't used more as a purely-functional data structure. Once they get large enough, they don't move around much when changed; there is no rebalancing except on deletes, and even that only affects the direct path to the deleted node.

[1] [https://github.com/ar-nelson/schemepunk#b-trees](https://github.com/ar- nelson/schemepunk#b-trees)

[2] [https://github.com/ar- nelson/schemepunk/blob/master/btree.sl...](https://github.com/ar- nelson/schemepunk/blob/master/btree.sld)

<comment><USER7> I like the concept of persistent B-tree, can you share about the storage mechanism?

<comment> ar-nelson I guess I should have disambiguated my usage of "persistent". In this case it refers to a purely-functional data structure[1], not a data structure that is persisted to disk. Inserting an item into a persistent B-tree produces a new tree, while leaving the old one intact. Ideally, this is done with minimal copying; unchanged subtrees are just pointers to the same subtrees in the old tree.

This is very similar to persistent hash tries, which are used by purely- functional languages like Haskell. But I designed this B-tree library as an implementation of SRFI 146, which uses a comparison function, not a hash function, to create a key-value mapping.

If you're interested in B-trees being persisted to disk, that's how most databases and most filesystems already work.

[1] [https://www.geeksforgeeks.org/persistent-data- structures/](https://www.geeksforgeeks.org/persistent-data-structures/)

<comment><USER8> Persistent B-trees do seem like they'd work fine. You will have to copy whole blocks that get modified, but I don't think that should hurt much. I'm fairly curious how benchmarks will look compared to the usual choices (Haskell has what, finger trees and radix trees or something? And red-black or AVL have persistent implementations all over of course.)

<comment> ar-nelson The reference implementation of SRFI 146 (persistent mappings) is a red-black tree[1]. I benchmarked my B-tree implementation against it and found that, in almost every R7RS Scheme, constructing small trees (~100 elements) and querying and deletion on large trees (~10,000 elements) was 2-3 times faster than red-black trees. The major difference was constructing large trees, which could be easily 10 times faster.

[1] [https://srfi.schemers.org/srfi-146/srfi-146.html](https://srfi.schemers.org/srfi-146/srfi-146.html)

</comment></comment></comment></comment></comment><comment><USER9> Interesting. :-)

I recently posted a brief document I wrote about a similar structure, immutable AVL trees. I find AVL trees a very nifty structure, I think they don't get as much credits as they deserve: logn (which in practice is about the same as "constant" for most values of n one encounters in practice) insertion, lookup, deletion and even append (for position-based trees, with some assumptions). Incredibly simple implementation. And, if immutable (based on shared memory), allows trivial snapshotting, having multiple "concurrent" trees sharing most of their memory.

Anyhow, it's here: [https://github.com/alefore/weblog/blob/master/immutable- avl-...](https://github.com/alefore/weblog/blob/master/immutable-avl-trees.md)

I have a small implementation here (which I use, among other things, to hold all lines in a file, in my text editor): [https://github.com/alefore/edge/blob/master/src/const_tree.h](https://github.com/alefore/edge/blob/master/src/const_tree.h)

<comment><USER10> All node-based trees with a small branching factor of 2-3 have the same performance problems on modern hardware, irrespective of the theoretical big-O algorithmic complexity.

They all have poor memory locality, high overheads, and high indirection. This is kryptonite for typical x86 or ARM CPUs. Unless you're only developing for some tiny embedded CPU with no cache, no branch predictor, and low frequency, such algorithms belong in the dustbin of history.

Practically always, you get better _actual_ performance when using array-based structures such as hashtables, B-Trees, or the like.

Features like snapshotting can be implemented using virtual memory tricks, but is a gimmick rarely used outside of pure functional languages. You might find that simply copying an array when needed for a snapshot is faster than a fancy tree with sharing as a native capability. The exception would be certain dynamic programming scenarios where cloning is very common.

<comment><USER11> The traditional ZFS implementation(s) use AVL trees as the in-memory data structure for allocating space (ie finding free disk space).

However the performance limitations of them have started to show, so there's been work done to switch to B-trees[1].

[1]: [https://www.youtube.com/watch?v=LZpaTGNvalE](https://www.youtube.com/watch?v=LZpaTGNvalE)

</comment></comment></comment><comment><USER12> I published a reference implementation of B-trees that is optimized for clarity and conciseness: [https://www.nayuki.io/res/btree- set/btreeset.py](https://www.nayuki.io/res/btree-set/btreeset.py) ; [https://www.nayuki.io/page/btree-set](https://www.nayuki.io/page/btree-set)

</comment><comment><USER13> You follow along and build a toy B+-tree based sqlite clone in this (incomplete) tutorial.

[https://cstack.github.io/db_tutorial/](https://cstack.github.io/db_tutorial/)

</comment><comment><USER7> I like this website, it's simple and up to the point. And it works without Javascript :)

</comment><comment><USER14> Does anyone here know if there's a data structure more ideal (i.e. lower- overhead) than a B+-tree for holding onto large amounts of on-disk data, if you can constrain the operations you're going to do? Personally, in my workload, I know I'm never going to delete from the tree, only insert and query. Does this "get me" anything?

For another consideration: B+-trees (or trees generally) aren't necessarily the best when the workload is mostly appends to the end of the keyspace. Is there an on-disk data structure that _is_ tuned for mostly-append, rarely- insert workloads? Or how about for insert workloads, where each insert is actually a _batch_ of inserts of a large contiguous range of sorted keys? (I've observed that this workload makes LevelDB fall over, so LSM trees aren't it.)

<comment><USER15> I've personally used a B+Tree variant in this case with special-cased insert rules. Rather than splitting nodes when they're full, if they're filled due to appending at the right-hand-side we simply start the next leaf (or next interior + leaf pair) during insert. So, for pure in-order insertions, we end up with a maximally efficient tree with no splits needed; the rest of the logic still works if you then go back and need to update or insert into the middle of the tree at a later date.

I'm sure I'm not the only one with that particular implementation, but I'm not aware of any named algorithm/variant for it.

</comment></comment><comment><USER16> I like this approach to describing B-trees! I recently taught B-trees for a data structures course and presented them using a similar method. Thought I'd leave the link in case it was useful: [http://web.stanford.edu/class/cs166/lectures/05/Slides05.pdf](http://web.stanford.edu/class/cs166/lectures/05/Slides05.pdf)

<comment><USER17> Really wonderful presentation, thank you! Especially the way the "animations" (the slides with changes, actually) convey the dynamics in the sequence of events explained.

</comment></comment><comment><USER18> I'm somewhat ignorant of theory but when I ran into this I just kept a separate unsorted array of values to-be added. In moments of idleness the extra array is sorted and if time allows it the entire thing is sorted into the original.

Also a fun approach for an array of sorted numbers is to use bits and have the offset represent the value.

</comment><comment><USER19> Very... Short article. Anyway my favorite kind of tree is the R tree if you want to go down the research rabbit hole.

<comment><USER20> That is like a German pun

tree is Baum

R tree could be called Raum.

Which means space, which fits, because the tree stores the keys spatially.

<comment><USER19> I like it!

</comment></comment></comment><comment><USER21> What a brilliant one-page summary of a complicated topic. Well done, a pleasure reading it. Bookmarked.

</comment><comment><USER22> While implementing, I found that there is a large number of disk hops (and hence greater time required to read), and accessing data is slow. Only a chunk of data fits in a disk block (remember, there is a predefined size limit for blocks).

How to get around this?

<comment><USER23> B+-trees degrade quite fast with the slightest hint of randomness in the inserted data.

To get around this unfortunate property people invented Log-structured Merge Trees - you keep new part of your data which is easy to insert randomly to and once in a while merge it (as sorted data!) with main data. This way degradation is greatly reduced at the expense of reading speed in case of merge.

BTW, LTMs are a variant of the logarithmic method - a way to create dynamic structures (fast to insert and query) from static ones (slow to insert, fast to query). Even sorted arrays can be made fast for insertion in this way.

Anyway, try to keep your insertion order as sorted as possible. Delay actual insertion into disk data if needed.

<comment><USER24> Could you elaborate on the "logarithmic method"? The fastest technique I know of to insert into sorted arrays uses a square-root decomposition.

<comment><USER23> You can split a collection of 2^(k-1)<=N<2^k elements into up to k arrays with length 2^i. Insertion into empty array with one element capacity is easy, insertion into array with single element creates an array with two elements. If you already have an array of two elements, you should merge these elements into array of 4 elements.

The merge operation is fast and cache oblivious. Thus, insertion into a set of these arrays is fast.

Query is not so fast - O(log^2N). But I can direct you to Cache-Oblivious Lookahead Arrays (COLA) paper where a technique to get back to O(logN) complexity for lookup is described.

Or you can simple merge these arrays into one at the bulk insertion end.

Source code (not mine): [https://github.com/giannitedesco/cola](https://github.com/giannitedesco/cola)

</comment></comment></comment></comment><comment><USER25> I understand that B+ trees made relational databases practical.

Is that true? How are they used (sorted, according to link)? How do B+ differ from B trees?

<comment><USER26> They have some things that a relational database likes:

\+ Fast search (log(N))

\+ Insert/Delete are fast (O(N) ... Most of the time)

\+ Iteration is fast (unlike a hash map or similar)

You could have a look at [0] for a deeper dive.

[0] [https://cstack.github.io/db_tutorial/parts/part7.html](https://cstack.github.io/db_tutorial/parts/part7.html)

<comment><USER25> Thanks, sounds like sorting is an implementation detail, and not the main benefit in itself.

<comment><USER27> Imagine you're doing:

SELECT * FROM EMPLOYEE, DEPARTMENT WHERE EMPLOYEE.DEPARTMENTID = DEPARTMENT.ID

The naive thing would be to iterate employees and for each one read the corresponding department. However that would mean one disk seek per employee.

Disk seeks on the rotational disks relational dbs were developed for took hundreds of ms to complete. Even today's rotational disks have seeks that take dozens of ms. So doing one seek per join result doesn't work at all. You can add caching to disguise to some extent, but that costs memory.

Compare to B-Trees: You build an index on EMPLOYEE.DEPARTMENTID. That index is also a B-Tree. Because they are sorted, you can just walk both employee index and department table in parallel by id. You only need to do n/k seeks (where k is branching factor of the b-tree). You only need one record worth of caching per table (the one under the current cursor).

Bonus: because the indices are sorted, it's easy to pipeline each seek after the previous to further reduced the latency of the query.

<comment><USER25> Thanks, makes sense! I've once before seen comparing sorted values is faster, even when not all match.

If "building an index" means it's just the indices (not all rows of the table), doesn't that indirection mean an extra seek to get the full row? (I probably have a fundamental misunderstanding here)

<comment><USER27> You're right!

But you can sort the second column of the index too. So in our case, the index would be sorted by dept id, then employee id.

      deptid  empid
      1       1
      1       3
      1       7
      1       10
      ...
      2       4
      2       5
      2       9
      ...
      3       2
      3       6
      3       8

Now if we just do the basic thing and run through the index in order, we'll end up doing m sorted scans of the employee table, where m is the number of unique department ids. Not ideal, but if departments are large, still far better than seeking each employee individually.

But we can do better: If there are relatively few departments, the database can put a cursor at the beginning of each run of them:

      deptid  empid
      1       1    <- cursor
      1       3
      1       7
      1       10
      2       4    <- cursor
      2       5
      2       9
      3       2    <- cursor
      3       6
      3       8

Now the database can scan those cursors in parallel, merge sort them, and feed the result into scanning the employee id table. Now we again have a single sorted scan of the employee table, at the cost of m extra memory.

This isn't a general solution. If there are zillions of departments and each one has only a handful of employees, this doesn't work. And in modern databases low-cardinality indexes like our dept_emp_id index sometimes use more specialized data structures.

One of the beautiful/crazy things about working on databases is it's a product that promises an abstraction that can't actually be implemented perfectly in all cases. Databases uses all kinds of heuristics internally to decide different strategies to answer queries. And vendors are constantly refining, trying to get closer to an ideal they can never actually reach.

But this particular strategy is a common and important one and an example of why B-trees were so important to early relational systems.

</comment></comment></comment></comment></comment></comment><comment> globular-toast I love B-trees. Probably my favourite data structure. But do yourself a favour and read Knuth's treatment of them.

</comment><comment><USER28> I love the idea but I'd love to see someone implement this and then show performance and memory comparisons to trees and normal arrays.

</comment><comment><USER29> Faint memories of MUMPS...

</comment><comment><USER30> Very intuitive explanation.

</comment><comment><USER31> i don't get it. what's next, visual bubble sort?

</comment><comment><USER32> Uhh ... why is this the top article on HN? I know all about B-trees, and I do not understand what is new or interesting in this very brief page.

<comment><USER33> Your knowledge isn't mine -- I found this to be quite a condensed way to understand something I've little relation to.

What do you have to contribute that teaches not criticises?</comment></comment>


Apple's condescending iPhone 4 press conference. - <AUTHOR> http://www.slate.com/id/2260619/pagenum/all/

<comment><USER2> What Manjoo wishes Steve jobs would have said: 'He could have admitted a problem, offered a fix, and said, "We're sorry for any trouble we caused you."'

What Jobs said: 'To our customers who are affected by the issue, we are deeply sorry, and we are going to give you a free case or a full refund.'

Granted, Jobs only said that in response to his question, and not as part of his initial presentation. And Manjoo's critique of the dropped call statistic sounds dead on to me. But Manjoo specifically said what he would like out of the conference (even before this article), Jobs gave it to him, and he still is acting like Jobs personally punched him in the face.

<comment><USER3> It's interesting what people get out of this.

Some see the tests where the other cell phones are shown to have a problem if you wrap your entire hand around it and point out that it's nothing like the little spot you just have to touch to make an iPhone die if you're less than 20-something dB above the minimum signal.

Others see the apology you quoted and don't understand the media witch hunt, where the press even supports those who traffic in stolen phones.

(I realize that I'm oversimplifying both of those stories a bit, but they're not my main point.)

Seems like there's no middle ground any more. If you post something in support of them, you'll be derided by someone as a fanboy. If you post something against them, you'll be derided as a hater. Whichever one you pick, you'll likely stay there, because both sides feel free to act like jerks toward the other. And why would you want to switch and side with those jerks who were mean to you?

I try to remain neutral, but it's hard. I see some people giving them a free pass, and I dislike it. But other people _do_ give them flack when it's unfair. I don't want to do either. I want to be fair.

In short, maybe what we really need here is more civility?

<comment><USER4> I'm an Apple fan who doesn't get the witch hunt, but I readily acknowledge Jobs glossed over the problem. The problem is that the problem ultimately wasn't much of a problem to begin with, but the haters keep looking for something to get angry about. I can't go a day on Hacker News without seeing several grossly uncharitable comments get a bunch of upvotes. Any other topic, and it'd get rightly voted down. It's extremely poor form for Hacker News, and it's started to make me pretty bitter. In fact, the only reason why I created an account was to fight back against the hate/FUD.

I believe that there are a number of strong, charitable, level-headed criticisms you can make about Apple. I don't have a problem with those, and appreciate it when people make them. But that's not what we're getting here. What we're getting is a bunch of snippy and sneering quips from people who don't bother to examine the range of possible reasons why Apple did X, instead always assuming that they did X just to be manipulative jerks. It's just crazy.

I like Hacker News a lot, but this has really been souring the experience.

Edit: And look at how I get anonymously downvoted. These guys can't even argue in their defense. They just maliciously downvote.

</comment></comment></comment><comment><USER5> Wow, is this tall poppy syndrome or are the media just trying to push this non-story as far as it can go?

<comment><USER6> Indeed. This is becoming a witch hunt.

I don't understand what the big problem is. So, my iPhone 4 has a small hardware flaw. I found this out weeks ago. It hasn't made a difference to my life and I am certainly not going to return it.

Does it drop calls? Yes. Does it drop less calls than my 3G? Yes. Does it have better reception in general than my 3G? Yes. Am I happy with 02, my network? No - but they have always been pretty bad where I live. (But also bare in mind the walls to my house here in Scotland are made of damp sandstone and are 3ft thick.)

I think that my iPhone 4 is not just the best phone I've ever owned its the single greatest consumer electronics device that I have ever owned. If it was recalled you'd have to prise it out of my cold dead hands (or replace it with an iPhone 5).

Nobody I know that owns an iPhone 4 cares about this issue - they all think it's funny. The only people that seem to care are either people I know who own android devices (who gloat) and tech journalists who seem to be very, very angry for some weird reason.

<comment><USER7> A lot of the press gets by by writing snark-filled criticism of anything and everything. Bigger names make for better press: the snark that pulls in the most eyes is the snark about the fall of the biggest Goliath. So, this segment of the press has wanted an excuse to tear into Apple for years—it's a very big name—but Apple has Done No Wrong (from their fans' perspectives), so they haven't been able to.

Now that there _is_ something that consumers could, theoretically, get mad about, they're going to attack Apple full-bore, no matter how irrational it is on an objective scale.

</comment></comment></comment><comment><USER8> I knew about this problem before I bought my iPhone 4, I didn't care then and I care less now.

The iPhone is the best tech device I own. It helps me run my life by managing my diary, email and contacts with a easy to use interface that my old blackberry could never aspire to.

It rocks and I don't care if I loose one call in every 50...it's a small price to pay.

</comment><comment><USER9> Apple is now subject to the kind of scrutiny any other corporation has to put up with. The honeymoon might be over, but this is a good thing.

You can only spin the public for so long, before the public starts to feel sick.

<comment><USER10> I agree that Apple has been the darling of the media for a while, but I don't know if I would call this the same kind of scrutiny other corps put up with; this is bordering on irrational (if not there already).

<comment><USER9> Cast your mind back to recent history, and consider the pure hatred that has been expressed for Microsoft over the years.

Corporations don't need to be loved - they need to be kept in check.

</comment></comment></comment><comment><USER11> "I wasn't invited to Apple's event"

This is an important sentence.

<comment><USER12> "I wasn't invited to Apple's event, and I didn't watch the web stream, but I read liveblogs so I'll critique it anyway".

Kind of like, "I didn't read your column, but I read the HN comments so I'll critique it anyway".

</comment></comment><comment><USER13> "Hey, I got an idea: let's all sing this song: it goes..."

<http://www.youtube.com/watch?v=VKIcaejkpD4>

<comment><USER14> Are you posting this to get people to ignore this topic or in support of the article? I thought the conference was fine. I was shocked they played that snooty stuck up video.

<comment><USER13> Well, I can understand how one might find Jonathan Mann to be snooty & stuck- up. I don't know much about him, but it appears he has already led an extraordinary life. I thought his song was amusing.

The article wasn't about him or his song, though, and I don't think he is employed by, or represents Apple. Apparently they thought it was amusing too.

I only linked to it because there is deep wisdom in the chorus that could have saved Farhad Manjoo a lot of typing.

</comment></comment></comment><comment><USER15> I look at it as a hidden golden feature.

If I don't want to talk to someone. I simply say "The cell signal isn't great here. I may drop you."

I then slide my fingers over the magic drop call button. The call degrades and gone....

The screen is great and all but the best feature is that I can magically get a bad signal whenever I want if I hold it just right.

</comment><comment><USER16> This is one flaw being criticized, he admitted Apple and phones aren't perfect, he apologized after the initial talk to those affected, he expressed how committed Apple is to making ALL users happy, and he offered a free case. Yeah, he might feel like it's a bit over-the-top media sensationalism, but to the USERS/CUSTOMERS, he is being nothing but kind and supportive.

</comment><comment><USER17> It's amazing to read how the iPhone4 is so great and how people can't live without it.

I have a 3GS, an Ipad, an XPS gaming laptop, and tons of others tech stuff and if they all went away one day, my life would still be a rich one.</comment>


How Do You Compete with Starbucks in the Coffee Industry? - <AUTHOR> http://www.slate.com/blogs/quora/2013/04/03/how_do_you_compete_with_starbucks_in_the_coffee_industry.html

<comment><USER2> Getting a latte at a small coffe place that actually puts effort into it is like night and day vs. the big chains. There are quite a few shops around Portland, but I still end up hitting Starbucks at times because it's everywhere and easy to get to.

<comment><AUTHOR> Yes, that' correct. I end up going to Starbucks exactly for the stated reasons in the article. You know what to expect and what you're gonna get. Though there might be gem coffeehouses around but I miss to be there unless somebody recommends me.</comment></comment>


Windows edge browser dies when search set to Google and I type in address bar - <AUTHOR> Suddenly Windows edge browser dies when the search engine is set to Google and I type in the address bar.  Tested on a number of computers, same thing.<p>Bing, Yahoo and DuckDuckGo all work fine. <comment><USER2> Embrace, extend, and extinguish</comment>


Scientist Plans to Clone Woolly Mammoth - <AUTHOR> http://www.pcmag.com/article2/0,2817,2375794,00.asp

<comment><USER2> I've been waiting for this since I was 7 years old and read a story in National Geographic about scientists finding a well-preserved Mammoth in the arctic tundra that still had plant matter in its stomach.

</comment><comment><USER3> Years ago I read an article titled "Our genes are not us" (something like that) that touched on the problem of cloning a wooly mammoth.

As I understand it, the problem is that the same genes can produce a different result. An example of this is the caterpillar and the butterfly - same genes but different expression. External factors can change how the genes are expressed. External factors include when and how long the fetus is exposed to certain chemicals in utero.

</comment><comment><USER4> This is off topic but it reminded me that the book Mammoth by John Varley ([http://www.amazon.com/Mammoth-John- Varley/dp/0441012817/ref=...](http://www.amazon.com/Mammoth-John- Varley/dp/0441012817/ref=nosim/hz0d-20)) was a really fun read, though it has nothing to do with cloning.

</comment><comment><USER5> Neat - but why does the article read as though it had been translated from another language? "Propositioning"?

<comment><USER6> Yeah, also "died out more than 5,000 years prior." Not to mention describing the dimensions of a "working" wooly mammoth.

<comment><USER7> It's about time they did some work. Those lazy bastards have been sitting around doing _nothing_ for over 5,000 years!

</comment></comment></comment><comment><USER8> Next up : recreate the Thylacine.

That's the one I want to see brought back from extinction. Though I'm not sure that any suitable DNA still exists.

<comment><USER9> Given their relation to the Kangaroo you could possibly selectively breed towards the Thylacine, although it would probably make them monstrously unhealthy to the point that blowing on one would likely kill it.

I'm unsure of Marsupials cross breeding ability, so I don't know how much biodiversity could be introduced if a selective breeding project was undertaken.

<comment><USER8> I don't know about that. I'm certainly no expert, but the Thylacine was a carnivore. As crazy as it sounds, it would seem to be more likely to breed one from a Tasmanian Devil. As marsupials are 'born' the size of a peanut, the actual parent wouldn't matter.

There has been articles floating around from time to time about a recreation of the Thylacine, but I think the stumbling block is the inability to get enough genetic information, despite the last living example living in captivity in 1936. Legend has it that the corpse was thrown out with the trash, althogh I'm not sure I believe that. You'd think they would have at least embalmed or frozen the corpse, but I guess 1930's conservation thinking didn't exist or was vastly different.

You can also find a rich litany of resources on the web of reported thylacine sightings, though none have ever been photographed accurately or verified. It does seem somewhat likely that a small family or two still lives deep in the Tasmanian wilderness.

</comment></comment></comment><comment><USER10> Reminded me of this: [http://www.newscientist.com/article/mg20126905.000-ten- extin...](http://www.newscientist.com/article/mg20126905.000-ten-extinct- beasts-that-could-walk-the-earth-again.html)

<comment><USER11> thats behind a pay wall. what are the ten beasts?

</comment></comment><comment><USER12> Off topic, but, wow was I surprised to see something from PC Magazine! It's been years since that site had anything other than month old news and reviews of year old products to offer!

</comment><comment><USER13> Somehow I hope this will not succeed. Although exciting we may be getting careless about animal extinction because we can 'resurrect' them later.

<comment><USER14> You're a disgrace to the nerd & geek community Mr. You bring nothing but dishonor to us.

<comment><USER13> Can you explain your comment? Or are you just trolling? Since when is thinking about consequences not nerdy enough?

<comment><USER9> Actually there's been a long desire to reintroduce large game to North America to stabilize the ecology, increasing biodiversity and hopefully resolving food source problems for existing ecology.

If you want to think about the consequences of acting, you must also think about the consequences of inaction. Would there be as many wolf, coyote, bear and cougar attacks to people and herds in North America if there were a greater diversity.

</comment></comment></comment></comment><comment><USER15> ...every year for 20 years

</comment><comment><USER16> Jurassic Park in 2015... yesss! This is exciting, I'll be one of the first to buy a ticket when these end up in zoos and theme parks.

My only question, if anyone can answer, what about their immune system compared to our own, will they be more susceptible to diseases/infections/sickness etc?

<comment><USER17> _Jurassic Park in 2015... yesss! This is exciting, I'll be one of the first to buy a ticket when these end up in zoos and theme parks._

Oh, yeah. Oooh, ahhh, that's how it always starts. Then later there's running and screaming.

<comment><USER9> And then you end up with a T-Rex in San Diego. As Oscar Wilde said "Life imitates Art far more than Art imitates Life".

</comment></comment></comment><comment><USER18> wolly mammoth steak, i can already smell you... yummm...</comment>


Adobe Flash API ported to Dart - <AUTHOR> https://github.com/bp74/dartflash

<comment><USER2> AS3 -> Dart -> JS, a bit much don't you think? I'm not sure who is trying to use a web stack three levels deep and dart based no less. I'm skeptical of how long dart is going to last at google, but this is definitely an impressive piece of work regardless. If it was AS3 -> JS and worked as well as it does now, i feel the web would collectively lose its shit. Unfortunately though this is tied to google, and i don't think many people want to be stuck being supported solely by google anymore.

<comment><USER3> agreed. Dart even though it has some awesome features, is still a technology preview, so I also wonder when it will be "stable" (some apis aren't "finished" yet) and it's a Google only thing. On the project's github page, you can read "The problem with JavaScript is that it sucks." ... JavaScript sucks if you don't know how it works, just like another language ... and what's the point of writting this when Dart itself compiles to JavaScript (who the fuck uses Dartium as their primary browser), finally the demo throws 18 errors ... fail.

<comment><USER4> > so I also wonder when it will be "stable"

It should be out of technology preview later this year.

> JavaScript sucks if you don't know how it works

It's possible to understand JS and want better. I think the people behind V8 and Dart know how JS works.

> what's the point of writting this when Dart itself compiles to JavaScript

What's the point of writing anything in any language? The Dart VM will be included with Chrome and other browsers are free to include one, too; Dart->JS is for browsers that don't and the goal is that it'll perform similar to hand- written JS.

> who the fuck uses Dartium as their primary browser

Nobody. It's for development until the Dart VM is included with Chrome.

<comment><AUTHOR> Exactly -- that's why this is exciting, particularly the Flash / interactive part. The authors have done a very good job with what they have to work with, with the assumption that they're only working with a preview and that the primary medium will be a VM with a JS fallback. The performance, all said, is very, very good.

</comment></comment></comment></comment><comment><USER5> Thanks for sharing the link! I'm the author of the library and the demos. It's great to see some positive feedback. You can also check out some samples (i like the mask sample most):

Samples: <http://www.dartflash.com>

Source: <https://github.com/bp74/dartflash/tree/master/samples>

Some words about the Dart language. It's great to work with this new langauge and much more fun compared to javascript which is a pain when you come from the ActionScript/Java/C# world. In Dart you feel at home right from the start. Google is very much committed to the project and we will see pretty amazing things in the future. Of course the Chrome browser (Desktop and Android) will support the Dart VM in the future. The dart2js compiler allready works great and has improved a lot over the last weeks.

</comment><comment><USER6> Makes sense; Dart is a closer heir to Flash/AS3 and Java than it is to JavaScript, and there's still a lot of people out there with Flash skills who're experienced building RIAs. It's a fairly natural place for them to go.

</comment><comment><USER7> Easeljs does this pretty well, but in pure js:

<http://easeljs.com/>

<comment><USER8> Haxe (www.haxe.org) also has ported a decent subset of the API, and can simultaneously target Flash, JS and C++ (native). Not sure about who has better coverage of the full API.

<comment><USER9> Haxe itself is pretty solid and is gaining steam almost every day now.

NME is not as easily recommended. It has very high coverage, and it's shipped a few products as demonstrated in the showcase, but the build process still shows immaturity; the Flash target is wonderfully consistent, but other targets remain pretty fragile. The general trend is "better with time" though.

</comment></comment></comment><comment><USER10> The example game keeps crashing for me after playing a bit in Firefox.

if you want to code html5 flash, I hear another alternative is jangaroo

</comment><comment><USER11> I'm not a big fan of Dart. From what I've seen, Dart code is far more ugly than JS or AS3, and it produces absolutely massive JS output.

<comment><USER12> Agreed, JavaScript can have its quirks, but at least you don't need to read tons of generated code underneath, when trying to debug code.

<comment><USER5> Well, you should see it from another point of view. You write and debug(!) your application in Dart, later you compile it to JavaScript. The dart2js team tries very hard to generate code that runs just like the Dart code does in the VM. Look at the JS-code like the binary code you get from a c++ compiler. There are hardly any people debuging the generated machine code in c++ right?

I have allready written tons of Dart code, and i have to admit there were a few issues with the JS-code regarding cross browser compatibilty (btw. it is easy to read the generated js-code). Those issues were problems in the dart2js compiler because it's a alpha-version right now. The dart2js team fixed all those bugs. As soon as the compiler will finally ship we will rely on the generated output - no need to debug "assembly language".

<comment><USER11> That's not my gripe with Dart's JS output. It's just that Dart is so different from JavaScript and has so many thick layers of abstraction that tiny programs can have thousands of lines of JS outputted, a lot coming from having to include Dart's own standard libraries.

<comment><USER5> You are right that small programs compile to pretty big JS-files, but noone should really care. I can do my "hello world" apps in javascript without a problem, the point of Dart is to write big apps! For those apps the footprint of the compiled JS-code doesn't matter at all. And you can work with nice structured source code.

<comment><USER11> Well, personally I don't want to use a language that compiles to a representation around 50 times larger than the source code.

<comment><USER13> The JS output that gets generated from a Dart program isn't just "dart_size * multiplier", it's "dart_size * multiplier + constant". So, when you see a tiny Dart program being compiled to a large amount of JS, that doesn't mean a large Dart program will compile to a _huge_ amount of JS, it just means that the constant is dwarfing the multiplier.

The constant is coming from the runtime library (or, more accurately, the portions of the runtime library that your program uses). That's relatively fixed so as your Dart program gets larger, the overhead of that becomes relatively smaller. The actual code-size multiplier when going from Dart -> JavaScript is actually fairly small and getting smaller over time.

In some cases, we may actually compile Dart code to _less_ JavaScript code because of things like dead code elimination and constant folding.

JavaScript code size is something that we consider a core metric for dart2js and we're constantly working to reduce it.

<comment><USER11> Of course. I'm just a little concerned about how easy it is to inflate a program's size in Dart by including another core library.

<comment><USER13> That's true of every language, though, isn't it? If you use libraries, your app gets bigger.

<comment><USER11> I suppose so, I guess I'm too used to dynamic, interpreted languages that don't need to include the standard library in the output.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Just what we need, a way for Flash developers to be even more lazy.

<comment><USER15> What's lazy about Flash development?

<comment><AUTHOR> Yeah, please elaborate?</comment></comment></comment>


Storm courts I/O lovers with 96GB, 32-core cloud server - <AUTHOR> http://gigaom.com/cloud/storm-courts-io-lovers-with-96gb-32-core-cloud-server/

<comment><USER2> At over $986/m, it's a damn sight more expensive than a Hetzner box.

Granted, Hetzner's €89 servers only have 24GB of RAM, not 96, but you can basically have 7 of them and some change left for the same price. This adds up to 168GB total RAM, with a total of 28 cores. ( [http://www.hetzner.de/en/hosting/produktmatrix/rootserver- pr...](http://www.hetzner.de/en/hosting/produktmatrix/rootserver- produktmatrix-eq) )

Which one is best will no doubt depend on what you want to do with it, and certainly there are some applications where only a single, 96GB machine will do, but those are rare.

<comment><USER3> True, but the I/O characteristics of one 96GB box is drastically different from running 7 in parallel. It's kind of a silly comparison.

</comment></comment><comment><USER4> I would compare against the specials on WHT. Like here's one for WebNX

<http://www.webhostingtalk.com/showthread.php?t=1063117>

48 core Monster, 4x 12core 1.7ghz, 256gb ram(wow!), 16x 73gb 15k SAS raid 10 This is likely the fastest server offered on WHT. This beast has an impressive 256gb ram (perfect for ram drives, or caching heavy accessed content) 4x AMD 6164 12 core cpus, total of 48 cores at 1.7ghz each 256gb ddr3 memory (wow! tons of ram, perfect for db cache, file cache, etc) 16x 73gb 15,000 rpm SAS drives w/ hardware raid 10 Almost 600GB of FAST Disk I/O 1x 2TB sata for backups $999 with 10TB bandwdith

</comment><comment><USER5> The price and specs are great compared to EC2, but there's a problem for some use cases: you're charged for a month as soon as you create a server. The credit remains available as long as you have an account, and any remaining credit is refunded if you close your account, but you can't just spin up a big server for 3 hours and pay $5. Instead, you have to pay $1000, then close your account if you want your $995 back.

<comment><USER5> To follow up: I talked to sales today and they confirmed that there's a hackish workaround for this use case:

Spin up a small server. You'll be charged about $35 (the exact amount will be shown). Use it if you like, or shut it down right away. You can then start servers of any size using the ~$35 credit you have. It is important that you not be running a large server when the billing cycle rolls over, or you will be charged for a month of that, and this may result in an effective $35/month usage minimum (though credit does roll over). It's a small hassle, but it may be worth it for access to that 32-core box.

If you, like me want EC2-style billing, they have a suggestion to that effect on their uservoice: [https://storm.uservoice.com/forums/23166-general/suggestions...](https://storm.uservoice.com/forums/23166-general/suggestions/1785147-bill- at-the-end-of-the-month-for-service-used-rat?ref=title)

</comment></comment><comment><USER6> We've got some servers similar to this in one of our compute clusters. Four 12-core AMD Magny-Cours processors, 128 GB RAM... they are a thing of beauty, let me tell you. Actually very good for certain bioinformatics codes, especially wired up to each other with Infiniband. :-D

<comment> alok-g Can you point to the product page and give an idea of the price?

<comment><USER6> It's not exactly the same system, but... ICC (Supermicro) 1042G-T with 48 cores (4x 12-core Opteron 6174, 2.2 GHz), 128 GB RAM, 2x 3TB SATA disk and 40 Gb/s QDR Infiniband, $10.6k. Subtract $300 if you'd rather have 10GbE instead of the IB. All in 1U. <http://www.icc-usa.com/amd-4p-1u-6100.asp>

<comment> alok-g Very helpful too. Thanks!

</comment></comment></comment></comment><comment><USER7> Hmmmm. I couldn't find this server on storm's cloudharmony.com benchmarking page (It only goes up to the 48GB model), but it's interesting comparing nonetheless.

An OrionVM 16 gig of ram server gets an aggregate disk IO score of 156.79 vs. their 170.5 and an IOPS score of 159.79 vs. their 159.99.

And that's with redundant network backed hard disks in a visualised environment with all of those benefits and overheads.

What's also interesting is that this is a pxecloud with local 8 disk SAS raid 10 (Not san storage/etc.)

Overall, very interesting offering.

(NB: I work with orionvm a company that makes IOtastic servers)

</comment><comment><USER8> I run mogade.com on 2 1GB bare metal web servers, and 2 1.7GB mongo/redis replicas. It's been rock solid for about 8 months. Initially picked them because we ran unixbench on it, linode and EC2, and they were significantly better (2x+ if i recall) and cheaper. They are also quick to answer support. There's been no downtime (that wasn't caused by me!).

But there are some downsides. First, their web management portal sucks, it's like whoever built it discovered ajax and jquery for the first time. But you hardly spend any time there, so no big deal.

Load balancing is expensive (at my cheap scale), and they don't have the API to do it yourself (remap an ip type thing). Also, they aren't innovating. When they first started, they were already quite behind AWS and when you compare what amazon has done the last couple years (email, dns, beanstalk...) they've only fallen farther behind. I already use S3 and I'm looking at using SMQ -having a split infrastructure sucks.

Finally, they advertise way too much. Surely I'm not the only one who has seen it. It's annoying especially when you consider how stagnant they are. Feels like a very short sighted use of money.

<comment><USER9> > Finally, they advertise way too much.

Don't worry about that, they're just retargeting. I went to their website yesterday for the first time, and now every website I visit has their ads (which I'd never seen before). If someone is interested enough to hit your site, then you want to show them lots of ads. That's usually very cost effective.

</comment></comment><comment><USER10> I wonder what the national republican senatorial committee was doing with one of those?

</comment><comment><USER11> It seems like their bandwidth costs are a bit high, though, which would mitigate the savings in many cases. Anyone know if they'll play ball and include free bandwidth? This would be a great machine to host Destructoid.com if so.

</comment><comment><USER12> Damn that's a big server... we've got 6 boxes that don't even _add up_ to that.

<comment><USER13> Not by today's standards; you can buy a PowerEdge R815 with thirty-two 2GHz cores and 128GB of RAM for $8,000.

<comment><USER14> Are you sure that price is right, Dell is showing that box at quite a bit more on their site right now.

</comment></comment></comment><comment><USER3> Hmmm.... the pricing looks tempting.

Anyone know of any history of their uptime?

<comment><USER15> Check out <http://cloudharmony.com/status> We've been monitoring Storm for over 18 months and never once experienced an outage. They are one of only a few providers with no downtime (we monitor over 100 different cloud services).

</comment></comment><comment><USER16> Damn. I wish I could somehow actually upload video fast enough to do my 1080p video processing on those.

</comment><comment><USER17> I was interested up until I read this little number in the newsletter I got from them:

>In addition to 96GB of RAM, each of these servers contain __32 cores (at 2.0GHZ each, _64.0GHZ total_ ), writes at over 3 Gbit/s and reads at over 4 Gbits/s. __

You would think a company like Storm would know you don't just add up the cores to get 64Ghz.

Also, for what it's worth, we just ordered 3 physical servers from Dell, 96GB of RAM each, dual xeons for a total of 32 cores, and dual 10Gbps fiber channels to hook up to our SAN. So yeah, the price seems pretty high...

<comment> alok-g Can you point to the product page at Dell, and give an idea of the price?

<comment><USER18> IIRC our R610's (96GB, 12 Cores @ 3GHz) were around $7K a piece.

256GB/32 Core/1.8GHz R910s are around $22K last I looked. This stuff really is stupid cheap in comparison to renting.

You'd need to talk to a Sales person to get that kind of pricing, but the general rule is to discount MSRP by _at least_ 30% when you're working with a major vendor.

<comment> alok-g Very helpful. Thanks!</comment></comment></comment></comment>


Show HN: JS-Restructure, a Go-Restructure JavaScript clone - <AUTHOR> https://github.com/benjamingr/js-restructure <comment><USER2> Since I primarily work in JavaScript, thanks a lot for porting! Here's the discussion on the original GO version: [https://news.ycombinator.com/item?id=10964733](https://news.ycombinator.com/item?id=10964733).</comment>


CEO says Facebook will impose new EU privacy rules "everywhere" - <AUTHOR> https://arstechnica.com/tech-policy/2018/04/ceo-says-facebook-will-impose-new-eu-privacy-rules-everywhere/ <comment><USER2> This seems to be contradicted by this article, which say that Facebook will _not_ adopt GDPR protections globally:

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

See also:

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

<comment><USER3> Its purely a PR flip flop, people didnt like their message yesterday and advertisers money concerns is a strong invisible hand.

</comment></comment><comment><USER4> I'm paranoid about privacy. I would like Facebook to adopt GDPR everywhere. However, I also want Facebook to continue to thrive economically. Benefits of a thriving Facebook are clear, from the open compute project to tons of open source software, and the applications (FB, Instagram, WhatsApp) themselves.

In that light, it's sufficient for me if Facebook follows the law of the land properly. In the US, they needn't adhere to GDPR, but do need to abide by their deal with the FTC. Abiding by that deal would have prevented the CA debacle.

So there - I enjoy free services, software, etc. from Facebook, but just ask that they stay ethical

<comment><USER5> "Stay ethical"? Since when has FB ever acted ethically?</comment></comment>


Loic Le Meur's Ten Rules For Startup Success - <AUTHOR> http://www.techcrunch.com/2007/12/05/loic-le-meurs-ten-rules-for-startup-success/ <comment><USER2> He got 8 out of 10 right. 2 is wrong. You shouldn't be overly secretive, but it would be a mistake to go so far as talking with competitors; if you're smart, your competitors will benefit more from meeting you than vice versa. 10 is also mostly wrong, though the median startup might do better if they believed it.

<comment><USER3> Don't agree with you about #2, if you really are intelligent, control the conversation and information flow. You should be able to gather more information about the business from your competitors than vice versa.

Especially when you are still in pre-launch mode and they don't know who you are. Talk to them as a customer/supplier/affiliate, it might be a bit underhanded but Sun-Tzu would approve, you'll be amazed at how much information you can get.

<comment><USER2> It might be ok (strategically, if not ethically) to pump competitors for info by pretending not to be one, but that's not what he meant.

Though indeed I'm not sure it would even be good strategically to do that sort of thing.

<comment><USER3> One of the main difficulties in building a successful startup is intimately understanding the needs of your clients, suppliers etc.

Once you have clients of your own you obviously should interact with them continuously to get the data, but even the first iteration can be made much better & faster, by simply interacting with your competitors in various roles, and putting yourself in the shoes of your clients & suppliers.</comment></comment></comment></comment>


Clojure's concurrent agents in action - <AUTHOR> http://alexcollins.org/blog/2012/00-agent-clojures-concurrency-agents-tutorial-example

<comment><USER2> send should never be used in a function that will not keep the CPU busy, such as one that calls Thread/sleep. send-off, which will allocate a new thread rather than taking up a slot in Clojure's fixed-size agent thread pool, should be used instead.

<comment><USER3> It's fine if you're just using it to simulate a computationally expensive operation, as he is here. In fact, in that case, it's slightly more realistic.

</comment></comment><comment><USER4> Another great tool in the Programmer tool kit. If you wanted this same concept on Scala or Java I recommend Akka2

<http://doc.akka.io/docs/akka/2.0.2/scala/agents.html></comment>


Looks like I beat China - <AUTHOR> Looks like I beat China, ap-northeast-1 for the win. https://news.ycombinator.com/delete-confirm?id=14887284&goto=item%3Fid%3D14887156 <comment><AUTHOR> Proof:[https://twitter.com/scott_lowe/status/890507825817853952](https://twitter.com/scott_lowe/status/890507825817853952)

Tool: [https://github.com/ttlequals0/autovpn](https://github.com/ttlequals0/autovpn)

</comment><comment><USER2> This might be interesting, but without any more context nobody has any clue what it is about.

I initially flagged this story until I realised the "delete-confirm" link actually points to your own comment, possibly to show off that you can predict post ids in advance?

In any event, I have no actual clue what you're trying to demonstrate here.</comment>


What Is the Small Web? - <AUTHOR> https://ar.al/2020/08/07/what-is-the-small-web/ <comment><USER2> I'm generally on board with the sentiment, but some of this rhetoric is a bit much, even for me.

> The Big Web has "users" – a term Silicon Valley has borrowed from drug > dealers to describe the people they addict to their services and exploit.

Come on now, "user" as in "computer user" was a term in use since long before the web.

<comment><USER3> I have never met or heard of a drug dealer calling their customers for users.

Even if that was the case, is "(drug) user" a nice term compared to what else is used - like addicts, fiends, junkie, tweaker, etc. It kind of recognize the agency of addicts, instead of the dehumanisation following the other terms.

<comment><USER4> The 'addicting' aspect of what the tech companies have created and the behaviours they are willing to go to get their 'users' hooked is why the 'user' comparison to 'drug users' makes sense.

<comment><USER3> No it really doesn't. Are library users called users because the library preys of their patrons addiction to literature? This is a very weak wordgame, that at best muddies the point about tech companies.

<comment><USER4> There are multiple instances of tech companies exhibiting this 'drug user' behaviour on their customers, I am sure you don't have any examples for your false comparison.

<comment><USER3> You are not understanding the issue here. Nobody is saying that tech companies ain't doing bad things. Let's stop this argument, as we're are not having the same argument.

<comment><USER4> OK, So you have no examples then. Good.

<comment><USER3> Simmer down Kyle, and work on your reading comprehension.

<comment><USER4> Try to work on that false comparison of yours and come up with a better counter argument, you know you don't have any examples with your previous one.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> I'm not sure if I'm 100% sold on this. The service sounds like ( in their own terms ) "Big WEB" but the in a server that is... "owned"? By the user renting that server.

Honestly it just sounds like every other server farm out there. Rent a server, put your data on it, hope the service doesn't go down and trust that the company isn't selling your data behind your back.

Don't get me wrong, I like the idea they propose. But mechanically, it seems to work like any other place.

Want to convince me? Make a service where I can rent my own server ( not just a portion of it ) and physically own it. Nobody, not even the provider, can access it without my explicit permission in written form ( email with digital signatures ).

Until then, this "Small Web" service just sounds like every other server provider out there.

<comment><USER6> I think it's simpler. This smells like a load of marketing to justify the existence of another silo which is controlled by some form of vanity ideology.

Nope.

We still have plenty of choices which don't need an ideology shipped with it. I'm good with a text editor, an open source OS and a VPS, colo or some hooky box under my desk hanging off my ADSL line. That's the small web that isn't consumed by some portalisation which is really the issue isn't it which is not being solved here by trying to create another one?

<comment><USER7> Agreed, my 'Small Web' is a couple of Raspberry Pi plugged in to my router exposing services that are useful to me - the more I use it and the more tech news I read, the more I want to expand both the robustness and diversity of my personal services.

<comment><USER8> Have you written about that somewhere? What kinds of services do you run yourself?

<comment><USER7> I'm afraid not - it's nothing particularly exotic, mostly Home Assistant, Pi Hole and Bitwarden password manager.

Next thing I want to add is a bookmark manager - then perhaps some kind of storage solution.

</comment></comment></comment></comment></comment><comment><USER9> This is the same guy who ran that complete shambles of a vapourware project a few years back to build a smartphone right?

This sounds exactly the same in that it's some vanity project under the guise of being indie or privacy focused but all he's really looking for is some more cash.

I'd probably continue to steer well clear.

<comment><USER10> Yes steer well clear of this guy. I can't remember the details as it was long ago but I distinctly remember him being lambasted by the design/dev community.

EDIT: Not to leave HN readers hanging and to back up my comment...

He raised $100,000 on Kickstarter back in 2014 to build a "privacy" focused phone. One month later he took the phone off the table due to "lack of resources". Needless to say the phone never materialised.

[https://gigaom.com/2015/01/13/ind-ie-scales-back-focuses- on-...](https://gigaom.com/2015/01/13/ind-ie-scales-back-focuses-on-heartbeat- social-networking-client/)

<comment><USER11> Even Heartbeat was a stunning failure. I had high hopes for this guy but he had a contradictory exception towards accepting Apple and their stance on 'privacy' at the time.

Both him and his wife are all in on this utopian small-web privacy idea and they detest attending conferences with FAANMG sponsorship. However, his wife recently attended a design conference sponsored by Facebook, Twitter and Google. [0]

He'll probably instantly block you if you brought this up or spin the story.

[0] [https://www.framer.com/loupe/2019/](https://www.framer.com/loupe/2019/)

</comment></comment></comment><comment><USER12> Appropriate all the good values and ideas from [https://indieweb.org/](https://indieweb.org/), re-heat it add some feel-good word salad and we have this "Small Web".

Yes, by all means let's get back to a more decentralized and distributed web. But providing a service where you are still hosting your site on someone else's servers and on someone else's domain and calling for values is just digital green-washing.

<comment><USER13> ... and forget to mention Indieweb. Another all-in-one solution compatible with Indieweb and Fediverse tech, with _optional_ hosting as a service, would be a great project to that goal, and an addition to the ecosystems. But no, has to be its own thing.

<comment><USER4> This 'indieweb' was sponsored by Google, hardly going to be in line with the goals of Aral's 'Small Web'.

<comment><USER13> It makes no sense to turn this into a purity contest. "a company once provided a room for an event", "they provide service credits for all open-source projects that apply" or something like that does not invalidate a movement. In the same way that I don't support going through the sponsor lists of the events Aral talks at to call him a hypocrite - as long as it is peripheral it's sometimes hard to avoid and sometimes very useful support you can grab without any commitments.

<comment><USER4> If this was a mistake and they have changed their mind, sure. If not, (even when warned) it shows they don't have any principles, You won't catch Richard Stallman or anyone rightfully for privacy rights at such an event would you?

I would definitely be suspect and would actively call out privacy conferences being hosted and invited by surveillance capitalists.

<comment><USER12> Quick, let's drop every open source project that had any kind of contribution from Google because _every thing done by a trillion-dollar company does is evil and mere relationship with them implies you are compromised._

<comment><USER4> Who said drop them?

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> I guess, my [https://wordsandbuttons.online/](https://wordsandbuttons.online/) qualifies as a small web site. However, it was built in a very contradictory manner. I would like to challenge this: "It must be done in a manner that does not require any technical know-how whatsoever".

It doesn't take too much technical know-how to build a site. Basic HTML+CSS+JS is enough really. Writing, editing, visual design, UI design, - it all requires way too much expertise in comparison. You have to be a creative let's say 80% of the time and technical for about 20%. Reducing the last 20% only wins you 20% of the effort. But! by concentrating the technical expertise in your own head you get another level of freedom as a creative person too.

I was writing on Livejournal, habrahabr, Codrspace, and Medium before I went stand-alone. And the main reason was not ideological but rather practical. I wanted to make interactive illustrations, quizzes, and puzzles for my pages. I wanted very specific very custom things no platform would provide.

And that's why I went small web. Small web but full tech. I enjoy my creative freedom by employing let it be modest technical expertise but exactly in a way I want to employ it. And I think, investing into technical skills to get creative freedom is well worth it.

</comment><comment><USER15> Coining up a new catchy term while simultaneously trying to sell your new and shiny thing rings all kind of alarm bells.

At least their software is "non-colonial" which is the 1st time I've seen this term applied to software.

Software has never been cheaper and easier to use. If anybody wants to put the smallest amount of effort they can do all this stuff.

Maybe people are smarter and know the Internet is a Dark Forest and maybe staying off it or within the confines of big forstresses is not such a bad idea.

<comment><USER4> What are they 'selling'?

<comment><USER15> Reading the article would clarify that.

</comment></comment></comment><comment><USER16> Jeez, either they are high, or I am! What an unsubstantiated load claims.

> You hear a lot of talk about blockchains and proof of work but this is not > what the Small Web is about. Having a billion copies of the same database is > not decentralisation. That's centralisation. If you have a billion people > having [...] unique databases is decentralisation.

Really? This ignores the hard learned facts that, despite the claim that "on the Small Web, we distrust servers and trust clients", clients in reality can be malicious. Sitting in a circle and singing kumbaya does not prevent from attackers. Best case is, it slows them down, because they have to shake off the laughter first.

> Currently, all our developer tools and technical infrastructure comes from > Big Tech and the Big Web.

Well, that is obviously not true! The foundation of the web stems from military and academic origins. The open source movement is strong, Linux is the most used OS for servers. The list goes on.

The list of claims on could debunk is too long for my cup of coffee!

If that's what they refer to as vision, then count me out. I must be miles away from that level of "enlightenment"!

Just to make clear: I am all for people hosting there blogs and webpages themselves. Medium is awful, blogger does not even load with the browser plugins that I use. I am all for distrusting servers, using uBlock Origin, uMatrix, a big hosts file and your brain are good first steps. But I also am all for distrusting the client. What I can't stand is blog posts like these, throwing around half-truths, claims, and unreflected ideology for the purpose of money (they want donations) and publicity (they want donations). \s

<comment><USER4> > Currently, all our developer tools and technical infrastructure comes from > Big Tech and the Big Web.

> Well, that is obviously not true!

While I don't agree with the absolutist _all_ , he's talking about the _majority_ :

\+ Tensorflow (Google)

\+ Chrome Dev Tools (Google)

\+ Pytorch (Facebook)

\+ Kubernetes (Google)

\+ Flutter (Google)

\+ Xcode (Apple)

\+ Visual Studio Code (Microsoft)

\+ React (Facebook)

\+ Angular

\+ And so on.

All have room for embedding analytics and spying on it's 'users'.

</comment></comment><comment><USER17> Here are my suggestions for keeping the "small web" of the 90:s alive:

* If self-hosting on a server in your home isn't feasible, find a reputable mom-n-pop web hotel and support them with your money.

* Focus on making your site as accessible as possible to as many people as possible, regardless of where in the world they are and what hardware they're on. Don't use javascript and databases where static HTML will suffice.

* Don't skimp on links to other "small web" pages.

</comment><comment><USER18> In the era of 5G, massive storage and incredibly powerful CPUs, we really should be exploring the home server space, as it has scope for huge improvements in terms of enabling non-technical people to own their data and operate 'servers'. This would actually realise the dream of a distributed network of full-fledged peers and also put tremendous power in the hands of ordinary people.

<comment><USER19> You're assuming that ISPs are okay with you hosting a public service using their infrastructure, which they're historically very much opposed to (in order to get you to pay for a more expensive "business" account).

<comment><USER6> Mine doesn't give a crap if my outbound is 200 gig a month uploading stuff to onedrive or iCloud. Why should it have that opinion on anything else? I'm paying for a pipe. The only control metric they have is asymmetry and that's a technology tradeoff in my case (ADSL)

<comment><USER19> Oh I completely agree with you that they _shouldn 't_ care, but the odds are big that you'll find out that they do in your Terms of Service.

</comment></comment></comment></comment><comment> open-source-ux It's not clear what this "Small Web" gives users instead of simply running a WordPress installation on a VPS or a shared hosting plan. In fact, the "Small Web" command line installation instructions on the accompanying site.js website are considerably more complicated that the easy one-click installation process widely available for WordPress. This suggests the "Small Web" will appeal only to technically savvy users rather than appeal to a wider audience.

WordPress, regardless of whether you like it or not, gives you an easy GUI for editing your website and a wide choice of plug-ins and themes. The "Small Web" with it's accompanying site.js website ("small web construction set") is more complicated and appears to offer less but dressed up in language to make it sound new and unique.

<comment><USER4> This is possibly the only criticism I have with Site.js, but I do wish Aral can build around a GUI for his command line tool.

But agreed, something like Ghost or Wordpress looks and is more easier than Site.js

</comment></comment><comment> m-i-l Also "Rediscovering the Small Web": [https://news.ycombinator.com/item?id=23326329](https://news.ycombinator.com/item?id=23326329)

</comment><comment><USER20> Whenever I have an idea where the goal is to decentralize and yet somehow I want the achievement of that goal to coalesce around myself then it's time to ask the question: is this not simply centralized on ego instead of a platform?

I think one of the greatest problems with achieving decentralized anything is that the egos that might make it happen cannot be satisfied because a really decentralized system should refuse to coalesce around any individual component, person or platform.

</comment><comment><USER21> I think this is a good idea and I think making it easy for people to host their own services is valuable. [0]

It's also been tried a few times with little success (sandstorm.io).

I think the problem is deeper, modern infrastructure is messy to run, it's hard to configure, and every thing has to be specifically tweaked to work. Something that works for regular users will require extensive tooling to be useful and will need that tooling for every application and use case.

I think Urbit is probably the best long term bet (old blog post, but gets the idea across): [https://urbit.org/blog/magic/](https://urbit.org/blog/magic/)

A more recent one: [https://urbit.org/understanding- urbit/](https://urbit.org/understanding-urbit/)

Urbit abstracts away the p2p complexity so in the future users can used decentralized applications built on the platform without having to even know they're decentralized. I think this is the only way this kind of thing can work at scale for regular users.

[0]: [https://zalberico.com/essay/2020/07/14/the-serfs-of- facebook...](https://zalberico.com/essay/2020/07/14/the-serfs-of- facebook.html)

<comment><USER22> Oh god no. Urbit is not less complex or easier. It's piling on all kinds of extra superfluous nonsense in service of an ideological project, not for technical reasons.

<comment><USER23> Urbit stack is ~30k lines of code, that's low enough to be grasped by a single person. What's hard is learning form scratch completely new platform, but that's deliberate and is not such a problem if it manages to deliver what it promises.

Somehow I feel that accusations of being ideological come from people, who themselves are ideologically oposed to Yarvins work and fail to consider Urbits network protocol purely for its properties. Idea of giving network addresses value, cryptographic ownership and creating a hierarchy of addresses resembling functionality on the network (users, ISPs, etc.) seems perfectly resonable.

<comment><USER22> From the last time this came up on HN: [https://news.ycombinator.com/item?id=22859156](https://news.ycombinator.com/item?id=22859156)

> the core of the whole system (the Nock language) has "loobeans" instead of > booleans in which 1 represents false and 0 represents true at which point I > nope'd out pretty hard.

>> Being contrarian is not the same as being clever, and this is very much not clever.

<comment><USER21> Yeah, no disagreement from me there. That bit is dumb and he admitted it was a mistake to do that.

It doesn't mean that everything is bad.

I was skeptical initially too, but was curious enough to check it out. I was surprised when I did.

It's a small community and product is still in pre-widespread adoption stage (though far enough along to be useful for people to play with): [https://urbit.org/understanding- urbit/roadmap/](https://urbit.org/understanding-urbit/roadmap/)

My quick overview here: [https://news.ycombinator.com/item?id=23397725](https://news.ycombinator.com/item?id=23397725)

<comment><USER21> Also (not excusing the bad design) 0 is often the success error code in Unix for the shell and 1 or something else is often error.

So it's not entirely without precedent, but it's still an unnecessary and confusing inversion for true and false.

</comment></comment></comment></comment></comment></comment><comment><USER24> > Currently, all our developer tools and technical infrastructure comes from > Big Tech and the Big Web. They are optimised for creating Big Tech and the > Big Web.

What the fuck are you talking about? Nobody forces you to host your personal website on a k8s cluster.

> While we can repurpose some of them for our own uses, we also need tools > specifically optimised for building single-tenant web applications and the > Small Web.

How about Apache for local testing and a ftp server to a webspace at [INSERT WEBHOSTING COMPANY HERE]. Existed for decades, well tested and easy to use.

<comment><USER4> > What the fuck are you talking about? Nobody forces you to host your personal > website on a k8s cluster.

But he _is_ right, almost all the dev tools we used are by surveillance capitalists only further entrenching our reliance on them, think React, Pytorch, React Native, or even K8S etc.

These tools only benefit the the big tech companies and we are going down a path of no return.

> How about Apache for local testing and a ftp server to a webspace at [INSERT > WEBHOSTING COMPANY HERE]. Existed for decades, well tested and easy to use.

This is way too technical for most people, Aral is building something _everyone_ can use in a few steps and has privacy built in.

<comment><USER24> > But he is right, almost all the dev tools we used are by surveillance > capitalists only further entrenching our reliance on them, think React, > Pytorch, React Native, or even K8S etc.

What? The source of all these things is open. I do not rely on any of these companies when using these tools now. Of course if I use them in conjunction with their cloud services I am dependent on say Amazon or Google. But the open nature of their software provides me with everything I need to use it without the dependence on said companies. Your critique is mostly blind, unbalanced tribalism.

> These tools only benefit the the big tech companies and we are going down a > path of no return.

No they are free to everyone. You could use them for whatever you like.

> This is way too technical for most people, Aral is building something > everyone can use in a few steps and has privacy built in.

Frankly, if you are unable to use FTP and XAMPP I don't see you using npm and the CLI.

<comment><USER4> I've seen so many tools made by these companies which were advertised as 'free' turn towards a cloud based model, deprecated, restricted by a patent clause or the ecosystem and development is beholden to a single corporation.

The cloud services is just the start.

</comment></comment></comment></comment><comment><USER25> Had me right up until the advertising.

But let's focus on the first chunk shall we? Yes, wholeheartedly agree. Host it yourself if you can, host it with a small ISP if you can't. It's necessary to keep the open Internet alive and prevent us falling back in to the walled gardens of compuserve, AOL, etc. We're almost there already with our reliance on Google Search driving caged "standards" like AMP.

<comment><USER26> Same here, I was quite interested in the first part. That being said, it was already annoying me because it felt like it was just about choosing A (big tech) or B (self hosted) which were basically the same thing, but for some reason people choose A. It's not the same thing, people choose A because most of them are not skilled enough to get B.

And that's probably a mistake to not make it crystal clear - at the same time that we make crystal clear that yes, anybody can acquire those skills. Most people learn to drive a car. This is incredibly difficult! They learn to read and write, some can even do it in several languages! Why should they not be able to learn to write html and upload it?

If we make people think freedom and democracy should come cheap and convenient, we'll just fall into the same trap with some entities building cheap and easy things and getting control over everyone.

</comment></comment><comment><USER27> My problem with all these similar privacy-oriented services is that they're basically saying: "Don't trust others, trust us". And, OK, Aral Balkan is a well-known figure so I probably would trust him on a word, but I'd much more prefer to have a way to truly, physically have a full control of the sites and the data. I can do that now by having a server under my desk, but most of people can't. For that to become available to the wider public we'll need something more innovative than just updating EULA on 3rd party hosting services to be more privacy friendly. Not that it's bad, it's better than nothing, but I'd really like if we could move the focus more into the direction of p2p web or coming up with something new, even better.

</comment><comment><USER28> _> Another fundamental difference between the Big Web and Small Web is that on the Big Web we trust servers and distrust clients whereas on the Small Web, we distrust servers and trust clients._

I'm less and less sure about that. Clients are increasingly becoming prisons run and owned by BigCorps, iOS being an extreme example of that. Taking ownership is fittingly called jailbreaking.

I think the whole client/server distinction isn't that useful. The important question is who controls what.

The granularity of delegating power is crucial, because completely opting out of BigCorp offerings is something only tech experts can do.

Consumers need to be able to mix and match, and not have everything follow from some initial choice they get to make once every few years at best.

</comment><comment><USER29> I'm entirely for "the small web" but we should be aware that it's difficult to be as energy efficient when running single-tenant servers than a megacorp for whom every penny saved per user results in millions of dollars in savings.

Ah, I've read further, and there comes the sales pitch, they're building something.. Thing is, everyone can go out today, buy a raspberry pi and get a server online in a few hours.. I don't think this is a problem that should be solved with MORE tools, I think it is one that should be solved with less tools.

A pi, nginx and a text editor is really all you need to make a nice home for yourself on the web.

</comment><comment><USER30> I'm all in for the small web. I have my own personal site for my content[0]. But the writer misses the huge point for the "big web": network. It is hard or even impossible to get traction for the small web. But posting on facebook? huge traction.

But it goes for anything really. Writing a technical blog? post on Medium or on dev.to or whatever is hyped right now to get traction.

This is the real problem here.

[0] [https://snir.dev](https://snir.dev)

</comment><comment><USER31> Privacy and freedom of speech are threatened by INFRASTRUCTURE, not domains or tools. You can lose your freedom of speech because your hosting or your DNS/CDN provider terminates you (CloudFlare anyone?). That is the big web he is referring to. But I fail to see how his technological response addresses his concerns: TheSmallWeb offers no way to replace the current hosting mechanism, which is the single source of threat your website can currently suffer.

</comment><comment><USER32> Would a "small web" require giving up search, recommendation engines, upvotes, etc. Doesn't something like hn necessarily require centralization?

<comment><USER33> I think HN is still small web. It's custom-written by one or a few people, doesn't make money, isn't trying to take over the world.

<comment><USER34> Uhm... It's run by Y Combinator. I wouldn't call that, not making money and not trying to take over the world, on the contrary. Traditional seed vc money firm.

</comment></comment></comment><comment><USER35> A true small Web would need to drop the isp provider since they can take down access on a simple take down notice. And run the server yourself.

So, antenna hooked up so that anyone in its perimeter can network. Then whoever can catch the signal may forward/repeat it, extending this small Web.

Afaik long range signals are highly regulated. There is no small Web possible yet.

</comment><comment><USER36> Hey that's cool you're trying to bring back the "homepage". Don't go overboard with the vision and just execute on what we all know already makes sense.

</comment><comment><USER37> Neocities, tilde.club?

<comment><USER38> cosmic.voyage!

</comment></comment><comment><USER39> I practice small web since 1998.

</comment><comment><USER4> Aral is in this for the long term and I respect his principles. Those accusing him of his past 'failed' endeavours are part of the problem. He is self funding his goals and has been ever since, not taking money from surveillance and vulture capitalists.

He was critical on Mozilla taking money from Google, and calls out privacy conferences taking money from Google, Facebook and Palantir.

Aral is following in the very footsteps of another respected privacy advocate, Richard Stallman.

Please take the time to read (or even donate [0]) to the Small Technology Foundation [1]

[0] [https://small-tech.org/fund-us/](https://small-tech.org/fund-us/)

[1] [https://small-tech.org](https://small-tech.org)

</comment><comment><USER40> MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING ?

</comment><comment><USER41> I agree with the sentiment of the writer. Unfortunately I don't see much of a solution offered in the statement.

The biggest obstacle is not only eas of use. Companies as FB, Twitter, LinkedIn, Google etc solve also other problems, they also select and filter information for you. They don't do it flawlessly, but still do quit a good job. One so far nobody else offers, because they are first movers in the space and now own the biggest networks.

Unfortunately their big centralized systems also creates the danger that comes with any big centralized source of information. There are always people that want it to put to good use for noble goals. And as it the human condition all power corrupts.

So in my opinion it is never good to concentrate too much power in the hands of too few people. It does not really matter if it is big government or big business. It will always start working for conformity and limit free speech.

We already see this totalitarian nature in the censorship around Covid information. It started as a way to surpress legitimate misinformation. But it is now actually preventing and surpressing new research that challanges current medical dogmas. Big tech, is like big government. It just does not work that well, is risk averse and is favouring stability over inovation.

The question then is, how can we revitalize the old decentralized web ideal, with all it's free information published for all individuals? The old web only solved standardization of content with HTML, CSS and JavaScript. It did not solve relationships and privacy between people.

Now has the time come to work on standards that connect people. To build networks of friends and to build trust networks like all social media now already does.

Technology is also still improving. While all people can't type more stories, they only have each aimited amount of time for doing that, computers keep getting faster and faster, storage is keep getting cheaper and cheaper. So computer power is becoming a commodity with less and less value. Every day, it gets easier and cheaper to host data and search it.

Web space is cheap, so take Twitter, is it really that hard to publish a Twitter feed in a JSON file, use encryption to allow friends access to your feed data and publish that all on your own rented space that you fully control? Is it that hard to rank your own friends tweets in your own feed that runs on your rented computer power?

Advertisment as financing the computer rent is an option as well. Third parties can build services on top of the standardized data sets. Except that they can not lock you in, as it is your data. They just unlock it by providing search and filtering services while also include ads to make some bucks.

This open technology could also benefit existing alternative social networks, because it creates the needed network effect they need. Because by letting smaller parties work together without even knowing or agreeing with each other. Nobody controlls the network as everybody owns his own dataset. But can still connect to all other people who use the same data standard.

What is keeping us from building something like this? What am I missing?

</comment><comment><USER42> Hey all,

Just skimmed the comments (I know, I know, never read the comments) but here are couple of facts in case you care about that sort of thing (but please don't let these get in the way of a lively discussion) ;)

      - re: drug dealers/users, see: analogy

      - Yes, six years ago, we thought we could fix the problem with a phone. Then we started working on the problem and realised we couldn't possibly raise enough money to do so, then we did a crowdfunding campaign that never included the phone (we promised the alpha of an initial peer-to-peer Mac-based social networking client and promised to keep working on the problem, both of which we delivered on). Also, anyone who asked for a refund from the crowdfunding for any reason got one. If I could do it again, we wouldn't have held the crowdfunding and I wouldn't have started on Mac. But this was all part of the process of us learning about the problem.

      - It wasn't on Kick Starter, we built our own crowdfunding system because I wasn't happy with how Kick Starter, etc., were gathering data (we didn't want your privacy violated for trying to support us)

      - Since then, I've sold the three family homes we had (apartments in Turkey, total worth about ~€200,000 or so) and we've kept working on the same problem for the past six/seven years with the the initial crowdfunding + those funds + sales of our tracker blocker (Better Blocker) on Mac/iOS + professional speaking fees when we speak at conferences, etc. + donations to our not-for-profit (which basically pay our hosting fees every month).

      - Unless IndieWeb is suddenly about building single-tenant web nodes as part of a peer-to-peer future / topologically decentralised Web for everyday people, I don't see how it's the same as Small Web. If that is what they're about now, then sure but, last I checked, they thought we were deranged zealots for publicly calling out Google, Facebook, etc., for being surveillance capitalists.

      - Re: not having done anything since: we created Better Blocker, I personally spoke at over 50 events to raise awareness of the issue, including three times at the European Parliament, I spearheaded the creation of progressive tech policy at one of Europe's most progressive political movements, and we worked with the City of Ghent on evolving what is now Site.js and the Small Web initiative.

      - Finally, someone mentioned that some "privacy projects" say "Don't trust others, trust us." If anyone tells you that, don't trust them. We know how to, can, should be (and are) building technology where you don't have to trust us.

Also, PS:

Small Web is not about having your own Static Web page or having yet another tool for geeks. It's not about going back to the 90s (been there, was fun, wouldn't want to go back), it's about taking the best of that ethos and implementing it for 2020 and beyond. Right now, I'm trying to build a tool for developers (including us) so that we can use it to build everything things for everyday people that don't require a Faustian pact to give up your privacy, freedom of speech, or your personhood to use.

Whether or not this "succeeds", who knows? But we're sharing everything we make under AGPL and trying to share every brick in this bridge we're trying to build between where we are (the sewer that is surveillance capitalism) and where we want to be in hopes that if the stuff we build doesn't work, at least others can use the tools to build other solutions.

Here's a recent talk if you'd like to learn more about what we're working on:

[https://small-tech.org/videos/eastern-partnership-civil- soci...](https://small-tech.org/videos/eastern-partnership-civil-society- online-hackathon-2020/)

You don't have to like what we do and you definitely don't have to like me but I do hope that you will consider the ideas (and ideals) we're working towards.

<comment><USER43> Aral: you go rounds and rounds to reinvent ideas that are solved, and it's been like this for years.

You could join any ActivityPub based project; even start one; build a Matrix client with a web frontent; dig into Scuttlebutt; start working with Beaker on dat://. Any of these choices are better, than starting yet another approach from scratch and wasting a lot of time and effort on it.

Now, for the other issue: please don't try to coin new term that is confusing to everyone. For example, there was a brilliant essay recently - [https://neustadt.fr/essays/the-small-web/](https://neustadt.fr/essays/the- small-web/) \- which used the same "small web" phrase in a very different context. This is just the tip of the iceberg with the problem of using something this generic.

<comment><USER13> "solved" is overstating it, but are already being worked on by groups that have made good progress and a working base, and will continue to make progress.</comment></comment></comment>


Can you recognize the million pound chair? - <AUTHOR> http://www.mysociety.org/2012/06/19/can-you-recognize-the-million-pound-chair/

<comment><USER2> I couldn't agree more with the point of this post. The fact is that many people get hoodwinked when they are getting things sold to them, it's people that are in the actual field that are capable of seeing the difference between something worth the price or not worth the price. That said, if a company doesn't have a dedicated IT staff and said company isn't a small business anymore, that's pretty much asking for trouble.</comment>