sudo apt-get install python3-pip
sudo pip3 install virtualenv
#!/usr/bin/env sh | |
# Generate an AUTHORS file based on the output of git shortlog. It uses ABC | |
# order, strips out leading spaces and numbers, then filters out specific | |
# authors. | |
git shortlog -se \ | |
| perl -spe 's/^\s+\d+\s+//' \ | |
| sed -e '/^CommitSyncScript.*$/d' \ | |
> AUTHORS |
Recently I noticed that Safari 10 for Mac/iOS had achieved 100% support for ES6. With that in mind, I began to look at the browser landscape and see how thorough the support in the other browsers. Also, how does that compare to Babel and its core-js
runtime. According to an ES6 compatability table, Chrome, Firefox, and IE Edge have all surpassed what the Babel transpiler can generate in conjunction with runtime polyfills. The Babel/core-js combination achieves 71% support for ES6, which is quite a bit lower than the latest browsers provide.
It made me ask the question, "Do we need to run the babel es2015 preset anymore?", at least if our target audience is using Chrome, Firefox, or Safari.
It's clear that, for now, we can't create a site or application that only serves ES6. That will exclude users of Internet Explorer and various older browsers running on older iOS and Android devices. For example, Safari on iOS 9 has pretty mediocre ES6 support.
I think most of this stuff is now depracted. Looks like C++ is the only realistic way to go for implementing WebIDL bindings in Gecko. That's unfortuante, because if you are a JS dev, learning C++ can be challenging (though worth while! it's a fun language.)
This provides a gentle introduction to implementing a WebIDL interface in JavaScript. Once you are done, you can refer to the MDN Wiki, to add more advanced things.
We would encourage you to first build a simple prototype version of your API in JS. Going through the process of creating a WebIDL is fairly straight forward, but if you screw it up you will need to recreate a whole bunch of files, etc. As such, it's much easier to make sure you have your API in a good state before attempting the steps below.
#! /bin/bash | |
mkdir -p ./backgrounds | |
function get_google_device_art { | |
local device=$1 | |
# Get the Google Device backgrounds | |
curl "https://developer.android.com/distribute/marketing-tools/device-art-resources/$1/port_back.png" > "./backgrounds/$1_port_back.png" | |
curl "https://developer.android.com/distribute/marketing-tools/device-art-resources/$1/port_fore.png" > "./backgrounds/$1_port_fore.png" |
As a maintainer of native node add-on modules I have some questions about when and why NODE_MODULE_VERSION
changes:
(@rvagg has anwered these in the comments below)
Document moved to: https://github.com/servo/servo/blob/master/HACKING_QUICKSTART.md
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft
, elem.offsetTop
, elem.offsetWidth
, elem.offsetHeight
, elem.offsetParent
extension_id=jifpbeccnghkjeaalbbjmodiffmgedin # change this ID
curl -L -o "$extension_id.zip" "https://clients2.google.com/service/update2/crx?response=redirect&os=mac&arch=x86-64&nacl_arch=x86-64&prod=chromecrx&prodchannel=stable&prodversion=44.0.2403.130&x=id%3D$extension_id%26uc"
unzip -d "$extension_id-source" "$extension_id.zip"
Thx to crxviewer for the magic download URL.
import os | |
import sys | |
spark_home = os.environ.get('SPARK_HOME', None) | |
#if not spark_home: | |
# raise ValueError('SPARK_HOME environment variable is not set') | |
sys.path.insert(0, os.path.join(spark_home, 'python')) | |
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.2.1-src.zip')) | |
execfile(os.path.join(spark_home, 'python/pyspark/shell.py')) |