Angular Material 2.0.0 beta 10 released

Over 140 bugfixes, breaking changes, new features are available in new major version
30 August 2017   2419

New release of Angular Material is available now. Version 2.0.0 is major and provides giant amount of cool new stuff.

What is Angular Material? 

Material Design components for Angular. The goal is to build a set of high-quality UI components built with Angular and TypeScript, following the Material Design spec. These components will serve as an example of how to write Angular code following best practices.

"High-quality" means:

  • Internationalized and accessible so that all users can use them.
  • Straightforward APIs that don't confuse developers.
  • Behave as expected across a wide variety of use-cases without bugs.
  • Behavior is well-tested with both unit and integration tests.
  • Customizable within the bounds of the Material Design specification.
  • Performance cost is minimized.
  • Code is clean and well-documented to serve as an example for Angular devs.

What's new in version 2.0.0? 

  • Over 140 bug fixes
  • Nested menus
  • Autocomplete supports md-optgroup
  • Overlay moved to @angular/cdk
  • New component MdSelectionList
  • md-input-container renamed to md-form-field (while still being backwards compatible)
  • Almost all components now use OnPush change detection (dialog being the exception)
  • You can now get back the EmbeddedViewRef when attaching a TemplatePortal
  • MdSidenav has been split into MdSidenav and MdDrawer. The MdSidenav is now meant to be used for top-level application navigation, while the drawer is meant to be used for more local split views. While there are no differences introduced between the two in this release, future releases will see different features added to each

Major changes:

  • Imports from @angular/cdk are now scoped to a specific sub-package. For example, if you previously had:
import {LiveAnnouncer, Overlay, Directionality} from '@angular/cdk';

You will now need to write:

import {LiveAnnouncer} from '@angular/cdk/a11y';
import {Directionality} from '@angular/cdk/bidi';
import {Overlay} from '@angular/cdk/overlay';

This helps ensure you're only pulling in the pieces of the cdk being used as well as providing more context about what an imported symbol is being used for.

The current set of public @angular/cdk subpackages are: a11y, bidi, coercion, collections, keycodes, observers, overlay, platform, portal, rxjs, scrolling, table.

 If you used the following code,

<md-chip-list [selectable]="selectable">
  <md-chip>My Chip</md-chip>

you should switch it to

  <md-chip [selectable]="selectable">My Chip</md-chip>

You can view all changes list at GitHub (it's huge!).

What is Vim.Wasm?

Small introduction to Vim port to WebAssembly with screenshot and developer notes
16 July 2018   45

Vim.wasm is experimental fork of Vim editor to compile it into WebAssembly using emscripten and binaryen.

Developer added some notices:

  • Please access from a desktop browser (Chrome/Firefox/Safari/Edge). Safari seems the best on macOS.
  • Please avoid mobile networks. Your browser will fetch some large files (up to 2.5MB).
  • vim.wasm takes key inputs from DOM keydown event. Please disable your browser extensions which affect key inputs (incognito mode would be the best).
  • This project is very early phase of experiment. Currently only tiny features are supported. More features will be implemented (please see TODO section). And you may notice soon on trying it... it's buggy :)
  • If inputting something does not change anything, please try to click somewhere in the page. Vim may have lost the focus.

The goal of this project is running Vim editor on browser by compiling Vim C sources into WebAssembly. 

Vim.wasm screenshot
Vim.wasm screenshot 

WebAssembly frontend for Vim is implemented as a new GUI frontend. C sources are compiled to each LLVM bitcode files and then they are linked to one bitcode file vim.bc by emccemcc finally compiles the vim.bc into vim.wasm binary using binaryen and generates HTML/JavaScript runtime.

You can find more info at GitHub.