Docker Machine release notes
読む時間の目安: 25 分0.16.0 (2018-11-08)
General
- Updated the default storage driver to
overlay2
for several systems. - Improved error reporting for the
ssh
subcommand when using the--native-ssh
flag.
Drivers
amazonec2
- Improved handling of VPC errors.
openstack
- Machine removal no longer fails upon attempting to delete a nonexistent keypair.
0.15.0 (2018-06-12)
General
docker-machine
can now be installed usinggo install
.- Docker Machine is now built with Go
1.10
. - SSH connections now include a keep alive option. (docker/machine #4450)
Drivers
amazonec2
- Updated default AMIs to mitigate Meltdown and Spectre.
- Added
--amazonec2-security-group-readonly
flag to prevent mutating security groups.
exoscale
- Updated driver to
v0.9.23
.
hyperv
- Fixed Hyper-V precreate issues. (docker/machine #4426)
- Added the ability to disable Hyper-V dynamic memory management during VM creation with
--hyperv-disable-dynamic-memory
.
vmwarefusion
- Improved shell checks (docker/machine #4491).
0.14.0 (2018-03-06)
General
- Added
--client-certs
flag to thedocker-machine regenerate-certs
command. - Improved OpenBSD support.
- Fixed a bug with
scp
commands issued from a Windows host. - Enabled progress output by default for
scp
commands usingrsync
. - Added
--quiet
flag toscp
to suppress progress output. - Machine now uses the
ss
command to detect connectivity whennetstat
is unavailable. - Added bash completion for
docker-machine mount
. - Improved provisioning resilience on Debian-based hosts.
Drivers
amazonec2
- Added support for
eu-west-3
region - Upon failure, the
create
command now ensures dangling resources are cleaned up before exiting - Machine creation no longer fails when waiting on spot instance readiness
digitalocean
- Added
--digitalocean-monitoring
flag - Increased the default droplet size
exoscale
- Updated driver library
- Several improvements and fixes to the default machine template
- Added support for user-provided SSH key (
--exoscale-ssh-key
) - Added support for arbitrary disk size
google
- Enabled disk auto-deletion on newly created machines.
- Fixed a bug preventing the removal of a machine if it had already been removed remotely.
- Added support for fully qualified network and subnetwork names.
hyperv
- Fixed potential cmdlet collision with VMWare powercli.
- Fixed a bug with virtual switch selection.
- Machine now correctly detects if the user is a Hyper-V administrator when using a localized version of Windows.
openstack
- Added
--openstack-config-drive
flag - Fixed an issue causing some user-uploaded keypairs to be removed when removing the associated machine.
- Fixed a bug preventing the removal of a machine if it had already been removed remotely.
virtualbox
- Added OpenBSD support
vmwarefusion
- Improved error detection and reporting when creating a new instance.
vmwarevsphere
- Added
--vmwarevsphere-folder
flag.
0.13.0 (2017-10-12)
General
- Added new
docker-machine mount
command for mounting machine directories over SSHFS. - Improved some logging messages.
- Fixed a bug with the
scp
command when using an identity file. - Fixed a parsing error that caused the boot2docker ISO cache to malfunction, forcing a new download everytime.
Drivers
azure
docker-machine rm
now also cleans up the associated storage account if it has no remaining storage containers.- The creation process will no longer recreate the associated subnet if it already it exists.
exoscale
- Updated driver.
- Removed default
docker-machine
affinity group if no other affinity group was specified.
virtualbox
- Fixed a bug where the machine would sometimes be assigned an invalid IP address at creation time.
vmwaresphere
- Added support for multiple networks.
0.12.2 (2017-7-12)
General
- The
scp
sub-command now allows to provide an optionaluser@
to the address. - Fixed bash completion on OS X.
Drivers
amazonec2
- Updated default AMIs to the latest version of Ubuntu 16.04 LTS.
- Fixed a bug preventing proper machine removal.
vmwarevsphere
- Creating VMs on a DRS-enabled cluster should now work properly.
- Fixed a bug that prevented provisioning.
vmwarefusion
- Fixed a bug that prevented provisioning.
exoscale
- Updated library.
0.12.1 (2017-6-30)
General
- Fixed an issue with the version comparison function that prevented machines created with Engine 17.06.0 from starting properly.
0.12.0 (2017-6-5)
General
- Various bash completion improvements.
- Bump Go to version 1.8.3.
Drivers
openstack
- Enable
HTTP_PROXY
- Enable
digitalocean
- Add support for tagging.
virtualbox
- Scope DHCP address range based on CIDR
generic
- Increase default timeout
google
- Add subnetwork support
Provisioners
- Remove restriction on
--engine-install-url
in default-to-boot2docker drivers (virtualbox
,vmwarefusion
, etc.) - Reduce provisioning time of SUSE/openSUSE systems
0.11.0 (2017-4-25)
General
- Various bugfixes and updated library dependencies
- new
docker-machine scp --delta
to invokersync
behind the scenes for more efficient transfer
Drivers
digitalocean
- Add support for tagging DigitalOcean instances.
google
- Add support for subnetworks
0.10.0 (2017-2-27)
General
- Various improvements to shell tab completion
- Add support for compiling on ARM64 architecture
Drivers
- Make
virtualbox
default driver amazonec2
- Update AMIs to latest version of Ubuntu 16.04 LTS
virtualbox
- Fix parsing of
--virtualbox-share-folder
on Windows
- Fix parsing of
google
- Add
--google-open-port
flag to specify additional ports to open
- Add
Provisioners
- Machine now uses systemd drop-in files instead of over-writing the system units
- Add support for upgrade to new Docker versioning scheme
- Use
dockerd
only in Docker versions where it is available - Support multiple architectures in SUSE provisioner
0.9.0 (2017-1-17)
General
- On Windows, the
COMPOSE_CONVERT_WINDOWS_PATHS
environment variable is now set bydocker-machine env
to improve Compose usability. - Docker Machine can now be built on FreeBSD
docker-machine scp
non-22 port supportscp
supports SSH agent- Bump Go version to 1.7.4
Drivers
amazonec2
- Credentials can now be loaded from IAM instance profiles
- Add
--amazonec2-userdata
flag - Add
--amazonec2-block-duration-minutes
flag - Add support for
us-east-2
(Ohio) - Update base images to Ubuntu 16.04
azure
- Add
--azure-dns
flag for specifying DNS names - Add
--azure-storage-type
flag - Allow using vnets from another resource group
- Add AzureGermanCloud support
- Add support for custom data
- Support Service Principal authentication
- Update base images to Ubuntu 16.04
- Add
digitalocean
- Add ability to specify the private SSH key path
gce
- Update base images to Ubuntu 16.04
virtualbox
- Shared folder location can be specified instead of “hardcoded” to
C:\Users
or/Users
- Shared folder location can be specified instead of “hardcoded” to
openstack
- Add support for
OS_CACERT
- Add support for
Provisioners
- OpenSUSE provisioner refactored to use properly supported 3rd party code
# 0.8.2 (2016-8-26)
- Update Go version to 1.7.1
0.8.1 (2016-8-20)
Provisioners
- Fix issue with generated systemd service file on RedHat family distros
Drivers
azure
- Bump Ubuntu image to 16.04
- Update docs with updated default parameters
- Change logging slightly
0.8.0 (2016-6-14)
General
- Fix issue with plugin heartbeat log repeating on disconnect
- Add
tcsh
support toenv --shell
- Add
zsh
completion scripts - Bump Go version to 1.6.2
Drivers
amazonec2
- Workaround to prevent orphaned SSH keys
virtualbox
- Add option for VM UI type (
--virtualbox-ui-type
)
- Add option for VM UI type (
vmwarefusion
- Fix CPU option inconsistency
openstack
- Expose user data parameter (
--openstack-user-data-file
)
- Expose user data parameter (
generic
- Copy public key to created Machine directory
Provisioners
- Add Oracle Enterprise Linux support
- Fix port binding of Swarm master
- Add ability to create a manager instance which does not get scheduled on
- Introduce
--swarm-join-opt
to pass options to agent nodes - Various SSH-related fixes
- Fix state for upgrade path
0.7.0 (2016-4-13)
General
DRIVER
environment variable now supported to supply value forcreate --driver
flag- Update to Go 1.6.1
- SSH client has been refactored
- RC versions of Machine will now create and upgrade to boot2docker RCs instead of stable versions if available
Drivers
azure
- Driver has been completely re-written to use resource templates and a significantly easier-to-use authentication model
digitalocean
- New
--digitalocean-ssh-key-fingerprint
for using existing SSH keys instead of creating new ones
- New
virtualbox
- Fix issue with
bootlocal.sh
- New
--virtualbox-nictype
flag to set driver for NAT network - More robust host-only interface collision detection
- Add support for running VirtualBox on a Windows 32 bit host
- Change default DNS passthrough handling
- Fix issue with
amazonec2
- Specifying multiple security groups to use is now supported
exoscale
- Add support for user-data
hyperv
- Machines can now be created by a non-administrator
rackspace
- New
--rackspace-active-timeout
parameter
- New
vmwarefusion
- Bind mount shared folder directory by default
google
- New
--google-use-internal-ip-only
parameter
- New
Provisioners
- General
- Support for specifying Docker engine port in some cases
- CentOS
- Now defaults to using upstream
get.docker.com
script instead of custom RPMs.
- Now defaults to using upstream
- boot2docker
- More robust eth* interface detection
- Swarm
- Add
--swarm-experimental
parameter to enable experimental Swarm features
- Add
0.6.0 (2016-02-04)
- Fix SSH wait before provisioning issue
0.6.0-rc4 (2016-02-03)
General
env
- Fix shell auto detection
Drivers
exoscale
- Fix configuration of exoscale endpoint
0.6.0-rc3 (2016-02-01)
- Exit with code 3 if error is during pre-create check
0.6.0-rc2 (2016-01-28)
- Fix issue creating Swarms
- Fix
ls
header issue - Add code to wait for Docker daemon before returning from
start
/restart
- Start porting integration tests to Go from BATS
- Add Appveyor for Windows tests
- Update CoreOS provisioner to use
docker daemon
- Various documentation and error message fixes
- Add ability to create GCE machine using existing VM
0.6.0-rc1 (2016-01-18)
General
- Update to Go 1.5.3
- Short form of command invocations is now supported
docker-machine start
,docker-machine stop
and others will now usedefault
as the machine name argument if one is not specified
- Fix issue with panics in drivers
- Machine now returns exit code 3 if the pre-create check fails.
- This is potentially useful for scripting
docker-machine
.
- This is potentially useful for scripting
docker-machine provision
command added to allow re-running of provisioning on instances.- This allows users to re-run provisioning if it fails during
create
instead of needing to completely start over.
- This allows users to re-run provisioning if it fails during
Provisioning
- Most provisioners now use
docker daemon
instead ofdocker -d
- Swarm masters now run with replication enabled
- If
/var/lib
is a BTRFS partition,btrfs
will now be used as the storage driver for the instance
Drivers
- Amazon EC2
- Default VPC will be used automatically if none is specified
- Credentials are now be read from the conventional
~/.aws/credentials
file automatically - Fix a few issues such as nil pointer dereferences
- VMware Fusion
- Try to get IP from multiple DHCP lease files
- OpenStack
- Only derive tenant ID if tenant name is supplied
0.5.6 (2016-01-11)
General
create
- Set swarm master to advertise on port 3376
- Fix swarm restart policy
- Stop asking for ssh key passwords interactively
env
- Improve documentation
- Fix bash on windows
- Automatic shell detection on Windows
help
- Don’t show the full path to
docker-machine.exe
on windows
- Don’t show the full path to
ls
- Allow custom format
- Improve documentation
restart
- Improve documentation
rm
- Improve documentation
- Better user experience when removing multiple hosts
version
- Don’t show the full path to
docker-machine.exe
on windows
- Don’t show the full path to
start
,stop
,restart
,kill
- Better logs and homogeneous behaviour across all drivers
Build
- Introduce CI tests for external binary compatibility
- Add amazon EC2 integration test
Misc
- Improve BugSnags reports: better shell detection, better windows version detection
- Update DockerClient dependency
- Improve bash-completion script
- Improve documentation for bash-completion
Drivers
- Amazon EC2
- Improve documentation
- Support optional tags
- Option to create EbsOptimized instances
- Google
- Fix remove when instance is stopped
- Openstack
- Flags to import and reuse existing nova keypairs
- VirtualBox
- Fix multiple bugs related to host-only adapters
- Retry commands when
VBoxManage
is not ready - Reject VirtualBox versions older that 4.3
- Fail with a clear message when Hyper-v installation prevents VirtualBox from working
- Print a warning for Boot2Docker v1.9.1, which is known to have an issue with AUFS
- Vmware Fusion
- Support soft links in VM paths
Libmachine
- Fix code sample that uses libmachine
- libmachine can be used in external applications
0.5.5 (2015-12-28)
General
env
- Better error message if swarm is down
- Add quotes to command if there are spaces in the path
- Fix Powershell env hints
- Default to cmd shell on windows
- Detect fish shell
scp
- Ignore empty ssh key
stop
,start
,kill
- Add feedback to the user
rm
- Now works when
config.json
is not found
- Now works when
ssh
- Disable ControlPath
- Log which SSH client is used
ls
- Listing is now faster by reducing calls to the driver
- Shows if the active machine is a swarm cluster
Build
- Automate 90% of the release process
- Upgrade to Go 1.5.2
- Don’t build 32bits binaries for Linux and OSX
- Prevent makefile from defaulting to using containers
Misc
- Update docker-machine version
- Updated the bash completion with new options added
- Bugsnag: Retrieve windows version on non-English OS
Drivers
- Amazon EC2
- Convert API calls to official SDK
- Make DeviceName configurable
- DigitalOcean
- Custom SSH port support
- Generic
- Don’t support
kill
sincestop
is not supported
- Don’t support
- Google
- Coreos provisionning
- Hyper-V
- Lot’s of code simplifications
- Pre-Check that the user is an Administrator
- Pre-Check that the virtual switch exists
- Add Environment variables for each flag
- Fix how Powershell is detected
- VSwitch name should be saved to config.json
- Add a flag to set the CPU count
- Close handle after copying boot2docker.iso into vm folder - will otherwise keep hyper-v from starting vm
- Update Boot2Docker cache in PreCreateCheck phase
- OpenStack
- Filter floating IPs by tenant ID
- VirtualBox
- Reject duplicate hostonlyifs Name/IP with clear message
- Detect when hostonlyif can’t be created. Point to known working version of VirtualBox
- Don’t create the VM if no hardware virtualization is available and add a flag to force create
- Add
VBox.log
to bugsnag crashreport - Update Boot2Docker cache in PreCreateCheck phase
- Detect Incompatibility with Hyper-v
- VSphere
- Rewrite driver to work with govmomi instead of wrapping govc
- All
- Change host restart to use the driver implementation
- Fix truncated logs
- Increase heartbeat interval and timeout
Provisioners
- Download latest Boot2Docker if it is out-of-date
- Add swarm config to coreos
- All provisioners now honor
engine-install-url
0.5.4 (2015-12-28)
This is a patch release to fix a regression with STDOUT/STDERR behavior (#2587).
0.5.3 (2015-12-14)
With this release Machine reverts to distribution in a single binary, which is more efficient on bandwidth and hard disk space. All the core driver plugins are now included in the main binary. Delete the old driver binaries that you might have in your path.
$ rm /usr/local/bin/docker-machine-driver-{amazonec2,azure,digitalocean,exoscale,generic,google,hyperv,none,openstack,rackspace,softlayer,virtualbox,vmwarefusion,vmwarevcloudair,vmwarevsphere}
Non-core driver plugins should still work as intended (in externally distributed binaries of the form docker-machine-driver-name
. Report any issues you encounter them with externally loaded plugins.
General
- Optionally report crashes to Bugsnag to help us improve docker-machine
- Fix multiple nil dereferences in
docker-machine ls
command - Improve the build and CI
docker-machine env
now supports emacs- Run Swarm containers in provisioning step using Docker API instead of SSH/shell
- Show docker daemon version in
docker-machine ls
docker-machine ls
can filter by engine labeldocker-machine ls
filters are case insensitive--timeout
flag fordocker-machine ls
- Logs use
logrus
library - Swarm container network is now
host
- Added advertise flag to Swarm manager template
- Fix
help
flag fordocker-machine ssh
- Add confirmation
-y
flag todocker-machine rm
- Fix
docker-machine config
for fish - Embed all core drivers in
docker-machine
binary to reduce the bundle from 120M to 15M
Drivers
- Generic
- Support password protected ssh keys though ssh-agent
- Support DNS names
- VirtualBox
- Show a warning if virtualbox is too old
- Recognize yet another Hardware Virtualization issue pattern
- Fix Hardware Virtualization on Linux/AMD
- Add the
--virtualbox-host-dns-resolver
flag - Allow virtualbox DNSProxy override
- Google
- Open firewall port for Swarm when needed
- VMware Fusion
- Explicitly set umask before invoking vmrun in vmwarefusion
- Activate the plugin only on OSX
- Add id/gid option to mount when using vmhgfs
- Fix for vSphere driver boot2docker ISO issues
- DigitalOcean
- Support for creating Droplets with Cloud-init User Data
- Openstack
- Sanitize keynames by replacing dots with underscores
- All
- Most base images are now set to
Ubuntu 15.10
- Fix compatibility with drivers developed with docker-machine 0.5.0
- Better error report for broken/incompatible drivers
- Don’t break
config.json
configuration when the disk is full
- Most base images are now set to
Provisioners
- Increase timeout for installing boot2docker
- Support
Ubuntu 15.10
Misc
- Improve the documentation
- Update known drivers list
0.5.2 (2015-11-30)
General
- Bash autocompletion and helpers fixed
- Remove
RawDriver
fromconfig.json
- Driver parameters can now be edited directly again in this file. - Change fish
env
variable setting to be global - Add
docker-machine version
command - Move back to normal
codegangsta/cli
upstream --tls-san
flag for extra SANs
Drivers
- Fix
GetURL
IPv6 compatibility - Add documentation page for available 3rd party drivers
- VirtualBox
- Support for shared folders and virtualization detection on Linux hosts
- Improved detection of invalid host-only interface settings
- Google
- Update default images
- VMware Fusion
- Add option to disable shared folder
- Generic
- New environment variables for flags
Provisioners
- Support for Ubuntu >=15.04. This means Ubuntu machines can be created which
work with
overlay
driver of lib network. - Fix issue with current netstat / daemon availability checking
0.5.1 (2015-11-16)
- Fixed boot2docker VM import regression
- Fix regression breaking
docker-machine env -u
to unset environment variables - Enhanced virtualization capability detection and
VBoxManage
path detection - Properly lock VirtualBox access when running several commands concurrently
- Allow plugins to write to STDOUT without
--debug
enabled - Fix Rackspace driver regression
- Support colons in
docker-machine scp
filepaths - Pass environment variables for provisioned Engines to Swarm as well
- Various enhancements around boot2docker ISO upgrade (progress bar, increased timeout)
0.5.0 (2015-11-1)
General
- Add pluggable driver model
- Clean up code to be more modular and reusable in `libmachine`
- Add `--github-api-token` for situations where users are getting rate limited
by GitHub attempting to get the current `boot2docker.iso` version
- Various enhancements around the Makefile and build toolchain (still an active WIP)
- Disable SSH multiplex explicitly in commands run with the "External" client
- Show "-" for "inactive" machines instead of nothing
- Make daemon status detection more robust ### Provisioners
- New CoreOS, SUSE, and Arch Linux provisioners
- Fixes around package installation / upgrade code on Debian and Ubuntu ### CLI
- Support for regular expression pattern matching and matching by names in `ls --filter`
- `--no-proxy` flag for `env` (sets `NO_PROXY` in addition to other environment variables) ### Drivers
- `openstack`
- `--openstack-ip-version` parameter
- `--openstack-active-timeout` parameter
- `google`
- fix destructive behavior of `start` / `stop`
- `hyperv`
- fix issues with PowerShell
- `vmwarefusion`
- some issues with shared folders fixed
- `--vmwarefusion-configdrive-url` option for configuration via `cloud-init`
- `amazonec2`
- `--amazonec2-use-private-address` option to use private networking
- `virtualbox`
- Enhancements around robustness of the created host-only network
- Fix IPv6 network mask prefix parsing
- `--virtualbox-no-share` option to disable the automatic home directory mount
- `--virtualbox-hostonly-nictype` and `--virtualbox-hostonly-nicpromisc` for controlling settings around the created hostonly NIC
0.4.1 (2015-08)
- Fixes
upgrade
functionality on Debian based systems - Fixes
upgrade
functionality on Ubuntu based systems
0.4.0 (2015-08-11)
Updates
- HTTP Proxy support for Docker Engine
- RedHat distros now use Docker Yum repositories
- Ability to set environment variables in the Docker Engine
- Internal libmachine updates for stability
Drivers
- Google:
- Preemptible instances
- Static IP support
Fixes
- Swarm Discovery Flag is verified
- Timeout added to
ls
command to prevent hangups - SSH command failure now reports information about error
- Configuration migration updates
0.3.0 (2015-06-18)
Features
- Engine option configuration (ability to configure all engine options)
- Swarm option configuration (ability to configure all swarm options)
- New Provisioning system to allow for greater flexibility and stability for installing and configuring Docker
- New Provisioners
- Rancher OS
- RedHat Enterprise Linux 7.0+ (experimental)
- Fedora 21+ (experimental)
- Debian 8+ (experimental)
- PowerShell support (configure Windows Docker CLI)
- Command Prompt (cmd.exe) support (configure Windows Docker CLI)
- Filter command help by driver
- Ability to import Boot2Docker instances
- Boot2Docker CLI migration guide (experimental)
- Format option for
inspect
command - New logging output format to improve readability and display across platforms
- Updated “active” machine concept - now is implicit according to
DOCKER_HOST
environment variable. Note: this removes the implicit “active” machine and can no longer be specified with theactive
command. You change the “active” host by using theenv
command instead. - Specify Swarm version (
--swarm-image
flag)
Drivers
- New: Exoscale Driver
- New: Generic Driver (provision any host with supported base OS and SSH)
- Amazon EC2
- SSH user is configurable
- Support for Spot instances
- Add option to use private address only
- Base AMI updated to 20150417
- Google
- Support custom disk types
- Updated base image to v20150316
- Openstack
- Support for Keystone v3 domains
- Rackspace
- Misc fixes including environment variable for Flavor Id and stability
- Softlayer
- Enable local disk as provisioning option
- Fixes for SSH access errors
- Fixed bug where public IP would always be returned when requesting private
- Add support for specifying public and private VLAN IDs
- VirtualBox
- Use Intel network interface driver (adds great stability)
- Stability fixes for NAT access
- Use DNS pass through
- Default CPU to single core for improved performance
- Enable shared folder support for Windows hosts
- VMware Fusion
- Boot2Docker ISO updated
- Shared folder support
Fixes
- Provisioning improvements to ensure Docker is available
- SSH improvements for provisioning stability
- Fixed SSH key generation bug on Windows
- Help formatting for improved readability
Breaking Changes
- “Short-Form” name reference no longer supported Instead of “docker-machine “ implying the active host you must now use docker-machine
- VMware shared folders require Boot2Docker 1.7
Special Thanks
We would like to thank all contributors. Machine would not be where it is without you. We would also like to give special thanks to the following contributors for outstanding contributions to the project:
- @frapposelli for VMware updates and fixes
- @hairyhenderson for several improvements to Softlayer driver, inspect formatting and lots of fixes
- @ibuildthecloud for rancher os provisioning
- @sthulb for portable SSH library
- @vincentbernat for exoscale
- @zchee for Amazon updates and great doc updates
0.2.0 (2015-04-16)
Core Stability and Driver Updates
Core
- Support for system proxy environment
- New command to regenerate TLS certificates
- Note: this will restart the Docker engine to apply
- Updates to driver operations (create, start, stop, etc) for better reliability
- New internal
libmachine
package for internal api (not ready for public usage) - Updated Driver Interface
- Driver Spec
- Removed host provisioning from Drivers to enable a more consistent install
- Removed SSH commands from each Driver for more consistent operations
- Swarm: machine now uses Swarm default binpacking strategy
Driver Updates
- All drivers updated to new Driver interface
- Amazon EC2
- Better checking for subnets on creation
- Support for using Private IPs in VPC
- Fixed bug with duplicate security group authorization with Swarm
- Support for IAM instance profile
- Fixed bug where IP was not properly detected upon stop
- DigitalOcean
- IPv6 support
- Backup option
- Private Networking
- Openstack / Rackspace
- Gophercloud updated to latest version
- New insecure flag to disable TLS (use with caution)
- Google
- Google source image updated
- Ability to specify auth token via file
- VMware Fusion
- Paravirtualized driver for disk (pvscsi)
- Enhanced paravirtualized NIC (vmxnet3)
- Power option updates
- SSH keys persistent across reboots
- Stop now gracefully stops VM
- vCPUs now match host CPUs
- SoftLayer
- Fixed provision bug where
curl
was not present
- Fixed provision bug where
- VirtualBox
- Correct power operations with Saved VM state
- Fixed bug where image option was ignored
CLI
- Auto-regeneration of TLS certificates when TLS error is detected
- Note: this will restart the Docker engine to apply
- Minor UI updates including improved sorting and updated command docs
- Bug with
config
andenv
with spaces fixed- Note: you now must use
eval $(docker-machine env machine)
to load environment settings
- Note: you now must use
- Updates to better support
fish
shell - Use
--tlsverify
for bothconfig
andenv
commands - Commands now use eval for better interoperability with shell
Testing
- New integration test framework (bats)
0.1.0 (2015-02-26)
Initial beta release.
- Provision Docker Engines using multiple drivers
- Provide light management for the machines
- Create, Start, Stop, Restart, Kill, Remove, SSH
- Configure the Docker Engine for secure communication (TLS)
- Easily switch target machine for fast configuration of Docker Engine client
- Provision Swarm clusters (experimental)
Included drivers
- Amazon EC2
- DigitalOcean
- Microsoft Azure
- Microsoft Hyper-V
- Openstack
- Rackspace
- VirtualBox
- VMware Fusion
- VMware vCloud Air
- VMware vSphere


Surprise, surprise...it actually works. Welcome to my humble digital abode. Please, explore. Take your time. Though, try not to wreck anything.
Tra La LaSo...I am still riding the high, getting this code to run. So don't expect some nuanced, flouncy intro. If you are looking for a baby-techie, unqualified legal counsel or political advisor in training, I'm all ears... And a heads up. I'm brushing up on my French, Dutch + Arabic - so watch those language flips. Yes, I like to keep you on your toes.
Allons-y!I take much pride in the work I do - regardless of its nature. You have a, shall we say, 'diamond guarantee'.
State borders are overrated. Work is transnational. So, wherever you are, I'm glad you're here.
Do you remember good, old-fashioned linguistic acuity ? Snappy banter that merits thunderous applause ? I sure do. And like Kimmie K and her bodysuits, I am bringing it back in.
Just so you know... Even on this digital plane, much xx sits behind my work.
Ready to start your next project with moi? That's great! Calls + emails, always welcome.
123-456-6789


We use military-grade numerical objects to supercharge our engagement. There are many such numbers, for instance twelve, seventy-three, six point zero two, and others.
Birth. Death. Retirement. Cryogenic freezing. Taxes. Off-shore taxes. Taxable income. Stocks as taxable income. Think about some of the problems in your life. Well, Corporate Fantasy Adventures, LLC can help with those.
How will we compare to humanity's survival? We hope to provide a counterpoint to today's accelerating culture by promoting our long-term projections for the future.
We have fun and interesting answers for all your questions. We take lots of pictures, so it's easy to see what we're doing. Get to know us.

When you were birthed, I too rose anew. I became something...Other.
I love you.
And I love this company.
We go in early to help founders secure their patents. We are their R&D, their CTO, their Chief of Security, and their Information Assurance Officer. We use best-of-breed teams, supply strategic vision, and ultimately, we become a critical supplier of funds and, more importantly, help them shape a marketable product or service.
Then, we go to market. We target investors like our existing syndicate and others that hold similar portfolios of forward-thinking ventures. We monetize the business through our own capital and through syndication. And the only way it can work is if both the product/service and the data turn out to be substantially better than what is already out there.
We are absolutely and unapologetically following the money here. The smart money that is.
People moved by our Story
In Global Investments
Cases of COVID-19 in the U.S.A.
Mother
Attendees will have access to present materials and the chance to meet the Career Services team. From our hands-on, interactive workshops to inspiring keynotes, every session will be geared towards helping you answer one of the most important questions you’ll ever ask yourself. Come dressed to connect! Light refreshments will be provided. Register today and prepare to Walk into Your Job at Corporate Fantasy Adventures, LLC.


Dataviz ♥ Web
Exploring Web Graphics APIs for Data Visualization
@miguelrios , Twitter Inc.
Use this slide only when introduced. Thank you!
@miguelrios?
Hello everyone, I'm Miguel Rios. I work at Twitter's data visualization team. We create tools to help the company explore, analyze and visualize our large datasets.
Part of my job is to develop data visualizations using the diverse set of frameworks and standards that the web offers today.
Outline
Brief overview of Web Graphics Standards and APIs.
Real life examples.
Basic guidelines.
In this talk I'll give you a brief overview of these wonderful technologies. Then I'll show you a few real-life examples of our use of them at Twitter and finally, I'll end with some recommendations and guidelines on how to safely use these technologies to your advantage.
Plenty of Options
HTML/CSS
SVG
HTML5 Canvas
WebGL
I figured the best way to start a presentation about web graphic APIs is to actually show some visualizations using them. What you see in the screen is four set of circles with different sizes and colors being drawn using four different technologies.
In the top left, the circles are drawn using HTML and styled using CSS. HTML is the main markup language for creating web pages and other information that can be displayed in a web browser.
In the top right the elements are drawn using SVG, which stands for Scalable Vector Graphics, a vector image format for two-dimensional graphics that has support for interactivity and animation and its supported by all major modern browsers.
In the bottom left, the circles are drawn using canvas. The canvas element is part of HTML5 and allows for dynamic, scriptable rendering of 2D shapes and bitmap images.
Finally, in the bottom right, the elements are drawn using WebGL. WelGL, which stands for Web Graphics Library is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser.
Now, in order to help you understand one of the simplest but most important differences between these technologies, I want you to visualize how the web browser sees these visualizations. To do this, I'm going to use a very awesome extension for Firefox called Tilt to actually visualize my presentation about data visualization.
OPEN TILT
As you may see, there's a big difference in how the circles are being drawn in the web browser. The circles at the top look like actually objects in top of the document, while the ones in the bottom look like an image.
TURN OFF SCREEN.
This is a very important distinction and I want to explain it by diving in with some examples.
I like to use two metaphors to explain these drawing modes. They are not perfect but they helped me understand them better and I certainly hope they will help you too.
TURN ON SCREEN
Retained Drawing
(HTML, SVG)
Photo credit: kbeil on Flickr.
I see retained drawing as these shape puzzles kids use to learn colors and shapes. The shapes can be touched, moved around and, well, in theory, you could alter their shape and color. My point is, they are there for you to manipulate directly.
SVG Example
Now I'm going to show you some basic examples so you see how these difference look like in code.
First, this is how you draw a circle using SVG. It's very simple XML code. You open a SVG tag and then insert a circle tag with some attributes. CX and CY take the coordinates of the center of the circle, r takes its radius and in the style attribute you can add CSS rules like a color to fill the circle.
TURN OFF SCREEN.
Now, if you are building interactive data visualizations, it's very unlikely you are going to write SVG code directly. You will probably use either plain Javascript, or one of the many libraries that are open source and help you to programatically perform operations in your objects.
I like to use d3.js, which is a relatively new but well-known JavaScript library for manipulating documents based on data.
TURN ON SCREEN.
SVG Example (using d3.js)
// append svg to parent div.
var svg = d3.select("#example-svgd3").append("svg")
.attr("width", 300)
.attr("height", 300);
// append a circle to the svg element.
var circle = svg.append("circle")
.attr("cx", 150)
.attr("cy", 150)
.attr("r", 100)
.style("fill", "#1f77b4");
Now this is the d3 code used to draw the same circle. It's basically the same thing, but it's in Javascript. The simplest way to show the advantage of using d3 or Javascript is the ability to change properties from the drawn elements programatically.
Please note that when we are drawing the circle, we are storing a reference to it in the variable "circle".
SVG Animation (using d3.js)
// animate the circle radius from 100 to 10 pixels.
circle.transition()
.attr("r", 10)
.delay(5000)
.duration(5000);
Now, let's do a very simple animation. To do this in d3, I simply performed the operation 'transition' in the circle, with the new radius of the circle and a few other optional properties. As you see, the circle is still there but it's smaller now.
TODO: add the circle object with the changing radius.
Canvas Example
// retrieve context from canvas.
var canvas = document.getElementById("dot-example");
var context = canvas.getContext('2d');
// draw circle inside canvas.
context.beginPath();
context.arc(150, 150, 100, 0, 2 * Math.PI, false);
context.fillStyle = "#1f77b4";
context.fill();
Now, I want to show you the same circle, the same animation using canvas. I won't go through the code, but the main difference here is that we are not creating a 'circle' object. Instead, we are performing the operation of drawing in the canvas itself.
Canvas Animation
var r = 100;
var interval = setInterval(function(){
r = r - 1;
context.clearRect(0, 0, canvas.width, canvas.height);
context.beginPath();
context.arc(150, 150, r, 0, 2 * Math.PI, false);
context.fillStyle = "#1f77b4";
context.fill();
if(r == 10){
clearInterval(interval);
}
},50);
In the animation, the main difference here is that we are storing a reference to the circle's radius ourselves and performing the resize operation by redrawing the circle every 50 miliseconds until it's 10 pixels.
Examples
TURN OFF SCREEN.
Now I want to show you a few examples of data visualizations we have created at Twitter. These three examples make use of these four web graphic APIs where we believe it was appropiate. I want to use these examples as the base to provide you with a set of guidelines whenever you have to choose between these APIs.
2012 U.S. Elections Map
Engagement of tweets sent by the Presidential Candidates for the 2012 elections.
The first example is an interactive visualization we published last fall, right before the US Elections. We were curious about how U.S. Twitter users engaged with all the tweets the Candidates were publishing. To do this, we grabbed all of their tweets, tagged them with topics, and evaluated how users from different states engaged with them.
The results looked very promising, thus we developed an interactive, exploratory visualization that we published in our Elections portal. You still can access this visualization by visiting http://elections.twitter.com/map.
The main purpose of this visualization was to let journalists and users in general explore it, see how individual tweets were received by different states and see which tweets were received the better by particular states.
The visualization has four main components: two bar charts, left and right, representing the individual tweets, sized by the amount of engamenent (ie. rts and favourites) they reveived. In the center there's a U.S. map with each state colored by the amount of engagement the selected tweet received there, a search box to lookup tweets with different keywords and topics, and a distribution chart showing the topics the users for a particular state engaged the most with.
Most of the components of this visualization are interactive. You can click an individual tweet to see the distribution of engagement by country and topic, and you can also click on a particular state to see which tweets had more engagement in that particular state.
Here are some of the findings users got thanks to the interactivity of this visualiation:
1. When you search for tweets about coal, you can see how users from high-production coal states engaged the most with tweets from Mitt Romney.
2. Users from southeastern states had unusual engagements with tweets about Pell Grants.
3. Users from different states cared the most with different topics:
- Users from Texas cared the most about tweets about Immigration.
- Users from Washington state cared the most about Gay Rights.
- Users from New York cared the most about Abortion rights.
- Users from Nevada cared the most about Taxes.
OPEN TILT
Most of the visualization is actually HTML, including the bar charts that represent the tweets. However, in order to draw the complex shapes of the 50 states, we used SVG, which has very nice support for custom shapes. We used SVG also because it's very simple to attach information to the state shapes,which is very useful when you want to click on a state and actually know which state you click on. SVG was also very helpful here, given that we could set the color of each shape to be encoded with different values by just changing a property in the shape objects.
Also, you can't see it in this view, but we generated static map images for every tweet, so users with browsers with no SVG support would see the visualizations too, even though they couldn't click on the states.
CLOSE TILT
Elections Map
Attribute
Elections Map
Example #2
Example #3
Number of elements:
Low
Complexity of elements:
High
Interactivity?
Yes
Animations?
No
Browser support:
IE7+
Open source resources:
d3.js
Standard
HTML/SVG
Just to recap in this visualization, here's a brief summary of its attributes:
- It has a low number of elements. Only 50 shapes for states and 50 bars for the individual tweets.
- The elements are itself of complex shapes, specifically the states.
- This visualization is very interactive.
- It has no animations.
- We released this to the public, so we wanted to support as many browsers as possible. The visualization works in IE 7 and newer browsers. For browsers with no SVG support we replaced the interactive states map with a static snapshot.
HTML/SVG
Good choice for small number of elements, complex shapes, interactive visualizations.
2011 Japan Earthquake
Visualization of tweets directed at, or posted by, users from Japan, retweets and reach of those tweets.
For the second example, I'm going to show you a visualization of tweets traveling through the world we did after the devastating earthquake and tsunami that hit Japan in March, 2011. After the earthquake, we noticed a very high spike in tweets and general use of Twitter from Japan. Later on, reports surfaced of problems with the regular communication channels, and Twitter users there resorted to use Twitter to let friends and relative know they are well as well as to be aware about the latest news and developments about the event.
In the visualization you can see tweets mentioning Japan users sent from all over the world as well as tweets from Japan users mentioning others around the globe. Also, as tweets are mostly public, they get propagated to other users by being retweeted, which you can see in yellow and green.
Now, unlike the first visualization, this one is just an animation used to complement a bigger story we shared in our blog. We released it as a video, and users can't interact with it. In order to explain you which technologies we used to do this visualization and why, I'd like to explain what's happening in the most basic layer.
The path of a tweet
In the basic level, what we are doing in this visualization is just drawing circles on a path. That's mostly it.
Trail: SVG vs. Canvas
We also added a trail behind the tweets, so the user remembers that a tweet traveled between those two points even when the circle already arrived to its destination. To do this, we are basically drawing circles along the path. That's all what's happening in this visualization, 1000s times.
Now, here is an example of drawing four tweets and their trails using this technique, both in SVG at the left, and canvas at the right of the screen.
I'm going to open Tilt again and see the footprint these visualizations are leaving in the browser.
OPEN TILT
As you can see, the SVG one retains references to all the circles we are drawing along the way. This could be handy if we wanted to access these circles later on, maybe to remove them after certain amount of time. in this case we don't need to use them after drawing them. We are just drawing and forgetting about it. This is a perfect case for ccamvas, as we are drawing in an image instead of adding elements inside some document that we are not going to use later on.
Japan Earthquake Viz
Attribute
Elections Map
Japan Earthquake
Example #3
Number of elements:
Low
Large
Complexity of elements:
High
Low
Interactivity?
Yes
No
Animations?
No
Yes
Browser support:
IE7+
Latest
Open source resources:
d3.js
processing.js
Standard
HTML/SVG
HTML 5 Canvas
Canvas
Great for small-to-relatively-large number of elements and animations.
No more to say other than the text in the screen.
Neil Armstrong's visualization
Retweets from @NASA's tweet about Neil Armstrong passing away.
The third example is a visualization of tweets about Neil Armstrong the day he passed away. As with the second example, we used this visualization as a complement to a story we published in our blog.
We queried all the tweets mentioning Neil Armstrong the day he passed away, and then tried to come with a visualization that could serve as a tribute to him, not just by us at Twitter but from everyone who tweeted about him that day.
The first problem we had when trying to do this visualization is that we found a total of 1.4 million tweets mentioning Neil Armstrong that day. We could aggregate them in some way, but at that stage it was unclear how we wanted to visualize this data.
We tried to use WebGL to visualize this dataset, given that it works very well by using hardware acceleration using both the CPU and the computer's GPU (graphical processing unit).
We decided to use the space methaphor in the visualization. Every tweet was represented as a light, or a candle, in Earth, while we zoom out and the globe spins, until the camera reaches the surface of the Moon.
Even though we used this visualization as a video, the full version is an interactive visualization you can zoom, move around, and even better, you can alter the point og the animation you want to see.
A good view we can get using this feature is Europe's reaction. When the news of Neil Armstrong passing away were published it was late at night in Europe. That's why you can see a few lights/tweets but not that much. As soon as it's dawn, users started to tweet about him as they learned the sad news.
As you can see, this is a 3d visualization with a lot going on. There's a full scene of space with the Earth, night/day time, the orbiting Moon and more than a million tweets being rendered in the screen. WebGL was the only way to go in this case.
Neil Armstrong Visualization
Attribute
Elections Map
Japan Earthquake
Neil Armstrong
Number of elements
Low
Large
Large
Complexity of elements
High
Low
High
Interactivity?
No
Yes
Yes
Animations?
No
Yes
Yes
Browser support
IE7+
Latest
Latest
Open source resources
d3.js
processing.js
PhiloGL
Standard
HTML/SVG
HTML 5 Canvas
WebGL
Just talk about the table.
WebGL
Great for small-to-very-large number of elements, complex shapes, animations, 3d visualizations.
Before diving in, ask yourself:
How many elements in the visualization?
How complex are these elements shaped/arranged?
Is it going to be interactive?
Will it have animations or transformations?
Do you need to support older web browsers?
Are there related open source examples or frameworks? Spoiler: yes.
As you noticed, I used the same set of attributes for all visualizations. Whenever there's some new data we want to visualize, these are the first questions we have asked ourselves to start thinking about which technologies and libraries we should use or avoid.
Just repeat what you see in screen.
Graph of Twitter Employees
Conversations between Twitter employees. By Santiago Ortiz (@moebio )
Now I want to show you real quick a last example. This one doesn't come from Twitter, but it's about Twitter. It's an awesome, although a bit creepy graph of conversations by Twitter employees, done by Santiago Ortiz, who is actually going to speak here later.
It's a highly interactive visualization. Employees are nodes in the graph, conversations between then are mapped using lines between the nodes. You can hover in the nodes and see information about them and you can click in a node to see the graph from a different perspective. So this is an interactive visualization, with animations, information attached in every node and edge, and it works very smoothly, even though it must have tens of thousands of elements between the nodes and connections.
V1: Now, quick question to all of you: using what I showed you before about these graphic technologies, how many of you think this is a visualization done using canvas?
WAIT
How many of you think this is a visualization done in SVG?
WAIT
Well... It's actually a visualization done in canvas. All the interactivity, the information attached to the elements in the visualization is there, presumably developed by Santiago as a layer of abstraction in top of the canvas visualization.
And that brings me to the last poing of this talk. If you take only one thing out of these last 40 minutes, let it be this:
Don't let frameworks and APIs limit your visualizations.
Be creative.
I think that when you are starting to learn about data visualization and the web, you should use these guidelines I explained before. You should also try to learn how libraries and frameworks you are using work under the hood.
That said, there will be one point in which you'll probably feel comfortable enough to start breaking the rules and take these technologies to their edges. At that point, you shouldn't stop and be bounded by this "limitations". Web browseres and these graphics APIs are getting ridiculously good, and the open source community has done an amazing job in building frameworks and libraries that will help you to take your visualizations to the next level.
So my final point is this: no matter what, don't let a framework, library or technology, limit your visualizations. Above everything else, just be creative.


Oct-2019 : I have accepted a position at Oracle Labs.
Jun-2019 : New paper available: Mir-BFT: High-Throughput BFT for Blockchains" .
Apr-2018 : Our paper on "Locking Timestamps Versus Locking Objects" has been accepted at PODC 2018.
Apr-2018 : Our paper on "Log-Free Concurrent Data Structures" has been accepted at USENIX ATC 2018.
Oct-2017 : I've moved to IBM Research, Zurich.
Sep-2017 : I've successfully defended my PhD thesis.


endpoint POST debugger
drivername
password
ability
firstname
lastname
email
address
city
state
zip
phone


Thanks for introducing me to my first games and introducing me to new games to this day. Thanks for helping me with difficult fly-jumps in Spyro, for doing the Neo Cortex victory dance with me, and for tolerating my blatant screen watching in Halo 2 (despite my denial of the accusations - which remains my official stance).
I hope I'll get to play and enjoy many more games with you over the years as we've done for close to three decades now. Maybe we'll finally be able to play Halo 69 on the Xbox 420 in three more decades.
It's been close to 30 years since you first touched Lemmings and Prince of Persia - and so it felt fitting to get you a frustrating low-res side scroller for this birthday.
Happy birthday!


Bitwise and expression. Produces left & right.
Bitwise or expression. Produces left | right.
Bitwise xor expression. Produces left ^ right.
Divide two numbers. Produces left / right.
Equality expression. Checks if left == right.
Greater than or equal to expression. Checks if left >= right.
Get the bit value of an expression at a specific index. The meaning of index differs if value is an integer or a byte string.
For integers, bit indexing begins with low-order bits. For example, :code:GetBit(Int(16), Int(4))
yields 1. Any other valid index would yield a bit value of 0. Any integer less than 64 is a
valid index.
For byte strings, bit indexing begins at the first byte. For example, :code:GetBit(Bytes("base16", "0xf0"), Int(0))
yields 1. Any index less than 4 would yield 1, and any valid index 4 or greater would yield 0.
Any integer less than 8*Len(value) is a valid index.
Requires TEAL version 3 or higher.
The value containing bits. Can evaluate to any type.
The index of the bit to extract. Must evaluate to uint64.
Extract a single byte as an integer from a byte string.
Similar to GetBit, indexing begins at the first byte. For example, :code:GetByte(Bytes("base16", "0xff0000"), Int(0))
yields 255. Any other valid index would yield 0.
Requires TEAL version 3 or higher.
The value containing the bytes. Must evaluate to bytes.
The index of the byte to extract. Must evaluate to an integer less than Len(value).
Greater than expression. Checks if left > right.
Less than or equal to expression. Checks if left <= right.
Less than expression. Checks if left < right.
Subtract two numbers. Produces left - right.
Modulo expression. Produces left % right.
Multiply two numbers. Produces left * right.
"Difference expression. Checks if left != right.
Generated using TypeDoc
Add two numbers. Produces left + right.


Kim Min Joon will likely return with new JTBC drama as his first production since marriage
by beansssActor Kim Min Joon will be returning to promotions with his first drama since marriage!
On November 12, media outlets reported that Kim Min Joon has been cast as a male lead of an upcoming JTBC drama, 'Begin Again'. In response to the reports, Kim Min Joon's label revealed, "We are in the final stages of discussions for 'Begin Again'."
Filming for 'Begin Again' is set to kick off at the end of this month. Actress Song Ji Hyo is in talks to star as the female lead of the drama, telling the story of a single mother of 14-years and her strange encounter with three men - a player, a younger man, and a dangerous, sexy man.
Meanwhile, actor Kim Min Joon tied the knot with Kim Da Mi - well-known as G-Dragon's older sister - last month.


{% extends "admin/base_site.html" %} {% block content %}
Turkle is a Mechanical Turk-compatible web application for collecting annotations.