Lambda School Announces $14M Series A Led by GV - <AUTHOR> https://lambdaschool.com/blog/lambda-school-announces-14-million-series-a-led-by-gv/ <comment><AUTHOR> Lambda School imho is one of the most interesting companies at the moment.

Many many have tried to tackle the challenges of education & its dynamics & how long-term all of it is and how short-term the typical strategic horizons and business models are.

Super excited about their journey ahead. This is one of these efforts that in this moment already have massive impact and down the road their impact can be difficult to even grasp and imagine when you think of it.

<comment><USER2> I'm kind of sad that they don't have the "pay when you get your salary" contract outside the US.

<comment><USER3> This part has always kind of worried me. It feels like indentured servitude a bit. People will end up paying too much or be on the hook for more than they can afford because they are desperate now

<comment><USER4> It aligns their incentives with yours. You know they really do want you to find a high paying job. Thats not something that can be said of most educational programs.

</comment></comment></comment></comment><comment><USER5> Hey guys, awesome to see all the attention Lambda is getting. I'm a junior in college who decided to drop out and do Lambda's iOS Program, happy to answer any questions! For those who are on the fence like I was I can talk about my experience.

I was always a self learned programmer who made projects in python for fun so I was really excited when I first got to college thinking that I'd be able to make the projects at scale that I wanted to.

But as freshman year ended I realized the department at my school for the most part was stagnant and focused excessively on the theoretical side of CS. Forget learning new frameworks we were still talking about Java at the end of the second year. This was really frustrating as I felt I had lost lot of my creative energy and started to hate coding itself. Thanks to the strength of my prior work and some connections I managed to get interviews for dev internships at some really good startups. I completely crashed and burned. I was not prepared to code under pressure or walk through my solutions with someone watching. I was really disheartened from the experience and contemplated switching majors and giving up on tech as a whole.

7 weeks into Lambda now I can create a pretty sophisticated iOS app, use custom APIs and manage sync with a database backend. I've managed to learn Swift and become decent at reading ObjC which I'm sure I can get better at with time. Most importantly though I feel like I can learn anything or at least logically approach any technical problem and I'm so ready to hit up the interviewers whom I feel I disappointed for a second chance.

Doing this program is no joke, and definitely not for everyone. I find myself coding, reading docs, watching videos for 10 hours everyday and at least 4-5 hours on weekends. From the get go I realized what you put in is what you get out. However the instructors do such a good job of keeping the feedback loop small for what you learn in class to the projects you build that it keeps you motivated to implement the next feature and keeps you hungry to learn more.

<comment><USER6> > Forget learning new frameworks we were still talking about Java at the end > of the second year.

Personally I don't think people should be learning frameworks in school except for elective classes. CS is so vast that there is more than enough foundational knowledge to learn without going into specific tooling.

Learning Java in your second year seems like a problem though unless you mean the class used Java but was focused on teaching other topics like data structures/algorithms/garbage collection.

<comment><USER7> I agree, I think people now go to universities to find a job, but I don't think that is what universities are meant for. They are created to be a place for higher learning and intellectual pursuits, which is what most CS courses at universities provide (building a network layer, operating systems, etc).

</comment></comment></comment><comment><USER8> I'm curious what long-term revenue story Lambda School would have convinced investors to shell out $14Mn. Perhaps, dominating a world where universities are irrelevant?

I do wonder though that with MOOCs becoming cheap, and that motivated students are able to get a lot of value from them, would Lambda School slowly transform into another credentialing/ signaling system for hiring? If that happens, I guess we will come around to a full circle of disruption in education.

<comment><USER9> The long-term revenue story is easy.

How much you make per student * how many students = revenue.

How much you make per student is a factor of how much they're getting paid.

If we help a student get hired for $90k they'll pay us back $30k. So if we place 3,333 students/yr at that price point over the long run we'll do $100m/yr in revenue. Of course, that's a _lot_ of students, but that's also a _lot_ of revenue, yet a tiny fraction of the total market of up-and-coming software engineers.

Cost of capital is very real, and it's one thing to say that and another thing to do it, but we don't have to replace the university wholesale for that to work, we just have to be the best trade school there is.

MOOCs are great, but are hardly the be-all-end-all of education. Content is everywhere, ability to actually learn from it is more difficult, and expert help, structured end-to-end curriculum, a community of learners on the same pace, etc. just make for a better learning experience. Sometimes it feels like if I made a nickel for every time I heard, "I learned more in 3 weeks of Lambda School than a year of self study" I could fund the whole company.

<comment><USER10> The education model (immersive, time-intensive, mastery learning) Lambda School has in place seems like a _very_ sweet spot between bootcamps and traditional university CS programs.

But some of that success has to be attributed to riding a boom wave of demand for software engineers. I'm a mid-career software engineer and have seen at least two "bust" cycles where experienced, well-credentialed, and just _smart_ engineers went 12+ months between jobs. The effects of that have been reflected in undergraduate CS enrollments - we see big dips in the mid 90s and prior to 2006 (where a huge push up in enrollments begins again - [https://cra.org/data/generation-cs/phenomenal-growth-cs- majo...](https://cra.org/data/generation-cs/phenomenal-growth-cs-majors- since-2006/)). How well positioned the Lambda School revenue model to handle a 50% drop in demand and significant drop in starting salaries?

I am a big believer in the trade school process for software engineers, but I also think that the _long term_ view for programmer careers is one that includes greatly reduced salaries in the average case and one reason I feel that way is that a learner _can_ be productive in the workforce with a shorter-term and less specialized educational background.

<comment><USER9> Of course we started in a market where we got that sweet spot, but I think it's there for most industries. The only reason every single bachelor's degree is four years is because that's what accrediting bodies require if you want to pull down federal student loan dollars; not because that amount of time makes the most sense.

From a selfish perspective, I would love for a recession to happen today. When recessions happen money is tight and people go back to school who otherwise would have been employed.

Of course, we are exposed to risk at the market level; if we stop hiring software engineers as a society Lambda School is in trouble, so we're betting on that not happening.

That said, the purpose of Lambda School is to take people to the highest point of economic potential as quickly as is possible, not just to be a tech trade school. It's crazy that there's no institution in the US that's great at optimizing human capital other than four years of school and hundreds of thousands of dollars at a university. So soon we'll be training for other verticals as well that aren't just tech.

<comment><USER11> I have hired several coding school grads - not Lambda but very similar. I've seen these employees plateau and have recommended they consider going back to a traditional degree program to power the next phase of their career.

I agree the current university system is not effective for everyone, but economic potential flattens out quickly for tradespeople, which fits the "coders" job description. Most rock star coders I know in SV who have remained coders are making roughly the same now as they were in 2001, adjusted for inflation. Which means their purchasing power has dropped significantly. Meanwhile those I know who have a liberal arts degree + an MBA or JD have steadily increased their purchasing power. They made much less initially, but steadily and reliably accumulated experience that is highly valued in the market as a function of time. Will the best React or Angular coder grad today command 10x their salary in 10 years?

Also SF Bay Area is notoriously age biased against older "doers". Good luck finding a coder job in a GV startup if you are over 35 at a salary commensurate with your experience.

I agree a 4 year degree is insufficient, but I would argue it is a necessary foundation on which to layer on even more education. A career is a marathon, not a sprint. And it should be about more than how fast one can achieve high score.

Overall though, I agree there is a niche for this. This has been done for other verticals, particularly in nursing. So it should work great for a very specific population and a very specific market need.

But I don't see it as being a fix to "optimizing human capital" over a lifetime. (I'm not sure education should be about optimizing anything.) I see it as a short term win-win until companies do in fact automate away 99% of coding, and for the under 30 student in an economy that is overheated, in a country that doesn't provide a quality public education to alll its kids.

I'll be a buyer until the market cools and more candidates flood in, but I'll continue to recommend they enter a degree program.

<comment><USER9> I agree with your points on code bootcamps; I think you should check out Lambda School's curriculum and see how vastly different it is from code bootcamps, which are essentially 8 weeks of "learn how to build your first app", 4 weeks of "now build your first app" then "now go get a job!" (Curriculum is here: [https://learn.lambdaschool.com/syllabus/cs- fsw](https://learn.lambdaschool.com/syllabus/cs-fsw))

