This is a huge achievement - props to the Gradle maintainers for delivering so much with such careful adherence to backcompat! I’ve had two enableFeaturePreview lines in my repos for a few weeks now and it made upgrading to Gradle 5.0 a zero manual action upgrade!
We require all teams to use semver and usually define the Conjure API in the same repo as the server that implements it (so they are versioned together). Most of the time teams want to preserve wire-format back compat (i.e. only add optional fields to requests and don’t remove things from responses). Devs are pretty good at this, but we actually run a conjure-backcompat checker as part of CI to catch any unintended breaks they might have missed.
When it comes to intentional breaks, teams save up a bunch of carefully documented changes and then tag the next semver major version (i.e. 2.0.0). This is safe to do because all microservices and frontends we build actually contain embedded minimum and maximum version constraints on the backend services they require. Our deployment infrastructure knows about all these constraints and can then ensure that new major releases will only be rolled out in production when all their callers have explicitly declared support.
It's definitely not as elegant as Scala or Haskell, but I think their justification is very reasonable. The current implementation is maximally compatible with existing usages of tagged unions (e.g. Redux actions), because it allows you to choose whatever discriminant you like ('type', 'kind', whatever). Keeping very close to JS seems to be a core tenet of TypeScript and is quite valuable in my opinion. It means they can adopt new ECMAScript syntax without clashes and also ensures that newbies have a smaller learning curve. Also, they can always add in some syntactic sugar later if they want to!
I usually want to keep an eye on my Selenium tests so I can debug them if they get stuck. When I don't have enough space to leave the selenium VNC window open, I put it underneath a semi-transparent terminal window which allows me to keep working.
Nicely comprehensive blog post, Zorium looks like it is the result of a lot of hard work!
Since this looks like a serious library (rather than a personal dev exercise), I'm curious about why you decided not to go with React:
1. The React source is definitely intimidating - what extensions did you feel it needed?
2. Animations are a tough problem, but I was under the impression that the communication isn't usually the problem, it's meshing a declarative representation with a mid-transition DOM. How is the Zorium approach better than the React one?
3. Flux, JSX and mixins are all completely optional and not compulsory to write a frontend in React; why did these motivate you to write a new library from scratch?
I hope these don't come across too critical, I have a lot of respect for anyone who can even finish a project like this, let alone document it. I've heard lots of good things about React, so I'm curious to hear other perspectives!
There are a few interesting answers in the 'Startup Traction' topic on Quora [1].
Lots of them mention having a great product that solves a real problem, having a content-rich blog to drive traffic, inviting friends and some PR. (Maybe the friends one isn't so applicable to an ad network!)
Someone got a Linux image that could run `ls` down to 6.12MB by intercepting file accesses and deleting anything unused... See "How I shrunk a Docker image by 98.8%" (https://news.ycombinator.com/item?id=9438323)
I was expecting the patent [1] to describe some kind of Amazon Echo, stuffed into a teddy bear with responses and a personality.
Instead, it seems to turn the toy into a glorified TV remote that sends "media device commands to a media device, instructing the media device to change state".
Shame about the click-baity article, I though this had potential for an interesting discussion about AI around children.
I tried the name `~SnapSwap` to actually get into this app. (I found this from a 'Popular Gateways' page [1].)
The blank input field isn't a super friendly way to show people your product if they haven't encountered Ripple before (like myself)... a little blog post about what Ripple is and why you made ledgermonitor would be cool!
This is familiar to programmers who are used to pointers or references. (Java's `final` does the same thing).
To prevent changes to an object's properties, you could use `Object.freeze()` instead [1]. NB, this is shallow, so a child object of a frozen object can still have its properties changed.
A women-in-business non-profit found that Fortune 500 companies with most women board members consistently outperformed those with fewest [1].
Market forces should therefore cause the numbers of women board members to increase accordingly, however, "change has occurred at a sluggish pace" [2].
The 40% EU objective stipulates that "qualification and merit will remain the key criteria" and will hopefully challenge unconscious biases that may be behind the sluggish progress [3].
I would hesitate to make primary schools kids learn 'coding' because personally, I find the underlying problem solving more inspiring than learning syntax.
FIRST Lego League [1] offers a compelling alternative though. I competed in FLL with a team of other primary school kids and greatly enjoyed designing a robot (with motors and sensors) and then programming it to solve tasks using a drag and drop language. Each member of our team could focus on the part they enjoyed most rather than everyone sitting in front of the computer.
"FLL challenges kids to think like scientists and engineers" and has a glamorous 'World Final' event that is honestly the coolest thing in the world when you're 11.
I bet there would be a psychological impact. People would curtail their usage and frantically switch antennas on and off, resulting in an overall poor experience.
Perhaps having a big allowance in mind just encourages people to use their data!
Will this be the first spacecraft mounted laser weapon?
> "we plan to install a full-scale version on the ISS, incorporating a three-meter telescope and a laser with 10,000 fibers, giving it the ability to deorbit debris with a range of approximately 100 kilometers".
Having used both, I personally prefer Strava. I've found it far better at motivating me to run. You can compare your performance against other runners along pre-defined segments (e.g. some hill you regularly run). The two people I've recommended Strava to are now hooked.
Their engineers make cool side projects [1] and release interesting new features regularly.