How I made a website with Svelte - <AUTHOR> https://johanronsse.be/2019/12/28/making-of-best-of-2019/ <comment><USER2> > What I like about these foundries is that they have permissive licenses that > are just a one-time purchase. When I make a website I don't want to worry > about the font licensing for years.

I love the work of professional typographers, but tend to stay away from commercial Web fonts, because they like to include _very restrictive terms_ in the font licences.

For example, you're only allowed to back up Klim fonts once, which we all know is no backup at all ([https://klim.co.nz/licences/web- fonts/](https://klim.co.nz/licences/web-fonts/)):

> You may make one (1) copy of the Web Fonts for back-up purposes only.

And I hope you don't take a week-long holiday away from your computer:

> At Klim's request, You agree to provide an audit to confirm the Web Fonts > You are consuming match Your Sales Receipt. Klim will give You at least 5 > business days' notice to complete the audit.

The Commercial licence is a bit better, but doesn't let you subset the fonts, which means your fonts might be 5 to 10 times as big as they should be, giving your users a worse experience ([https://commercialtype.com/licenses/web](https://commercialtype.com/licenses/web)):

> 10\. You may not modify, adapt, translate, reverse engineer, decompile, > disassemble, or alter, the Webfonts, the Font Software or the designs > embodied therein.

I recommend using fonts under the SIL Open Font License, where you don't have to worry about this crap.

Anyway, nice work! I've been meaning to learn Svelte, and your site looks really good.

<comment><USER3> I really appreciate the amount of work that goes into making a font. On one hand, these typographers and their foundries are _starving_ for revenue and on the other hand they make the customer's professional life incredibly difficult with the retrictions that you mention.

Most small foundries have been bought out by Monotype and their licensing is now 100% subscription only. I was lucky to have purchased Univers and a couple of other fonts under their "Creative" license which bundled everything under a reasonable price.

Font foundries - listen up, if you want people to pay for your fonts, make the licensing model straight up simple - download fonts and off you go. Turns out that most people that are willing to pay for your font arent the ones trying to pirate them. Stop fucking them over.

<comment><USER4> There have been a few fonts I was interested in until I saw the several- hundred dollar bill and the license that basically restricted any useful application of the font. No wonder why startups commission their own fonts these days, so they can own them.

Typography and calligraphy is an art form so it does justify the expense, but you've got to be able to actually use it.

</comment></comment></comment><comment><USER5> [https://svelte.dev/](https://svelte.dev/)

> Svelte is a radical new approach to building user interfaces. Whereas > traditional frameworks like React and Vue do the bulk of their work in the > browser, Svelte shifts that work into a compile step that happens when you > build your app.

> Instead of using techniques like virtual DOM diffing, Svelte writes code > that surgically updates the DOM when the state of your app changes.

That sounds like a perfect pitch for Angular. What's the difference between Svelte and Angular?

<comment><AUTHOR> The difference is that Svelte is pre-compiled while Angular will put templates through the renderer while building up the page.

<comment><USER6> Angular has been pre-compiled for years. The AOT compiler has been available since Angular 2, released in 2015. It has also been able to produce stand- alone native web-components since 2018, btw.

It's only recently that it started producing multiple packages simultaneously, however (to serve up a package optimized for the client's web platform).

<comment><USER7> Most modern frameworks can be AOT compiled in that sense - React, Vue, Riot - they load JS code only at runtime, but still use templates (VDOM, strings or another representation) as blueprints to update/manipulate the DOM. AFAIK Angular still uses dirty checking; Angular Ivy, yet to be released, will move to something a little closer (incremental-dom), but still not the same.

What Svelte does is precompile the UI update code[1], changing text nodes, attributes, children, targeting DOM nodes directly. Think Prepack[2] vs DOM diffing.