Hour for hour Lambda School is about 75% the length of the core track of a CS degree + homework (we're now almost 8 months, not including required precourse work: ~1500 hours). We also teach what we consider the requisite CS fundamentals (for example architecture, operating systems, system calls/processes). Students write a lot of C, etc.

We started Lambda School specifically because we didn't feel right sending folks to code bootcamps where tbey'll plateau because they lack fundamentals.

Try interviewing a student or two: we've had employers come to us saying, "Well we need Java engineers with a CS degree" that have now come back with requests to hire 50 students. Email email@example.com and I'll happily set it up (goes for all of HN).

</comment></comment></comment></comment></comment></comment><comment><USER12> I love what Lambda School is doing. I was part of the first cohort of the first ever coding bootcamp. It felt so scary to move to Chicago to participate, but it seemed so promising. It has worked out so well for myself and my family, but I recognize that there are so many people out there who financially could not do what I did at the time (I took out a loan to go and my wife and three kids moved in with my in-laws).

This school is solving a very real problem and giving hope to so many people who feel trapped in their current situation. I am really excited they are getting this funding and looking forward to see what the school, and its graduates, accomplish.

Great work team!

</comment><comment><USER13> I have been following Lambda School and I am really happy to see them succeeding in this space.

I've a question: how is Lambda School different from the other many other coding bootcamp programs (apart from the unique model of paying the fee only upon finding a job with adequate salary)?

<comment><USER14> That "except" part isn't trivial. The chief problem of education (not just programming boot camps) is that incentives of institutes are more aligned with increasing their prestige than the practical value of what they teach. Lambda school is a fascinating "experiment" into what happens when incentives are clearly aligned with the students' future.

<comment><USER15> Isn't the incentive here to choose the most buzzwordy and low-barrier-to-entry technologies, and spend just enough time/effort to get the students through an interview so the bootcamp can get paid?

Incentives are hard in this space. Not sure how for-profit companies who get paid by students can ever be exactly incentivized to focus on honest evaluation and strong fundamentals.

Maybe the FAANG companies should start/fund a bootcamp, but then you'd have to be selective, and you'd end up with something totally different... :/

<comment><USER16> As much as I've been very skeptical of Lambda School in the past, it's worth noting that their incentive structure seems aligned well. 17% of your first 2 years salary is a huge number, but it depends on you getting a good job and keeping it for 2 years. Otherwise they have to invest more time into you.

<comment><USER9> *17% for two years, capped at $30k total.

But yes you're correct.

</comment></comment></comment></comment></comment><comment><USER17> I'm a Lambda school student. AMA

I'm in the FSW program but we're past that now. I've watched how people move in and out of the cohort I'm in.

I went in knowing how to make a basic website, a bit of sqlm and a bit of a few other of the topics covered. This put me ahead of about 60-70% of the cohort.

I have noticed students getting very hung up on the particular stack. It does seem that a few are just copying and pasting code to get it to work.

This was also the case when I went to college though.

What I don't see people mentioning is the effort their putting into improving the curriculum. It's a living thing unlike most college classes I've been in. They no longer teach Bootstrap for example (which was probably causing most students more trouble than it was worth).

I'm on average doing something coding related 8-10 hours a day now. Occasionally I take days off and go play Minecraft or something. I make about one extra project every two weeks the latest being ( [https://whatisthecolorofthesky.netlify.com/](https://whatisthecolorofthesky.netlify.com/) )

The people I see being the most successful are the ones who probably could have succeeded without Lambda. However I think a sense of direction, a constant source of help, and a sense of community accelerates the pace.

I don't know if I'm going to regret spending 7 months (plus whatever the job search takes) of my life doing this but hey it beats what I was doing before.

If you're curious what the class content looks like it's in my Github which is linked in my profile.

</comment><comment><USER18> I'd love to pursue this as the evening hours work great for a single mom, but the Saturday requirement for the PT program makes it not possible for me. :(

</comment><comment><USER19> Nice to see this getting major traction. Congrats to Austen - one of the true grinders in the startup game. Something sadly lacking on HN these days!

</comment><comment><USER20> Lambda School and the team behind it are awesome.

I've thought about applying quite a few times (I'm technical but self taught, so I've always felt like I'd benefit from a quick bootcamp to soften my jagged edges).

If the schedule were more friendly to European timezones I'd have signed up already. Hopefully that's coming soon?

<comment><USER21> Genuinely curious why you'd look at Lambda School instead of a local university which if you're in Switzerland (going by your user name) would cost you almost nothing. I always saw Lambda School and equivalents as a necessary alternative to the broken US university system, not as something that was needed in Europe.

<comment><USER20> Switzerland has some of the world's best universities, sure.

But I don't want to do another degree (the only comparable option would be a 3 year, full time BSc in Computer Science).

Sure, the tuition costs would be lower, but the opportunity costs (plus 3 years of not really working while I study) are easily 10x higher than doing Lambda School.

Plus, a local university won't teach me the skills I need to become a better 'practical' web/mobile developer. It's a lot of (admittedly very interesting) theory, not the kind of vocational training I need.

With Lambda School I could strengthen my weak areas in 3-6months and don't need to travel to do so. A bargain for the price!

<comment><USER9> We're launching in the UK in 2019, so I believe that will resolve the time zone issue.

<comment> ar-jan That's great news!

</comment></comment></comment></comment></comment><comment><USER22> I am a self learned programmer looking to apply to Lambda school.

1.How are you different from General Assembly and Flat Iron School?

2.Both General Assembly and Flat Iron were acquired. How does Lambda expect to survive when their biggest competitors couldn't?

This concerns me since many of these bootcamps are going the route of itt technical institute.

<comment><USER9> 1\. We're 3.5x the length, teach computer science fundamentals, employ world- class instructors and pay them a lot of money, and don't get paid until you get a job.

2\. By making enough money we can control our own destiny.

</comment></comment><comment><USER23> I've been following Lambda, Holberton and 42. All three seem to have similar models: no upfront tuition, pay later out of your salary. The quality of education seems much higher than the typical "bootcamps". I really like this.

Has anyone compared those three schools?

<comment><USER24> I am a student at 42, and I have to correct you on one really important point : 42 does not have anything as "pay later out of salary". It is a tuition free school period. Also it is not remote, you need to go to the school everyday, and they provide free accommodation as long as you reach the targeted progress each month.

<comment><USER23> Ok, good to know, thanks. So how does 42 plan to make money? Are you happy with the program so far?

<comment><USER24> As far as we know there is no plan to make money. It has been founded and funded by a French billionaire who did not like the way traditional high education works.

I am personally really happy with the program, I started 3 years ago and there are so many different projects and different paths you can choose that I am planning on staying there for some time

</comment></comment></comment></comment><comment><USER25> Why is it called LambdaSchool when they teach "JavaScript, Python and C"?

Clicked hoping to see a functional programming oriented bootcamp. We need one of those.

<comment><USER9> Ha! Funnily enough we started out teaching Haskell.

Turns out the market for that is much smaller.

I'm really happy someone asked that question; we used to get it every day, but we don't get it anymore.

</comment></comment><comment><USER26> "pay a percentage of your final salary" is essentially what the student loans system in the UK boils down to. However I am expected to start paying back after earning over £21,000. Maybe a shift to a graduate tax on the higher end of earners would be a fairer way to structure it

<comment><USER9> Yes, the UK system is much closer to a good idea than that in the US (which is a complete train wreck). Australia's model is relatively solid too.

There are, however, some major differences in how the UK structures student loans vs Lambda School:

1\. If you attend Lambda School you don't begin making payments until you're making $50k+/yr in the field you study. In the UK it's $24k (at current exchange rate) regardless of what you study.

At Lambda you pay a 17% of income for 2 yrs, capped at a maximum of $30k, so if you get a job for $50k you'll only end up paying $17k. In the UK you pay a full tuition (generally around $50k + however much you borrow for living costs for four years).

In the UK you have a 3-7% interest rate, Lambda has no interest.

In the UK if you make payments for 30 years and still haven't paid it off it's forgiven. At Lambda that happens at year 5.

And perhaps this is the most important: In the UK if you default the University was paid a long time ago. The university gets paid day one and doesn't have to care. At Lambda if you don't get a job Lambda School never gets paid, so the incentives of the _school_ are aligned with the incentives of the student, instead of the taxpayer writing a check to cover it.

</comment></comment><comment><USER27> Sat 9-12pm for PT makes it harder to sign up.Lots of kids related activities on Sat/Sun morning till late noon. Wondering if there is an option doing the Sat 9-12pm session over the weekend but at a different time slot?

</comment><comment><USER28> Currently employed at a small company and I've been doing a mixture of side projects throughout the years as well. I don't picture myself leaving anytime soon but you never know what the future holds with startups.

I've considered doing something like this to fill in gaps of knowledge and really strengthen my programming ability in the event I need to shoot out some resumes but unsure how the tuition payback works if I finish the course but retain my current job?

<comment><USER9> It depends on what your current job is. We try to err on the side of caution when telling people they will or will not needn't to pay if they stay in their current role.

Contractually the income share agreement says you're required to pay if your job is in "software" or "data science." Obviously it has to be broad, which could be problematic in edge cases, and I don't want people to have to trust us.

<comment><USER28> That's fair. Might have to send you an email and provide more detail. Appreciate the responses!

<comment><USER9> Looking for it! email@example.com

</comment></comment></comment></comment><comment><USER29> Way to go, Austen and team! Still hoping I can find a way to help your mission one day.

</comment><comment><USER30> How does Stripe do VC investments when they themselves are still taking investment funds?

<comment><USER31> What do you mean? Private companies can certainly make strategic investments in other private companies to commoditize complements, partner on technology, explore potential M&A and for other reasons too.

See: Coinbase Ventures, Slack's fund, etc.

<comment><USER30> I can understand a strategic acquisition, but this is just a long-term investment. I can see how the two companies relate (Stripe loves to be there at the inception of engineering ideas), but I just imagine investing in something that won't return your capital for years to come while you're still strapped for cash being a little... odd?

<comment><USER31> They just raised $250m to pursue long-term initiatives. I wouldn't be worried about them running out of money any time soon.

<comment><USER32> I agree that they don't seem like they're strapped for cash, but it's still a strange use of investors' capital. If Stripe's investors wanted to invest in Lambda School, why wouldn't they just do so directly? And since Stripe evidently didn't need the full $250M for its own operations and initiatives, why didn't it just raise less?

<comment><USER31> I think there are ways to spin Stripe's investment as a customer acquisition play. If they have more influence over Lambda School curriculum or partnerships by merit of being an investor, and Lambda School is churning out web developers whose first instinct is to turn to Stripe for all things billing, that seems like a pretty reasonable use of investor capital to me.

Someone made a similar comment about YC a few weeks ago – how if you were building dev tools, even though $150k for 7% results in a lower valuation than many founders could find elsewhere, you could consider the equity the price for access to the YC network and existing companies to use your product.

</comment></comment></comment></comment></comment></comment><comment><USER33> On the surface this seems like a great thing. How hard is income verification?

<comment><USER34> There are forms you can fill out with the IRS to give access to your tax returns to other individuals.

