#EmberJS2019 More Accessible Than Ever


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




It’s that time of year again: time to think about what the next year of Ember should hold.

Personally, I feel really great about the community’s effort around the Octane edition. What’s great about Octane, and any future edition we do, is that it’s a focus on polishing and documenting the features, and providing a clear transitional path from where we were to where we’re going.

Octane includes a lot of stuff we’ve been working on for a long time. Some highlights:

  • jQuery is no longer included by default in new apps
  • Glimmer components are the default components in Octane, which includes a new, massively slimmed down base class and angle bracket invocation.
  • Element modifiers are a new, more composable way to interact with the DOM from components.
  • Tracked Properties are the default way of managing data flow in Octane, which eliminates the need for a special computed property feature.

    Continue reading “#EmberJS2019 More Accessible Than Ever”

Fun With PowerShell: Let’s Get Started (Digging Deeper into “The Pipeline”)


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




In the first post in the Fun with PowerShell series, we wrote a little script that searched the Open Movie Database for movies containing the word “Avengers”.

We learned about Invoke-RestMethod, the syntax for invoking commands, the concept of “pipelines”, and the fact that anything we type in a script that isn’t assigned to a variable or passed into a pipeline is printed out. We also learned about redirection and the special $null variable, which allows us to redirect output into nothingness.

If you’re just interesting in learning enough PowerShell to be useful, feel free to move on to the second post in the series (Fun With PowerShell: Deduplicating Records). But if you’re curious to dig deeper, let’s unpack a few of the concepts that we learned in more detail.

Invocation Syntax

Like in other shells, you invoke a command in Powershell by mentioning it.

Get-Process
  Continue reading "Fun With PowerShell: Let’s Get Started (Digging Deeper into “The Pipeline”)"

Fun with PowerShell, Deduplicating Records


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




In the previous post, we got a list of Avengers movies from the Open Movie Database and printed it onto the screen.

$movies = Invoke-RestMethod "http://www.omdbapi.com/?apikey=$key&s=Avengers"

$movies.search | Format-List
Title  : The Avengers
Year   : 2012
imdbID : tt0848228
Type   : movie
Poster : https://m.media-amazon.com/images/M/MV5BNDYxNjQyMjAtNTdiOS00NGYwLWFmNTAtNThmYjU5ZGI2YTI1XkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_SX300.jpg

Title  : Avengers: Age of Ultron
Year   : 2015
imdbID : tt2395427
Type   : movie
Poster : https://m.media-amazon.com/images/M/MV5BMTM4OGJmNWMtOTM4Ni00NTE3LTg3MDItZmQxYjc4N2JhNmUxXkEyXkFqcGdeQXVyNTgzMDMzMTg@._V1_SX300.jpg

Title  : Avengers: Infinity War
Year   : 2018
imdbID : tt4154756
Type   : movie
Poster : https://m.media-amazon.com/images/M/MV5BMjMxNjY2MDU1OV5BMl5BanBnXkFtZTgwNzY1MTUwNTM@._V1_SX300.jpg

Title  : The Avengers
Year   : 1998
imdbID : tt0118661
Type   : movie
Poster : https://m.media-amazon.com/images/M/MV5BYWE1NTdjOWQtYTQ2Ny00Nzc5LWExYzMtNmRlOThmOTE2N2I4XkEyXkFqcGdeQXVyNjUwNzk3NDc@._V1_SX300.jpg

Title  : The Avengers: Earth's Mightiest Heroes
Year   : 2010–2012
imdbID : tt1626038
Type   : series
Poster : https://m.media-amazon.com/images/M/MV5BYzA4ZjVhYzctZmI0NC00ZmIxLWFmYTgtOGIxMDYxODhmMGQ2XkEyXkFqcGdeQXVyNjExODE1MDc@._V1_SX300.jpg

Title  : Ultimate Avengers
Year   : 2006
imdbID : tt0491703
 Continue reading "Fun with PowerShell, Deduplicating Records"

PowerShell, Let’s Get Started!


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




PowerShell, Let's Get Started!

I’ve been having a lot of fun playing around with PowerShell recently, and wanted to write up some of my learnings.

If you’re thinking: “I don’t use Windows, so this post isn’t for me”, good news! Microsoft has released versions of PowerShell for OSX and Linux with easy installers, and I’ve tested the examples in this series on both Windows and Linux. I document the installation instructions in a separate post.

