The Efficient Crank Call Tool - <AUTHOR> http://www.techcrunch.com/2007/03/26/the-efficient-crank-call-tool/ <comment><USER2> The founder of this site was at startup school. I met him. He was excited about his idea. I lose my phone a lot, so I thought it would be a nice toy.

At risk of starting a lot of crank calling:

<http://phonemyphone.com/>

<comment><AUTHOR> That they feel they need a big message at the bottom saying, "We log all calls and IP addresses" says a lot about the service.

<comment><USER3> Saw them @ startup school as well, and I could see it being useful. I'm not sure what the business model is, I wouldn't have called it "stupid"

I imagine they put the IP warning up in response to the techcrunch press. The real solution would be a message when someone picks up telling them to "Press 1 to stop this service from calling you in the next hour. Press 2 disable it permanently"

</comment></comment></comment><comment><USER4> And yet once more, a startup as a reimplemented UNIX command.

for I in `seq 0 9`; do echo "ATDT123456789" > /dev/modem; done

<comment><USER5> Its not your phone number calling, which is an important difference.

</comment></comment><comment><USER4> Please don't take the direct approach to finding out (seriously, don't), but I wonder what happens if you tell it to dial 911.

</comment><comment><USER6> I think this tool is a lot more fun for crank calling.

<http://popularitydialer.com/></comment>


A Comprehensive Study on the Energy Efficiency of Java Thread-Safe Collections [pdf] - <AUTHOR> http://gustavopinto.github.io/lost+found/icsme2016.pdf <comment><USER2> Great work! Let's hope this is an early contribution to a novel way of measuring computational complexity. Power drain, as much as time, is the scarce resource both in data centers and in mobile devices. It's great to think about measuring it.

Wouldn't it be great if our favorite IDEs showed a little yellow lightning bolt indicating suggestions for reducing the power-consumption profile of the code? Some of it could be obvious stuff (StringBuffer in place of string + string in loops, for example). But nonobvious stuff could be flagged too.

Of course, I hope the authors or others will try the same sorts of things on low-power mobile processors, and with workloads closer to the real world.

<comment><USER3> Where I work the IDE does indeed present this information prominently, if you consider raw cpu usage to be a decent approximation for energy consumption. A function using more than a certain amount of cpu in production is annotated with a little mark and if someone changes it the change review system brings the cost of the code to the attention of the reviewer so they have efficiency in mind when reading proposed changes.

<comment><USER4> Sounds impressive - is this a publicly available ide?

<comment><USER3> No it is a company-specific hack. The relevant thing would be to have the profile data to begin with. Then you can work that into whatever annotation scheme your IDE offers.

<comment><USER4> Great - reading between the lines that would require

a. Gathering perf data in prod at scale

b. Aggregating it and mapping it back to source

c. Having that available within the IDE

Looks like youre working for a surprisingly clueful employer if they are doing all of the above.

</comment></comment></comment></comment></comment><comment><USER5> In broad strokes, what are the most energy costly parts of a computation? One must be particularly bad... I'm guessing CPU activity, because it generates the most heat? If you broke it down further, what's the most expensive parts of it?

What causes divergence between energy efficiency and time complexity? I would expect both roughly scale proportionate to the number of instructions executed.

</comment><comment><USER6> Looking forward to the days I can compile code with a "-Oe" to optimize for energy efficiency. ;-)

<comment><USER7> -O3 is probably an excellent approximation. Faster programs tend to use less energy.

<comment><AUTHOR> Not necessarily true. Please check: [http://arcade.cs.columbia.edu/energy- oopsla14.pdf](http://arcade.cs.columbia.edu/energy-oopsla14.pdf)

</comment></comment></comment><comment><USER3> If we're going for least energy, wouldn't it make sense to compare amongst languages? If it were one of my requirements I would not take Java as a given. I would also not take C++ as a given. I'd measure and choose.

<comment><USER8> Part of the reason could be 1) Android and 2) even excluding Android, Java is immensely popular for small, low-power systems.

</comment></comment><comment><USER9> Thanks for posting this. Because of it I just remembered that I saved a slightly similar link [1] and the github repo of the used jvm/scala library [2] into my bookmarks years ago, but haven't read them yet.