</comment></comment><comment><USER35> 20k Upfront for international students. Another hint from the bubble inside the valley and the isolation from the real world that eventually will explode in some way.

<comment><USER36> It's a play for federal student loan money pure and simple. Odd that anyone would think otherwise? Edit; non subsidized then?

<comment><USER9> We don't get and won't seek federal student loan money.

In response to the edit: No Lambda School student has, to my knowledge, ever paid for tuition with a loan of any kind, nor have we ever received any money from the government.

</comment></comment></comment><comment><USER37> I also have a small education related project I am working on (currently in stealth mode) that is more focused on the online/self-study type of learning. Even though there is a lot of headbutting in terms of "most effective" education pedagogy. I think the education space is ripe for disruption and companies like Lambda are definitely innovating in this space. I see the future of education mostly consisting of a hybrid of focused seminars/hands-on training like what Lambda is offering and the online self-study MOOCs/courses for more theoretical learning or life-long learning. The hands-on training will be very intense and focused with a price while the self-study MOOCs will be free or very low cost. They both will play an equally important role in the future of education.

Companies like Lambda clearly show that the education market is being disrupted and it is clear to see why. Our current university education system is completely dysfunctional and it is probably most dysfunctional for CS education. The pace of learning is too slow, the topics you learn are not relevant to the student and often the topics you learn are outdated. The universities don't innovate because they are completely disconnected with what students need to succeed. Half of the courses an undergrad takes are completely irrelevant topics which the "educational experts" call general education. When I was in college, I took courses like history of rock music, art history, greek mythology, and asian-american studies. I only took these courses because I was required to take them. In the grand scheme, they are completely pointless and are basically a waste of time...yet we have students taking half their course load in these types of courses. Why? The reason it is like this is because these so called education experts are trying to mold some sort of "model citizen" in their view point. For the student, it just wastes their time and money. If the student wants to learn these topics, they could do it on their own....but to require it as mandatory to get a CS degree or equivalent...is a shining example of how disconnected our university system is from reality of what students need to be successful in a career.

That's why schools like Lambda are brilliant in the grand scheme of disrupting education. They cut out all the crap and only focus on the core skills that employers want in their employees and students need to be successful in a career. Lambda isn't free but they certainly are doing a significant better job than some of these other schools I see like University of Phoenix, Devry and so on which appear to be complete scams. There was also that WozU school that was promoted on here...which also now appears to be a scam based on student reports of the program.

I think as a society, we need to encourage the creation of effective schools, even if they are private schools like Lambda. If that means diverting people away from government colleges/universities then so be it.

Also another topic that is often brought up is in regards to credentials. From what I see, the base for traditional university degrees is slowly being eroded away. Many people say to go to a traditional university because of networking and connections...which is true but only in the present day. For employers, they need to hire people who are effective at the position and provide maximum value. If the MIT CS degree potential employee doesn't know how to code effectively or only knows obsolete CS topics...how effective will this person be at the company? Not very much. The employer will want to hire the person who knows how to code and has relevant knowledge, even if that person doesn't have a degree from a traditional university. This concept is obvious in a fast growing market like CS. Employers will eventually gravitate towards candidates who have the skills to be successful and avoid hiring people just because they were able to network or get a connection to the company's hiring manager.

</comment><comment><USER38> This trend of "Everyone can make a career in code" is getting out of control.

Becoming a software developer is an insanely difficult and ungrateful journey.

This type of "School" make me incredibly uncomfortable has they really promote an unrealistic image of the "Software Developer Career" where everything is super easy , and within 6 months ( seriously ? ) you'll be ready and making 120K$/Year.

Software is a very particular type of industry where turn over is insanely high and most of the stuff a developer has to do has often nothing to do with the technology he learnt at school but instead is about mixing all his CS knowledge ( Software/System Architecture , OSI Model , POSIX etc... ) to come up with the best possible solution to solve an issue.

Today it seems like Coding School are now becoming the norm , and "Software Developer" is now widely considered as just "Coding" or being a "Coder".

This is sad and frightening at the same time.

<comment><USER39> _...but instead is about mixing all his CS knowledge ( Software /System Architecture , OSI Model , POSIX etc... ) to come up with the best possible solution to solve an issue._

The majority of software development is essentially blue collar work now. You don't need a CS degree to make a mobile app or a JS-driven web page. _At least_ 50% of developers haven't used a POSIX library in their entire career. They probably don't know what POSIX is. Software development is mostly glueing together other people's code in ways that don't trip you up later. We'll always need some of the low-level clever coders to build the foundation libraries we use, but that doesn't mean every developer has to be one of those people, or even capable of being one of those people.

And the thing is ... I think this is _great_. Making software is fun, comfortable desk work that loads of people should have the opportunity to do. Given the demand for new applications we need to make the barriers to working as a developer as low as possible.

<comment><USER40> _The majority of software development is essentially blue collar work now._

And like lots of blue-collar work companies are scrambling to offshore it to the cheapest locations and don't care about quality because it's all disposable.

I could not in good faith recommend this to anyone now, become a plumber or a nurse, that's not going offshore anytime soon.

<comment><USER9> People have been saying that for 20 years, and yet most programmers I know (even outside of the Bay Area) are making well into the six figures.

<comment><USER39> So are plumbers in Kensington (an expensive Borough in London). Wealthy businesses and customers pay their staff a lot regardless of the job.

</comment></comment></comment></comment></comment><comment><USER41> Google Ventures invests in company that will churn out graduates that Google will never hire.

Makes sense.

<comment><USER9> First, GV and Google proper are completely separate entities, and neither seeks the other's approval other than when Google writes a giant check to fund GV.

Second, I'll bet you $100 that there's a Lambda School grad working at Google this time next year ;)

<comment><USER42> I'll take that bet with conditions:

\- grad must have a rejection from an onsite interview at Google before lambda school

\- position must be for a T3 swe II

<comment><USER9> That is very specific. They have to have made it to an on-site and been rejected before Lambda? Well that eliminates 99% of our student body from contention.

<comment><USER42> How else can we isolate the effects of the program?

To be honest I subscribe to the idea that the FANG etc interviews are proxies for an IQ test. So it is entirely possible lambda school trains a high enough IQ individual and they pass a full loop. And by that I mean they pass based on their IQ AND the training they got in the program.

<comment><USER9> If you subscribe to the idea that FAANG interviews are IQ tests, then by definition you won't be able to isolate the effects of the program. I don't think we really move the needle on IQ.

</comment></comment></comment></comment></comment></comment><comment><USER24> 42 student here. I feel it is important to share a few facts about 42 regarding this Lambda hype.

42 is a tuition-free school. It means you don't get to pay anything to the school EVER.

42 is not remote. You need to go to the school to do your projects. We believe it is important to be in contact with other students, exchange, learn from each other.

42 provides free accommodation as long as you show your commitment to learning and improving = if you stop coming to school you do not have access to accommodation anymore.

42 program is about 2 to 3 years long. Best students can graduate in a bit over a year when some others stay 4 or 5 years, it really depends on how dedicated you are, but everybody can have its own rhythm.

