Operation Serenata de Amor – An AI project to analyze public spending in Brazil - <AUTHOR> https://en.wikipedia.org/wiki/Operation_Serenata_de_Amor <comment><AUTHOR> This project is using AI to analyse public data of receipts from elected government officials, detect anomalies and tweet about them. It has already led to a deputy to have to return funds to the government.

There is very little material in English about this project, I finally spent some time to translate and create an English and French wikipedia page. I am not otherwise involved with this project (yet!) but think it deserve more visibility, and that we should leverage it and similar project in other countries.

<comment><USER2> How is this project perceived by the government officials?

I am sure (or at least hope) that some of them are very much in favour, but are there others calling into question the accuracy / legitimacy of these type of analyses?

<comment><USER3> (Brazilian here with bad english) There isn't much interest yet. But that is expected.

Information flows somewhat like this here: First they ignore it hard, then media comes and make a fuss and that makes the gov. officials respond with disdain or support (depends on the strategy they adopt). But if it gets hotter something bigger magically happens to distract public opinion.

At least it is already on dados.gov.br, which is the brazilian portal for open data, meaning at least received some support from groups inside the government. But almost no interest from conventional media.

<comment><USER4> Wow, I wish my Portuguese was that bad.

</comment></comment></comment></comment><comment><USER5> Disclaimer: I am a former Brazilian. I am what in Brazil is called in pejorative terms "vira-lata" (stray dog), someone that fell out of love for his native country. Because a lot of people in this thread are patriotic Brazilians I anticipate a lot of downvotes.

This project is nothing more than a sharper and better diagnosis of topical symptoms. Unfortunately, the underlying disease remains without treatment. And if you allow me to explain such disease bluntly, here it is: the Brazilian voter is astonishingly stupid. Brazilians vote very, very badly. Politicians with a long and explicit history of corruption are routinely re-elected and remain very popular (e.g: Maluf, Sarney, Calheiros, Collor, Lula and almost everyone in the 3 big parties: PMDB, PSDB and PT).

There is even a standard justification for this behaviour, people say "rouba mas faz" (he steals but gets things done).

Like in most of the 3rd world and countries with authoritarian history, the overwhelming majority of the Brazilian voters don't understand how corruption, nepotism, patronage and incompetence affects them. I bet Turkey, Russia, Poland and Hungary are the same. Democracy goes far beyond the formal institutions, you need a civic heart, a belief within every citizen's mind that the public good matters a lot and affects everyone. In most 3rd world countries people just don't "get" this.

<comment><USER6> Pode explicar a tradução ou conexão para as palavras, vira e lita. Não significam "look" e "can"?

Não sou brasileiro.

<comment><USER7> Like the others already explained, "vira-latas" is a portuguese term for a stray dog and the idea that they need to flip trash cans to try to find food.

However, there is also an expression (whose origin was also explained) that means _" Mongrel complex (Complexo de vira-Lata in Portuguese), which is an expression used to refer to a collective inferiority complex felt by some Brazilian people in comparison to Europe or the United States."_[0]

Contrary to what was said here, the term coined by Nelson Rodrigues was not exclusive related to soccer. According to him: "By "Mongrel Complex" I mean the inferiority in which Brazilians put themselves, voluntarily, in comparison to the rest of the world. Brazilians are the reverse Narcissus, who spit in their own image. Here is the truth: we can't find personal or historical pretexts for self-esteem."[0]