Let’s get started. We’ll interact with a REST API called the Open Movie Database. All of the APIs in OMDB require a (free) API key, so if you want to follow along, start by grabbing one.

Let’s create a new directory called powershell-explore and create a new file in that directory called omdb.ps1. The ps stands for “PowerShell” and the 1 stands for “maybe we’ll want a version 2 someday” (also .ps is taken by PostScript).

$key =  Continue reading "PowerShell, Let’s Get Started!"

PowerShell, Installation


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




In my post on exploring PowerShell, I jumped right in to exploring PowerShell.

If you’re on Windows, you already have PowerShell, and you can follow along.

If you’re on OSX, the easiest way to install PowerShell is

$ brew cask install powershell
$ pwsh

There are more details at Installing PowerShell Core on macOS (docs.microsoft.com).

On Ubuntu, it’s

$ sudo apt-get install -y powershell

There are more details, and instructions for other distributions at Installing PowerShell Core on Linux (docs.microsoft.com).

#Rust2018 – Exploring New Contribution and Feedback Models


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Since I’m coming pretty late to the #Rust2018 party, most of the things I wanted to say have already been said!

Ashley’s kick-off post was kind of a meta-#Rust2018 for me, calling for us to experiment with new ways to get community feedback in Rust. I personally really enjoyed all of the energy in #Rust2018, and hope that we continue to experiment on this front.

I really loved Julia’s post, both for enumerating so many ways that Rust has become easier to use since last year, but also for showing that marketing Rust to people who have never written low-level code before need not conflict with marketing Rust to people who want a better C++ (and other audiences too!).

I liked both Steve’s post and Nick’s post for showing that we’re already on track to have a great 2018, as long as we stay focused on shipping and Continue reading “#Rust2018 – Exploring New Contribution and Feedback Models”

The Facebook Patent License Punishes You For Suing Facebook, But Lets Them Sue You


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




There’s been a lot of discussion recently about the Facebook patent clause ("PATENTS" in Facebook repositories).

While most of the objections to the license have focused on the patent revocation provisions, most of the defense focuses on the patent grant. This has meant that both sides are talking past each other, and casual readers are getting confused about what this is all about.


The Facebook patent grant comes with a revocation clause. It is meant to protect Facebook from patent lawsuits in general. It applies to Facebook’s patents, and therefore the revocation clause does not apply to Facebook itself (by definition). Your license to Facebook’s patents in order to use the OSS is revoked if:

  • You sue Facebook for patent infringement, or
  • You sue someone for patent infringement for using a Facebook product or service, or
  • You sue someone for using the OSS software

Notably, it does nothing to punish Continue reading “The Facebook Patent License Punishes You For Suing Facebook, But Lets Them Sue You”

The Facebook Patent License Punishes You For Suing Facebook, But Lets Them Sue You


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




There’s been a lot of discussion recently about the Facebook patent clause (“PATENTS” in Facebook repositories).

While most of the objections to the license have focused on the patent revocation provisions, most of the defense focuses on the patent grant. This has meant that both sides are talking past each other, and casual readers are getting confused about what this is all about.


The Facebook patent grant comes with a revocation clause. It is meant to protect Facebook from patent lawsuits in general. It applies to Facebook’s patents, and therefore the revocation clause does not apply to Facebook itself (by definition). Your license to Facebook’s patents in order to use the OSS is revoked if:

  • You sue Facebook for patent infringement, or
  • You sue someone for patent infringement for using a Facebook product or service, or
  • You sue someone for using the OSS software

Notably, it does nothing to punish Continue reading “The Facebook Patent License Punishes You For Suing Facebook, But Lets Them Sue You”

The Glimmer VM: Boots Fast and Stays Fast


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Great web applications boot up fast and stay silky smooth once they’ve started.

In other contexts, applications can choose quick loading or responsiveness once they’ve loaded. Great games can get away with a long loading bar as long as they react instantly once the gamer gets going. In contrast, scripting languages like Ruby, Python or Bash optimize for instant boot, but run their programs more slowly.

To optimize for boot time, scripting languages use interpreters and avoid expensive compilation steps. To optimize for responsiveness, games pre-fill their caches and do as much work up front as they can get away with. The web demands that we do both at the same time: users coming from search results pages must see content within a second on modern devices, but also demand 60fps once the application gets going.

Over the years, web browsers have responded to this requirements with more JIT tiers

Fast Updates in Ember

Continue reading “The Glimmer VM: Boots Fast and Stays Fast”

