I hereby claim:
- I am hypery2k on github.
- I am hyper2k (https://keybase.io/hyper2k) on keybase.
- I have a public key whose fingerprint is 88EF 4441 51FB CEFD 450B 4DA7 8399 7039 462E AFB2
To claim this, I am signing this object:
'use strict'; | |
module.exports = function (grunt) { | |
require('load-grunt-tasks')(grunt); | |
require('time-grunt')(grunt); | |
grunt.loadNpmTasks('grunt-bower-task'); | |
grunt.initConfig({ | |
bower: { | |
install: { |
#galen|spec|v2 | |
# in the new spec lang v2 everything will be done based on indentation | |
# All sections will have their own structure | |
# | |
# Also we will get rid of '@@' symbols for importing, conditions, rules etc. | |
# | |
objects ( | |
login-button .login-button |
.col-xlg-20 { | |
width: 100%; | |
} | |
#main-panel { | |
width: 100% !important; | |
} |
#!/usr/bin/env node | |
// clean a specific dir recursivly | |
// e.g. clean_dir.js ./tmp | |
var args = process.argv.slice(2), | |
fs = require('fs'), | |
dir = args[0]; | |
var deleteFolderRecursive = function(path) { | |
if( fs.existsSync(path) ) { |
hr { | |
margin: 20px 0; | |
border: 0; | |
border-top: 1px dashed #c5c5c5; | |
border-bottom: 1px dashed #f7f7f7; | |
} | |
.learn a { | |
font-weight: normal; | |
text-decoration: none; |
I hereby claim:
To claim this, I am signing this object:
$('<style>.vis-background,.vis-labelset,.vis-timeline{overflow:hidden}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-conf |
oc create -f letsencrypt-clusterrole.yaml | |
oc adm policy add-cluster-role-to-user letsencrypt system:serviceaccount:bdkinfrastructure:letsencrypt | |
oc adm policy add-cluster-role-to-user letsencrypt system:serviceaccount:bdk-fo-dev:letsencrypt | |
// or maybe cluster-wide for our projects if possible |
SECRETS_KEYSTORE_PASSWORD=$(openssl rand -base64 512 | tr -dc A-Z-a-z-0-9 | head -c 17) | |
oc cluster up --version=latest | |
oc login -u system:admin | |
oc new-project redhat-sso | |
oc create serviceaccount sso-service-account | |
oc policy add-role-to-user view system:serviceaccount:redhat-sso:sso-service-account | |
oc create -n openshift -f https://raw.githubusercontent.com/jboss-openshift/application-templates/ose-v1.3.7/jboss-image-streams.json | |
for template in sso71-https.json \ | |
sso71-mysql-persistent.json \ |
Angular applications heavily rely on RxJS Observables. While building large front end apps with these technologies we quickly will need to learn how to manage subscribing to multiple Observables in our components. In this post we are going to cover five different ways to subscribe to multiple Observables and the pros and cons of each.
In our component, we will have three Observables. Each Observable has slightly different behavior. The first Observable emits a single value immediately. The second Observable emits a single value after a couple of seconds. The third Observable emits multiple values one value every second. Below are some functions that return the Observables that we will use in our components.
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';