QUIC – Will It Replace TCP/IP? - <AUTHOR> https://www.brighttalk.com/webcast/663/382768 <comment><USER2> Nah, I think it won't.

1\. Not everything needs encryption, so QUIC's built-in TLS doesn't always make sense.

2\. Not everything that needs encryption needs TLS specifically. TLS is not a one-size-fits-all solution.

These reflect the fact that QUIC is a transport protocol for the WWW more than a TCP replacement.

By the way, does anyone know why QUIC specifically put NewReno as its official congestion control [0]? Different environments benefit from different algorithms so I don't see why.

[0]: [https://tools.ietf.org/html/draft-ietf-quic- recovery-12#sect...](https://tools.ietf.org/html/draft-ietf-quic- recovery-12#section-4)

<comment><USER3> 1) Not everything needs encryption, but crucially, nothing is worse off if it is encrypted. Encryption is either useless or better, so why not put it everywhere by default ?

2) QUIC explicitely doesn't use TLS but something different, so indeed, not everything needs TLS

<comment><USER4> "nothing is worse off if it is encrypted" is a pretty big oversimplification. Layer 7 proxies and firewalls frequently use packet data to make more intelligent decisions about where to route packets, whether to drop packets, whether to modify packets, etc.

<comment><USER5> These are the same agents that prevented SCTP from being usable outside of private networks. We need to stop catering for them.