The Glimmer VM: Boots Fast and Stays Fast


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Great web applications boot up fast and stay silky smooth once they’ve started.

In other contexts, applications can choose quick loading or responsiveness once they’ve loaded. Great games can get away with a long loading bar as long as they react instantly once the gamer gets going. In contrast, scripting languages like Ruby, Python or Bash optimize for instant boot, but run their programs more slowly.

To optimize for boot time, scripting languages use interpreters and avoid expensive compilation steps. To optimize for responsiveness, games pre-fill their caches and do as much work up front as they can get away with. The web demands that we do both at the same time: users coming from search results pages must see content within a second on modern devices, but also demand 60fps once the application gets going.

Over the years, web browsers have responded to this requirements with more JIT tiers

Fast Updates in Ember

Continue reading “The Glimmer VM: Boots Fast and Stays Fast”

Why I’m Working on Yarn


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




(This post is about Yarn, a new JS package manager that was announced today.)

I work with Node and npm packages almost every day, on Tilde’s main app, Skylight, or on one of Ember’s many packages.

Many have remarked upon how fast the npm registry has grown, and it’s hard to imagine working on any of my packages without the npm ecosystem.

I’ve also worked on a couple of application-level package managers (Bundler for Ruby and Cargo for Rust), so it’s no surprise that people have routinely asked me whether I’d consider writing a “bundler for node”.

While it’s something I considered idly from time to time, the truth is that for all of the complaints people have about the official client, it does a whole lot that people rely on, and the npm team has done a lot to improve it over the years. I genuinely respect Continue reading “Why I’m Working on Yarn”

Why I’m Working on Yarn


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




(This post is about Yarn, a new JS package manager that was announced today.)

I work with Node and npm packages almost every day, on Tilde’s main app, Skylight, or on one of Ember’s many packages.

Many have remarked upon how fast the npm registry has grown, and it’s hard to imagine working on any of my packages without the npm ecosystem.

I’ve also worked on a couple of application-level package managers (Bundler for Ruby and Cargo for Rust), so it’s no surprise that people have routinely asked me whether I’d consider writing a "bundler for node".

While it’s something I considered idly from time to time, the truth is that for all of the complaints people have about the official client, it does a whole lot that people rely on, and the npm team has done a lot to improve it over the years. I genuinely respect Continue reading “Why I’m Working on Yarn”

An Extensible Approach to Browser Security Policy


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Alex Russell posted some thoughts today about how he wishes the W3C would architect the next version of the Content Security Policy.

I agree with Alex that designing CSP as a “library” that uses other browser primitives would increase its long-term utility and make it compose better with other platform features.

Alex is advocating the use of extensible web principles in the design of this API, and I wholeheartedly support his approach.

Background

You can skip this section if you already understand CSP.

For the uninitiated, Content Security Policy is a feature that allows web sites to opt into stricter security than what the web platform offers by default. For example, it can restrict which domains to execute scripts from, prevent inline scripts from running altogether, and control which domains the network stack is allowed to make HTTP requests to.

To opt into stricter security using the current version of Continue reading “An Extensible Approach to Browser Security Policy”

An Extensible Approach to Browser Security Policy


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Alex Russell posted some thoughts today about how he wishes the W3C would architect the next version of the Content Security Policy.

I agree with Alex that designing CSP as a “library” that uses other browser primitives would increase its long-term utility and make it compose better with other platform features.

Alex is advocating the use of extensible web principles in the design of this API, and I wholeheartedly support his approach.

Background

You can skip this section if you already understand CSP.

For the uninitiated, Content Security Policy is a feature that allows web sites to opt into stricter security than what the web platform offers by default. For example, it can restrict which domains to execute scripts from, prevent inline scripts from running altogether, and control which domains the network stack is allowed to make HTTP requests to.

To opt into stricter security using the current version of Continue reading “An Extensible Approach to Browser Security Policy”

Extend the Web Forward


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




If we want to move the web forward, we must increase our ability as web developers to extend it with new features.

For years, we’ve grabbed the browsers extension points with two hands, not waiting for the browser vendors to gift us with new features. We built selector engines, a better DOM API, cross-domain requests, cross-frame APIs.

When the browser has good extension points (or any extension points, really), we live in a virtuous cycle:

  • Web developers build new APIs ourselves, based on use-cases we have
  • We compete with each other, refining our libraries to meet use cases we didn’t think of
  • The process of competition makes the libraries converge towards each other, focusing the competition on sharp use-case distinctions
  • Common primitives emerge, which browser vendors can implement. This improves performance and shrinks the amount of library code necessary.
  • Rinse, repeat.

