Remy Sharp's talk on how he lost his love for his open source project. [fail2ban](http://www.fail2ban.org/wiki/index.php/Main_Page), automatic naughty-stepping 204, no content to deal with relative/empty urls ---- Righteous rant against VATMOSS: £3500 to take less £12 of tax. ---- Stripe is good but still exposes small business to charges due to fraud. ---- The economics of the Pro scheme for JSBin weren't sound. There wasn't a plan and 0.1% of the active userbase converted to Pro. The money only covered the server costs. There was value in having a business person with the ability to create a proper plan. There wasn't user **need** in a pastebin. ---- Classic scaling issues of having a side-project that costs money and time but generates little in return. ---- Interesting police issues: there's no control over what the users use the product for and that's the dark side of idealism. ---- **Frontend architectures** Starts with classic context setting by telling us what MVC is. ---- DCI, data context interaction, behaviours are injected into the controllers ---- MVI: model, view, intent Unidirectional like Flux, Intents take streams from views and decorate them to write to the model. ---- Very incoherent explanations that are repetitive. Very conventional thinking. Pub/Sub, OO with some added cruft from Flux. Basically seems to be every concept from every architecture or design pattern. ---- CSP, finally some interesting! ---- I think while there is a port of CSP to JS I think if you're serious about it then there is strong driver to actually write it in Clojurescript. ---- This isn't architecture anymore this is an introduction to CSP. ---- Transducers, now. This talk would be more accurately called "I kissed Clojure (and I liked it)" ---- **Amazing journey of a web request** Calling out preferred pronouns, ah the earnestness of youth. Seriously though, first time of seen this happen personally. ---- Pretty good introduction to how the internet actually works. ---- **Performance testing** [beeswithmachineguns](https://github.com/newsapps/beeswithmachineguns) ---- **Security for developers** [Node Security Project](https://nodesecurity.io/) nsp can check your project `package.json` to find dependencies with security issues. ---- The conference is much punchier with the new 30 minute slots and I'm quite happy with a lot of the general development talks on things like security, performance testing and how HTTP networking works. Much closer to a general interest conference this time. ---- The thing that has really lingered with me from Day One is the point that while on the web we may not have fixed security issues we at least know what they are. With apps we don't really know what the issues let alone have a simple a way of verifying whether we suffer from them or not. ---- **Using (or not using) semver** Good suggestions to rename *major* to be *breaking* and *minor* to be *feature*. Caret should mean that your software should not break as the definitions of the version numbers are always backward compatibility. But things still do break so why are failing to follow the simple rules of SemVer? Major version 0 is not considered stable so you cannot rely on the rules of semver. ---- Really fascinating point about Angular's adherence to its release numbering means that patch numbered releases contain breaking changes. ---- People are scared to change the major version numbers and people assume that major version numbers indicate something about the maturity of the project. ---- "Version numbers are not for humans" ---- Names are for humans, numbers are for machines. Angular 2.x should have had a new name not a fixed major version. ---- [Semantic- release](https://github.com/semantic-release/semantic-release) to automate publishing ---- Greenkeeper.io a bot for monitoring your dependencies. Does test builds that check whether updates will break your code. ---- [Hoodie](http://hood.ie/) Jan makes some interesting points about the diversity of the conference speakers. Something to come back to. He's a great presenter but doesn't have a clear message this time out. ---- **Surviving microservices** This mostly turned out to be a talk about the resilience of distributed systems, which doesn't make it less interesting or relevant but it didn't need to dressed up in some Microservices branding. Microservices shouldn't know about how to route outbound data but just about inbound and outbound events. ---- [SenecaJS](http://senecajs.org/) a framework that formalises the architectural principles under discussion. ---- [Kintsugi](https://en.wikipedia.org/wiki/Kintsugi), a fascinating aside but I'm now very distracted from the talk while I'm thinking about ceramics. ---- There's a lot of identification of distributed system problems but the answers are not very forthcoming. ---- That was actually a talk about operational issues with distributed systems. ---- **We're not Object Orientated anymore.** Let's have some controversy! ---- Recommended talk: Greg Young - [The art of destroying software](https://vimeo.com/108441214) ---- Callbacks are better for performance than Promises. Well, you're using Node so performance can't be that important to you. Clarity is much more important. ---- [Bloomrun](https://www.npmjs.com/package/bloomrun): pattern matching library for JS ---- Now slipping into promoting the Seneca framework again. C'mon sponsors! You've already had one chance to promote yourself. ---- Your service doesn't implement REST if you only handle POST ---- Fun little workshop on writing simple code for the [Tessel 2](https://tessel.io/) ---- Steve Lacey's React-Native demo project: [Tweetes](https://github.com/stevelacy/Tweetes) ---- *Diversity* So Jan's comments on diversity hit home a little. Was the final line up of the conference diverse? No, in all honesty it was still mostly men, mostly white, mostly straight. Interestingly the submissions were a bit better but during the process of back-filing the presentations that suffered from drop outs and scheduling clashes it became clear that personal connections were mostly of a type and not enough lightning talks had been invited that could have been "brought forward" into the schedule. I think the goal for this year's conference was to try and create a good conference that would be worth the entrance price. If that has happened (and I don't know what the feedback is) then the next goal should be to create a conference that is both good and diverse. ---- Overall the IoT and hardware workshop sessions were superb. I'm not into either so I enjoyed learning a bit more about them. Iand was also struck (after initial scepticism) with the value of abstracted device programming. People clearly thinking about the high-level properties of the device, not their low-level implementations, and implementing high-level ideas was relatively easy with no disconnect. ---- So on the second day it was really the Semantic Versioning talk that I thought really stood out. It's interesting to see that we have notionally adopted a systematic scheme but then as developers we refuse to commit to it.