</comment></comment></comment></comment><comment><USER6> I think it might actually succeed to replace TCP. There are a bunch of benefits. There is a great video here about it that you should also watch before passing summary judgement: [https://www.youtube.com/watch?v=idViw4anA6E](https://www.youtube.com/watch?v=idViw4anA6E)

<comment><AUTHOR> On the flip side there are no multi path implementation for QUIC while Multi Path TCP is being merged since Linux 5.6[1], just for this I think it's won't be simple as your comment may lead to think.

[1]: [https://www.phoronix.com/scan.php?page=news_item&px=Linux-5....](https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.6-Starts- Multipath-TCP)

</comment></comment><comment><USER7> So, something layered on top of UDP layered on top of IP is going to replace IP?

Maybe the marketing department needs to hire someone who knows the fundamentals to write the headlines?

<comment><USER8> > Maybe the marketing department needs to hire someone who knows the > fundamentals to write the headlines?

What's that quote about throwing stones while living in glass houses?

The headline says nothing about replacing IP. It's talking about replacing "TCP/IP", which is neither "TCP or IP" nor "TCP and IP".

In this case, it's asking whether TCP/IP will be replaced with a protocol (QUIC) that is built on UDP/IP.

IP is definitely still involved.

As with the classic XKCD reference for this situation ([https://xkcd.com/927/](https://xkcd.com/927/)), I find it very unlikely that it will "replace" TCP/IP in the sense of TCP/IP disappearing altogether, but it certainly stands a chance of replacing TCP/IP in many specific applications that test it and find it beneficial.

<comment><USER9> TCP/IP != TCP

TCP/IP is a name for the Internet Protocol Suite[1], which UDP ironically is part of.

If someone talks about one protocol replacing another they should be aware of this distinction, and this title makes me believe the author doesn't know what he is talking about.

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

<comment><USER8> That's not the _singular_ definition of TCP/IP, as you're seemingly so intent on believing.

TCP and IP are separable[1], so it logically makes sense to have "TCP/IP" mean that you're using them together, rather than meaning some arbitrary suite of protocols that may have nothing to do with TCP specifically.

Cloudflare, which is obviously a major industry player, defines TCP/IP the same way that the webinar authors and I both normally define it.[2] Cloudflare also (logically) refers to UDP/IP as a concept,[3][4] which further supports the notion that TCP/IP is not singularly referring to the whole internet protocol suite.

I understand that people do sometimes use TCP/IP to refer to the internet protocol suite as a whole, including UDP. I've seen it before. That doesn't make it the only (or most logical) definition of the term. It's certainly not the definition the authors of this webinar intended you to use when reading the title.

In the tech world, _many_ terms are overloaded with multiple definitions. This isn't an uncommon situation by any means.

> this title makes me believe the author doesn't know what he is talking about

Because the authors are choosing to use a different common definition of TCP/IP, you think _they 're_ the ignorant ones because _you_ don't know that common definition? Or because you're only willing to read the title in the way that makes it seem the most nonsensical?

I left my first reply because the author of that comment was being so unnecessarily insulting to the authors, and now you're following up with similar snark, and posting it in multiple places on this topic, when there is no evidence to support that your use of the term is the only valid use of the term.

[1]: [https://superuser.com/questions/449703/must-tcp-use- ip](https://superuser.com/questions/449703/must-tcp-use-ip)

[2]: [https://www.cloudflare.com/learning/ddos/glossary/tcp- ip/](https://www.cloudflare.com/learning/ddos/glossary/tcp-ip/)

[3]: [https://www.cloudflare.com/learning/ddos/glossary/user- datag...](https://www.cloudflare.com/learning/ddos/glossary/user-datagram- protocol-udp/)

[4]: [https://www.cloudflare.com/learning/ddos/glossary/internet-p...](https://www.cloudflare.com/learning/ddos/glossary/internet- protocol/)

<comment><USER10> I don't think your cloudflare link supports your position. CF talks about "The TCP/IP relationship..." \- in context they are clearly referring to tcp and ip as two separate nouns, not as a single noun to refer to the internet suite. Context can modify word meaning-using that as an example really doesn't say anything about the term "tcp/ip" in general.

Fwiw Wikipedia also thinks tcp/ip means the protocol suite [https://en.wikipedia.org/wiki/Internet_protocol_suite](https://en.wikipedia.org/wiki/Internet_protocol_suite) (edit: i guess other person already said that, i didnt notice)

Edit2: otoh, i think this whole argument is pedantic and its clear what the original article meant.

<comment><USER7> If it was clear, after reading the headline I would not have assumed that QUIC was proposed to replace the internet protocol (IP) for the internet.

The title "QUIC -- Will it replace TCP?" would be accurate and correct and contains everything both necessary and sufficient to describe the article. Adding in unrelated extras, like QUIC replacing IP, conveys additional and incorrect information. It muddies what the article is about.

Calling out unclear and misleading communications is not being pedantic. Clarity is the most fundamental aspect of good and effective communications. The headline writer does not need an apologist, they need to expand their knowledge of the subject they are writing about.

</comment></comment></comment></comment></comment></comment><comment><USER11> Historically, some of the big problems of running UDP-based services over the internet are related to source spoofing, used in reflection/amplification attacks etc (looking at you, DNS/NTP), which is possible as very few providers carry out source address validation on egress.

Looks like QUIC has a nice solution to this, making the impact of source spoofing similar to that of TCP, give or take a few CPU cycles: [https://jacobianengineering.com/blog/2016/11/1543/](https://jacobianengineering.com/blog/2016/11/1543/)

</comment><comment><USER12> They're specifically doing QUIC as a way to move TCP to up into the application space so they can iterate more quickly. Ideally, a lot of these concepts could be adopted into TCP stacks eventually.

<comment><USER13> That's pretty annoying as a user honestly, websockets are difficult enough to deal with.

</comment></comment><comment><USER14> QUIC has a substantial CPU overhead, due to lack of hardware or kernel acceleration.

QUIC deployed worldwide might cost us a power station or two...

<comment><USER15> In estimates I've done, in its current un-accelerated state, it would at least triple the CPU cost per byte served on our CDN workload. We basically lose:

\- sendfile

\- ktls

\- TSO

Its like stepping into a time machine and going back to the mid 90s. To send data with QUIC, we have to get byes from kernel into userspace, encrypt them in userspace, and then write them back to the kernel, where they travel down to the NIC an MTU at a time. Ugh.

<comment><USER16> One of the consequences of TCP being implemented in the Linux kernel is that companies were implicitly motivated to open source any performance or efficiency improvements to their TCP stack. Are any companies collaborating to improve QUIC efficiency issues in open source? The issues are well understood among at least the big cloud providers.

<comment><AUTHOR> Quic is being standardized in the IETF there are a couple of companies involved:

\- Cloudflare

\- Facebook: They already use QUIC for some of their products, or at least it's a pretty sensitive piece of software on their architecture because they ask to report bugs to the bug bounty program[1]

\- Microsoft

\- Nginx

\- Google

\- NetApp

\- Mozilla

\- Traffic Server

\- Litespeed

\- Fastly

\- F5

\- Apple

Amazon is very quiet about all that, but they are probably looking into it. So, it is pretty backed up. If you take a look at their workgroup homepage (quicwg.org) you will see a couple of open source implementations, some from those same companies.

[1]: [https://github.com/facebookincubator/mvfst/blob/master/READM...](https://github.com/facebookincubator/mvfst/blob/master/README.md)

</comment></comment></comment></comment><comment><USER17> Better framing:

Will it replace HTTPS over TCP? Maybe. Mostly. Eventually. (Hopefully?)

Will it replace TCP for other purposes? Of course not.

<comment><USER18> QUIC no longer includes HTTP, so "of course not" is a bit strong. It's easily applicable to a lot more scenarios than HTTPS over TCP.

</comment></comment><comment><USER19> My bank account awaits a whole new raft of security problems for me to be paid to support/fix.

</comment><comment><USER20> HTTP isn't the only L7 protocol.

<comment><USER21> Nothing prevents you from using QUIC as a replacement for TCP AFAIK - on the surface it seems like it would be potentially useful for more applications than HTTP. May even be a decent option for video games and other things that need somewhat lower latency and wish to avoid head-of-line blocking.

<comment><USER22> > May even be a decent option for video games and other things that need > somewhat lower latency and wish to avoid head-of-line blocking.

Most video games already use UDP

<comment><USER21> Sure. In fact most video games use some kind of networking middleware. But tbh, a lot of them are not so great because a lot of concerns get mixed together, and if you want a reliable connection with congestion control you likely will just open a TCP connection somewhere with a different protocol.

For the hobbyist world, this option as a low level transport is not so bad imo. Like as a replacement for ENet which does not have IPv6 support today seems reasonable.

</comment></comment></comment></comment><comment><USER23> The one thing I like about QUIC being more wide spread is that it is making network operators treat UDP traffic more fairly.

However, I don't see it replacing TCP, and if anything it's just an other tool to use.

</comment><comment><USER24> They would need some incentives to make it work in big orgs that have MITM and/or restrictive firewalls.

<comment><USER25> Ideally those incentives would be combined with disincentives for those organizations to continue breaking the web. A combination of the two seems more likely to be successful than either alone.

<comment><USER26> tcp != the web.

Also, most firewall don't break TCP, they break HTTP(S) because they want levels of control.

<comment><USER27> Well, they break TLS. That's almost as broad as breaking TCP.

And it's because they want levels of control on the least affordable place. They wouldn't need to break anything if they added the supervising software to the endpoints.

<comment><USER28> It's odd you refer to endpoints as being the "more affordable place". Because running monitoring software on 5,000 PCs plus management infrastructure and software updates is a lot more "expensive" than having a single purpose-built box on the border between the network and the wider Internet.

Now, I get that QUIC's developers live in a zero-trust/BeyondCorp model, and expect everyone else to too, and with COVID-19, a lot of businesses are suddenly having to look at thinking that way, it's far from how most companies work at present. And having a single box handle filtering and monitoring is actually the most affordable place to put it. ;)

<comment><USER27> > It's odd you refer to endpoints as being the "more affordable place".

The endpoints afford monitoring. The middle of the network does not afford it, so you are fighting the system and it is certain that you will break stuff.

<comment><USER28> The middle of the network has always afforded monitoring, until certain companies with a vested interest in interfering with said monitoring started pushing the Internet to not afford it.

Middleboxes are the system, and protocols that deliberately try to block inspection are fighting it and trying to break stuff.

<comment><USER25> _Users_ have a vested interest in not having their connections MITMed. End- user security is not an "agenda" or a "vested interest". And portraying MITM attacks and similar security holes as "inspection" is spin.

See also RFC 7258 ([https://tools.ietf.org/html/rfc7258](https://tools.ietf.org/html/rfc7258)), "Pervasive Monitoring is an Attack". Protocols that enable interception are broken and will be replaced with protocols that do not.

<comment><USER28> I disagree. Because when clients get phished or infected by malware that bypassed my inspection boxes, the end user was harmed. For me to buy that we shouldn't MITM for security reasons, you'd need to convince me that cloud providers on the other end were mildly successful at preventing malware, scams, and fraud.

And they're not. Google, Amazon, Microsoft, etc. have failed to keep the Internet safe. And when they fail they hide behind liability shields like Section 230. So it falls on IT staff, more often than not, to filter, block, and intercept where Big Tech has demonstrated inability to do so.

<comment><USER25> TLS is now pervasive. Certificate Transparency prevents CAs from aiding interception. http is now explicitly flagged as "insecure". Browser vendors have had a major part in those improvements to Internet security. (So have many other parties, such as Let's Encrypt for removing cost as an excuse for not using TLS.)

People trying to make protocols more secure don't need to convince you, they just need to make your job as hard as possible until most users reject what you're offering.

We need a dozen more ideas like Certificate Transparency. We need pervasive end-to-end DNS security, with unencrypted DNS flagged as insecure. We need a means of preventing DNS servers from altering the DNS records of sites they aren't authoritative for. We need browsers to all agree to explicitly flag connections as insecure when they chain to a locally installed certificate, in a way that can't be hidden without rebuilding from source.

And this isn't a purely technical problem, either. We also need legal support to review regulations in certain regulated industries and demonstrate well- supported ways to fulfill those regulations without breaking security (e.g. "if you do XYZ to log the time and endpoints of connections but don't actually MITM their traffic, it's reasonably well-established that you're fulfilling ABC regulation"). We need lobbyists to change regulations incompatible with secure protocols. We need designers to make security as usable as possible, because poor usability is a security problem.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> I don't think it will ever replace TCP/IP.

But even if it does, the replacement won't be QUIC.

</comment><comment><USER30> "Betteridge's law of headlines" applies, I suspect...

We're having difficulty getting IPv6 up and going, and that's 100% supported by everyone.

</comment><comment><USER31> As it seems like we won't be rolling out IPv6 anytime soon, why would this replace TCP?

<comment><USER32> Unlike IPv6, QUIC requires (almost?) no buy-in from network operators/ISPs.

<comment><USER33> Which is pretty much the entire point of QUIC, since updating gazillions of network appliances to support newer versions of TCP is rather hard and will take decades, if not longer. With QUIC, that's no longer needed.

</comment></comment></comment><comment><USER34> > Will It Replace TCP/IP?

No.

This as been another episode of "simple answers to stupid questions".

<comment><USER9> Just the title itself shows author has no idea what the hell he is talking about TCP/IP != TCP

TCP/IP refers to the entire stack that Internet is build on, the UDP is actually part of TCP/IP (it was added later for use cases where low latency was important, like telephony). He probably meant just TCP, but that's still "no".

<comment><USER35> TCP/IP metonymically refers to IP.

My guess is that just saying "IP" is too short.

(And ambiguous - tee hee)

</comment></comment></comment><comment><USER36> Nope

</comment><comment><USER37> Quick answer for QUIC...

No, it won't replace TCP/IP

</comment><comment><USER38> I've been told in the recent past that there is so much old internet infrastructure equipment that only knows UDP and TCP that any other protocol will fail to meaningfully catch on. This equipment will drop anything that isn't TCP or UDP and until it's replaced you will have a lot of trouble.

<comment><USER39> QUIC operates over UDP. That's really why this question is worth asking.

<comment><USER40> Yes, though this is arguably a big reason why SCTP didn't take off, which is similar to QUIC in a lot of ways (there is SCTP over UDP, but it was a second class citizen until WebRTC.)

</comment></comment></comment><comment><USER41> I see no problems in Google continuing to replace basic protocols. In fact, why not get rid of the open Internet altogether and just use all Google products all the time? It'll be like the good old days of AOL.

<comment><USER2> The fact that it originated in Google doesn't make it some kind of proprietary protocol. It's subject to the usual IETF process, just like others, and is a public draft: [https://tools.ietf.org/html/draft-ietf-quic- transport-22](https://tools.ietf.org/html/draft-ietf-quic-transport-22)

<comment><USER28> My concern with Google engaging standards bodies is that if Google is the monopoly on all sides, the standards body has little choice but to eventually accept it: Google didn't wait for an IETF standard to implement it in both their monopoly-scale browser and their monopoly-scale services and then declare that a large portion of Internet traffic was now already using QUIC. I am aware there have been some revisions between gQUIC and QUIC as being prepared for standardization, but it seems unlikely the IETF has the ability to say, discourage shifting a huge portion of Internet traffic to a Google- based protocol.

Under these sorts of arrangements, standards bodies have little choice but to rubber stamp the company's interests or face irrelevance. On the HTML/JS side, we often see the same problem with the W3C.

The web's baseline protocols are slowly being replaced by protocols designed to favor the interests of a single company without enough meaningful checks on that. I do not really think it's an IETF/W3C problem though, so much as a economic power one.

<comment><USER23> The IETF has shown it's self less prone to rubber stamping. W3C is a whole other case. Problem is unlike IETF which anyone can chime in on a standard. W3C is members only and most the members are companies. Most these companies use googles web browser so they just kinda go along with it.

<comment><USER42> The W3C was conceived from the outset for corporations. It even has the word consortium in its name. Personal membership was added much later.

It's actual normal for Standards Organizations to look like this. If anything by their standards the W3C is very liberal. ISO's members are UN member states for example. Want a delegation to ISO to disagree with how an ISO standard works? Create a sovereign entity, seize control over an appreciable amount of the world and force other sovereign entities to accept you as an equal or you can't. The SI units are controlled by Conférence Générale des Poids et Mesures which only has countries as members - some countries don't even get full membership. Don't like the kilogram? Unless you are literally a country too bad.

The IETF is the far outlier, it might even question whether it is indeed a Standards Organization at all. After all it doesn't have any members, (the Internet Society has members but the IETF does not) and so perhaps its "standards" are only "standard" the way English is standard: a bunch of loose conventions, some honoured more consistently than others. Nobody pretends there's a "Standards Organization" for English after all.</comment></comment></comment></comment></comment>


Ask YC: What's the best way to set up and control Amazon EC2 instances on Mac OS X?   - <AUTHOR>

What's the best way to set up and control Amazon EC2 instances on Mac OS X? <comment><USER2> What's best depends on you.

If you can code a few python scripts, use boto <http://code.google.com/p/boto>

If that looks too scary but you can handle ruby then consider Capazon and Capistrano - <http://capazon.rubyforge.org> and <http://capify.org/>

If none of this command line / script stuff is your thing then you may want to look at some web admin tools like Virtualmin (<http://www.virtualmin.com>) that support EC2.

<comment><AUTHOR> thanks for the options

</comment></comment><comment><USER3> you mean "from" a Mac OS X client machine right ? use the terminal/shell + ec2 command line tools ;-)

<comment><AUTHOR> yes :)... What about the EC2 Firefox extension?</comment></comment>


Jquery Essentials - <AUTHOR> http://www.phpfour.com/blog/2007/06/30/jquery-essentials/

<comment><USER2> Of all the JS frameworks I've used(mind you I used to use Prototype and the like) I was most productive with Jquery and I will continue to use it in all of my projects. That's how much I love Jquery!

<comment><AUTHOR> its hands down the best... along with all the official and third party plugins available for it.</comment></comment>


Music professor receives patent to help fight beetles ravaging Western forests - <AUTHOR> http://news.ucsc.edu/2017/02/bark-beetles-dunn.html <comment><USER2> Here, I gather, is the patent (from 2014):

[https://www.google.com/patents/WO2012078814A3](https://www.google.com/patents/WO2012078814A3)

"Use of acoustics to disrupt and deter wood-infesting insects and other invertebrates from and within trees and wood products

"The invention comprises a device and method for impacting the behavior of invertebrates that infest wood, without the use of chemicals. In particular, the invention is useful for impacting the behavior of woodboring invertebrates, which infest wood products, lumber and the woody portions of plants and trees. The invention utilizes acoustic (sonic) agents which may be optionally modulated with specific signals, to cause negative effects on the normal behaviors exhibited by wood-infesting invertebrates, which may result in the invertebrates being injured or killed, unable to reproduce, or caused to flee the wood that the invertebrates are infesting."

</comment><comment><USER3> I read this as "Music professor receives patent to help fight Beatles ravaging Western music."

</comment><comment><USER4> I wonder if something like this can be done for the Emerald Ash Borers as well. I'd love to see those things destroyed before they wipe out the Ash Trees here in the East.

</comment><comment><USER5> So how does the patent fight beetles? The article never explained the technology. Disappointing.

</comment><comment><USER6> Music professor revives patient to help fight Beatles ravaging Western forests</comment>


Quora+HN for the Enterprise? Beta testing anyone? - <AUTHOR> http://sygitowicz.posterous.com/social-link-file-and-qa-for-your-company

<comment><USER3> You've got a few competitors here. How would you differentiate?

Yammer - <http://www.yammer.com/>

Chatter (SalesForce.com) - <http://www.chatter.com/>

Jive - <http://www.jivesoftware.com/>

Also, may be worthy to grab one of the StackOverflow sources, pretty it up and use that!

<comment><AUTHOR> There are major differences:

1\. System will be open to external parties (customers and partners) - you can invite people per Topic (see my comment above)

2\. Form factor - Facebook layout is not efficient - we are looking at something like much better looking HN

3\. Karma and competence profile - we will by (just like HN) building your competence profile counting karma points and average karma per submission. We will also find out which topics you are best at.

This will be a system that is built to retain & share knowledge and experience. We are not building social collaboration (like Yammer).

Social collaboration (quote similar to Chatter but works better) is our other product - you can check <http://www.discoursehq.com> :)

<comment><USER3> First off, Discourse looks great!

I have a background working in large tech enterprises. A couple of comments:

> 1\. System will be open to external parties (customers and partners) - <USER2> > can invite people per Topic (see my comment above)

1\. This is very dangerous in the enterprise. The strength (traditionally) is it's ability to utilize it's own knowledge and share within it's own teams. Opening up knowledge (and potentially proprietary knowledge) is potentially dangerous from a legal and a strategy standpoint. For example when you leave a company they stick a contract in your hands with words like "all knowledge of business processes, blueprints, etc. cannot be shared"

> 2\. Form factor - Facebook layout is not efficient - we are looking at > something like much better looking HN

2\. I agree Quora/HN has a great UI, but yammer/chatter are both very compelling as well.

> 3\. Karma and competence profile - we will by (just like HN) building your > competence profile counting karma points and average karma per submission. > We will also find out which topics you are best at.

3\. I think this is a great feature and adds a bit of meritocracy to the workplace. Unfortunately it also adds some complexity to HR. Let's say I'm a manager and I have a Senior guy who has 1,000,000 less karma points than a junior guy under him. They're both in the same competency, do I promote the Junior guy?

Enterprise ready? Probably not yet, requires a massive culture change. Start- up/SME ready? Possibly. Good luck, sounds like a good challenge!

<comment><AUTHOR> ad. 1 - we have a use case of group of companies (4 different companies 1500 people in total). That is why we will have this external user invitation feature. I think that this could be used for partners and customers in cases like customer knowledge base (support knowledge base).

ad. 2 - Chatter/yammer has problem with the activity stream (we've discovered this while working on Discourse and the next version will get rid of that problem). Activity stream just like in Facebook is ok when you read content you don't care about (like your network updates about what that had for breakfast etc.). If you have customer communication or any other important business communication there is no way that you'll not be frustrated with facebook-like interface after few days.

ad. 3 - Good point - we are thinking of the value prop for the HR dept. I think that karma could be a great tool for HR for people development rather then promotion decisions :)

</comment></comment></comment></comment><comment><USER4> With pleasure. Pls send me invite to: zalew7 at gmail

Pozdrawiam ;)

<comment><AUTHOR> Awesome - email was sent!

</comment></comment><comment><USER5> I was thinking about doing something similar for myself to use, I'd love to beta test: hugows at gmail.com

</comment><comment><AUTHOR> Thanks for all the emails I'm getting right now! Please please please if each person could give me a short info about the company they are working for: \- how many employees they have? \- which industry?

It would help me a lot! Thanks in advance!</comment>


RCov Reporting Enhancements - <AUTHOR> http://www.idolhands.com/ruby-on-rails/update-rcov-html-and-css-enhancements/

<comment><AUTHOR> New Features Summary:

      Custom CSS
      Dynamic Filtering

Finally makes RCov usable.

Available now at <http://github.com/Bantik/rcov/tree/master> or wait a week for it to be merged into core.</comment>


Forget Skittles, WeAllHateQuickbooks Is Brilliant - <AUTHOR> http://www.iseff.com/post/83327071/forget-skittles-weallhatequickbooks-is-brilliant

<comment><USER2> FreshBooks employee here:

I think this is a totally stupid idea.

"We all hate Quickbooks?" really? Grow up. Quickbooks has made millions of small business owners' lives easier. With out them they would have to spend countless more hours figuring out which tax laws apply to them, how to account for inventory, etc...

LessAccounting should focus on their strengths (and they have a ton, seriously) rather than attack Quickbooks.

I could never dream of the company I work for ever coming out with a "We hate {insert competitor}" campaign. We have friends everywhere, even at Intuit/Quickbooks. We might compete with them, but that doesn't mean we hate them. We share many of the same goals and we are all just trying to give our customers the best solution to their needs. Hate is no way to grow a business.

<comment><USER3> In my opinion - it's marketing. The point is to get you to talk about them & remember their brand. I would never have known about Freshbooks had I not met Mike McDerment in Miami. I would never have known about zoho had I not read about their HS student recruiting tactics. Companies have different marketing tactics - this is one of them.

Disclosure: I am friends w/ the less everything dudes.

<comment><USER4> I'm not going to remember Lessbooks (or whatever), just that Quickbooks is the market leader.

<comment><USER3> It's LessAccounting - there, now you should be able to remember it.

</comment></comment></comment></comment><comment><USER5> QuickBooks is like the wizard behind the curtain at many small businesses and accountancy firms. Viral marketing isn't always for good.

<comment><USER6> That's too bad. Nearly every freelancer/small business I deal with dislikes QuickBooks if not hates it. I am much happier with LessAccounting personally.

<comment><USER7> At my former employer we did some work integrating QuickBooks with several existing systems.

I wanted: Documentation; Intuit gave: Cut-and-paste C# examples.

I wanted: an easily parse-able format; Intuit gave: almost-XML-but-not-quite (order of elements is important!)

I wanted: a Linux server; Intuit gave: something that was almost but not entirely incapable of operating for six hours at a stretch without dying silently.

I wanted: descriptive error messages; Intuit gave: "Yeah error $RANDOM? That means restart the server."

To be fair the client-server API was reasonably sane, it was the interchange format itself that was bonkers.

I'd love to calculate the number of developer hours it cost working around those misfeatures just to get a reasonable facsimile of RPC working.

Anyway, I hate QuickBooks.

</comment></comment></comment><comment><USER8> I'm reaallly interested in a solid Quickbooks alternative given all the negative feedback on it. But I'm having trouble trusting LessAccounting coz 3 favorable-to-them comments here so far have been made by brand new users (chrisyour, redinger, joshuastreet). Any others used them?

</comment><comment><USER9> Yeah, Quickbooks sucks, but a totally web-based option is not better. There is no substitute for locally-run software for many things and accounting software is one of them for me.

</comment><comment><USER10> Does anyone use LessAccounting? I signed up for it but it doesn't do very much. Disclaimer: I'm technically a competitor.

<comment><USER11> _I signed up for it but it doesn't do very much._

I think that's what they're going for :)

<comment><USER12> Yeah I signed up. Love it!! Switched from Quickbooks. Free from the bulk of options no one uses. I have enough to train people on. My assistant can actually use it without needing to attend a class! And to freshbooks employee...their marketing worked for me :)

<comment><USER13> Considering you signed up to post this gushing post, you wouldn't happen to work for them would you?

<comment><USER11> Judging by the fact that he's hanging out on HN + a quick search for his name reveals that he's probably this guy:

<http://joshuastreet.com/> <http://twitter.com/JoshuaStreet>

Doesn't look like there's any connection to LessAccounting...

I guess the moral is: don't let your first post on HN be laudatory towards a startup. Damn vultures :)

</comment></comment></comment></comment></comment><comment><USER14> re: Freshbooks employee --

If this is such a stupid idea why did it show up in my RSS Reader? Why are people blogging that it's brilliant? Obviously it must be working to some degree.

ps: somewhat affiliated with Less, but that doesn't change my views... or the fact that I saw this thread.</comment>


A Stupid Question?  - <AUTHOR> http://www.markevanstech.com/2008/10/18/a-stupid-question/ <comment><USER2> The general idea is "companies exist to make money, at least enough to cover there expenses". So if you've been so succesful and have discoved how to make money yet, but you have figured out how to spend money, that does seem a situation that begs for questions. But if you don't want people to ask questions, you can always ask them that they are asking stupid questions.</comment>


Share ten things about yourself that your friends and co-workers might not know - <AUTHOR> http://www.tenthings.me/

<comment><USER2> I like the design, though 10 seems like a bit much

<comment><USER3> Nice use of AJAX. It looks like you don't need to fill out all ten, in fact just one works.</comment></comment>


A whirlwind tour of object-oriented code in F# (2012) - <AUTHOR> https://fsharpforfunandprofit.com/posts/completeness-anything-csharp-can-do/ <comment><USER2> I used to be a big Haskell programmer. While I still love the language, I've really come around to the idea that strictly evaluated functional languages like F# or OCaml are the best for programming in. You get the nice functional features but don't have the straightjacket of laziness forcing you into certain design decisions. It's really nice sometimes to be able to mix in impure, side effectful code without having to thread it through a monad. The OCaml family feels like a nice blend of good sound functional features with enough escape hatches to be productive in real world programs that might occasionally need arrays or mutable state or IO. Laziness by default also makes things like debugging or reasoning about performance frustratingly difficult. I do miss Haskell's typeclasses in these languages, though. My ideal language is basically Ocaml/F# but with Haskell's syntax and typeclasses.

<comment><USER3> I use F# daily, and to get around this limitation I use hacky custom code generation an F# script (fsx) to generated specific types.

Additionally, on cases where you're not specifying the data of the type itself, you can use static type constraints on members. This doesn't give you a default implementation like Haskell but you can always provide one as a function.

Btw the monadic threading is still very useful, especially when mixing impure code and mutation (when appropriate). The async and result monads, in F# computation expression form, are particularly useful.

For a good example of async + impure code, check out MailboxProcessor, which is part of the standard F# lib. Works similar to CSP/goroutine + channels/actor models; makes parallelized concurrency and message passing easy. You can also make pure mailboxes easily by recursively passing data forward, but sometimes you don't want to for memory / gc & alloc reasons.

<comment><USER2> Oh, for sure I still love monads. I miss Haskell's do syntax in every other language. I think it's a great design pattern that starts popping up constantly once you know where to look. My objection is being forced to use monads due to the language's lazy by default semantics. You get this problem with haskell where the IO monad eventually just pollutes a huge chunk of your code because you can't safely sequence side effects without it. Sometimes I just wanted an escape hatch that would let me do side effects that I knew to be safe/harmless. Haskell has unsafePerformIO but it truly is unsafe because you can't guarantee the execution order of your side effects, which makes it useless as an escape hatch for a lot of purposes.

<comment><USER4> Ocaml is getting something similar to 'do' syntax very soon (but for applicatives too!):

[http://jobjo.github.io//2019/04/24/ocaml-has-some-new- shiny-...](http://jobjo.github.io//2019/04/24/ocaml-has-some-new-shiny- syntax.html)

</comment></comment></comment></comment><comment><USER5> Years ago I was working a miserable job writing boilerplate template code where I had to sub in variables based on certain conditions, it was using a very bland language to look up data from our database and format the output. I wasn't allowed to download any software onto my work computer despite having a technical background.

So what I did instead to make my life easier was write F# to create a kind of DSL and create the template lookup scripts for me. I did it all from the browser with repl.it, and I generated dozens of scripts and saved myself a lot of time in the process.

Now I mostly use Racket, but F# is where I kind of started out. It's a fun dialect.

<comment><USER6> Reads like an opening of a dystopian novel!

<comment><USER7> Heh. I was doing manual deployments because of dumb bank policies so after a lot of maneuvering I used Powershell and plink.exe to write a small, dumb version of Python's Fabric to be able to automate deployments.

I was writing Powershell in Vim while trying to keep my skunkworks project out of sight because of crappy management policies.

Sometimes you gotta make lemonade...

</comment></comment></comment><comment><AUTHOR> F# is a joy to use. After a certain time, many C# developers find themselves writing in a functional style. F# makes this the default, but lets you continue using all of your existing code.

Better yet, Linux and macOS support via .Net Core is excellent. F# on .Net Core is now a powerful alternative to Node.js.

<comment><USER8> > After a certain time, many C# developers find themselves writing in a > functional style

If you can't move to F# or find its tooling abysmal and slow then I have a library [1] that makes the inertia flow positively in the functional direction in C#

[https://github.com/louthy/language-ext/](https://github.com/louthy/language- ext/)

<comment><USER9> Would love to use F# with Unity, but the typical high allocation rates that come with the functional language territory scare me. Looked at your library, it's very interesting. I saw your docs note about the allocation efficiency of Map, would like to hear more. Could you characterize the library's general allocation story?

<comment><USER8> I've done a short write-up about this:

[https://github.com/louthy/language- ext/wiki/Performance](https://github.com/louthy/language-ext/wiki/Performance)

<comment><USER9> Terrific info, thanks! Looking forward to using it.

</comment></comment></comment></comment></comment><comment><USER10> Been using F# on personal projects and C# at work. I noticed my C# coding gone high quality once I got into functional thinking. It is highly recommended for anyone to check/learn F#. F# is my goto lang. now to competitive programming too. I believe F# and ML will make a great combo, but python is still leading.

</comment><comment><USER11> Unlike most commentors my experience with F# hasn't been stellar. I feel the language itself is well designed and the community is great but there is just so much of it.

Any source code that i try to go through is sprinkled with so many new keywords, so many different way of combining stuff, that there seems to be so many syntactical stuff going on. It is really making me struggle.

It just feels like a language where the maintainers are going overboard with. And I am sure that once I understand it, I would love it, but the path to get there is so hard.

Pretty much no tutorials or articles are out there and reading sources for small projects is not viable for me either due to the keyword noise and too many ways to do something.

I did not feel anything like this when I taught myself python, ES6, lua, Crystal etc. F# just feels too big.

<comment><USER12> I agree, F# is hard to learn. It took me a few months of tinkering to be able to express myself in it.

Good entry points: Don Syme - his "F# Code I Love" talk has been recorded a few times: [https://www.youtube.com/watch?v=aw2BAxG3bdM](https://www.youtube.com/watch?v=aw2BAxG3bdM). I recommend catching a few versions.

Scott Wlaschin - His talks are also great: [https://www.youtube.com/watch?v=srQt1NAHYC0](https://www.youtube.com/watch?v=srQt1NAHYC0). He also runs [https://fsharpforfunandprofit.com/](https://fsharpforfunandprofit.com/) which is a treasure trove.

And I found Isaac Abraham's book excellent and breezy to read: [https://www.manning.com/books/get-programming-with-f- sharp](https://www.manning.com/books/get-programming-with-f-sharp)

Now that I'm over the hump, I think F# code is far more readable than other languages I'm well versed in (C++/C#). Probably my favorite thing about F# is the strict top-down dependencies. You can open a project and read it in order, and understand it without having to hop around a bunch.

And since most programs can be written in far fewer lines in F#, code written in it ends up feeling very small and economical.

</comment></comment><comment><USER13> The problem is F# doesn't get enough resources internally at Microsoft. How many times has VS shipped missing the latest version of F# tools? In terms of community, it's tiny. If I want to do functional programming, F#/.NET isn't the strongest option. I have several books on F# and as much as I'd like to learn/use it beyond toying around, I can't help but feel like all it's worth using for is tinkering (outside of the few shops that use F# extensively.)

<comment><USER14> I find this to be an interesting cultural phenomenon, this thing where people in .NET-land are skittish about F# because it's not so tightly controlled by Microsoft.

Meanwhile, I'm pretty sure nobody even _wants_ Oracle to be getting involved in Kotlin or Scala or Clojure.

<comment><USER13> > this thing where people in .NET-land are skittish about F# because it's not > so tightly controlled by Microsoft.

Microsoft's great tooling is what has made (traditionally) it sticky for a lot of developers. F#'s tooling from Microsoft has been a half-hearted effort (organizationally, not speaking of the effort that the F# guys have put in.)

<comment><USER15> The irony is that F#s releases are in lock-step with the Visual tools team releases and schedule.

<comment><USER13> I must vehemently disagree.

From: [https://github.com/dotnet/fsharp/issues/2400](https://github.com/dotnet/fsharp/issues/2400)

"GiorgioG commented on Oct 19, 2017 @masaeedu - Not to beat a dead horse, but we've been waiting for an RTM release of this since May when VS2017 first RTM'd. We were then told it would likely come in the July release of VS, we're now nearing the tail end of October with no clear idea when we'll get it. It's not @cartermp 's fault, just the reality that MS has not made it a high priority (judging by their actions, not their words.) In summary, if you want to use F#, use VSCode, it has excellent support for F#, as long as you realize it's not Visual Studio, it's a souped up text editor."

<comment><USER15> Perhaps it's not the case anymore, but I meant more that F# language releases used to be delayed until the Visual Tools team was ready to release a new Version for Visual Studio. So essentially, the F# releases seemed to be held up. Perhaps I'm remembering wrong and/or this has changed since the .Net core support came in.

</comment></comment></comment></comment></comment></comment><comment><USER16> Here's a Tour of F# by Microsoft:

[https://docs.microsoft.com/en- us/dotnet/fsharp/tour](https://docs.microsoft.com/en-us/dotnet/fsharp/tour)

</comment><comment><USER17> I just bought Scott's book on Railway Oriented Domain Driven Design. So far so good. I am the domain expert though, so no revelation there.

The modeling of state machines using types and functions is pretty revolutionary to me for where I'm currently at development skill wise. Everything just seems so clean and elegant.

<comment><USER18> The book is "Domain Modeling Made Functional"

[https://fsharpforfunandprofit.com/books/](https://fsharpforfunandprofit.com/books/)

</comment></comment><comment><USER19> While there's nothing you can do in C# that cannot be done in F#, the reverse is not true. The biggest thing that comes to mind is to influence the direction of the other language (C#). I've heard it said many times that if you want to see what features will be in C# in the future, look at F#. Too many features to cite (though Linq is the biggest that comes to mind) were in production use in F# long before they arrived in C#.

<comment><USER20> > While there's nothing you can do in C# that cannot be done in F#

Really? When did F# start supporting pointers?

> to influence the direction of the other language (C#)

Lately, it seems it's the other way around: C# is introducing features like Span<T> or default interface members and F# is (quickly) catching up.

<comment><USER21> To your last point, with the freedom they seem to feel after the Core breakage (like Span/Memory) C# might start innovating on its own again instead of just taking awesome pieces from f# and making them part of C#.

</comment></comment></comment><comment><USER22> _> Anything C# can do..._

Yes, yes, you _can_ do anything in F#, but what _should_ you do?

My opinion is that that what F# is missing is a good set of idioms and a strongly opinionated set of guidelines. To my beginner's eyes, every F# codebase I've seen feels like it's written in a completely different language; it's like the opposite of Python's "one right way to do everything".

I've heard that F# is great for domain-specific languages, but in most cases a DSL is the cardinal opposite of what I want. I want a _common_ language that I can use to express a multitude of different concepts. It seems like all of the guidance out there about F# is about showing off features, being extremely clever, or using F# to teach functional concepts, not actually about _writing useful applications_.

<comment><USER23> As a long time C# dev who has dabbled with F#, I kind of feel the same.

I always find myself structuring appa like an OO app, which invariably results in something that feels _wrong_.

For someone for which OO is so entrenched, it's really difficult to think differently - and there doesn't seem to be an idiomatic way to write F# code (not that I've found, anyway); every code base seems to take a different approach.

</comment></comment><comment><USER24> I started F# lately and found it absolutely amazing. I come from heavy C# programming, and always find myself reaching out to have sane default like immutable types.

But unfortunately there are still lot of libraries out there for F# which don't support .net core fully. Especially db access ones.

</comment><comment><USER25> ... and exhaustive matching: [https://github.com/mcintyre321/OneOf](https://github.com/mcintyre321/OneOf)

I'm not saying it's as good as writing F#, or that C# shouldn't include these features of course.

</comment><comment><USER26> If you want to try F#, here's the full F# compiler in the browser run using WebAssembly. Very fun to play with: [https://tryfsharp.fsbolero.io/](https://tryfsharp.fsbolero.io/)

<comment><USER26> And it also compiles to Javascript: [https://fable.io/repl/](https://fable.io/repl/)

You can browse through some sample apps using the side bar on the left.

<comment><USER27> Thanks for posting that. Fable is fantastic

</comment></comment></comment><comment><USER28> I think several interesting points were brought up in this thread regarding the assumption of functional aspects presented in F# by C#. LINQ being the most popular example. I am currently lead to believe that a purely functional application development domain is potentially an overreach of theory in terms of building things that can interact with the real world in very complex and 'functionally-leaky' ways.

My biased perspective as someone who hasn't really used F# very much is this: Perhaps an imperative language such as C# 8.0, with a few high-value functional features sprinkled in, is actually the best of both worlds when viewed through the lens of someone who has to interface with really weird business systems. I use imperative techniques for handling remote calls, exception handling, etc. Then, when I need to work with my internal business logic or models, I can use more functional techniques.

Based on my own understanding and other comments presented here, C# does not seem to preclude the usage of functional approaches to solving problems if you have the discipline and experience to do so. C# also brings with it a host of other benefits in terms of tooling support and simply being able to find other developers who can understand your codebase.

<comment><USER29> I really encourage you to use F#, as someone who's done C# for a long time I find F# (while not perfect) does strike near to that ideal balance of FP / imperative you speak of. Writing functional code naturally is a breeze, while the language isn't going to punish you or feel awkward if you need to drop in some mutable state or OO programming

</comment></comment><comment><USER30> For all the love Microsoft has been getting these days, I still don't get how I'm supposed to write C# or F# without Visual Studio and Windows. Am I missing something? VSCode doesn't support these languages, right? I'm a person who spent a long time trying to write Java in Vim, but switched to IntelliJ and wouldn't want to write C#/F# without some comparable IDE.

<comment><USER31> You can use Rider which is a very good crossplatform JetBrains IDE. I found it very fast too (I use it on Fedora in my laptop)

<comment><USER32> Rider is in some ways better than VS. If you have moderately large solutions and a powerful desktop, you will frequently be butting up against the 32-bit memory limit of VS, especially if you tear off any editor windows to put on another monitor (I don't know why this exacerbates the problem so badly, but I've been seeing it steady since VS 2013). Once you get around 2GB of memory in use, things drag to a crawl.

</comment></comment></comment><comment><USER25> One line data types [https://github.com/mcintyre321/ValueOf](https://github.com/mcintyre321/ValueOf)

</comment><comment><USER33> this is really interesting.

I've been meaning to dig my teeth into F# sometime soon because of its highly functional base.

</comment><comment><USER34> I missed the examples with EF, WPF, Windows Forms, UWP, WCF.

</comment><comment><USER35> OO in F#. there goes the language...

<comment><AUTHOR> OOP is not idiomatic F#. It is mostly for interop with C#.

<comment><USER36> I would not say that, sometimes it's quite powerful to combine these paradigms. I think they would not design a language for CLR only to force them to create a huge interop subsystem.

You are right, however, that OOP should not be the default way to write things in F#.

<comment><USER29> I definitely appreciate being able to drop into an OOP style when I find it's necessary. In a talk Don Syme (F#'s original designer) goes into aspects of OO he enjoys, those understands the usefulness of, and those he does not enjoy. I believe it was F# Code I Love, which gives some good insight into the thinking behind the language.

</comment></comment></comment></comment><comment><USER37> It's a pity the tooling is comparatively immature, with F# (or at least that was my experience last time I tried to develop with it). I think Rider is getting there, though.

To go into more detail, the initial implementation in Rider was limited to not much more than syntax highlighting. Inspections were fairly limited, ASP.NET MVC integration was not as featureful.

On the C# side, it's much more developed and refined. Within Rider, it's obviously been the main focus so I suppose it's only natural it's received more polish.

<comment><USER38> I've been developing F# in Rider for the last 4 weeks, and especially the last update made a huge step forward. It's stable, fast, the test-runner works perfectly, etc. It's definitely not at the same level as the C# tooling yet, but it's good enough to be productive. (I'm on macOS by the way, building Xamarin apps).

<comment><USER37> Glad to hear it's improved!</comment></comment></comment>


How about ONE app for all your apps? - <AUTHOR> http://plutio.com <comment><AUTHOR> I have just lunched the landing page for Plutio.com a product we are launching soon that will bring all of your tools and apps in one place!

What do you guys think about the concept behind Plutio? Any feedback is much appreciated!</comment>


Netherlands parliament makes open standards mandatory - <AUTHOR> https://joinup.ec.europa.eu/community/osor/news/nl-parliament-makes-open-standards-mandatory <comment><USER2> All software used by and written for the government should be open source, just like all research paid for with government funds should be open access.

<comment><USER3> All software used by governments should be whatever is best in terms of features/price/security/etc. Open Source is nice but not really important.

All data, however, should be in documented, standardized, open formats.

Where it makes sense, software should have APIs using common standards.

Where it's possible without revealing national secrets or personal information, those APIs should be open to the public,

<comment><USER4> Public auditing of voting terminals strikes me as a place where open source of government-used software matters.

<comment><USER5> And the problem always is: how are you going to verify that the terminal you're using is running precisely the version of software you've seen?

There's an awesome online course touching all those topics and then some, from J. Alex Halderman, Associate Professor in University of Michigan. It's called 'Securing Digital Democracy' and is available on Coursera: [https://www.coursera.org/learn/digital- democracy](https://www.coursera.org/learn/digital-democracy)

<comment><USER6> Checksum?

<comment><USER7> Performed by whom?

</comment></comment></comment></comment></comment></comment><comment><USER8> A lot of the interest in mandating open standards, at least a few years ago, was targeted at the dominance of MS Office. That's interesting nowadays because:

\- MS Office's default file formats are open standards with open source libraries/ reference implementations \- MS Office (both desktop and web app) can handle ODF very well nowadays.

At least for small business and home users, Google docs has become increasingly dominant with surprisingly little concern for long-term document accessibility. For example, Google Drive will only sync down _links_ to Google doc files on desktop. Aside from manually exporting every single document you have in the preferred format, there is no way to get your documents for backup/archival purposes, and good luck switching to another service/software. It would be nice to see a little interest in standards/compatibility for google docs now that so many businesses use it.

<comment><USER9> _with open source libraries / reference implementations_

Citation needed? FAFAIK the reference implementation is closed source, and there are no libraries -- only a powershell module that is actually a wrapper around the Word/Excel OLE objects.

<comment><USER10> There is Apache POI for the JVM.

[https://poi.apache.org/overview.html](https://poi.apache.org/overview.html)

<comment><USER11> Uh no, barely works for even the most basic tasks

</comment></comment></comment></comment><comment><USER12> The Danish government mandated that you should be able to use both OOXML and ODF when communicating with the any branch of the government by 2008. As it turned out, when January 2008 came around, 20% of the the government offices didn't know how to deal with ODF files. By 2010 most could open ODF, while around 7% of the smaller kommuner (counties/cities) still didn't know how to deal with the open formats.

After that it has just sort of slipped out of the public spotlight. In 2010 nobody really used the ODF format, because ordinary people don't need to send documents to the government, it's mostly self service online and companies all use Microsoft Office.

I would very much doubt that the government offices actually use anything but docx for documents internally. Even if they really should use a simple format that would be easy to parse in the future.

<comment><USER13> None of those problems are anywhere close to being insurmountable. You just need competent people in the government to implement the right policies and ask for the right things in laws.

Just an example: if the EU as a whole said that by mid-2018, all document services and tools that work in the EU need to support ODF by default, then that is what would happen, and this issue would disappear.

The problem is you still have too many people that aren't too interested in making this happen in the EU, and even fewer people that have the competence and power to require all the right stuff to make it work. But all of it could be fixed with enough public pressure and political will.

Your solution seems to be to just throw our hands up in the air, because there's too little momentum right now to make the necessary changes.

<comment><USER14> _None of those problems are anywhere close to being insurmountable. You just need competent people in the government_

What's the word that means the opposite of tautology again?

<comment><USER3> What's the word that means "uninformed person spewing tired cliches" again?

The EU bureaucracy is actually pretty good regarding open standards. They publish most documents in html/doc and pdf, see for example [http://eur- lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:520...](http://eur- lex.europa.eu/legal-content/FR/TXT/?uri=CELEX:52016PC0595)

They have also adopted the Akoma Ntoso standard internally, meaning all legislation is crafted in standardized semantic xml (as well transcripts, court proceedings & decisions etc). The public launch should happen some time early next year, and it'll allow anybody to do the kind of fun stuff you can do with a meticulously annotated, machine-readable history of 40 years of governing.

<comment><USER14> I seem to have hit a nerve.

<comment><USER15> It is tiring to hear "goobermint so uncompetent" every single thread on HN

</comment></comment></comment></comment></comment></comment><comment><USER9> Note that this isn't a law (yet). This is a house initiative (motion?) that requests the current government to:

\- mandate by law the use of open standards

\- publish its knowledge about open source software through normal publication channels

The second provision is a small step towards creating a knowledge-sharing platform regarding the use and deployment of open source software in both government and business. The original motion asked for a dedicated platform, this amended version allows governments to use already-existing platforms.

I don't expect big changes from this, I suspect that MS Office Open XML would also be considered an open standard.

<comment><USER16> > I don't expect big changes from this, I suspect that MS Office Open XML > would also be considered an open standard.

[https://www.forumstandaardisatie.nl/lijst-open- standaarden](https://www.forumstandaardisatie.nl/lijst-open-standaarden)

[https://www.forumstandaardisatie.nl/standaard/odf](https://www.forumstandaardisatie.nl/standaard/odf)

Unable to locate OOXML

</comment></comment><comment><USER17> Originally this was indeed published as a Microsoft DOC file. But now it is a PDF file, generated in a Linux box. Nice :-)

</comment><comment><USER18> I expect that this is one of the reasons they're adopting Cloud Foundry: [https://www.youtube.com/watch?v=u18nKAOY5mo](https://www.youtube.com/watch?v=u18nKAOY5mo), along with the UK, USA, and Australian governments. I think there's a few others too now.

</comment><comment><USER19> The law will be into effect in 2017</comment>


Getting a Divorce from a VC - <AUTHOR> http://justanentrepreneur.com/?p=32

<comment><USER2> _We kept a majority of shares_

The battle of the wills described in this piece could only have been possible because the founders retained their majority control and even then it was obviously painful as could be dealing with the types of bullying investors described. Had it not been for this, the founders would have been crushed.

<comment><AUTHOR> And the company would have died. The VCs needed a short term 10X or better return on their money due to the fund ending and were willing to bet everything for a chance to get it since " _shares in an illiquid company are useless to the VC_ ". Profitable enough to return 2X the VCs' money and growing at "double digit rates", just not enough.

The 5 to 10 year lifetime of current VC funds coupled with the slow (at best) economy and the much greater difficultly in cashing out post the doc.com crash suggests that taking VC money today is particularly risky and taking it near the end of the fund's life far worse.

<comment><USER3> Is the fund-lifecycle position of a potential VC something founders usually know about and take into account in funding rounds? I don't think I've ever seen it discussed in the checklists of what to watch out for when taking VC funding.

<comment><USER4> VCs will tell you how much they've invested and where they are in their fund. They also often have more than one fund going at a time.

</comment></comment></comment></comment><comment><USER5> "The big company execs don't realize nothing happens at a small company unless you personally take initiative. Nothing comes to you by itself."

This part hits very close to home. Every single one of the executive, sales, or biz-dev people our VCs pushed on fell into this trap. Without fail, they would dig into their network until reaching an impressive contact, put together a powerpoint proposal with shockingly good projections, and then expect someone else to make it all happen. However, in every case they were ousted by the board and the VC firm after 1 year of not producing results.

<comment><USER6> When you say "they would dig into their network" do you mean that first, the VCs recommend that you hire the executive, and then the executive hires his impressive contact -- the one who is supposed to make magic?

What do you suppose is going on here? Is the executive just trying to build his empire from the start? Or, are these executives circulating around in a system of favors, going from failure to failure? Do you think it's naivete, stupidity, or cynicism on the part of VCs to hire these guys?

</comment></comment><comment><USER7> Can anyone figure out who the VC was? Would be interesting to know.

<comment><USER4> Yeah. This is the kind of behavior they're not supposed to be able to pull because the business is reputation based. But that only works if people name names.

</comment></comment><comment><USER8> Reads like the Hacker equivalent of a Harquelin Romance novel... by the end you want his VCs' heads put on stakes :)

<comment><USER9> If it had been a Harlequin romance novel, the vaguely abusive but mostly misunderstood VC would probably have gotten the founder, after several speeches about how she was not to be tamed.

My not-so-secret shame is that I have a Kindle full of urban fantasy, which is essentially isomorphic to romance, except the bodices get ripped with retractable claws. Oh, and the lover is her sire, so he has a excuse for being abusive and controlling when he isn't being a suave sex machine. By the way, she didn't consent to being turned but kind of enjoyed it anyhow. Both parts of that are major plot points, frequently returned to.

The worst part of it is I just can't stop reading them. _sigh_

<comment><USER10> Sounds fascinating. Some recommendations? (not kidding)

<comment><USER9> Typically they're marketed under an identifiable naming scheme and the heroine's name. I'm going to give you titles from the first in the series, you can search on Amazon to find the rest.

Let's see: Dead Witch Watching (my first urban fantasy series and a decent one to get started on if you're new to the genre). Succubus Blues (an... amusing choice in a protagonist). Trick of the Light. Nice Girls Don't Have Fangs ("He vamped me against my will, comedy edition"). Some Girls Bite ("He vamped me against my will, drama edition" -- probably the quickest teach-you-the-tropes book on this list).

</comment></comment></comment></comment><comment><USER11> Ugh, this just reinforces the idea I would never want to take venture capital. To me, being an entrepreneur means you only answer two yourself, your employees, and your customers. Having to answer to a board sounds like the most miserable thing ever. To spend your life building a company, putting your blood, sweat, and tears into your business only to be fired by a board that dislikes you would be devastating to me.

It really makes me respect purely bootstrapped companies a lot. (I know, I know, we wouldn't have a lot of huge companies that we depend on daily without venture capital).

</comment><comment><USER12> Getting a VC investment is just like a marriage except for the things being equal part. Typically all the power comes with those preferred shares and the only real way to "get a divorce" is to buy them off just like the founder did.

There really are only 3 true options if you need to raise large amounts of institutional capital. 1) Stage a round with so many VCs that if you get one or more bad ones, they get shouted down by the other ones 2) Just take investments from people you know for certain are great (hard to do unless you've taken money from them before 3) Only take a very small amount so you don't actually give up control. That's harder to do since most vc's won't do the deal otherwise.

<comment><AUTHOR> Hmmm, yeah ... it's possible that these VCs only accepted a non-control position because they were desperate due to their fund closing fairly soon (let's assume within 2-3 or so years) and needing another chance at a big hit.

</comment></comment><comment><USER13> The general lesson I've gotten from most stories related to VC is to not involve VC if I can help it. It's the safer, simpler course. And also, ideally, never take on investors of any kind. Again, as long as there is no real pressing need. Instead, start tiny, grow organically. Maybe take on a co- founder, give them equity, if they have the right talent and the fit is good, and you want to conserve cash to help stave off needing investment, etc.

Also, don't take on employees unless it's necessary to turn it into a (more) passive income stream. Speaking ideally again.

<comment><AUTHOR> Yeah, but the problem with the above is that it necessarily limits the scope of your venture. E.g. you're very unlikely to do anything related to hardware with such constraints (I keep wondering where the next "wow" hardware development akin to the FPGA is going to come from in the current post-dot.com crash funding ecosystem).

I suspect there's a continuum from keeping the most control to having the greatest chance of "changing the world".

</comment></comment><comment><AUTHOR> Prompted by/in the blog comments to <http://news.ycombinator.com/item?id=1423669>

<comment><USER14> Yes, Fred Wilson's recent blog, and commentary contributors, have a lot of valuable input on this.

</comment></comment><comment><USER15> _(he has eleven attorney's in his practice at a major firm)_

 _we had watched three company's raise more than $10M each in our space_

I am genuinely sorry for it, and part of me feels elitist for insisting on it, but I will always [EDIT]be[/EDIT] wary of anyone who doesn't know their apostrophes.

<comment><USER16> _I will always wary_

Muphry's Law, a truly remarkable thing! <http://en.wikipedia.org/wiki/Muphrys_law>

<comment><USER15> I love being the proof ;-D

My only gripe is that I'm looking forward to the day I can do the same in Polish... and make it look like an accident ;)

</comment></comment></comment><comment><USER17> A guide on how to get rid of your vc when they start becoming problematic would be good. I suppose another way out would be to find someone capable of sustaining a longer view (for the companies that avc would call 'Zombies'... zombies being profitable but not earth shattering.)</comment>


F.C.C. Begins Investigation Into Quality of Internet Download Speeds - <AUTHOR> http://www.nytimes.com/2014/06/14/business/media/FCC-inquiry-into-ties-between-content-companies-and-service-providers.html?ref=technology

<comment><USER2> Discussion from yesterday: [https://news.ycombinator.com/item?id=7890104](https://news.ycombinator.com/item?id=7890104)

(And isn't it quant how the N.Y.T. writes F.C.C. instead of FCC?)

</comment><comment><USER3> In my area they don't even advertise download speed any more. It's "the fastest in-home WiFi" because it doesn't matter how fast data get to your home, it's how fast it gets from one room to another....

</comment><comment><USER4> Uh huh. And in other news, cat placed in charge of investigating mouse massacre, fox placed in charge of investigating hen disappearance.</comment>


issetugid() and rsh and libmalloc osx local root - <AUTHOR> https://www.exploit-db.com/exploits/38371/ <comment><USER2> Exploit works on 10.10.5 (14F1012)!

Make sure to clean up /etc/sudoers when you're done testing.</comment>


Sync your HTML slides in real-time with your audience using Firebase - <AUTHOR> http://cowbell-labs.com/2013-11-07-sync-your-slides-in-realtime-with-your-audience-using-firebase.html

<comment><USER3> Neat. I built something similar into RevealJS last year and have been using it since.

The thing that really excites me about allowing your audience to view the slides on their own devices is vision impaired people being able to use their assistive technologies (screen readers etc) to view the slides.

Check out the multiplex plugin of reveal. I host a publicly available server courtesy of Nodejitsu and there's no connection limit.

[https://github.com/hakimel/reveal.js/](https://github.com/hakimel/reveal.js/)

<comment><AUTHOR> Thanks for the tip. Really cool idea with the publicly available server - <USER2> assumed that some HTML slide frameworks might have e.g. SocketIO plugins, but didn't expect them to have an official server as well.</comment></comment>


E.W.Dijkstra Archive: Interview (1985) - <AUTHOR> http://www.cs.utexas.edu/users/EWD/misc/vanVlissingenInterview.html <comment><USER2> Full relevant snippet:

(before the submission was renamed, its title was "Coding is not allowed to start before seventy percent of the scheduled time has elapsed")

\---

 _van Vlissingen: In practice it often appears that pressures of production reward clever programming over good programming: how are we progressing in making the case that good programming is also cost effective?_

 _Dijkstra: Well, it has been said over and over again that the tremendous cost of programming is caused by the fact that it is done by cheap labor, which makes it very expensive, and secondly that people rush into coding. One of the things people learn in colleges nowadays is to think first; that makes the development more cost effective. I know of at least one software house in France, and there may be more because this story is already a number of years old, where it is a firm rule of the house, that for whatever software they are committed to deliver, coding is not allowed to start before seventy percent of the scheduled time has elapsed. So if after nine months a project team reports to their boss that they want to start coding, he will ask: "Are you sure there is nothing else to do?" If they say yes, they will be told that the product will ship in three months. That company is highly successful._

</comment><comment><USER3> This is my favorite quite from the interview:

\---

...I feel that the effort to use machines to try to mimic human reasoning is both foolish and dangerous. It is foolish because if you look at human reasoning as is, it is pretty lousy; even the most trained mathematicians are amateur thinkers. Instead of trying to imitate what we are good at, I think it is much more fascinating to investigate what we are poor at. It is foolish to use machines to imitate human beings, while machines are very good at being machines, and that is precisely something that human beings are very poor at. Any successful AI project by its very nature would castrate the machine.

UPDATE: Can't help myself. This Lisp quote is too good=).

\---

Lisp was great at the time of its inception if only for a radically new way of using machines. It has suffered the fate of having been elevated to a status of de facto standard with all its defects. Despite its conceptual novelty a lot of the design of Lisp is terribly amateurish even by the standards of the time. When I read the first manual, the Lisp 1.5 manual, published in 1961, I could not believe my eyes. It was an extremely poor language. Now it has become the defacto standard of the AI community, which now suffers from Lisp, the way the rest of the world suffered from Fortran.

<comment><USER4> Here's my favourite quote:

"My overall impression is that it does not matter what mistakes the USA makes, because they will be faithfully copied in Europe only 20 years later. Europe can learn an immense amount from the United States. By studying what is happening and then not copying it. In some aspects we might even try to copy it."

Unfortunately, still true, of so much beyond software 'design'.

</comment></comment><comment><USER5> Are you trying to steer the discussion to the quote "Coding is not allowed to start before 70% of the scheduled time has elapsed"?

I think it's important to take this in context. EWD was a proponent of Computer Science as mathematical proof, and as such pushed hard for structured programming methods. This was the mid 80s.

In hindsight, we have learned that there are too many unknowables in true software engineering, so we need to be more Agile. Try something, fix it, and try again.

One of his big points in that paragraph is something that we should take to heart. Programming by cheap labor is very dangerous. We do need to think as well as test and do.

<comment><USER6> Coding using mathematical proofs only works if your problem is defined at a similar level of rigor. That sounds obvious when stated so simply but I think it is the major downfall of formal coding methods. Depending on the field, business software seems to be the worse, defining the problem seems to be more than half the battle.

<comment><USER7> It sounds pejorative when stated this way, but there is algorithmic/scientific programming and then there is plumbing. Different techniques are effective for the two. Plumbing is non trivial, you realize it only when you have to do it yourself.

What I see among many plumbers is the notion that the world of algorithmic programming does not exist ("I dont give a $#@! about big Oh, algorithms are entirely unnecessary, I dont even know what quicksort is and I dont care LOL"). Similarly the other camp trivializes the act of plumbing. Neither do our craft any favors.

</comment></comment></comment><comment><USER8> I love it so much my heart is crying.

Taken of course to mean, that you will do tons of coding in the first 70%, just knowing it's ALL THROW AWAY CODE.

This changes nothing, it's what already happens, you just are doing it wrong if you keep the code you write in the first 70%.

</comment><comment><USER4> " the word user is perfect French. Then I discovered that it is also perfect Russian and the two of us also know more Japanese than you think. Well the mere fact that that little word is not translated, but it is taken over as a foreign body, in Dutch, French, Russian and Japanese discussions, means that it has lost its original meaning. Now, if you start to analyze the many character traits of that literary figure, you discover that he is most uninspiring. He is stupid, education resistant if not education proof, and he hates any form of intellectual demand made on him, he cannot be delighted by something beautiful, because he lacks the education to appreciate beauty. Large sections of computer science are paralyzed by accepting this moron as their typical customer. Rare are the computer companies that are prepared to make a Mercedes, the analog the high quality product for the discerning customer. As it turns out, particularly in the USA mathematics is the pinnacle of user unfriendliness, if you read the catalogs of text book publishers, then it is quite clear that the major recommendation that they give a book is that it is a-mathematical, that it does not require mathematical knowledge, etc. So, user friendliness is, among other things the cause of a frantic effort to hide the fact that eo ipso computers are mathematical machines."

Couldn't agree more.

</comment><comment><USER9> At the 71% schedule point, one day after coding on the perfectly designed spec has commenced:

Programmer: "@%*#! We didn't think of that, the design will have to change."

</comment><comment><USER10> This is more of an history lesson than anything else. It just used to be that way, back when machines were slower and there was an actual cost involved in wasting cycles.

<comment><USER11> Not really, you should spend a reasonable time architecting before the coding begins.

</comment></comment><comment><USER12> _the hopes of functional programming is that...it will be easier to exploit a lot of concurrency_

Is this not exactly what is happening today?

 _Because computing is now supposed to cure all the ills of the world and more... The current boom in computing is an immediate reflection of absolutely unrealistic hopes._

Are we not repeating history exactly? E.g. medicine-quackery, chemistry- alchemy, astronomy-astrology

Regarding AI: _Can you research something that is not science? I feel that the effort to use machines to try to mimic human reasoning is both foolish and dangerous._

Amen

</comment><comment><USER13> Ahh, this.

> That is a very sad comment, but the moral of the story is that if industrial > practice suffers it is largely due to the conservatism, technical > incompetence, of the managers of those projects. If however the internal > organization and hierarchy of industrial programming organizations can be > changed, there is room for great progress. And I think it will change, > because the pressure from below becomes stronger and stronger.

</comment><comment><USER14> It seems that everyone found a snipped that resonated with them. Here's mine: "1975 was about the time that the Swedish logician Per Martin-Löf convinced himself of the fact that a well documented program was an object logically isomorphic with a constructive mathematical proof. ".

So much for code being its own documentation (which I suspect is an ideology promoted by arrogance).

</comment><comment><USER15> The seventy percent statement is an example of a classic waterfall approach. A modern approach is to take agile philosophies and apply them to software development.

Waterfall works well when requirements never change and priorities don't shift.

Agile works well when you have full control of the requirements and full control of releasing.

Your mileage may vary. My 2 cents.

</comment><comment><USER16> how do they verify that the third party libraries they are going to use actually do what they promise to do in all cases?

<comment><USER17> "Trust, but verify"? Test the libraries to the degree of confidence that you need. (There was a link here a few days ago that advocated testing an algorithm with all possible floats, because there's only 4 billion of them. If you really need the library function to work the way you expect, that level of testing is not out of line.)

<comment><USER18> If you need your unit tests 'show' that 4 billion floats are giving the desired answer, creating some formal proof instead doesn't seem far fetched either. I guess it all depends what you are writing things for; personally I would like to see the radiation equipment in hospitals to have formally verified software on board. The fact that 'this is not feasible' which is management speak for 'this is too expensive' remains to be kind of a depressing truth for me when we're talking lives.

For non life threatening stuff the crap people deliver now is ok-ish as no-one seems to want to pay (or ask) for anything better. I'm just wondering how you validate something is non life threatening; a bug in some financial handling code could be life threatening if someone loses all because of it and kills himself?

As I reached the ripe old age of almost 40, I get requests to review code quite a lot and it makes me want to take up gardening instead. It pays a lot less but at least I can kick my alprazolam habit.</comment></comment></comment>


PubPub – Open Publishing - <AUTHOR> http://pubpub.media.mit.edu/ <comment><USER2> Also available at: [http://www.pubpub.org/](http://www.pubpub.org/)

<comment><AUTHOR> Thanks! It looks like that points to the same site as the MIT url.</comment></comment>


Invidious is an alternative front-end to YouTube - <AUTHOR> https://github.com/iv-org/invidious <comment><USER2> Project has uncertain future.

[https://github.com/iv-org/invidious/issues/1320](https://github.com/iv- org/invidious/issues/1320)

Consider alternative alternatives also.</comment>