We’ve seen this time and time again. When it Continue reading “Extend the Web Forward”

Extend the Web Forward


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




If we want to move the web forward, we must increase our ability as web developers to extend it with new features.

For years, we’ve grabbed the browsers extension points with two hands, not waiting for the browser vendors to gift us with new features. We built selector engines, a better DOM API, cross-domain requests, cross-frame APIs.

When the browser has good extension points (or any extension points, really), we live in a virtuous cycle:

  • Web developers build new APIs ourselves, based on use-cases we have
  • We compete with each other, refining our libraries to meet use cases we didn’t think of
  • The process of competition makes the libraries converge towards each other, focusing the competition on sharp use-case distinctions
  • Common primitives emerge, which browser vendors can implement. This improves performance and shrinks the amount of library code necessary.
  • Rinse, repeat.

We’ve seen this time and time again. When it Continue reading “Extend the Web Forward”

I’m Running to Reform the W3C’s TAG


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Elections for the W3C’s Technical Architecture Group are underway, and I’m running!

There are nine candidates for four open seats. Among the nine candidates, Alex Russell, Anne van Kesteren, Peter Linss, and Marcos Cáceres are running on a reform platform. What is the TAG, and what do I mean by reform?

What is the TAG?

According to the TAG’s charter, it has several roles:

  • to document and build consensus around principles of Web architecture
  • to interpret and clarify these principles when necessary
  • to resolve issues involving general Web architecture brought to the TAG
  • to help coordinate cross-technology architecture developments inside and outside W3C

As Alex has said before, the existing web architecture needs reform that would make it more layered. We should be able to explain the declarative parts of the spec (like markup) in terms of lower level primitives that compose well and that developers can use for Continue reading “I’m Running to Reform the W3C’s TAG”

I’m Running to Reform the W3C’s TAG


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




Elections for the W3C’s Technical Architecture Group are underway, and I’m running!

There are nine candidates for four open seats. Among the nine candidates, Alex Russell, Anne van Kesteren, Peter Linss, and Marcos Cáceres are running on a reform platform. What is the TAG, and what do I mean by reform?

What is the TAG?

According to the TAG’s charter, it has several roles:

  • to document and build consensus around principles of Web architecture
  • to interpret and clarify these principles when necessary
  • to resolve issues involving general Web architecture brought to the TAG
  • to help coordinate cross-technology architecture developments inside and outside W3C

As Alex has said before, the existing web architecture needs reform that would make it more layered. We should be able to explain the declarative parts of the spec (like markup) in terms of lower level primitives that compose well and that developers can use for Continue reading “I’m Running to Reform the W3C’s TAG”

Follow Me to Google+


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




I wrote my first post on this blog in January 2007.

In 2007, this blog was the easiest way I had to write my thoughts down for people who cared to read them. I wrote long posts and short post (but mostly long posts). I wrote deeply technical posts. I wrote proposals. I wrote introductory posts.

I did not post often.

In 2012, there are many more ways to write and reach an audience. I write whimsically on Twitter. I write personally on Facebook. More and more, I find that I write casually on Google+.

Without the 140-character constraint of Twitter, I can start writing and stop when I reach the end of a thought. Unlike the long-form nature of my blog, I find myself writing often, whenever something is on my mind. If you’re interested in reading that sort of thing, follow my Google+ profile. Because I never remember Continue reading “Follow Me to Google+”

Follow Me to Google+


This post is by Yehuda Katz from Katz Got Your Tongue


Click here to view on the original site: Original Post




I wrote my first post on this blog in January 2007.

In 2007, this blog was the easiest way I had to write my thoughts down for people who cared to read them. I wrote long posts and short post (but mostly long posts). I wrote deeply technical posts. I wrote proposals. I wrote introductory posts.

I did not post often.

In 2012, there are many more ways to write and reach an audience. I write whimsically on Twitter. I write personally on Facebook. More and more, I find that I write casually on Google+.

Without the 140-character constraint of Twitter, I can start writing and stop when I reach the end of a thought. Unlike the long-form nature of my blog, I find myself writing often, whenever something is on my mind. If you’re interested in reading that sort of thing, follow my Google+ profile. Because I never remember Continue reading “Follow Me to Google+”