[0] - [https://en.wikipedia.org/wiki/Mongrel_complex](https://en.wikipedia.org/wiki/Mongrel_complex)

<comment><USER8> Interesting concept, the "reverse Narcissus", especially in this case. Because you see, in the same breath as they complain about their country, Brazilians will tell you that "God is a Brazilian".

Perhaps jingoism and mongrelism are two sides of the same coin. It would certainly explain how Trump got elected after a campaign based on complaining about his own country.

<comment><USER7> It's an interesting fact--anecdotally, of course--that as much as they complain about the country, they won't let anyone from outside to do the same thing.

</comment></comment></comment></comment></comment><comment><USER9> Serenata de Amor is a brazilian candy: [https://hibrazilmarket.com/products/garoto-serenata-de- amor-...](https://hibrazilmarket.com/products/garoto-serenata-de-amor-19g-1)

From their faq: [https://serenata.ai/en/faq/](https://serenata.ai/en/faq/)

1 - We were inspired by the Toblerone Affair, a case in which a Swedish politician was pushed to resign after being caught paying simple Toblerone chocolate bar with public money. That's what we want to do: empower social control of public expenditures including values as low as a chocolate bar.

</comment><comment><USER10> On the topic of corruption, my Spanish teacher said that countries where corruption is endemic and part of the culture almost always started out as "extraction colonies". That is, the natural resources were plundered by the colonizers (the Spaniards or the British or the French). What present day politicians are doing is simply continuing the strong historical precedent of taking out riches/prosperity/profits/resources from the country for their own use.

In Haiti, Jean-Jacques Dessalines, the leader of the slave rebellion who overthrew the colonizers rapidly became one of the "1%" and a de-facto colonizer once he gained power and they realized that slavery and plantations and serfdom was quite lucrative and profitable.

[https://en.wikipedia.org/wiki/Jean- Jacques_Dessalines](https://en.wikipedia.org/wiki/Jean-Jacques_Dessalines)

<comment><USER11> > countries where corruption is endemic and part of the culture almost always > started out as "extraction colonies".

This is an overly simplified, albeit correct, way to explain it.

<comment><USER10> In case you see this, can you please point me to any resources /books on a non-overly simplified way to explain the roots of corruption in Latin American countries?

<comment><USER11> I would start with "The causes of corruption" by Daniel Treisman. It isn't specific to Latin America, though.

In summary, Treisman will show that many factors appear to have an influence on whether a country is more or less corrupt. The colonial past of Latin American countries helps to explain part of it, but it doesn't appear to be a causa sine qua non.

<comment><USER10> Thank you! I have started reading the paper, and it is interesting to read how the author lays out his hypotheses.

Most intriguing is the link between how judicial systems that were setup to support the king may tend to be more corrupt since they were literally robbing property/money from his subjects. On the other side, the British system relies on judicial precedents and process, helping ensure a more fair trial between the government and property owners/business people.

[https://www.amherst.edu/media/view/131389/original/Treisman2...](https://www.amherst.edu/media/view/131389/original/Treisman2000.pdf)

</comment></comment></comment></comment></comment><comment><USER12> Slight unintended consequence is it creates a significant incentive for politicians to allow their expenses to be picked up by someone else. There are rules in many democracies where "gifts," over small amounts (~$50) must be reported to ethics commissions and scrutinized for opportunity by the opposition, media, and by extension, the public.

In a simple risk game of likelihood vs. consequences, expensing a meal in an upper end restaurant will %90 draw political consequences from an AI, with a high degree of uncertainty in the cost to fight it, vs. accepting the hosts generosity, with a sub-%5 chance of consequences occurring like having to pay your share, or a minor sanction some years into the future.

I'd argue most politicians necessarily make risk and cost/benefit calculations before ethical signalling ones, and the indiscriminate application of rules in this case creates inverted incentives that demoralize the situation, and will cause them to start accepting insignificant bribes.

The economic value of "AI" is mostly to obfuscate and symbolically defray the chain of individual human accountability. While this may be working for the "good guys," in the public interest, it's really about protecting the people who are using what is essentially a Bayesian black box as an ethical proxy for their personal interest. It's fascinating and cool, but it's also a bit disingenuous to accept magical pretexts and other ethical proxies because we perceive them to be "on our side."

<comment><USER13> I don't get most of the argument here, what are you trying to say?

Politicians are already incentivised to get their bribes indirectly, that's a natural consequence of doing something illegal while expecting to have your actions recorded. But beyond that I don't understand, are you saying that because the AI allows for such efficient oversight that politicians will be unable to hide large bribes and be _forced_ to accept "insignificant bribes"? But even if the only effect is that corruption is much cheaper, what is the downside to that? At least more people can afford it then.

> it's really about protecting the people who are using what is essentially a > Bayesian black box as an ethical proxy for their personal interest

How is fighting corruption best described by "personal interest"? The only way I can make sense of this is of you hold the belief that rule of law is not fundamental for a just society, and the circumvention of the law that corruption represents somehow makes societies more just.

<comment><USER12> That seems like an uncharitable interpretation.

What I have said is that this particular AI approach changes the risks and incentives for politicians so that they are _more_ likely to commit a greater number of small, but more real offenses, than the few outward anomalies the AI flags.

Which is worse? Expensing a bottle of wine, or having a vendor pick up the tab for an entire meeting? I would argue the latter has more impact on perceptions of corruption, yet this demoralized AI approach disproportionately punishes the former.

There is a style of argument that I'm starting to think of as "argument from tyranny," which begins with a denial of the coherence and legitimacy of the speaker, and ends with a defamation of character. They call it "sealioning," on the internets, but it bears more scrutiny, because it is part of why people are reduced to using pseudonyms.

</comment></comment></comment><comment><USER14> This is such a cool project that deserves some attention.

As a side note: one of the project members was interviewed on The Changelog[0]. The interview presents many topics related to the project, e.g. technology, community, challenges.

[0] [https://changelog.com/podcast/268](https://changelog.com/podcast/268)

<comment><AUTHOR> Thanks. I was was actually about to post this. Fábio Rehm gives a really good overview of the project in that podcast. This is how I actually discovered that project.

<comment><USER15> Oh, It wasn't me :) I just suggested the podcast and Eduardo Cuducos (@cuducos) talked about it there =}

<comment><AUTHOR> Oh! I discovered it from one of your tweet / blog! Thanks for the correction.

</comment></comment></comment></comment><comment><USER16> Slightly off-topic, but this is what a Serenata de Amor is in Brazil (it's a bonbon and it's very good, IMHO): [https://i.imgur.com/tQZ0JHF.jpg](https://i.imgur.com/tQZ0JHF.jpg)

<comment><USER17> I assume it's also "love song" (well, "love serenade", to be a bit more accurate) :)

<comment><USER18> You are correct! [https://serenata.ai/en/faq/](https://serenata.ai/en/faq/)

</comment></comment></comment><comment><USER19> I love the idea, but a quick review of tweets shows a bunch of seemingly inconsequential reports for meal refunds where the issue is that the meal price is an outlier, but prices listed are 39 to 75 BRL (12-25 USD).

That doesn't strike me as a funny meal price. Assuming it's not an error, it would be nice to have some additional context on what the observed distribution of meal prices is, because at a cursory glance this looks like noise.

Is someone able to find a more substantial report?

<comment><USER20> Take this one, for instance: [https://jarbas.serenata.ai/layers/#/documentId/6185347](https://jarbas.serenata.ai/layers/#/documentId/6185347)

R$239.50 or $74. That's 25% the minimum wage here in Brazil.

This means that this congressman was paying for someone else's meal, which is in itself an act of corruption.

And even if that's not the case, most Brazilians can't afford a 40 BRL meal on a regular basis, so why should a politician be able to do so with our money?

If you dig deeper into other reports, you can also see congresspeople spending public money in sex shops and clubs, for instance ([https://twitter.com/cuducos/status/840882495868530688](https://twitter.com/cuducos/status/840882495868530688)).

<comment><USER19> I think there are two separate issues.

I don't know whether paying for someone else's lunch is OK according to regulations for meal stipends in Brazil. I wouldn't call that corruption off hand, but it might be forbidden. I defer to you on this.

Personally I live in Buenos Aires and I regularly spend USD 15 on a no frills lunch menu in a fancy-ish neighborhood (nothing fancy for the food itself, no desert, the kind of place where a group of 20 people from nearby offices have a loud lunch). From my experience Sao Paulo is more expensive than Buenos Aires, so it didn't strike me as odd initially.

That's out of reach for the statistical average of income from Argentineans, but it's not an amount that a congressman wouldn't be able to afford on their own dime. I certainly wouldn't get outraged at the expense or assume corruption - congressmen are paid significantly above minimum wage.

<comment><USER21> 40 BRL can pay a lunch in a very good restaurant, maybe not the commoner's bit understandable.

100 BRL would pay a buffet in a fancy barbecue shop, the absolute limit for me.

200 BRL+ is completely unnaceptable. Do they want to eat at a bistreau with public money?

</comment></comment></comment></comment><comment><USER22> Interesting project, but the false positives might turn people off. Stuff like a 50 BRL (~15 USD) pizza receipt ([https://jarbas.serenata.ai/layers/#/documentId/5611260](https://jarbas.serenata.ai/layers/#/documentId/5611260)) are not that interesting in a country with much more lavish public spenders.

Namely, I'd like to see more public scrutiny against the illegal salaries judges receive in Brazil - which sometimes are twice or three times greater than the legal limit.

<comment><USER23> Yeah, as well intentioned as it is, the real corruption is people taking huge backhanders for stuff, and diverting government funds to their family, not people forgetting to name the members of staff they had lunch with on paperwork, getting the date wrong on the paperwork or buying stuff in both the origin city and destination city of their flights. And the real corruption generally doesn't involve expense receipts

The UK had a similar issue which started off with looking at very specific instances where politicians made hundreds of thousands of pounds from fraudulent representations for expenses associated with a London "second home" and ended up ranking MPs by office expenses they were very much entitled to claim and highlighting legitimate claims for snacks just because they were funny. Trouble is, the basic conclusion was "all MPs are corrupt" which actually makes it harder to grab public attention over more serious conflicts of interest.

</comment></comment><comment><USER24> this is awesome! having lived in Brazil I can testify that the country really need this (if such testimony is necessary). However I do think other countries would benefit too!

I've long wished for AI governance, and this is a great step in the direction I imagine that working. I for one welcome our new robot overlords ;)

<comment><USER25> >I've long wished for AI governance

Someone has to write the algorithms, and something tells me it's not going to be the 99%.

<comment><USER26> It probably wouldn't end in a Skynet-type situation. Or rather, that is very very unlikely.

Though on the remote possibility that this does happen; I welcome our new AI overlords!

</comment></comment></comment><comment><USER27> In Brazil, federal, state and some local governments publish what is called "Diário Oficial". It's a daily ledger of official hirings, firings, payments, votes on legislative chambers and even criminal indictments. The Brazilian Congress also post all the laws and amendments proposed and approved on its website [http://www2.camara.leg.br/](http://www2.camara.leg.br/).

While AI is no solution for corruption, it could create a more transparent system with a lot more accountability highlighting the potential misuse of money.

Actually, even without sophisticated technology, whoever decides to read the free and available content, will quickly find many things that jump the eyes. For instance, I remember seeing that my city, under the new mayor, was paying for school buses while the school was off, in the month of January and three times the amount the previous administration used to pay (while kids were in school). My city also had even a helicopter for the local security force, which was not actually police and was not able to even carry guns. The helicopter was paid, faithfull, for many years. But seen in public only once, in a parade.

At the time (many years ago), I tipped newspapers and nobody cared.

A few years ago I created a simple script that to download all the public available law proposals from the Congress ([https://github.com/pablomelo/baixa_camara](https://github.com/pablomelo/baixa_camara)) and downloaded 300GB of data.

I wanted to create an app where voters could see where and what was the allegiance of their representatives (In Brazil there's no district division and a candidate for Congress can get votes from anywhere in the state. While it prevent's gerrymandering, it also allows politicians to have little commitment to their constituents).

</comment><comment><USER28> This project is interesting, but real corruption doesn't happen with receipts. Corrupt politicians will receive funds in offshore accounts and then work for foreigners, such as the foreign oil companies that are now taking vast amounts of Brazilian oil contracts for next to nothing. The corruption cases presented by the Brazilian media are peanuts compared to these shady deals involving big foreign investments.

<comment><USER29> This is the excuse of the impeached Workers Party ex-government. With a touch of fascism - "the foreigners are the real danger!!!!!11111".

The other excuse was that "corruption is small compared to the GDP". (And what about the chilling effects?)

<comment><USER28> If you don't believe that Shell/BP can buy politicians to have easy access to oil, you should better get acquainted with the politics of other countries [0]. This is the first thing I thought about when I heard about big oil reserves in Brazil.

[0] [https://www.ft.com/content/a9e193de-2044-11e7-a454-ab0442897...](https://www.ft.com/content/a9e193de-2044-11e7-a454-ab04428977f9)

<comment><USER29> I am not naive, and you should not be naive to the "bad bad foreigners" mantra that is tailored for the reptilian brain layer of the voters, either.

<comment><USER21> Dude, this hapoens and is not as negligible as you imply.

Sure, there's an agenda to appeal for a certain rhetoric, but you must accept some facts.

</comment></comment></comment></comment></comment><comment><USER30> Some people are missing the point. The project does not have the idea of seeking congressmen who spend a lot on their meals. Of course, that could help them spend a little less.

But the idea is to find irregularities. That is, a congressman who says he had lunch at such a restaurant, but by analyzing the invoice and the address we find that this restaurant never existed. Or a gas station that does not really work anymore.

This is very common. It is not an analysis of what they do with their wages. These congressmen receive compensation beyond their wages to spend when working in their regions. This compensation has a value of four to five times more than their salary.

</comment><comment><USER31> Slightly OT but combination of gov and data kind of reminded me of Project Cybersyn. If you like this project, you might find reading about Cybersyn interesting [http://www.newyorker.com/magazine/2014/10/13/planning- machin...](http://www.newyorker.com/magazine/2014/10/13/planning-machine)

<comment><USER32> Also:

[https://99percentinvisible.org/episode/project- cybersyn/](https://99percentinvisible.org/episode/project-cybersyn/)

</comment></comment><comment><USER33> Very interesting.

I heard of Benford's law ([https://en.wikipedia.org/wiki/Benford%27s_law#Accounting_fra...](https://en.wikipedia.org/wiki/Benford%27s_law#Accounting_fraud_detection)) that is used to detect accounting fraud.

Are there other known mathematical models to detect fraud?

</comment><comment><USER34> FWIW, it is named after an immensely popular bonbon from Brazil: [https://www.garoto.com.br/produtos/detalhes/191](https://www.garoto.com.br/produtos/detalhes/191)

</comment><comment><USER35> Why is a fishing expedition OK in this scenario but not in normal criminal cases?

It's not a value judgement. I think it's an interesting question.

</comment><comment><USER36> the twitter account: [https://twitter.com/RosieDaSerenata](https://twitter.com/RosieDaSerenata)

</comment><comment><USER37> Brazil is currently overly excited with fighting corruption when its greatest problems lie unperturbed.

Income is too concentrated, taxes are highly regressive, and half the federal budget goes into servicing the debt.

All spheres of brazilian government have achieved a good level of transparency. But the national debate is always skewed by the current scandal cooked up by the media (that's another serious issue: the media is also too concentrated).

<comment><USER38> hmn, do you mean corruption is not as bad as income inequality?

Because one can argue that corruption foster inequality, where government workers steal money from the people, they give favor to rich "friends" making them richer.

I can guess your solution is to give more power to the state to solve the inequality issue, which actually worsens the corruption caused inequality.

<comment><USER37> I don't think cutting corruption to zero would impact people's lives as much as having a progressive tax system.

If you look at overall tax burden, the lowest tier pays close to 50%. The highest tier, a bit over 25%. Trump tried to lower corporate tax to 15% and not even his party thought it was reasonable. In Brazil, corporate tax is zero.

One of the richest people in Brazil, Steinbruch, was caught trying to evade an estate tax of only 4%, when food is taxed at near 20%.

<comment><USER39> You're wrong. In Brazil corporate income is taxed at 34,5% (base 15%, plus additional 10% for medium to big sized companies, plus 9,5% for social security)

That amount is on par or above OCDE counties, and much higher than most developing nations.

What we don't have is dividend tax. Unlike corporate tax that one must pay every quarter, you only pay dividend tax if you give money back to shareholders, so reinvestments are not taxed.

Usually countries balance income and dividend taxes so the government has a stable income but doesn't penalize investments as much. In Brazil, we opted for screwing investors.

Not to mention that companies pay an enormous amount of money in combined sales taxes. A manufacturing company usually pays 17% for state sales tax, another 9,35% federal social security, and sometimes an extra 5% to 15% for "luxury good" (like shampoo).

So, again, you're completely wrong and companies (read YOU) pay a hell lot of taxes in Brazil.

Source: I worked in investment analysis in another life.

<comment><USER38> Idk much about corporate taxes in Brazil, but I do know that the poor pay way too much, a minimum wage employee pays taxes and "contributions" and other forms of taxations, such as FGTS and inflation.

And they pay again when buying goods, I was shocked when I read about the welfare state and the welfare cliff in the US, for the propaganda I was subjected in Brazil it was hard to believe.

So Brazil is way worse for the poor than the US, and getting paid in Brazil as remote for me (as a dev) is cheaper, since I work as a contractor and would pay between 4-6% taxes against ~25% in the US.</comment></comment></comment></comment></comment>


Myapp. Platform for my campus to ask questions  - <AUTHOR>

Frustrated at school, as there is no place to ask a question to my campus folks. Building an app where you can ask questions for my campus.<p>thoughts about this app? possibility to scale?.... <comment><AUTHOR> Rephrasing above question.

Building an app, where students in a campus can interact and collaborate

Purpose of app is to ask questions to entire campus to get help with everyday decisions like --which course to choose, which professor is better, sublease apartment, campus jobs and any other question they can think of

thoughts about this app? possibility of scaling this?

Inputs appreciated. Thank you

</comment><comment><USER2> I have no idea what you're trying to say - your question doesn't make any sense. Who are your "campus folks"? Ask questions about what? What are you frustrated about?

<comment><AUTHOR> Thanks for bringing it up. Really appreciate the comment. I will rephrase and post it shortly. Thank You</comment></comment>


Mozilla Webmaker - <AUTHOR> https://www.mozilla.org/en-US/webmaker/

<comment><USER2> As good as their intentions are, they do a terrible job at explaining them. It took me a few clicks to get to the meat [1]:

> "Mozilla Webmaker is a new program to help people everywhere make, learn and > play using the open building blocks of the web."

So it's not a piece of software, technology or service. It's an effort to wrap existing tools and projects into a common program and get communities involved.

[1] <https://wiki.mozilla.org/Webmaker>

<comment><USER3> On the first page, in bold all-caps text: TOOLS, PROJECTS, and EVENTS. The projects are on the right under the heading "Webmaker projects" and the events are linked at the bottom "Find a Summer Code Party event near you. Or start your own."

</comment></comment><comment><USER4> It doesn't bode well for accessibility when even browser makers like Mozilla can't get the most basic elements right - links with only colour to differentiate them, images without alt text, missing form labels ...

</comment><comment><USER5> Mozilla used to be regarded as web innovators, but it's more than obvious bureaucracy has got the better of them and the decisions are being made by suits and not web geeks. I mean seriously? I'm a programmer who has been working with the web for 7 years now and I cannot understand what it is Webmaker does, going by the comments here on HN nobody else does either.

</comment><comment><USER6> Did they actually make anything or is this just a "feel good" web page? I didn't understand.

</comment><comment><USER7> I've read this page 3 times and I don't know what it is or does. Clues?

</comment><comment><USER8> To add a bit more clarity:

Thimble is a tool that will launch in a couple of weeks, and will tie a bunch of this stuff together (and hopefully allay some concerns).

The primary "actually new" things that launched yesterday were: -The events platform at webmaker.org (this is trying to bring distributed organizing to webmaking events; not really been done before) -The "Mozilla Webmaker" brand/site to tie some previously separate pieces/tools together into a more user-friendly package -Explanatory video to try and drive home what a webmaker is and why it's important

The biggest missing piece to this is Thimble, which will launch well before the Summer Code Party (<https://webmaker.org/en- US/events/about/summer_campaign/>) kicks off on June 23rd.

</comment><comment><USER9> I don't understand what is confusing people. As sp332 pointed out, it says plenty about the goal on the front page. Yes, Mozilla does seem to have a sprawling, amorphous, and somewhat bewildering product catalog, but that doesn't mean the _this_ project is bewildering.

For those who still can't make heads or tails of the home page, I've created an enhanced version that will hopefully aid understanding: <http://screencast.com/t/pnIFbr2sDRn>

tl;dr: they are encouraging people to put together local web-hacker-learner- etc. events this summer on a particular date, and providing some resources to support those events.

</comment><comment><USER10> Looks promising. Mozilla seem to be following similar lines to google with events and tools. Hopefully they are creating compatible ecosystems.

</comment><comment><USER11> And what is "Thimble"? It's not linked and a Google search seems to suggest no one is quite sure what it is.</comment>


Show HN: Akumuli – time-series database - chaotic-good https://github.com/akumuli/Akumuli <comment><AUTHOR> The wiki states that random reads are not needed for a time series database[0]. I think they are, at least for the use case I'm interested in.

Let's say I have 1000 different metrics at 1-second resolution for a day. That's 1000 * 86400 values. Now suppose I want to get the points for a single metric for the entire day. Won't that require a scan of the entire data set (in other words, will this read 999 * 86400 values I'm not interested in)? How is this different from a table in an RDBMS that's only indexed by a timestamp?

[0] [https://github.com/akumuli/Akumuli/wiki/How-it- works](https://github.com/akumuli/Akumuli/wiki/How-it-works)

<comment> chaotic-good Yes, it will be equivalent to db table indexed by timestamp. All data will be scanned but 86400000 values can be scanned in 10 seconds or so. In future I'm planing to implement some indexing based on bloom filters to speedup this. Now it is write optimized storage.

<comment><AUTHOR> How is this any better than LevelDB?

<comment> chaotic-good Faster sequential writes. No compaction step needed. Constant amount of disk space is used.

</comment></comment></comment></comment><comment><USER2> Looks good. Is it deployed in production ? Any figures you may share ?

<comment> chaotic-good It's not deployed into production yet. What figures do you interested in?

<comment><USER2> Figures from a production deployment</comment></comment></comment>


External microwave propulsion technology for single-stage-to-orbit space flight [pdf] - <AUTHOR> http://escapedynamics.com/wp-content/uploads/2015/05/Escape-Dynamics-External-Propulsion-WP.pdf <comment><USER2> This is similar to an early proposal on the Skylon and other systems. Generally works much better in dense air, and it makes an interesting beam weapon when you aren't launching things with it. I read an earlier proposal which I can now not find which used the same sort of laser aggregation that the NIF was planning on using for fusion containment but as a field of smallish (10kW) lasers which could all be trained on the same target to input a bunch of heat which the target would use to convert a liquid gas into the necessary reaction mass to lift into orbit.

They all seem to peter out at 25 km or so. The goal with lasers was to pick a wavelength that the atmosphere was relatively transparent too but could be easily converted into heat through absorption on the receiving end. Microwaves would work to if you are careful about your wavelengths and don't point them at satellites.

<comment><USER3> I have an extended family member who has been working on this for 30 years. Much of it is self funded but at times he's worked with NASA and most recently the Brazilian air force. Similarly to Elon Musk his goal is to lower the cost to space.

[1] [http://science.nasa.gov/science-news/science-at- nasa/1999/pr...](http://science.nasa.gov/science-news/science-at- nasa/1999/prop16apr99_1/)

[2] [https://youtu.be/KtH-SxqdtaA?t=1m](https://youtu.be/KtH-SxqdtaA?t=1m)

[3] [http://www.space.com/7067-laser-propulsion-wild-idea- finally...](http://www.space.com/7067-laser-propulsion-wild-idea-finally- shine.html)

</comment></comment><comment><USER4> One consideration is formation of air plasma in the beam (dielectric breakdown) between the transmitting array and the vehicle. If that happens, the plasma will absorb power, blocking it from the launch vehicle. Kind of the microwave analog of LIBS ([https://en.wikipedia.org/wiki/Laser- induced_breakdown_spectr...](https://en.wikipedia.org/wiki/Laser- induced_breakdown_spectroscopy)).

The breakdown field strength of gases decreases as pressure declines until a minimum of a few Torr (see Paschen's Law: [https://en.wikipedia.org/wiki/Paschen%27s_law](https://en.wikipedia.org/wiki/Paschen%27s_law)).

The power density in a beam focussed on a launch vehicle would be pretty high. Anybody know if air can sustain beam propagation at the E-field gradients that would be needed for this to work?

</comment><comment><USER5> Will it kill everything in between microwave transmitter and target aircraft (birds, insects)?

</comment><comment><USER6> Looks like there's a proof of concept, at least for something really light for a very short distance. The longest distance is 127 meters, according to this article:

[http://www.technologyreview.com/view/420700/microwave- powere...](http://www.technologyreview.com/view/420700/microwave-powered- rocket-ascends-without-fuel/)

</comment><comment><USER7> _Escape Dynamics is also developing a next generation system, which relies on the direct heating of plasmas flowing through aresonant cavity with a weight similar to that of the weight of the heat exchanger in a thermal thruster. The goal of thisdevelopment is to allow operation with specific impulse above 1,500 seconds, leading to propellant mass fraction below 50%,which is comparable to airplanes._

Interesting. But since your power requirements are basically your specific impulse times your thrust that'll up the power they need. Still, electricity is cheaper than rockets.

</comment><comment><USER8> How feasible is it to use compressed air instead of hydrogen as a working fluid? Would make the craft extremely light.

Edit: compressed air _taken from the atmosphere in-flight_

<comment><USER9> There is an engine design that uses a small unshielded nuclear reactor to heat atmospheric air as a working fluid in a RAM jet, giving several months of flight time before the fuel runs out: [https://en.wikipedia.org/wiki/Supersonic_Low_Altitude_Missil...](https://en.wikipedia.org/wiki/Supersonic_Low_Altitude_Missile)

There are some significant drawbacks to this approach (assuming you managed to overcome the technical limitation of making everything work at the temperature and radiation involved) such as massive radiation leakage, which is why this was intended to be part of a weapon system that could drop nuclear bombs and then just spend its time flying around your enemies cities irradiating them until they shoot it down or it runs out of fuel, causing yet another nuclear disaster to deal with as it crashes.

The successful test run shows the design can work, so an external microwave heat source could do the same if you could transfer enough power.</comment></comment>


Ask HN: Web-based coding text editors? (for coding on the cr48) - <AUTHOR>

All of this talk about the new Chrome notebook has me thinking about moving coding to the cloud.
Almost all of the coding I do now is stuff that is hosted at github. I don't see any reason that couldn't be done in a browser. It looks like Mozilla has a project targeted at this (https://mozillalabs.com/skywriter/ formerly Bespin).
Are there any others? Are any HNers coding this way already? And yes, I know that vi/emacs + ssh is viable, but that is not the topic ;) <comment><USER2> Cloud9 IDE (<http://www.cloud9ide.com/>) is a neat looking project. It's Javascript-centric right now but I believe it will be more generally useful.

<comment><USER3> This project is pretty active on github

<comment><USER4> I've never used github so this is my first foray into using it and it is down! Does that happen often with github? I've been unable to clone from it (or even connect to the website) for a few hours now.

</comment></comment></comment><comment><USER5> This seems like a promising implementation of Vi in Javascript: <http://gpl.internetconnection.net/vi/>

<comment><USER6> Nice, but heads up: it doesn't play nice with Vimium (chrome extension).

<comment><USER7> If it was done in a similar way to vimperator there should be a passthrough mode (ctrl-z in vimperator)

<comment><USER8> In vimium you can press 'i' to go into 'insert mode (sort of)' which works similarly (albeit not as well as) vimperator's passthrough mode.

Adding the exclusion is probably the best route though.

</comment></comment></comment></comment><comment><USER9> This is what I do on mine,

Control + Alt + T; ssh user host; emacs -nw

<comment><AUTHOR> Yes, as I said in the initial post, I know that is possible, but it misses the point. This requires a host that you want to develop on and as I move more to the cloud (i.e. hosting on Heroku), I am less likely to have a server to SSH into.

<comment><USER10> It's worth having a VPS around as your dev environment. The laptop you're carrying around is extremely likely to get lost, stolen, dropped, or otherwise damaged. A VPS isn't a backup solution, but it's not at constant risk of physical harm.

Work in a screen session and you'll be able to pick up where you last left off --from any machine. Not to mention your VPS is almost certainly faster than your laptop and connected to a bigger pipe than whatever wifi you're borrowing, so downloading a .tar.gz or a git clone will be fast, and compiling won't eat up your battery life.

<comment><USER10> It's probably worth plugging <http://prgmr.com/xen/>, run by fellow HN member lsc. If you prepay for the year, a 256MB VPS is only $6.40/mo. I've had good luck with it so far; it's a perfect always-on dev environment.

(I'm just a customer, no affiliation)

Edit: looks like they're not accepting new customers right now. sorry.

<comment><USER11> They where having some issues with their billing pages it said for some time. You can always email them and ask to keep you updated when you can place an order again. Even tough they seem to cut costs by not having a regular helpdesk, they are very fast responders and seem to know their bussiness very well.

I'm a new customer of their service and very happy with the price/quality, but you do have to have a technical background.

</comment></comment></comment></comment></comment><comment><USER12> <http://www.ymacs.org/>

<comment><USER13> Unfortunately, Chrome OS seems to trap C-n before it makes it to the browser.

</comment></comment><comment><USER14> [http://en.wikipedia.org/wiki/Comparison_of_JavaScript- based_...](http://en.wikipedia.org/wiki/Comparison_of_JavaScript- based_source_code_editors)

I'm always amazed at what can be found on wikipedia.

<comment><USER15> Indeed, though those comparison pages tend to be _very_ out of date and missing major players while including ones that existed for months at the most.

</comment></comment><comment><USER16> I saw <http:///www.coderun.com> posted here the other day.

<comment><AUTHOR> All of the images on that page are broken (in Safari). That doesn't exactly instill confidence.

<comment><USER17> You sure? <http://cl.ly/3a5v>

<comment><AUTHOR> whoa. Weirdness.

The clickable link above has three slashes after http instead of two. Somehow this results in a link to http:/www.coderun.com (one slash) which results in broken images in my safari: <http://grab.by/7PQT>

</comment></comment></comment></comment><comment><USER18> Heroku had launched initially with an online code editor though they phased it out. Not sure if it's available online anywhere now days.

<comment><AUTHOR> That would be particularly cool if Heroku added a "staging environment" to test the code prior to deployment.

</comment></comment><comment><USER19> I haven't used skywriter, since it was bespin, but I was impressed with the progress at the time. <http://kodingen.com/> looks pretty nice though.

<comment><USER20> I wish Kodingen was a little more focused on development and less on the "social" stuff. It has such amazing potential.

</comment></comment><comment><USER21> I have a working (but far from perfect) App Engine based one here: <http://qkhack.appspot.com/>

Only Firefox for now, due to the editor UI. If you'd like to help integrate Skywriter/Bespin, I'd love to collaborate. The code is here: <https://github.com/niryariv/weblets>

</comment><comment><USER22> <http://jsfiddle.net/>

Its not a complete IDE, but its a nice web dev sandbox.

</comment><comment><USER23> I wrote about this a while back: [http://teabuzzed.com/2009/09/its-time-the- case-for-a-browser...](http://teabuzzed.com/2009/09/its-time-the-case-for-a- browser-based-ide-from-google/)

It still baffles me that Google hasn't tackled this already.

</comment><comment><USER24> <http://kodingen.com/> is alright.

<comment><USER25> What I see as a bonus here is that it offers multiple editors, that'd be useful if I wanted to use them on my phone and on a full machine too.

</comment></comment><comment><USER26> <http://mbed.org/> has a full ide for embedded C programming.

It's as easy as writing your code (in your browser), launch the compilation process in their systems (cloud) and automatically downloading the resulting binary file, which can be easily transfered to the device by drag&drop, since it's recognized as a usb storage device.

I got mine for free a while back and it took me few minutes to develop a simple multi-threaded application to control a few LEDs and Servos.

</comment><comment><USER27> Hi - we're working on <http://buildorpro.com> which is focused on html/css markup as opposed the more codey focused IDEs.

It gives you a great mix of html/css editors with a Coda/Espresso style CSS design tools and a bunch of other advantages that developing in the browser brings you.

The beta's there for sign up if you fancy giving it a spin.

PS - FireFox only at the mo. but Chrome support is hot on its heels.

James Law @ Buildor

</comment><comment><USER3> Executable pasties: <http://codepad.org/>

Supports: C C++ D Haskell Lua OCaml PHP Perl Plain Text Python Ruby Scheme Tcl

</comment><comment><USER28> I was wondering about this too. But what good is being able to code in a browser unless you can actually [compile and] _run_ your code somewhere? I can see how a browser-based editor could be great for editing JavaScript. But unless the browser also hosts or provides access to a platform for the language you're working in, what is there to be gained by coding in a browser?

</comment><comment><USER29> I started constructorizer this summer but haven't had the time to do much with it. Someday I'll get back into it and integrate git repositories and finish features etc.

<http://www.constructorizer.com>

</comment><comment><USER30> This will also be very useful for those of us with iPads, who want to code on the go. :)

<comment><USER31> To code on my iPod Touch (I learned some javaScript and) had a little HTML page with an input box and a button that would eval() the contents of the box and print the result. With HTML5's offline capabilities it even worked without connection. That worked but wasn't very pleasant, now there's JavaScript Anywhere, jsconsole and ExecScript. If you want to program in JavaScript one of those might suit you.

</comment></comment><comment><USER32> For web development, <http://buildorpro.com/> is a newer option. It currently only works in Firfox, but seems to be coming together pretty nicely.

</comment><comment><USER33> railsforzombies.com used Skywriter. I don't really know how the guys at Envylabs integrated the code or if they modified it at all, but the end result was definitely awesome.

</comment><comment><USER34> Is there an easy way to access a terminal shell in chrome os?

<comment><USER15> Two ways:

* ctrl+alt+t (limited-functionality)

* switch to "developer mode" (hardware switch in battery compartment, erases all "personal information" when toggled)

</comment></comment><comment><USER35> I thought it'd be nice to make a build of Vim on NaCl. It seems like a hacked up version of netrw could just read and write directly to github/googlecode/whatever.

</comment><comment><USER36> <https://bespin.mozillalabs.com/>

</comment><comment><USER37> Besides everything people mentioned, I use www.collabedit.com This one is really useful.

</comment><comment><USER38> Bram Moolenar works for GOogle, why won't Google Develop a text editor cloud of vim with realtime collaborative feature it would be great for Chrome OS also.

</comment><comment><USER39> Here is a list of some of them <http://bit.ly/gxM8Wj>

<comment><USER40> Since HN tends to frown on url shorteners, here's the full url:

[http://www.smashingapps.com/2010/12/07/11-robust-web- based-e...](http://www.smashingapps.com/2010/12/07/11-robust-web-based- editors-to-code-directly-from-your-browser.html)</comment></comment>


A World Map of Disasters and Accidents Updated in Real-Time - <AUTHOR> http://www.labnol.org/internet/world-map-disasters-accidents/18525/

<comment><USER2> Needs tuning; every 2.2-magnitude earthquake seems like noise in this context, for instance.</comment>


Footbl – WhatsApp for football betting - <AUTHOR> http://footbl.co

<comment><USER2> I don't understant why you compare yourselves to WhatsApp... because it's a mobile app?

It's a sports betting platform from what I can see. It looks nice.

I tried several during the World Cup buildup, but our main goal was to play against friends and coworkers.

If it has a nice social integration, it could be a nice Facebook game as well :) (you know of Preguntados?)

<comment><AUTHOR> Yup, it's actually a good idea - thanks for the feedback. We say it's "WhatsApp for football betting" in the sense that you can build your groups of friends and discuss with them about your bets. Very simple and functional UI too, no bells and whistles - the content is the important thing. Actually, the idea came when I realized friends on WhatApp were betting on Champions League matches. It was fun but also a mess, no one could keep track of anything. Why not an app for that?.. So we built Footbl to capture the thrill of real money sports betting (dynamic odds) - only with virtual money, friends, and an intuitive UX =) Our hypothesis is that people are less interested in the money itself than they are about having fun bragging to friends about their "predictive skills". Essentially, many people like sports betting but not gambling. So we'll expand the market.

</comment></comment><comment><AUTHOR> and by football, we mean soccer =)</comment>


We don't have a word for the study of sunlight.  We should. - <AUTHOR> https://medium.com/@winstonford/planetary-vocabulary-b0dffa9d6cc6

<comment><USER2> To be pedantic - it falls under optics. The study of light. Light is light, even sunlight.

Sunlight is just the name we give to the infrared, ultraviolet, and visible _light_ we receive from the sun's electromagnetic radiation.

...Although I do like the sound of luxology or solluxology...

<comment><AUTHOR> Fair enough. It also falls under heliophysics. I would argue that we need something more specific.

</comment></comment><comment><USER3> Solar astronomer. Solar spectrologist. Optics, which has been part of physics since Newton.

For that matter, solar x-rays and extremely low frequency radio waves are both part of sunlight, but play little role in climatology.

"we lack a single word for the study of this thing. Doesn't this seem odd?"

Ummm, no? "Plant biologist", "organic chemist". Many scientific fields use more than one word to describe them. Some people even use "water scientist" or something similar, instead of "hydrologist". Here are a few:

"Jay Famiglietti is Senior Water Cycle Scientist" \-- [https://science.jpl.nasa.gov/people/Famiglietti/](https://science.jpl.nasa.gov/people/Famiglietti/)

"In addition, a full time Water Scientist position has been created to assist Council in the management of the project" \-- [http://www.gloucester.nsw.gov.au/environment/water-study- pro...](http://www.gloucester.nsw.gov.au/environment/water-study-project- new/home/water-study-project-home)

"Mount Rainier Jr. Water Scientist Report" \- [http://www.nature.nps.gov/geology/gip/web_products/MORA_2010...](http://www.nature.nps.gov/geology/gip/web_products/MORA_2010_GIP_Walters_Junior_Ranger_Program.pdf)

It's silly for the aliens to be hung up on word boundaries. Teach them German or another language which permits words like Stromtarifrechner ("electric bill calculator") for what in English requires three words.

As to the topic at hand, the problem isn't due to a change in incoming sunlight, it's due to an increase in greenhouse gases in the atmosphere, which decrease planetary cooling. This is part of climatology, which is one word. Or "earth system science" (three words) or systems ecology (two words).

> when the body comes under attack, we run a temperature. .... "Planetary > temperatures are common when a species, typically a young one, upsets the > balance. In some cases the new species integrates quickly and restores > balance. In other cases the temperature creates challenges that reduce its > population, and sometimes the species is wiped out completely. It's very > similar to the process in the human body."

That's a strawalien. Elevated body temperatures as a response to infection appears to be an evolutionarily acquired trait, though we aren't sure if it has a direct benefit or is a side-effect of some other response. It's not similar to a planetary ecology, which is decidedly non-Darwianian.

In no cases did the species integrate quickly to the new balance? In no case did the new species trigger decreased temperatures, of the Snowball Earth kind? With all their experience in the great galaxy, I find it hard to believe they only came across one type of ecosystem perturbation.

<comment><AUTHOR> Thx for the feedback.

One word or more, water science is well represented in many languages, no doubt about that.

Temperatures like inflammation and congestion may serve a purpose to a point, beyond which they are counter productive and destructive.

Data does not show our planet temperature in a state of balance nor entering an ice age.

<comment><USER3> Then the word you want is "solar radiometry". The first person to measure the solar constant was Claude Pouillet, a physicist. Here's some history of Pouillet from [http://documents.irevues.inist.fr/bitstream/handle/2042/1694...](http://documents.irevues.inist.fr/bitstream/handle/2042/16943/meteo_2008_60_36.pdf) :

> Claude Pouillet greatly contributed to the development of climate sciences > by estimating the solar constant, i.e. the incoming solar radiation at the > top of the atmosphere (also called total solar irradiance) ... He also > evaluated the total absorption of solar radiation by the atmosphere.

Alas, it is in French and I am unable to read more than a few words of the language.

People who work in solar radiometry tend to come from astronomy, metrology, space science, and physics.

Your conceit (and I use that as the literary term; an "extended metaphor with a complex logic") is that some E.T.s provide guidance that 1) elevated temperature in people is 'very similar to the process in the human body'.

At best these E.T. are using Wittgenstein's ladder, a.k.a. "lies to children." This is about as true as saying that a pain on your stomach from a stomach ache is the same as a pain from appendicitis, is the same as the pain from taking a punch in the stomach. They all certainly cause pain in the belly, but the reasons for the pain, and the ways to resolve the pain, are very different.

The other part of the conceit is that 2) these E.T.s can say 'Planetary temperatures are common when a species, typically a young one, upsets the balance'. This implies that temperature _increases_ are a common result of upset, but _decreases_ , or other sorts of ecosystem collapse, are not common.

I am not ignorant. I chose 'Snowball Earth' precisely because it is _not_ an ice age. Certainly these E.T.s must have come across cases on _other_ _planets_ where a new species ended up breaking the greenhouse effect that was keeping their ecosysem alive, and ended up with a snowball cascade.

Since the statements from this 'wise group' of entites doesn't pass a basic sniff test, they end up being straw puppets uttering only the words you think they should say. I feel like your conceit ends up being nothing more than a wordy attempt to elevate your personal beliefs, instead of the insightful metaphor you meant for it.

<comment><AUTHOR> "solar radiometry" is two words, mon ami.

I found your first round of criticism about temperature valid and removed some of the copy.

Regarding the conceit, see above comment.

If we get to the point where it's relevant to discuss the dangers of a runaway drop in temperature, that would be refreshing.

As for the conceit again, point taken, again.

Sometimes when I explain a problem to someone, the solution becomes evident. That's my goal here.

I hope you found some value in the time spent reading and discussing.

<comment><USER3> Well, I found your word for you. It's "actinometry" \- "the measurement of the heating power of electromagnetic radiation, especially that of solar radiation" [http://en.wiktionary.org/wiki/actinometry](http://en.wiktionary.org/wiki/actinometry) . See for example [http://dash.harvard.edu/bitstream/handle/1/3716614/Voskuhl_R...](http://dash.harvard.edu/bitstream/handle/1/3716614/Voskuhl_Recreating.pdf?sequ%20ence=2) :

> Recreating Herschel's actinometry: An essay in the historiography of > experimental practice

> In the course of a four-month period of research I worked with a replica of > the so-called `actinometer', an instrument to measure the intensity of solar > radiation, which was invented by John Herschel in 1824

The French word "actinométrie" has its own Wikipedia entry, which seems to be more focused on the sun than used in recent English. See [http://fr.wikipedia.org/wiki/Actinom%C3%A9trie](http://fr.wikipedia.org/wiki/Actinom%C3%A9trie) . Get your E.T.s to learn French and there's no problem.

Your insistence on "one word" is about equal to numerology in its usefulness.

Spaces are a question of orthography. In English we happen to use spaces to write "air raid shelter" instead of "airraidshelter". (Some even write 'air- raid shelters'.) In German they use "Luftschutzbunker" \- "air protection bunker".

Had English gone a slightly different way some 1000 years ago, then we would write "solar radiometry" as "solarradiometry". There's no deep meaning to the space character on our psyche.

Indeed, the English compound expression "solar radiometry" is the single German word "Sonneradiometrie". Here's a paper which uses it to describe the focus of activities in the PTB laboratories - [http://www.ptb.de/cms/fileadmin/internet/fachabteilungen/abt...](http://www.ptb.de/cms/fileadmin/internet/fachabteilungen/abteilung_7/7.1_radiometrie/PTB- Mitt-Astrophysik.pdf) .

It's also the Danish word "solradiometri", used in ftp://ftp.oami.europa.eu/bulletin/ctm/2012/2012_075_PDF/2012_075_DA.pdf .</comment></comment></comment></comment></comment>


Ask HN: collaboratively writing with Git (Cucumber) - <AUTHOR>

It has come up multiple times with my clients, but there is no easy way of letting non-technical people change Cucumber features.
Cucumber features are usually stored in the repo where your code is, so devs can run them while implementing behaviour. At the same time, they are (or should be) written collaboratively between testers, POs and BAs.
What we do at the moment is we write them together and I commit them to git. But if any non-tech person has changes to apply, they create a text file and send it to me to store. This is obviously an overhead.
Did you find you had this problem and if yes, how did you solve it?
PS: my client doesn't use Github <comment><USER2> My first thought is to provide some means of just putting the file into the repository, and damn the consequences. For example a web upload, the script/program on the server uses the current HEAD, puts the file in there, git add, git commit etc.

In that case, git won't detect conflicts, but humans might, so some git-savy user can remedy that. A slightly more sophisticated mechanism would assign a branch to each user, and then merge as you see fit.

<comment><AUTHOR> Mmm cool idea, I like the branching/merging strategy!</comment></comment>


Karma is Real - <AUTHOR> http://simpleprogrammer.com/2012/08/19/karma-is-real/ <comment><USER2> My best suggestion for the author of the post, is to return to the restaurant. Be gracious, say please and thank you. Make sure your kid is especially well behaved. Tip well (30% plus). When you get the chance, tell the owner that you come an extra distance because you appreciate her food and enjoy the place. Because it's a touchy subject now, don't quibble about the bill (even if there's clearly a mistake). For a while, don't worry about the promotion.

Just be a good customer. You'll see, in time, that her attitude will soften, and things will be comfortable again.

It's hard to run a business, whether it's a startup or a breakfast spot. There are lots of stresses your customers will never see, and a lot of burdens. Especially financial burdens on non-venture-funded/bootstrapped businesses like the breakfast place. Maybe she snapped, maybe she overreacted. Maybe there's more to it than you realize. Maybe she gets annoyed with people who are too exacting about small financial things.

It doesn't matter. Just be a good customer to her. It's he best thing you can do.

<comment><USER3> I found it particularly ironic that the author considered this a 'single transaction' from the eatery's side, but a 'lifelong' transaction from his side. If you're really not worried about single transactions, pay up today, and get the discount next time. Extrapolated out, you make the loss of an amazing $1.25 - instead of wasting your own time and causing a scene.

<comment><AUTHOR> The difference is being the customer vs being the service provider. As the customer I have options, I can go elsewhere. I pay for food service because I get service, I can get food anywhere. When I stop getting service, I stop paying. Do I really care about the $10? No, but it makes a great point for a blog post.

<comment><USER3> I don't care about the food or the service in your story, it's irrelevant to my point. I care about you having different standards for the two parties. Standing on principle over a measly $1.25 is 'single-transactioning'.

If you were really concerned about your lifetime transactions, you'd take the blip and keep on running. You've already said that the eatery has 'high quality food and higher quality service', so it's clear that this behaviour is not the norm. So what you're saying here is that at the sign of the first mis- step, you're out the door? That means you see it as a series of single transactions.

<comment><AUTHOR> Actually, I had said it was around a $10 transaction, which I agree is also not important. But what is very important to me is that on my relaxation time (which I have so little of, hence the value)-- I am surrounded by the atmosphere that gives me peace and makes me feel good. That is the point of going to a nice little cafe with my family. This cafe has a history of bad reviews which parallel my experience and I rather go to a place I feel valued at. So, I am actually looking at things in the bigger scope. I have enough information to know that I don't want to pay money to be mistreated. I don't see that as a double standard in any way. I do understand your point though and I still think it is a good point, just not in this particular situation, because of the circumstances. In a 100 other circumstances, I would agree with you 100%. If that makes me a hypocrite in your eyes, then so be it. I didn't even want to make as big of a deal as it as it is. It didn't ruin my day by any means... Just wanted to use it as a point for this post.

<comment><USER4> Don't sweat it man. That's one of the things that's both awesome and frustrating about HN. It surrounds every issue and flows into every crack like water.

Its hard to use metaphors and analogies here because you have to consider all of the implications and breaking points because you know someone is going to draw them out ab absurdum.

I think that most people understand that your role in the story was "generic customer" and that the story wasn't supposed to be about your actions at all. You were supposed to be the black box and the restaurant the introspected actor.

We troll the ones we love the most. It's a subtle form of compliment.

<comment><AUTHOR> LOL, thanks. Felt like I was taking crazy pills for a moment. :P

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> "Every model is wrong, but some are useful." - George Box

While every model is a simplification, and technically wrong. Some simplifications can be useful when they are right almost every time. But this is not the case here. This is too much of an oversimplification, he overgeneralized it. The only useful take away from here is "mind the long term consequences". Everything else needs to be decided case by case. "The costumer is always right" is an overgeneralization. It's not always right, it depends. It's not even almost always right. You'll need to be critical case by case more often then not. It's not useful to oversimplify this.

<comment><USER3> I remember hearing a businessman say "The customer is not always right. The customer has a right to be _heard_ ".

</comment></comment><comment><USER6> While I agree with the whole long term vs short term thing. One should be careful about how to apply this. For instance, devoting yourself to your soulless corporate job most often doesn't pay dividends in the long term. There are many companies out there who are happy with exploiting such employees. I say this because I have done just the same thing the last 4 years i.e. put in my heart and soul for such a company. Happily, I have moved on to better things and the company is worse off. So yay karma :) But, you sometimes have to make tough decisions now in order to achieve your long term goals.

[EDIT: I did become a really good programmer in the process and learnt a lot from my team lead who was highly knowledgeable, so that was the only good to come out of it.]

</comment><comment><USER7> "Someone is using your software otherwise you wouldn't be writing it." Well this is actually wrong. A lot of people write code just for fun (for the lulz), or for their personal use.

<comment><USER8> There is also a whole lot of code that gets written but never used.

</comment></comment><comment><USER9> The business owner could have been upset because the promotion ended up rewarding an established regular customer instead of converting a new client to a regular. regardless of the reason you were treated unfairly be the account presented.

I have had enough promotions and warrantys turn out to be more work than they are worth (usually some escape clause or fine print) that I tend to either let my wife deal with them (I know... let the flaming begin) or just avoid them all together.

<comment><USER10> If the promotion didn't work out, that's the business owner's fault. Taking it out on a loyal customer is just wrong-headed.

</comment></comment><comment><USER11> The only problem I see with this analogy is that "Development" and "Programming" is an entirely different class of job as "Register attendant at a cafe."

If it was the owner of the cafe who did this, then that'd be really strange, because obviously the owner probably does (or at least should) have the "big picture" in his/her mind. But some lowly employee who checks people out at the cash register? Of course they dont see the big picture, its not their business to.

Good points though, although they are all kind of a no-brainer in my mind. This seemed a lot more like a chance to articulately vent frustration, than actually making any real points or major revelations.

Sorry your family got hassled like this.

<comment><USER12> I've found the best performing consumer companies require their employees to think in the same way.

<comment><AUTHOR> Great point

</comment></comment></comment><comment><USER13> If you are genuinely interested in humans as humans, who they are, their personal stories, their touching, impressive, positive specifities and in them not as means for x,y,z, you'll be rich! (doesn't mean only with money)

<comment><USER14> The author's xyz in this case was making a point. Instead of paying for the meal and getting his freebee the _next_ time his daughter and he ate at the cafe, he felt he was RIGHT and JUST, the owner was WRONG and SHORTSIGHTED.

I wouldn't be bringing this up if it weren't for the authors use of "karma." It seems like all parties incurred some karma here.

</comment></comment><comment><USER15> Simpler interpretation of the cashier's behavior: thinking in terms of transactions is the obvious rational thing to do for the cashier, but things would probably have been VERY DIFFERENT if you interacted with the OWNER of the place! Owners care about the long term success of the business so they are usually much more friendly to costumers than employees. And I think this can be generalized to the fact that the few employee owned businesses way have much better customer relationships.

<comment><USER16> It wasn't a cashier, it was the owner.

</comment></comment><comment><USER17> I find the pop (mis)use of the word "Karma" annoying. Karma is part of a cycle of reincarnation. Karmic benefits do not accrue in one's current life -- they affect the next life. Our current situation is the result of actions in a past life.

Every person I have heard use this word casually does not believe in any form of reincarnation.

And to go deeper, this is a selfish argument for ethics or hard work. "Do it because it is good for you" should be, "Do it well because this is the correct thing to do".

</comment><comment><USER18> This the kind of thing Scott McKain writes about all the time: <http://mckainviewpoint.com/>

Remember the recent story of United losing the kid? No big picture there, either!

</comment><comment><USER19> Those 'single transactions' start to be a lot more important the closer you get to your bill deadlines! People tend to be a lot more generous after the 1st of the month has past :-)

</comment><comment><USER20> My antivirus (Bitdefender AV plus 2012) blocks the link with a warning of malware detected on the page.

</comment><comment><USER21> A lot of things seem to be real these days, it's crazy.

</comment><comment><USER21> damn straight!

</comment><comment><USER22> "There are only two types of people in this world..."

This is always a great indication that the author engages in reductionist simpletonia. There are many types of people in this world, all of which can be plotted along a spectrum between two poles.

<comment><USER23> The author ACTUALLY said "There are two basic kinds of people in this world.", which would imply that there are variations to these basic forms.

If he had really said what you mis-quoted, you might have some point.

<comment><USER22> I stand by my original post.

</comment></comment></comment><comment><USER24> Yes, karma definitely exists in reality. It means that what you have done and what happens to you all accumulates inside you. It continually exerts an influence on you and tries to control you – it appears through your actions even though you don't want it to. Karma is always trying to conquer the self. That's why in order to truly live your own life instead of following the orders of Karma you need awakening and determination.

Here's a particularly illuminating article on karma. I hope you decide to have a look and read with some interest: [http://www.members.tripod.com/tathagata2000/enlightenment_wh...](http://www.members.tripod.com/tathagata2000/enlightenment_what_is_karma.htm)</comment>


Ask HN: What is the market like for junior software engineers? - <AUTHOR>

Everyone talks about how there is such a shortage of engineers and that they're in such high demand. But I sense that this refers to SENIOR engineers. What's the market like for JUNIOR ones? <comment><USER2> 1\. Let me tell you the secret: if you call and market yourself as junior, then you WILL be limited to junior opportunities. The idea that someone is a _junior_ engineer is a self-limiting and self-filtering belief. Very few companies will say they want junior employees, for good reason (there is something amateurish about calling yourself a junior employee - I can't quite put my finger on it). But that doesn't mean that when a company advertises a "[Normal] Software Engineer" position, you're disqualified (you aren't). Most fresh college grads I know don't call themselves junior engineers; why should you?

2\. The market for senior developers is red-red hot. The market for normal software engineers (including junior, entry-level, whatever labels you want) is merely "hot" \- but there is still plenty of opportunity to go around. What bohnej is saying doesn't align with what I've seen in SV.

<comment><AUTHOR> Thanks, that's a great point about limiting yourself. I appreciate it!

</comment></comment><comment><USER3> Not good. There are very very few junior developer jobs. Everyone wants senior or lead developers in 2014. Possibly the only junior developer jobs these days are in very remote locations where they can't find any senior developers.

<comment><AUTHOR> There seems to be a chicken-egg problem here. How do you get to be a senior developer if you can't find a job as a junior one?

<comment><USER4> Living in SF, I also feel like this issue pertains to the tech industry in general, for non-programming jobs. In my girlfriend's experience, tech startups are looking for people who have had tech experience prior, even in Sales, AM, Customer Support, and other more entry-level-leaning roles.

</comment></comment></comment><comment><USER4> 1\. I don't think there is a universal standard for "junior level" anymore. If you have a year's worth of working with Rails across the stack in a production setting, you are more than capable of landing a decent job in SF (not Senior or Lead, of course)

2\. I can't quantifiably say there's a shortage, but I'd have to guess the amount of decent "juniors" that code bootcamps are pumping out are hurting the market if you're a junior competing for the same jobs in web. The bootcamps are collectively graduating thousands of students per year in San Francisco alone. HN doesn't think favorably of this lot, but they are hard workers, have learned modern programming conventions and best practices, and are desperate for work.

Caveat to #2: You can differentiate from this group if you basically _aren't_ a Ruby/Rails or Javascript dev, since those are the primary languages taught.

<comment><AUTHOR> What are you saying in #2?

\- Are bootcamp grads further along than juniors?

\- Are bootcamp grads taking the jobs away from juniors?

<comment><USER4> a. It's hard to say because as I admitted in 1, it's hard to know what "Junior" qualifies for anymore, and I'm unsure of what your metric is for it. If you'd like, we can talk separately and I can try to give you an honest assessment (I conduct engineering interviews at a YC '12 company) of where you stand in relation to what I perceive to be other juniors (and bootcamp graduates).

b. Yeah - bootcamp grads are taught to go after these junior-facing roles (and even forego internships), so this is definitely the market you're competing with, assuming you're Junior as well. Once again, I can only really speak for SF and in web.

<comment><AUTHOR> I should have mentioned but I'm starting a bootcamp (Fullstack Academy) in 2 weeks. I thought that I'd be considered junior after I graduate and was wondering about the future.

If you wouldn't mind, I'd love to do some sort of assessment to see where I am. It's not too important (just curiosity really) so if you have other priorities I completely understand, but if you've got time HMU - email@example.com.

</comment></comment></comment></comment><comment><USER5> We don't typically recruit junior developers being a startup as we want the person to hit the ground running. But bigger companies sure do hire junior developers as they have the leeway to groom them for bigger tasks.

I'm sure there are enough avenues for junior developers, purely going by the salaries that are being doled out by these companies for INTERNS, what with $4,000-$6,000/month salaries. For INTERNS!

</comment><comment><USER6> Depends on what geographical locations you're interested in and what industries you're considering (web startups, big internet companies like Google, finance/trading, enterprise software, embedded systems, etc.). Some more information about what you're looking for would be helpful.

<comment><AUTHOR> Web startups/internet companies.

</comment></comment><comment><USER7> Companies don't want to have to train people at all now, especially startups. So my advice to the OP would be to freelance until he can confidently call himself a senior developer.</comment>


Our first $10 - <AUTHOR> http://nishant.posthaven.com/our-first-10-dollars

<comment><USER2> I really like the landing page for truffle.io -- I think the fact that it points out that 'Nothing gets posted on your LinkedIn' and 'Your company gets filteres' is key for making the service stand out.

The '...or make a new story' line was clever as well. Only thing it can benefit from though would be a higher-quality background picture.

<comment><AUTHOR> Thank you :) Yes, we will get some high resolution picture, the only thing is that we kind of have to figure the interlacing since on mobile networks, its takes a lot of time to load high resolution picture.

</comment></comment><comment><AUTHOR> Also, we did sent a thank you email to our first customer :)

</comment><comment><USER3> I am happy too.</comment>


2008 end-of-year tech stock tips - <AUTHOR> http://fishbowl.pastiche.org/2008/12/21/my_2008_endofyear_tech_stock_t/ <comment><USER2> #1 Stock tip: start tweeting and go on <http://stocktwits.com>

Some of the best guys out there are open and real time. It's pretty awesome.</comment>


Compile to JavaScript: The 4 best alternatives to JavaScript - <AUTHOR> http://blog.debugme.eu/best-alternatives-to-javascript/ <comment><USER2> There are actually several more alternatives to Javascript. Many languages support compilation to Javascript. For instance consider Haskell, Ruby, Lisp, and Nim.

List of languages that compile to JS:

[https://github.com/jashkenas/coffeescript/wiki/list-of- langu...](https://github.com/jashkenas/coffeescript/wiki/list-of-languages- that-compile-to-js)

Javascript has become the "C of the Web", like C has become the default "high level assembler" for native programming and embedded systems.</comment>


How we reduced chargebacks by 30% (as a percentage of sales) - <AUTHOR> http://www.37signals.com/svn/posts/1545-how-we-reduced-chargebacks-by-30-as-a-percentage-of-sales <comment><USER2> I think some gateway APIs let you set the descriptor on a per transaction basis. That seems like the ideal solution.

Probably the _most_ effective way to reduce mistaken chargebacks would be to let the _user_ specify part of the descriptor. They could say "Ask Peter" or something, so if the accounting department didn't recognize it they would ask Peter or "Ask IT" or whatever.

<comment><USER3> Being able to add a PO number to the description would probably help at many companies.

<comment><USER4> This would absolutely help many companies.

I saw this first hand at a company that I worked for. For accounting, you take the receipt and file an expense report. That goes into quickbooks. Then you get the credit card statement and have to go line by line and match it up with the items that were expended. It would consume many hours each month.

</comment></comment></comment><comment><USER5> I get very uneasy when I see a '-' in a url. Something really spammy about it. I'd be inclined to just cancel the transaction on seeing that url.

It's like watching a commercial for eMusic or something and seeing their site advertised with an arbitrary number in front of the service's name, like 73emusic.com. That url doesn't really exist, but I've seen it a bunch of times before.

<comment><USER6> I couldn't agree with you more. There was a comment posted on the blog about why they didn't go with charge.37signals.com instead. I would think this would be better since it contains the real domain. I too am curious why they didn't use the subdomain route.

<comment><USER3> I think the problem with a domain like charge.37signals.com is that many users don't understand how to type it in the address box (e.g. some will add www before it). If you've watched users try to enter URLs with subdomains in the address box you've likely experienced this.

<comment><USER6> Good point, I didn't even think of that and it is true. One option would be to add a CNAME entry for the www portion on the subdomain. That way if someone did it would route correctly.

</comment></comment></comment></comment><comment><USER7> A good example of thinking outside the box. I didn't think customers who were charging back "37signals" would actually take the trouble of going to "37signals-charge.com", but I guess the numbers prove me wrong.

However, the 30% reduction is 'as a percentage of sales'. Since their sales grew in 2008, maybe more sales, more '37signals' specific marketing, and the fact that they've been around a year longer meant more awareness of the '37signals' brand, which directly led to fewer chargebacks?

<comment><USER8> that's assuming that most of their chargebacks were simply because people didn't recognize the charge. how many were because they didn't like the service, didn't get support, or some other reason?

with most credit cards, you don't really need to have a good reason to do a chargeback. especially with american express, they side with the customer rather than the vendor.

american express sent me some paperwork when i signed up for a merchant account and it basically said when a customer does a chargeback, they refund the money immediately and i would have little or no recourse to debate it.

<comment><USER7> If people didn't like their service, wouldn't most of them ask for a refund (which would not be classified as a chargeback)? I believe chargebacks are usually intended for charges that the customer thinks are fraudulent.

<comment><USER8> a refund would have to go through 37signals, and they don't give refunds (<http://www.37signals.com/refund>). a chargeback just avoids the middleman and gets the customer his money back.

<comment><USER9> A lot of companies say they have no refund policy in public, but will refund if a customer complains enough or threatens a chargeback (just because it's so annoying to deal with).

A company like 37signals needs to say they don't give refunds to deflect complaints regarding if you close your account half way through a month.. "Why don't we get half this month's payment back?" etc, which would be an administrative nightmare.

<comment><USER10> If prorating your service is an "administrative nightmare" you have issues.

</comment></comment></comment></comment></comment></comment><comment><USER11> It's also worth noting that if you process payments at large scale, you might also have some fraud-related chargebacks. No matter how you customize the descriptor, you can't completely eliminate those, because the person receiving the bill actually didn't buy the product.

<comment><USER12> true, but when doing SaaS it's less of a problem since you can just shut down or downgrade the account.

</comment></comment><comment><USER13> Sounds like a branding problem. Why have "37signals" at all if people don't recognize it?

<comment><USER14> Their charge explanation page (<http://37signals.com/charge>) looks semi- targeted at whoever pays the bills, who isn't necessarily the person who purchased or uses the product.</comment></comment>


Show HN: Learn React fundamentals - <AUTHOR> https://github.com/tyroprogrammer/learn-react-app <comment><USER2> This looks great.

One of the best books I learnt React when I was starting out was from [https://www.fullstackreact.com](https://www.fullstackreact.com)

I loved the way they broke down concepts and build one on top of the other.

</comment><comment><USER3> Folks might also be interested in my suggested list of resources for learning React [0] and my React/Redux links list [1].

Also, come by the Reactiflux chat channels on Discord! [2] Always plenty of people hanging out happy to answer questions.

[0] [http://blog.isquaredsoftware.com/2017/12/blogged-answers- lea...](http://blog.isquaredsoftware.com/2017/12/blogged-answers-learn-react/)

[1] [https://github.com/markerikson/react-redux- links](https://github.com/markerikson/react-redux-links)

[2] [https://www.reactiflux.com](https://www.reactiflux.com)

</comment><comment><USER4> This looks like a lot of fun. I'm currently learning React so I'm excited to dive into this. Thanks for sharing!

<comment><AUTHOR> No problem! Just remember to create PR/drop suggestions (if any) after you are done with the tutorial.

</comment></comment><comment><USER5> Most of my work is changing existing react code, this tutorial is great to see a bigger picture. props to you man ;)

<comment><AUTHOR> Glad it helped.

</comment></comment><comment><USER6> this looks awesome! will give it a try. Thanks for creating this :)

</comment><comment><USER7> Very cool website. I've been trying to learn react lately and this seems like an easy to use approach.

Heads up though: The first exercise seems to have lowercase/uppercase issue where it expects 01-HelloWorld-solution.js but the file is actually named 01-helloWorld-solution.js. The same is true for the exercise itself 01-helloWorld.js ==> 01-HelloWorld.js.

Once you rename them it seems to work just fine!

<comment><USER8> Ah the ol' case-insensitive filesystem

</comment></comment><comment><USER9> Just completed the tutorial. Nice exposition. Most of my work with React so far had been modifying existing programs to make small changes in behavior. The tutorial helped to form an overall picture.

What I liked: 1\. No grand philosophical statements about functional programming paradigm or how awesome is React. (Most tutorials I have seen spend more ink on these than on the real stuff) 2\. Easy way to install the tutorial and validate exercises. 3\. Using React to teach React (the tutorial is a React program but this aspect is not emphasized).

My suggestions to the Author: 1\. Leverage the fact that the tutorial itself is a React program to go one level deeper. This probably would require its own set of pages, each page emphasizing a different aspect such as Router and other components. It took me a while to appreciate that Components are not only for visual elements but they can also change behavior (example: Router). 2\. Use HMR to load only the Solution component so that only that part of the page changes when the reader saves his edits. This will be a great showcase of React's power of applying only delta changes to a page. 3\. This is a minor nit: the color of numbers in the tutorial is too close to the color of the background. Please use a different color.

<comment><AUTHOR> Glad it helped and thanks for the suggestions - will take them into account!

</comment></comment><comment><USER10> Thanks for sharing! This looks great

</comment><comment><USER11> with package-lock, there are very few reason to use yarn over npm

</comment><comment><USER12> My way of how I learned React:

1\. Read the book [1] and type every code of his by hand and create a snippet folder. Stop reading this book around two thirds in when he gets too deep on caching and does not much with React.

2\. Read the Facebook Hello World tutorial, type everything by hand again and understand it. Add it to your snippet folder.

3\. Try to make your own to do list++ app. You can use Google and Stackoverflow but try to remember things first and don't jump back to the Facebook tutorial and the Road to React book. The app I created was a React app in which you could submit your bookmarks and give it a star rating up to 5 stars, it's a feature that I'd _really like_ in Chrome. Add it to your snippet folder

4\. Get started with a real project.

In this approach, I think this website would be a good addition or replacement for step 2.

Expectations and goals for each step:

1\. Gives you context and insight (you care about context).

2\. Gives you insight while having the context.

3\. Transfers this knowledge 'to your fingers' a bit, you just feel the idioms in your fingers a bit more when you're done. I.e. practical experience

4\. Deepens the practical experience enough for one to say "I am able to program with React."

[1] [https://roadtoreact.com/](https://roadtoreact.com/)

[2] [https://reactjs.org/docs/hello- world.html](https://reactjs.org/docs/hello-world.html)

<comment><USER13> The way I usually do is to work backwords.

Start with a project "real" or easy, learn each step as I need it.

A lot of this is copying and pasting code and then modifying it, and then go back and learn what the "basics" are.

More like 3..1...4...2

So in order to do 3, I will have to look at some of the hello world examples (I know nothing at this point). When I am through I may modify it to make it more ambitious, and then might need another resources. (usually stack overflow).

ymmv

<comment><USER12> I wonder if your step 2 at the end and my step 2 are the same. Would you really read the Facebook tutorial after having done a real project? Doing it that way seems like an after thought.

I get 3, 1, 4 though. You first dive in practically, then learn the theory and then immediately start on a real project.

I am trying your approach with regards to 2D and 3D plotting on a canvas element.

</comment></comment></comment><comment><USER14> Please get rid of the hidden menu + hamburger button. It's horrible, horrible UX. Screens are wide enough to show a menu. Esp for teaching, you want all the options and tools freely available.

<comment><USER15> I think that's debatable. Hiding the content allows the learned to focus on the content at hand. If the user prefers to always be looking at a TOC, they still have that option.

Or maybe it makes sense to show the TOC by default, with the option to hide it. Either way, I'm curious to hear more about your reasoning for why it's so horrible.

</comment></comment><comment><USER16> If a project like this uses Yarn? Is it possible to use it without Yarn?

<comment><USER17> yes, it is posible, in practice the only difference is that some commands like build, eject, build:markdown you'll have to add the word run.

`yarn build` equals `npm run build`

`yarn eject` equals `npm run eject`

and so on ... except install, start and test which work without run.

`npm install`

`npm start`

`npm test`

There is another difference which is about the .lock file, you can delete yarn yarn.lock and keep the package-lock.json that will be generated after you run npm install.

To understand how this affect you need to understand semver and how the lock file works.

<comment><USER16> <3 thanks.

</comment></comment></comment><comment><USER18> One thing I find indispensable when trying to navigate the crazy amount of JavaScript frameworks these days is the RealWorld demo app [1]. It's a spec for an application that is more complex than the standard todo app, and there are implementations of that same app in dozens of frontend stacks. I usually take a look at the code when I'm not sure how to structure something in my code, because the problem was often encountered there and has a sensible solution. By contrast, when I Google around for some design/architecture dilemma when writing frontend JavaScript, the quality of content is terrible and I usually find dozens of alternative solutions, often by people who've obviously used none of them.

[1]: [https://github.com/gothinkster/realworld](https://github.com/gothinkster/realworld)

<comment><USER19> Seems a little light on tests?

<comment><USER20> So "real world" is an apt description, huh?

</comment></comment></comment><comment><USER21> Im fairly new to Angular 2 and above and wonder why everytime I want to test a new piece of code does the project have to re-build itself. The rebuild takes almost up to five minutes.

I know this is a post about React (which doesn't it run on Node too), but as framework noob wondering why development has become so arduous vs. build it locally & refresh the page.

Also, the npm module stuff .. i mean some rando in the world updates their module and boom breaks the build for millions everywhere. WHAT? How is this efficient and better then prior to all these frameworks that run on Node?

<comment><USER22> Really depends on how you are building. If you're building a decent sized project with Webpack and production mode (with minifier stuff), then it might take a few minutes. Dev mode, shouldn't take a ton of time.

<comment><USER21> Thanks so based on your comment and the other this is modern web development and we accept it.

Building sites in html/css & JavaScript was a better development UX and faster. This constant compiling even quickly is silly and a fourth of my day is spent doing so.

<comment><USER23> > Building sites in html/css & JavaScript was

This is still building sites in HTML/CSS & JS. You can even use React without Webpack if you want to if you are okay with a different syntax, and want to avoid transpiling at all cost.

If you want to have quick iteration cycles for tweaking CSS, you still cleanly separate your CSS from the rest of your component and use something like Storybook. The CSS changes will be detected and autoreloaded near instantly (sub-second).

But yeah, if you want to build robust interactive elements with syntactic sugar, you will have to bite the bullet and accept a bit slower refresh time (2-5 seconds with HMR on most projects I worked on).

</comment></comment></comment></comment><comment><USER24> Ooh, perfect timing. I'm switching to a team that uses React rather than Vue (which I have more experience with). This'll definitely come in handy.

<comment><USER25> Im about to do the opposite switch. Any chance you have any good resources for someone new to vue

<comment><USER26> No resources, but I do have some advice: Don't do it (if it can be helped). I made the switch and jumped into a Vue project at work, and I'm hating every second of it.

Vue is for noobs and back-end developers that don't know any better. There's no reason whatsoever to use it after you're familiar with React. Don't buy into the hype. There's lots of things that are intuitive or easy to learn in React, and have to be researched and memorised in Vue. Being a 'Vue' dev is a constant exercise in rote memorisation and remembering how things behave in certain edge cases.

Let me throw out an example I ran into 2 hours ago. I could do this basically any day of the past 6 months and give you a different example.

Say you need to render a component dynamically based on some data. Maybe you have the name of the component in a string (i.e it's come from a back-end etc) and know the scope it lies in, or maybe you're passed a component as a prop (you see this pattern all the time in higher order components in React, i.e '(Component) => <Component />')

In React, you can simply do the above. If you've been programming in React for a while you probably intuitively _know_ that you can just do (Component) => <Component />, why? Because the JSX transform is trivial, and you can do it in your head.

When you render a component in React, you know that the '<Foo />' transpiles down to React.createElement(Foo). It doesn't matter how Foo enters the scope, whether it's imported at the top of the file (and therefore closured into your function) or comes in as a prop, it'll just work. As long as you're familiar with the Javascript language, you'll _know_ this just works.

In Vue, it's not that simple. Because Vue components are all in this complex templating language, you need to look up how to do even slightly advanced things like this. There's always a 'Vue' way to do it, rather than a 'Javascript' way to do it. Or, as in this case, there's a "refactor your entire component to be a render function" way to do it, almost like an 'escape' to using actual JS, because the Vue templating language just isn't good enough to handle what you want it to do.

And god help you when you need to try and figure out the Vue way of doing something via Google instead of having an expert mentor on your team to help. Forget the official docs, they're garbage. And Vue (as well as React, to be fair) has the same problem PHP had 15 years ago, squillions of noobs have just flooded into the ecosystem and resources like Stack Overflow, chat rooms etc are swarming with "slightly experienced noobs" trying to help people a little bit newer than themselves. The quality of online resources is shockingly low. Even if you're an experienced front-end dev and know all the terminology and how to phrase your questions and search queries, there's no guarantee everyone else does, so you'll have to wade through 50 nonsensical answers to every problem you might run into. It's infuriating, inefficient, and soul sucking.

And, you know what, just in general I'd never recommend anyone switch front- end libraries unless you have literally nothing else to do. As far as your personal learning and career progression goes, it's always best to learn how to do something new. Failing that, it's sometimes good to learn a different way of doing something. But the absolute worst thing you can do is learn a different representation of the _same_ way of doing the _same_ thing. Vue and React are the exact same shit. You're better off learning the inner workings of one of them (try building your own, it's fun!) so you can bring that knowledge to the next trendy crap that comes along, rather than trying to learn all the trendy crap.

<comment><USER27> I really try to convince myself that this is not a troll comment.

But I can't.

[edit]

Since somebody downvoted my previous form of comment (probably because of lack of constructive opinion) I'll fix it now:

Calling other programmers noobs doesn't make you a better person by any means.

On one side you're saying that Vue.js is that easy to learn so there's lots of noobs using it, but on the other side you're saying that you need constantly google/look into to docs for help.

Vue documentation is the best introduction to the tool I've ever encountered. Same for the rest of the docs for the Vue's ecosystem - they're written in consistent form, so you can just simply 'jump in' and learn progressively. Even templating language looks like already familiar good old HTML. I was prepared to build production-ready application after a week of messing around with Vue & its documentation.

I can't tell same much good words about React, since after spending a month with it I couldn't figure out how to solve some basic edge-cases (like finding proper way to style components - are you kidding me, React is like 3+ years old, used by thousands of developers and people are still arguing about proper way of styling its components? In Vue you just put it into `<style>` block of Single File Component, or serve generic ones in the global stylesheet file and that's it, simple as that.)

But I think it's just a matter of personal preferences - Vue just suit me better, while React doesn't. I don't like react personally - but I do respect the people who created it and these who uses it on daily basis. Period.

Every developer can choose hers/his tools that suits best, but calling someone because of that a noob is... just unprofessional.

I will take an opportunity and share here a link to one of my notes about the related topic: 'If Vue.js is worth a shot?': [https://lukaszkups.net/notes/is- vuejs-worth-a-shot/](https://lukaszkups.net/notes/is-vuejs-worth-a-shot/)

enjoy ;)

<comment><USER28> You style components in React like you always did before. That's the whole thing about it, it never changes what you know. ... Unless you decide using a more modern approach like styled-components et al.</comment></comment></comment></comment></comment>