Check it out :) [https://www.42.us.org/](https://www.42.us.org/)</comment>


Anything faster than G-WAN Web App. Server? - <AUTHOR>

TrustLeap G-WAN was benchmarked against IIS + C#, Apache + PHP, GlassFish + Java and many others... but isn't it something faster in the Web App. world? <comment><AUTHOR> G-WAN is certainly fast, and I don't know about any other Web server (or Web application server) that is faster, whether commercial or free (like G-WAN).

But after one year of existence, it obviously still lacks the features that many have been accustomed to use with Apache.

Time will tell if G-WAN can do better than just be so fast.</comment>


Ask HN: Do you still use UML? - <AUTHOR> A client asks to add UML diagram support to my Helpinator, but I am not sure that it's worth my time. <comment><USER3> In its entirety? No. Never go "full UML", it will annihilate productivity and produce abominable software. It also is taught wrong, it tends to be taught as a design tool, but there's such a tremendous impedence mismatch between the diagramming tools and the way the code actually gets written that it ends up doing more harm than good. (not to mention that the people who usually end up creating the UML might be many organizational layers away from the developers).

But there's some goodness in there. The principal of using diagramming as a descriptive documentation and communication solution _is_ highly worthwhile, but again it should be limited to pieces of the system that need such things. And in addition, the level of detail should be _just_ as much as is sufficient to communicate what's necessary -- don't "prematurely optimize" by trying to document every bit of the system in excruciating detail.

There's also often better, simpler ways to document many aspects of a system, a few boxes and arrows work well for many things. Lightweight versions of the Archimate style work well for describing complete systems. Protocols are well described by a lightweight treatment of sequence diagrams, etc.

They'll often go out of date as quickly as you make them, so keeping them up to date and well versioned turns into a challenge.

Because it's free and provides cross platform compatibility (and the diagrams are supposed to be communication devices), we tend to use yEd for most things.

<comment><USER4> Indeed, I only use UML for documentation of existing code. Having a standard allows for consistent reverse-engineering, and a class diagram is still the best way to visualize an OOP class hierarchy.

Keeping them up to date with the code is an issue, as with all documentation. I actually wrote my own Java class diagrammer [1] for that purpose so I can just re-run a project file to create updated diagrams of the current code base, with little or no editing required.

[1] [http://kynosarges.org/Diagrammer.html](http://kynosarges.org/Diagrammer.html)

</comment></comment><comment><USER5> The 3 actually useful diagrams that I have seen in the last 10 years are:

\- Sequence

\- Entity relationship

\- State chart

All 3 are useful for communicating protocols, schemas and state charts.

Sequence diagrams are probably the most ubiquitous, and very useful in explaining protocols. Even RFC-s have them.

Relationship diagrams are often (ab)used to visualize relationships between tables in SQL databases. While it's not very useful for designing, I have actually used them for understanding and simplifying a complicated database schema. I actually believe every API documentation should start with an abstract entity relationship diagram. Abstract in the sense that it should not necessarily represent physical tables, but give an overview of the underlying structure to the first time user. Doesn't even have to complete or correct.

State charts are occasionally useful for obvious reasons. Try explaining TCP without one.

I think it's worth noting that the above 3 existed before UML and UML merely tried to formalize them, so while I don't think anyone uses "UML" anymore, being able to comprehend the above 3 charts is as basic of a skill as being able to read pseudo-code, and saying they are not is use would also be false.

Edit: formatting

<comment><USER6> The reward of the clarity of sequence diagrams is worth the pain and boredom of learning all the others at university.

Sequence diagrams nicely represent separate entities involved in a system, the order of communication between them, and the conceptual content of messages between them. Even briefly reading a sequence diagram helps you understand how different components relate to each other.

Often, and usually with API endpoints with some complexity behind the scenes, I'll go out of my way to draw an ASCII sequence diagram with Monodraw[0] and leave it in the comments or a readme.

[0] [https://monodraw.helftone.com](https://monodraw.helftone.com)

</comment></comment><comment><USER7> I use boxes-and-arrows sketches a lot. The UML which was so popular around 2000 was this detailed quasi-standard graphical language. It was very centred around being correct, and diagrams being of a specific type of a number of permissible types, and so on. And that whole part I never found to be too helpful.

It is useful to draw ideas as graphics for people who's brains are wired visually. And it can makes nice figures for books and articles explaining structures and concepts. But in neither case does the value predominantly depend on the depictions begin adherent to a standard, as much as other qualities, like focusing on the right part of a larger system, or leaving out unimportant detail, etc.

So nonstandard diagrams offer the author or user more creative flexibility, which is often very important.

I do see value in loosely following UML notation, for the obvious reason that one can immediately see if someone tries to show classes, states, requests, systems parts, and so on. That was probably the original goal behind UML all along, even if people lost sight of it during the fad phase.

<comment><USER8> I use to argue with a friend about this, I was so fed up with all the UML mystique, I wanted to release CarréFleches 1.0 (french for boxes and arrows, with the appropriate lack of grammar to mock the fluff behind UML).

Seems like everybody use the same "subset" that is graphs of things related to each others ... what a mystery.

<comment><USER9> OT: just realised where the word fletcher (an arrow-maker) comes from. In French does _fleches_ refer always to the whole arrow? Just it sounds a bit like "flight" which is the layman's English term for the feathers.

<comment><USER10> etymonline: fletcher (n.) "arrow-maker," early 14c. (as a surname attested from 1203), from Old French _flechier_ "maker of arrows," from _fleche_ "arrow," which is probably from Frankish, from Proto-Germanic _•fleug-ika-_ (compare Old Low German _fliuca_ , Middle Dutch _vliecke_ ), from PIE _•pleuk-_ "to fly," extended form of root _•pleu-_ "to flow" (see _pluvial_ ).

I think it pretty much stands for the whole arrow, but comes from the word for "flying" back in old Germanic languages – but via the arrow being a flying projectile, not from the feathers per se.

</comment></comment></comment></comment><comment><USER11> UML was, in some sense, an expression of a certain kind of politics:

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

"And there is an explicitly political idea that drove OOP to its peak in the 1990s: the idea of outsourcing. The idea of outsourcing software development rested on some assumptions about how software development should work, in particular the idea of the "genius" architect, backed by an army of morons who act as secretaries, taking dictation. OOP was the software equivalent of a trend that became common in manufacturing during the 1980s: design should stay in the USA while actual production should be sent to a 3rd World country. Working with UML diagrams, writing code could be reduced to mere grunt work, whereas the design of software could be handled by visionaries, possessed with epic imaginations, who could specify an OO hierarchy which could then be sent to India for a vast team to actually type out. And the teams in India (or Vietnam, or Romania, etc) were never trusted, they were assumed to be idiots, and so, for a moment, there was a strong market demand for a language that treated programmers like idiots, and so the stage was set for the emergence of Java. "

[http://www.smashcompany.com/technology/object-oriented- progr...](http://www.smashcompany.com/technology/object-oriented-programming- is-an-expensive-disaster-which-must-end)

<comment><USER12> I think everything you say is true except the jab at java, which is also true, but not all the truth...

Besides, during the 90s the idea seemed to be that that the next step after the outsourcing was actually no programmers at all. UML and 4gl systems would handle all the complexities and laymen domain experts could just define all bread and butter administrative systems they like - no expensive and socially awkward nerds in the basement necessary...

<comment><USER13> > during the 90s the idea seemed to be that that the next step after the > outsourcing was actually no programmers at all

Lest someone think this is an exaggeration, no, this was _literally_ the conversation at the highest levels of some companies. A relative told me to reconsider going after a comp sci degree in 1995 because within ten years the computers would be programming themselves. There were presentations at their workplace about it.

My first "real" job was programming customizations hacked on top of a 4gl tool - injecting JavaScript into pages through an improperly sanitized <label> widget! After the whole application was rewritten in the 4gl tool, it never lived up to its promise.

<comment><USER12> Fred Brooks where spot on in his thoughs regarding essential (as in inherent) complexity.

I think that BPEL thankfully died just a couple of years ago, but not thanks to some globally aquired insight but rather because a new batch of developers isn't quite there yet so they are busy learning and reinventing basic stuff, but now at 'internet scale'

</comment></comment></comment></comment><comment><USER14> UML can be a great communication tool in specific situations but when it becomes a religion your organization will suffer. I'm older than most here, drank the cool-aid that predicted code generation and round tripping but spit it back up before the poison had a chance to set in.

A bonus comment for the youngin's ... When you hear that some new system will allow "the common man" to write his own software without developers, smile and agree with them because they'll come back when it doesn't go as planned and you can charge a higher rate for the resulting expedited project.

EDIT:

I should also admit that I liked (like?) the idea of writing code using diagrams. In the '80s I wrote a program I called "Flo-Pro" in Turbo C that never quite became self-compiling. It wasn't at all OOPsish or FP. In the '90s I wrote several tools in Prograph [0] (now known as Marten) but was stymied by the fact that I was the only one in the company using the tool. In the early aughts, I tried URL tools that promised to write my code from the diagrams - it worked for very simple code but I never saw round-tripping work.

I love drawings in general - my coworkers joke that it's not a meeting unless I have a dry-erase marker in my hand. But those diagrams are invariably system-level, architectural drawings. As others have noted, I also appreciate ERD as a way to visualize relationships in RDBMS. So as much as I like the idea, development stays in the world of text - I'm not holding my breath for some magic bullet.

[0] [http://www.andescotia.com/](http://www.andescotia.com/)

<comment><USER15> The youngins say AI will solve this. They're wrong.

<comment><USER16> A human-like AI will sure solve this - because the only way for "common man" to make software without developers is to have _something_ to do the work of dealing with complexity - figuring out the _precise_ details, handling edge cases in a way consistent with the original intent, etc.

But why wait for a powerful AI, if you can hire / enslave developers today?

<comment><USER17> > handling edge cases in a way consistent with the original intent, etc.

That's where we spend the majority of our time and always where things go horribly wrong in SciFi movies.

</comment></comment></comment></comment><comment><USER18> HackerNews may not be the best place to sample for UML usage. It consists mainly of two communities that have a bias against formal engineering methodologies in the development of software.

I won't comment on the pros and cons of UML. Instead I'll invite you to ask yourself a couple of questions.

1\. What other clients do you support who have similar characteristics as this client (and may therefore also benefit from UML support)? If the number is significant in terms of impact to your bottom line versus the time you'd have to spend implementing it, then you should consider it worth your time, and view it as an opportunity to up-sell (if you can) or keep existing customers.

2\. Do you intend to attempt to move into supporting large enterprise, and especially government contractors? If so, you might consider UML support just because it is ubiquitous there.

<comment><USER19> what are the two communities are you referring to? one of them might be frontend developers(ui,js,html,css,etc)? what is the other one?

I'm a low-level guy and learning some web coding these days, so I can tell the difference views on software between HN and other places.

<comment><USER20> My guess is the FP (especially Lisp) crowd.

<comment><USER17> The FP crowd is so vocal. Reformed math geeks who are trying to evangelize the world of programming to do things one way; their way.

<comment><USER21> > Reformed math geeks

I presume you mean the Haskell crowd? The Lisp crowd is more about expression rather than "correctness" and rigidity. FP doesn't really have a formal definition.

> trying to evangelize the world of programming to do things one way; their > way.

I think the world of computing is shifting towards a lot of async work, and if you've ever written large threaded apps, having too much state becomes the greatest of burdens. Clojure, for example, minimizes state and uses Software Transactional Memory to manage mutability.

<comment><USER18> What's old is new again, it seems.

</comment></comment></comment></comment></comment></comment><comment><USER22> As a communication tool I've sold work with a really busy, boxy class diagram where the focus is on the connections and not a complete representation of all the properties.

Being able to stand in front of a big screen and point to and talk about connections and cardinalities magically draws questions and comments out from the business stakeholders. That feedback helps me get the model to a place where it generally matches what the business wants.

Keeping that diagram alive and updated as we implement the system has served as a super valuable tool for communication with other teams that need to touch the model. Everyone continuously hashes out and agrees on common terms, ownership, etc.

The worst defects come from requirements or design defects. I'm not advocating for giant up-front designs with hundred+ page software design spec docs. But, paraphrasing Uncle Bob, "'no up-front design' doesn't mean _no_ design." There has to be some design of some sort and some documentation of the system being developed.

I think the time to stop diagramming/designing is when adding more detail won't communicate anything more about the model or business process in casual conversations about the system. That's a very subjective line to draw, but it helps me to think that way.

</comment><comment><USER23> I do, quite a lot actually.

Originally it was mostly because it was the default setting in my Enterprise Architect tool, but it's proven more useful than Archimate (and other notations) because people without architect knowledge understands it much better.

On the business side it's mainly the system integrations, dependencies and information flows that are of value and you could honestly do them in Word if you wanted. Because it's very easy to build upon it, it's also easy to turn the business specs into something I can hand to an actual developer or use as a common language when talking features and requirements.

I wouldn't use UML if I was doing the systems engineering from requirement specs handed to me, and it is very rare that we use more than 10-25% of its full functionality, but it has enourmous value when you are trying to get future system owners to understand their own business processes and what they actually need from their IT.

<comment><AUTHOR> Would you use UML to show BPs to a competely new user of a system?

<comment><USER23> I don't deal with a lot of end users, I mainly advice stakeholders and try to make them as equipped as possible for making the right overall decisions. That being said I wouldn't because our project maneuvers use bizagi and are comfortable with that notation.

Given the choice I'd probably not use UML BPs a lot either. They are very good if you want to do graphical use cases for architects, but I don't think they have a lot of communicative value unless you know UML.

</comment></comment></comment><comment><USER24> I absolutely hate UML and regard the associated tools as time swallowing abominations and the main advocates that I encountered as the worst kind of snake oil salespeople.

Of course, other people's experience may differ - but I largely thought it was a big con.

<comment><AUTHOR> Rational Rose was terrible at UX, but surprisingly it was a de-facto standard.

<comment><USER25> Now that was an expensive con. All UML bullshit is a joke: more energy is spent on being Correct than addressing the original issue UML was meant to solve.

</comment></comment></comment><comment><USER26> Yes I do. When you have a team of developers with different model of how the system should work or works, it's usually a recipe for disaster. By modeling, we get to unify our thoughts and idea of the system.

When starting out a project, I tend to lean more towards well labeled conceptual diagrams. I will also use activity diagram, sequence and state diagrams.

While I have often read about people designing class diagram before hand, then writing or generating code. I never use class diagram before code is written. I use class diagram to document an existing system.

It's a tool, if you are willing to be flexible and realize it for what it is, then it's useful.

<comment><USER27> Any tool in particular that you suggest to make diagrams? Or maybe just pen and paper?

I tried StarUML 2 and it's ok but I found it slightly clunky (it also does not have a realtime collaboration feature as far as I know, that would be nice to have when your team is remote IMHO)

<comment><USER26> White board it, modeling should be a group activity. Everyone should contribute their ideas so we can converge towards one mental model. If I'm working with 1 or 2 developer, we can cluster around a table and use pen and paper. I only use professional tools if I'm going to be giving presentation or wish to store it for long term.

In Linux there is modelio, and there is also Visual Paradigm which is available on most platforms and has a free community edition.

<comment><USER27> thanks

</comment></comment></comment></comment><comment><USER28> "What's your favorite editor?" pales in comparison to the divisiveness inspired by "how do you feel about UML?"

I used Rational Rhapsody for a few years. We used it for use case diagrams, sequence diagrams, class diagrams, object model diagrams, statecharts+code generation.

Many folks scoff at and draw the line at code generation. By default, tools like Rhapsody seek to box you in to a certain way of doing things. It's not difficult at all to customize but it requires effort to opt out of some defaults. I felt like I experienced significant pros and cons. One one hand it was awkward to use their IDE to edit the code. OTOH it helped encourage a level of organization to the code. Statecharts are very expressive and very clear, I really liked them. There's no limit to the expressiveness of the code you can write. But the vocabulary used to describe the widgets I was working with was new to me, so it took a good deal of time to look up and understand the customizations required.

In the absence of code generation features of UML, the diagramming features are really great. Developers are too quick to treat it like a religion and (on both sides) become inspired to pray at the altar or preach about the evil that lies within. But really, it's just a glossary of visual representations mapped to software design concepts. That's all it needs to be -- conventions like the ones used in other engineering discipline's diagrams. Diagrams with "boxes and arrows" are just fine but there's always the implicit questions: "does that rectangle represent the process executing the 'flabtisticator executable' or the 'flabtisticator class'?

</comment><comment><USER29> Back in the late 80's, there was the CASE (Computer-Aided Software Engineering) fad, when it was thought diagrams could replace code.

The idea that a picture is worth a thousand words is not applicable to most of the words one would use to discuss systems designs. It is very difficult to discuss purpose and intent, or to present arguments that the design satisfies requirements or observes constraints, to justify choices, and say how things work, through any sort of diagram, let alone only those of UML (use cases are something of an exception, as they are not actually diagrams.)

On the other hand, diagrams are a very useful adjunct to these activities, and are widely used in informal discussions. This is broadly in line with how diagrams and pictures are used in other technical and scholarly fields: for example, maps, statistical charts and pictures of places and artifacts are very useful in history articles, but are never the full story.

Furthermore, I can usually write a thousand words faster than I can draw the corresponding UML diagram. The UML I am most likely to use will be machine- generated from code and will be used as a supplement to the text I am writing.

<comment><USER30> When going into a new OOP project, I like to browse the code and create class diagrams for it.

It's intersting to see what classes aren't used at all and where all the associations accumulate.

Also, if the "previous devs" are still around it's easier to talk with them about these pictures, than to talk about 100 text files.

<comment><USER29> Good point. I find sequence diagrams can be useful in places, as well.

</comment></comment></comment><comment><USER31> UML is too heavy and rigid.

I use my own subset/version of UML, which uses a simplified "grammar", and allows you to express basically only the following:

\- Class with attributes \- Parent/child relationship \- One-to-one relationship \- One-to-many relationship \- Many-to-many relationship

If I have some other need (rare), then I improvise. Usually I'm the only one who looks at these, but if a client or someone else needs to, the language is simple enough to understand that I can explain it in a few examples/sentences.

<comment><USER32> An ERD (Entity Relationship Diagram) might be simpler and clearer. In my experiences, stakeholders find them easier to follow than UML class diagrams.

<comment><USER33> For me its also a lot more useful to document he data model rather than class diagrams. The data model usually changes less than the code.

</comment></comment></comment><comment><USER34> Not exactly UML but I find rails-erd can be helpful to understand a data model, particularly if I'm trying to come up to speed on an existing codebase. It has the very large benefit of automatically staying in sync with the code.

[https://github.com/voormedia/rails-erd](https://github.com/voormedia/rails- erd)

</comment><comment><USER35> I co-wrote a book on UML years ago. Back then, I thought that UML diagrams helped with communication. However, Sequence Diagrams are the only type of diagrams I use anymore.

For Java, perhaps high level class diagrams are still useful also, but I have been switching over to using Haskell (as much as I can) and I have not worked on a large Java project in a long while.

</comment><comment><USER36> Yes, but not in the formal sense. And i don't get why agile and proper documentation should not go Hand in Hand. There are components and class Diagramms that are invaluable for me when i'm joining an existing code base. Even if they are not up-to-date everytime.

State and sequence diagrams are really cool to discuss dynamic flows and identify potential logic holes. UML-like diagrams are way better then to come up with your own representation of this everytime

<comment><AUTHOR> Time limits, I guess. It's the only reason not to create good documentation. If you fail to deliver on time there's no need in good project docs. More like a chronic desease.

<comment><USER37> A lack of good project documentation should be treated as technical debt and handled accordingly

</comment></comment></comment><comment><USER38> For a while I used UML but whenever I showed them to even experienced developers they didn't understand them. So I went back to simple box and arrows. Easier to understand and also easier to create and modify. Flow charts and state machine diagram usually work too.

I almost have a prejudice against people who use UML because a lot of them seem to be the "architect" types who talk about integration patterns and stuff but don't get much done.

</comment><comment><USER39> I don't think i ever did. It feels like an enormous waste of time.

</comment><comment><USER40> I am on a 5 min break of working on a school project where lots of UML diagrams are required. I was finishing our last required sequence diagrams right now!

Although this is a small team project, making the diagram takes at least 5 times the time needed to write the code. In our team of 4, 3 of us will not need to write code.

I understand it is good for management but I hope I will never be required to do this ever again.

</comment><comment><USER41> Sequence and state diagrams are fine, why not using them when you want to communicate certain things?

<comment><AUTHOR> I notice that young coders hate to deal with diagrams. Customers are more and more educated in IT, so in most cases there's no need for intermediate language to communicate.

</comment></comment><comment><USER42> I do. UML class diagrams can help you turn real world business objects into model and think about dependencies and relationships of entities. I would say that it is the best tool to model software. Sequence and activity diagrams can help you design and document a process.

A picture is sometimes worth hundred words and this applies to UML as well.

<comment><AUTHOR> Sure, pictures are great for communication. But is UML required? A lot of teams that I observe go with arrows and boxes on a whiteboard, and everything is clear nonetheless.

</comment></comment><comment><USER43> IMO UML adds negative value because, with only a very few exceptions, its semantics are carried by shapes that have no mnemonic relation to the concepts they are intended to communicate. What is the difference between a dashed line and a thin vertical box in a sequence diagram? A hollow vs a filled diamond in a class diagram? Does:

C1 ---> C2

mean that C1 inherits from C2 or that C2 inherits from C1? Does:

C1 ---* C2

[Note: the * is supposed to be a filled-in black diamond, but HN apparently doesn't allow unicode characters in comments.]

mean that C1 contains instances of C2 or that C2 contains instances of C1? What would it mean if the diamond were hollow instead of filled? What is the difference between a solid and a dashed line in a class diagram? A sequence diagram?

The only way you can possibly know the answers to these questions is if you have mastered an enormous amount of trivia. And then what have you actually gained? How is a class diagram better than simply writing out as text, "Class C1 inherits from C2, C3 and C4, and contains single instances of C6, C6 a set of C7s, and an ordered list of C8s?"

In >90% of cases, the information conveyed by UML can be much more easily and effectively communicated by plain text.

<comment><USER44> > _How is a class diagram better than simply writing out as text, "Class C1 > inherits from C2, C3 and C4, and contains single instances of C6, C6 a set > of C7s, and an ordered list of C8s?"_

I agree with much of your criticism of UML, but there is significant value in having a visual representation of class interactions. Your text takes longer to parse and understand than a simple diagram would be. For scenarios with numerous classes, the diagram becomes _far_ easier than a text description.

<comment><USER43> > the diagram becomes far easier than a text description

If the text is hyperlinked it can be every bit as easy to follow as a diagram. In fact, it can be easier if things are really complicated because it allows you to focus your attention more easily just on the parts that matter to you at any given time.

<comment><USER44> I don't agree with this at all. People naturally draw diagrams to demonstrate complex things. Any time a technical discussion gets complex, someone walks to a whiteboard or pulls out a piece of paper and starts drawing flows or interactions or whatever to clarify the discussion. Never have I seen someone say, "this is getting hard to follow, let me write some prose".

If class diagrams are useless then so are bar graphs and scatter plots. You can just list out the data points and everyone can read them.

<comment><USER43> No, graphs and scatter plots are useful because the spatial distribution of markings actually conveys useful information: things that are physically close to each other are mathematically close to each other. But most UML diagrams aren't like that. And even for the ones that _do_ try to convey information that has spatial analogs (like containment) UML doesn't actually take advantage of spatial relationships between elements. For example, the natural way to express containment is by putting one element inside the other in the diagram. That makes it obvious what contains what. But that's not how UML does it.

Just about the only diagram that has a natural mapping from spatial relationships of the diagram elements to the actual underlying semantics is the sequence diagram.

<comment><USER44> "Spatial" isn't particularly meaningful when talking about classes, so it's not surprising that UML doesn't generally attempt to express that.

We can probably just agree to disagree here. I think class diagrams are often quite useful. They existed before UML and they are used even by people who don't use UML.

<comment><USER43> > We can probably just agree to disagree here

That works for me :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER45> For general purpose data modeling, I tend to favor some loose variant of Bachman or Chen notation. UML feels complicated to the point of being hard to read.

For architectural diagrams, I just use basic boxes, arrows, cans, etc. UML also tends to feel complicated to the point of being hard to read.

In both of the above cases, I think my not using UML is because its goals differ from mine. UML seeks to capture how a system comes together as completely an accurately as possible. I tend to think that the code should suffice for that (and if it doesn't, it's time to have a long hard talk about technical debt). I prefer diagrams to just be a gloss that helps to explain how things come together at a high level.

For understanding protocols and suchlike, though, UML sequence diagrams are my go-to. That's a rare spot where I really do want the diagram to capture a whole lot of fine detail, and the UML standard provides a pretty clear, intuitive and uncluttered visual language for the job.

</comment><comment><USER46> Yes. It is the language designed for software engineers to share designs, logic and ideas with others. I never enjoy the scene that two engineers talk designs in front a white board by keep writing some random words they catched during talk and draw some wired line and cycles. The most painful part is that even they take a picture of it, they still have to argue about the ideas later when they start coding. :-(

UML is actually the first language a software developer should learn. The most ridiculous words I have heard is that a senior engineer "mentor" other juniors say the IBM Rose is UML! And argue about how Rose huge and hard to use.

I really worry if there still have some deciplines exist in software industry, if so many people still obsessed to call themself software engineer?

</comment><comment><USER47> Yes, all the time.

We don't go full UML, but it is the best tool to have a solid architecture overview, before committing to solutions that won't fit with what customers actually want.

It is also a very good tool to onboard new developers into the team without forcing them spending endless hours reading code.

</comment><comment><USER48> I'm teaching it. It feels increasingly out of date. Tool support has stagnated for years on Linux. Modern features like lambdas are not really supported.

<comment><USER49> > Modern features like lambdas

"Modern" as in "Introduced to programming languages 35 years before the invention of UML, finally turning up in Java 20 years after the invention of UML"?

<comment><USER48> Yes. Why did the functional programming people need so long to convince the rest of the benefits?

<comment><USER49> For the same reason that it always takes conservative people long to understand the benefits of what they are fighting against?

</comment></comment></comment></comment><comment><USER50> I do quite a lot. I use it for sketching out and documenting software. I use state machines for, well, state machines, which make up 90% of the software I write (embedded). They can almost mechanically be transformed to sourcecode, but I do the coding by hand. I use it for sequence diagram to sketch out and document sequences of events, and also generate sequence diagrams out of trace logs. And finally I use class diagrams to document the software architecture. For all of these I use plantuml because the text format is simple, human readable, and easily versioned. For the kind of software I write (embedded software with a lot of state machines and strong OO architecture), it is absolutely great. Definitely one of the big tools in my toolbox.

</comment><comment><USER51> I don't and if you're religious about it, I'm afraid I don't want to work with you (I accept the feeling may be mutual)!

Most developers don't have a complete knowledge of it and don't enjoy writing it; essentially I believe it's because they know it's not an efficient way of communicating ideas with other developers.

Modelling can be useful, but as far as I can work out something like gliffy with lines, boxes and little else is almost always sufficient. I'd imagine safety critical space or aviation systems and other niches are a different kettle of fish.

</comment><comment><USER52> Been working in a large corp for last 5 years. Never created a single UML chart, maybe I've seen one or two.

Maybe it's because I work in front-end, which "traditionally" is a bit less strict (JS is dynamically typed etc.), but also, I think that typically the codebase changes too rapidly and the fancy graphs can't catch up with that, they get outdated in a few months, and no one bothers to update them or even look at them anymore (they might be useful in the beginning of the project though).

</comment><comment><USER53> Yes. Keep in mind though that the - perhaps historically, perhaps still - <USER2> widely used kind of UML diagram - the class diagram - is just one component of UML.

Other than for explaining particular design patterns I don't find class diagrams all that useful, certainly not for giving you a complete picture of a system that consists of more than a handful of classes.

Sequence diagrams, state diagrams, use case diagrams, basically anything that involves or describes activities: I think those are tremendously useful.

</comment><comment><USER54> It is useful if you are able to generate code from it. I know one big software company (more than 3000 employee) that generate 90% of all it's code base (~20M lines of code).

<comment><USER55> I bet they sell quality software..

<comment><USER15> No way of knowing unless we can exam it. Could be the best stuff ever.

</comment></comment></comment><comment><USER56> Good UML diagrams are hard to write, easy to understand.

I used to write a lot of UML diagrams in Mechatronics Engineering for a big company, where specs were not supposed to change often. For projects with a long lifetime and a slow change velocity, UML is totally justified.

UML diagrams are not worth it for Software Engineering: code evolve too fast to keep your diagrams up to date. In that case, I replace UML diagrams by simple sketchs / mockups and simple tables.

<comment><AUTHOR> Even bad UML diagrams are hard to write for a human that is more into typing than drawing. I was even forced to create text-to-UML tool when I was a young dev. Saved a lot of time.

</comment></comment><comment><USER57> I'm an extremely visual person so for me diagrams are incredibly useful. I'm constantly drawing class diagrams and communicating via pictures. I want UML to work so bad.

Unfortunately, I think UML suffers from all the dysfunctions of a language designed by many stakeholders. It's just not intuitive, so you have to remember the details. I start practically every handwaivy whiteboarding session with the disclosure "this is not UML but ...".

As with many "standards", we've sucked the oxygen out of the room by saying this is the one true way. I very much prefer having multiple competing specifications and letting the winner shake out. I imagine if we hadn't prematurely standardized on UML years ago, visual programming and diagramming would have evolved in exactly the same way regular programming languages have evolved. Why do I have 30+ choices for what to write my web server in, but only 1 seriously spec'ed out language for drawing it?

</comment><comment><USER58> I would say it really depends... There are UML diagram generators with whcih you might want to integrate (e.g., PlantUML) that would meet the needs of someone creating documentation. Alternately, they may use their own UML tool (or a free one like Eclipse Papyrus) to create the diagrams they need and then extract those as pictures that you can import.

IMHO, adding full UML support is crazy for your application and would potentially add years of development.

Even adding simple, non-model based UML creation would be a significant burden if you are a small company. Plus, there might be open source generators or generators you could call programatically to generate the images desired.

But first, you probably need to better understand your client's actual needs. I have doubts that they would need all the UML diagrams...

</comment><comment><USER59> Nope. Whiteboards and maybe a photo of it for posterity :-)

</comment><comment><USER60> As almost in any case with computer science, the answer is "depends".

UML diagrams can be very useful to represent a system to someone which is not technical enough to understand code, but can understand the basics of the diagrams.

Personally, to myself it's usually more a waste of my time.

</comment><comment><USER61> UML was useful for visually communicating document architectures in the Web 1.0 world. But what's a UML diagram for a dynamic web application? Server<\-->Database, done? If the tool doesn't fit the problem, don't use it.

And then there's the domain specific UMLs, such as Operations Management and BPMN, where the diagram can be programmatically "powered up" to analyze operational efficiency. If you work in a hierarchical organization where you need deliverables that filter to other departments, and there is a perceived value, then someone is going to be tasked to make it. But in a flat organization in startup mode, it's a waste of money.

If you're working across organizations, in public/private partnerships; if your government organization needs to be accountable at diverse levels, then UML is visual language that communicates a lot of information at once--in one artifact. Tax dollars going for new transportation infrastructure in New York City, maybe there's a need to get diverse groups on board. But you're going to pave potholes in Levittown, NY--who cares? Get it done; stop wasting money.

And finally, there is a the language-cultural dimension. Europe is multi- lingual, so it's no surprise the Open-Education Resources offering UML-like education materials are from European universities [1][2], and not American Universities. That's not our language problem (yet).

If you have a customer asking for UML, you need to understand their problems. Once you do that, then you can decide if the problem vector they present is profitable sector for your company.

To put all this in other words, UML is a tool and a visual language. Use it or not, it's not going away--ever.

[1]: [https://open.hpi.de/courses/bpm2016](https://open.hpi.de/courses/bpm2016)

[2]: [https://www.edx.org/course/creative-problem-solving- decision...](https://www.edx.org/course/creative-problem-solving-decision- making-delftx-tpm1x-0)

</comment><comment><USER62> UML use case, activity, and sequence diagrams are perhaps quite useful. I'm too lazy to make them :-) but I find them useful to consult at times.

The class diagrams that everyone is really thinking about when they say "UML" are imho kind of useless. It reflects a kind of obsessive OO purism, and taxonomical obsession, that was quite trendy in the late 90s, early 2000s.

But it turns out in most cases looking at a class diagram doesn't really tell you much about what software _does_ or how it _works_. And in any case I personally find it easier to look at header files or source files to get a picture of how things fit together. Class diagrams don't really help.

</comment><comment><USER63> #Related

There was a recent talk about the model-code gap [1]. How diagrams often don't map to the code. The C4 model. "Structurizr." Lack of common abstractions to describe software, in contrast with other fields like electrical engineering. Good to still start out with paper/whiteboard.

@7:13 "1 out of 10 people use UML," in his experience. People adopt ad hoc notations instead.

His use of UML is not for describing the system at a high level.

[1] GOTO 2016 • Visualise, Document and Explore Your Software Architechture • Simon Brown

[https://www.youtube.com/watch?v=GM_J_jRp62g](https://www.youtube.com/watch?v=GM_J_jRp62g)

<comment><USER64> The best way to make sure your diagrams map to code, is to generate your diagrams and the code from a common piece of text.

At a job not too long ago, we used a modified form of DOT to describe a protocol state machine. This generated dot, .h's, and some template .c files. This made it such that each state machine for the protocol had a diagram that would map out all the states. Logging and other subsystems output were generated as well so you could go from a log of a test run back to a diagram of what had run.

Code generation (or compilers for compilers) are entirely underrated outside of Lisp, and they're not too difficult to create.

EDIT: And note that your linked presentation is AWESOME, but I think he misses the description / guidebook being up to date is best accomplished by having it be what needs to be updated to create the software.

</comment></comment><comment><USER65> I draw UML diagrams frequently. I almost never persist them, though. As they say, the only thing worse than no documentation is out of date documentation.

I can definitely see an argument for certain types of projects (libraries and frameworks). If you have diagramming capability, and you are in the enterprise Windows market, I think this is a no-brainer. I'd be curious what diagramming support you had if it were not UML....

Having said that, I wouldn't try to implement a full object modelling solution. It's not the kind of thing that help files need. Actor diagrams and sequence diagrams would make more sense to me.

</comment><comment><USER66> Yes. Everyday. With a pencil on a notebook.

When I take notes, some concepts are better/faster materialized as relationships between objects or actors or activities

Also reasoning about schematics topology is useful and enlightening when a problem is large

<comment><USER66> Btw when I need to sketch uml on a computer I use violet uml

</comment></comment><comment><USER67> I have used mostly the class diagrams and sequence diagrams.

I like how UML class diagrams defines the different potential relations between objects involved in software.

It would be nice if more people (myself included) learned better ways to consistently communicate software design. Lots of ad-hoc meetings result in confusion because often a design is scribbled in ones own notation then communication takes longer. But yet such communication is crucial to large projects.

Some call it architecture, others call it design patterns. Either way its important to have thought-out, standard ways to communicate ideas.

</comment><comment><USER68> I'll often use sequence diagrams or entity relationship diagrams when I need to explain how a piece of code works (or even just visualize it for myself). I don't tend to be very pedantically correct about it, but having a picture makes it a lot easier to follow how different pieces fit together. I generally leave out a lot of the less important details when doing this.

I wouldn't generally use it to design code that hadn't been written yet. There's a lot you only discover once you get something working, and that needs to inform the design.

</comment><comment><USER69> I haven't found a better activity diagramming tool than PlantUML with Vim's aklt/plantuml-syntax and using watch to automatically build the diagrams.

I challenge any of you to come up with something better.

</comment><comment><USER70> I only ever used it for school projects, and only because it was required.

<comment><AUTHOR> Some 10 years ago I took part in two very large projects in two different organizations, and in both cases all our shiny diagrams were scrapped at the end. So sad :)

<comment><USER70> For school projects, we did all the code, and then generated UML accordingly...

All teachers knew that, but let it go

</comment></comment></comment><comment><USER71> I'm really lazy when it comes to maintaining docs and mainaining UML is sometimes a pain so I only use dynamic parts of UML like sequence diagrams on a relatively generic level that is less likely to change (examples of call flow between modules/tiers with different responsibilities).

Class diagrams are pretty nice when building a rich domain model since it's pretty easy to move from rough conceptual level closer to designing and documenting the actual implementation while working on the same diagram over time.

</comment><comment><USER72> I sometimes create UML diagrams but I try to simplify them as much as possible. Sequence and Entity relationship diagrams are useful but the rest is rubbish IMHO. I tend to use them only when I'm in the planning phase but I ditch them when they become obsolete and the application is ready. This might not be the best workflow but updating diagrams is horrible. You also can't really use UML for functional languages like Clojure. I feel that they are becoming more obsolete with each passing year.

</comment><comment><USER73> I never got into it to begin with. But I did ended up using a form of few diagrams that I later learned were part of UML. They just come to anyone who's solving a problem naturally.

</comment><comment><USER74> I'd rather use XML than UML and that's saying something.

</comment><comment><USER75> UML diagrams are practical, but there's a cost to creating them and maintaining them. You can argue that many tools have been created to address this problem, but the problem remains... especially maintaining them.

Now, sequence diagrams remain one of the best ways of explaining distributed workflows (e.g: OAuth) that I know of. If you work with an OOP language, a class diagram might be useful to express some ideas. Other UML diagrams are less used.

</comment><comment><USER76> I still think in use cases but without the goofy graphics. I just make a Markdown bulleted list then give the use cases each a name and a short description.

<comment><AUTHOR> Old habits die hard :) I always start a new project with actors and use cases, but without any diagrams.

</comment></comment><comment><USER77> No, and yes. I, and my last few places I worked all use sequence diagrams, especially when dealing with a new feature with a microservices based architecture (private and gov clients). But very basic usage. I do spend a lot of time tinkering with diagrams in [http://www.websequencediagrams.com](http://www.websequencediagrams.com) both for work and hobby projects.

</comment><comment><USER78> I use sequence and communication diagrams, but I find the other diagramming techniques less applicable to the type of work I do. In the systems I work with most problems arise from transitions between states and from communication issues between isolated units. I find that static models just end up having to change rapidly throughout the implementation, so I focus on creating APIs and tests instead.

</comment><comment><USER79> In recent times, about on the same level as ERDs for databases. So mostly as a quick top-level sketch when designing something (mostly on paper), not really kept up to date when the code/model changes. Goes along with getting away from rigid class models in general, and for UI classes, the relationships are a bit more self-evident.

I do miss Booch's fluffy clouds a bit, though.

<comment><USER32> Even Grady Booch thinks that UML is not so useful.

</comment></comment><comment><USER80> UML (as ERD) is used by the official IT certification in Japan. So yes, some of us still have to learn it.

cf. [https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2...](https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2016h28_1/2016h28h_db_am2_qs.pdf)

</comment><comment><USER81> The only concept of UML I use is the N-many relationships, adding a number or asterisk to the edges between things.

</comment><comment><USER82> Yes - mainly for communicating with other teams. Its not the full spec, but a sub section, so that others (mainly the security architecture review) can understand the basic parts of the system.

I tried to keep it up to date for the public docs, but that can be an uphill battle.

</comment><comment><USER83> I don't use UML, nor its predecessors going back to the early 1980's. I draw little pictures to ensure I understand what my code is/will do but that's it. Formal diagrams are as useful as formal documentation written wearing a formal suit.

</comment><comment><USER84> If I must use UML, I prefer using Yuml ([http://yuml.me](http://yuml.me)) to generate them.

Easy to use, allows you to "code" the UML structure in a simple template language, and the output looks rather nice.

</comment><comment><USER85> Sometimes, in google drawings to talk about code or systems architecture in the abstract

<comment><AUTHOR> Is it general coders talk or project-related? Do you use it to communicate with clients?

</comment></comment><comment><USER86> Sometimes I like to use class diagrams for my models and sequence diagrams for API calls. State diagrams.

But just for higher concept sketching and most definitely not for generating code. I tried that, 12 years ago with Rational Rose. Boy did it suck.

</comment><comment><USER87> Yes, used the UML class diagrams, sequence diagrams and Statechart diagrams for an embedded device software.

It's just a tool for modelling. You can pick and choose the diagrams you need, and at the abstraction level you desire.

<comment><USER19> which uml tool you use? tried umbrello and argouml but not very impressed.

<comment><USER87> We used Enterprise Architect.

</comment></comment></comment><comment><USER88> Usually I diagram the very high level architecture of the program. Anything lower is to volatile and wouldn't reflect the design due to code changing all the time.

</comment><comment><USER89> In the last 16 years (i've worked at over 10 companies) i've only had one company use UML and it was only for an overview of the proposed architecture.

<comment><USER69> And is there a better tool for displaying "an overview of the proposed architecture"?

</comment></comment><comment><USER90> never did. whats the point?

<comment><USER91> Communication. You get a shared language between people in hopes that when you draw a box it could mean the same thing to people in different orgs and cultures. Can't really design anything large without communication.

</comment></comment><comment><USER17> ERD's and Sequence Diagrams are helpful on occasion, that's it though. And those can be done in any drawing tool.

</comment><comment><USER92> No, nor have I seen any diagrams or had it mentioned to me by any other programmer for at least 5 years.

</comment><comment><USER93> plantuml is nice. ;)

<comment><USER94> It is, but mainly for sequence diagrams, flow charts and state diagrams. I think OP is asking more about object/class diagrams which I've never seen much value in.

<comment><USER69> There's no evidence to think that at all. He's talking about diagramming for helpinator, which could very well include sequence diagrams, flow charts and state diagrams.

Biased a little?

</comment></comment></comment><comment><USER95> No, I have always hated it. I rather be flipping burgers at McDonalds than use UML.

</comment><comment><USER96> I like to draw UML every so often.

Question to HN: What tools do you guys use to draw UML diagrams?

<comment> yoz-y planUML changed my view on UML. The basic application is extremely ugly and the output is far from being good looking, but writing UML in plain text is extremely refreshing.

<comment><USER69> You mean PlantUML?

<comment> yoz-y Oh, yes indeed!

</comment></comment></comment></comment><comment><USER97> UML seemed to be tailored for java. I stopped using it when i stopped using java

</comment><comment><USER98> requirements in any real life scenario change every day, useless

<comment><AUTHOR> I guess that is the reason why UML failed. Documentation updates took more time than coding.

</comment></comment><comment><USER99> never have, never will.

</comment><comment><USER100> I use it in interviews. That is about it.

<comment><USER101> Aye those rites of passage

</comment></comment><comment><USER102> No. Not worth it.

</comment><comment><USER103> It's just big corporations bullshit to fill meetings time.

</comment><comment><USER104> Probably it is not. I think I'm late enough that I missed the UML wave, and I also did well enough on the AP CS test that I tested out of the CS 101 Java course in college, and got thrown into the Haskell one instead, so I was never forced to do UML.

Once in a while I'll fire up Visio and sketch out a state machine or sequence diagram, but all I'm really doing is throwing down some bubbles or rectangles, drawing some arrows between them, and tacking on some labels. It's nowhere near as formalized as UML, but it works well enough.</comment>


AWS Route 53 DNS Service Does Not Support DNSSEC - <AUTHOR> Q. Does Amazon Route 53 support DNSSEC?
Amazon Route 53 does not support DNSSEC for DNS at this time.
FAQ Here: https://aws.amazon.com/route53/faqs/
Can AWS still be used for services with stronger security needs or folks who want to support a secure web? <comment><USER2> How strange, you might say. What other big tech companies have failed to implement this important standard?

Has Google, for GOOGLE.COM? No.

Apple? No.

Microsoft? Negatory, good buddy.

Oracle? Norp.

Netflix? Nopers.

Facebook? Nah.

Twitter? Nein!

Cisco? Nyet.

IBM? Nervenvarn!

Salesforce.com? Nay.

Stripe? Absolutely not.

Braintree? Perish the thought.

What about Github? What about no!

Bank of America? Bank of no DNSSEC.

Citigroup? Bullfinch! †

Surely Schwab. But, alas, no.

Goldman Sachs? Not on your life.

JPMC? Nah.

Aha, NASDAQ! No way.

DNSSEC is moribund. It's a failed standard with no support, and its position _worsens_ with each passing month (it's taking hits from DoH, from RDAP, from CT, from MTA-STS, from multi-perspective lookup, and also from serious security operators not trusting the DNS to begin with). Not implementing this pointless IETF boondoggle is one of the more forward-thinking decisions AWS has made.

† _(A website assures me that this is in fact a synonym for "nope")._

</comment><comment><USER3> There are serious questions as to whether DNSSEC is worth pursuing at this time. Large banks haven't rolled it out. Tax authorities generally haven't either. I think the post begs the question...

</comment><comment><USER4> (Unrelated)

Is there a way to access whois records for Route53? I cannot for the life of me find a way to query their domain records. If I lookup a domain registered through Route53 using another whois lookup tool, it will point me to `registrar.amazon.com` which just redirects to the Route53 landing page. I have crawled through their entire sitemap looking for a search tool but have yet to find one.

Anyone have any info on whois records with Route53? Thanks.

</comment><comment><USER5> GCP is the only service that I know of that supports this.

That being said, AWS does allow you to put your name servers somewhere else, say GCP, and then do DNSSEC there.

Really the main security concern with AWS is no browser in the terminal. This feature, which both GCP and Azure have, really eliminates the ssh-key litter.

</comment><comment><AUTHOR> Yep - also looks bad for DoS amplification.

What's the better solution ?

</comment><comment><USER6> Q: Why would they?</comment>


Ask HN: Is there a good startup alternative to Infusionsoft? - <AUTHOR>

<comment><USER2> I don't know what your goals are by maybe:

<http://www.sugarcrm.com/></comment>


Ask HN: What are good non-programming jobs for someone with a statistics degree? - <AUTHOR> My wife recently graduated with a mathematics degree, majoring in both actuarial sciences and statistics. She doesn't want to be an actuary, and she isn't too fond of programming (even using R). A data scientist role is clearly a bad fit, as it usually involves a lot of programming.
Additionally, being a recent grad, being able to work with others who are doing the same thing as her would be best. She would like to learn from others who are more experienced, as opposed to being the only one in the company in her role.
What are good jobs, job titles, or industries that value a statistics degree but don't require a lot of programming? <comment><USER2> I think these are drying up.

There is a lot of beautiful math involved with probability (ex. generating functions) but computational methods mean that the large toolbox of parametric methods can often be bypassed. Even if I am computing a closed form result for something I am very likely to do a Monte Carlo simulation to check my work.

One answer is that working on a team she can contribute stats skills where other people contribute in other ways. I run into so many teams who are developing a rather typical "bizap" or "social" product who want to do something "intelligent" with data and have a lot of programmers but don't have any idea of how to do the kind of charts and graphs that a scientist trainee would be doing as a first-year graduate, if not undergraduate.</comment>


Flash Video Performance: Solving Different Problems - <AUTHOR> http://blogs.adobe.com/penguin.swf/2010/01/solving_different_problems.html

<comment><USER2> _"But at least with HTML5 video tag data, I can download the video and play it offline using a dedicated player."

Try to keep up here. That's not the problem that Flash Player is chartered to solve (same goes for HTML5 video). I know you're smart enough to download videos and watch them offline, but try to think on a macro level._

Not the most useful tone to take when trying to explain your technology and win people over...

<comment><AUTHOR> Given the scorn heaped upon him from us internet assholes, I think it's appropriate for him to reply with some gentle snark. We'd think worse of him if he didn't -- he'd sound like a suit.

</comment></comment><comment><USER3> _"But minority browsers don't use as much CPU while playing HTML5 video tag data."

Are you sure about that?_

Yes.

I just tried it again to be doubly sure. In Chrome the YouTube HTML 5 demo uses 2/3 of the CPU used by the Flash-based version. In Firefox playing the demo ogg files at: <http://people.xiph.org/~greg/video/ytcompare/comparison.html> uses about half the CPU than playing the video with Flash in YouTube. This is all in Linux.

<comment><AUTHOR> Sure, playing Theora from <video> takes about half the CPU that the Linux Flash plugin playing h264 does. His point is that they both have to do similar YUV-RGB and rich compositing bullshit within the rendering runtime -- and they're within the same order of magnitude of performance.

mplayer takes a 1/20th the CPU cycles on the same normal desktop machine without even using hardware decoding optimizations. I wouldn't be surprised if its CPU usage was nearly optimal for the amount of data copying that needs to take place.

<comment><USER3> On my machine playing the same videos in mplayer or vlc is very close to the CPU used playing in the browser using the video tag.

I did read the article, which continued from the bit I quoted as:

 _As of this writing, browsers that support the video tag are likely to use a tremendous amount of CPU in order to play video. Why? It's likely because they have to deal with the exact same performance penalties that Flash does; specifically, that YUV video data needs to be transformed into RGB data to be plopped in the browser window._

The implication was that the video tag will be just as bad as Flash, which just isn't my experience.</comment></comment></comment>


Trump's Legal Fantasy Land - <AUTHOR> https://cafe.com/note-from-elie-legal-fantasy-land/ <comment><USER2> Clearly we'd be much worse off if we had a more authoritarian leader who controlled the judicial branch (through appointing all the judges) and legislative and had not limits on his behavior. Is there anyone in the world who disagrees?</comment>


C++11: a visual summary of the additions and changes since C++03 - <AUTHOR> http://www.cpprocks.com/c11-a-visual-summary-of-changes/?goback=%2Egde_86998_member_124675384

<comment><AUTHOR> I just found this site and there's a ton of great info about C++11 that I wanted to share, but the visual summary seemed the most impressive.

This C++11 regex cheatsheet is also very useful: [http://www.cpprocks.com/wp- content/uploads/c++11-regex-cheat...](http://www.cpprocks.com/wp- content/uploads/c++11-regex-cheatsheet.pdf)</comment>


Labels - <AUTHOR> http://www.paulgraham.com/labels.html

<comment><USER2> Surprised by the downvote. I meant "irrational" is an example of a word that is used to suppress new ideas. I suspect the voter did not read the article.

</comment><comment><USER2> Irrational</comment>