[1] [https://hal.inria.fr/hal-00681560v3/document](https://hal.inria.fr/hal-00681560v3/document)

[2] [https://github.com/Spirals-Team/powerapi](https://github.com/Spirals- Team/powerapi)

</comment><comment><USER10> This is very useful, but I hope they publish the code to perform this test. Sunacle changes stuff all the time to increase performance, and the numbers will change over time.

</comment><comment><USER11> Wow! This is super-nerdy! Love it.</comment>


Python 101: Downloading a File with ftplib - <AUTHOR> http://www.blog.pythonlibrary.org/2012/07/19/python-101-downloading-a-file-with-ftplib/ <comment><USER2> You can also use urllib, which makes it a one-liner:

        >>> import urllib
        >>> doc = urllib.urlopen('ftp://ftp.example.com/foo.txt').read()

PyCurl is another popular choice, though less simple to use.</comment>


Ask HN: Business model for content creator - <AUTHOR> If you are a content creator, there is a few business model available
- If you start a blog, you can serve ads (e.g. Adsense) or join Medium membership program.
- If you create video for YouTube, join YouTube partner program.
- If you stream game, join Twitch affiliate program.
- If you are an artist or creator, create a Patreon.
- If you are working on a new project, there is Kickstarter.
Is there any other options which I miss out? Is there a way for Twitter and Facebook content creator to monetize?
Though Google Contributor is dead, I thought there are still many opportunities for consumer to pay content creator which are not explored, or at least not competitive enough.
For example, there isn't a Like & Pay feature. For example, I might like a blog post or video or a github project, why the following options isn't available
- "I Like" button where 10c or $1 is contributed seamlessly.
- "I Support" button like Patreon when I pay monthly contribution with access to certain perks.
Maybe there is something like "Contibutor Wallet", once setup payment could easily be made upon click. As for transaction fee for micropayment like 10c, maybe I could pre top-up my wallet to avoid unreasonable transaction fee. Perhaps Google, Stripe or Alipay would like to take on this opportunity? <comment><USER2> Build an Instagram/Facebook/Snapchat following and get products or paid to promote products from other companies.

</comment><comment><USER3> Sell branded t-shirts and stickers and anything else you can get your audience to buy.</comment>


Faster, leaner and better Next.js - <AUTHOR> https://www.jsmantra.com/faster-leaner-and-better-next-js-ea40afb94907 <comment><AUTHOR> We recently launched a bunch of really exciting performance improvements for Next.js. Would love to answer any questions about them or the framework in general!</comment>


Show HN: Goodbits is now open for everyone - build instant newsletters - <AUTHOR> http://blog.goodbits.io/2014/05/08/goodbits-is-now-open-for-everyone/

<comment><USER2> Been using during beta and highly recommend for super easy newsletters, especially curation-focused ones.

<comment><USER3> Second this. Mailchimp integration <3

</comment></comment><comment><USER4> Love Goodbits, and it's improving all the time.</comment>


Andorid version of Total Commander available for testing - <AUTHOR> http://ghisler.com/android.htm <comment><USER2> In case anybody's wondering why this particular tool is news worthy, Total Commander is one of the few remaining orthodox file managers¹, a sub-genre whose origins date back to the original Norton Commander for DOS, decades ago.

I stopped using orthodox file managers when I switched to Linux and discovered the pleasures of a half-decent command-line shell. I knew people had made more such tools for Win16 and later Win32, but it's staggering to think that the orthodox file manager has (at least vaguely) survived into the smartphone era.

¹: [http://en.wikipedia.org/wiki/Orthodox_file_manager#Orthodox_...](http://en.wikipedia.org/wiki/Orthodox_file_manager#Orthodox_file_managers)

<comment><AUTHOR> I thought it was worth submitting since I'm one of those people that can't use Windows at all if Total Commander is not installed.

I tried to find decent[1] file manager on Android, but didn't like anyone. TC works great here too, although it is more like "mainstream" than "orthodox" file managers in Android context.

[1] - By decent I mean the one I like. I tried different flavours of file managers, but noone stuck.

</comment></comment><comment><USER3> Spelling mistake in "Android" in the link title.</comment>


Concurrency in Go: A Better Call Center Tutorial - <AUTHOR> http://www.mprescient.com/journal/2011/1/30/concurrency-in-go-a-better-call-center-tutorial.html

<comment><USER2> "In Java doing the above is not that simple. This is because the max number of threads you can launch is limited to the size of your system and is typically less than 100."

.... huh? Pretty sure I run Java applications with a higher max threads than that all the time. Although, yes, it's good practice to not have too many more than cores unless you want to schedule a lot of I/O requests at once.

I've actually been writing some Go lately, and I like the way channels and goroutines work, but you can (and should) do the exact same thing in Java with SynchronousQueues and ExecutorServices. Those map exactly to channels and goroutines, and are more expressly configurable (which is a plus and minus). It's a little more syntax but it's really flexible and performant.

<comment><AUTHOR> Good to know about SynchronousQueues and ExecutorServices. I had not heard of these before.

<comment><USER2> Yeah, check the source for the static builders in Executors, like Executors.newCachingThreadPool, newFixedThreadPool, etc. They're all just different ways of wrapping ExecutorServices around a task Queue.</comment></comment></comment>


AWS Lambda: a few years of advancement and we are back to stored procedures - <AUTHOR> http://it20.info/2016/04/aws-lambda-a-few-years-of-advancement-and-we-are-back-to-stored-procedures/ <comment><USER3> > _There is some truth to it. This, however, isn't due (too much) by how you > write the code from a syntax perspective: while coding my Python program I > noticed that when the function is run in the context of Lambda, the platform > expects to pass a couple of parameters to the function ("event" and > "context"). I had to tweak my original code to include those two inputs > (even though I make no use of them in my program)._

This is just a product of bad design

A better approach would be to decouple all your business logic and provide an interface to it.

e.g.

        MyBusinessLogic
            doSomeBusiness

        MyLambdaRequestHandler
            - <USER2>
              - call myBusinessLogic.doSomeBusiness

That way if you need to move away from AWS Lambda, you can simply remove MyLambdaRequestHandler and any associated unit tests and your application code is unaffected.

<comment><USER4> I personally hate stored procedures because they invite bad design. The code for them rarely makes it into source control, and even when it does there are often contextual parts of the schema that aren't included.

If you can do them properly (i.e. source control everything, proper schema update scripts, etc) they can work ok. Just hope you marketing guys don't want to do any A/B testing of various algorithms.

Stored procedures, IMO, are a case where DBAs should be pushing their pain down to the software engineering teams. I think a lot of this delineation will disappear as cross-functional product teams become more integrated across the industry, however.

<comment><USER5> I couldn't disagree more. Hand-tuned stored procedures are always more performant (and sometimes even more SQL injection resistant) than anything spit out by ORMs.

It's more minor / maybe just me, but I also like the fact that I can replace logic in a stored procedure without having to push out a whole new software build unless I change the inputs or outputs.

<comment><USER6> > Hand-tuned T-SQL is typically more performant than ... ORMs

It's not ORMs vs Stored Procs unless your data access framework is garbage.

<comment><USER7> Is that fair? What if the language of an application that the developer must extend has only "garbage" (in your opinion) ORMs? Which ORMs allow me to update an object without querying for it first? And before you say "you shouldn't do that", remember: your domain experience is different from mine. My domain experience includes guaranteed single-concurrent-accessor systems where the service isn't in any danger of racing another use to the data.

Many ORMs will double the DB<->app traffic when a single column of a single row is changed, even if only the primary key of an existing record and the NEW column value are the only things that need to be sent, and the front-end application is the only possible source for BOTH values. Sure, I'd need to check for consistency - is this record the same as when I first queried it? - but a trigger (don't laugh, that'd be a mistake) that locks a row and increments a "row_version" value on update could allow me to optimize the consistency check to a simple "SELECT id, row_version FROM my_table". I'm personally not aware of any ORM that allows for that kind of optimization, though I'm also certainly aware that I'm not an expert in all ORMs and all things related to RDBMSs.

ORMs have their place. Many solve common problems well. Just as many miss some optimizations that _may be relevant to one person, but not to you_.

</comment></comment></comment></comment></comment><comment><USER8> Usually Massimo's stuff is quite well thought out and practical when it comes to adopting new models in the Enterprise, but this article has a "I'm annoyed by this platform because it doesn't work how I want it to" sentiment throughout. He seems to miss a lot of the potential value that the serverless architecture model brings to the table.

It's pretty well established that Amazon's usual approach is to provide a "toolbox" of services that can used to build any number of app architecture permutations, without all the typical fluff and polish expected by large business customers. I for one, as an engineer, appreciate this model since it's much more accessible and lightweight.

<comment><USER9> > He seems to miss a lot of the potential value that the serverless > architecture model brings to the table.

Its a code evaluation platform, running containerized under the hood, and with a large markup by Amazon. Companies have offered this for years before AWS, but AWS is tooting the horn louder than people have before.

Is it useful? Yeah, sure. Is it revolutionary? Oh come on now.

Just like "the cloud" is just timeshare on someone else's computer, this is simply code management and execution abstracted a few more layers up.

EDIT: Sorry I'm not on the hype train folks.

<comment><USER3> The infrastructure isn't revolutionary, I believe IRON.IO and others have similar platforms.

The innovative aspect of AWS Lambda is the triggers hook into a variety of popular AWS services, e.g. S3, Kinesis etc, with very little setup required from the developer, along with an easy interface and setup process. It abstracts away from containers and operating systems.

Google and Microsoft have recently launched beta versions offering 'Lambda' like functionality. AWS has led on this one, I don't think you can argue against that.

<comment><USER10> Another major piece of this puzzle that people overlook is AWS API Gateway, which provides a web gateway to Lambda. It's a newer product (and quite poorly PM'd, quite frankly), but it's an important part of the puzzle that no other cloud function provider has yet.

<comment><USER3> I've not used API Gateway, but I believe Microsoft support invoking their 'Azure Functions' style lambda service via HTTP calls

[https://azure.microsoft.com/en- us/documentation/articles/fun...](https://azure.microsoft.com/en- us/documentation/articles/functions-reference/#bindings)

<comment><USER11> You can do that with Lambda as well. The API Gateway is an abstraction in front of that giving you more control then connecting to Lambda directly.

<comment><USER12> I tried to build a serverless contact form by hooking up AWS Lambda function into S3 HTTP API event source and it's hard to configure and not working well. In any case it's not an alternative to HTTP Request triggers in Google Cloud Functions or Azure Functions.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> The site appears to be down.

One way to avoid that is to use web frameworks based on AWS Lambda, such as Zappa - [https://github.com/Miserlou/Zappa](https://github.com/Miserlou/Zappa)

<comment><USER13> At first I thought this was a clever joke. Thanks for sharing this link. Serverless apps could definitely make sense in many scenarios!

</comment></comment><comment><USER14> I don't understand why Amazon doesn't launch a clone of App Engine. This is the holy grail in NoOps. AWS Lambda + API Gateway is a bureaucratic exercise in pain, true to AWS form, while App Engine is a pleasure to use. Anyone who have used both services will understand me.

It seems to me (from reading HN) like most people are avoiding using App Engine because Google tortured and killed their pet, err, I mean cancelled Google Reader three years ago.

(And I guess, the inference is that because Google killed a tiny unprofitable service once in the past, you can not realistically depend on them to continue to provide services they are actually putting real money into because it is of strategical interest. Yeah, that makes total brogrammer sense, let's go with that line of thinking.)

<comment><USER15> G's habit of killing services doesn't explain the extent of AWS's dominance. There must be some way that AWS is actually superior for popular uses.

<comment><USER16> AppEngine had the misfortune of being too early.

I remember checking out both in 2007, right when AppEngine first launched. EC2 was just Linux; you had a familiar virtual machine to work with, and you could port your existing code over with virtually no effort. AppEngine required learning a whole new API, which was completely non-portable and locked in to Google, and that was a complete non-starter.

Also, being a PaaS, there was a lot more to get right with AppEngine, and the API changed a lot over the years. I remember looking at it in 2007 and thinking "There is no possible way I can get work done with this." In 2009, it was "Well, it _might_ work, but it's way too much hassle." In 2010, it was "Nope, still too hard." Finally in 2012, I tried it again and it was like "Woah, finally this stuff is usable, and it's actually pretty pleasant." But by then, the outside world had Heroku, it had Beanstalk, it had Parse & Firebase, and there's a huge ecosystem around AWS.

It's a pretty good example of path dependence. If you're just coming to cloud computing _now_ and have never run your own software before, AppEngine is actually a fairly nice alternative. But in 2007-2009, when a lot of us were first checking it out, it was an overly-complicated, vendor-lock-in mess. And vendor lock-in mattered a lot more then; now many developers have just accepted that they're going to be locked into certain platforms, but back then, building on anything that didn't have a publicly-specified API was a huge mistake.

<comment><USER14> This matches my experience. Right now, AppEngine is really nice (pleasant).

And if you use Flask/WSGI interfaces + Cloud SQL there isn't even a lock-in.

The only big issue I can see: no AppEngine in China. :/

At the moment I'm resigned to use app engine for the world-minus china, and some AWS EC2 inside China, running the same code plus a a lot more admin work.

</comment></comment></comment></comment><comment><USER17> All these years of progress and a site can't be up when it's on HN?

I worked with Lambda a lot, piping the JSON input into Go programs and I cannot be more happy with something.

I work with Go just like I am used to, testing, compiling, CI and everything and then, I have a shell script that deploys it to Lambda (uploads the zip).

For what I need, lambda is absolutely great!

<comment><USER18> On that tangent: I've always personally wondered why social bookmarking sites (Reddit, HN, etc.) don't cache/mirror/archive the sites people link to through them. The original content site's ads and analytics and such are usually client-side JS anyway, so they'd still get dynamically served even on the mirrored page. The original author would still make money from the traffic; they'd just avoid having to pay for the concomitant DDoS.

</comment></comment><comment><USER19> I didn't find much in the author's post that I agreed with. In particular, a few of his points stuck out to me:

> In traditional PaaS world the code is the indisputable protagonist (oh, > damn, and you also happen to need a persistent data service to store those > transactions BTW). > With Lambda the data is the indisputable protagonist > (oh and you also happen to attach code to it to build some logic around > data). > A few years of advancement and we are back to stored procedures.

I don't agree at all. Lambda is code. It's code that is invoked upon receiving certain kinds of data, but in no way is the Lambda code subservient to the data, or (unlike stored procedures) even colocated with it. Lambda still needs persistent data services to play with persistent data -- there's nothing magic about it.

> There also have been a lot of discussions as of late re the risk of being > locked-in by abusing Serverless architectures (like Lambda). > There is some > truth to it. This, however, isn't due (too much) by how you write the code > from a syntax perspective: while coding my Python program I noticed that > when the function is run in the context of Lambda, the platform expects to > pass a couple of parameters to the function ("event" and "context"). I had > to tweak my original code to include those two inputs (even though I make no > use of them in my program).

The author describes having to write a controller method. This is not surprising, considering he was trying to make a web service.

> So, IMO, the lock-in will not be a function of how different the syntax in > your code will be Vs. running it on a platform you control (probably > minimally different) but rather in how scattered and interleaved with other > services your code will be (at scale).

This is the most cogent point in the article. API Gateway + AWS Lambda can be used to create micro-microservices. Serverless Framework tries to wrangle this potential complexity by allowing users to group related lambdas/endpoints as a whole, but there is still the opportunity to create a real rat's nest of logic if we're not careful.

> P.S. Yes, I know that it's called "Serverless" but it doesn't mean "there > are no servers involved". Are we really discussing this?

Yeah, obviously servers are involved. But the fact that I don't have to care about those servers nearly as much (in terms of maintenance or in terms of up- front cost -- both are big wins for most customers) is worth discussing.

</comment><comment><USER4> There are different approaches that make sense for different use cases. Is your use case a big database that you just run some commands on top of? Lambda seems great in that case! Just build a front-end client, have it interface directly with Lambda, and you've got a pretty quickly developed app.

Is it the right architecture for everything? Hell no. System architects are in higher demand than ever because there are so many freaking ways to build technology products these days, and it's their job to figure out what tech is right for the job.

</comment><comment><USER19> The site is being quite slow. Pastebin link: [http://pastebin.com/BceUgZk1](http://pastebin.com/BceUgZk1)

</comment><comment><USER20> Not there yet. Stored procedures are seamlessly integrated with underlying database. There are some hurdles with that for Lambda.

But the critical point is that Lambda is distributed and massively scalable, and stored procedures weren't.

Remember that company, Sun? The one that invented Java? When it was still alive, it has an unofficial motto, "the net is the computer". Nobody understood it then; now we know.

All computing science achievements will now be reproduced in distributed environment. OS? Check (AWS/DCOS/Kubernetes). Filesystems? Check (IPFS). IPC? Check (REST/Websocket). Perhaps even "drivers" will be a new thing (for IoT devices).

</comment><comment><USER21> Lambda for node devs at the moment is terrible, the version of node is now 13 months old and with the pace of node development it sucks AWS can't keep up even to major versions :( right now I can't use lambda .

<comment><USER22> You mean the pace at which you adopt new node features, right? Because the pace of node development does not dictate how you write code.

</comment></comment><comment><USER23> Honestly I think a lot of the frustration is because Lambda is not a fully developed platform yet. I decided to use it for a new product we're building at Cronitor and it's not a travesty but I wouldn't have used Lambda if I had it to do over again.

They give you decent primitives: immutable versions, aliases, easy logging. But everything else you have to build yourself: You have to figure out a development loop, deploys, configuration management. There is nothing built-in to help coordinate lambda deploys across regions.

I expect that you'll see this built out more this year.

<comment><USER7> > _You have to figure out a development loop, deploys, configuration > management. There is nothing built-in to help coordinate lambda deploys > across regions._

[https://github.com/serverless/serverless](https://github.com/serverless/serverless) solves (upon my initial read-through) every one of your requirements, including multi-region deploys.

<comment><USER23> That may be true, but when you start using something like Lambda, you don't immediately jump to "what 3rd party framework can I use to manage this". It's not clear what the weakness are until you experience it. In the end, we solve it with a few hundred lines of fabric and bash scripts but neither of those solutions make up for the blown opportunity of a better and more powerful UX. (Lambda PMs have been on here before and have said they're working on it.)

</comment></comment></comment><comment><USER24> > AWS describes Lambda (their implementation of Serverless) as the way how > you'll do think post containers.

Is this sentence was written in double speak or did I just have a stroke?

<comment><USER25> Sorry that was a typo. I meant to say "how you'll do things post containers".

Corrected. Thanks.

<comment><USER24> Thanks. The ironic part of my comment is that my question was written as:

"Is this sentence was written...", which is even more broken.

</comment></comment></comment><comment><USER26> Lambda is very limited due to the very short (5 min CPU time) and limited amount of disk space (500 MB /tmp). It's always been my thought the reason for this is that Amazon is effectively running lambda functions on unused (but possibly reserved) hosts, such that they can easily be shut down and don't consume a lot of disk space or do anything so no one will notice (or even tell) the slight performance hiccup.

<comment><USER3> Lambda has a number of use cases, if you need something to be running for more that 5 minutes with lots of disk space, you're probably better off running on EC2 (or docker containers via ECS), it's designed for short lived, stateless computations.

<comment><USER18> If you need something to be running for more than 5 minutes, you could also (just theoretically) split your work, load it up into SQS, then have your Lambda functions consume it, map-reduce style.

</comment></comment></comment><comment><USER18> To go off on a complete tangent from the article:

There's nothing _fundamentally_ wrong with stored procedures, per se. What was wrong with SQL RDBMS stored procedures was that:

1\. each DBMS had its own stored-procedure programming language—and so application frameworks that wanted to provide compatibility with the generic idea of a "relational database" couldn't really use them unless they had devs on their staff familiar with each-and-every DB†;

2\. there was—and basically still is—no concept of an RDBMS stored-procedure "view" or "schema"—i.e., API versioning for stored procedures, where a client can request to communicate with the set of stored procedures it was compiled to support, rather than the single version the database is holding onto today;

3\. one major RDBMS (MySQL) never supported stored procedures at all, so many devs learned an ossified set of "web development best-practices" without ever being exposed to the idea of stored procedures as an option.

All of these issues are fixable. #3 is just a historical artifact of MySQL's laziness; #1 is likewise an artifact of the proprietary, "enterprise lock-in" nature of the first instances of stored procedures (Microsoft's and Oracle's), evenly fracturing the ecosystem away from adopting either. Neither is likely to repeat.

#2 is more pernicious, and to this day seems ill-addressed.

One place I've seen at least an attempt to resolve it is in the design of Redis's Lua queries, where the "solution" is to refer to the stored procedures by content-hash, with the database having an always-possible error case that requires clients to be able to fall back to inserting the stored procedure again (thus necessitating that all clients track their own copies of any stored procedures they want to call.)

Such a solution could be ported to other RDBMSes; I could imagine Postgres, for example, having a "database view" concept††, where real databases only contain raw tables and indexes, and all the view definitions, triggers, stored procedures, constraints, and even typedefs are held in some record/spec/document that can be both manipulated as data, and connected to as a database. This is sort of equivalent to the CouchDB 'design document' concept.

\---

† Sadly, it's really just a syntax problem. If you had several DBMSes that all had the same syntax but different extenional semantics, it'd be very easy to write a single code-generator into your application framework that would spit out appropriate code to take advantage of the extensions available. That's how regular ORM SQL-generation works, after all. But when you have disparate syntaxes, suddenly you need disparate code-generators, which get out of sync and lose features (or an LLVM-like intermediate-representation that you can do the semantic-optimization steps to before finally doing the codegen step, but I can't imagine that'd be cheap enough to slot into a webapp's hot loop.)

†† To go all the way with such a concept, the real 'data' of the database—the tables and the indexes—can become floating objects, not contained "in" anything or defined anywhere, merely existing because of a ref-count from various vDB schemas. You wouldn't explicitly define tables; instead, you'd define your views (relational projections) and then assert identity relationships between some of the columns of those projections, causing one "table" to exist holding the underlying data for both views. This is, AFAIK, what [https://en.wikipedia.org/wiki/Dabble_DB](https://en.wikipedia.org/wiki/Dabble_DB) was working toward.

<comment><USER27> Can add a few more:

\- Depending on database, the dev tool environment can be extremely limited

\- Depending on database, debugging can be a nightmare

\- Difficult, if not impossible, to scale over more than one node

\- Another version dependency problem added

\- If you want to sell your software, or services depending on an application that uses stored procedures, you need to be very careful how you manage licenses.

</comment></comment><comment><USER28> not sure about the other versions but working with Java, Lambda is was quite a terrible experience (at least if you needed to include a bunch of jars for your work).

<comment><USER3> I've worked on > 6 lambda functions now across various projects using Java, not sure what your problem is.

If you need to include a bunch of jars, using Maven + the maven shade plugin (or assembly plugin) to generate a 'fat jar' is very simple.

In fact, their official documentation states exactly this [http://docs.aws.amazon.com/lambda/latest/dg/java-create- jar-...](http://docs.aws.amazon.com/lambda/latest/dg/java-create-jar-pkg- maven-no-ide.html)

<comment><USER28> Issues I saw (it was months ago, maybe now it's better):

\- was not clear what was the limit on the total size, I think it was supposed to be 50mb, but it was not exact.

\- edit the lambda function code, and wait 10 min till it is uploaded by the eclipse plugin

\- finally not being able to attach a debugger

On the plus side, once you had all up and running, I agree it worked nicely. I complain about the developer experience only.

<comment><USER29> I just finished today to extract a module of my monolith to AWS Lambda in Java. I loved the experience, but first I had to configure a CI in AWS so that the build and deployment cycle was fast.

Since my function needs phantomjs, I embedded the binaries into the deployment package and by just doing that I topped up 36 MB of the 50 allowed. Transferring it from my local regular internet was a pain. Now it's nice, I push code to my dev branch, it gets picked up by the CI, tested, built and deployed. I get a notification in the IDE when the whole roundtrip is done, and with the CI in AWS it takes seconds instead of minutes. Without binaries you can still fit jackson, a few AWS clients, groovy runtime, guava and httpclient in a few megs, which is manageable.

I agree about the debugger, but authoring a function is trivial and unit tests can be written and run without considering Lambda. I miss tailing logs, CloudWatch is nice but it's far from realtime.</comment></comment></comment></comment>


Ask HN: Best approach to Apache logging? - <AUTHOR>

I set up a virtual server on Linode recently, and mimicked their suggested Virtual Host settings like so:

  ErrorLog /srv/www/ducklington.org/logs/error.log
  CustomLog /srv/www/ducklington.org/logs/access.log combined
 However I've discovered that this is not an ideal setup -- on the main site running on this server, the access log has grown to 1.8GB in just a couple of weeks!
For that reason, Apache docs recommend log rotation:

  CustomLog "|/usr/local/apache/bin/rotatelogs
    /var/log/access_log 86400" common
 This would have to be modified of course, for distro-specific location of the rotatelogs command, desired location for the log file, and rotation interval.
So how do you handle log rotation? As above from the Apache docs, or with some other method? And while we're at it, any other customization you've done (formatting, etc.)? <comment><USER2> I use the logrotate package, which is included with most distros. With Ubuntu, most packages include a logrotate configuration for themselves. For this specific virtual host configuration, you could add your own logrotate instruction for it -- look in /etc/logrotate.d.

<comment><AUTHOR> Cool, thanks. That looks ideal -- it's already in use for the main Apache logs by default, just not for the sites I've configured under /srv/www/*.

A single line added to the apache2 file under /etc/logrotate.d and I think all my logs are covered.</comment></comment>


Pointing the finger at buffer overflows, and other C quotes - <AUTHOR> http://www.ccs.neu.edu/home/matthias/cquotes.html

<comment><USER2> It sounds like a sensationalist rant, in my opinion, especially the part where he compares accidental software failure to life-or-death non-accidents (removing stop signs, locking doors). Does anyone know of any cases of death- by-buffer-overflow? Expecting someone to get the same punishment for a programming error that someone else gets for removing a stop sign is silly.

What's the difference between "real-time garbage collection" and ordinary garbage collection? Wikipedia says that Baker "has made contributions in garbage collection", but is it sufficient for him to state that he invented real-time garbage collection? Did Reddit _invent_ a "better news aggregating site"?

The part where he's ranting about how terrible C is really irks me. While it's true that a _lot_ of people have used C in situations where it was not the best option, it certainly has its uses, and to deny that C was a major step forward in programming is fallacy. Programming in assembler has all the shortcomings of C and none of the benefits, and there are always going to be certain software applications that need to be close to the hardware. Not to mention that if you've mathematically verified the correctness of your code, runtime bounds checking really is a waste of CPU cycles.

The article sounds more to me like someone who is bitter that he hasn't gotten more recognition for his contributions and is upset that what seems to him to be an inferior technology has more market share than the tech he has been involved in. Baker may be a great guy who has made important contributions to computer science, but that doesn't mean that resentment wasn't clouding his judgment in this instance.</comment>


FPGA 0 - <AUTHOR> https://rhye.org/post/fpgas-for-software-engineers-0-basics/ <comment><AUTHOR> Excellent practical introduction to the FPGA universe.</comment>


How Silicon Valley Fuels an Informal Caste System - <AUTHOR> https://www.wired.com/story/how-silicon-valley-fuels-an-informal-caste-system/ <comment><USER2> This is an odd use of of the term caste. Or even class. Both of these imply low or no mobility within social hierarchies. But I don't think this is the case.

"An Outer Party member could reach the Inner Party by chancing into an early job at a lottery-ticket company (such as Facebook or Google) or by becoming a successful entrepreneur. But that's rare; most of the Outer Party prefers working for the Inner Party, gradually accumulating equity through stock grants and appreciating real estate." -If you look at the bios of VC "inner party" people, very few were born VC. Many became VC based on their work experience. The quote calls this a "lottery-ticket" experience implying that there's no free will involved with the shift between statuses.

The article also calls out the difficulty of moving from service to skilled worker "outer party"-"The Service Class will likely never be able to drive/shop/handyman enough to rise to the Outer Party, at least not without additional training or skills."

This is really odd because how else would you change status of not through training or skills? Complaining about randomness for skilled->VC and also about need for education for service->skilled seems like a mixed message.

Caste means a rigid hierarchy with no ability to change or even being born into ones status and no or limited marriage between castes [0]. This is not the case based on the level of mobility into and out of status that clearly breaks the definition of caste. This old paper from 1999 shows 24% of firms led by just Chinese or Indian immigrants [1]. So obviously they could not have been born into Silicon Valley castes if they are new to the US altogether.

The mobility to enter, exit, and change between these four defined statuses seems, to me, to disprove the entire premise of this article.

Perhaps the article would be more accurate if addressing issues of wealth and wealth segmenting social constructs like marriage, socialization within communities, etc.

[0] [https://en.wikipedia.org/wiki/Caste](https://en.wikipedia.org/wiki/Caste) [1] [http://wwww.ppic.org/content/pubs/report/R_502ASR.pdf](http://wwww.ppic.org/content/pubs/report/R_502ASR.pdf)

<comment><USER3> The traditional American dream is that you change your status through making friends and simple hard work. If you're the hardest working and most dedicated Walmart sales associate, you'll quickly become a manager, and you can iterate on that at least until you're a regional director or something.

From that perspective, it's weird to look in on a typical Silicon Valley company, where it's understood that only people with specific technical knowledge are qualified to make important decisions. And it's downright scary to look at Uber, where the drivers have no internal mobility even in theory.

<comment><USER2> I've worked exclusively in tech for the past 30 years for 10 orgs or so. I learned new skills through formal and informal training. Not your Walmart example but I both progressed organically and joined company teams. Nowhere was there a static tech team without mobility. Maybe I'm just lucky but even giant banks and Gov orgs had career ladders.

If anything this is less of an issue in tech than other industries.

Tech knowledge isn't innate, no one is born with it. So it's good that decisions are made with people who have specific tech knowledge. It's also good that tech knowledge is one of the most democratic, accessible, and learnable knowledges out there. I know dozens of high level tech leaders who have no degree at all, a couple with no high school diploma and one who dropped out of middle school.

</comment></comment></comment><comment><USER4> Social classes existed before; when revolutions occurred, the composition of each class and the composition of society into classes change.

Just like there are almost 50% of women in a society, the bottom social class (in terms of power, money, etc) is huge. So, whatever mobility one perceives is in the bottom class: moving from $15 hour security guard job to $150K jr dev job.

People from non-American countries recognize this. However, in America, the bottom class since WWII till late 1970's, had a nice job, pension, a home, two cars, with one spouse working; this created the illusion of 'class less' society in America.

When one says that there is no mobility, we are comparing the life of today with that of post-WW2 middle class era.

Even if we look at John Rawls, his difference principle does not eradicate classes. Basically, that principle in one version is same as "a rising tide lifting all boats"; in another version, it is fair to lift some poor boats higher than other boats, even at the expense of the latter.

<comment><USER5> One reason I don't think the caste system analogy holds is because you can't overthrow Silicon Valley with a violent revolution. You can maybe destroy it, but it can't be stolen. A caste system is arbitrary, a meritocracy is not.

The article even admits this implicitly by saying that skills and training are necessary to be admitted to the inner party. Farmers may overthrow the hereditary monarchy because frankly the monarchs never had anything but historical accidents and tradition for their position anyway. But if farmers overthrow google who's going to keep the servers running? Who's going to fix bugs, manage projects, write code?

The same people will end up running everything anyway, because they are the only ones who know how to do it.

</comment></comment><comment><USER6> I used to be an Instacart Shopper and I'm currently taking a web development bootcamp in Manhattan and now I'm on track to make more money than my parents ever did, which is a win in my book. I will do everything I can to make it the next step to the "Inner Party", but what if I don't? Does that mean I "lost at life" if I only end up Upper Middle Class? This author is trying to push a neo-marxist victim ideology onto anyone not in the "Inner Party", and it's insulting. I am not a victim of anything, certainly not some impenetrable "caste system".

<comment><USER7> Maybe Wired knows that and all they are doing is trying to create discord in order to have more engagement and drive more views.

<comment><USER2> You make a good point. I am trying to explain old wired vs. new wired. Old wired was really trying to do something- connect people, unleash potential, whatever something they gave a damn. New wired is trying to sell more to the dwindling audience created by old wired.

They may be just as smart, but wired's old dumb stories ("The Future is Push") were at least earnest.

</comment></comment></comment><comment><USER8> i've lived for long periods inside and outside SV, which I'll flatter myself into thinking gives me an insider and outsiders perspective.

i share the author's sense of horror that SV is becoming a dystopia led by tech elite that think they're building a utopia, but literally have little to no meaningful contact with people that live two or more rungs below them on the socioeconomic ladder.

</comment><comment><USER9> It is really weird if we talk about issues from Marxist class struggle framework.

Homelessness exist because rich don't care, which is an empty argument.

The better argument is that we don't have systems in place to deal with the problem. Let's build them.

<comment><USER10> Such systems cost money, generally collected through taxation. At least in the US, the rich have largely demonstrated that they would rather direct money towards lobbying against a rise in taxation on them, than to the taxes that would fund such a system. So at its core, "the rich don't care" isn't an empty argument, but rather an accurate assessment of one of the root causes.

<comment><USER11> It's perfectly possible to care about an issue supported by taxation and still be opposed to higher general taxation.

I'm very much pro-UBI, yet anti government waste. Too much of government acts, or at least appears to act, as little fiefdoms, employing people with relatively comfortable salaries, no market pressure, and little other controls to ensure they run tightly, efficiently, and effectively.

If you want to raise taxes to _only_ fund UBI, I'm in. If you want to raise taxes because you don't like that some monkeys have more bananas and you think society could make better, unspecified, use of those bananas, I'm against.

<comment><USER12> Your views exemplify selfish priorities and an uncaring worldview. If you care about others, let it be reflected in your behavior and people (like me) will stop doubting you.

Is your issue with government in the abstract or _your_ government?

If the latter, the caring solution is to change the government through voting, vocalizing and organizing. Governments are instituted to maintain a level of civility in a society. Naturally, poverty erodes the means for civility so governments in civilized nations around the world successfully apply their government as an organization sufficient for this task. If that sufficiency falls below their approval, they repair it.

If your issue concerns government in the abstract, then quite simply: _you don't care about people in poverty_. If you can't find the decency to be honest about that, then you've got even bigger problems.

UBI prioritizes your economy, not your neighbors in poverty. Note _Socialists do not support UBI_ and for anyone concerned that socialists simply want handouts, this should table that argument once and for all.

Social programs prioritize caring for _people_ by:

\- Decoupling access to basic commodity needs from the whims and woes of the market

\- Built-in protections from abuse. Uncaring folk like to criticize welfare cash recipients as dishonest and lazy. Social programs that avoid cash also avoid this potential altogether.

<comment><USER13> Are we going to play empathy Olympics?

The problem is that you can't decouple commodity needs from the market because life is suffering.

<comment><USER14> I'm having trouble parsing this sentence. Is this a moral argument about the value of suffering? That suffering is inevitable so lack of access the market can/should be ignored?

</comment></comment></comment></comment></comment></comment><comment><USER15> Dang! If only having a good learning and work ethic wasn't so hard!

</comment><comment><USER16> "Socialism never took root in America because the poor see themselves not as an exploited proletariat but as temporarily embarrassed millionaires."

\- John Steinbeck

Are you temporarily embarrassed?

You may not realise it, but you could be a temporarily embarrassed millionaire. Do you plan to someday in the future have more money? Are you concerned that your taxes are too high, because someday you might pay too much tax. Do you ride the bus only because this year you can't afford that luxury car you're going to have? Do you live pay cheque to pay cheque like most people just because you haven't had your lucky break.

[0] [http://www.temporarilyembarrassedmillionaires.org/](http://www.temporarilyembarrassedmillionaires.org/)

<comment><USER17> HN might not exactly be the right audience for this message, given the nature of Ycombinator.

And even on an average American software engineer salary, it's not extremely challenging to become a millionaire - you just have to be frugal and save a large percentage of your salary for a decade or two (depending on your compensation & stock options).

<comment><USER18> Keep in mind that a millionaire meant something entirely different when this phrase was first uttered. It'd be something closer to $10 million in wealth today. Today being a millionaire just means you won't eat cat food when you retire.

<comment><USER2> A frugal engineer on an $98k adjusted salary can pretty easily make $10M over a 45 year career. Not accounting for huge windfalls from stock, etc.

The median salary for an electrical engineer was $97,970 [0]. If you invest $50k/year at 6% return you get $10M in 45 years.

Of course this requires pretty massive discipline. But it's easy in the sense that if you go to a good stem school, get a job and keep it, and don't get sick, anyone can do it.

Of course 6% is super conservative as the total return of the s&p over 90 years is 9.8% [1]. If was you could get that rate somehow, you only have to save $15k/year.

Of course this is really hard in the sense of willpower, discipline, etc. And there's certainly bad luck that make it not 100% certain, but it's an open path to anyone in America (and other countries). Even for $10M.

[0] [https://www.bls.gov/ooh/architecture-and- engineering/mobile/...](https://www.bls.gov/ooh/architecture-and- engineering/mobile/home.htm) [1] [https://www.investopedia.com/ask/answers/042415/what- average...](https://www.investopedia.com/ask/answers/042415/what-average- annual-return-sp-500.asp)

<comment><USER19> 1) who is getting 6% annual return on small amounts of money and where? 2) casually investing half of your salary before tax. That works out to around 65% of your money after tax if we're being conservative. If you were able to do that, I say spend that 65% of income that is just free income presumably if it's not going to rent or food. 45 years of massively more comfortable during the prime of your health and brain function is probably worth it over eventually being very rich in your later years

<comment><USER2> It's not convenient, and certainly not casual, but there are many doing this in a variety of configurations. Check out the Financially Independent, Retire Early folks.

Wouldn't it be super strange if it was casually easy for everyone to earn $10M. Comically, if it was, then we'd have hyper inflation until it got hard again.

I provided a link to the s&p history. Check it out. Anyone who can open a vanguard account can buy an s&p index. Of course maybe you're wondering who is getting 6% risk-free and the answer is no one.

Past performance doesn't guarantee future returns, but it's a good idea anyway. Check out Buffet's bet on whether index funds will beat the professional hedge fund managers in a 10 year period [0].

My point is that while very difficult due to discipline and with some risk, it is possible if you set your mind to it. As opposed to say, winning the lotto which has no reasonable way for a hard working person to pay out. So if you want to join the inner circle, it's better to just get training and work hard for 45 years than to win the lotto.

You can certainly trade this for being "massively more comfortable" if that's your preference. Most people do.

Every time I look at my Netflix viewing history over long periods I kind of wish I hadn't traded hard work for "massive comfort."

[0] [http://blog.longnow.org/02018/02/09/warren-buffett-wins- mill...](http://blog.longnow.org/02018/02/09/warren-buffett-wins-million- dollar-long-bet/)</comment></comment></comment></comment></comment></comment>


Abolish the NSA and give Edward Snowden a Parade - <AUTHOR> https://www.techdirt.com/articles/20130819/01445524226/rep-dennis-kucinich-abolish-nsa-give-snowden-parade.shtm

<comment><USER2> We have had representatives of three major departments associated with the Executive wing either outright lie or purposefully mislead by omission or redirection in the last year.

Government officials "taking the fifth" before Congress should be illegal. When one branch can stymie another the checks and balances fail.

<comment><USER3> Yup. If I'm paying you as an employee of my government then you can either choose to answer questions on your work so that I can evaluate it or you can find a job elsewhere. Want to take the fifth when testifying before Congress. Fine. But you can't work for the government any more.</comment></comment>


Portrait of the Hilbert curve - <AUTHOR> http://corte.si/posts/code/hilbert/portrait/index.html <comment><USER2> I made a Processing hack based on distributing the color space over the Hilbert curve.

<http://www.openprocessing.org/visuals/?visualID=2178>

My wife liked it so much she made a quilt based on it

<http://www.flickr.com/photos/abulafia/2896382435/sizes/o/>

<comment><USER3> That's awesome! I plan to have a large print of my Hilbert portrait made for my study wall. I'm a bit enamoured. ;)

</comment></comment><comment><USER4> I uploaded a tool I've written in SML for generating space-filling curves (Hilbert, Peano, Sierpinski) with postscript output on github: <http://github.com/soeren/snippets/tree/master/spacefilling/>

</comment><comment><USER5> A long while ago (right after xkcd posted his Hilbert Curve map) I started doing whois lookups and rendered a real-life internet map based on IP block owners. I never rendered all of the data I retrieved and have subsequently lost the raw data I collected, but here's where I was about 8 hours into the weekend project (warning, 4096x4096 image): [http://farm1.static.flickr.com/143/325132490_77ae2dac5f_o.pn...](http://farm1.static.flickr.com/143/325132490_77ae2dac5f_o.png)

<comment><USER3> You might be interested in my visualisations of an IP geolocation database on the Hilbert Curve, also inspired by xkcd:

<http://corte.si/posts/code/hilbert/explorer/index.html>

<comment><USER5> Yea I'm pretty sure you stole my idea :). Just kidding. It looks very cool!</comment></comment></comment>


Study: Why are so many Americans skeptical about climate change? - <AUTHOR> https://www.washingtonpost.com/news/energy-environment/wp/2015/11/23/why-are-so-many-americans-skeptical-about-climate-change-a-study-offers-a-surprising-answer/ <comment><USER2> "The report did _not_ examine the impact of outside money on the messages of groups that _encourage_ activism on climate change."</comment>


Free Alternatives to Photoshop With All the Bells, Whistles, Filters, & Layers - <AUTHOR> http://www.readwriteweb.com/archives/free_alternatives_to_photoshop_with_all_the_bells.php

<comment><USER2> Okay, I'm sold enough to give it a try. But I'm not a graphics professional... just a coder who doesn't have the bucks for PS.

It may work for the occasional tweaking, but are there any graphics pros out there that have tried this?</comment>


Huawei denies German report it colluded with Chinese intelligence - <AUTHOR> https://www.reuters.com/article/us-germany-usa-huawei-denial/huawei-denies-german-report-it-colluded-with-chinese-intelligence-idUSKBN1ZS1IX <comment><AUTHOR> The original reporting in German: [https://www.handelsblatt.com/politik/deutschland/5g-debatte-...](https://www.handelsblatt.com/politik/deutschland/5g-debatte- smoking-gun-neue-beweise-im-streit-um-huawei/25484764.html)

edit: from the Deputy Director-General SIGINT and NO (Network Operations) Group ASD (Australian Signals Directorate) [https://www.aspistrategist.org.au/5g-choices-a-pivotal- momen...](https://www.aspistrategist.org.au/5g-choices-a-pivotal-moment-in- world-affairs/) >

We asked ourselves, if we had the powers akin to the 2017 Chinese Intelligence Law to direct a company which supplies 5G equipment to telco networks, what could we do with that and could anyone stop us?

We concluded that we could be awesome, no one would know and, if they did, we could plausibly deny our activities, safe in the knowledge that it would be too late to reverse billions of dollars' worth of investment. And, ironically, our targets would be paying to build a platform for our own signals intelligence and offensive cyber operations.

edit2: Reuters has updated its earlier article to incorporates the denial. The denial was reported two hours after Reuters reported on the Handelsblatt article with this story: [https://www.reuters.com/article/us-germany-usa- huawei-idUSKB...](https://www.reuters.com/article/us-germany-usa-huawei- idUSKBN1ZS197)</comment>


Ken Thompson: Regular Expression Search Algorithm [pdf] - <AUTHOR> http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.107.9868&rep=rep1&type=pdf

<comment><USER2> i have actually been implementing this algorithm in c using a VM based approach. there are analyses of these techniques that are a little less dense than whats in the paper here: <http://swtch.com/~rsc/regexp/regexp1.html> and <http://swtch.com/~rsc/regexp/regexp2.html>

the really amazing thing about this algorithm is stated in the third to last paragraph where he explains that strict bounds can be put on the size of the two lists that are used to manage the runtime state. this turns the algorithm from a potentially exponential runtime to O(MN) where M is the size of the regex and N is the length of the string being matched</comment>


Ask HN: Seeking pre-demo feature feedback on my storefront software - <AUTHOR>

I run Greaterscope, LLC, a (currently) one-man company that's developing storefront software with developers in mind. In other words, we're focused on several PITA features that are important to growing online stores ... multi-lingual support, handling complex product attributes and pricing, multiple storefronts.
I'm hoping to give developers a better starting place when they need to create something custom for clients. It won't be free, but will be open source. Hopefully my efforts will be appreciated.
I don't have a demo yet (hopefully by January) but I'm impatient so I wanted to solicit for feedback early to make sure I have the full range of needs in mind as I continue to build this thing out.
If you have feature ideas or issues with tools you currently use that should be addressed, please let me know via UserVoice:
http://greaterscope.uservoice.com
Technology-wise it's written in object-oriented PHP5, MVC (database abstraction, templating system, ORM), supports databased sessions, and is not limited to MySQL. I have also considered creating ports to other languages (Python, Ruby).
Look for a demo some time in December. I'll definitely announce it here once it's up. The first version should be ready in the first quarter of 2009.
My company website is http://greaterscope.com
Update: We're also looking for beta testers. I think I failed to mention that. <comment><USER2> You're going to be compared instantly to shopify: <http://www.shopify.com/>

<comment><AUTHOR> There are many products and services for small/standard storefronts ... but we're innovating elsewhere. I've tried to outline some of our differences on the website but it surely needs further clarification.

We're targeting shops that need the type of features you have to design for at the beginning.

We're also not a hosted solution, as that limits the ability for other developers to customize our product.</comment></comment>


Ask HN: What is the best way to learn networking? - <AUTHOR> I have been using several of the WebAPI's like WebSockets and WebRTC for a while, but I never fully understood what is happening behind the scenes. Today I read a HN post about WebTransport, and frankly I have to say that most of the terminology flew past my head. Where would be a good place to start learning networking in depth (from the physical layer and upwards)? <comment><USER2> Tanenbaum's "Computer Networks" is one big book to start with (you can also press wrinkled shirts with it, hammer in small nails, it is generally a good thing to keep around the house).

<comment><AUTHOR> Thanks! I'll see if I can find it second hand somewhere. Looks like a great addition to my hammer collection.</comment></comment>


Brixo - <AUTHOR> http://www.getbrixo.com/ <comment><USER2> Awesome idea. Of course educational uses come to mind, but it seems like this could be a great framework for building many useful project as well.</comment>


Using React in the real world - <AUTHOR> http://swizec.com/blog/using-react-in-the-real-world/swizec/6710

<comment><USER2> i love it.... i was skeptical about react at the beginning, but it definitely is a very SOLID tool for developing with and your blog illustrates this point succinctly.

<comment><USER3> Do share your stack with us (why you use them and what you use it for): [http://www.stackbus.com/](http://www.stackbus.com/)</comment></comment>


Amazon's HQ2 Spectacle Isn't Just Shameful--It Should Be Illegal - <AUTHOR> https://www.theatlantic.com/ideas/archive/2018/11/amazons-hq2-spectacle-should-be-illegal/575539/ <comment><USER2> _In a starkly divided country, corporate pandering is the last bastion of bipartisanship, an activity enjoyed by both Democrats and Republicans at every level of government_

$2.5B in corporate welfare and permission to build a shiny new helipad for Jeff. For locations they seem to have selected years ago.

What a farce. This far exceeds even NFL-owner level exploitation of a city.</comment>


Master Portfolio 2.0 is out today - <AUTHOR> https://github.com/ashutosh1919/masterPortfolio <comment><AUTHOR> If you want to make your portfolio website which contains every bit of information about yourself then go to below github repository and follow instructions.

Github Link: [https://github.com/ashutosh1919/masterPortfolio](https://github.com/ashutosh1919/masterPortfolio) Website Link: [http://ashutosh1919.github.io/](http://ashutosh1919.github.io/)

New addition in this version is: (1) Automatic data fetching from github profile. (2) Multiple themes available + Flexibility to add custom theme. (3) Added new animations.

Don't forget to star the repository if you liked the project.</comment>


How to go about selling your online business? - <AUTHOR>

me and couple of friends started a website as a side project. all 3 of us work fulltime so the website basically runs itself. over the past few years we've had amazing growth with $0 spent on marketing or advertising where our competitors get lots of media attention and do lots of advertising.
we went from making $1000 a year to now over 100K/year. what can we do in order to see if there is any potential buyers interested?
thanks <comment><USER2> As per some of the other comments, Flippa is likely able to get you a good buyer. If the website qualifies, it will likely be included in our A-List newsletter (see <https://flippa.com/a-list>) which will get it in front of premium buyers. Let us know if you need any assistance getting your auction running (though "code" makes some great point on this thread already!). We'd be happy to help.

</comment><comment><USER3> Post it on <https://flippa.com/> with specific site details, analytics stats, and actual revenue figures (monthly). The more detail the better. Flippa is a marketplace for people to buy and sell websites, including ones that produce revenues, etc...

<comment><USER4> Do businesses get bought on Flippa -- most listings I see with non-zero bids aren't covering the development costs over a single day -- $10 bids? Seriously?

</comment></comment><comment><AUTHOR> thanks for the comments. i'll check out Flippa. seems like there is a lot of lower end websites selling there though. i could only find 6-7 sites selling over 100K.

<comment><USER5> That's true but it doesn't mean potential investors with deep pockets aren't keeping an eye on listings.

</comment></comment><comment><AUTHOR> once i discuss it with the other guys i will post the URL here. don't want to give it out like that to give the site a bad image, you know?

<comment><USER6> That seems fair. If you are looking to go ahead with the sale feel free to send me an email (fraser at username dot com). I have brokered a few deals for companies making 100k+/year.

</comment></comment><comment><USER7> Also - tell us what it is! Post the info in this thread, there's always the chance that someone here will be interested</comment>


Hyperloop is making progress - <AUTHOR> http://www.wired.co.uk/news/archive/2014-12/19/elon-hyperloop <comment><USER2> This evades most of the criticisms of Musk's Hyperloop plan by not being the Hyperloop that Musk proposed. Specifically, and most importantly, it doesn't connect SF and LA, and instead chooses a route to fit the budget, instead of the other way around.

Musk's plan for the SF-LA Hyperloop was almost self-evidently fantastical, so much so that it's easy to read it as a political tactic to discredit California's HSR plan (which is also moving forward).

<comment><USER3> Well, that's fairly hyperbolic. It wasn't near _self-evidently fantastical,_ unless you base that entirely on political willingness.

As for what you thought made it fantastical, I would love to hear a short list. My last understanding of it was that there wasn't anything specifically physical or technical that prevented it from being possible (albeit requiring more real-world testing), and there was at least some effort put into addressing the implementation details. If there are portions that are actually impossible rather than just unlikely I would rather know than remain ignorant.

<comment><USER2> No, it was fantastical. For instance: the cost estimates Musk provided were premised on advancements in tunnel drilling and elevated track construction costs that would have revolutionized all of civil engineering, not just hyperlooping.

<comment><USER4> The cost to build one mile of 6 lane interstate in an urban area is estimated at 11 million dollars per mile. If you look at the estimated cost for the hyperloop, it seems to come out at around 25 million per mile. This isn't outside the realm of possibility at all, just a little more than twice that of traditional methods.

<comment><USER2> The hyperloop isn't a 6-lane interstate. It's an elevated track, some of it tunneled through rock.

<comment><USER4> The point I was making is that considering the huge upside, merely double the cost of a traditional highway seems like a very reasonable price.

<comment><USER2> It's not "double the cost". Nobody knows how much it's going to cost, but we know it costs more than Musk says it does.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> 1\. Don't see the point of economic class vs first class pods when the whole point is to get you to your destination so fast you won't be in the pod for very long. Mid-class pods for all makes more sense.

2\. Please don't emulate the airport model and build over priced malls within a "security zone". A Hyperloop is supposed to get you from point A to point B quickly. Following the airport model will add two hours to every trip.

<comment><USER2> The need to follow the airport model is one of the unaccounted-for costs of the Hyperloop, particularly on travel time. Because of the inevitable catastrophe implicated in any passenger attack on an 800MPH elevated train, it will absolutely have TSA-style security.

<comment><USER6> Why bother with a passenger attack when the whole route is exposed?

Or did you mean "TSA-style security" as completely ineffectual?

<comment><USER2> This is an incoherent argument, in that TSA-style security delays are just as likely to be eliminated from air transit as from a "hyperloop". As long as airports have them, any US "hyperloop" is also going to have security lines.

<comment><USER6> So yes, TSA-style security theater.

<comment><USER2> Yes:

[https://www.dropbox.com/s/jzp8htjdwj7htyn/Screenshot%202014-...](https://www.dropbox.com/s/jzp8htjdwj7htyn/Screenshot%202014-12-20%2016.00.12.png?dl=0)

What's your point?

</comment></comment></comment></comment></comment></comment><comment><USER7> The Hyperloop remains a well-designed proposal that solves a problem a Shinkansen/TGV model system solves, only it uses technologies that aren't proven or evaluated.

Silicon Valley thinking at its finest.

</comment><comment><USER8> The issue I would most like to see progress on is thermal expansion of the the tube. The best solution I have heard is slip joints at the stations but if we're talking miles of slip, I still have a hard time imagining how that would work.

<comment><USER9> This. Thermal expansion is the show-stopper. Unless and until they solve this problem (and I don't see any practical solution) everything else is moot.

<comment><USER4> Thermal expansion is also a well known property and something that is dealt with in buildings and structures all the time. It would be a challenge, I agree, but I don't think it will be an intractable one.

<comment><USER9> There's 2-3 orders of magnitude difference in the scale of ordinary structures and the scale of the hyperloop. There may be a solution, but so far AFAICT no one has actually come up with even a plausible-sounding story. You can't simply say, well, we've solved the problem for small structures so surely we'll be able to solve it for larger ones.

</comment></comment></comment></comment><comment><USER10> The hyperloop is an incredible idea. One could travel, theoretically, 400 miles in a little under 5 minutes with reasonable, constant acceleration and no maximum velocity in a straight line (so, unreasonable). That means I could make it to NYC in a pinch and be back by dinner.

But I don't think the idea of an air rocket is one that will work. The cost will be incredibly prohibitive. The concept of a "stop" on the hyperloop seems to make the solution far more complex, and the cost of a single stop on the route (assuming in the middle of the trip) is almost 50% additional travel time.

<comment><USER11> The article says "800 mph". Meaning it would be around 30 minutes. Not including accel/decel. No? It takes a flight hour to hour and a half from LA <> SF.

<comment><USER10> Yes, I was assuming constant acceleration. I mentioned that this was unrealistic.

</comment></comment></comment><comment><USER12> I don't understand why there is so much focus on doing this in California where they have tons of development and the huge issue of earth quakes. Surely there's somewhere else that could reap the benefits of fast travel. Off the top of my head I would suggest doing this through the midwestern states which are incredibly flat and mostly void of development for hundreds of miles. You can pay ranchers and farmers for the right to build the support towers on their land. You'd have to worry about tornados and hail storms though. I'm not sure how much concern that would be. If this this is all steel and concrete it should be strong enough right?

<comment><USER13> I think you also need the population density and a population that wants/needs to travel from A to B regularly to make it viable.

Musk proposed LA->San Fran as a commuter route - i.e. people would take it both ways 5 days a week.

How many people want/need to zip across the midwest both ways 5 days a week?

<comment><USER14> And while I could see that as a neat trick (I think Elon was going more for the comparison to the High Speed Rail boondoggle) it would be much more interesting if it could do something like Reno/SF or maybe Boise/SF so that folks could live in a nice place and work in a trendy place. But the whole notion of 'tasked' cities (living cities vs working cities) is still not well developed.

<comment><USER15> This is, perhaps, the most obvious Jetsons-suburb style future we can attain. It's so alluring and outlandish. I tend to work in plants, but I end up commuting just to stay away from the soul crushing industry. (Or soul-crushing industry, depending...) To be able to live in a nice garden village and then take a 40 minute ride out of state to my plant would be an _utter joy_.

</comment></comment></comment></comment><comment><USER16> > At some point, Hyperloop Transportation Technologies will likely have to > shift from this work-when-you-can-but-don't-expect-money model to something > a bit more conventional with, you know, employees.

People need to understand that money is not the goal there, the goal is to improve transport standards. I'm sure the best CEO and investors understand that money is just an abstract measure, you can't dismiss money, so you must insert money in your strategy, but it's just to make it compatible with the current economic model. People in companies work not to say "look at my paycheck" but rather "look at what I made".

The goal is to make something better. Who cares if the business model is shaky or out of the box or unconventional, the goal is keeping research and improvement makings going. Nobody likes to be an employees, but I don't see everyone knowing enough engineering and having the initiative to design some new technology like that.

<comment><USER17> > People in companies work not to say "look at my paycheck" but rather "look > at what I made".

People also work in order to, you know, pay bills and put food on the table.

<comment><USER18> These aren't mutually exclusive when the labor market is sufficiently hot, as it is right now for engineers of most specialties. The SpaceX guys are making less than they could at boring Boeing, but that still comes out to a respectable sum.

</comment></comment></comment><comment><USER19> > nearly all of them have day jobs at companies like Boeing, NASA, Yahoo!, > Airbus, SpaceX, and Salesforce.

> A lot of the work is being done by 25 UCLA students.

Huh? So at least 25% of the group are students, but "nearly all" are employed by name-brand companies?

<comment><USER12> Maybe it's 25 students + 100 working professionals?

<comment><USER19> I thought so too, but then there is also this line:

> At some point, Hyperloop Transportation Technologies will likely have to > shift from this work-when-you-can-but-don't-expect-money model to something > a bit more conventional with, you know, employees.

So no one is actually full time.

I'm thrilled to see people working on this, but the article seems like a mess.

<comment><USER20> The "nearly all of them have day jobs" seems to clearly refer to the 100 engineers mentioned earlier in the paragraph. I think trose's description of them as working professionals is probably correct.

The 25 students would not be considered engineers -- in fact, it doesn't even sound like they're studying to be engineers.

</comment></comment></comment></comment><comment><USER21> Hyperloop should be a freight system before a human system; makes everyone happy; tis the season!

Also, tube transport in rivers would be nice...

</comment><comment><USER22> awesome.

so commuting from the east bay to palo alto or SF will take longer than travel to LA.

instead of extending BART around the bay, full circle and across in more places, let's invest billions in hyperloop.

<comment><USER23> There's nothing exclusive about the two. Good systems should be self- justifying.

But if you want decent travel times the current BART can't provide them. You'd need something like Personal Rapid Transit to get good trip times at the intra-urban scale. But the same argument you are making here - envy of something that doesn't even exist - is why we keep getting the same transit systems that are hard to grow because they don't provide enough benefit to enough people.

</comment></comment><comment><USER24> Is anyone else bothered by the idea of being enclosed in a tube with no possible way out for hundreds of miles?

I guess it's no worse than an airplane but for some reason it makes me feel claustrophobic?

Perhaps there's a way to add an escape hatch every mile or five?

<comment><USER25> From the original Alpha Document

4.5.3. Capsule Stranded in Tube "If a capsule were somehow to become stranded, capsules ahead would continue their journeys to the destination unaffected. Capsules behind the stranded one would be automatically instructed to deploy their emergency mechanical braking systems. Once all capsules behind the stranded capsule had been safely brought to rest, capsules would drive themselves to safety using small onboard electric motors to power deployed wheels. "

[http://www.spacex.com/sites/spacex/files/hyperloop_alpha-201...](http://www.spacex.com/sites/spacex/files/hyperloop_alpha-20130812.pdf)

<comment><USER26> That doesn't answer mrfusion's question about being in a stranded capsule for 100's of miles before the nearest exit or escape hatch.

How long does it take that electric motor to drive the stranded capsule 100's of miles to safety? With the stranded passengers stuck in a small capsule with no bathroom facilities or other amenities.

It's be first thing I thought about when the hyperloop plans were first revealed.

</comment></comment></comment><comment><USER27> Not LA <-> Vegas again. An LA <-> Vegas monorail was proposed in the 1950s. A maglev was proposed in the 1990s. All so morons can go to Vegas on weekends to push the buttons on slot machines.

Maybe they can talk Google into funding a 1 mile link between Google HQ and Google's private airport, Moffett Field.

<comment><USER2> Las Vegas is the 38th largest economy in the US, and the 30th largest population center. The economy of LV is larger than that of NOLA, of SLC, of OKC, of Memphis, and of RTP. It's an easy lowbrow dismissal to talk about slot machines, but an LA-LV line probably makes as much sense (cost-adjusted) as SF-LA.

One point that's easy to miss is that big-city smaller-city pairings can be uniquely economically productive. For instance, an actually-functional HSR between Chicago and STL would allow companies to easily set up satellite offices on either side of the line, taking advantage of the lower cost of living on the smaller side and the larger market and commercial network on the larger side.

<comment><USER28> > It's an easy lowbrow dismissal to talk about slot machines

According to Wikipedia "The primary drivers of the Las Vegas economy are tourism, gaming and conventions, which in turn feed the retail and restaurant industries."

So people traveling to LV to gamble is a big part of what makes it the 38th largest economy.

</comment></comment></comment><comment><USER24> I've always thought a good enough high speed transport is a scheduled flight that leaves every hour on the hour and you can buy tickets right before the flight.

<comment><USER29> As i understand it, transporting humans via air is largely infeasible without fossil fuels. It think the main benefit of a hyperloop is that it seems possible to stick with it as we make the energy switch

EDIT: pretty convenient that it would benefit from batteries and solar, huh? ;)

<comment><USER30> I'm a big Elon Musk fan and I think one of the best things he's got going for him is marketing acumen. I think of the Hyperloop as fundamentally a marketing story- doesn't matter whether it works or not, it gets the story out that the person running Tesla/SpaceX is some sort of whiz. Very well played IMHO</comment></comment></comment>


Git submodules should be supported : IDEA-64024 - <AUTHOR> http://youtrack.jetbrains.com/issue/IDEA-64024 <comment><AUTHOR> This has been open for almost three years, arguably with the most number of votes from the community on a feature-request for the IDEA suite of IDEs.

Come on, JetBrains !</comment>


Make leveldb work on S3 storage - <AUTHOR> https://github.com/fxsjy/levels3 <comment><USER2> S3 is painfully slow. Is this viable?

<comment><AUTHOR> this project use in-memory file to reduce the latency</comment></comment>


Godot Editor running in a web browser - <AUTHOR> https://godotengine.org/article/godot-editor-running-web-browser <comment><USER2> I'm still amazed how small the Godot editor is (last time I checked it was ~25MB). Just how are they able to pack this much functionality into such little space?

<comment><USER3> I guess its all relative.

In the late 80s I was impressed by a full Wordstar compatible text editor for Turbo Pascal which only occupied 25K (including the compiler). Times have indeed changed.

<comment><USER4> 1 order of magnitude in 40 years? Doesn't seem a lot, but if applies exponentially would mean we will have some IDE in 2060 that's 25GB and someone will find it impressive. That's a lot of bytes for an editor.

<comment><USER5> Defining an 'order of magnitude' as 1024 seems a little odd to me. I would consider this to be closer to 3 orders of magnitued.

<comment><USER6> 1024 (2^10) is ~10^3 (I know switching bases!) vs say 10 (10^1), so two orders of magnitude larger in general. A gig 10^9 would be many orders of magnitude. An order of magnitude is generally a jump to the next power of 10. So 10 (10^1) is an order of magnitude larger than 1 (10^0) as 100 (10^2) is to 10 (10^1), and so on. People frequently misuse the term when speaking in technical terms. When the average person uses it to denote a big jump, I let it go - usually ;) If you stick with base 2 I guess you could say many orders of magnitude (2^32 = 4,294,967,296 vs 2^8 = 256, or 24 orders of magnitude?).

<comment><USER7> But you could use Base-1024, in which case the term is used correctly. It's all relative ;)

<comment><USER6> Why? The common base is 10, and "orders of magnitude" is normally based on 10X between orders here. Ten fingers, decimal system, etc. Don't bring up metric vs. Imperial ;)

I work at an engineering firm, and that's how most engineers understand it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Honest question.. Is this "just" the way modern gamedev is being done. With these "Editors For Scenes" ?

Like the Unity and Unreal Editors ? Not hating just asking last time I "checked in" on gamedev was prob one or two decades ago and had a lot of fun with IrrLicht and Ogre.

Does this "editor approach" not get in the way ? Just looking in as an outsider with almost zero gamedev experience.. don't you end up fighting the editor to just get things done ?

Again don't flame me I have no idea what I'm talking about :)

PS. GoDot looks great :)

<comment><USER9> That has been the way that AAA game development has worked the last 25 years.

Professional games are like movies, programmers are a tiny percentage of people on the set.

They are the ones caring for the lights, that all cables are working properly and special effects go off as they should.

The main role, what dictates what a game is all about, belongs to game designers, producers, artists, those aren't writing C++ code, rather using visual tools.

Naturally you can make a game old style, just like on the 8 and 16 bit days, just like there are people doing movies just with an handy-cam.

The outcome isn't not going to be same though.

<comment><USER8> Gotcha !

</comment></comment></comment><comment><USER10> Godot is such an amazing/polished game engine. I like it a lot more than Unity (at least for 2D).

<comment><USER11> One thing that I think would hugely shift godot's market share is a standardized asset format, similar to what Unity and Unreal have, so asset developers could offer assets in Godot-compatible format. It would be even more amazing if there was an easy way to import Unity resources. Maybe I just needed to do more research, but last time I tried, I had to pull out individual files, mess around with them in Blender, then import the model and the mesh into Godot separately, where I needed to arrange them together afterward. I think if the asset management was as simple as Unity's, Godot would be a no-brainer in many projects, especially smaller ones.

<comment><USER12> Maybe, but let me question that. What standardized asset bundles also do is create a market for asset bundles, which is good for the company they support. They also let new people buy a package of assets. Those aren't big issues for me, but I have never tried to make a commercial scale game in Godot.

Versioning is the nightmare of Unity. So many assets and plug ins only work with certain versions.

<comment><USER13> A friend of mine is developing a commercial game with unity, and that's been a big issue. It's either don't get big fixes or rework parts to upgrade unity

</comment></comment></comment></comment><comment><USER14> Godot is truly real competitor to unity in OSS world, good job, I'll waiting this feature until it's not buggy.

</comment><comment><USER15> I get a black screen and the JS error "Atomics is not defined." Did we overload it?

<comment><USER16> Atomics is part of the threading APIs, I'm guessing your browser doesn't support it. Although I feel like you should get a better error message...

<comment><USER17> That's strange, this project is funded by mozilla and does not run on latest firefox

<comment><USER18> It says in the blog post you need to use Firefox Nightly

</comment></comment></comment></comment><comment><USER19> Kinda strange but Godot kinda feels like a game dev oriented smalltalk to me

</comment><comment><USER20> This is awesome. Question: everything I've read[0] about WebDAV indicates tons of compatibility problems between implementations, even those built into operating systems. I wonder what the plan is to deal with that?

Also, are there any off-the-shelf WebDAV client libraries for browsers?

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

</comment><comment><USER21> I'm not a game developer but it seems like syncing with a standard git repo would be ideal. Is that possible with games or do the assets prevent it?

<comment><USER22> Smallish indie projects get by with git and or git lfs. git isn't really designed for binary assets and large games with terabytes of source assets usually don't use git. git's distributed nature is also an issue for non- mergable binary assets. The most common tool version control for bigger teams is perforce. It's significantly faster than git for binary files and it helps manage 2 or more people trying it edit the same binary file. There maybe be other bolt on solutions for that for git that I'm unaware of to help with that.

<comment><USER23> SVN is also quite popular, it's okay at dealing with large repos.

</comment></comment></comment><comment><USER24> I wonder when firefox will re enable SharedArrayBuffer.

<comment><USER25> Seeing as it's available in Firefox Nightly, it'd imagine it'd be in the next release provided it doesn't present any problems from then and now.

<comment><USER26> A feature introduced in e.g. Nightly 78 might stay out of stable until say version 86. That is features make it to stable by becoming stable not because it first landed in a certain nightly and so everything was held up until all features in that nightly became stable. Releases happen on a fixed 4 week calendar cycle instead.

Based on [https://bugzilla.mozilla.org/show_bug.cgi?id=1563480](https://bugzilla.mozilla.org/show_bug.cgi?id=1563480) I'd say it's probably a good number of releases away.

<comment><USER27> Here's some context you didn't ask for, but hope you find it helpful.

There's standardization work being done to enable SAB behind a new security context. Mozilla has a good summary: [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/Planned_changes)

At the moment, I think only Chromium enables SAB by default for devices that have "Site Isolation" enabled (avoids spectre attacks by using process isolation). That's a browser feature specific to Chromium, and is disable for some low-memory devices, so it's not universal.

I'm not familiar with how far along Chromium or Firefox are. If you're interested in using SAB, start reading up on COOP and COEP.

Source: I work on web tooling at Chrome.

</comment></comment></comment></comment><comment><USER28> How is Godots performance these days? I heard they are adding a ton of c# support after a lot of people have struggled with frame rates in gdscript (source: various youtubers who use Godot)

I just switched from unity to unreal because of sketchy retroactive licensing changes from unity and the performance in unreal is really making me happy so far

<comment><USER29> I wrote a large scale fluid sim (like Cities Skylines' water sim) with Godot and Rust. I think the biggest bottle neck is the gdscript honestly. I had a prototype working in GDScript and after I ported it to rust I had like a 20x speed up

</comment></comment><comment><USER30> Is the wait nearly over?

BTW, how do they pronounce the name?

<comment><USER31> "goh-doh" or "goh-doht" The 'o's are pronounced the same.

</comment></comment><comment><USER32> I've been waiting for this.

</comment><comment><USER33> It's amazing that a native Windows/Mac app can be compiled to run in a web browser. However Web-assembly does not mean better performance. A native browser app would most likely be faster.

<comment><USER34> What do you mean by native browser app? Like JS + WebGL?

<comment><USER33> JS is usually not the bottleneck in web apps. The bottleneck is most of the time rendering. Rewriting the app in JS would make it faster then the Webassembly version. It's a common misconception that Webassembly is faster then JS. Although theoretically possible, the compiler wouldn't be able to beat a skilled JS developer's hand written JS specific for the web platform. A turtle is faster then a rabbit - in water.

<comment><USER15> Is this true? I was under the impression that webassembly was capable of faster performance than JS, and thinking about learning a compiled languages to make my web applications faster. Would that be a waste of time?

<comment><USER33> It would not be a waste of time if you learned something. Here's a quick exercise: Write an "hello world" app and compile it to WebAssembly. Then open browser dev tools to inspect the app. You will see that a middle layer is needed to put that "hello world" on the screen. Just like JS, WebAssembly can't talk directly to the hardware and need to use the same browser API's as JS.

Besides obfuscating and being able to compile desktop apps to the web platform, one use-case for WebAssembly that might bring an performance improvement is to use it for something you currently use a Web Worker for. For example sending a bit buffer to the worker, have it do some work on it, and send it back. There is however a penalty to sending the data back and forth, although there are work being done that allows shared memory, which will make both JS and Web-assembly faster.

JavaScript is compiled to optimized native code. So you will get away with really stupid code - the optimizer will make it fast. But the more you learn, you will be able to write even faster apps. It really doesn't matter what programming language you use, it's more important to have experience and tribal knowledge of the platform you are targeting.

A funny thing about performance is that the more you know, the slower your app could become. If you for example use highly sophisticated abstractions, make use of frameworks and preprocessors, together with an orchestra of cloud functions and services with IPC message across oceans - then it will be slow. If you want performance - just keep it simple.</comment></comment></comment></comment></comment>