Picolisp - <AUTHOR> http://picolisp.com/wiki/?home <comment><USER2> Check out the RC Simulator the creator programmed many years ago in assembler. It's all pixel pushing, no OpenGL, and no texture mapping, but still incredible. I posted about it on HN a year ago too [1,2].

Work has been done to run it on bare metal too - a sort of LISP Machine in PicoLisp!

[1] [http://picolisp.com/wiki/?rcsim](http://picolisp.com/wiki/?rcsim)

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

</comment><comment><USER3> I love how everything is pico until these Java namespaces come along and crash the party.

I think it should make it clearer whether you can actually use this and how. It seems to be run inside a VM and call C and Java functions. They advertise this prominently, but having to run both Picolisp and JVM does not seem very attractive to me. Can we use it reasonably without Java? Is it production ready? How fast is it? How old is it?

I think a programming language is hard to sell, so they should work on that a bit (if that's there goal, of course).

<comment><USER2> The standard PicoLisp is not java-based or VM bound; there is a java implementation called Ersatz [1] that is older, and is there just for the Java hook. It is smaller than Lua considering how much is built-in

PicoLisp is written in C, or the 64-bit version in assembler. It is Posix- dependent, so you need to run it in Cygwin for Windows, although somebody is working on a platform independent version based upon Midipix to eliminate the Posix dependency [2].

The creator of PicoLisp, Alex Burger, created it for his own use decades ago. It has a built-in database and Prolog interpreter. It is very fast for an interpreted Lisp, and there are lots of examples on rosettacode.org.

It is fexprs-based instead of sexprs as far as I know.

I like it a lot, but since I am on Windows for my livecoding / game dev hobby, I have not gone too far with it. I am hoping the Midipix work takes off. I also run Linux on my notebook, but all of my work nowadays is on Windows. .NET Core might change that.

Most games still run on Windows, and the ones on Linux have compatibility issues across the various Linux distros.

There may be a glowing white Apple on most web-dev's notebooks, but my 3 year old Alienware plays games with a Technicolor LED show that would put the F&F film franchise to shame ;)

[1] [http://picolisp.com/wiki/?javacode](http://picolisp.com/wiki/?javacode)

[2] [http://midipix.org/](http://midipix.org/)

<comment><AUTHOR> >It is fexprs-based instead of sexprs as far as I know

...I don't think that was what you meant.

Picolisp _has_ fexprs, and it uses them quite a lot, but they replace macros, not sexprs.

<comment><USER2> You're right. Thanks for catching that incomplete sentence/thought. It uses fexprs in place of macros.

I had been reading John Shutt's paper a day before this post, on what he calls vau calculus vs lambda calculus, where the Kernel programming language is used as an example implementation [1]. Very interesting take on fexprs given the arguments raised around them.

[1] [https://web.cs.wpi.edu/~jshutt/kernel.html](https://web.cs.wpi.edu/~jshutt/kernel.html)

<comment><AUTHOR> Well, Shutt's work is about doing analysis and optimizations to fexprs. Picolisp essentially views compilers, analysis, and optimization as anathema.

<comment><USER2> Agreed. I am just struggling with Shutt's paper, but every now and then I get an epiphany in my understanding, and so I keep reading on. I am basically revisiting the old history of fexprs for my own education.

PicoLisp is pretty fast as an interpreted language, and holds a niche spot. But then again, the creator built it up over the years for his own work. It is very practical and compact when you use it in certain scenarios. I am ambivalent about the way it mixes PicoLisp and HTML in the Canvas examples. It cuts both ways to be that integrated.

Still, I always go back to play with it, because I just love how succinct and logical the code is for a lot of typical programming chores. I tried doing a game with it, but it was too much work (for me) to get it going cross platform, or at least Windows aside from Linux. I don't like Cygwin at all.

<comment><AUTHOR> Yeah, you can have POSIX, or you can have cross platform: pick one.

Picolisp is interesting, but as a schemer, I wish it had TCO. Lexical scope would be nice too: macros are hard enough to code, don't make us worry about macro programming when we're not writing macros of fexprs.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> 4clojure on PicoLisp [https://bitbucket.org/mihailp/tankfeeder/src](https://bitbucket.org/mihailp/tankfeeder/src)

</comment><comment><USER5> It's neat to see a "modern" web page and extensive documentation for such an incredibly old piece of software. While hacking on some old computers (one of my hobbies) I came across picolisp but never thought to look for it on the web. I assumed it was dead, like a large portion of the rest of the software on the box.

</comment><comment><USER6> Hilarious introduction text.

</comment><comment><USER7> That Share Tech Mono font gives me a headache.

<comment><USER8> For a monospace font, the characters aren't nearly distinctive enough.

</comment></comment><comment><USER9> Has the story for PicoLisp on OSX changed at all? My daily drive is El Capitan and there were issues compiling the source because of Clang/gcc incompatibilities last time I tried. Precompiled binaries were around but are no longer linked I think.

<comment><USER10> I think it's been working for a long time, I just ran

brew reinstall --build-from-source picolisp

and it worked.

<comment><USER9> Thanks, will try to hack the weekend away.

</comment></comment></comment><comment><USER11> Long time fan. Great docs. And a 'native' Prolog interpreter: [http://software-lab.de/doc/ref.html#pilog](http://software- lab.de/doc/ref.html#pilog)

</comment><comment><USER12> (setq foo (1 2 3))

So how does evaluation work here? Why isn't (1 2 3) evaluated? Or is it not evaluated because 1 is not a function? In which case, is it not possible to create a literal list where the first element is a function?

<comment><USER13> setq is called a 'special form', which does not evaluate its args as other s-expr would.

<comment><USER14> setq would in fact evaluate its second argument (and bind it to the name specified by the 1st).

Picolisp has a special rule for (literal) lists starting with a (literal) number, they're implicitly quoted instead of the CAR being interpreted as a function:

> if the CAR of the list is a number, the whole list is returned as it is

This makes more sense considering a second quirk of Picolisp: numbers can be used as functions, in which case they're interpreted as a pointer to the executable code to run.

And from what I understand Picolisp's execution model doesn't have special forms as such, rather function definition specifies whether they receive their arguments evaluated or not.

<comment><AUTHOR> It also has macros now, but they're rarely used.

</comment></comment></comment></comment><comment><USER15> Racket has some of the same properties. But it lacks the performance and simplicity. But with Racket you gain other things like more powerful macros, an integrated environment, and perhaps more libraries.

<comment><AUTHOR> Racket is a little too complex for my tastes. It's a little too big, a little to exerimental, a little too complex, a little too magical. I lean towards R7RS and CHICKEN myself, which are on the opposite end in terms of Scheme implementations. Guile's nice too.

<comment><USER15> I do agree, that it gets too big. I mentioned complexity for that reason.

Its also not very performant, BUT you can call C functions quite easily, and you can embed Racket programs into your existing C/C++ programs.

<comment><AUTHOR> Yeah, but Chibi, CHICKEN, Gambit, and Guile are all excellent at FFI, and fairly good at embedding (although for CHICKEN and Gambit, it depends on the given value of embedding... That's more Chibi and Guile's forte, as it was for SCM, SIOD, and TinyScheme before them.)

</comment></comment></comment></comment><comment><USER16> Why use this over Clojure if I'm into Java?

<comment><USER17> I see the answers below and I want to ask everyone. Is there any other lisp besides Clojure right now, that is actively developed but not early stage, and also not old? I want to use lisp and I don't care about the JVM. But whenever I search for lisps, I find some for C, Go, Rust that are too young, or Common Lisp which I read is too old and weird, and complicated. I really like Clojure and that's what I use for now, but a lisp without the JVM mighty be cool.

<comment><AUTHOR> Clojure... well, I wouldn't go so far as to say it's "not a lisp" (some people would), but it's quirky. It's like that weird guy who's just as competent as the rest of us, but has an "interesting" perspective on how he tackles problems. The example I got in another thread on this is:

      (list? '(1 2 3))
      ;;; => true
      (= '(1 2 3) (cons 1 '(2 3)))
      ;;; => true
      (list? (cons 1 '(2 3)))
      ;;; => false

That's actually psychotic: if your lists aren't lists, than don't call them lists!

Anyways, Scheme is the part of the lisp family tree that actually evolves, albeit slowly. The spec is minimal, so compatability between implementations is low. I'd reccomend either Chicken or Guile scheme to most people, as both have pretty good FFI, decent performance (Chicken's is better), and good libraries (for a scheme).

Racket isn't a Scheme, although it started as one. The official implementation of Arc runs on an old version of Racket, from when it was closer to Scheme (we should probably port it to another scheme at some point...). It's not really my thing, but you might like it, and it has some of the best library support of any lisp outside Common Lisp.

OTOH, you may like Common Lisp. Bits of it are idiosyncratic, and it's huge and inelegant, but it's a tremendously powerful language, and very well supported and documented. There are actively developed implementations, and the most popular is probably SBCL.

<comment><USER18>
        (list? '(1 2 3))
        ;;; => true

'(1 2 3) is, in fact, a list of 3 elements

        (= '(1 2 3) (cons 1 '(2 3)))
        ;;; => true

      = is closer to equal? in scheme. The doc string for clojure.core/= explains this pretty well:

        Equality. Returns true if x equals y, false if not.    Same as
        Java x.equals(y) except it also works for nil, and compares
        numbers and collections in a type-independent manner.  Clojure's immutable data
        structures define equals() (and thus =) as a value, not an identity,
        comparison.

Finally,

        (list? (cons 1 '(2 3)))
        ;;; => false

`cons` is defined over a sequence in Clojure, not a list. The doc string actually says this upfront "Returns a new seq ..." and the type of this happens to be a `clojure.lang.Cons`. To get add a value to a list, you would actually use `conj`, which conjoins a value onto a collection or sequence in a way that is specific to that collection or sequence.

        (list? (conj '(2 3) 1))
        ;;; => true

If you are dead-set on using lists for some reason (you probably want a different datatype in Clojure), you could always define:

        (defn cons?
          [x]
          (instance? clojure.lang.Cons x))

        (defn list-cons
          [v l]
          (cond
            (cons? l) (list-cons v (into '() (reverse l)))
            (list? l) (conj l v)
            :else     (throw (AssertionError. "Assert failed: list-cons requires a PersistentList or a Cons."))))

If you really want a Lisp-style cons with pairs and such, you'll need to define that yourself. It's not hard, or particularly useful, but if you really feel you must...

<comment><USER19> Unfortunately they print as (1 2 3), even though they are different data structures. A naive user would think that if (1 2 3) is a list, then anything that prints like (1 2 3) is a list... printing it and rereading it -> I get a new data structure type. Really?

Added with the random use of Lisp names to mean something different, while claiming to be a Lisp, this is only creating confusion.

<comment><USER18> Cons prints the same as a list, which means when it is read, it _is_ a list. '(1 2 3) is a PersistentList, not a Cons. In particular, this is what I expect:

        (= foo (read-string (pr foo)))

As it turns out, in Clojure this holds (because = isn't identical?):

        (use 'clojure.test)
        (let [kons (cons 1 '(2 3))
              kons-str (pr-str kons)
              read-kons (read-string kons-str)]
          (is (instance? clojure.lang.Cons kons))
          (is (not (list? kons)))
          (is (string? kons-str))
          (is (= "(1 2 3)" kons-str))
          (is (list? read-kons))
          (is (not (instance? clojure.lang.Cons read-kons)))
          (is (= kons read-kons)))

Does this _really_ create confusion for more than the 30 seconds it takes to read the doc string of clojure's cons? I don't know about you, but when I move to a different language (even a different lisp), I don't assume things always work exactly like they do in Common Lisp. When I came to clojure, I even took a look at the old version of this page: [https://clojure.org/reference/lisps](https://clojure.org/reference/lisps), which details this and other differences from the Schemes I had mostly used in the past.

<comment><AUTHOR> That may only create a few seconds of impedance, but it's still utterly psychotic and insane. Once again: if cons isn't cons, than don't call it cons. I don't assume that everything works the same way everwhere, but if you take your primitive function names from another language, and have them behave differently, people _will_ be confused.

I mean, sure, if the semantics of cons are a bit different, okay, but you can't just take the name and put it on a function that doesn't work at all like cons.

It also violates homoiconicity, and the fundamental guarantee of the reader: what you read in is the same as what you wrote out.

<comment><USER18> > doesn't work at all like cons

clojure.lang.Cons follows what CL's cons does with exactly one deviation: cdr must implement clojure.lang.ISeq. The practical effect of this is that you don't get a Cons cell as a primitive building block, but you don't need that because you have deftype (or one of the many higher level interfaces in clojure, which tend to be faster anyway since deftype will end up using java fields for storage, which the JVM understands very well). I don't have to build up my own alist using a list of pairs containing keys and values because I just use a map. Further, when I'm using deftype, if I implement the right interfaces, the core clojure sequence functions like conj, first, rest, map, filter, reduce, etc will all work on my custom type, without me inventing a namespace worth of custom implementations for those.

> violates homoiconicity

Clojure code isn't written using Lists, Vectors, Strings, Maps, Keywords, and Symbols? I guess I'll stop writing macros then. No clue how they ever managed to work.

> fundamental guarantee of the reader

AFAICT, clojure's printer makes no such contractual guarantee here. FWIW, neither does CL (witness the thousands of subtly (and not so subtly) incompatible read tables floating around). In clojure, the printer, out of the box, prints values in such a way that they can be read back in in a way that is `clojure.core/=`. It's unreasonable for them to be `clojure.core/identical?` (which is essentially asking if they are the same memory as before (this isn't even something that Common Lisp or Scheme does, mostly because it's pretty insane unless you statically map out all of your memory)). I mention out of the box because you can change the printer and supply additions to the object tag reader (or even to throw out clojure's reader and use one of the reimplmentations as a library).

<comment><AUTHOR> >clojure.lang.Cons follows what CL's cons does with exactly one deviation: cdr must implement clojure.lang.ISeq

Well then, it's not a cons, is it? It's actually a particularly weird implementation of push, which stores the pushed item in another cell. If you're not going to put cons in your language, fine, but be honest about it.

>Further, when I'm using deftype, if I implement the right interfaces, the core clojure sequence functions like conj, first, rest, map, filter, reduce, etc will all work on my custom type, without me inventing a namespace worth of custom implementations for those

So you have high-level collection functions that act the same between collections? Good for you guys. Lisp and scheme have had that for ages. But don't call your high-level functions by the name the low-level functions are expected to be called, and expose those low-level functions: sometimes a function wants to know what sort of structure it's manipulating.

>Clojure code isn't written using Lists, Vectors, Strings, Maps, Keywords, and Symbols? I guess I'll stop writing macros then. No clue how they ever managed to work.

Okay, yeah, I miswrote that, it doesn't violate homoiconicity. But I disagree vehemently about the reader. Assuming the readtable is in the same state, anything you write out _can_ be read back in to give the same structure in RAM: that's why you can use write to serialize state.

Also, by the above, clojure violates commutative equality, which is bad in any language that claims to support FP: If a property is false on an entity, than an entity that entity is equal to cannot have that property be true. Otherwise, they're not equal.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> `de` and `prin`, wut?

<comment><USER2> 'define' \- Scheme, Shen, others; 'defn' \- Clojure; 'fn'; 'lambda' \- are all just syntax to get used to in any language you learn. The online documentation, rosettacode.org examples, or the two reference books for PicoLisp should help get you started.

<comment><USER21> I think they were referring to the fact that 'de' isn't much of a shorthand for 'def' and that 'prin' isn't much of a shorthand for 'print'.

<comment><USER2> I would say they are much more shorthanded than 'define' for define. Then again, I program in J too, so I am used to one character or two character tokens.

Wut? I understood as shorthand for 'What?' ;)

<comment><AUTHOR> Yeah, someone said that Scheme was like the Java of the Lisp world. It's not _that_ verbose. But it can be fairly verbose at times.

<comment><USER2> I never heard that one. I mean you can just use shorter names. After all, you define the functions, or at least most of them, and the built-in ones are not unusually long. The Scheme programs are usually much shorter than most of their counterparts on rosettacode.org. I program in J, and that is even shorter! For me, the slight against Java is the length of the class names themselves (e.g. TransactionAwarePersistenceManagerFactoryProxy), and all of the curly braces mixed with all sorts of other line noise ;

<comment><AUTHOR> Some of the are pretty long, but the worst of them (call-with-current- continuation most famously) usually have abbreviations (call/cc).

Java's evil isn't just it's long class names: It's also the language's general verbosity: in some cases, I'd say it approaches COBOL levels of verbose. The other evil is the import paths: Python got this one right. You don't want org.companyname.lang.java.org.net.project.net.classes.AbstractClassFactoryFactory.

That import path isn't as much of an exageration as you'd think: if Java had been invented a little earlier, it would have been banned from most computers as a criminal waste of inodes.</comment></comment></comment></comment></comment></comment></comment>


Is delphi dying? - <AUTHOR>

Nowadays in the Internet in the place like hackernews, i really can not find people talking about delphi.<p>Is it active or it is dead already? Is it good  to start learning delphi now? <comment><USER2> I'm not intending to be snide or rude, but it's been so many years since I've heard it mentioned that I assumed it was dead.

<comment><USER3> This was my reaction too. Something like "Holy crap! I forgot about that language"

<comment><USER2> At least we're not making this comment about a person!

</comment></comment></comment><comment><USER4>
      > Is it good to start learning delphi now?

That depends.

Do you want to build new software? If yes, look elsewhere.

Do you want to maintain or port old small business software and possibly make large sums of money? Then it might be worth learning Delphi.

Otherwise, Delphi is dead. But I do know of at least one programmer (albeit with excellent personal marketing skills) who learned RPG and became a multi- millionaire taking RPG contracts long after it was considered "obsolete".

<comment><USER5> I know a Cobol programmer who did (is doing) something similar.

</comment></comment><comment><USER6> It looks like demand for Delphi programmers is down by roughly 2/3 since 2006 (relative to other languages). Source: [http://www.indeed.com/jobtrends?q=delphi&l=](http://www.indeed.com/jobtrends?q=delphi&l=)

</comment><comment><USER7> I know a couple of Delphi developers; good developers. I don't think that they would recommend learning the language today because the number of legacy systems still in Delphi are declining, few new projects use Delphi, and while there are web frameworks, app development frameworks, etc., they really only exist to help existing developers and are not remarkable enough to be worth learning the language.

</comment><comment><USER3> I think it is objectively hard to measure this sorta stuff, but considering there are 2,139 jobs listed using an aggregating job search engine for delphi. Compare to most of the other language and you find many many many more jobs. so by that measure, yes. By another measure, maybe not.

</comment><comment><USER8> Dead or not, it's still a good choice if you want to deliver native windows gui apps.

</comment><comment><USER9> I suggest Lazarus to you. It is a successor of Delphi in a sense. It is rather active.

[http://www.lazarus.freepascal.org](http://www.lazarus.freepascal.org)

</comment><comment><USER10> Still very much active.

<comment><AUTHOR> I do not see it active anywhere.</comment></comment>


EFF requests not to consider iPhone jailbreaking illegal - <AUTHOR> http://www.eff.org/deeplinks/2009/02/apple-says-jailbreaking-illegal As part of the 2009 DMCA rulemaking, EFF has asked the Copyright Office to recognize an exemption to the DMCA to permit jailbreaking in order to allow iPhone owners to use their phones with applications that are not available from Apple's store <comment><USER2> This reminds me I need to make my donation and go about getting my EFF stickers for my laptop!

The EFF is an amazing organization and it is one of the few organizations I make annual donations to. They do great work and are one of the few fighters protecting against complete corporate and government takeover of technology.

</comment><comment><AUTHOR> A few months ago the so called "iphone dev team" posted a video starring Woz on their blog where he talked about iphone hacking and whatnot. The video can be found at [http://news.bbc.co.uk/2/hi/programmes/click_online/7741472.s...](http://news.bbc.co.uk/2/hi/programmes/click_online/7741472.stm) \-- gives you another POV on iphone "hacking". I loved his enthusiasm.</comment>


Release: CouchDB 1.0 Finally Here - <AUTHOR> http://nosql.mypopescu.com/post/810615197/release-couchdb-1-0-finally-here <comment><AUTHOR> ... and if I'm not mistaking, you can also get a free, hosted CouchDB account, thanks to Couch.io</comment>


I'm a typical SV college dropout-turned-entrepreneur. Don't follow my example - <AUTHOR> https://www.usatoday.com/story/opinion/2019/06/18/silicon-valley-college-dropouts-education-column/1412842001/ <comment><USER2> God this web page is a mess. USA today is truly a nightmare.

Notification popup, ad-block popup, two different advertising videos that start upon opening the page (one stuck to the bottom, one in the article itself). The article itself is a modal on a different page?

<comment><USER3> The "EU experience" (apparently what they show to EU visitors) is _great_ on the other hand. Thank you for subsidising it for us, I guess...

</comment></comment><comment><USER4> strikes me as pretty accurate. Most people I know that "drop out" and successfully pursue startups come from backgrounds where connections and knowledge usually already exist through family background.</comment>


So OSX "can't" get a virus? - <AUTHOR>

Maybe they are the Virus.
Sneaky Apple. My roommate has an iMac hardlined to the router. When I leave and come back Chrome warns me that my traffic is being redirected to itunes.apple.com. So what is this some large scale ARP poisoning attempt? Nice try Apple, you can't fool me. http://en.wikipedia.org/wiki/ARP_spoofing
AirPlay uses the same shit but in a different way - http://en.wikipedia.org/wiki/AirPlay So basically if you use an Apple product, you're being tracked by Apple. Sounds awesome to me. Let me go drop $600 on a 16GB phone so I can't upgrade the memory to 64GB for $50 and not be able to drop a battery out to swap and not have to be tethered to an external charge source. The idiocy that engulfs this nation as to what a good consumer end product just absolutely baffles me. Read about what you use people. Stop sleeping when it comes to technology, wake up and observe how you're being observed. <comment><USER2> I'm so confused...

</comment><comment><USER3> what</comment>


Volkswagen Shows Off Self-Driving Auto Pilot Technology For Cars - <AUTHOR> http://www.motorauthority.com/news/1062073_volkswagen-shows-off-self-driving-auto-pilot-technology-for-cars

<comment><USER2> These are the types of steps I'm guessing we'll see over the next few years towards driverless cars. It's not difficult to imagine these incremental changes becoming more and more frequent as companies compete in this space.

One thing that strikes me as interesting is the possibility for software upgrades in your car to enable more (automated driving) features. Once all of the hardware is in place it seems like a natural progression.

Who's to say that the hardware won't plateau well ahead of social norms, legislation, and software and that we won't end up with an awkward period of automated-ready cars?

<comment><USER3> This is exciting. Imagine downloading open-source autonomous driving firmware that pushes your car to the limits. Cops will issue tickets for "using a non- dmv certified autopilot algorithm that automatically slowed down at known speed traps." All the data is there. :)

It'll also be interesting to know how automaker's efforts intersect with Google's efforts. Sounds like an exciting problem to be working on.

</comment></comment><comment><USER4> Can't wait. There are people (like me) who are not allowed to drive for health reasons.

</comment><comment><USER5> Skynet will be able to kill off like 20% of the worlds popuplation by scheduling a car crash for everyone on the road at 8:50AM tuesday morning.

The most important feature of driverless cars is in the unexpected results. I can tell my car to pick me up, and suddenly we don't need big parking lots in front of walmart, you can just tell your car to "go find a parking place nearby" and tell it to pick you up when you are ready. Then we figure out I don't need to own a car, just a card to use a given car when I need it, so A car isn't taking up space at my house at night, or at my place of work in the afternoon. We can get by with much fewer cars.

You can use the SUV when you need to move something big and the family, and use a 1 seater when you are commuting to work.

</comment><comment><USER6> After seeing the quality of a "German Engineered" Volkswagen Beetle, whose endless and unforgivable defects we constantly had to fix, I'd stay the hell away from their Auto Pilot Technology.

<comment><USER7> the beetle and many other volkswagens are assembled in mexico. their higher- end models are assembled in germany.</comment></comment>


The "bob's game" RPG is on Kickstarter - <AUTHOR> https://www.kickstarter.com/projects/bobsgame/bobs-game

<comment><USER2> I previously didn't know anything about this game but it looks really badass! I hope it gets upvoted here on Hn and gets some visibility.

A few things of note:

* It'd be nice to have a better idea of what the game is about. It looks really awesome but some kind of plot-point teaser would be better

* more donation levels. Definitely a $1000 - super backer and then something in between $20 and $500 for the eager ones

* more/better prizes. For example: life-sized poster of Yuu, the nD console, or whatever else. I'm not sure what Kickstarter allows or not.

Good luck!

</comment><comment><USER3> Hope this gets Kickstarted. Looks super cool!

</comment><comment><USER4> This looks like it has potential. If you scroll quite some distance down the kickstarter page and find the "bgeditor" youtube video, you can actually infer a lot about the project.

</comment><comment><USER5> great game so far from the demo</comment>


Ask HN: What tactics do you use to explain things to non-developers? - <AUTHOR> Sometimes we have to justify what we are doing to people who don't understand the jargon, the concept, or why it matters. So what do you do to help get the idea across? What analogies (if any) have you found to be most effective? Are there any other go-to strategies you have for bridging this gap? <comment><USER2> I honestly make terrible automotive analogies. Most people I talk to have driven a car or have at least ridden in one, so it's a good basis for shared understanding. Making the analogies obviously bad shows that programming is subject to human faults and conveys that programmers aren't necessarily smarter or better than anyone else. We're just as liable to misunderstand things or make mistakes, and that's a useful piece of information for non- developers, who tend (in my experience) to regard developers as wizards.

Correcting my terrible analogies is an object lesson in the software development process, too.</comment>


Not a single watcher reported mosque gunman live stream, Facebook says - <AUTHOR> https://www.independent.co.uk/life-style/gadgets-and-tech/news/new-zealand-shooting-video-stream-facebook-live-brenton-tarrant-a8829651.html <comment><USER2> Everyone who ever managed a (online or not) community knows that you can't scale past the moderation you can afford, because a community is only as good as its members. And if you scaled past your moderation reach, that community will surely be shitty.

Why people are reporting banal obvious things? Will this be spun in the chewbaca defense facebook legal team will try to use in court?

<comment><USER3> While I agree with you, there are a large section of people online who disagrees with your premise. 8chan and 4chan exists with minimal to no moderation.

Reddit has learned the importance of moderation, but only after __many __controversies (and those controversies have led to the exodus of "anti- moderation" advocates. As /r/CreepShots or /r/jailbait got banned from Reddit, those communities migrated to 8chan)

So while you're correct in that moderation is IMO key to preserving a good internet community... there are a HUGE number of people who would disagree with you. 8chan's very existence proves that some people don't want moderators.

In fact, it is very important to watch the crowds and recognize these "exodus" situations. A lot of internet philosophy can be understood if you follow these controversies. SomethingAwful's exodus, the GameFAQs LUEser exodus, 4chan exodus, KotakuInAction / Gamergate, and 8Chan. These major events split the internet community into differing philosophies, and cause entire groups of people to stop interacting with each other.

<comment><USER4> While I disagree with most of the exoduses you mentioned, I do think that having minimal moderation is important. I want to see and hear what people _really_ think, not what they want the outside world to think they think.

I don't want every community to be like that, but I want there to at least be some.

<comment><USER3> Unmoderated communities increase the necessity of trolls. In fact, 8chan and 4chan may be "unmoderated", but that doesn't mean that they're missing out on virtue-signaling or other acts which hamper discussion. You still need to follow the "rules" of the site.

4chan and 8chan political discussions will inevitably move towards defending free speech (even in the face of child porn, or whatever). Is that really what people think? Or is it virtue signaling to all of the other posters, to hold back trolls?

The fact of the matter is: unmoderated communities have their own rules. Its just more fluid and unwritten. People have a way of making you feel unwelcome even when things are anonymous, and that feeling itself is enough to hamper discussion.

\</comment></comment></comment></comment><comment>----

In effect, moderation on 8chan is handled by trolls deciding when and where to pick fights with specific users. With enough VPNs, you can pick out new IP addresses and stage copypasta campaigns to push your own viewpoints and astroturf your viewpoint.

I dunno, its just different. I still think it has the same issues as any other community. There's a veneer that things are more fair on 8chan, but really it just gives more power to the people who have more time on their hands.

You're right in that its important to learn "what people really think". I'm not coming forth with any solution myself, I'm just saying that all websites have their issues in my experience.

</comment><comment><USER5> I feel that things like this should just get publicly attached to the viewers profile.

Eg Facebook public profile:

A. Person

\- Watched terrorist live stream \- member of white supremacist groups

A. Nother

\- member of anti Semitic group \- posted pro-ISIS video

Let them post a response to those notes, and suspend their account for 30 days so their friends, family, and coworkers can see.

<comment><USER4> Yeah, I cannot think of a single way that this could be abused.</comment></comment>


Scene To Be Believed: California As the World  - <AUTHOR> http://strangemaps.wordpress.com/2010/05/21/465-scene-to-be-believed-california-as-the-world/

<comment><USER2> This is awesome for anyone living in CA who wants to make a movie (me). Cheers!</comment>


Secret, the Popular Message-Sharing App, Comes Under Fire Over Cyberbullying - <AUTHOR> http://www.bustle.com/#/articles/34362-secret-the-popular-message-sharing-app-comes-under-fire-over-cyberbullying

<comment><USER2> Perhaps this is an unpopular opinion that I hold, but I don't feel that it is the company's responsibility to dictate to their users how they should use the company's product (within reason, of course). Now, bullying and cyberbullying are a serious problem, and there's no doubt about that. However, cyberbullying doesn't occur because apps like Secret exist; there are other forces at play here.

Now, should companies like Secret ENABLE cyberbullying to happen? Of course not! But should they sensor what goes up onto their service? I don't think so. There are features which they can implement (if they haven't already) which can be used to allow users to flag certain content as being abusive, and repeat offenders can be permabanned. That seems like a more appropriate course of action from Secret, instead of sensoring what their users put up on their service, which is what many critics seems to be advocating for.

Now, I haven't used Secret in a very long time (doesn't seem all that popular with my group of friends), but I'm fairly certain that they provide users the ability to flag inappropriate content. I could be wrong, of course, and I'm open correction on this.</comment>


Erlang's New Map datatype coming in R17 - <AUTHOR> http://erlang.org/pipermail/erlang-questions/2013-May/073656.html

<comment><AUTHOR> The Relevant EEP can be found here: [https://github.com/psyeugenic/eep/blob/egil/maps/eeps/eep-00...](https://github.com/psyeugenic/eep/blob/egil/maps/eeps/eep-0043.md)

The discussion related to the "Maps vs Frames" proposal is fascinating and enlightening, for those with the time to read the (currently 70 posts-long) discussion.

Maps are being presented as a generalized datatype that can serve as a replacement for many of Erlang's container types (Records, Dicts, Prop lists).

Personally, I'm very excited to play around with them with the R17 release.</comment>


Show HN: Listabot – A Time Tracking and Invoicing App for IOS - <AUTHOR> http://www.listabot.com <comment><AUTHOR> Hi! Listabot is an IOS app I've been making with Swift for tracking hours & invoicing.

I've been a freelance contractor for awhile and I know there are tons of time tracking apps. I'm trying to make it easier to just track tasks & invoice without having to create an account or signup for a monthly subscription.

Currently I have calendar integration, reminders, & html/CSV invoices that can be exported, and I have more features I'm working on.

Thanks for checking this out & I appreciate any feedback you have :-)

<comment><USER2> Have you seen [https://wakatime.com](https://wakatime.com)? You can time track automatically, and data export to your Listabot.

<comment><AUTHOR> I hadn't seen Wakatime yet - but it looks very cool!

I really like the leaderboards and how work is automatically tracked.

I created an account to check this out some more - Thanks for sharing!</comment></comment></comment>


Universal API for Google Drive, Dropbox, One Drive on Android, iOS or Xamarin - <AUTHOR> https://cloudrail.com/integrations/interfaces/CloudStorage <comment><AUTHOR> There are many other services you can use also like Facebook, Twitter, Instagram, LinkedIn and Github.</comment>


Ask HN: Have you been sending GDPR requests out there? - <AUTHOR> After GDPR was approved, I started sending GDPR requests to my bank / old phone provider (moved from Spain to Canada a few years ago) / Paypal, etc. I also want to request data from Visa / Mastercard, as I would expect that to be a real goldmine.
I was curious to know if people here are trying to do the same, and what their results have been.
So far, for me, only my mobile phone provider and Paypal responded with a request to send them some scanned documentation, which I did, and I am currently waiting for their response.
Also, can anyone point out what data brokers are currently operating in Europe? I'm really curious about those. A lot of the stuff I'm able to find online only talks about companies based in the USA, though I understand their reach is global. <comment><USER2> Here's what a dump of Spotify looks like [https://twitter.com/mikarv/status/1012386696934182912](https://twitter.com/mikarv/status/1012386696934182912)

[https://howtogdpr.me/](https://howtogdpr.me/) collects how to contact companies and what they replied (and how long it took).

</comment><comment><USER3> Why waste your time?</comment>


George Price, Who Tried to Prove Selflessness Doesn't Exist - <AUTHOR> https://motherboard.vice.com/read/george-price-altruism

<comment><USER2> He devoted the last few years of his life attempting to prove himself wrong by sharing his property and belongings with the homeless, only to become more depressed when some of them stole from him and he was eventually evicted. No wonder his biography is called The Price of Altruism.

As one of the most important figures in the last forty years of evolutionary theory, he would make an excellent addition to this list of geniuses with bizarre beliefs: [http://kruel.co/2014/05/30/highly-intelligent-and- successful...](http://kruel.co/2014/05/30/highly-intelligent-and-successful- people-who-hold-weird-beliefs/#sthash.N53BYtps.GK0qdgmj.dpbs)

For me, stories like this symbolize the incredible compartmentalization of the brain - we can think with complete clarity about the focus of our intellectual passions, and still not have a clue about the rest.

<comment><USER3> I don't agree with that, on the compartmentalization of the brain. Some of what we think in one compartment of the brain can work concurrently in another part of the brain, which can cause us to make all sorts of irrational leaps of reasoning that we abstract over and call logic or rationalization.

It's pattern matching, and some people get too carried away with it, because that pattern matching is typically what initially marked them as intelligent by everyone else, and it works, most of the time, except when we have paradoxes, which we just cover up with more symbolic logic, because we'd prefer to explain logic with more logic, than explain it with common sense.

Some people can think with perfect clarity and be seen as crazy by everyone else, just because people seem to want to observe things that way.

I mean, consider how the homeless who stole from this man may think. Many patterns of which to reason with, none of which are purely mathematical or logical.

I mean, on one hand, we use these things we've been taught mark intelligence and cunning, half truths dressed up in eloquent, alluring, and rhetorically deceptive wording, the rhythm and tempo of each sentence.

On the other hand, it's only the correlation between the Harvard 4.0 GPA and being fascinated with the random dreams and images one's mind presents to oneself day to day. You don't have to literally hallucinate in order to become convinced that your hallucinations are real. That's often a problem with language - day to day, we think some of it literally exists, and it doesn't (or we at least can not prove that it does).

I don't know what George Price symbolizes, because I don't pretend to understand him. But it gives me something to think about that is new.

</comment></comment><comment><USER4> I imagine that if one would thoroughly internalize the belief that we're driven by purely rational, mechanistic forces, diving head-first into irrationality in an attempt to search for (or somehow invent) freedom and meaning, would be the only rational thing to do.

His case is discussed in the BBC documentary series "All Watched Over by Machines of Loving Grace" by Adam Curtis, which is very much worth seeing. It's wide-ranging and opinionated in a way that invites criticism, but always fascinating and I think a point of view worth considering, especially for technologists.

[http://en.wikipedia.org/wiki/All_Watched_Over_by_Machines_of...](http://en.wikipedia.org/wiki/All_Watched_Over_by_Machines_of_Loving_Grace_%28TV_series%29)

<comment><USER5> >I imagine that if one would thoroughly internalize the belief that we're driven by purely rational, mechanistic forces, diving head-first into irrationality in an attempt to search for (or somehow invent) freedom and meaning, would be the only rational thing to do.

Nah. Compatibilist free will is entirely real, and meaning is more-or-less a built-in byproduct of living life. In fact, the most common reason people "lack meaning" is precisely because they're trying to be as "free" as possible by minimizing the attachments that make life meaningful.

</comment></comment><comment><USER6> Here's a different point of view: isn't it great that selflessness is _hardwired_ into our very being? Of course, our actions are tied to a desired outcome, but we value our legacy above our own physical and mental wellbeing. imho the human race may be selfish, but the individual is prone to express selflessness.

<comment><USER7> The point is though that we perform selflessness acts because of the way it makes _us_ feel. We aren't truly "selfless". Good deeds are a byproduct of our desire to make ourselves feel better.

<comment><USER8> You're arguing for psychological egoism. The problem is that, although many acts of apparent selflessness have plausible selfish explanations, there are clearly some that don't. (People laying down in front of tanks, etc.)

[https://en.wikipedia.org/wiki/Psychological_egoism#Criticism...](https://en.wikipedia.org/wiki/Psychological_egoism#Criticisms)

You either need to admit that some acts are selfless, or you end up just defining "what someone selfishly wants" as "what someone chooses to do", which isn't very useful.

<comment><USER9> >(People laying down in front of tanks, etc.)

There are a couple ways to handle this.

First, humans are not inherently rational. How many times does a human desire one goal but performs something that moves that goal further away from them, perhaps to the extent they destroy any hope of obtaining that goal?

Second, there are social benefits to selflessness that we will tend to be able to enjoy the benefits of but which are not always going to be there.

Consider a bird trained to press a button for food though the food only has a chance of being produced. Even in cases where there isn't food, the bird is still pressing the button to get food. Even when an outside observer knows the next press will not generate food, the bird is still pressing it for food. Even if we could inform the bird that food would not result from the next press, the bird would likely make the decision anyways to disregard our advice and press the button for the sake of food.

</comment></comment></comment></comment><comment><USER10> Can someone explain the equation better than the article?

</comment><comment><USER11> Every time man tries to "disprove" the less desirable characteristics of human nature. They inadvertently end up proving it themselves.

Case in point: man abandons wife and two young daughters to prove to the world that human beings are not selfish.

</comment><comment><USER12> So, of course everything you do is for a selfish reason. You behave to fulfill behavioral and emotional needs, but its mostly based on emotion; for without that you would just sit and die. Emotions drive all, even "logic" and "reasoning".

But, the issue is not that we act selfishly, for that will always be, as that is how we can be autonomous; selflessness though, facilitates us acting as a group instead. It is pro-social to improve things for others, and so there must naturally be internal mechanisms that drive that behavior, and dopamine is pretty good at getting behavioral responses.

But to say 'selflessness" doesn't exist is like saying there is no sun. Selfless does not mean you get _nothing_ out of it, just that you get little to nothing out of it; or may even end up suffering considerably for it.

Maybe our definition of selfishness/selflessness is skewed, but they both exist.

</comment><comment><USER13> I haven't found much evidence for what I would call _selflessness_ , so I tend not to believe in it.

What I mean by _selfish_ is:

\- You do it because you are motivated to do it for yourself. I get an ice cream because I want an ice cream. I study for an exam because I want good grades, not necessarily because I like the studying. I give my SO a back rub because I like to see her smile, or just because I like to give a back rub. I do my friend a favour because I'm afraid he's not gonna like me if I rebuff him.

\- Doing things which benefit others can be done for selfish reasons; the distinction is intent, not outcome.

\- I could probably fill in other examples but I can't really think (of something) now.

Some might think that I'm a misanthrope for believing that all people are selfish. But no, I'm a misanthrope for different reasons. I don't view being entirely selfish as inherently bad, which I guess some people do. If someone wants to do good by others, or at least not be in the way of others, that desire is not _tainted_ because it is motivated by selfishness.

Maybe my definition of _selfish_ is so broadly applicable that it is quite useless. What good is a word if all things are [that word] and not something else, like an opposite?

<comment><USER14> I have definitely seen people do things that make someone else happy, but makes the first person less happy and provides that first person with no benefit.

I'm just one data point on a screen, but is that evidence for what you would call selflessness?

<comment><USER15> I suppose a cynic would claim that even though the giver is aware of the unhappiness it causes them, material loss, status in the eyes of others etc, the gain is made from "doing the right thing".

A real cynic would say that fighting in WWII was for the glory of dying an heroic death. Posthumous acknowledgement of heroism and honor. But I happen to think many of those who fought in that particular war knew their fate and truly were selfless.

<comment><USER14> The case I had in mind involved enabling a drug addict to get more drugs. The only gain was that the addict became less unhappy for a time.

Anyway, I propose that given that humans (possibly barring autistics etc) operate by building models of the minds of other people inside their own head, if a person does something based on that model to help the modelled person become more happy, it's a selfless act - I can quite literally create a model of someone else inside my head, calculate how to make _them_ happy based on that model, and then do it. I'm not modelling how _I_ can make myself feel good, or modelling how I'll look like a big man for helping someone; I'm modelling another person's emotions to work out how to make them happy.

</comment></comment></comment></comment><comment><USER16> Isn't the answer to this question to be found in game theory?

<comment><USER17> According to the article, the second part of Price's efforts was to apply game theory to evolutionary biology.

So probably, the reason why you think the answer is in game theory is because of his original work.</comment></comment>


Full stack functional testing for hackers. - <AUTHOR> http://kailuowang.blogspot.com/2012/05/full-stack-functional-testing-for.html Why care about full stack functional testing? Because you really care about the quality of your product but you also care about the cost of QA. The most cost efficient option is probably full stack functional testing, which isn't exactly easy, but hey, you are a hacker, aren't you? <comment><AUTHOR> Here is some opinion from the other end. <https://gist.github.com/1625073></comment>


Show HN: Multiplayer Spectre Clone for the Web - <AUTHOR> http://xigency.herokuapp.com <comment><AUTHOR> I anticipate this will break because it doesn't have any load-balancing, but this is a game I made several years ago with WebGL, hosted on Heroku. The original source code is available but needs to be updated to use the latest version of Socket.IO as it is here.

[https://github.com/teamduck/gametube/tree/master/tanks](https://github.com/teamduck/gametube/tree/master/tanks)

The game uses arrow keys and spacebar for controls. The Konami code unlocks something cool as well.

</comment><comment><USER2> This is pretty fun! A simple scoreboard of kills you get got in a single life would do wonders though.</comment>


Story of another iPhone app rejection - <AUTHOR> http://www.kraln.com/?p=158

<comment><USER2> Why do innovative software authors keep limiting themselves to Crapple's communist-like platform ?

Isn't blackberry the #1 selling smartphone anyways ? (I see a lot more of them in NYC than I do see Iphones ...)

<comment><USER3> I think you mean "dictatorial" or "totalitarian". "communism" is something quite different.</comment></comment>


Create mobile apps inspired by big brands, all without coding - <AUTHOR> https://applications.studio <comment><USER2> Are you wishing to develop the websites at global level? Here you can find top 10 mobile app development companies that aim to deliver first class solutions forever. In addition to this, the expert developers able to provide the friendly services and thus get attention on familiar sources forever. [http://www.trustfirms.com/top-android-ios-mobile-app- develop...](http://www.trustfirms.com/top-android-ios-mobile-app-developers- companies/)

</comment><comment><USER3> Exactly the tool I was looking for. Looking forward to be able to create, test and deploy my application just with few clicks.

</comment><comment><USER4> This is great! They innovate the mobile apps creation and the entire market should try this!</comment>


Jim Roskind's C/C++ grammar - <AUTHOR> http://blog.robertelder.org/jim-roskind-grammar/ <comment><USER2> This is a dupe of

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

I find it a bit frustrating that I wrote this article in an afternoon and it made the front page twice at once, while things that I spent several months working on don't even get a single upvote. I guess that's a lesson in how marketing works.</comment>


42Floors - Riddle me this?  - <AUTHOR>

<comment><AUTHOR> Why doesn't 42Floors include Dogpatch in their neighborhood pull downs? The Mission is the new Marina; Potrero Hill is new Mission; Dog Patch is about to be the new South Park. Per Curbed and other respectable blogs on the topic of urban regeneration, Dogpatch is exploding, if not exploded. Over 2600 new housing units (sold out) and regeneration of the Illinois Street/20-23rd/Pier 70 for mixed use space.

I'm a promoter of 42Floors but disappointed they aren't leading the customer to where they should be looking. Kudos for their Showroom product. Nice nod to Pinterest like content display. Could use better curation. I offered to help (mix of staging, interior sourcing, product management and CRE chutzpah). Seems perfect right? I was loosely 'if I don't code, piss off'. Big disappointment. I think twice now before referring 42Floors on to the many people I know looking for space. But I still refer them. I'm a sucker for a good idea executed even better.

Caveat: my first HN submission. I read the Guidelines and checked this meets the 'Intellectual Curiosity' criteria. Debatable? Bring it on.</comment>


Show HN: North Carolina's interactive social media archive - <AUTHOR> http://nc.gov.archivesocial.com

<comment><AUTHOR> Some background: We launched this archive with the State of North Carolina yesterday. As far as we know, North Carolina is the first government in the world to make web 2.0 records available to the public in this type of extremely searchable, highly interactive fashion. I say "interactive" in reference to the fact that the records look and behave like the original social network. For example, you can expand comments on Facebook posts, view full-sized photos, expand shortened Twitter links, etc.

I'd love to get your feedback on the presentation of data and the usability of the search interface (I recommend clicking on some of the "Example Searches" to see how it works). I'm happy to speak to the underlying technology as well.

<comment><USER2> Really cool Anil! I can see this dramatically reducing the time it takes and the costs incurred for a government's response to a Freedom of Information Act request.

<comment><AUTHOR> I appreciate it, and you are exactly right. Most governments take anywhere between two to 10 days to even acknowledge a FOIA request. If they are doing anything about social media, then they have to scour through folders of screenshots to find the "record".

</comment></comment></comment><comment><USER3> Great work Anil. I did a quick search on beer brewing (near and dear to my heart) and found great government information from legal quantity to some local resources. This site will be valuable if I ever develop a recipe that I will want to sell. Do yo have any plans to do cross search to set up a regional type archive. For example, if I wanted to sell my beer in adjoining states such as VA and SC.

-Esther

</comment><comment><USER4> Hey Anil, I read somewhere that the way ArchiveSocial does the archiving it somehow preserves that info so that it looks just like it did when originally posted on facebook, twitter or wherever. That's kinda hard to imagine. How does it maintain the look of the particular social media environment the content was posted in?

-Ron Clabo

<comment><AUTHOR> Ron, to clarify, we do present the information back in a way that mimics the original social network, but we don't actually preserve the content pixel-by- pixel. We actually preserve the raw metadata and recreate the look, feel, and behavior. This is in contrast to many other tools that simply capture the HTML presentation from Facebook.com and Twitter.com, but not the underlying data. Our view is that the content should feel very familiar to the user, but that the underlying record and metadata are actually what matters.

</comment></comment><comment><USER5> Great stuff Anil! I think this nails the archival piece of social data. How can this be extended to use the archived data for insights i.e. run data mining algorithms (think SAS on social data). There are few players in that field but if both of these utilities can be coupled, this will be a powerful tool.

<comment><AUTHOR> Agreed. We have some really exciting ideas on how to derive value out of this data, now that we have it in this form. I am curious what kind of analytics you think might be useful to government agencies or companies keeping this data for legal reasons?

</comment></comment><comment><USER6> Very cool to see North Carolina lead the way in implementation of products like Archive Social.

Seems like an easy technology to build, but it doesn't look like your team has taken any short cuts.

Kudos

<comment><AUTHOR> I appreciate the comment. You are right that, on the surface, this is something fairly easy to say you are doing. There are lots of tools like Backupify, etc that store social media content in some way. The problem is that its virtually impossible to make sense of the data later on because most of the context is lost (i.e. comments are not associated with their posts, you cant view the full-sized photos, etc). It's also a challenge to preserve these ever-changing, non-standardized data formats over the course of several years, while maintaining searchability and accurate presentation of the data.

</comment></comment><comment><USER7> It's easy to see the commercial value here. Saves time, saves tons of hassle, creates more transparency. Raises the question... why are so many people talking about "Trout Fishing" in North Carolina :)

<comment><AUTHOR> Ha, thanks for the comment. Funny seeing searches for "trout fishing" increasing on our realtime web analytics :) Speaking of which, we are pretty interested in things like trending topics so that you can see what citizens in a particular geography are discussing. This is a bit different -- and in many ways, more interesting -- than what Twitter does today in regards to trending topics based on location, because discussion on government social networking sites is actually _about_ the region itself.

</comment></comment><comment><USER8> This makes a lot of sense. It will be interesting to see if this has even more value during emergencies and severe weather when normal citizens have to pull their resources.

\- Dave Hadden

</comment><comment><USER9> Incredibly valuable tool. I can see financial companies jumping on this to fill compliance needs if and when they let their reps use social media.

<comment><AUTHOR> Definitely. Financial Services is the flagship market for a solution like this due to SEC and FINRA compliance requirements around record keeping. Imagine not being able to use Twitter, Facebook, or LinkedIn unless you are able to keep records of every interaction for 5 years in a tamper-proof, non-erasable format :)

</comment></comment><comment><USER10> This is a great space for growth; FOIA is getting more and more important and granular across all government. Well done

</comment><comment><USER11> Congratulations, Anil. This is great for both the Government agencies and tax payers.

-Abhi

</comment><comment><USER12> Congrats Anil! We're excited for ArchiveSocial's progress!

<comment><USER13> Anil your representing RTP well!!

</comment></comment><comment><USER14> Where is the CA social media archive?

<comment><USER15> Really, with all the social media companies in San Francisco, I'm surprised a company from NC did this first.

<comment><AUTHOR> Lots of innovation over here in NC :) I suppose most folks are working on the "sexy" side of social media (i.e. marketing/engagement). There are some compliance-oriented startups in the valley, but nothing quite like this that we know of. I guess you could draw some parallels to services like Cue on the consumer side. Maybe some other folks here on HN know better?

And yes, we'd love to be the archive for CA (or SF for that matter).

</comment></comment></comment><comment><USER16> incredibly cool to see this live and makes you realize the market potential.

</comment><comment><USER17> great stuff, Anil!</comment>


Ask HN: review my app for instant "coming soon" pages - <AUTHOR>

Hi everyone!
I'm working on http://soonhere.com. The idea is to provide the simplest possible way for a startup or a web developer to get a temporary "coming soon" page.
I'd really appreciate any thoughts you might have. In particular:
* Is there anything that's not obvious about how the site works? Anything needs explaining, perhaps in some kind of contextual help?
* I'll be introducing a PRO plus plan soon, with more features and higher limits; are there any features in particular you suggest adding?
And the mother of all questions:
What do YOU need from your "coming soon" page? What features would make you pay for it? <comment><USER2> It's not a bad idea but your own front page has way too much information on it. What are we supposed to read first? Have a look through the hn archives for gradual signup patterns. Look at the front pages of some really successful sites and you'll see there's usually just a single call to action. You might also want to switch to a front-page layout that's similar to the kind already widely in use. It's not just that it's good in itself - it's that because many other sites use it, it's clear how to read it: demo video / call to action / bullet point info at the top, more info lower down and below the fold.

This is all totally separate from how well your own service works, but it's just as important, because if you don't get your own front page right it doesn't matter how well your service works.

Oh, and I have a bunch of parked domains, so it's a worthwhile idea.

<comment><AUTHOR> Yeah, you might have a point here. What I was going for was let a visitor play with the controls and preview the page without having to sign up, so I actually had a gradual signup in mind. :)

I'll think about reducing the clutter. Thanks a lot!

</comment></comment><comment><USER3> Great idea with a lot of potential.

I'd strongly consider a complete from-the-ground up rethink of the new-user flow. This may sound harsh, but I'd argue that as the site exists now there is no _clear_ new-user flow. There's no concise path through what's being presented.

If you're stuck, a good exercise is to go grab 5 people and show them the site. Don't explain anything. See what they do. See if they get it. See if they interact with it the way you expect a new, fresh potential user to. (In effect this is what you did by posting to HN, and we're probably a big chunk of your target.)

To be honest, I didn't even try the service because I'm not sure what to do/click:

1\. There's no _clear_ call to action other than the red "create your page now" button, which I'm not going to click if it requires an email address/website, when I don't understand what I'm signing up for yet. "View a sample page", "see demo", might be better.

2\. The most prominent thing that jumps off the page visually is "$9/mo". I think I understand that you're selling a value-added service (which is good), but why don't you hook me on trying the service for free, or pitch me a great demo before showing me dollar signs? Seeing the value-added pitch at the top and in prominent color, before I understand the service is a clear path to my browser's back button.

3\. "try it free for a few days with no obligation" isn't comforting. What happens after a few days? Is the basic "here's a pretty landing page for your soon-to-be-built site" a free service indefinitely? It's _just not clear_.

It's as if you need to step back and consider what _one_ simple goal is most important to you for a new user landing on this site, and then strip away everything that doesn't _directly_ support that. To paraphrase some quote: "perfection isn't achieved by adding, it's achieved when there's nothing left to take away."

I hope the comments here will prove helpful (and not too harsh), and again, great idea. Good luck with it.

<comment><AUTHOR> Actually, the harsher the better. The problem is falling in love with your own idea -- here it was combining:

* the introduction (the header),

* "plans and pricing" page (you've got two blocks: the FREE plan and the PRO plan),

* page creation interface with live preview below, allowing you to create the page and previewing it before signing up.

All of those separately make total sense, but obviously don't work when combined.

Thanks a lot!

</comment></comment><comment><USER4> I think before you start to focus on a pro version, you should get this version ready for attracting an audience.

Your home page is way too cluttered. I don't know what to do, I don't know where to go, I have no idea what the random text boxes are used for.

Also, your homepage just isn't very pretty. The sample at the bottom (which I only found by looking at comments here) looks good though.

My first instinct is to set your homepage to look like your product. A few lines of copy and a big "Click here to make your own" When you click to make your own, it is completely dynamic. If I decide I want an orange background, the page background changes to orange. If I want to edit the text, I click on the text and edit it.

<comment><AUTHOR> Great idea! I think I can see it. I'll have to sleep on it and try to build it tomorrow. Thanks!

</comment></comment><comment><USER5> I was looking for an example of the service, so I was looking for demo or example or tour - I didn't realize the 'Live Preview' link is clickable. Could just be me but I think it should be displayed more prominently and visually look more clickable and perhaps label it better.

And your site should be at least as snazzy as the coming soon page to set a good example - much of the value of your service is in its looks, I'd think.

<comment><AUTHOR> Both good points, thanks. I've done some temporary tweaks to encourage visitors to scroll down for the preview, but after all I believe now it needs a complete rewrite to make it much cleaner -- I was going for "see all you need to see right on the homepage", but obviously it's not a right approach.

Lesson taken: Clicking is easier than scrolling and less _really is_ more.

</comment></comment><comment><AUTHOR> Clickable: <http://soonhere.com>

On a related note: how many unused, parked domains do you own?

</comment><comment><USER6> I agree with the other comments on the UI, so i wont repeat. As for additional features, add some social media links after signup, maybe a "thank you" email, and an option for multiple landing pages for testing.

I didnt see in the demo, where does the collected data get stored?

<comment><AUTHOR> After you sign up, there's a "gathered emails" pane for every site in the admin panel; you can export all of the data to CSV or only emails to plain txt.

Good feature ideas. I'll look into that after I fix the homepage.

Thanks!</comment></comment>


Why 50-50 equity splits between co-founders are extremely dangerous - <AUTHOR> http://www.geekwire.com/2012/zillows-rich-barton-5050-equity-splits-cofounders-dangerous

<comment><USER2> This is silly. If you were the sort of person that needed to control the business (or me to control it for you) then I do not want to work with you.

I have held 50% of the shares of an active company since 1988 - and never a cross word. My counterpart and I have always respected the others foibles, weaknesses and strengths and thus we are still going strong.</comment>


New newsletter focusing on "special situations" VC - <AUTHOR> https://badazinnovazion.substack.com/p/coming-soon?r=5kyeg&utm_campaign=post&utm_medium=web&utm_source=copy <comment><AUTHOR> Dry satire</comment>


Running your own secure communication service with Matrix and Jitsi - <AUTHOR> https://matrix.org/blog/2020/04/06/running-your-own-secure-communication-service-with-matrix-and-jitsi <comment><USER2> Extinction Rebellion switched to Jitsi, Matrix etc. From the slide at t=2078:

                      *.organise.earth
                     *.rebellion.global

                          OWN3D           OWNED (self hosted)

      Team Chat           Slack           Mattermost (Team Edition)
      Cloud Storage       Google Drive    Nextcloud (2 instances)
      Collaborative docs  Google docs     Only Office Etherpad-Lite
      Surveys             Google Forms    LimeSurvey
      Video Conferencing  Zoom            Jitsi-Meet
      Webmail             Gmail, etc      Rainloop (Postfix, Dovecot)
      Collaborative Dev   Github          gitlab
      Mailinglist manager Mail Chimp      Mailtrain
      Actions/Operations  WhatsApp, Skype Signal, Wire
      Social              Twitter         Mastodon
      Video               Youtube         Peertube
      Site                                Jekyll
      Admin Gender        Bros            Any

[https://media.ccc.de/v/36c3-11008-server_infrastructure_for_...](https://media.ccc.de/v/36c3-11008-server_infrastructure_for_global_rebellion#t=2078)

> _In this talk Julian will outline his work as sysadmin, systems and security > architect for the climate and environmental defense movement Extinction > Rebellion. Responsible for 30 server deployments in 11 months, including a > community hub spanning dozens of national teams (some of which operate in > extremely hostile conditions), he will show why community-owned free and > open source infrastructure is mission-critical for the growth, success and > safety of global civil disobedience movements._

<comment><USER3> I am on board with this stack 100% and have been recommending Mattermost myself. Imagine my disappointment when I found out that Mattermost, even the self-hosted one, is spyware.

They call it "Diagnostics" to hide its true purpose, but really it's phone- home. Silently and with _no_ notification, on f/oss self-hosted software; it's really a letdown.

To disable it, you must use the following entirely undocumented environment variables:

        MM_LOGSETTINGS_ENABLEDIAGNOSTICS=false
        MM_SERVICESETTINGS_ENABLESECURITYFIXALERT=false

I go the further step of using a small Dockerfile that contains the following to patch the binary itself:

        FROM mattermost/mattermost-team-edition:latest
        RUN sed -i 's#api.segment.io#xx.example.com#gI' /mattermost/bin/mattermost
        RUN sed -i 's#securityupdatecheck.mattermost.com#xxxxxxxxxxxxxxxxxxxxxx.example.com#gI' /mattermost/bin/mattermost

<comment><USER4> You might want to consider Matrix, where admittedly we do have phone-home stats, but you have to explicitly opt in to them during installation if you want to participate. ([https://youtu.be/dDddKmdLEdg?t=605](https://youtu.be/dDddKmdLEdg?t=605) in the video in the original post here)

<comment><USER5> If you use the Matrix identity server, which is required to have federation, the 3rd party identity server operated by the Matrix organization retains a list of your usernames. They don't tell you up front about this, either, and I think silently leaking a username list is pretty bad. You have to really pay attention during setup to realize that the federation technology relies on a bastion operated by matrix.org.

The identity server is optional and you can use your own, but you will lose the federation that Matrix is so proud of, and the instructions to set up the reference home server don't make it clear that this is necessary in order to avoid a leak of your users' identities.

[https://vector.im/identity-server-privacy-notice](https://vector.im/identity- server-privacy-notice)

<comment><USER4> Fwiw, this is pretty much entirely untrue.

> Matrix identity server, which is required to have federation,

The identity server is __not __required to have federation to work. All it does is let you __optionally __discover users on Matrix by their email address or phone number.

> 3rd party identity server operated by the Matrix organization retains a list > of your usernames.

Not sure what this means, but the identity service does not retain a "list of your usernames". All it does is keep track of email->matrix ID mappings for users who have published them. When you look up an email address (or phone number), a hashed representation is sent to the service, and even then, they're not retained.

> They don't tell you up front about this

We do; to use the identity service you have to click through a very explicit GDPR terms of use which explains precisely how it works. You only get prompted with this when you actually use the identity service though (i.e. when inviting someone by email address) which might be why you've never seen it, however.

> You have to really pay attention during setup to realize that the federation > technology relies on a bastion operated by matrix.org.

Again, Matrix federation does not depend on identity servers (and I kinda wish we'd never even implemented the feature, given how confused and upset people get about them).

[https://matrix.org/blog/2019/09/27/privacy-improvements- in-s...](https://matrix.org/blog/2019/09/27/privacy-improvements-in- synapse-1-4-and-riot-1-4) goes into this all in much more detail.

<comment><USER5> I'm sorry if I was unclear, but

> All it does is keep track of email->matrix ID mappings for users who have > published them

This is what I mean by "it leaks the userlist." Matrix (the organization) stores the email addresses of my users, along with some mapping that could allow Matrix the organization to correlate email addresses with my server. To me, as a server operator, this is a deal-breaker, even if it was just email addresses with no mapping. I see this as a privacy violation against my users who trust me to hold their information privately and securely. My understanding is that you cannot join another Matrix homeserver server with an identity established on a homeserver disconnected from the vector.im identity server, which effectively forces the homeserver operator to use the vector.im centralized identity server if you want, as an end user, to actually take advantage of federation. I do not know how a user is supposed to take their login from one homeserver to log into another one if the first homeserver is not connected to vector.im.

Please correct me if the above is wrong.

Additionally, when I set up Synapse I was not presented with any kind of GDPR info, and it wouldn't make sense that I would be, because the GPDR is for end users, not site operators. Maybe this is presented to new users who connect to the public reference Synapse instance using Riot.im or something, but I'm not talking about this issue from the perspective of an end user, I'm talking about it from the perspective of a homeserver operator. I got about halfway through the homeserver setup before I realized that vector.im was necessary for identity lookup and I realized it only by carefully following the docs. This was long before the 9/27/2019 blog post was published, so I guess maybe this has been addressed somewhat. I have been following Matrix now for the better part of a decade.

If federation is possible without identity mapping done on a central server, then I too wish that identity mapping was never implemented.

<comment><USER4> > Please correct me if the above is wrong.

Yup, this is still wrong, sorry.

> My understanding is that you cannot join another Matrix homeserver server > with an identity established on a homeserver disconnected from the vector.im > identity server

This is not true. The identity server is an _optional_ feature, which users can use if they want to try to discover a user's matrix ID based on their email address. Matrix itself operates using matrix IDs to federate and establish conversations.

A good analogy is using LDAP as an address book in an email client. LDAP addressbook lookups are very clearly optional, not relevant to all people, and don't stop email itself working.

> Additionally, when I set up Synapse I was not presented with any kind of > GDPR info, and it wouldn't make sense that I would be, because the GPDR is > for end users, not site operators.

Because the identity server is an optional feature for _users_ (just like a _user_ , not a sysadmin, would configure LDAP lookups in Thunderbird), the GDPR terms of use are shown to users if they try to use an identity server to make sure they understand what they're doing.

<comment><USER5> Well then I'm glad that the blog post linked above was written, because obviously this situation was confusing when I set up Synapse a couple years back. I might not be a genius but I'm not stupid, either, and I'm obsessed with chat systems (I trialed every available self-hostable chat server at the time), so I guarantee if this confused me, it confused plenty of perfectly intelligent individuals.

I hope the team has clarified this in the documentation.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Here are some text instructions: [https://github.com/jitsi/jitsi- meet/blob/master/doc/manual-i...](https://github.com/jitsi/jitsi- meet/blob/master/doc/manual-install.md)

Instead of generating the certs with prosody (there was some issue since my system uses p11-kit), I found it easier to just generate them all with certbot. update-ca-trust doesn't seem to correctly add them to the Java keystore and then you'll encounter problems. Certbot does. If you're on a debian based distro you shouldn't have to worry, however.

All you really have to do is copy/paste configs and then also change the url in the config.

Here's the process for adding the certs using p11-kit. [https://github.com/jitsi/jitsi- meet/issues/2842#issuecomment...](https://github.com/jitsi/jitsi- meet/issues/2842#issuecomment-385284622) and the comment below.

</comment><comment><USER7> Any suggestions on simple auth methods to avoid running an open Jitsi server?

Last time I tested it, it seemed to be very open by default, letting anyone create meetings. I got lost when digging deeper.

If I install-and-forget, I want to avoid situations where strangers are using my Jitsi server and overloading the system, or pretending to be our company. Last I checked, it was not possible to have simple auth, or monitor/list calls.

I also run an Asterisk VoIP server with a WebRTC bridge (because most Linux SIP clients have terrible usability). That can make one pretty paranoid :)

<comment><USER8> Yes, I installed Jitsi Meet over the weekend and enabled auth so you need credentials to start a new conference, but anyone with the link (and optionally password too) can join unauthenticated.

I followed these instructions to add the auth [https://github.com/jitsi/jicofo#secure- domain](https://github.com/jitsi/jicofo#secure-domain)

</comment></comment><comment><USER9> I think I may have found a typo in the instructions. Under the section for setting up the Matrix .well-known info, shouldn't the line:

      cat '{ "m.server": "matrix.dangerousdemos.net:443" }' > server

be echo '{ "m.server": "matrix.dangerousdemos.net:443" }' > server instead?

<comment><USER4> oops, my bad - thanks! [https://github.com/matrix- org/matrix.org/commit/42e8a90932ae...](https://github.com/matrix- org/matrix.org/commit/42e8a90932ae8f455221dea652e18ecd19b1692d). CI will pick up the fix in a few minutes.

<comment><USER10> Im following the instructions and getting all 404 pages after I install Synapse, nginx and ssl are all good, I am missing something?

I assume its my server block, but I have made many changes / adjustments and still getting a 404 on all my pages??

<comment><USER4> you might have forgotten to set the proxy_pass on the synapse vhost, or create directories for the riot vhost?

<comment><USER10> I followed the video on the link and finally sorted it all out. I was doing a few things wrong!

</comment></comment></comment></comment></comment><comment><USER11> Does someone have experience running Jitsi with 4+ users? Like in conferences with maybe up to 12 people? Can it handle it?

<comment><USER4> We regularly run it with 40-50 users, and it's fine... as long as you limit the number of displayed video streams to 12-15 or fewer. This tends to happen organically with people muting video, or otherwise you can configure Jitsi to limit it to show video for the last 12 people who spoke.

Otherwise you risk overloading people on devices which can't render >12 simultaneous video streams without melting. You can push the limit higher if you know everyone is on a fast machine however.

One thing worth noting is that if a one or more user connects via Firefox then quality degrades for everyone - but fixes for this look to be in flight over at [https://github.com/jitsi/jitsi- meet/issues/4758](https://github.com/jitsi/jitsi-meet/issues/4758)

<comment><USER12> What server resources to you need for those 40-50 users with Jitsi/Matrix? I haven't seen estimates of required resources when I've looked, but I assume there's some doc somewhere. (Thanks for the good work.)

<comment><USER4> Roughly speaking we're seeing Jitsi serve around 1000 concurrent streams (i.e. 25x 50-user conferences) on a typical 4 core box with 8GB of RAM. However, it's worth noting that Jitsi is pretty low resource - all it's doing is forwarding streams of data around the place. All the heavy lifting is done by the clients when displaying all the concurrent videos, so it's the clients which tend to be the bottleneck.

</comment></comment></comment></comment><comment><USER13> Tangentially, I wanted to run Jitsi Meet for some meetings and created an account on Digital Ocean, only for the account to be promptly locked with no access to a human for support...just automated replies rehashing the same text again and again for tickets saying that I could provide more information if I believed that was in error (with no responses after providing additional information). Now I'm looking at trying Linode. Any other provider recommendations are welcome.

<comment><USER14> I am using a hetzner.cloud box for €5.88/month for a personal Jitsi instance without problems. There servers are in Europe though, so if you are somewhere else on the globe, it might be better idea to look for a provider which is geographically closer to you

<comment><USER15> Thinking about doing the same. Any experience with how much load those cloud instances can take?

<comment><USER14> Depends on the instance I guess, but a few dozen users on a cx21 seem to be no trouble at all. As someone else already mentioned in this thread, Jitsi does no transcoding server-side and is pretty low on resources.

<comment><USER15> Thanks for the feedback. Estimating resource use for these kinds of service seems to be really hard.

Thought about running it semi-public for my homewtown/area to support businesses, but how many of the 350k people will join? Or be concurrent users?

Quite a few question marks for me...

<comment><USER16> Start small. Failure is cheap. Worst case, you seek out local sponsors for a dedicated server in donated colo somewhere nearby. Even if it doesn't take off, you'll have learned from the experience.

<comment><USER14> That's a good suggestion as well. If the plan is to run this instance as a non-profit for local users, it might also be possible to ask local ISPs to sponsor a box. That could help keeping traffic local and latencies low.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> What does matrix add to jitsi? Jitsi is already easy to run over https. Does this make it so you can't randomly enter rooms if you know the name and there is no password set?

<comment><USER4> Matrix adds featureful decentralised e2e-encrypted chat alongside the voice/video conferencing, and makes it possible to coordinate the location of a given conference for a given room. It doesn't impose additional auth currently to the conferences (but it could). It also maintains your displaynames & avatars for you inside the Jitsi :)

<comment><USER18> Are the e2e-encrypted chats enabled by default?

</comment></comment></comment><comment><USER19> What would the hardware requirements for such a stack be?

Last I read was that synapse requires a lot to memory and I guess that managing audio/video streams will be cpu intensive.

<comment><USER20> I have an old R710 with 24 cores and 32GB I got on ebay for $200 in my dining room with 10mbits upload/100 download and it works great. bought my .me domain for $5. It's a wonderful time to be alive.

<comment><USER21> For how many users?

<comment><USER22> I've run 10-12 users with video and desktop screen sharing on a 6 core azure vm with between 20-30% cpu load with spikes to 46%. It also depends a bit on the adaptive bit rate. Image quality of FaceTime is higher than Jitsi.

</comment></comment></comment></comment><comment><USER23> I hope those things are much better than they used to be. Last I looked, they were a bunch of APIs glued together to look like a media server. No hard features; no guarantees. Almost a mockup of what a media switching server should look like on the outside; nothing inside.

</comment><comment><USER24> > The installer magically detects you have nginx installed and adds in an > appropriate vhost!

Yes, because those of us who run their own vidconf setup want automagically mangled nginx configs.

Other than that, thank you for the guide.

<comment><USER20> ...I kinda thought it was neet-o

<comment><USER25> Like a Dorito!

</comment></comment></comment><comment><USER26> I operate a matrix server but I recently found Jami which supposedly is p2p encrypted. Does anyone use it? Downsides?

[https://jami.net/](https://jami.net/)

<comment><USER27> I tried it a while ago and message delivery took minutes between me and a friend. It also won't do well on Android versions that kill background tasks and effectively force you to use Firebase Cloud Messaging for push (although you can't really blame it for that).

</comment></comment><comment><USER28> So, what are the lines I need to add to my docker-compose.yaml ;)

<comment><USER4> This was deliberately the Debian package flavoured installation. We'll probably do a Docker one too (which will likely be a lot faster, but also a lot more mysterious as to what's actually going on :)

<comment><USER29> It'd be really cool if you could also add how to setup federation :).

edit: for docker with synapse living on subdomain.domain.tld and addresses like @user:domain.tld, I don't know ^^.

<comment><USER30> What you want is named delegation and there is a document about it in the synapse repository:

[https://github.com/matrix- org/synapse/blob/master/docs/deleg...](https://github.com/matrix- org/synapse/blob/master/docs/delegate.md)

Just in case you weren't already aware of it :)

</comment></comment></comment></comment><comment><USER31> Has anyone done a recent comparison of Jitsi and Janus? The only benchmark I can find is from 2018 and seemed a bit shallow. I'd be interested in seeing which one could deliver the best performance while running on a really cheap EC2 box. My guess would be Janus, since it's C and Jitsi is Java, but maybe Jitsi has something about its architecture that gives it an edge.

</comment><comment><USER32> Why is Jitsi needed exactly, or it's handling server side video multiplexing? Matrix itself doesn't support it?

</comment><comment><USER33> Hi guys and thanks for this tutorial. Has I'm new to docker and synapse but I would like to setup the same thing using docker but I'm not finding a clean step by step tutorial on how to do this.

My goal is to set in way I could use docker swarm in future. Any advises or links? thanks in advance

</comment><comment><USER34> I have had a matrix instance on one of my servers running but integrating Jitsi was a real pain. And even when the integration is done correctly the user experience of using it within Matrix is at least weird. It appears as an "attachment" in the conversation and is very non-intuitive for everyone.

<comment><USER35> Jitsi is much easier to add in the latest Riot-web version. No longer do you need to set up your own integration manager. You just add the jitsi URL to Riot's config.json and you're done.

</comment></comment><comment><USER36> I just setup my own Jitsi server at Digital Ocean. It was easy and it works well.

My only tip is that you really have to get the DNS name right. There is no easy way to change it post install. I had a typo on the first pass.

Next step is securing the launch screen. Since it sits behind NGINX, do the configuration there.

</comment><comment><USER37> Can Jitsi be used as a streaming server?

A small number of people in a call, 3-5, streaming to thousands. Live podcasts etc?

<comment><USER38> There is a document on how to live-stream to YouTube: [https://jitsi.org/live- streaming-and-recording-a-jitsi-confe...](https://jitsi.org/live-streaming- and-recording-a-jitsi-conference/)

<comment><USER37> Okay so jitsi can't be the "youtube" itself?

<comment><USER39> youtube and other steaming platforms use a lot of servers to handle the load, so no jitsi can't be youtube itself unless you have a beast of a connection and even then you'd cap your connection after a hundred users. CDNs like cloudflare does the same but for websites.

<comment><USER37> I already have a lot of servers. I was asking if jitsi is server side software that can handle the encoding / delivery to users. The answer is no. Jitsi is apparently completely unscalable.

<comment><USER40> _Jitsi is apparently completely unscalable._

Is this intended as a criticism? You wanted it to do a job it was never designed to do.

<comment><USER37> It's not a criticism, just a clarification on what its job is.

</comment></comment></comment></comment></comment></comment></comment><comment><USER41> For self hosting .. is there some sort of a guide available that helps understand the resourcing needs relative to concurrent active users?

I'd like to hop on this, and think it will work great, but would like to make sure there's a way to right size a particular installation.

<comment><USER39> see comment bellow [https://news.ycombinator.com/item?id=22804464](https://news.ycombinator.com/item?id=22804464) and other comments talk about it too

</comment></comment><comment><USER42> Is there a way to integrate a phone call-in number to Jitsi? Maybe via Twilio or something?

<comment><USER9> I haven't tried it myself but according to the FAQ:

"Jitsi offers a telephony interface that allows users to dial into a conference or for placing dial-out reminder calls. You can try this for free on meet.jit.si. Self-installed Jitsi Meet deployments will need to setup and configure Jigasi with a SIP provider to connect to the phone network. "

[https://jitsi.org/user-faq/](https://jitsi.org/user-faq/)

</comment></comment><comment><USER43> Can anyone comment on if this will run successfully on a raspberry pi 3 for a small number of users (<10)?

<comment><USER44> Many people do just that, but it really depends on what you use it for.

Synapse resource usage is dependent on the complexity of the rooms that it participates in, not the number of users.

So if you intend to use it just to talk to a few friends, you'll have no problems at all. If you want to join rooms with 1000s of other servers participating then it will be hungrier.

</comment></comment><comment><USER45> It's still a ways to go for non technical users. We tried Jitsi to mixed success. Some people had it work flawless the first time, others had to switch browsers, still others couldn't use it at all, probably because of some privacy or cookie blocking extension.

Open source software needs to be as easy to use and configure as the alternative if they really hope to gain wise adoption.

<comment><USER46> Are there any good guides on self-hosting this for private family group chats on a home machine or something similar?

<comment><USER47> I've done this recently - follow the vultr guide [https://www.vultr.com/docs/how-to-install-jitsi-meet-on- ubun...](https://www.vultr.com/docs/how-to-install-jitsi-meet-on- ubuntu-18-04-lts) then the jitsi docs to secure your meetings as required [https://github.com/jitsi/jicofo#secure- domain](https://github.com/jitsi/jicofo#secure-domain) . Then you can use basic Auth in nginx [https://docs.nginx.com/nginx/admin-guide/security- controls/c...](https://docs.nginx.com/nginx/admin-guide/security- controls/configuring-http-basic-authentication/) to secure the site.

</comment></comment></comment><comment><USER48> is there any way to transfer e2e chats from matrix.org homeserver account to my own server?

<comment><USER49> Just join the chats from your server, they will exist on both matrix.org and your server. Then you may leave with your old matrix.org account.

As for history, you could just import your key backup, if the room history is set to visible. Truly decentralized accounts will likely come at a later point, especially with all the work surrounding p2p matrix, where each p2p client is a server.

<comment><USER48> I've tested this with a couple of test accounts. By default the e2e rooms history are set like this:

Who can read history?

Members only (since the point in time of selecting this option)

but this option doesn't seem to work for me. The history didn't synchronize when i added my own homeserver account and verified it with other accounts - do i need to import the keys from the old account first for it to show up or am i misunderstanding how this option works?

<comment><USER35> As of recent Riot/web versions old messages that can't be decrypted in rooms will not be shown (saves the user from being blasted with Unable to Decrypt errors).

So the messages are likely there, but you won't see them until you import your e2e keys.

<comment><USER48> Some messages got reordered but other than that it works! Thank you

</comment></comment></comment></comment></comment><comment><USER50> Jitsi despite its frequent re-occurence here is a nightmare to configure with so many bells & whistle to setup just one basic functionality. Try setting it up with word-to-word instructions for setup & later SSL certs to work on your own iOS app of Jitsi meet without ripping your hair out.

<comment><USER51> This hasn't been my experience at all. Setting it up on a VM using their installation instructions ([https://github.com/jitsi/jitsi- meet/blob/master/doc/quick-in...](https://github.com/jitsi/jitsi- meet/blob/master/doc/quick-install.md)) was very easy.

<comment><USER17> Super easy for me. I followed the instructions to setup on Ubuntu and it was ten minutes with zero confusion. Just copy the steps from the guide. Even the let's encrypt script installed certbot and configured whatever was needed with the existing web server.

Then I just hit the url and it worked perfectly.

The biggest surprise was when I tried to access that same page from an Android phone. It prompted me to install the jitsi app. After I installed it, it directed me to my jitsi server.

For me it was flawless and even better that I expected. It's a strong competitor to zoom because of the fact that it works right inside the browser really well.

<comment><USER50> Android isn't the problem, I mentioned iOS. I know WebRTC works and all starting iOS 11, but the problem remains with the way Jitsi configures SSL in the nginx conf. iOS Safari is simply unable to establish a secure connection despite the server having a valid LetEncrypt cert.

<comment><USER52> Hey there, saghul from Jitsi here. Have you reported that to us? I have deployed several self-hosste instances with Lets Enccrypt and haven't seen this, but there might a bug lurking somewhere.

<comment><USER53> There was a version of nginx that broke TLS for Safari when HTTP/2 is enabled. This was a number of years ago now and I'm sure isn't happening on new versions.

<comment><USER50> [https://github.com/jitsi/jitsi- meet/issues/5649](https://github.com/jitsi/jitsi-meet/issues/5649)

</comment></comment></comment></comment></comment></comment></comment><comment><USER54> any recommendations on an sufficient instance size for 4-5 people to use it for comms?

<comment><USER55> I've been running it on a 4 core, 8GB ram droplet at DigitalOcean with no problems. We typically have 3-6 people in multiple sessions at the same time. In the test install, I did it with a $10 droplet, and it stuttered with 30 people in one conference, but didn't drop anyone.

</comment></comment><comment><USER56> There's also rocket chat! I love matrix, don't get me wrong...

</comment><comment><USER33> h</comment>


A compiler made only from PEG-based transformations for all stages - <AUTHOR> http://www.vpri.org/pdf/tr2010003_PEG.pdf

<comment><USER2> Anything by Ian Piumarta is worth reading, and this is no exception. <http://piumarta.com/>

Also, for those interested in minimalism, VPRI has a project to recreate the entire computing world with 20k lines of source (logic, os, compilers, gui, etc.) They're doing a very interesting and very swell job so far. This appears to be related to that project.

<comment><USER3> The SODA stuff will easily advance computing by a few decades.</comment></comment>