[1] [https://svelte.dev/repl/hello- world?version=3.16.7](https://svelte.dev/repl/hello-world?version=3.16.7)

[2] [https://prepack.io/](https://prepack.io/)

<comment><USER5> > Think Prepack

Angular compiler is certainly an optimizing compiler.

> Angular Ivy, yet to be released

Ivy became an opt-in feature of the Angular CLI earlier this year with Angular v8.

> AFAIK Angular still uses dirty checking

Ivy uses "dirty checking" too [1]. AFAIK Ivy and pre-Ivy operate on similar fundamental principals, which is why Ivy is a drop-in replacement.

[1] [https://indepth.dev/what-every-front-end-developer-should- kn...](https://indepth.dev/what-every-front-end-developer-should-know-about- change-detection-in-angular-and-react/)

</comment></comment></comment></comment></comment><comment><AUTHOR> Every year I make an end of year project where I try some new technology. This year I made my project with Svelte. It's a list of the best albums, films, series etc. according to me.

<comment><USER8> Nice write-up.

I followed the link to the css framework you used/developed, Ygdir, and I am not sure I understand it. Is the website a work in progress? Feel like it needs to explain with more details and examples what you mean by "convention- first". I agree what you said about utility first css but I'm not sure what makes Ygdir better

[https://ygdir.dev/](https://ygdir.dev/)

<comment><USER9> Wolfr_- Just read over ygdir and wondering: We've had such phenomenal success with [https://styled-system.com/](https://styled-system.com/) across our team that I'm wondering if your adversity to utility-first CSS might be due to misuse in some way? Utility first is largely to build primitive abstractions that expose narrow constrains for developers building UI. It's the opposite of complexity due to the fact that it reduces options. _But_ if the utils are incorrectly spread all across your codebase and not constrained to primitives then indeed it could be a mess.

<comment><USER10> I'm not Wolfr_, and I haven't used that React-based library you link, but I have seen tailwindcss.com -- which, as far as I've heard, is one of the flagship "utility-first" CSS libraries -- used in medium-to-large scale projects.

The problems I've seen with Tailwind in these projects are:

\- Elements end up with messy, non-semantic class name strings like "m-4 mt-0 p-3 rounded bg-blue". This makes it much harder for non-technical teams to use out-of-the-box SaaS solutions for things like interaction tracking and A/B testing. (These apps often use element class names under the hood, so if you use Tailwind and change a CTA from rounded to very-rounded, the marketing guy will discover two weeks later that all his click-through metrics are wrong.)

\- References to the utility classes wind up scattered in thousands of unrelated places in the codebase, making refactoring and changes to the CSS impossible. Like, if you ever wanted to remove the p-3 class (or change how much padding it represented), it would be almost impossible: you'd have to individually find and test/change all 9000 use sites, a task which is made even more difficult when developers write things like class={`p-${first ? 4 : 3}`}. At least one website I know is stuck on Tailwind 0.x pretty much indefinitely for this reason.

\- Whenever you add a new color or padding amount or anything, you pay the full cost of generating all the variations (p-7, pt-7, bigscreen:pt-7, etc) up front in a CSS file that needs to be loaded before anything on the page can be rendered. (Sure, Tailwind might not generate 50K of variants when you add a padding value out-of-the-box, but once you've set those options it's impossible to un-set them because of the above point.)

This eventually leads to a codebase where no one wants to add, remove, or change CSS classes for fear of breaking something unrelated or destroying performance. In other words, it makes your CSS impossible to maintain.

<comment><USER11> > \- Elements end up with messy, non-semantic class name strings like "m-4 > mt-0 p-3 rounded bg-blue". This makes it much harder for non-technical teams > to use out-of-the-box SaaS solutions for things like interaction tracking > and A/B testing. (These apps often use element class names under the hood, > so if you use Tailwind and change a CTA from rounded to very-rounded, the > marketing guy will discover two weeks later that all his click-through > metrics are wrong.)

IMO the problem here is tools trying to use CSS for something it's not designed for. They advertise themselves as not requiring technical knowledge to use, but they're selling a lie. Unless the marketing guy understands the structure of the site and the CSS there's no way for him to be sure he's tracking the thing he thinks he's tracking - unless you're instrumenting the CSS to help him out, and are committed to not doing anything that would break one of his selectors (or change its meaning, or reuse it for something else - and are you sure you know all the selectors he's using, and that the automatic selectors the tool is creating are actually doing what he intends?).

Data attributes are probably the solution here, then CSS can be reserved for its intended use: controlling styles. But then the tooling needs a way to target those attributes automatically, otherwise you've "broken" the "no technical knowledge required" sell of the software they already licensed (without asking you for input...)

</comment></comment></comment></comment></comment><comment><USER12> I'm afraid I honestly don't understand. What was the reason for using a bunch of frameworks and JavaScript for what appears to be a super simple web site? I don't see anything that couldn't have been done in plain static HTML and CSS.

Is there some functionality on the pages that I'm missing?

<comment><USER13> How else do you explore frameworks? Do you wait until you have some massive project with financial and time constraints and then test it out on that?

This sort of site is a perfect testbed for such a framework.

<comment><USER14> No, you make a small web app. It doesn't have to be a big project, but it should be something that benefits from what the framework can deliver. This doesn't.

If you're "exploring game engines" making a resume with one is probably not what you should reach for and if you're "exploring DAWs" your testbed shouldn't be generating a pure sine wave.

This sort of site is the opposite of a perfect testbed for a framework. This sort of site doesn't need JS, it doesn't need a framework, it barely needs CSS.

<comment><USER15> Please stop, people can build whatever they want how ever they wish, especially when it's not planned to be super public. They wish to build it in svelte, that's all the reasoning you need.

I've also literally seen someone use a game engine to build a resume on here, it was super cool and attracted a lot of interest

<comment><USER16> No one said people weren't allowed to build something with Svelte or whatever, just that they didn't think it was a good way to explore it, and backed that up with reasoning. Additionally, if there were other reasons for doing it, those would be interesting to hear.

I wouldn't get too worked up about this: discussions about which jobs a tool lends itself well to can be very insightful.

<comment><USER15> It's more that this exact conversation happens on just about every post someone makes using some tech. Someone comes in and claims it's wrong and they should have done x. Was this the best use case for Svelte/any javascript framework? Probably not, but who knows what the OP has planned for the site further, maybe it will be beneficial to have a javascript framework in place.

<comment><USER16> I guess, and I recognise the frustration, but if they argue _why_ someone has done x, or OP comes in and describes what else they have planned and why Svelte or whatever _was_ a good fit, then that would still be interesting to me.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Svelte looks interesting, however I must say that when I saw stuff like `{#if value} <tag> stuff </tag> {/if}` it really was a turn off for me. One thing I really like about React is the lack of template logic like that. This was something I never cared for in Angular 1 either. I am sure that there are many advantages to it...its just never really resonated with me. Can anyone point to material that could help me understand the value?

<comment><USER18> It normalizes the way templates are coded and forces people to put minimal logic in their rendering.

In react, there are as many ways to do the same things as there are coders. And of course, some don't follow best practices and will put logic code in it.

Personnally I also find it easier to picture the resulting DOM structure because the stylee is forced to be declarative. Too often in react I have to look around a tag to know whats hapening, or I have to follow some nested map/filter/ternary chaining.

Very good react coders will not do that. They will use a lot of tooling and abstract formatting a lot. But they are few.

<comment><USER17> I'm not sure how it forces less logic in the render. Looking at the Svelte docs you can do this:

``` {#if invokeFunction()} <p>This function returned a truthy value!</p> {/if} ```

And with React do this:

``` { invokeFunction() && <p>This function returned a truthy value</p> } ```

and the result would be the same, a conditionally rendered string. I totally agree in the normalizing/formalizing how templates are build and the more verbose syntax in the Svelete example does make it super obvious. The in-line React example is obvious to me...but maybe that's because I've been writing js for so long.

Where I feel the cognitive overhead pain in looping. Svelete's docs say:

``` {#each collection as { vars }, i} <p key={i}> {vars} </p> {#/each}

```

For some reason, when I see this it rubs me the wrong way. I understand it...but my instinct is to just map over the collection like I would in a plain-old Node.js project.

``` { collection.map((vars, i) => <p key={i}> {vars} </p> } ```

I guess that saving a handful of keystrokes in exchange for super clearly expressing the intent may be a good tradeoff, even if my inclination is towards more terse code.

<comment><USER18> In Vue it would be:

          {{ vars }}

Instead of:

        { collection.map((vars, i) =>
 {vars}
 }

It's easier for me to picture what the first example is going to render because it makes the markup the hero, with code inside, while the second example is making JS the hero, with markup inside.

But this example is not even touching the topic. A render function is rarely that simple. Now if you do maps, and filters, and ternary operators, and && / || pass trougth, and set several class conditionally, and pass an event and do preventDefault, etc., now you have a more real life example. And in react you'll get __a lot__ of JS, with very little markup. And you'll have either a lot of boilerplate, or a lot of dependencies to get helpers.

While in Vue you'll get mostly markup, with a little code inside. It will read from top to bottom as well. No needs to wrap stuff in arrow functions to get the event object. PreventDefault has a helper. Setting classes as well. I prefer that.

<comment><USER19> Vue's templates are great until they aren't, and then you wish you were using JSX.

The IDE tooling is worlds better with JSX as well. Vetur has.. had a rough year.

<comment><USER18> I don't have to debug my render functions much in vue because they contains little logic. Debugging is more common in JSX, it's better at solving a problem it introduces.

</comment></comment></comment></comment></comment></comment><comment><USER20> It was a pleasure reading your article, I hope I can use it as reference for my future svelte project.

And I must say that Svelte also caught my eye this year. I gave it a shot in their playground, and I was surprised how intuitive things are. Svelte as a compiler seems very natural an approach to building frontend apps and independent components.

My next project will be Svelte on the frontend (SPA), and Elixir+Phoenix+Absinthe on the backend. I personally think this will be a killer stack for 2020

<comment><USER21> Any particular resources you'd recommend for Elixir/Phoenix? Doing their basic intro guides right now and liking them, but would love anything you did after those that you liked.

<comment><USER20> I recommend the official book written by Chris Mccord for Phoenix. For Elixir, I really enjoyed doing the assignments on Exercism. I also enjoy reading the elixir forum, and the slack community has helped me with a couple roadblocks in the past. But really, I think the best way is to just pick a project idea, and start working on it. It works best for me learn while doing. I hope you enjoy Elixir too!

</comment></comment></comment><comment><USER22> I dig the simplicity, but why didn't you use Sapper?

[https://sapper.svelte.dev/](https://sapper.svelte.dev/)

(Next.js/Nuxt pendant based on Svelte, can also be used as static site generator).

<comment><AUTHOR> I used Sapper before, I quite like it.

But now I wanted to explore how one would build something like Sapper, this is why I went for base Svelte and then added a router. I now have pretty much what I used Sapper for and the setup is simpler.

Also, Sapper doesn't seem to be in active development.

<comment><USER22> Fair enough. I'm dabbling with Svelte/Sapper myself but I'm not at a point where I could roll my own with SSR and all that. Still trying out different ways to build components, gravitating towards having a fat global.css file and keeping the components themselves as thin as possible.

>Also, Sapper doesn't seem to be in active development.

For three months or so, but I wouldn't worry about that, because just a thin layer on top of Svelte, and the maintainer is very active in the Svelte repo it seems. It may only get bumps if something breaks.

</comment></comment></comment><comment><USER23> Some nice musical choices in the top music. Big Thief produced two amazing albums in 2019. Glad to see Balthazar mentioned. They don't get nearly enough love, especially in the US. Also, to note, the ratio of quality musical bands to population in Belgium is second to none in my opinion. One of my favorite bands is Intergalactic Lovers. One of the best female lead singers around..

<comment><AUTHOR> Thank you :)

</comment></comment><comment><USER19> I need to read more into svelte but I often find myself bogged down the contrived surgical DOM update examples.

Well.. With redux or Mobx you are largely updating existing DOM attributes in both Vue and React. The overhead in changing existing attributes on components is fairly minimal, and it's certainly not where the bulk of the performance issues in these systems are. It's also not where the value is.

The real value in Vue and React is reconciling data _graphs_ with the DOM _graph_. Unfortunately the need to reconcile the full graph, or even parts of the graph, is where a lot of the performance hit comes from. Particularly with lists; hence virtual scrollers. With the advent of proxies though, I would suspect both Vue and React could be retooled a bit to be more clever about how the DOM graph gets updated in response to changes in lists and other data graphs. More "surgical" so to speak.

Am I missing something or could the bulk of the performance gap be made up without needing to ditch React and Vue(throwing the baby out with the bath water so to speak)?

</comment><comment><USER24> I've been using Vue for a while because it's possible to get things up and running, even .Vue templates, without having to use npm tool chains. Just linking the Vue and other source files.

But, I really like the speed and user experience here. I may actually give it a try.

<comment><USER7> Svelte has very few dependencies, and zero of them at runtime. Hot reload is instant. A real breath of fresh air when coming from other frameworks.

<comment><USER24> I've been trying it throughout the day and so far I find the way of doing things better than Vue. I'll see if I can sort a binding issue that was causing me a bit of complexity in Vue. So far, it looks like it would make solving that trivial.

</comment></comment></comment><comment><USER13> Loads quickly. Looks good. Nice and simple UI. Well done! If you're looking for the next challenge, consider making it render server-side.

<comment><AUTHOR> I am still 100% confused as to how it would work it I would "enable SSR" (which Sapper would allow you to do). Would the end result be a static site then? Something to explore next year (also see the comment below about it not working at all without JS)

</comment></comment><comment><USER25> How well would your setup handle larger amounts of data (say 10x, 100x, 1000x)? Would Svelte be able to handle it? What would you have to change in your design? At what point would you have to replace the entire architecture?

<comment><AUTHOR> Here's a fun demo to look at: [https://twitter.com/rich_harris/status/1200807516529147904](https://twitter.com/rich_harris/status/1200807516529147904)

</comment></comment><comment><USER26> Not sure if this is a problem with the website or routify but clicking on the routify link in iOS Safari makes the browser back button unusable. Nothing happens when clicking on it.

<comment><AUTHOR> Thanks, I am going to investigate this.

</comment></comment><comment><USER27> Tried Svelte and it seemed really concise and fun to work on, however I really miss being able to format on save with Prettier in React.

Is there an auto formatter that makes my code shift around and have one-true- style? This is a most for any long lived project as it avoid all bikeshedding discussions about style. We use Prettier for JS, and mix format for Elixir, at work.

<comment><USER28> There is a plugin for prettier[1] and for eslint[2]. Both work reasonably well. I hear there is good support for VSCode, but I haven't tried.

[1] [https://github.com/UnwrittenFun/prettier-plugin- svelte](https://github.com/UnwrittenFun/prettier-plugin-svelte) [2] [https://github.com/sveltejs/eslint-plugin- svelte3](https://github.com/sveltejs/eslint-plugin-svelte3)

</comment></comment><comment><USER29> Thanks for the write-up! I'm interested in svelte as well and this gives me some inspiration to try it this weekend!

</comment><comment><USER30> Nice writeup.

> _" In 2018 I went content-first, but this year I went design-first. I more > or less created all of the designs first, then implemented them as opposed > to last year."_

For somebody who believes that it's as fast to simply design in css, was this step worth it?

<comment><AUTHOR> For me it's about testing new technology, and I consider Figma's autolayout new technology. I think by doing things in a design app you experiment with other things you wouldn't necessarily do in the browser. For example colors, fonts... compared to the '18 and '17 version I believe this one looks better.

I do have to say I am quite fast with Figma as my day to day work is being a UI designer.

<comment><USER30> Cool, having looked at your design file I can see the benefit of having everything laid out - allows you to easily explore different ideas.

Figma seems like a tool worth learning, will have to dig in some more.

</comment></comment></comment><comment><USER31> Does svelte have any traction recently? Any big names using it?

<comment><AUTHOR> It did well in the State of JS, but there are no big names using it. I think it will have grow in popularity in 2020. The community is still relatively small.

<comment><USER32> The list of "who is" is most certainly growing, and there are definitely some bigger names out there: [https://github.com/sveltejs/svelte/blob/master/site/src/rout...](https://github.com/sveltejs/svelte/blob/master/site/src/routes/_components/WhosUsingSvelte.svelte)

Jobs listings are cropping up in sundry places too. See for example: [https://sveltejobs.dev/jobs/apple-senior-front-end- developer](https://sveltejobs.dev/jobs/apple-senior-front-end-developer)

</comment></comment></comment><comment><USER33> Excellent site, thanks for sharing.

</comment><comment><USER34> _cough_ Elm _/ cough_

</comment><comment><USER25> Title makes it seem as if the website received an award.

<comment><AUTHOR> Not intentional!

</comment></comment><comment><USER14> [https://bestof2019.johanronsse.be](https://bestof2019.johanronsse.be) just shows an empty page.

(oh how far we've come - a simple best of list requires javascript)

<comment><USER35> Thanks for the quick link. Complaining about a web page not working with js disabled is just noise, especially on a 'made with {framework}' post.

<comment> _-___________-_ I tend to agree; however, it's _really easy_ to make a site like this work without JS.

Edited to add: to be clear, I mean _while still using the framework_.

<comment><USER36> Is it? You either you need some kind of server side JavaScript rendering (pita to get right imo) or you need to create a complete copy of the website that's statically rendered (and replaced if the user has JS enabled?)

<comment> _-___________-_ Have a look at Sapper, which is a framework built around Svelte that makes the server-side rendering pretty easy. I worked with a next.js SSR project recently and that was an absolute trainwreck, but Svelte/Sapper, while not perfect, is pretty nice.

You have to be a little careful about the interactions if you really care about it working with no JS (e.g. have an on:submit for a form and then also have a server-side route that it can POST to) but it's not too bad really.</comment></comment></comment></comment></comment>


Nobody cares - a fundamental principle for startup socialites - <AUTHOR> http://30sleeps.com/blog/2009/08/03/overcoming-loneliness/

<comment><USER2> _80% of businesses fail_

Wasn't there an article on HN a couple months back showing this to be a myth?

<comment><USER3> The stat is meaningless anyway without some sort of timeframe.

<comment><USER4> I mean, technically it has meaning even without a restricted time frame. Some nonzero percentage of all businesses ever started have never failed.

That being said, it's nothing like 20% so clearly there is an implicit time frame.

<comment><USER5> No known business has lasted longer than 1,428 years:

[http://www.dailynugget.com/2007/04/worlds-oldest-business- cl...](http://www.dailynugget.com/2007/04/worlds-oldest-business-closes-shop/)

Some nonzero percentage of all businesses ever started have not failed _yet_.

Although if I guess what the parent comment is thinking of correctly, there was a piece on HN fairly recently about how businesses that were doing well but closed were counted as 'failures'. E.g. the owner retired and closed, the owner got ill and closed, the owner sold up and the business was merged into another before it was running for 5 years, etc.

</comment></comment></comment></comment><comment><USER4> I was going to read your article, but the picture of a blowup doll makes it hard to do so during work.

<comment><USER6> You can always use <http://lab.arc90.com/experiments/readability/>

<comment><USER7> Great: now the blowup doll is left-justified.</comment></comment></comment>


Bitcoin War: The First Real Threat to Bitcoin? - <AUTHOR> https://www.privateinternetaccess.com/blog/2012/03/bitcoin-war-the-first-real-threat-to-bitcoin/

<comment><USER2> This article is silly and wrong.

Probably those blocks are mined by a new mining pool, one that someone hasn't implemented transaction handling into.

There is a free market for transaction fees built into Bitcoin, and any miner is free to ignore transactions as they will, it's always been that way. It's not an 'attack', it's just an economic system built in.

Miners will almost certainly demand more bitcoin for their work in the future than they do now; the way I think of it, the network itself is pre-emptively fronting a baseline transaction value to miners right now. Eventually that will be phased out, and people who wish to transact will pay the burden of getting their transactions secured. C'est la vie.

Until then, move along, the article does not, in any way, detail a 'real threat' to bitcoin.

It is annoying (in that it slows transaction acceptance and validation) that someone doesn't wish to mine transactions, but if it ever became a large threat, clients could adjust to ignore blocks from known bad-behavior miners, bringing them into line. Or, I suppose, miners could value same-height blocks with more transaction fees in them. I'm not sure if this would impact other attack vectors, though.

</comment><comment><USER3> And there was me thinking that the first real threat to bitcoin was already back when everybody lost interest.

<comment><USER4> For certain definitions of 'everybody'. ;)

Relevant:

<https://en.wikipedia.org/wiki/Hype_cycle>

<https://en.wikipedia.org/wiki/Technology_adoption_lifecycle>

</comment></comment><comment><USER5> 220.127.116.11 is in Berlin and belongs to a german hosting company, Strato Rechenzentrum, Berlin. The website <http://www.jas-transport.com/> is hosted there. It's a trucking company, so guessing the server might be hacked.

<comment><USER6> I'm not sure if you're aware of the scale of computing that would require. A lone server contributing 15% of the network would have to have the equivalent power of about 6,000 high-end GPUs.

<comment><USER7> This server is just the connection to the bitcoin network, not the calculation point.

</comment></comment></comment><comment><USER8> I felt like I knew a little about Bitcoin, but I fail to grasp whatever this article is saying. Can anyone translate the "empty blocks" and 15 vs. 51% part and its implications? Also, wouldn't 15% of the network computing power require more than a simple webserver? Thanks.

<comment><USER9> This is my rough understanding:

As you're aware, Bitcoin uses certain cryptographic guarantees in order to publish a public and immutable "block chain", which is essentially a public list of all Bitcoin transactions since the beginning of time.

Each block in the block chain is essentially a list of transactions which occurred between the time frame "after the previous block was discovered, but before this block was discovered".

(A block is 'discovered' by searching the hash space brute-force, searching for a valid code.)

When a new transaction is initiated, it is an interesting situation because it needs to be done in a way where neither party can somehow cheat the system. I believe this is accomplished by sending the transaction to many Bitcoin peers simultaneously. When, say, 5 or more peers have "acknowledged" this transaction, then you can be fairly confident (>99.9%) that your transaction will be encoded into the next block in the block chain.

The only reason this works is because it's assumed that each peer in the Bitcoin network is following the protocol in an unbiased way. E.g. it's assumed that peers aren't "going out of their way to do shady things". What kind of things? One example: acknowledge a transaction, but then discard/ignore that transaction, thereby attempting to trick you into thinking your transaction was processed when it wasn't.

Right now it doesn't matter if only a few people are doing shady things. This is because the majority of people are known to not be cheaters. Therefore, by the law of large numbers, you can assume that by waiting for N acknowledgements then you can become exponentially more confident that your transaction will be encoded into the public block chain, rather than maliciously ignored. _The only reason this works_ is because less than 50% of the Bitcoin peers are attempting to cheat. If more than 50% were cheaters, then you'd have no way to "verify that your transaction _will definitely_ make it into the public block chain". Thus, the system would cease to be useful.

Now, notice I'm talking in terms of "more than 50% _of peers_ ", but the article is talking about "more than 50% of _processing power_ ". I _think_ the argument for "why 50% of the computation power needs to be non-malicious" is the same or very similar to my argument which I presented above. But I'm not positive on that.

(Essentially, if you control more than 50% of your "new block-finding capability", then you would have control over which transactions will/will not make it into the public block chain. Thus, we would lose our cryptographic guarantee that "if my transaction was acknowledged by at least N peers, then it will definitely be entered into the public block chain un-tampered.")

<comment><USER10> Also, the computing power is computed from the percentage of successful transaction blocks. Noone knows how much computers you had or anything, they just saw that 15% of the blocks were confirmed by the same PC.

The confirmation task can be easily paralelised - therefore, what is usually done is creating a whole pool of computers that together work on the transaction confirmation task, then the main computer announces the confirmation and is remembered in the blockchain. That's what these so-called mining pools do.

You can browse the blockchain by yourself here <http://blockexplorer.com/>

There is always at least 1 transaction in the block with the amount 50 - that's the "new" bitcoins that the person "mined" - those weren't previously in the system, you got them for the confirmation. Someone is cheating the system by creating empty blocks with only this transaction.

<comment><USER9> Whoa, that's bizarre: <http://screencast.com/t/TA5fF8CDf3>

And look at the timestamp on #171618: <http://screencast.com/t/Kzzwiyi9Mz> ... The timestamp reads "21:35:01". But the timestamp of the previous block is "21:35:35". So it's "in the past, by half a minute". What's up with that? I mean, I could understand a timestamp uncertainty of a few seconds when discovering new blocks ... but that's a discrepency of over half a minute. (Maybe this is a totally insignificant observation -- I have no idea. I'm just pointing it out.)

Bigger question: what's up with those "1-transaction blocks"? Could you talk a little bit more about that / why that's an indication that someone is cheating? Also, do you have any idea why they're doing this / what the benefit is?

<comment><USER10> I don't understand that much about it, but I believe that's partly what the original article talks about.

</comment></comment></comment></comment></comment><comment><USER11> Upon opening it up, I am shown the only picture in the article: a computer with a photoshopped on scumbag hat and a caption - Scumbag Bitcoin Miner. While I understand the use of this on Reddit, in an article it seriously makes me question the quality, some sort of diagram explaining what is actually going on would be so much better.

<comment><USER12> I have to agree, and I see it as a trend that's continuing.

[http://www.seomoz.org/blog/how-to-use-memes-to-build-easy- ba...](http://www.seomoz.org/blog/how-to-use-memes-to-build-easy-backlinks- traffic)

<comment><USER10> I am a heavy 4chan user, and this physically hurts to read.

</comment></comment></comment><comment><USER13> An interesting idea. Bitcoin seemed secure at first because it seemed silly to think that an individual user could hold >50% of the total processing power of the network, but now that miners are assembling in mining pools, the risk of a pool achieving >50% of the processing power is much higher.

</comment><comment><USER14> The threat to Bitcoin is it's adoption by nefarious entities-- money laundering, paying for drugs, DDOS extortion, etc. This creates an incentive for the government to step in and disrupt the Bitcoin system.

I would not be surprised to hear that a government project is in place to shut down or otherwise reduce the effectiveness of it.

Bitcoin could have dilluted this problem by really running with the unique strength Bitcoin has: micro-transactions. All of the sudden it was conceivable and somewhat simple to send someone $.05. Instead of focusing on this the Bitcoin community was more interested in creating an anarchic currency that was anonymous and beholden to no-one. I personally like to believe that if they had instead focused on ease of use, wide spread adoption through micro- transactions (tip jars, content that costs less than $0.75, etc) that it would have really gotten a lot more traction with the mainstream.

<comment><USER10> You can use bitcoin for any amount you want. And yet, except for the drug sellers on silkroad, almost no one does.

I, personally, see the biggest disadvantage of bitcoin (1) the price unstability - it jumps up and down like crazy, and (2) the still unclear legality - from the tax endpoint, and the like. And (3) - also its biggest strength - it's as safe as your PC is safe. When someone steals your Microsoft Word documents or your Excel tables, who cares. If someone steals your wallet.dat, you are screwed. Period.

It may seem like a moot point, but both Mt.Gox - the largest exchange of bitcoins - and Slush - second largest miner - has had its servers compromised. And those are the highest end-points. Now think of all the users - the lowest end-points, who have "password" as their PC password. You want THEM to have all their money on their wallet.dat files, on their disks?

Now, drug sellers on silkroad really don't care about the second point, but much of the regular businesses do. On the other hands, the regular users have their lowly secured PCs as the only gateway to their money.

I am not sure if Bitcoin will ever get off, given all these circumstances.

<comment><USER15> 1) with enough widespread adoption this would be smoothed out, after all the value of the dollar against other currencies is not static either.

2) yup, this is a problem, though I believe technically it should be a capital gain in most countries.

3) This is also clearly a problem though not an unsurmountable one. The cool thing about bitcoin is that you don't have to run the wallet locally, but you have the choice of doing so if you want to. With widespread adoption I believe you would see banks who host wallets, this is how your average person would interact with bitcoin. The final piece of the puzzle is bitcoin insurance to guard against a nefarious wallet hoster, we don't have this yet but there is no reason why it can't be done.

</comment></comment></comment><comment><USER16> Bitcoin could be viewed as an elegant system to transfer wealth to botnet owners.

</comment><comment><USER17> Perhaps if the fees were higher, they would want them.

</comment><comment><USER18> Would it be possible to hire a large number of servers just for a short time and take control of the whole chain? Is it just a matter of time before this happens? You could combine various cloud providers' servers and black market zombie machines.

If Bitcoin continues to grow in popularity at a sufficient pace it should be safe, but the minute it becomes cost-effective to attack it, it will fall.

<comment><USER2> So, the network has generally become much more expensive to fail. It currently employs something like 10x the K computer (Top 1 in the Top 500) worth of compute. There are probably a few organizations that could get that compute power together for a while, but you'd have to ask 'why?' and 'for what reason?'

If you want to send a lot of money through Bitcoin transactions, I suggest you estimate expected compute cost of subverting the number of validating transactions you are going to wait to secure it, and using that as a baseline.

E.g. subverting 10 transactions in a row with > 50% likelihood (but doing so without anyone noticing, that is, timed appropriately) would take something like 10x the current compute power for about an hour, = close to a million dollars? hundreds of thousands certainly.

Ergo, wait a day for a $1mm bitcoin transaction to clear, and similarly, don't worry about a $500 transaction at all.

<comment><USER18> Only a million dollars? That means the government can shut down Bitcoin any time it wants.

<comment><USER19> Except that forensics will allow us to identify the fraudulent block chain, and ban all the relate computers. "Shut it down" really just means "force the Bitcoin community to step it up".

<comment><USER20> You can't easily "ban" these things, since it's a decentralised P2P system. The whole point is to prevent _anyone_ (original creators, banks, a government, etc.) from being able to interfer with it. It does mean the system fails like that.

<comment><USER19> Everyone is free to ignore whatever block chains they want to. I can refuse to honor blocks built off what I consider fraudulent block chains.

<comment><USER20> Would you able to trade with people who hadn't ignored those bloc chains?</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Do you miss the points showing next to comments? - <AUTHOR> I still do. It'd be nice to have that back. <comment><USER2> Yes. I do too.</comment>


Can Kimbal Musk Do for Farms What Elon Has for Cars? - <AUTHOR> http://www.takepart.com/article/2016/08/29/indoor-farming-startups <comment><AUTHOR> I've always been skeptical of these indoor grow operations. If you do the math it's always full of fuzzy assumptions on yields, grower prices or sales.

But with any Musk involved you always wonder about facts not in evidence. Is someone subsidizing this operation whether it be the Musk's, government or a national chain?

<comment><USER2> The best theory I've heard is that these companies are quietly waiting to become legal, urban weed factories.</comment></comment>


Ask HN: Co-founders 4-years-in to revisit equity split - co-founder-t We were those not-so-smart entrepreneurs who didn't have co-founder agreement in place when started the business. The terms were agreed verbally. 4 years in we are debating what were the original terms.<p>- Original terms: Co-founder A is taking care of all the business expenses and paying co-founder B a minimum viable salary.<p>- Co-founder A does not communicate how he treats the money he put into the business.<p>- Co-founder B assumes co-founder A is doing an equity investment with that money.<p>- Co-founder B agrees on 15%/85% equity split assuming the investment is for a few years until the business is profitable or raised capital.<p>- Co-founder A bootstrapped the business for 4 years ($300-500K) and decided to raise capital.<p>- Co-founder A says that the money he spent on a business should be treated as a debt to the business. And wants this money to be repaid to him at this on later funding rounds.<p>- Co-founder B says that if that money is a debt and not an equity investment, the initial equity split should be revisited.<p>2 questions:<p>- Were the co-founder B reasonable to assume that co-founder A is making an equity investment and not debt while accepting a lower equity split?<p>- Does Co-founder B have the grounds to insist on revisiting the initial equity split because after 4 years it is apparent that co-founder A treats his money as debt & not equity investment? <comment><AUTHOR> In short, Yes and Yes.

Even if you had an equity agreement day one, it's unlikely that it would represent what happened in the business over the last four years. Its always OK to revisit this with you co-founder, otherwise it will eat you alive.

It's reasonable to assume the funding was equity investment. It may be more of a case of, four years in, your co-founder wants to get some money back out, and calling it debt is the easy way to do that.

I find, as a general rule, when money on is on the table, founders start counting their nickels and dimes and re-visiting their decisions to maximize their benefit.

Time is the most valuable asset we have and yet its often undervalued as a contribution to a business.

I hope that helps!

</comment><comment><USER2> No investor is going to invest in this business if cofounder A expects to be reimbursed. What's the point of investing since nothing material will change other than giving cofounder A his money.. Added to the fact that cofounder A is NOT selling his equity, it sounds like a bad deal for any investor. Seed money is called sunk cost in economics (ie/ once you spend it, its gone).</comment>


Bcat—pipe to browser utility - <AUTHOR> http://rtomayko.github.com/bcat/ <comment><USER2> Maybe it's just me, but it would be nice to have the documentation _say_ that it is nice enough to automatically open a browser window/tab to the appropriate location. I spent a good 5-10 minutes trying to figure out how I would view what it's doing in the browser, and finally just installed the gem to figure it out...

<comment><USER3> A great value-add to this would be if it would start a service on some remote server and let you view the output there, perhaps charging you for the feature.

</comment></comment><comment><USER4> Excellent, I was just running some markdown and previewing it in Safari with an extra step. This is cool.

</comment><comment><USER5> curl <http://news.ycombinator.com/> | bcat

<comment><USER6>
      curl http://news.ycombinator.com/ | sed 's/points/<span style="color:red">points<\/span>/g' | bcat

</comment></comment><comment><USER7> Can someone explain how to get a list of all tabs that are open?

I have for a while wanted to make my own version of sessionsaver, but one that automatically categorizes and organizes your open URLs.

<comment><AUTHOR> I think you're looking at this backwards.

bcat is a utility that pipes standard input _to_ a browser, treating the browser as standard output.

</comment></comment><comment><USER8> brillant new tool for the toolbox.</comment>


A struggle within MIT's IT department over its future - <AUTHOR> http://tech.mit.edu/V136/N3/istfeature.html <comment><USER4> Just another sign of the continuing corporatization of MIT (and the rest of academia). Our Dean of Students is now a Vice President, in line with our "peer institutions." At the end of the day, MIT is a corporation, and exists to make money, but it's incredibly irritating when administrators refuse to admit this to students, and frame all debates without that context. "These changes are to make us more similar to our peer institutions" = "we want to make more money".

If anyone here is an MIT alum (or boardmember!), please considering getting in touch with current students and seeing how you can help. At this point it's pretty clear we have no voice on campus.

<comment><USER5> The criticism should be directed at the concept of a corporation itself, then at making more money. It's not just the profit motive, it's the discourse and the tools that go around it that are even more of a problem. For instance short term thinking, price cutting, the management and employee hierarchy. Focus on form rather than function in terms of concepts like professionalism (or better labeled as a psychological disorder of forcing people to act like machines).

The whole way that we think about these things needs reform. Corporations are machines for distributing power to a certain group of people who are in touch with the capital owners, the shareholders rather than the stakeholders. This is usually at the detriment of everyone involved, other than the shareholders and their managers. The ultimate goal of such arrangement is for the reduction of the power, well-being, happiness, and contentment of the stakeholders for the financial benefit of the shareholders.

<comment><USER6> > reduction of power, well-being, and happiness

I love you, but this is not quite right. The goal is to addict the stakeholders to participation and then reduce their support as low as possible. Power, well-being, and happiness of stakeholders are parceled out in order to maximize addiction while minimizing resources spent.

</comment></comment></comment><comment><USER7> _Many managers were demoted from their supervisor roles, likely as part of the changes to make IS &T a flatter organization. However, in several cases, new managers were put in place as soon as their predecessors left._

Friends of the newly appointed boss, I'd not be surprised. Jobs for the boys.

</comment><comment><USER8> _The Scrum methodology is about avoiding micromanagement of employees, he said, which is "completely at odds with the preferences and personalities of much of IS &T's current leadership."_ In my experience Scrum often winds up micromanaging everyone, like at my current large employer. Scrum is often the tool of people who want to say agile but still want full control of everything.

<comment><USER9> Scrum absolutely and unequivocally is all about micromanagement. It is a system, much like Six Sigma, intended to produce arbitrary metrics surface area for middle management to use in whatever way that changing political circumstances dictates. It is emphatically not about being lean or efficient with short iterations. It is emphatically not about informing the business about development velocity or anticipated missed deadlines. It is emphatically not about making customers happy. It is emphatically not about software quality or craftsmanship.

For someone to say the phrase "The Scrum methodology is about avoiding micromanagement of employees" it would require such a frightening level of cognitive dissonance and a desire for violent, Panopticon-like micromanagement, that you absolutely should run the other way as fast as possible.

This is by far the most upsetting thing I've read today. And I just read that other post about war being a racket ...

<comment><USER10> Because both articles are talking about the same. Thieves.

For me agile is embezzlement.

Waterfall has a reason to be: taking enough precautions to make sure costing and feasibility of a feature would fit the (internal or external) customers' needs and budget (as specified per contract). Without obligation of results you have an obligation of means (it is what professionalism is supposed to be : to be liable).

After Agile, project are ALWAYS delivered on time. Not 100%, but they are "built to budget".

Sometimes the 10% missing are like not possible and the heart of the feature. But who cares? Product are not tested anymore, and defects are just now in the support budget.

The application has a nice reactive angular interface and a mobile declination. And the customers like in a marketing trick are "empowered". The IT department always look busy with a constant pipeline of activity that is so successful it requires even more headcount.

The fact the software was delivered with constant modification on which the customers was spammed with more or less relevant remarks that made him loose focus on his initial goal is irrelevant. Staging, delivering is now part of the past with meaningful version numbers. It is just constant delivery.

It is for the customers' own goods.

The company also loses track of its costing pricing and investment.

Too much information kills the information.

That what agile is : a smoke screen for embezzling a budget in a politically and acceptable way.

I wonder if there are still any accountant in modern IT companies or if everyone decided to stop counting how much companies lose and win every months.

It is as if IT is totally living on another economical planet where investments are not required to be justified, and products don't need to be fool proofed against contractual penalties applied to non conformities. If so, it means we don't have any customers paying.

And of course, in the turmoil of micromanagement, new "new techs from the 70s" are micro introduced during the scrum making part of the management pushers of the products they have been nicely solicited to use by nice vendors inviting them to superb conferences and formation that are not called bribing but social networking.

This result in making developers gain as much values in "specialized tools" as they are losing global knowledge of the chain of value and disorganizing most of the profession.

You never noticed Scrum and scam sounded the same?

</comment></comment></comment><comment><USER11> _Very_ good Reddit discussion on this article: [https://www.reddit.com/r/mit/comments/458xli/feature_a_strug...](https://www.reddit.com/r/mit/comments/458xli/feature_a_struggle_within_mits_it_department_over/)

I suppose one good piece of news is that it's now possible to fire people working for MIT (this wasn't particularly true prior to the end of the Cold War, about the time I left the community as a result of leaving the Boston area).

<comment><USER12> One of the comments that stuck out to me from the Reddit thread was this:

>> The problem with this transformation is that we lost some of our best and brightest and might lose more. The good ones who remain are the ones who are in a life situation that makes a job change at this time difficult.

This says to me that going forward it is going to be a mess. It sounds like this change was, while maybe good intentioned, will continue to be met with tremendous resistance. The people with career options saw this as a good chance to jump ship before things got bad. The people that felt that they were "stuck" thought they have no other option.

The comments and the article make the whole org sound pretty toxic, but unfortunately not dissimilar to many other enterprises IT shops. My advice to the folks that think they don't have an option, is to really think again. Your skills are probably a lot more valuable than you think. I've been in similar situations in my career and thought the same thing, but actually the grass can really be better in other places. You will probably be shocked and surprised at how valuable what you know and what you have done is when you are in other organizations.

Likely, the senior management isn't going to give up and admit defeat too easily. How long will it be before they decide their best option is to outsource the dept to HP, Wipro, Cognizant, Dell, IBM, etc.?

<comment><USER13> Coleca, sorry to say, outsourcing for IS&T's service desk has already been decided and is underway...

</comment></comment></comment><comment><USER14> Usually when you see the word "transformation" bandied about, particularly in a functioning organization, that means that McKinsey, Deloitte and their ilk have been around.

Adding some magical methodology change in the mix is just a way to negatively impact the performance of the unit and justify headcount reductions. I'll bet $0.05 there will be a big push to achieve ITIL v3 compliance to fix whatever was broken. Once that happens, outsourcing is pretty easy.

<comment><USER15> How does ITIL enable outsourcing?

<comment><USER7> It's about packaging your IT operation so it's a "black box", certain workflows go in, certain changes come out. All your users see is a ticket, they don't know where it's being routed to, could be the next floor, could be Bangalore.

The problem is you know your IT department is doing jobs A, B and C because that's what you're paying them for. You don't see them doing jobs D-Z which they just get on with because they need doing, or because they have informal relationships with end users that don't show up on the formal org chart. Then when you want your "trusted outsourcing partner" to do them too, they smile and say well that's not in our contract for A, B, C, so will be charged at our bespoke rate, and at that point you're fucked, because you've gotten rid of your own people and are now utterly reliant on them.

See: every IT project ever attempted by the UK govt.

</comment></comment></comment><comment><USER16> "Reorganize everything to adopt Agile practices" is the managerial equivalent of "rewrite everything using Object-Oriented technologies." Never works as advertised.

Also I feel the article really tries hard to paint this John Charles in a negative light but if he indeed spews so many PHB cliches that's scary.

</comment><comment><USER17> That article is way too long with barely a mention of what's actually pissing people off. Hard for me to get up in arms over this when you bury exactly what it is that's happening.

I've been through reorgs like this in two different research university IT groups. It's natural to evolve from the free-wheeling pre-IT-as-a-utility days to the current structures of today. There are huge liabilities that were just not important when the entire university didn't rely on IT for EVERYTHING. MIT has some cool stuff going on in IT, but you can't claw back the changes of time, especially with how IT has matured. If I was at MIT, I'd try to find that new field where I could make a mark rather than try to retain the spoils of the past.

<comment><USER11> _free-wheeling pre-IT-as-a-utility days_

If IS&T didn't do that, it was because they'd stopped after, when I showed up in 1979, running a 370 mainframe and a Multics, the latter explicitly designed to run as a utility. Or while I was there, moving a lot of education to the Athena service (something that part of MIT eventually took over). Or, I think after I left in the early '90s, converting the university to run on SAP.

The article and comments are quite explicit on what happened, new top dog comes in with a new vision, his most powerful direct reports sandbag the initiative while using it as an excuse to execute a massive purge. A story we've seen many times before in all sorts of contexts.

</comment></comment><comment><USER18> >Another former employee said that he decided to leave IS&T when he realized "the organization would never truly be able to adopt agile practices such as Scrum."

I am curious if anyone in software/IT has successfully lobbied management for a "rollback" of agile development methodology?

Anecdote: Last year, I was put on as a tech lead for a project; my boss asked me to use Agile to track and manage the project. I tracked the project's tasks as JIRA tickets, but I did not do morning standup's because I did not think I was going to get buy-in from the rest of my team (my workplace has a 2 day work-from-home policy, common hatred on team for meetings, so it's impossible to have everyone meet in person every weekday consistently due to flex-time).

I did not do Sprint planning meeting and ticket estimation (Agile poker cards) because people on my team loved to argue over minutiae's and I strongly suspected half of the team didn't know the details of what the other half is working on; So instead, we had a weekly "flowchart" meeting on a large whiteboard where we brainstormed and added more details to our software project (a big data pipeline lends itself to a flowchart); I found it to be a better visualization of the project than a post-it covered poster.

Fortunately for me, I had a much senior technical person in my org also lobby also against Agile. The crux of the argument was Agile wasn't well suited for our team; the sprint model of Agile easily lends itself to arbitrary deadlines and building for the "demo" of the story/epic of that sprint and build-up of tech-debt (e.g., build a demo for one sprint, spent next 3 sprints fixing bugs for the features of the first sprint).

In the end, management relented and we ended our Agile experiment. Project tracking is done in Google Doc's with milestones instead. I am curious to hear if there are pushbacks in other places against Agile since it is now the de- facto "industry best-practice" (which means consulting should soon come up with newer set of workshops/manifesto's for a "new best-practice).

<comment><USER19> > I did not do morning standup's because I did not think I was going to get > buy-in from the rest of my team

Standup is expressly designed to function as a substitute for meetings - <USER2> to avoid the situation where employees waste time in meetings where only 10% of the meeting content is relevant to their particular domain/work.

The reason individuals are required to stand, is so that there's a slight physical discomfort in order that people report quickly (ours are about 1 minute per person).

If there's some topical convergence on a bit of work that emerges from standup that requires further elaboration and communication between members - then the idea is that those team-members will be able to self-organize a meeting outside standup.

The key benefit is that noone else on the team needs to be distracted with things that don't concern them.

It really puzzles me, that so few seem to comprehend the basic principles behind Agile workflow.

<comment><USER18> Thanks julian_ for your explanation of the purpose behind morning standup and how they improve people's work life.

I have to respectfully respond that I've not experienced such successful implementation of morning standup's (and btw not discounting at all your own very positive experience at all). I'll give you a few counter-examples just to offer the other perspective,

Morning standup's used as a pulpit box by the tech lead or team members who like to talk; e.g., "I was working on this ticket yesterday, and I learned something new about Java and garbage collection, let me tell you guys..." (+5-10 minutes/per person)

Morning standup's that become quick resolution and priority meetings for project managers for either early or late tickets; e.g., "Mr.PM, I finished this ticket; and now my queue is empty, I am not sure which ticket I should work on next ... Let me see, Mr.Developer, let me take a look at this large post-it board to figure out the priorities and we can go and forth and gauge your interest on several tickets I'll propose for you next..." (+5-10 minutes/per ticket)

Morning standup's that combine two teams or force separate people who have been working on completely unrelated projects for quite some time but report to the same PM, listen to the unrelated details. You can imagine how eyes glaze over for people not involved at all on those projects every morning during stand up. (perceived waste of time).

However I even agree that morning standup's are great for tech shops with very well-defined workflows and teams that has buy-in. But I also have to be respectfully honest and say that I haven't met any person who enjoy standup's except the project manager (but it might also just be a selection bias since I don't favor standup's, people who only hate standup's confides to likely- minded people aka "non-management material").

<comment><USER19> I very much understand that there needs to be developer buy-in, that management can and will attempt to derail the process, and that dominant personalities who don't understand their purpose may use them as a pulpit.

I would still argue, that those particular issues will create worse outcomes under other management approaches. The distinguishing feature of scrum is that it is a bottom-up approach created by developers. itil and prince look ridiculous in comparison - and in terms of their rigidity in trying to formulate a set-of-rules that can be used to cover all software management processes.

At the very least scrum is a baseline of principles, created by developers for developers that can be used to argue against unproductive intrusion by management.

</comment></comment></comment></comment><comment><USER20> Sad to hear this happening. MIT IST was unparalleled when I was there. Everyone was knowledgeable, they would go out of their way to help regardless of whether or not it was within their job description, and they delivered a strong product that reliably powered the institute. Hopefully this isn't too disruptive, ultimately, although it sounds like a lot of damage is already done.

</comment><comment><USER21> Has forced Agile ever turned out well at an organization? I've seen this done many times before and I've never seen it work well. Organizations typically end up shoehorning waterfall into whatever stuff the consultants sold them. I think Agile can work with the right group of people but not getting buy-in from the ground-up is very dangerous and can really demoralize a shop.

<comment><USER22> Also, the "forced" flavor of agile tends to be one that is disconnected from the trade offs that make agile work.

I was in a shop that had a forced agile adoption. The development teams were all enthusiastic about it, went to training, etc. However, the very same managers that pushed it didn't understand it so we got:

* hard delivery dates with fixed functionality (though we could drop small features at the margins)

* lots of useless planning/status reporting ceremony (more than pre-agile)

* pressure to "just start coding" instead of gathering requirements (since "we're agile now")

* very litter tolerance for going back and fixing things that weren't done right (made more common by the above bullet)

It didn't really work, and most of those managers are gone now.

</comment></comment><comment><USER23> This article describes some seriously clueless agile practices.

A massive reorg and restructuring dictated from the top to enable agile, a bottom-up methodology.

They dictate that everyone must do Scrum - even support departments for which it's laughably mismatched - rather than allowing any level of team-driven process selection, and then 9 months later they open it up to allowing teams to choose, including letting them choose waterfall. Their messaging was this was always the plan, which is either a lie as apparently many people at MIT believe, or evidence that of even deeper cluelessness.

My opinion is that this Charles character has no business running a technology org.

<comment><USER24> "Okay Bob, what are you working on today?"

"Ah, I'm handling support tickets. Same as I did yesterday, the day before that, the week before that, and the month before that."

"Any roadblocks?"

"Nope, I'm tier one support. When I can't quickly handle an issue, I push it up the support ladder. I don't have any roadblocks today, and I won't have any roadblocks tomorrow or the day after, or even the week after that. Unless of course you mean the 4 missed support calls that just occurred because I was on the SCRUM call."

</comment></comment><comment><USER25> In the article comments there is a link to an org chart from 2014-09 with those who have departed or been demoted as of 2016-02 marked [1].

[1] [https://www.dropbox.com/s/i4zp05qlvrgclzd/Color- CodedDepartu...](https://www.dropbox.com/s/i4zp05qlvrgclzd/Color- CodedDepartures.pdf?dl=0)

</comment><comment><USER26> MIT '07 here. Interesting read, and speaking from my own experience I can kind of see both sides of the issue.

(Also, to be clear, this is about the department that provides the IT infrastructure and tech support to MIT, not the EECS department at MIT.)

I always thought the IT setup at MIT was a little weird. As an MIT student you chose a campus-wide Athena account name. I liked that you could choose anything (mine was the same as my user name here, not just gdurazo or something like that). There were Athena clusters (computer labs) all over campus that you could log into, but it seemed like it ran an old version of some Linux distro, I forget which. You could also ssh in via `athena.dialup.mit.edu`.

But you didn't really need to use it all that often. If a class required Matlab, or something, you would log in to use it, but I don't really remember using it for much more than that.

I can certainly see the argument that IS&T should do more programming - <USER3> didn't have that great of a scheduling system or framework for classes to host their assignments and lecture notes, etc. So more custom development could definitely help the student and professor experience.

On the other hand, the underlying infrastructure worked great. The internet was fast everywhere, WiFi was fast and open and free, and you could request static IPs and host stuff. It's definitely what you'd expect from MIT. In addition, the tech support was wonderful. A few years after I graduated I remembered a blog I had kept from my athena account, and emailed in to ask if they happened to still have it. They kind of did; they sent me a SQL dump of its contents, which was enough for me.

I hope the outcome of this is MIT provides more web services for students for class registration, scheduling, submitting assignments, etc. But I hope it doesn't gut the fast and free infrastructure that was there and the great and friendly tech support.

<comment><USER27> > In addition, the tech support was wonderful. A few years after I graduated I > remembered a blog I had kept from my athena account, and emailed in to ask > if they happened to still have it. They kind of did; they sent me a SQL dump > of its contents, which was enough for me.

While it's true that helpdesk at IS&T was all sorts of wonderful prior to the transformation, that particular example wasn't handled by them, but rather by the student volunteers running Scripts (scripts.mit.edu), part of SIPB (sipb.mit.edu). SIPB does get its funding from IS&T, and worked pretty closely with many people there on initiatives ranging from the Scripts platform to the whole Athena operating system.

I don't know if the "fast and free infrastructure" and "friendly tech support" will continue, as it requires the new IS&T to continue supporting the student volunteers.

<comment><USER26> Ah, I see! Thanks for the correction.

</comment></comment></comment><comment><USER28> Someone needs to watch "The Death of Agile"[1] by one of the authors of the Agile Manifesto.

[1] - [http://www.youtube.com/watch?v=YpGGRAhes2k](http://www.youtube.com/watch?v=YpGGRAhes2k)

<comment><USER29> I am watching, and this guy is hilarious!

</comment></comment><comment><USER30> Unfortunate. University IT departments are susceptible to neoliberal evangelical insanity. When it happened to my department, I decided that I was unworthy to clean the digital bedpans of a destructively competitive, rank and pedigree conscious faculty and took off, never to support faculty again. Here's a rebuke to the smug, platitudinous know-nothings who insist that the university is a business. [http://leiterreports.typepad.com/blog/2016/02/proofs-that- un...](http://leiterreports.typepad.com/blog/2016/02/proofs-that-universities- are-not-businesses-look-who-the-richest-ones-are.html)

</comment><comment><USER31> TIL MIT graduates quite frequently (from the sound of it) go on to work in tech support. Does it pay well enough to make sense as the outcome of what must be the most expensive higher education in the world?

<comment><USER11> It's not so expensive for families with lower incomes due to an initiative started in 2008; the Institute has backed off on that a bit, here's the current generic figures: [http://affordable.mit.edu/](http://affordable.mit.edu/)

</comment></comment><comment><USER32> Uh, one if the employees said:

"In the words of my people … offer me money … power too, promise me that. Offer me anything I want … I want my managers back, you son of a bitch."

If that's what she said, I can't say I'm terribly sympathetic!

<comment><USER33> It is an adapted quote from The Princess Bride.

<comment><USER34> Well quoted then: [http://www.imdb.com/character/ch0003786/quotes](http://www.imdb.com/character/ch0003786/quotes) (search for "power")</comment></comment></comment>


Show HN: MarkRight – Electron-powered GitHub-flavored Markdown editor - <AUTHOR> https://github.com/dvcrn/markright <comment><USER2> This is awesome—I use Mou right now, but going to try switching to this for a while.

This really highlights the need to create some sort of shared library from Electron's core, though. I've probably got a half dozen copies of Chromium bundled into various apps now!

<comment><AUTHOR> Glad to hear. I killed most bugs before posting it here but if you notice something odd while using it, please submit a issue on github right away.

You could probably symlink `Contents/Frameworks/Electron Framework.framework` (on mac) to something like ~/.electron to get rid of the duplicated core (and around 100mb per app). Though I didn't try that yet.

</comment></comment><comment><USER3> This is great, thanks for sharing! It's funny, I was just thinking about trying to use Electron for a markdown editor project.

I work in an academic environment and fantasize about luring writers and editors away from MS Word into Markdown. Unfortunately it looks like the Marked library (the most popular JS parser) doesn't support extensions like footnotes, which are critical for my use-case.

My ultimate dream would be to have an Electron-based markdown editor that supports inline "tracked changes" through something like git.js[1], sort of like a desktop version of prose.io.

Care to share any thoughts about the experience of working in the Electron platform?

[1]: [https://github.com/danlucraft/git.js](https://github.com/danlucraft/git.js)

<comment><USER4> Wow that's somewhat scary to hear so many people in academia are using MS Word. Most papers I read are done in LaTeX and I just assumed the rest were done on OSX (with whatever they use).

Here's a good article I found a while back when I was looking into using Markdown for academic papers: [http://blog.cigrainger.com/2014/07/pandoc- markdown.html](http://blog.cigrainger.com/2014/07/pandoc-markdown.html)

</comment></comment><comment><USER5> What does this offer over Atom and its built-in markdown preview plugin?

<comment><AUTHOR> You are right, people that already use Atom probably have a solution inside the editor. I use a different set of tools and sometimes need something I can use to edit my markdown files with a as-close-as-possible github preview.

</comment></comment><comment><USER6> For those not familiar with Electron: [http://electron.atom.io/](http://electron.atom.io/)

</comment><comment> wh-uws Just downloaded looks slick.

Make it so I can open multiple windows and I'll be glad to quit stackedit for you.

[https://stackedit.io/](https://stackedit.io/)

Note im a windows user

</comment><comment><USER7> Wonderful! This works perfectly on my HiDPI Windows 10 laptop (as opposed to MarkdownPad, which requires an ugly hack).

</comment><comment><USER8> How does it compare to MacDown and Mou?

<comment><USER9> I guess it depends what your priorities are.

Personally I find MacDown to be a great replacement for Mou, LightPaper may also be appealing to some people.

All of these are native apps, i don't see what this app could offer that would make up for being non native.

</comment></comment><comment><USER10> This is so nice, congrats. Is there any way to add styling on the preview?

<comment><AUTHOR> Currently not but since the preview is just normal HTML, all we <technically> have to do is load a different css file. You could of course also change the shipped css file and build your own version.

</comment></comment><comment><USER11> This is what I've been looking for! Thank you!

</comment><comment><USER12> Why not make it work on the browser?

<comment><AUTHOR> There are a lot web based markdown previewers. You could even go to github and use the 'preview' feature when editing a README.

</comment></comment><comment><USER13> 0 days since new markdown editor

<comment><USER14> 1 hour since last unnecessary cynic comment about hobby projects.</comment></comment>