Getting Computer Science Into Middle School - <AUTHOR> http://www.avc.com/a_vc/2009/12/getting-computer-science-into-middle-school.html <comment><USER2> I disagree. I am glad that schools do not teach computer science. Can you imagine what bastardized "Computer Science" they would teach if they tried? You want the same people who brought you "New Math", who teach the beauty of mathematics as a brute-force memorization exercise optimized not for comprehension but for easy testing, and who are blown about by educational fads like a feather in a breeze, to teach computer science?

What would such a "computer science" look like? I don't know, but the odds of it being actively anti-educational are far too high for my liking. Can you imagine what a computer science optimized for testability would look like? I can see it now:

"Fill in the blank with the correct variable name."

"Organize these lines of source to correctly sort the list."

"Find the thirty-three keywords of $CRAPPY_LANGUAGE_WE_STANDARDIZED_ON_TWENTY_YEARS_AGO in this word scramble."

"Which of the following is the definition of 'strong typing'? A: wrong answer B: wrong answer but defendable C: essentially wrong answer from 30 years ago the curriculum officially calls correct D: a more right answer than C but still wrong"

<comment><USER3> By that logic, we shouldn't teach chemistry or physics in schools either.

I would have loved to have been exposed to some CS in school. For some reason, my otherwise rather privileged schooling didn't feature any computing, and nobody in my direct environment did any. Only after starting a Physics undergrad did I meet some proper hackers, and years onwards I still feel like I'm years behind on them.

<comment><USER2> "By that logic, we shouldn't teach chemistry or physics in schools either."

I'm pretty comfortable with that conclusion.

Anti-teaching, the teaching of things that are actively misleading about the nature of the subject or even actively wrong, is a bad idea. It doesn't matter how much "prior art" it has. It doesn't matter how much we have to just fill time while the students are sitting there. It doesn't matter whether there isn't a "better choice", because _nothing_ really is a better choice than anti-teaching. Anti-teaching is a bad idea.

Besides, ask around. Ask your non-geek friends simple, basic physics questions. If you like, even ask if they took physics in high school. If the goal of physics is for students to pass a test in school, we're OK. If the goal of physics is to give the general public an understanding of simple, basic Newtonian physics... we _already_ aren't teaching physics, we're just going through the motions. The "threat" you raise is already the situation we are in.

</comment></comment></comment><comment><USER4> "We continue to teach our kids French but we don't teach them Ruby On Rails. Which do you think will help them more in the coming years?"

Asked that way, I'm not so sure the question has a definite answer. French will still be French by the time today's middle school students graduate from college, but Ruby on Rails just might be old-fashioned technology by then. And maybe the paradigm of programming in general will have changed by then more than any modern language has changed. I'm not disparaging computer science as a subject of study--in fact my oldest son did learn more computer science in middle school (mostly C through the Eric Roberts texts used by the EPGY distance learning program

<http://epgy.stanford.edu/courses/cs/>

but also Logo) but foreign language study is important too. As another article submitted in the last few hours points out, schools don't teach nearly enough mathematics these days, either, so the whole curriculum has to become more efficient to squeeze in one more subject.

I homeschool my children to have more flexibility to choose better curricular materials and to have efficiency in teaching so that my children devote the most time to the subjects they NEED the most time for. That allows them to learn programming at middle school age while also being bilingual and well practiced in writing and mathematical problem-solving.

<comment><USER5> I've 'lost' more potential jobs due to not being able to speak French than not knowing Ruby. Also I'm pretty sure I can become competent in ruby on rails a lot faster than I can become competent in French.

<comment><USER6> Competent, sure. However you can learn a spoken language much faster then people imagine. You could have conversations in french by christmas next year with some basic courses, a good software, some tenacity and a 2 week vacation.

</comment></comment></comment><comment><USER7> I think this is _really_ , _really_ important. We start teaching students the foundations of chemistry, physics, and various areas of mathematics as early as Sixth grade, but Computer Science is largely ignored. Hell, it's hard enough to find a decent CS curriculum in High Schools. Students who would never dream of studying computing might find that they have a passion for it if they are exposed to it early enough (in a kid-digestible way, of course) I remember reading a study (I wish I could find it to cite) that showed that students who were exposed to CS courses early were more likely to have a favorable opinion of the field ("it's not just for nerds") Finding people who are capable/willing to teach CS is one of the biggest problems here, I think.

<comment><USER4> _I remember reading a study (I wish I could find it to cite) that showed that students who were exposed to CS courses early were more likely to have a favorable opinion of the field_

I grew up in an era when BASIC was a standard part of the curriculum at many junior high schools, and I had a nominal course in computer science in high school also. But both were deadly dull. Sometimes it's better for children to learn a subject directly from hobbyists or professionals (as did several of my high school classmates who became professional computer scientists eventually) rather than from clueless schoolteachers who teach the course in desultory fashion.

<comment><USER7> I definitely agree. Introducing the material isn't enough, there have to be quality educators who are also knowledgeable of computing. You mentioned hobbyists and professionals and I think this is a fantastic idea. Actually, Georgia Tech's College of Computing has a program designed to take out of work IT professionals and help them become teachers: <http://bit.ly/17xgiT> [cc.gatech.edu] Pretty neat.

</comment></comment></comment><comment><USER8> I think the important learning for the child's development is how to think algorithmically or within the confines of a determined system. That application of systemic thinking to solve problems is so valuable in many ways throughout life, from determining how other systems work to just making smarter guesses about how to use new objects you've never seen before. Regardless if it's taught as theory, applied projects, or whatever, that's the really valuable skill IMO.

Algorithmic/systemic thinking, combined with the basic principles of physics do wonders to get you through problems that life throws at you.

</comment><comment><USER9> To throw in some personal experience to the discussion, I went to an elementary school where we were taught BASIC (in addition to a lot of 'practical' classes that aren't included in most American public schools). I can definitely see how some of the problems people are talking about would arise, but as a direct result of that and similar classes, I and several of my friends picked our careers very early on, taught ourselves what we needed to know, and landed our dream jobs before we were even close to college. We had a practical hobby, excelled at math, and have done quite well for ourselves.

I really wish the public schools where I live now would step up to the plate and teach some more practical stuff. I really feel a lot of the kids are wasting their time with stuff they don't really enjoy, and don't need to be taught over and over again.

</comment><comment><USER10> I know for a fact that every middle school in my immediate area teaches computer programming of some kind. It's an elective but it's available.

As for it being required of every student I don't know that I agree with that. I work with "non-computer" people who I swear to you lack basic problem solving skills (by their own admission they are "emotionally intellegent"). I'm not sure those people would be capable of understanding and implementing the basic logic structures needed to program and I'm not sure it's fair to set them up for failure.

I think this is the reason that classes like Physics are also elective. Everyone should have a basic understanding of Physics but I'm not sure you can require that of people who aren't math inclined (remember you can graduate High School having only taken first year algebra)

</comment><comment><USER11> When I attended middle school there was a mandatory programming class. We all got to program in BASIC on some Apple computers. That had a pretty lasting influence on me, and may very well be responsible for my career path.

I also just recently finished teaching an after school program on using Scheme to program a (simple) computer game at a middle school. While it was only a 10 week program that met once a week, I think we had a fair degree of success.

</comment><comment><USER12> I was introduced to programming in 5th grade (around 1990) where we made our own adventure games in computer class using World Builder (<http://en.wikipedia.org/wiki/World_Builder>) on 9-inch compact Macs. Everyone in the 5th grade took that class. The programming section was a small part of the whole curriculum and was presented in a way that everyone had a pretty good time with it.

</comment><comment><AUTHOR> I think it's a good point but it shouldn't go to the other extreme either. A lot of people would hate computer programming, so they shouldn't be forced to do it. The focus should be on teaching well and helping kids who are interested to develop the skills.

</comment><comment><USER13> Related:

[http://blog.computationalcomplexity.org/2008/12/teach- everyo...](http://blog.computationalcomplexity.org/2008/12/teach-everyone- programming-guest-post.html)

</comment><comment><USER14> From what I remember of middle school, they DID teach us a little comp sci. They taught LOGO for about a week. Seemed pretty fun. It was at least mostly competent from what I can remember.</comment>


Obama's Budget: How $3.7 Trillion is Spent (Treemap) - <AUTHOR> http://www.nytimes.com/packages/html/newsgraphics/2011/0119-budget/index.html

<comment><USER2> The size of interest payments on public debt relative to the entire US federal budget is quite astonishing. That's the reality of running a budget deficit for more than ten years.

<http://en.wikipedia.org/wiki/United_States_public_debt></comment>


Aristarchus of Samos - <AUTHOR> http://en.wikipedia.org/wiki/Aristarchus_of_Samos

<comment><USER2> "He presented the first known heliocentric model of the solar system, placing the Sun, not the Earth, at the center of the known universe." Sweet!</comment>


There's food for thought at Justin.tv (Inside the YScraper) - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/04/08/BUGKNP3USS1.DTL&hw=justin+tv&sn=001&sc=1000 <comment><USER2> Ycombinator and its progeny are getting an amazing amount of PR these days. It's certainly part of the Web2.0 zeitgeist now. Did you see the list of startups at the end of the article in the "Yscraper"? pg had an essay on this PR placement. I wonder which firm handles Y's PR.

After justin.tv has gone bust, its value will have been how much attention YC has received because of it. Kind of like a loss-leader for YC's stable of startups.

<comment><AUTHOR> We don't have a PR firm. I think that reporter was introduced to the Justin.TVs by another YC startup. That's probably the reason there's so much press: each startup introduces reporters to the other YC startups. There are now 39 of them, so that's a lot of introducing.

</comment></comment><comment><USER3> This is sad. I've always thought of cooking as an ordinary hacker passtime, like juggling or reading. Many of the coolest nerds I've hung out with are borderline foodies, though constrained by time and money, and nearly all are on the healthy side of Ayers's split.

If the article isn't misleading, I wonder what's going on. Are the YC guys just too busy? But they have time to shop (they just shop badly) and cooking catalyses productive conversations. Did they never learn to cook? But they must have parents, and the internet has a million recipes. Is there an obvious reason why food-oblivious people would end up at YC?

<comment><USER4> My stereotype is exactly the opposite: hackers and nerds are going to be malnourished or overweight, but less likely to be of healthy proportions. I'm certainly well overweight myself.

I'd be intrigued to hear what "they must have parents" might have to do with it. :)

<comment><USER3> I'm a little overweight too, but I think it's because I eat too much, not because I eat junk. And, at the risk of mapping "hackers and Xers" over every X in sight, I think jward is right: cooking feels noticeably like coding.

Maybe I'm just from Mars (i.e., not suburbia) again, but from what I've seen most parents who can afford to let their kids be nerds also teach them what a kitchen is for. This can be as passive as not making breakfast when they wake up at three on a summer afternoon. My mom never sat me down and said "this is how you make an omelette" or whatever, but she made the information available and I learned it because it was useful.

It's not that people who can't cook must have bad parents, it's just that when you see lot of them in one place you start wondering why.

<comment><USER4> Here's a thought. You say cooking feels like coding to you. It doesn't at all to me. One major difference for me is that when you make a change while coding, you can see instantly what the difference is; there's no delay. In cooking, you often have to wait for minutes after a change to see if it was a good change. But after thinking about that, it dawns on me that cooking _is_ like coding, if you're using a language that requires a separate compile step. I've always avoided those languages (all my experience is in interpreted languages, except for CL, which still has no requirement for a length compile step).

Anyway, less fancifully, I think there's a culture difference, here. If you grew up in a house where there was always a hundred things you could nuke for breakfast, why would you ever learn to cook unless you were especially interested in one dish that had to be cooked?

Lastly, I was a nerd when growing up, and we were pretty much the poorest people in the trailer park. My father knew how to cook hamburger helper and most anything else with instructions on the box or can, but I cook far more than he did when I was growing up. There's still always a strong temptation to just grab a bag of chips instead of making a meal, but my wife gets unhappy if I do that more than once or twice a week. :)

</comment></comment></comment></comment><comment><USER5> I think applied justin.tv would be compelling. That is, people would broadcast their life for a specific purpose, such as finding a job, date, etc.

<comment><USER6> I don't watch television, and I know many of you don't... but isn't this exactly what reality TV has been doing? Not that this idea doesn't have a lot of potential yet.

</comment></comment><comment><USER7> Holy. I don't really get it. If the weeblies save up on ice cream they can at least buy some uh... healthier food. The fats and lactates in ice cream don't seem anything like brain food. Somehow I find it less of a break of concentration than an irresponsible disregard for one's own health.

<comment><USER8> our "lack of healthy food" was a bit overplayed for the article :). we don't quite eat "gourmet-style", but it's not bad, either. dan made some interesting spaghetti/chicken combination tonight, and we don't eat any junk food, or much frozen food...

</comment></comment><comment><USER9> If it's 'the Yscraper' (and not 'the Yscaper'), that article's got a couple typos. If it's 'the Yscaper'...I don't really get it.

<comment><USER10> "With its expansive views of the San Francisco Bay and sky-high electricity usage included in the rent, that high-rise is now dubbed the "Yscaper""

Skyscraper - Yscraper, home to six ycombinator startups.

<comment><USER9> Like I said, Yscraper makes sense. The article says "scaper."

</comment></comment></comment><comment><USER11> Maybe Y-Combinator should include a session on nutrition in their schedule? ;-)</comment>


David Foster Wallace, "Consider the Lobster." Aug 2004 - <AUTHOR> http://www.gourmet.com/magazine/2000s/2004/08/consider_the_lobster?printable=true

<comment><AUTHOR> This article blithely draws you in with an unassuming, if witty, introduction. Before long, though, it begins to investigate a profound yet practical philosophical problem.</comment>


A tool for writing Python AST-based refactorings - <AUTHOR> https://github.com/banga/prefactor <comment><USER2> Looks cool!

I don't do much Python anymore, but I do use a tool like this for Javascript called Prettier ([https://github.com/prettier/prettier](https://github.com/prettier/prettier)). I'm not sure if Prefactor is inspired at all by Prettier, but it would be a good source for ideas as Prettier is an absolute game changer for Javascript programmers and makes programming a whole lot more efficient (and fun!). I hope Prefactor (or something like it) could do the same for Python.</comment>


Kickstarter loses nearly 40 percent of its workforce after layoffs and buyouts - <AUTHOR> https://www.theverge.com/2020/5/13/21257585/kickstarter-layoffs-employees-union-negotiations-severance <comment><USER2> What about Indiegogo?</comment>


Multithreading Magic - Why Everything You Thought You Knew about Concurrency... - <AUTHOR> http://www.slideshare.net/pieterh/fosdem-2011-0mq

<comment><USER2> It's great to get feedback on the talk. Impossible to even introduce 0MQ properly in 10 minutes, so this presentation was really just to drive discussion. I'd apologise for the polemical title but that's just how I talk.

To some of the comments here...

\- Parallel programming may be taught in CompSci courses, for sure, and it's a popular use for 0MQ, but (a) it's not applied to mainstream application development, and (b) it is not designed to scale to networks of any size.

\- The Actor model is not key to building a successful message-based concurrent application, but it's a good example, and helps people understand that there are alternatives to shared-state concurrency.

\- It's IMO useless to ask people to learn Erlang or Scala to get message based concurrency. People use Java, C, C#, PHP, Python, and probably still COBOL somewhere. So the challenge is how to give this mainstream a toolset that lets them build large parallel applications.

Perhaps next year at FOSDEM we can do a devroom and take the time to see a real application evolve from a simple stand-alone process into a real distributed one. 0MQ is very hard to grasp as a theory, one needs to actually use it for a few days before the beauty a cheap, universal, fast, intelligent, easy to use, and asynchronous queuing messaging fabric hits home.

Cheers!

<comment><USER3> I've glanced at the 0mq sources a bit, and I'm curious about the error handling. For example, zmq::tcp_socket_t::read() handles following errnos from recv(): EAGAIN, EWOULDBLOCK, EINTR, ECONNRESET and EPIPE. If recv() fails for any other reason (e.g. ENOBUFS, ETIMEDOUT) and returns -1, the following is performed:

      errno_assert (nbytes != -1);

which translates to

      #define errno_assert(x) \
        do {\
            if (unlikely (!(x))) {\
                perror (NULL);\
                fprintf (stderr, "%s (%s:%d)\n", #x, __FILE__, __LINE__);\
                abort ();\
            }\
        } while (false)

The first thing I noticed is the use of perror() and fprintf() for error reporting. Any daemon that closed its stdin/out/err and _not_ had them redirected to /dev/null will most likely output errors to other file descriptors (sockets, other open files etc.). Is this by design or something that was missed?

Secondly, the use of abort() in an API is probably also not the best choice. Say I'm writing a (robust) database server and an error happens on _one_ connection - the error will bring the whole server down, which kind of defeats the purpose. Is this also by design?

[Edit: formatting]

</comment></comment><comment><USER4> I like ZeroMQ but this slideshare doesn't deliver any substance at all. For an overview, skip it and check out the white paper (if you can call it that) cowritten by the same guy (Pieter Hintjens) instead:

<http://www.zeromq.org/whitepapers:multithreading-magic>

<comment><USER5> _The most widely used languages, C and C++, do not offer any support for concurrency. Programmers roll their own by using threading APIs. Languages that do support concurrency, such as Java, Python, .NET, and Ruby, do it in a brute-force manner. Depending on the implementation - there are over a dozen Ruby interpreters, for example - they may offer "green threading" or true multithreading. Neither approach scales, due to reliance on locks. It is left to exotic languages like Erlang to do it right._

You know how I wrote my first concurrent programs? Create threads with pthread_create(3), and pass ownership of objects by sending pointers over connections created with pipe(3). Which sounds an awful lot like this cure-all actor model (which I hadn't heard of yet) that requires languages almost nobody's ever heard of.

 _Of all the approaches taken to multithreading, only one is known to work properly. That means, it scales to any number of cores, ..._

clone(2) and socket(7)

 _... avoids all locks,..._

Your threads/actors still block waiting for messages. I've seen an example of someone using this to write a mutex in Erlang.

 _... costs little more than conventional single-threaded programming,..._

Probably depends how much you have to twist your code to fit this functional+actor model.

 _... is easy to learn,..._

If you discount having to learn a whole new language and turn your code inside-out.

 _... and does not crash in strange ways._

Instead of crashing, it hangs because you accidentally wrote a mutex.

<comment><USER6> > Your threads/actors still block waiting for messages. I've seen an example > of someone using this to write a mutex in Erlang.

This statement suggests to me that you've got some fundamental misunderstandings about the nature of actor based programming. Your _actor_ may block on its message queue (and an infinite computation would mean you'd never consult the queue again), but during a message wait it doesn't necessarily block a thread. That's sort of the point of a good Actor model implementation.

If you write a series of symmetric calls that create a dependency, then yes, you will deadlock; the Actor model can't work its magic when you explicitly model blocking calls.

Perhaps you don't know this, but every lock&block system has an equivalently performant Actor-based system, and vice-versa. (See: <http://www.sics.se/~adam/pt/duality78.pdf>) What this means, for programmers, is that whichever model fits our current problem best is the one to use. We can make either one performant.

P.S., Just because you haven't heard of these languages doesn't mean they are not widely used. What does your personal experience have to do with the viability of a technique?

<comment><USER5> > Your actor may block on its message queue (and an infinite computation would > mean you'd never consult the queue again), but during a message wait it > doesn't necessarily block a thread. That's sort of the point of a good Actor > model implementation.

A thread can block on a syscall or a "while(true);", but won't necessarily idle one of your CPU cores. That's likewise the point of a good task scheduler.

Actors _are_ threads, just they tend to be implemented in userland rather than as OS threads.

> Perhaps you don't know this, but every lock&block system has an equivalently > performant Actor-based system, and vice-versa.

Knowing that they're equivalent (up to "frictionless surface" assumptions for performance, ignoring what primitives the hardware provides) is a significant part of why I don't take claims of the actor model's magicalness seriously.

> P.S., Just because you haven't heard of these languages doesn't mean they > are not widely used. What does your personal experience have to do with the > viability of a technique?

I have heard of them, always in terms of "this is awesome, what's wrong with people that almost nobody actually uses it?".

</comment></comment></comment></comment><comment><USER7> What I got out of this presentation: "You thought the only way to do concurrency was by using synchronization primitives? Surprise! You can also do it by message-passing between processes!"

What I think of this: Say whaaaaaaaaaaat? Message-passing as a concurrency model? That's crazy talk! Brilliant crazy talk! I wish this was such common knowledge that it was being taught in undergraduate "Parallel Programming" courses everywhere. Oh wait... IT TOTALLY IS!

<comment><USER6> Is that really true? I meet _very few people_ , even fresh out of good schools, who have any practical knowledge of the Actor model. Many have heard of it, but most don't know that about even basic concepts surrounding it like Needham's Duality.

<comment><USER7> While my CDP class didn't explicitly discuss the Actor Model, message-passing as a concurrency model was studied and we did implement algorithms using it.

How basic is the Actor Model for implementing concurrency using message- passing, besides the obvious advantage of formally defining a common language of terms and proven theorems for what you're doing?

</comment></comment></comment><comment><USER8> Whaa?? "Concurrency is hard... Actors... ZeroMQ... End scene!"

This is far from enlightening.

<comment><USER2> :-) If you hope for enlightenment from watching a 10-minute talk, you're going to be disappointed. I do like your summary of the presentation... "Concurrency is hard... Actors... ZeroMQ... End scene!". Nice.

Enlightenment requires that you change in some way. For me, like many people who have taken the step of downloading and learning 0MQ, the feeling of "wow, this is too easy, where's the catch?" comes only after a few days writing code, and then your brain makes a slight adjustment, and it's all obvious, and that is a small but real enlightenment.

</comment></comment><comment><USER9> For what it is worth this is the model Redis, and Redis cluster, are beating on, and why we are not going multi threaded.

<comment><USER10> You meant "betting on", right? Not trying to be that guy, just wanted to make sure I understood your comment.

<comment><USER9> Yes, thanks and sorry for the error. Unfortunately it is no longer possible to edit the comment (but I agree with the edit timeout FWIW).

</comment></comment></comment><comment><USER11> CSP (Communicating Sequential Processes) also seem similar:

[http://en.wikipedia.org/wiki/Communicating_sequential_proces...](http://en.wikipedia.org/wiki/Communicating_sequential_processes)

There's a patch for Python that does CSP!

<http://code.google.com/p/python-csp/>

<comment><USER12> Once upon a time there were even dedicated CPUs that had their own programming language based on CSP:

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

[http://en.wikipedia.org/wiki/Occam_%28programming_language%2...](http://en.wikipedia.org/wiki/Occam_%28programming_language%29)

</comment></comment><comment><USER13> ZeroMQ is fantastic for low latency communication between processes, but probably not the best choice for building 'actor' based systems. The slides don't really provide much basis for the argument.

Erlang & Scala (for a more object-oriented feel) are both excellent for building actor based systems.

</comment><comment><USER14> Message passing is not a golden bullet. It is a synchronization primitive for distributed systems. Basically on the same level as mutexes, semaphores, and monitors.

Badly designed you are in the same concurrency hell.

<comment><USER2> Badly designed, anything can become hell. Crazy has no limits. The point of the talk was that message passing is fundamentally not at the same level as mutexes, semaphores, and monitors. Shared state does not scale linearly, no matter how well you use it, whereas message passing does, given cheap, fast, universal messaging.

<comment><USER15> A message queue is shared state. It may be more convenient shared state, and since it only needs to be got right once it might be more bulletproof shared state, but you have multiple threads that are serialising on access to a queue no matter how it is implemented.

<comment><USER2> You're right that a message queue is shared state and has to be gotten right but that can be done (and ZeroMQ does it) without locks. It's thus invisible to application developers. You're wrong to say that multiple threads serialize on a queue no matter how it's implemented. ZeroMQ lets threads write full speed to a queue while another thread reads full speed from the queue, without wait states.

</comment></comment></comment></comment><comment><USER16> I wish Pieter had a bit less sensational title than "Multithreading Magic - Why Everything You Thought You Knew about Concurrency is Bogus, if not actually Totally Insane" considering that the slides contain only common knowledge.

</comment><comment><USER7> Having read up a bit more on ZeroMQ, I have to ask: How is this, if at all, superior to, say, MPI[1]?

[1]<http://en.wikipedia.org/wiki/Message_Passing_Interface>

<comment><USER2> Significantly simpler, faster, and more general. MPI is like one of the patterns ZeroMQ provides (the pipeline pattern) with a lot on top. That makes it great for parallel programming, but not so great for (e.g.) data distribution (pubsub) and other forms of message queuing.

</comment></comment><comment><USER17> ...the bar man said "we don't serve event loops here"

Node.js walks into a bar...

</comment><comment><USER18> Naming Magic: Why Every Other Link Including This One Is A Bait

</comment><comment><USER19> Whenever I need an Actor, I go with Nathan Fillion.</comment>


CEO wants our SaaS startup to become "data driven". What does this mean to you? - <AUTHOR> I fear that this is something of a buzzword, but so far:
- Everyone has access to the company's financial metrics
 - Our graphing and querying tools are open to employees (small 20 person company)
I'm thinking of:
- A monthly data/metrics talk
 - Making sure the majority of engineering tickets have a definable success metric that can be measured afterwards in terms of app downloads
 - Logging all data requests, and making this public so that people can see that we are not reinventing the wheel
Any more suggestions? <comment><USER2> I find it admirable although a bit concerning that there's transparency with the financial metrics. Most employees don't need to know that information, both for the company's sake and for theirs.

That information can affect the employees as they will be making plans:

\- if the metrics look bad then they will make plans to jump ship, productivity will drop, word will spread or they will simply worry when it's not their job to worry about financials.

\- if the metrics look good then they can expect some pay raises or benefits or improvements which might or might not be in the future plans of the company.

The company being a startup can be affected if the information leaks out. Possible investors might back out or propose some outrageous things or the competition will see inside the company also and they will be "data driving" on your back.

Financial information should be on a need to know basis.

Now back to the issue at hand about "data driven". From my experience, this means that the company will aggregate all kinds of events and data (financial, user, metrics, feedback, everything). Some of it will be for vanity (like app downloads) and some will be actionable (like where did the app downloads come from which allows you do double down on a good source).

The purpose of the "data driven" company is continuous improvement through data. Observe data, propose changes based on data, experiment (A/B testing at the minimum), observe results and carry on the cycle. For example: the UI of the application, the UX, the features offered or the price points for the features. Everything should be registered, tested and improved upon.

You said something related to engineering tickets being related to app downloads. That is a pretty huge conjecture there but if the data shows this then it must be true (!Warning: correlation does not imply causation). Recording the trend and velocity of the engineering tickets is a good metric that can be actioned upon later on. Usually the 5 why are applied to determine possible relations between events and getting to the core issue of something so you can do actions and tweaks on it (why has the number of tickets increased/decreased? etc.).

As for the monthly data/metrics talk: the "data driven" company is based on a constant 24/7 talk about the metrics and how to act upon them.

Also as for making the data requests public, the same as for the financial metrics apply (need to know basis or some kind of marketing point).</comment>


CIA, FBI push 'Facebook for spies' - <AUTHOR> http://www.cnn.com/2008/TECH/ptech/09/05/facebook.spies/index.html?iref=mpstoryview <comment><USER2> It appears to be 'Facebook for spies' the same way Amazon.com is 'Facebook for people who want to buy things online, and do not want to do social networking'. I would assume that the Facebook for Spies is here: [http://www.new.facebook.com/s.php?n=-1&k=100000020&a...](http://www.new.facebook.com/s.php?n=-1&k=100000020&adv=1&init=a&sf=i&cy=CIA&cp=Spook&sid=48fcf94749e94a97a8387d104f825387)

</comment><comment><USER3> This is an invitation to disaster.

<comment><USER4> Not really. The CIA and its ilk are so clueless that their pages are probably indistinguishable from that of a typical MySpace user, if not in form then at least in the value of the content.</comment></comment>


California: PG&E warns of fresh power shutoffs for 500k due to fire weather - <AUTHOR> https://www.theguardian.com/us-news/2019/oct/22/california-wildfires-power-shutoffs-pge <comment><USER2> And the headline directly above this as I post is:

65\. Trains reach record speed in Beijing-Zhangjiakou test run (chinadaily.com.cn) 40 points by hoba 15 hours ago | flag | hide | 48 comments

The U.S. just won't invest in infrastructure.

<comment><USER3> PG&E is a corporation, not a government agency.

<comment><USER2> They provide a service to the public predicated on viable infrastructure. How does being a corporation absolve them of providing necessary infrastructure when part of their billing is specifically to fund infrastructure?

<comment><USER3> You conflated Chinese rail (government funded) with private-sector infrastructure funding in the parent comment.</comment></comment></comment></comment>


MIT has an ambitious plan to detect if you've been exposed to the coronavirus - <AUTHOR> https://www.fastcompany.com/90488140/mit-has-an-ambitious-plan-to-detect-if-youve-been-exposed-to-the-coronavirus <comment><USER2> Do people keep their Bluetooth on? I don't for security reasons

<comment><USER3> All those people with AirPods do, otherwise I would imagine they're like me and disable bluetooth the moment you buy the device and never activate it again.

<comment><USER2> I turn on Bluetooth when using my handsfree, but don't leave it on all the time

Too much tracking already goes on via Bluetooth beacons</comment></comment></comment>


Any suggested links for Firefox extension development? - <AUTHOR>

I found a few sites via google, most of them are old and seem out of date - any suggestions?<p>Thanks <comment><USER2> [http://roachfiend.com/archives/2004/12/08/how-to-create- fire...](http://roachfiend.com/archives/2004/12/08/how-to-create-firefox- extensions/)

I read that guys article to get the basics down, also he has a good batch file for compiling the extension on windows that I use

I go to xulplanet.com or mozilla for specific or in depth things

</comment><comment><USER3> Existing extensions are a great source for example code... as long as they're written in JavaScript, extensions are as open source as HTML pages. Just download the extension and unzip it.</comment>


3 Books Programmers must read in 2016 - <AUTHOR> http://www.codingdefined.com/2016/01/3-books-programmers-must-read-in-2016.html <comment><USER2> I can indeed recommend "The Passionate Programmer" which is a great book. Very eye opening.

None of these books is new though, they've been around forever. Why are they must-reads of _2016_ specifically?

<comment><USER3> And why are they _must-reads_ , actually? Martin's book is not that good, as he often makes ridiculous statements (e.g. the guy apparently have never used generated documentation, yet he claims some JavaDoc comments are useless).</comment></comment>


Six works of Computer Science-Fiction (2015) - <AUTHOR> http://blog.fogus.me/2015/04/27/six-works-of-computer-science-fiction/ <comment> a-saleh Art of the propagator

It is like a discovering a new programming paradigm. Something new and different, not a Lisp, not a Datalog, weirdly distributed, with interesting properties, but powerful. There are adjacent things, BLOOM project and Eve language seems to have discovered something simmilar, and Edward Kmett working on his new language is using propagators quite heavily.

[https://pdfs.semanticscholar.org/755c/48fd10aa303497ef849977...](https://pdfs.semanticscholar.org/755c/48fd10aa303497ef849977c36529c0bb09ff.pdf)

Sci-fy to go with it: probably Ted Chiangs Stories of your Life (or its movie adaptation Arrival)

Out of the tarpit

I thing this is a paper that might have lead to Clojure, React, Elm, e.t.c ... but not really, a weird parallel reality where we really like reactive relational databases.

[http://curtclifton.net/papers/MoseleyMarks06a.pdf](http://curtclifton.net/papers/MoseleyMarks06a.pdf)

<comment><USER3> Ted Chiang's work was the first thing that came to mind for me. "Understand" is a breathtaking piece of work, about a man whose brain rapidly gains unimaginable computing power following a series of treatments.

<comment><USER4> "Understand" was phenomenal!

</comment></comment></comment><comment><USER5> Knuth's "Literate Programming" was kind of otherworldly for me. I liked the idea that software could be written in a form indistinguishable from literature. I could not quite believe that it was reality -- and I'm still not sure it holds up in the real world -- but it's such a cool idea to have wrapped my head around at least once.

<comment><USER6> I think a cousin of Literate Programming that does work well is computational notebooks, like Jupyter. Interleaving code and textual description fits the exploratory workflows and scientific communication well. My favourite is Observable ([https://observablehq.com/](https://observablehq.com/)), where code has reactive structure (resolving a DAG like a literate program would at tangle-time), you can choose to keep some code hidden by default (to reduce clutter, make the document end-to-end readable), and use code to make the notebook fully interactive.

In terms of Knuth-style literate programming, Org Mode in Emacs, with its Org Babel feature, is a very good tool for this. It's an outliner with rich markup, and where you'd ordinarily insert a code block, in Org Mode, you can also execute it (works with any language you've configured Emacs to connect to) and feed the results to further code blocks. So it works like a computational notebook. You can also tangle the blocks to produce a separate source file, the Knuth way. One common application I've seen is making literate Emacs configuration - people prepare the minimum necessary to set up Org Babel, and then tangle the proper (often large) config from an .org file, where it's written in literate style.

As for my own experience, I occasionally try literate programming on small things, and so far - outside using org mode as a Jupyter alternative - <USER2> didn't feel more productive with it. I often flesh out the idea of a solution while writing it (I alternate between coding/recoding and design phases), and literate programming adds extra work - refactoring code means also refactoring the surrounding prose. On top of that, the narrative structure seems to interfere a bit with program's own architecture. I know it shouldn't (thanks to the way tangling works), but it somehow does in my head.

<comment><USER7> It's a shame that these notebooks are extremely unperformant. It ruins the fast-feeback you are meant to get from the REPL-ness.

<comment><USER6> Org Mode and Observable are both performant enough. Unfortunately, they have their own limitation. In Emacs+Org Mode, you're working with a rich text display as a canvas, so while you can output images easily, forget about interactive GUI (charts, control sliders, what not) - at least without some dark hacking magic.

Observable - that's a true joy if you want fast feedback and interactivity. It's as fast as your browser, since your notebook is entirely client-side executed JavaScript. It's an order of magnitude better option than regular notebooks if you want to do some exploratory or scientific visualization. It's main drawback: JavaScript. That's what you're limited to. So forget about your favorite Python or R libraries (at least without dark hacking magic).

<comment><USER7> Observable did not handle my rendering requirements involving several hundreds of data points for my parallel coordinate plot. That said I'm not sure how it would fare outside of the notebook setting.

<comment><USER6> It should be as fast as equivalent visualization done in the frontend of a web page; after all, what you do in Observable gets directly executed by your browser. I wonder what your particular requirements are. On my end, I had acceptable performance on interactive prototypes involving updating multiple histograms, where inputs had tens of thousands of points.

</comment></comment></comment></comment></comment></comment><comment><USER8> The Art of the Metaobject Protocol. Let's build a system ... in this system we haven't built yet! We'll start with some DEFCLASS calls to define some classes for its internal data structures. In a couple hundred pages, we'll have enough written that we can _define_ DEFCLASS to close the loop.

</comment><comment><USER9> What a fun list! And it has some great lines:

"SICP is an exploration of programming free-love. Indeed, the tone, examples, references, and hearken to a programming life that if true, would be an absolute blast to live in."

It's a bit difficult to define this genre (but how can we not?). I found the K&R personally mind-blowing when I read it (and someone in the comments suggests it), but I'm not sure it qualifies. Many classic works strike me as "computer science-fiction," but not all classics of computer science are.

There's something fanciful and idealistic about these particular works -- something about their tone that seems vaguely utopian or futuristic.

Michael Fogus is a fine writer, though his own books seem strikingly down-to- earth. Really, I think he should expand this into a full-blown essay.

</comment><comment><USER10> Previous discussion at the time (84 comments):

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

</comment><comment><USER11> It's interesting to read these, and important that they are not forgotten, but I don't see these as viable alternate realities for mainstream modern programming. They were relegated to, and remain in the margins for actual reasons, not just by accident. In some cases such as SICP and arguably a few of the others those 'margins' are still actually important niches from which they still influence and benefit the community.

I think there are some 'accidents' of technological choices that have had unfortunate consequences for the modern industry. We could have done with something better than JavaScript for example, but these aren't 'paradigm' issue (I tried avoiding that word, but there it is). By and large the direction the industry has gone has been chosen for sound practical reasons.

In the end, none of the alternate history directions the industry could have taken are off the table forever. If Oberon or Smalltalk had been a superior way to build software, there's nothing stopping someone taking their evergreen fundamentals and building them into a modern system. If that doesn't happen, again there are probably reasons for that.

<comment><USER12> > _It's interesting to read these, and important that they are not forgotten, > but I don't see these as viable alternate realities for mainstream modern > programming. They were relegated to, and remain in the margins for actual > reasons, not just by accident._

The "actual reasons" could just be laziness, a bad industry, valid then but not relevant anymore, and several other things other than "eternally valid".

So just because those ideas and implementations where "relegated to" the margins, doesn't mean they should remain there.

Except if we're all too happy with the current state of the computing industry and developer practices. Are we?

> _By and large the direction the industry has gone has been chosen for sound > practical reasons._

Yeah, no. Some things caught on for practical reasons (e.g. C was portable, free, fast enough in a constrained era. But even C could have easily been bettered with a language more or less the same just with bounds checking, without pointer arithmetic, without nulls, with a string type, etc, and we'd be 200% better).

Others just caught because big companies pushed them with tons of marketing money (e.g. Java - at the moment Smalltalk was big in the same space, support and IDEs from IBM, etc). Others by BS CEO decision (e.g. Javascript not being a light-scheme as originally intended, because management wanted to latch onto the Java bandwagon). Others because of slow progress (slow uptake of innovation, even if it can run perfectly well in the hardware of the time), others without any real reason (it's mostly what's taught at schools, what catches on as fad, etc).

It took 60 years (in fact, it's still ongoing) for programming tools and concepts we had even as back as Lisp to make with first class support into mainstream programming languages (closures, immutability, map/fold, and so on). CSP took until Golang to catch on in the mainstream... Those things were "in the margin" all this time...

</comment></comment><comment><USER13> Disclaimer: I've started reading the Lean guide for the past month or two.

For me the most magical texts I have ever read were TAPL by Pierce, or the Lean Theorem Prover (tutorial/guide?) [1].

Just from a software standpoint, Lean seems like one of the most magical things ever built. For something that is built by mathematically-oriented programmers for pure mathematicians, it is /extremely/ well designed. So much thought has seemed to go into the user experience; it's rest a joy to use.

Every chapter in that guide, has blown my mind more than the previous. It is super accessible as well to anyone with the math background found in any undergrad CS program.

[1]: [https://leanprover.github.io/theorem_proving_in_lean/introdu...](https://leanprover.github.io/theorem_proving_in_lean/introduction.html)

<comment><USER14> > TAPL by Pierce Can you expand on why you enjoyed this? Its sitting on my > shelves for a few years..

</comment></comment><comment><USER15> Worse is for those of us that actually played with some of those technologies, only to deal with stones and sticks afterwards.

<comment><USER16> Yep, the first two books were my reality at different points in my career. It still amazes me how much tougher a lot of tools are compared to how programs were built in those environments. It was amazing building in the small to build up to the large (Forth) or just sheer joy of Smalltalk.

</comment></comment><comment><USER17> Something from the APL/J/K world would fit in. Is there a proper book?

<comment><USER18> Not a very original suggestion, but the original book ("A Programming Language", by Ken Iverson) would probably fit in.

</comment></comment><comment><USER19> Of the works listed, I've read only _The Architecture of Symbolic Computers_ and _Structure and Interpretation of Computer Programs_. The latter is widely known as it undergirds many a computer science course, but the former is far more impressive by a wide margin. As a invertebrate mathematician, breaching the threshold between numerical and symbolic computation (though ultimately) gives me an undeniable _frisson_ of profundity.

</comment><comment><USER20> I love thinking about these books as science fiction. I experience disappointment and frustration with some of the turns our technological evolution took, and my own inability to hack out my own path, so I took to writing science fiction in order to switch from an implementor's perspective to a user's perspective. My goal and process is to suspend the inner architect and programmer and skip to a conceivable end-result: alternative technological history type of thing. I find that picturing an end result of a hypothetical scientific effort relaxes me.

</comment><comment><USER21> The only book I've read that I would call "Computer Science-Fiction" is The Footprints of God: [https://www.goodreads.com/book/show/1515812.The_Footprints_o...](https://www.goodreads.com/book/show/1515812.The_Footprints_of_God)

It's pretty good. Centers on AI (but isn't a cliche Terminator-like scenario) and gets into very philosophical territory by the end, and has the pacing/tone of an espionage thriller.

</comment><comment><USER22> If these books are science fiction, then some of the projects we see here on HN might be considered fan fiction.

</comment><comment><USER23> Going further back, I think that Multics could probably be on this list. Single-level storage might make a comeback with NVRAM.

</comment><comment><USER24> I see you visit HPB...one of my favorites.

Like a treasure hunt every time I enter.

</comment><comment><USER10> Did no-one read the article? [1] It's explicitly not about fictional sci-fi that happens to feature computers/programming, but about real textbooks that hint at what programming _could have been_ had the industry adopted those technologies/principles more fully.

[1] At this time 4 of the 7 top-level comments and all the active discussions are about sci-fi, not what the article describes

<comment><USER25> There needs to a word for making a comment based solely on misreading the title. It happens all time. Or how about another word for making a comment without reading the other comments and realizing that many people, sometimes hundreds, have made the exact same comment you want to make.

<comment><USER26> Karma-eager people, or karmeagers.

<comment><USER6> Karmongers?

</comment></comment></comment></comment><comment><USER27> Isaac Asimovs's "The Last Question" is an excellent short story and I consider it among one of the greatest works of science-fiction. It describes a fictional future where humanity creates a computer that acheives the singularity (written in 1956!), with an interesting twist at the end.

[https://www.multivax.com/last_question.html](https://www.multivax.com/last_question.html)

<comment><USER28> Don't forget The Last Answer! These are possibly my two favorite sci fi short stories:

[https://highexistence.com/the-last-answer-short- story/](https://highexistence.com/the-last-answer-short-story/)

There is another story I like about a planet of high-IQ beings noticing patterns in stars blinking (like binary) and going into suspended animation to observe the data over extended periods of years, but I can't remember the name of it or the author.

</comment></comment><comment><USER29> UNSONG. Magical fantasy set in a Silicon Valley where Microprosopus (Microsoft), Gogmagog (Google), Amalek (Amazon), and Countenance (Facebook) have figured out how to brute force discovering Divine Names of God through the magic of independent contractors.

Every chapter begins with a quote from a Markov chain trained on the King James Bible, SICP, and ESR. For example:

> It is good practice to have your program poke around at runtime and see if > it can be used to give a light unto the Gentiles.

The first chapter begins

> The apocalypse began in a cubicle.

> ... Upon the floor was a chair and upon the chair was me. My name is Aaron > Smith-Teller and I am twenty-two years old. I was fiddling with a rubber > band and counting the minutes until my next break and seeking the hidden > transcendent Names of God.

> "AR-ASH-KON-CHEL-NA-VAN-TSIR," I chanted.

> That wasn't a hidden transcendent Name of God. That wasn't surprising. > During my six months at Countenance I must have spoken five hundred thousand > of these words. Each had taken about five seconds, earned me about two > cents, and cost a small portion of my dignity. None of them had been hidden > transcendent Names of God.

[http://unsongbook.com/](http://unsongbook.com/)

<comment><USER30> This reminds me of the Nine Billion Names of God (Clarke)

[https://urbigenous.net/library/nine_billion_names_of_god.htm...](https://urbigenous.net/library/nine_billion_names_of_god.html)

<comment><USER31> Borges' _The Library of Babel_ works with similar ideas:

[https://en.wikipedia.org/wiki/The_Library_of_Babel](https://en.wikipedia.org/wiki/The_Library_of_Babel)

<comment><USER29> Sort of, although I think it doesn't allude to the exploitation of workers for something allegedly holy like the other two?

<comment><USER31> I guess. I found the Borges story infinitely richer and intellectually interesting. Kind of lends credence to the idea that Kubrick was the real genius behind 2001 (Clarke co-wrote the screenplay).

</comment></comment></comment></comment></comment><comment><USER32> Francis Spufford's _Red Plenty_ might fit here. It's historical fiction, set in the 1950s and 1960s USSR, and describes an attempt to build an efficient planned economy with linear programming. It's a bit like _Little House on the Prairie_ , in that some of the people and events are fictional, but the big ideas were mostly true (there's a massive set of end-notes if you care).

I found both the math and the vignettes about life in the USSR to be fascinating.

<comment><USER19> Big shoutout for _Red Plenty_. If you (understandably) thought operation research, linear programming, and price discovery are too arcane to serve as the basis that undergirds a gripping novel, be prepared to be proven wrong.

</comment></comment><comment><USER33> Daemon. Best thriller ever. Not really, but was interesring to read [https://www.amazon.com/Daemon/dp/B001QCZTWA/ref=mp_s_a_1_1?k...](https://www.amazon.com/Daemon/dp/B001QCZTWA/ref=mp_s_a_1_1?keywords=Daemon&qid=1577933339&sr=8-1)

<comment><USER34> Unsolicited book review time!

I read this after hearing many good things about it, especially about how well thought out the science in it was.

While the science was solid as far as speculative fiction action-thriller science goes, I felt like the action scenes were being choreographed by a six year old who had read too many comics, in that every single event felt like it was a _deus ex machina_ , only to be matched by a bigger and more catastrophic _deus ex machina_. Y'know, like "the car shot lasers! until it was blown up! but it blew up into two motorcyles! that shot ninja stars!". The aid to my suspension of disbelief I got from the "good science" being plausible fell apart at how implausible the actual chain of events were.

It was a page-turner, but ultimately I left the book feeling a little exhausted by it all. Would highly recommend to anyone who wants to have the equivalent literary experience of drinking a red bull.

<comment><USER35> Exactly the same with me! I was enthusiastic till about 3/4 through.

My memory now is that reads like a script for an action movie.</comment></comment></comment>


Ask HN: Do cold emails still work? - <AUTHOR> Do people still do cold emails for B2B enterprise SaaS sales, or does it come off as too spammy? I'm not in the mood for dry content-marketing and don't have the budget for ads. Cold emails seem like the only way to start promoting the product I built.<p>Anybody doing cold emails right now and can give me some benchmarks for open rates / response rates I should expect (to get an idea if I'm doing it right)? <comment><USER2> If I receive an email from someone I don't know, I assume it's not just _spam_ but a _scam_ and delete it without opening it. However, you might still have success with a more gullible or less paranoid audience -- particularly if your product is not intended for techies.

Mass emails are cheap, so a 0.1% open rate is enough to float your business if you live off ramen & clip coupons.

</comment><comment><USER3> Any unsolicited email I receive from someone i didn't requested is sent to spam + block sender in 99% of cases.

Unsolicited non-personal emails or emails that originate from bulk mailing services sent to spam + block sender in 100% of cases.

Cold emails or calls for that matter certainly not working with me.

I think if sender would do some extra thinking to come up with win-win ideas or propositions - it may work better.

</comment><comment><USER4> Depends on what your audience is. I have almost reached the conclusion that cold emails don't work for developer products. I have hand written 100+ emails to super relevant people with a few different messaging/subject line etc. While the open rate is high (~70%), the response rate is in single digit percentage. These stats are great for automated system but I expect much better for individually curated emails for a curated list of recipients. It's a big time & energy sink.

Maybe I need to start following up on emails a little more. But I typically don't feel like spamming people if they haven't responded to my initial email.

On the other hand blogs seem to provide most bang for your buck.

</comment><comment><USER5> If you search the HN archives, I think you'll see the success rate is low but the general feeling is that it's enough to justify the effort people are putting in.

Personally, I don't mind the occasional cold email and will reply politely if I'm not interested.

What bothers me A LOT is the automated emails and automated retries every few days with templated emails trying to appear like they were written by some CEO pretending to be my friend. When that happens, the company is leaving a long lasting bad impression.

</comment><comment><USER6> I get dozens of them a day.

I've never bought anything from one, but I assume that if they didn't still work, I'd stop getting them.

</comment><comment><USER7> As someone who's done some email marketing and sales, I would avoid cold emails as a starter tactic. I'd start off by leveraging platforms like LinkedIn Groups, Facebook, Twitter, Quora, etc. Rather than start with email, start by engaging people in low-investment places where they're actively looking for the type of SaaS you're offering. It's a little more time- consuming, but it doesn't get you blacklisted by email servers.

</comment><comment><USER8> Yes, they do.

I'm on the other side of B2B cold emails. I receive them. I also receive stuff on linked in.

I very rarely reply as a lot of them are generic and they don't have my interests at heart.

Sometimes someone comes through with a service or offering that would benefit me.

They get a reply.

Your subject line will largely determine if your email gets oppened or not.

Here is some of the content for an email I did reply to.

\- I would appreciate the opportunity of discussing this with somebody, as due to our confidence in securing you many more users, we would happily set you up for free on our platform.

The guy can get me more users. So he got a reply.

</comment><comment><USER9> Yes it works. The message must be short and helpful. You must spend time on each case to find something meaningful to say. Don't copy/paste text. Don't use a signature. Text-only with one or two links. The first mail shouldn't contain any link.

</comment><comment><USER10> Spam - yeah they do work but mostly been trained to click the spam button</comment>


Tent.is alpha - <AUTHOR> https://tent.is

<comment><USER3> > Tent.is will become a showcase for what is possible with Tent.

And 10 other sentences telling me that tent.is is for tent users and I still don't know what tent is. The information I'm looking for is under the fold and seems to be on :

<https://tent.io/>

Otherwise it looks quite interesting, thanks ! (statusnet but for facebook- type content)

<comment><USER4> "Tent is a protocol for open, decentralized social networking. Tent users share content with apps and each other. Anyone can run a Tent server, or write an app or alternative server implementation that uses the Tent protocol. Users can take their content and relationships with them when they change or move servers. Tent supports extensible data types so developers can create new kinds of interaction.

Tent is for sharing with others and seeing what others have shared with you. You can ask to follow other users and other users can follow you. Because you control your own Tent server, it is also a good place to store things you do not want to share with others, a sort of personal data vault. It can also be used as a secure site login replacement so you don't need passwords when accessing other sites on the web."

(apparently)

<comment><USER5> > Users can take their content and relationships with them when they change or > move servers.

How does it work when users seem to be identified by the url (which, at least now, is in the provider's domain)?

<comment><AUTHOR> There are two important pieces to your Tent identity.

1: Your Entity (this is the url you're referring to. I could be <https://jonathan.tent.is> and then change to <https://titanous.com>). Think of entities like a name. You can change it but you really want to think carefully first. Other Tent servers know you by your entity. If all you told someone was your entity (<https://spindritf.net>) their Tent server would contact the URL where you have saved information about your Tent server. It's all you need to find out someone's Tent information or start following them, like a username. When you change your entity, your server sends out a post to all your followers and lets them know about a profile update with a new entity URL so they can update their records.

2: Your "canonical tent URLs" (the addresses of the servers where you can be reached). These are literally like your address. You can have multiple addresses and move any time you want. Again, your server will simply send a post to your friends letting them know you're moving and where to reach you. In both of these cases you probably want to give other servers some time to update their records before moving just in case.

There are a few edge cases worth mentioning. This system does not _actually_ depend on DNS, but most users will. For example, instead of <https://titanous.com> I could theoretically list an IP address instead or a tor hidden service.

<comment><USER6> So if I wanted to just my own domain, and not leejoramo.tent.is what do I do? I am assuming that it would be something like this:

<link href="<https://leejoramo.tent.is> rel="????" />

and how to I configure things on the tent.is account?

</comment></comment></comment></comment></comment><comment><USER7> For a count of number of users, check out the following count for: <https://tent.tent.is/>

Currently at 429 and growing quickly. That account auto-follows new users.

That's also a good way (for now) to explore the other accounts (<https://tent.tent.is/followings>).

The interesting thing is that Tent.is has a freemium business model compared to App.net which has no free tier. I expect Tent.is to surpass the number of users of App.net pretty quickly.

Follow me here: <https://jyap.tent.is/>

<comment><USER8> Thanks! The "followings" list was a good start to find a few people. Over time Tent needs a "discovery" function i guess.

The ^<http://domain.tld> thing is a bit annoying, though i know the reason. It should be easy to have a domain/name converter, no?

I'm also on Tent.is: <https://aleks.tent.is/>

<comment><USER9> A discovery option would be great,or some sort of user tags. Someone should make a list of hacker news users on tent.is. Here's mine. <https://vacipr.tent.is/>

</comment></comment></comment><comment><USER10> What does HN think about using this protocol to build a distributed publishing system? Like I'vegot this software that facilitates publishing a certain kind of post type, and each node of the software can subscribe to any number of other nodes. The problem is that each _node_ will represent a tent server, not every person publishing on said node. I'm not sure if this woud be a misuse of this protocol, but its features are really well-suited to what I want to do.

</comment><comment><USER11> The tent.io protocol looks very interesting. Architecturally the way e-mail works, mixed with the functionality of social networks all done over JSON/REST.

I wonder if it would be possible to implement a tent.io -> facebook/G+/Twitter bridge? A tent.io server, which instead of being backed by some sort of database, would instead read and write to somebodies existing social network profiles?

<comment><USER12> Some kind of proxy that would join Tent with other social networks would IMHO do wonders for the adoption rate. But at the same time it's not what the existing social networks want, which is why it probably wouldn't work. Google+ doesn't have a write API at all and see what Twitter is doing with their API. See also my thoughts on Tent, <http://goo.gl/lGnfm>.

</comment></comment><comment><USER13> I'm surprised by some of the negativity here - it's a pretty neat service for an alpha. Sure there's kinks/ shortcomings, but it's very early days. They even seem to be ironing things out even as we speak (switched from 140 to 256 char status updates in front of my eyes).

<comment><USER14> Negativity appears to be the default response to bold new things on HN. Ironic really, for a site run by an incubator for bold new things.

Personally I'm liking Tent a lot. It appears to be the exact social networking application I've occasionally daydreamed about for the last few years, and I'm sure I'm not alone in that. Hopefully that's a sign that this is an idea whose time has come.

</comment></comment><comment><USER15> How do users behind NAT run their own tent servers? If they can manage to run their own HTTPS servers from behind NAT, if they have those skills (not to mention a reachable IP), then why do they need tent? Couldn't they just host all their content on their own server? I can see tent as providing some sort of coordination of user data hosted on different servers, but I'm not seeing how tent enables users to host their own content and have full control over it. Maybe that's not the goal?

Correct me if I'm wrong but what this tent idea seems to lead to is a proliferation of tent service providers, not independent users running tent servers behind consumer ISP accounts. If that's true, then how can we be sure these service providers will not adopt the same sort of annoying monetization strategies of providers like Facebook and Twitter?

By no means am I suggesting tent could not be useful. I just want some clarification of what problem they are trying to solve. (There is no shortage of problems to choose from. :)

<comment><USER16> Servers belong in the cloud, not at home. The cloud is available to consumers.

<comment><USER17> Servers belong on the Internet.

If users have an Internet connection at their home and are willing to accept the potential reliability issues associated with hosting a server at home then, by all means, host a server at home. UPnP NAT traversal is decently- supported in many consumer-oriented routers, as is dynamic DNS.

I wish that the tech community hadn't lost sight of this and formed this artificial distinction between the Internet and the "home Internet". We could have been focusing efforts on making hosting services on servers in users' homes easier, but the siren-song of offering hosted services to create recurring revenue streams won out.

<comment><USER15> Do you think the possibility of "always on" computers at home (e.g., running low power ARM CPU's) is a real one?

Would this change the way we think about "reliability"? (Of course the canonical example of the need to be "always on" is email. We've come to expect that the server handling our mail is always up.)

<comment><USER18> I have a Mac Mini on 24/7 that's a web/mail/file server. This is for my small business, so there is activity but nothing heavy. Absolutely more than capable of adding a dozen people for social networking.

This consumes 12W while idle, which is probably 99.9% of the day, these are just background daemons carrying out requests all day for loading the website and sending/receiving email.

It's cheaper than a hosting service and I have 100% physical control over my server. If it goes down for a power outage or whatever, the same exact thing happens on Linode every few months. Email will just start to backlog until your server comes back online.

You are at the mercy of your ISP though, the biggest hurdle is port blocking if they're bastards about it. Most of them are, but there are ways around it.

[http://images.apple.com/environment/reports/docs/macmini_per...](http://images.apple.com/environment/reports/docs/macmini_per_july2011.pdf)

<comment><USER15> This is the answer I was hoping for. I know of at least one solution for your ISP concerns. I think it will work very nicely.

ISP's can obviously block anything they want to block. But with bigger bandwidth and things like VOIP services on the rise I would think that means letting some regular customer UDP traffic pass in/out. In your opinion, would you think that most ISP's would not allow customers to keep some long-term UDP "connections" open on any port? I have not had any trouble with this in the places I've tried, but it's hard to know what most ISP's do. Honestly I just can't see any reason they would block a low number of low traffic UDP peer-to- peer connections per customer (the customer's social network), when you consider they are allowing things like Bittorrent which are huge network hogs by comparison and are being blatently used for the sole purpose of downloading bootlegged entertainment media from random strangers.

The interesting thing is that if we can achieve this sort of peer-to-peer social networking, concerns about email servers being online, at least with respect to mail that you send to people on your social network, may turn out to be less of an issue. Why do I say this? Because the reason you want your email servers to always be up is so you can receive mail as timely as possible. Ideally you would like to have near "real-time" mail. Otherwise, if time is not an issue, then storing messages for pickup later on, e.g. in the cloud, should be fine. But if you and I are both on a private peer-to-peer social network, all that's required to send "real-time" email (or whatever format of bits you choose) is that we are both logged in. We might leave low power machines on in order to stay logged in over long periods. I would guess this might be a much more popular form of "email" between friends and family.1 Remember the UNIX programs talk and finger?

1\. Obviously there is no spam. The only people who can send and recieve mail to members of the peer-to-peer private social network are those who are logged in. Spammers can't log in. Nor can they be bothered to try to crack their way into myriad disparate small p2p social networks.

</comment></comment></comment></comment></comment></comment><comment><USER19> This is sort of a non sequitur, but the bootstrap UI makes this feel oddly like app.net.

<comment><USER20> What, both Twitter killers are using Twitter bootstrap? :))

<comment><USER21> It's part of their secret plan to sue competitors for patent infringement in the future ;)

</comment></comment></comment><comment><USER22> The site is completely broken if you block 3rd party tracking scripts (Mixpanel). The registration form does nothing when I try to submit it.

$12 a month is way, way too much. Someone could host it themselves on a cheap VPS for <$10 a month and not worry about 3rd parties tracking their activity.

<comment><USER23> I think the extra $2 accounts for the laziness factor. By all means run your own - that's probably better for the overall ecosystem.

<comment><USER24> OK, where's the source?

<comment><USER25> It is here: <https://github.com/tent/tent.io>

<comment><USER26> See also: <http://tent.io>

</comment></comment></comment></comment></comment><comment><USER5> How do you discover new content and find people to follow?

EDIT: OK, then <https://spindritf.tent.is/>

EDIT2: Tent is available over ipv6, great to see.

<comment><USER27> Right now, the same way you found people on early Twitter - the global feed and "hey, mine is username.tent.is".

</comment></comment><comment><USER28> While SaaS pricing is an ongoing discussion in other HN threads, this site is a good example of a terrible pricing strategy (IMHO). Their freemium model is useless for discovering what the service is capable of, since it only allows for a status post. The premium service is ridiculously over-priced as well -- if the "open sourced FB" model somehow becomes a viable product with a market, I'd expect GoDaddy and others to start offering it for $1-2/month or even less if paid annually.

<comment><USER29> I doubt they'd have a problem with GoDaddy coming along and offering it cheaper. The whole point is to get more people involved, and it's actually pretty smart of them to go ahead and anchor the price fairly high. There are probably about a million patio11 quotes that would be relevant here.

</comment></comment><comment><USER30> I am so glad someone built out a Tent.io service so fast! This is exactly what I imagined it'd be like. People would host their own and people like this would host one for those who don't want to or don't know how to host their own. I see this and laugh whenever I hear a doubter say Tent will fail because "no one will run their own server". That's beside the point and Tent.is is the counterargument.

<comment><USER23> "The architects of Tent built Tent.is"

<comment><USER30> Haha I'm an idiot (but I still got up votes somehow).

</comment></comment></comment><comment><USER31> Ok, I took the bait and signed up. I went to the home page, and was presented with a spartan and VERY pretentious pricing/signup/(ad copy? description of the service?) layout.

After trying to figure out what a Tent is (still had no idea after reading), I signed up with blind faith that the Tent will tell me what to do next.

The next page was where I was expected to make a status update. Ok, so I enter some gibberish. Click the post button.

Yay, I made a post.

Have you ever showed up way to early to a sporting event or large classroom, and there is nobody there. I mean nobody. No sound, just you. You look around and think "am I supposed to be here?". "Is it Saturday?".

Looking at the post I made made me feel like that. Now that I wasted 10 minutes of my life on this, good luck with pitching your Tent.

</comment><comment><USER27> I picked up support.tent.is. Probably should block that.

<comment><USER32> Thanks, I thought we caught all the really scary ones in our blocklist. You'll be blocked in a few minutes-- thanks again

<comment><USER27> NP. I'll see if I can come up with any others.

</comment></comment></comment><comment><USER33> Too bad the docs are rather hard to understand :( I wish someone made some python source code or improved the docs. It seems the "server protocol" is basically just some sort of schema of JSON to be send over HTTP(s), but at the moment it seems rather unstructured.

<comment><USER34> The json schemas seemed pretty structured, but the docs in general really are missing a table of contents and basic explanations of API commands and design decisions.

</comment></comment><comment><USER35> For me the registration/login are broken even when I unblock mixpanel. Might be because I block third party cookies, or it's just allergic to NoScript or RequestPolicy, even if I unblock everything on their registration/login screens. I just get blank pages.

</comment><comment><USER36> From <http://tent.io>

> 4\. Alice's server sends the status to two friends (Bob's and Carol's) > servers.

What happens when you have, say, a million friends, and want to post a status? Your server (or army of them) has to send one million API calls to one million servers. For every post.

What happens if you share a photo on your tent server, and your one million friends want to view it? That's a lot of bandwidth, and bandwidth isn't free.

It's a cool idea, but I just can't see it being efficient (especially in terms of cost) down the road.

<comment><USER5> > What happens when you have, say, a million friends, and want to post a > status?

There won't be a million servers, most people will cluster around the few most popular providers.

<comment><USER36> Which defeats the purpose of P2P, that is centralization..

<comment><USER37> Completely false. Think of email. I've been told by people running large-ish, open signup websites that Gmail, Yahoo! Mail and Hotmail together account for more than 70% of users. But, so what? Three choices is already better than one, and then you have a long tail of a zillion other email providers making up the last 30%, which you can use if you don't like those 3, and finally, if there's _no_ third-party email service you want to use, you can run your own server.

With Facebook and Twitter, you don't have that choice. If you want to connect with friends on those services, there's only _one_ provider available, and that's it. Tent will give you that choice back — even if, in practice, a few large servers have the most market share.

</comment></comment></comment></comment><comment><USER38> Hey "be my friend" etc etc - <https://ragmondo.tent.is/> \- to see how well this works..

</comment><comment><USER29> Do you have a date for when Tent will be released under an open license?

<comment><USER39> The MIT-licensed reference server is on github. Get to forkin'!

<https://github.com/tent/tentd>

<comment><USER29> Sweet! If Tent folks are reading this you might want to update the last sentence currently on tent.io, "Tent will be released under an open license in the immediate future."

<comment><USER32> As mentioned, the software (tentd, admin, and status) are all MIT licensed and on github, as will be any libraries we create.

That (confusing) sentence refers to the specification itself for which we still need a permanent governance model and foundation to oversee its' development.

Thanks for bringing it to our attention, we'll try to clarify the language soon!

</comment></comment></comment></comment><comment><USER40> In case you are wondering how many users they have:

<https://cat.tent.is/followings>

</comment><comment><USER41> The UX for this is kind of terrible in its current iteration, and extremely confusing as to where I am, or what's going on.

</comment><comment><USER42> Now all that i need is a proxy, that reliable allows me to use my own domain as a tent server, proxying to tent.is. ;-)

</comment><comment><USER43> This makes @replies rather harder, doesn't it? You have to know both the username and the domain

<comment><USER33> Just the domain - but its also too bad they chose "^" instead of "@" - <USER2> change something everyone know how works?

<comment><USER44> This is the first thing I noticed too (thanks to the welcome post from tent.tent.is) and this is the answer <https://tent.tent.is/posts/k0rxvn>

If Tent goes mainstream, we will get used to it. No big deal.

</comment></comment></comment><comment><USER41> Follow me at <https://modarts.tent.is/> !

</comment><comment><USER45> They just changed from 140 characters limitation to 256 with a blink of an eye!

</comment><comment><USER46> What is the difference between a passphrase and a password? Good grief.

<comment><USER47> <http://xkcd.com/936/> has a mildly amusing explanation.

<comment><USER46> I saw that tent used an xkcd comic to explain it, and was instantly reminded that the audience of tent will never ever become anything close to mainstream

<comment><USER48> Haters gonna hate.

Thing is, what it is now is not necessarily what it _will_ be. Right now it's for the nerds, no question. Twitter was the same thing when it started.

<comment><USER46> The killer thing about Twitter was that it was succinct public text messages. It turns out that is actually kind of an awesome way to communicate in some contexts.

The killer thing about tent is that it is an open, de-centralised social network. It turns out that is actually kind of an awesome way to … ?

<comment><USER29> I don't know about you, but social networks and email seem fairly similar in that I don't want to be locked into the same website my friends are using. Can you imagine how painful email would be if it had been controlled by one company from the start? That's why people are excited about Tent.

</comment></comment></comment></comment></comment></comment><comment><USER49> Tent.is is the most confusing domain name, ever. Hurts my brain when I read anything. Feels like bad grammar.

"Tent.is is the easiest..."

Not to mention I have no idea what "Tent.is" actually IS after reading the extremely confusing blurb.

<comment><USER50> its a social network, similar to twitter except not owned by anyone.

so your twitter handle is twitter.com/mrchess but if twitter was cool like tent then you could CUSTOMIZE it to your own domain like mrchess.com/tom

Tent lets you do stuff like that because all they're doing is creating a solid platform. They're creating the pieces that connect and communicate.

Don't want Ads on your social network? create your own tent server by installing some software and follow people that you want to. their updates will be sent to your tent if you follow them.

</comment></comment><comment><USER51> $12/month is around the same ballpark as my water bill.

<comment><USER25> About the same as mine as well. Although I don't personally utilize Facebook, I believe this could take the place of it. My friends' use of Facebook makes me feel uncomfortable, like I have to monitor them (they just don't have any understanding of the implications).

</comment></comment><comment><USER52> no unicode support

</comment><comment><USER53> Tent is probably like CIA?

</comment><comment><USER38> can't reply to a reply :-(

</comment><comment><USER54> Limited in the free version? This isn't going to work in the battle against Facebook... Yes, I realize it's too early to 'battle', but if it's starting out like this already...</comment>


Scottish bookstore lets people run the shop while renting an apartment upstairs - <AUTHOR> https://www.nytimes.com/2018/06/28/books/open-book-wigtown-bookstore.html <comment><USER2> This is a sort of MVP test of the rose-tinted small business dreams we all hold in our hearts. Obviously I'm not the only one who's walked into a musty bookstore and said, "this is nice, maybe it could be me," or wandered into a quaint pub and thought, "maybe I could own a place like this." How great to be able try it out for a few days and instead wistfully proclaim, "I should keep my day job."

<comment><USER3> I worked in retail for a year or so. Most of the time it's very boring, because there are always long periods with no customers.

Some of the time it's frantic, because there are too many customers.

A lot of the time it's depressing, because a scary percentage of the population struggles with basic adult agency and/or comprehension.

I think everyone should do it for a while.

</comment></comment><comment><USER4> This is a non-profit, so hopefully it's ran well and everyone is happy. However, as an Australian with friends who've traveled to Scotland, apparently it's quite common for businesses to provide accommodation in exchange for work, and at times this can be really exploitative.

A friend of mine stayed and worked at a remote bed and breakfast in Scotland for a couple of weeks. However, despite the manager claiming otherwise, my friend was often left on their own with no idea how to run the place. My friend was given no training and the manager would tell them he'll be in for the weekend, then simply not turn up.

As a result my friend was stuck looking after the place and missed out on the weekend (and many other days) when they were supposed be out enjoying their travels. It's just worth keeping this in mind, before signing up to something like this - there are unfortunately plenty of dishonest people out there.

<comment><USER5> It's not for everyone I guess. To me that sounded appealing and adventurous. It's not like, if you screw up, you will be stuck in the aftermath the rest of your life.

<comment><USER4> If you've agreed to it, sure. However, when someone has intentionally misrepresented the situation to take advantage of you. I don't know how you can possibly end up feeling good about that. Particularly when you've made plans in accordance with the information you've been provided.

</comment></comment></comment><comment><USER6> I'm dying to know more about how the financial end works. Where do the profits go, and more importantly, how do expenses work? If I'm renting for a week, can I order a bunch of sci-fi (or anything I'm interested in) and leave the invoices for the non-profit to handle? Or is it more that you act as the manager, changing decor, the vibe, etc, but stocking decisions and whatnot fall under the purview of the non-profit.

</comment><comment><USER7> Pretty much identical to Shakespeare & Co in Paris. I lived above the shop for about 3 months in exchange for working at the shop. Pretty amazing time.

<comment><USER8> Oh wow when did you do this? Is it something that's still going on?

<comment><USER9> Apparently, yes.

[https://en.wikipedia.org/wiki/Shakespeare_and_Company_(books...](https://en.wikipedia.org/wiki/Shakespeare_and_Company_\(bookstore\))

<comment><USER10> The name Sylvia Beach sounded familiar. There's a library-themed hotel in Newport, Oregon named after her, [http://www.sylviabeachhotel.com/](http://www.sylviabeachhotel.com/)

I spent a night there before beginning a cross-country trip over US Route 20. Each room has a theme, packed with books. The whole place is packed with books. Many of the guests spend all day reading.

</comment></comment></comment></comment><comment><USER11> Wigtown is a lovely little place, a locus for eccentric book people. There's not one but two science fiction and fantasy bookshops run out of people's houses there.

</comment><comment><USER12> There are lots of people who want to run a restaurant. A place where you pay to do it for a week or a month would cure them of that desire.

<comment><USER13> If they have any business acumen and decent command of the French language they can do it in France. In August, when most businesses shutdown for the summer holiday some owners will leave their bars and restaurants to trusted friends.

I have a friend that occasionally manages a Parisian bar or 2 while the owners are away. Since he gets to live (they usually own the apartment directly above) and work at the bar as well as a cut of the, very meager, profits it's a win/win.

</comment></comment><comment><USER14> Bernard Black, is that you?

<comment> King-Aaron Add a dab of lavender to your milk, leave town with an orange, and pretend you're laughing at it.

</comment></comment><comment><USER15> What are the visa implications of this - i.e., would a tourist need a work permit?

<comment><USER16> Yes, providing accomodation is a form of payment, so you do need a work permit.

<comment><USER17> You got it backwards: booking and paying for the accomodation allows you to run the shop while you stay. You pay for both the flat & the privilege of working the till.

</comment></comment></comment><comment><USER18> Am I the only one who finds it odd the author chose to use "lets"? Not sure why but it really bothers me.

<comment><USER19> I, too, am intrigued; what bothers you about "lets"?!

<comment><USER18> ¯\\_(ツ)_/¯ I don't know, I have no good reason it just annoys me. Alternatives that would annoy me less: This Scottish AirBnB comes with a job at a bookstore, or, An AirBnB in Scotland includes running a local bookstore, or, Take a working vacation at this bookstore AirBnB.

<comment><USER20> I'm with u dude, it's extremely odd phrasing to say that the airbnb "LETS" you run the bookstore when the article makes clear that running the bookstore is a requirement of staying at the airbnb. There's no option described that involves NOT running the bookstore so it seems like an extremely poorly phrased title.

<comment><USER21> I think it's meant to be parsed more as conveying the sense of opportunity rather than choice. As in "this luxury car _lets_ you experience a comfortable ride."

</comment></comment></comment></comment></comment><comment><USER22> can we get a summary for people who can't get around the paywall?

<comment><USER22> People downvoting -- do you like it when people post paywalled links?

<comment><USER23> The HN policy on paywalls is described in the FAQ:

> _" Are paywalls ok?"_

> _" It's ok to post stories from sites with paywalls that have workarounds."_

> _" In comments, it's ok to ask how to read an article and to help other > users do so. But please don't post complaints about paywalls. Those are off > topic."_

[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

<comment><USER22> Thanks for at least giving me a straight answer instead of simply downvoting. I do find that policy annoying, though I'm apparently not allowed to talk about it.

<comment><USER24> Users usually post workarounds in the thread (though not so much when a simple incognito window is all that's needed).

There's more explanation here:

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

[https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...](https://hn.algolia.com/?sort=byDate&dateRange=all&type=comment&storyText=false&prefix&page=0&query=by:dang%20paywall)</comment></comment></comment></comment></comment>


Ask HN: How do you manage your front-ends on multiple platforms? - <AUTHOR> Most of the software engineering in my organization has been back-end work so far. However, there is a push to start providing front-ends on many platforms (on- and offline Android & iOS, and web, likely including features such as image and location capture). I am worried about the need for many different technologies in a  small team.<p>How do you manage this in your team? Do you hire people with a variety of skills? Do you use toolkits like Flutter/React Native? Are you happy with the decisions you've made on this? <comment><USER2> In my opinion a catch-all framework such as React native (and even before that, Appcelerator) costs you more in the long run than just jumping in and developing natively for each platform. On the surface these frameworks look great, write once deploy anywhere etc etc. The trouble is that deliberately choosing to put a barrier like this between you and every platform means you are tied to the development progress of the intermediate platform. Its like sticking a plastic toy steering wheel on top of the steering wheel in your car. Also, I don't think the promise of 'write once' is ever fulfilled. I think you will always find yourself with different edge cases for IOS, Android and Web that take up more time than its worth. You'll spend more time dealing with edge cases than you saved by not just going native.

My opinion is to forget React native or any other framework that promises the world, and just get your team to build native IOS and Android apps. You have clever people that can handle both. Also, most mobile developers are proficient in Android and IOS.

Lastly, I think your team would likely enjoy the chance to learn Swift for IOS and continue using Java/Kotlin for Android. Give them a week and I bet they could build you two great looking demo apps in both platforms with no need for React native weighing them down. Try it. One or two weeks. See what your team can do. I bet it's a lot.

Go for long term speed, efficiency, simplicity and core platform knowledge and drop the quick win, promise laden ball-and-chain frameworks such as react native. You don't need it.

Just my opinion :-D

<comment><USER3> If u follow history of RN , you will find that main advantage is that your JS devs can ship to mobile ios/android so it helps smaller team to ship.

Of course if u want to build in native tech than the app will be higher quality, but the disadvantage is that your devs probably wont be efficient in catching kotlin or swift so fast as RN.

In the long term i do agree but 90% ideas for a product fail anyway, iif you know it will succeed then go native

<comment><USER2> I think there is always an assumption that the JS devs will thank you for not making them learn Swift and Java Kotlin, and that time will be saved by doing so. In both cases I think the assumption is wrong however. Devs love to learn and this will speed up development overall and produce a better product.</comment></comment></comment>


Insomnia GraphQL Support - <AUTHOR> https://insomnia.rest/graphql/ <comment><USER2> Hasn't this been a feature for a while...

<comment><USER3> Yup, it was introduced in August last year: [https://insomnia.rest/blog/introducing- graphql](https://insomnia.rest/blog/introducing-graphql)

<comment><USER4> I was similarly (to GP) confused about this as "news", since Insomnia's been my go-to GQL tool this year.

</comment></comment></comment><comment><USER5> Love the tool, but is there any way to view the GraphQL schema / docs in the UI?

<comment><AUTHOR> Not yet but it's been discussed in the past [1]

Seeing as how Insomnia has become fairly popular in the GraphQL community I will likely take a look at implementing this soon :)

[https://github.com/getinsomnia/insomnia/issues/451](https://github.com/getinsomnia/insomnia/issues/451)

</comment></comment><comment><USER6> Die already, graphql.

<comment><USER7> We've banned this account for not using HN as intended. If you don't want to be banned, you're welcome to email firstname.lastname@example.com and give us reason to believe that you'll follow the rules in the future.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment></comment>


Introducing Bundle Compiler - <AUTHOR> https://github.com/glimmerjs/glimmer-vm/pull/631 <comment><USER2> If you could AOT compile the templates into bytecode, which has to be parsed, why not just AOT compile the templates straight to JavaScript(like Angular 2/4)?

<comment><USER3> This is what I was going to ask as well. The only benefit I can see to this is that they are trying future proof for when WebAssembly or some other back end is more prevalent? Maybe they want to do Glimmer-Native?

Handlebars -> JS/TypeScript compiler -> Bytecode -> JS probably anyway -> HTML seems like a lot of work.

</comment></comment><comment><USER4> A few questions:

1\. How does render time compare to the same thing without the AOT compiler?

2\. How does render time compare to React or Inferno?

3\. Are Glimmer templates type safe, or are they plain old strings?

4\. How do I consume compiled templates? It seems like I need to transform my code to use compiled templates as opposed to raw templates?

</comment><comment><USER5> > Once we have loaded the program we simply set the program counter to the > handle and start executing the VM.

Seems like a perfect use case for WebAssembly once it's adopted. Instead of each framework creating their own bytecode implementation and VM to match it.

<comment><USER6> I'm baffled... why aren't they compiling to JS? They're cheating the runtime out of the ability to JIT the resulting code, which seems like a huge penalty.

<comment><USER7> I'm assuming that most of the runtime cost is in the actual DOM manipulation, so unless the JIT can inline and optimize those calls, doubly-interpreted code isn't going to slow down things much.

However, what they seem to be going for is a reduction of the time it takes to download and parse the code, so a specialized compressor makes sense. WebAssembly or the Binary AST proposal would change the calculation, but maybe it still works for them.</comment></comment></comment>