AMQP 1.0 Protocol Driver Deployment Guide¶
Introduction¶
The AMQP 1.0 Protocol Driver is a messaging transport backend supported in oslo.messaging. The driver maps the base oslo.messaging capabilities for RPC and Notification message exchange onto version 1.0 of the Advanced Message Queuing Protocol (AMQP 1.0, ISO/IEC 19464). The driver is intended to support any messaging intermediary (e.g. broker or router) that implements version 1.0 of the AMQP protocol.
More detail regarding the AMQP 1.0 Protocol is available from the AMQP specification.
More detail regarding the driver’s implementation is available from the oslo specification.
Abstract¶
The AMQP 1.0 driver is one of a family of oslo.messaging backend drivers. It currently supports two types of message intermediaries. The first type is an AMQP 1.0 messaging broker and the second type is an AMQP 1.0 message router. The driver should support additional intermediary types in the future but may require additions to driver configuration parameters in order to do so.
| Intermediary Type | RPC Pattern | Notify Pattern | Message Treatment | Topology |
| Message Router | Yes | Limited | Direct Messaging | Single or Mesh |
| Message Broker | Yes | Yes | Store and Forward | Single or Cluster |
Direct Messaging¶
The direct messaging capabilities provided by the message router intermediary type are recommended for the oslo.messaging RPC messaging pattern.
Additionally, the message router intermediary may be used for the Notification messaging pattern with the consideration that notification messages will be dropped when there is no active consumer. The message router does not provide durability or store-and-forward capabilities for notification messages.
The driver can readily scale operation from working with a single instances of a message router to working with a large scale routed mesh interconnect topology.
Store and Forward¶
The store and forward capabilities provide by the message broker intermediary type are recommended for the oslo.message Notification messaging pattern. This driver is able to work with a single instance of a message broker or a clustered broker deployment.
Oslo.messaging provides a mechanism to configure separate backends for RPC and Notification communications. This document provides deployment and configuration information for use of this driver in oslo.messaging.
Addressing¶
A new address syntax was added to the driver to support efficient direct message routing. This new syntax will also work with a broker intermediary backend but is not compatible with the address syntax previously used by the driver. In order to allow backward compatibility, the driver will attempt to identify the intermediary type for the backend in use and will automatically select the ‘legacy’ syntax for broker-based backends or the new ‘routable’ syntax for router-based backends. An address mode configuration option is provided to override this dynamic behavior and force the use of either the legacy or routable address syntax.
Message Acknowledgement¶
A primary functional difference between a router and a broker intermediary type is when message acknowledgement occurs.
The router does not “store” the message hence it does not generate an acknowledgement. Instead the consuming endpoint is responsible for message acknowledgement and the router forwards the acknowledgement back to the sender. This is known as ‘end-to-end’ acknowledgement. In contrast, a broker stores then forwards the message so that message acknowledgement is performed in two stages. In the first stage, a message acknowledgement occurs between the broker and the Sender. In the second stage, an acknowledgement occurs between the Server and the broker.
This difference affects how long the Sender waits for the message transfer to complete.
+dispatch+
| (3) |
| |
| v
+--------------+ (1) +----------+ (2) +--------------+
| Client |---------->| Router |----------->| Server |
| (Sender) |<----------| (Direct) |<-----------| (Listener) |
+--------------+ (5) +----------+ (4) +--------------+
For example when a router intermediary is used, the following sequence occurs:
- The message is sent to the router
- The router forwards the message to the Server
- The Server dispatches the message to the application
- The Server indicates the acknowledgement via the router
- The router forwards the acknowledgement to the Sender
In this sequence, a Sender waits for the message acknowledgement until step (5) occurs.
+dispatch+
| (4) |
| |
| v
+--------------+ (1) +----------+ (3) +--------------+
| Client |---------->| Broker |----------->| Server |
| (Sender) |<----------| (Queue) |<-----------| (Listener) |
+--------------+ (2) +----------+ (5) +--------------+
And when a broker intermediary is used, the following sequence occurs:
- The message is sent to the broker
- The broker stores the message and acknowledges the message to the Sender
- The broker sends the message to the Server
- The Server dispatches the message to the application
- The Server indicates the acknowledgement to the broker
In this sequence, a Sender waits for the message acknowledgement until step (2) occurs.
Therefore the broker-based Sender receives the acknowledgement earlier in the transfer than the routed case. However in the brokered case receipt of the acknowledgement does not signify that the message has been (or will ever be) received by the Server.
Batched Notifications Note Well¶
While the use of a router intermediary for oslo.messaging Notification is currently not recommended, it should be noted that the use of a router intermediary with batched notifications may exacerbate the acknowledgement wait time for a Sender.
For example, when a batched notification configuration is used where batch size is set to 100, the Server will wait until 100 notification messages are buffered (or timeout occurs) before dispatching the notifications to the application for message acknowledgement. Since each notifier client can have at most one message outstanding (e.g. pending acknowledgement), then if the total number of notifying clients are less than 100 the batch limit will never be met. This will effectively pause all notifying clients until the batch timeout expires.
Prerequisites¶
Protocol Engine¶
This driver uses the Apache QPID Proton AMQP 1.0 protocol engine. This engine consists of a platform specific library and a python binding. The driver does not directly interface with the engine API, as the API is a very low-level interface to the AMQP protocol. Instead, the driver uses the pure python Pyngus client API, which is layered on top of the protocol engine.
In order to run the driver the Proton Python bindings, Proton library, Proton header files, and Pyngus must be installed. Pre-built packages for both Pyngus and the Proton protocol engine are available for various Linux distributions (see packages below). It is recommended to use the pre-built packages if they are available for your platform.
The Proton package includes a C extension that links to the Proton library. If this library is not installed, then the Proton install script will attempt to download the necessary Proton C source files from the Apache repository and build the library locally.
In order to build the Proton C source locally, there are a number of tools and libraries that need to be present:
- The tools and library necessary for Python development
- The SWIG wrapper generator
- The OpenSSL development libraries and headers
- The Cyrus SASL development libraries and headers
Note well: Currently the Proton Pypi package only supports building the C extension on Linux systems.
Router Intermediary¶
This driver supports a router intermediary that supports version 1.0 of the AMQP protocol. The direct messaging capabilities provided by this intermediary type are recommended for oslo.messaging RPC.
The driver has been tested with qpid-dispatch-router router in a devstack environment. The version of qpid-dispatch-router must be at least 0.6.0. The qpid-dispatch-router also uses the Proton engine for its AMQP 1.0 support, so the Proton library must be installed on the system hosting the qpid-dispatch-router daemon.
Pre-built packages for the router are available. See packages below.
Broker Intermediary¶
This driver supports a broker intermediary that supports version 1.0 of the AMQP protocol. The store and forward capabilities provided by this intermediary type are recommended for oslo.messaging Notifications.
The driver has been tested with the qpidd broker in a devstack environment. The version of qpidd must be at least 0.34. qpidd also uses the Proton engine for its AMQP 1.0 support, so the Proton library must be installed on the system hosting the qpidd daemon.
Pre-built packages for the broker are available. See packages below.
See the oslo specification for additional information regarding testing done on the driver.
Configuration¶
Transport URL Enable¶
In oslo.messaging, the transport_url parameters define the OpenStack service backends for RPC and Notify. The url is of the form:
transport://user:pass@host1:port[,hostN:portN]/virtual_host
Where the transport value specifies the rpc or notification backend as one of amqp, rabbit, zmq, etc.
To specify and enable the AMQP 1.0 driver for RPC, in the section [DEFAULT] of the service configuration file, specify the ‘transport_url’ parameter:
[DEFAULT]
transport_url = amqp://username:password@routerhostname:5672
To specify and enable the AMQP 1.0 driver for Notify, in the section [NOTIFICATIONS] of the service configuration file, specify the ‘transport_url’ parameter:
[NOTIFICATIONS]
transport_url = amqp://username:password@brokerhostname:5672
Note, that if a ‘transport_url’ parameter is not specified in the [NOTIFICATIONS] section, the [DEFAULT] transport_url will be used for both RPC and Notify backends.
Driver Options¶
It is recommended that the default configuration options provided by the AMQP 1.0 driver be used. The configuration options can be modified in the oslo_messaging_amqp section of the service configuration file.
Connection Options¶
In section [oslo_messaging_amqp]:
- idle_timeout: Timeout in seconds for inactive connections. Default is disabled.
- connection_retry_interval: Seconds to pause before attempting to re-connect.
- connection_retry_backoff: Connection retry interval increment after unsuccessful failover attempt.
- connection_retry_interval_max: The maximum duration for a connection retry interval.
Message Send Options¶
In section [oslo_messaging_amqp]:
- link_retry_delay: Time to pause between re-connecting to an AMQP 1.0 link.
- default_reply_timeout: The deadline for an rpc reply message delivery.
- default_send_timeout: The deadline for an rpc cast or call message delivery.
- default_notify_timeout: The deadline for a sent notification message delivery.
Addressing Options¶
In section [oslo_messaging_amqp]:
- addressing_mode: Indicates addressing mode used by the driver.
- server_request_prefix: Legacy address prefix used when sending to a specific server.
- broadcast_prefix: Legacy broadcast prefix used when broadcasting to all servers.
- group_request_prefix: Legacy address prefix when sending to any server in a group.
- rpc_address_prefix: Routable address prefix for all generated RPC addresses.
- notify_address_prefix: Routable address prefix for all generated Notification addresses.
- multicast_address: Appended to address prefix when sending a fanout address.
- unicast_address: Appended to address prefix when sending to a particular RPC/Notification server.
- anycast_address: Appended to address prefix when sending to a group of consumers.
- default_notification_exchange: Exchange name used in notification addresses if not supplied by the application.
- default_rpc_exchange: Exchange name used in RPC addresses if not supplied by the application.
SSL Options¶
In section [oslo_messaging_amqp]:
- ssl_ca_file: A file containing the trusted Certificate Authority’s digital certificate (in PEM format). This certificate is used to authenticate the messaging backend.
- ssl_cert_file: A file containing a digital certificate (in PEM format) that is used to identify the driver with the messaging bus (i.e. client authentication).
- ssl_key_file:A file containing the private key used to sign the ssl_cert_file certificate (PEM format, optional if private key is stored in the certificate itself).
- ssl_key_password: The password used to decrypt the private key (not required if private key is not encrypted).
SASL Options¶
In section [oslo_messaging_amqp]:
- sasl_config_dir: Path to the directory that contains the SASL configuration.
- sasl_config_name: The name of SASL configuration file (without .conf suffix) in sasl_config_dir
- username: SASL user identifier for authentication with the message bus. Can be overridden by URL.
- password: Password for username
AMQP Generic Options (Note Well)¶
The AMQP 1.0 driver currently does not support the generic amqp options used by pre-1.0 drivers such as amqp_durable_queues or amqp_auto_delete.
qpid-dispatch-router¶
First, verify that the Proton library has been installed and is imported by the qpid-dispatch-router intermediary. This can be checked by running:
$ qdrouterd --help
and looking for references to qpid-dispatch include and config path options in the help text. If no qpid-dispatch information is listed, verify that the Proton libraries are installed and that the version of the qdrouterd is greater than or equal to 0.6.0.
Second, configure the address patterns used by the driver. This is done by adding the following to /etc/qpid-dispatch/qdrouterd.conf.
If the legacy syntax for the addressing mode is required, include the following:
address {
prefix: unicast
distribution: closest
}
address {
prefix: exclusive
distribution: closest
}
address {
prefix: broadcast
distribution: multicast
}
For the routable syntax addressing mode, include the following:
address {
prefix: openstack.org/om/rpc/multicast
distribution: multicast
}
address {
prefix: openstack.org/om/rpc/unicast
distribution: closest
}
address {
prefix: openstack.org/om/rpc/anycast
distribution: balanced
}
address {
prefix: openstack.org/om/notify/multicast
distribution: multicast
}
address {
prefix: openstack.org/om/notify/unicast
distribution: closest
}
address {
prefix: openstack.org/om/notify/anycast
distribution: balanced
}
Note well: For any customization of the address mode and syntax used, it is required that the address entity configurations in the /etc/qpid-dispatch/qdrouterd.conf be updated.
qpidd¶
First, verify that the Proton library has been installed and is imported by the qpidd broker. This can checked by running:
$ qpidd --help
and looking for the AMQP 1.0 options in the help text. If no AMQP 1.0 options are listed, verify that the Proton libraries are installed and that the version of qpidd is greater than or equal to 0.34.
Second, configure the default address patterns used by the driver for a broker-based backend. This is done by adding the following to /etc/qpid/qpidd.conf:
queue-patterns=exclusive
queue-patterns=unicast
topic-patterns=broadcast
These patterns, exclusive, unicast, and broadcast are the legacy addressing values used by the driver. These can be overridden via the driver configuration options if desired (see above). If manually overridden, update the qpidd.conf values to match.
DevStack Support¶
The plugin for the AMQP 1.0 oslo.messaging driver is supported by DevStack. The plugin supports the use of either the broker or router intermediary.
In local.conf [localrc] section, the devstack-plugin-amqp1 plugin repository must be enabled. For example:
[[local|localrc]]
enable_plugin amqp1 https://git.openstack.org/openstack/devstack-plugin-amqp1
Set the username and password variables if needed for the configuration:
AMQP1_USERNAME=queueuser
AMQP1_PASSWORD=queuepassword
To configure DevStack for operation of the router intermediary, set the AMQP1 service variable to “qdr”:
AMQP1_SERVICE=qdr
Alternatively, to configure DevStack for operation of the broker intermediary, set the AMQP1 service variable to “qpid”:
AMQP1_SERVICE=qpid
Platforms and Packages¶
PyPi¶
Packages for Pyngus pypi and the Proton pypi engine are available on Pypi.
RHEL and Fedora¶
Packages exist in EPEL for RHEL/Centos 7, and Fedora 24+. Unfortunately, RHEL/Centos 6 base packages include a very old version of qpidd that does not support AMQP 1.0. EPEL’s policy does not allow a newer version of qpidd for RHEL/Centos 6.
The following packages must be installed on the system running the intermediary daemon:
| Intermediary | Package |
| qdrouterd | qpid-dispatch-router python-qpid-proton |
| qpidd | qpid-cpp-server qpid-proton-c |
qpidd daemon:
- qpid-cpp-server (version 0.26+)
- qpid-proton-c
The following packages must be installed on the systems running the services that use the new driver:
- Proton libraries: qpid-proton-c-devel
- Proton python bindings: python-qpid-proton
- pyngus (via Pypi)
Debian and Ubuntu¶
Packages for the Proton library, headers, and Python bindings are available in the Debian/Testing repository. Proton packages are not yet available in the Ubuntu repository. The version of qpidd on both platforms is too old and does not support AMQP 1.0.
Until the proper package version arrive the latest packages can be pulled from the Apache Qpid PPA on Launchpad:
sudo add-apt-repository ppa:qpid/released
The following packages must be installed on the system running the qdrouterd daemon:
- qdrouterd (version 0.6.0+)
The following packages must be installed on the system running the qpidd daemon:
- qpidd (version 0.34+)
The following packages must be installed on the systems running the services that use the new driver:
- Proton libraries: libqpid-proton2-dev
- Proton python bindings: python-qpid-proton
- pyngus (via Pypi)


The awards of design, creativity and innovation on the internet
MENU
awwwards.
REGISTER/LOGIN
SUBMIT YOUR SITE!


--- title: Notebook template keywords: fastai sidebar: home_sidebar summary: "A minimal template for a new nbdev-Colab notebook " ---
#all_flag
# remove this cell to use with tests
# #hide
# optional user defined test_flag here
from google.colab import drive
drive.mount('/content/drive')
# #hide
%load_ext autoreload
%autoreload 2
# #hide
!pip install nbdev
!pip install fastcore
# #hide
# add repo name then remove this comment
%cd /content/drive/My drive/<repo name>
# #hide
#not deps but we need them to use nbdev and run tests
from nbdev import *
from nbdev.showdoc import *
from fastcore.test import *
# #hide
# optional build script code - not required if you manage your project from another dedicated notebook.
from nbdev.export import notebook2script
notebook2script()


This inspection only reports if the project or module is configured to use a language level of 5.0 or higher.
Use the first checkbox below to ignore the construction of objects of parameterized types.
Use the second checkbox below to ignore raw types in type casts.
Use the third checkbox to ignore raw types in places where parameterized types would not be compilable (for example in array creation expressions)
Powered by InspectionGadgets


REGISTRATION PAYMENT CONFIRMATION
%INFO%
CONGRATULATIONS! You have successfully registered to the FIRST INTERNATIONAL SYMPOSIUM ON MORINGA on November 15-18, 2015 at Crowne Plaza Manila Galleria, Philippine
Here are helpful booking links at your finger tips:
Crowne Plaza Manila Galleria http://goo.gl/wS33NI
Holiday Inn Manila Galleria http://goo.gl/tSO4nt
If you are having difficulty booking through the booking links for Crowne Plaza and Holiday Inn, you can directly email Miss Ching De Castro at<EMAIL_ADDRESS>Downloadable booking forms for other nearby hotels (Edsa Shangri-la Hotel, Marco Polo Ortigas, Discovery Suites, Privato Hotel, BSA Twin Towers) transfers, pre & post event tours available at http://ism2015.moringaling.net/hotels.php or contact Mr. Josh Angeles at +<PHONE_NUMBER> to 74 and email to<EMAIL_ADDRESS>Present this at the ISM 2015 Registration Desk on November 15, 2015 at Crowne Plaza Manila Galleria to claim your conference kit. Look for LUZ DOMINGO, our Registration Head.
For any concerns we can help you with, visit www.moringaling.net or email<EMAIL_ADDRESS>Thank you and see you here in Manila!
ELENA VAN TOOREN
ISM 2015 SECRETARIAT
|


Check out some awesome written and video tutorials covering the topics below!
Android
Learn android application development by creating four applications that you can use every day! This series takes a practical approach to help you get results and have fun.


ABC
This workshop begins with a discussion of parents' concerns and then equip parents with techniques for managing their children’s behaviors. These techniques highlight positive reinforcement and proactive parenting strategies.
This workshop begins with a discussion of parents' concerns and then equip parents with techniques for managing their children’s behaviors. These techniques highlight positive reinforcement and proactive parenting strategies.
This workshop explains that some stress is healthy/necessary in life but that a lot of people feel more stress than they would like. It then goes through several techniques for reducing stress as a parent. The presentation then goes through the importance of self-care as a parent discussing food, sleep, exercise, and positive self-talk.
In this workshop, we review normal development in young children, focusing on the types of anxiety and behaviors that are typical v. when they should likely be addressed. We discuss how to help children cope with their feelings and provide useful tips for parents, such as when and how to seek an assessment or mental health services.
In this workshop, we explain exactly what LIU Post's Family Check-In (FCI) program is in detail and review the importance of prevention and early intervention. The workshop includes information about each of the 3 sessions, as well as how FCI can help families who have questions or concerns about their children's behavior, their parenting, or their family's overall well-being.


--- title: Overview permalink: "overview.html" order: 1 --- {% include head.html %}
{% include navdataOver.html %} {% include header.html %}By the end of this module, you will be able to:
{%- if module.objectives -%}In this module, we plan to discuss:
{%- if module.topics -%}


{% extends "base.html" %} {% block content %} Something went wrong. We will fix it soon. {% endblock %}


Super Smash Bros. Ultimate Spirit Board event celebrates Pokemon Sword and Shield
by Stephany NunneleyA new Super Smash Bros. Ultimate Spirit Board event has kicked off to celebrate Pokemon Sword and Shield’s release.
The limited-time Spirit Board event for Super Smash Bros. Ultimate featuring Pokemon from Sword and Shield will run until November 27.
Four Pokemon spirits will be available with Legendaries Zacian and Zamazenta being one Spirit (thanks, Siliconera).
Corviknight and Morpeko will be available and Sword and Shield starters Grookey, Scorbunny, and Sobble will be grouped together as one spirit.
During the event, the select spirits will randomly appear on the Spirit Board.


Sellers always there it seems. Still, a bit unusual for what is normally a slow period on a weekend. Perhaps we're about to see much more of this action. Fun to watch when I'm able to do so.
Markus17-Feb-19 12:46 AM
well someone bought a big stack of kmd for 1$ each on kmd/usd market
i quess this is why it happened
yorklab17-Feb-19 12:48 AM
I guess Bittrex knew what they were doing when they created the usd market for kmd. I wasn't sure it would get much action this early, but somehow I think perhaps they did.
Markus17-Feb-19 01:04 AM
the one buying might have triggered next run upwards
Vertigo17-Feb-19 01:13 AM
Ok now VTC is up 100%
Wtf is going on
107
crumb17-Feb-19 01:19 AM
STORJ was also up more than 100% on Bittrex. now hovers around 92%(edited)
Vertigo17-Feb-19 01:21 AM
Must be the Bogdanof twins pamping it.
1
1
Markus17-Feb-19 01:29 AM
bittrex going ham
ppl were just buying for 22,8 while it was 21,9 on binance
yorklab17-Feb-19 01:32 AM
Wow, didn't realize it shot to 30k on Bittrex
Markus17-Feb-19 01:32 AM
really?
yorklab17-Feb-19 01:32 AM
On the BTC market.
Markus17-Feb-19 01:33 AM
o wow thought it was only on the usd market not on the btc
Shinzo Abe17-Feb-19 01:41 AM
is kmd good buy now?
ComputerGenie 👴👴👴17-Feb-19 01:41 AM
always
1
Markus17-Feb-19 01:42 AM
how many confirmations do bittrex require?
120 also?
yorklab17-Feb-19 01:42 AM
@Shinzo Abe I think this is just the beginning of things to come - but only my opinion.
You'll have to decide for yourself.
Markus17-Feb-19 01:45 AM
kmd sold for 1.132$ on usd market
Likewise17-Feb-19 02:10 AM
cool great to wake up and see my latest buy order got filled
NNoperator17-Feb-19 02:13 AM
when bull ?
Likewise17-Feb-19 02:13 AM
when the highs get broken
NNoperator17-Feb-19 02:13 AM
when lambo?
time to go all in KMD
Likewise17-Feb-19 02:14 AM
after new highs
that is for you to decide
NNoperator17-Feb-19 02:15 AM
Gotta rip open some casascius coins
Likewise17-Feb-19 02:16 AM
never heard ofthem
NNoperator17-Feb-19 02:17 AM
before you heard about BTC probably.
they are just tokens that also happen to hold paper wallets
Likewise17-Feb-19 02:19 AM
ok
Cryptofist17-Feb-19 02:19 AM
someone really wants that weekly to have a proper close above 22k sats
and i like them
1
NNoperator17-Feb-19 02:20 AM
highest weekly volume in over a year, looking good.
Likewise17-Feb-19 02:22 AM
Indeed Volume picked up in the last few hours, we were at 150 BTC on binance now back at 286 BTC
Cryptofist17-Feb-19 02:22 AM
The chart is one thing, but I think people are starting to actually look at the sheer mass of work KMD has done in the last year. nice line up of TA and FA I suppose. I hope it makes some more magic happen on the charts here..
3
Likewise17-Feb-19 02:22 AM
been doing my best buying as many I can
NNoperator17-Feb-19 02:26 AM
I hope a good portion of those 590k KMD that traded earlier leave the exchange. Where do they materialize from, the order books don't have anywhere near that amount?(edited)
Likewise17-Feb-19 02:27 AM
majority of mine I keep on Ledger
safely tucjed away
yorklab17-Feb-19 02:43 AM
Where do they materialize from, the order books don't have anywhere near that amount?
For a coin that pays you to keep it off the exchange, I'm always amazed at all the sellers waiting for the slightest movement upward.
But I guess a lot of that is muscle memory.
Likewise17-Feb-19 02:43 AM
guess that has to do with trading bagVshodl bag
meatspoon17-Feb-19 02:45 AM
@Likewise Thanks for taking us under your wing, dad. I was really interested in learning more the other day but Pink Pony kept interrupting and being disrespectful.
Likewise17-Feb-19 02:46 AM
You are most welcome son, glad to be of assistance
Yeah he throw some insults to my head there, yet the kid should know that a hardened 47 year old can take quite a bit ;0
meatspoon17-Feb-19 02:50 AM
@Likewise you can only lead a stupid animal to a water source, then they need to make the decision to drink or not.  Lets just end this.
NNoperator17-Feb-19 02:53 AM
It is getting old
meatspoon17-Feb-19 02:53 AM
If you create an atmosphere in which Genie can do no wrong and is allowed to be rude and aggressive to everyone.... and he posts constantly in all channels... you are setting the tone for this discord
1
Likewise17-Feb-19 02:53 AM
it's all good, all are accepted in the family
he should indeed take a broader approach to his trading skills but he is strill young and will find out himself, te trading kid
I do notice his hostility, is ok, he probably suffered losses
1
anyway, it is about to me break 0.00025 and move on to higher prices


Members
First name
Last name
First name member1
Last name member1
Details
First name member2
Last name member2
Details


The Math.acosh()
function returns the hyperbolic arc-cosine of a number, that is
Math.acosh(x)
x
Because acosh()
is a static method of Math
, you always use it as Math.acosh()
, rather than as a method of a Math
object you created (Math
is no constructor).
Math.acosh()
Math.acosh(-1); // NaN Math.acosh(0); // NaN Math.acosh(0.5) // NaN Math.acosh(1); // 0 Math.acosh(2); // 1.3169578969248166
For values less than 1 Math.acosh()
returns NaN.
For all , we have and so this can be emulated with the following function:
Math.acosh = Math.acosh || function(x) { return Math.log(x + Math.sqrt(x * x - 1)); };
Created by Mozilla Contributors, license: CC-BY-SA 2.5


How many CSS effects are too many for a simple survey form?
Do you consider that ideal for every page?


{% extends 'base.html' %} {% block head-extra %} {% endblock%} {% block content %}
{{model}}
Status{{model}}
computations
A job is considered done if, for given parameters, one has as many eigenvalues stored in the database as one has sites.
Feel free to visit the admin page and add or delete entries for eigenvalues or hamiltonians
Once entries are missing, you can rerun add_data.py
to fill up this view again.


This dummy app will show you how to program constantly recurring Bokeh models which can be found in most of the apps of this project.
For a general overview of Bokeh, please consult the Wiki.
In case you are only looking for a skeleton for new apps, have a look at the Template App.
First of all, let's start with a slider. Sliders can be used to dynamically change variables, and its effect is usually found in (several) plots. In this example, we will change the inclination of a line. All you need is
Feel free to change, add or dismiss whatever you like. Learning by doing is the best kind of learning ;)


Preparation time
30 mins to 1 hour
Cooking time
10 to 30 mins
Serves
Serves 6
Tea smoking is a simple way of injecting a unique flavour into foods. Use this technique to enhance sustainable, affordable trout.
For the smoked trout, line a lidded wok or a pan for smoking with foil.
Place the rice and sugar in the bottom and scatter the tea leaves over the top.
Place a rack over the top and lay the trout on the rack, place the lemon slices on top.
Place the pan on a high heat until the tea begins to smoke. Place a tight fitting lid on top and smoke for 15 minutes. (CAUTION: Tea smoking generates a lot of smoke, so ensure you maintain good ventilation in the kitchen.)
Take the pan outside, if you are able, when you open it to remove the fish.
For the salad and tarragon dressing, heat a small frying pan, then add the pancetta and cook for a couple of minutes until crisp. Set aside to drain on kitchen paper.
Place the frisée and Little Gem into a large bowl and add the cooked pancetta.
In a small bowl, whip the cream until it has thickened, then add the lemon juice and chopped tarragon.
Pour the dressing over the salad and toss to mix, sprinkling the lardons over the top.
To serve, place the smoked fish onto a plate and serve the salad next to it.


Created for Pennapps Spring 2014 Hackathon with Razzi Abuissa and Peter Yin
lrn.guru is an open-source, pip-installable, tutorial platform that is completely in terminal. Our goal with lrn was to make a more hollistic learning experience by walking the user through the steps of setting up their directories and letting them use their own files to run against our tests. Check out the website for more information.
Created at 2013 Facebook New York Hackathon with Razzi Abuissa and Brian Sladek
This open-source project used code coverage to determine excessive features in a javascript development library and remove them so that each time the webpage loads it will only have to load the parts of the library the developer actually needs. Won judge favorite.
Created with Dave Sharples and Samantha Merritt
iPhone app that lets an anonymous user send a message to anyone in the world and simultaneously receive a message from anyone in the world. Users can then choose to respond to messages they receive and share their contact info.
Summer 2013 research project under Professor Lyle Ungar
This past summer I worked on a research project under Professor Lyle Ungar involving the diffusion of key words across different genres of science literature. I used citation maps (example here) to try and prove the hypothesis that the citation distance of departments was longer if the department was more "unique." (the method of calculating the percieved uniqueness or entropy of a department is outlined in some of the source code).
Source Code -- Some of it is a little messy, it was my first experience with python
SolidWorks project with Kris Li and Maanvi Singh
We chose to model this camera (which turned out to be the most difficult option) for a Mechanical Engineering course freshman year. Unfortunately, because there were so many individual parts and files, we were not able to do a nicer rendering, but we did manage to model the motion of the slinky like part at the beginning.


PIG DICE
Player 1
Player 2
Let's PLAY!
NEW GAME
P1
ROLL dice
HOLD
Dice roll:
Round Score:
Total Score:
P2
ROLL dice
HOLD
Dice roll:
Round Score:
Total Score:


Master of Engineering
Electrical Engineering and Computer Science
May 2015
Bachelor of Science
Electrical Engineering and Computer Science
December 2013
Hardware Engineer
Pure Storage
July 2015
Software Engineer
Tarana Wireless
January 2014 - August 2014
Programming Languages
C, Java, Python, Scala, Bash
Hardware Description Languages
Verilog, VHDL, Chisel
Version Control
Git, Perforce


-
gameId
Integer gameId
The Game id.
-
cardsInHand
List<E> cardsInHand
The Cards in hand.
-
myVictoryPoints
int myVictoryPoints
The My victory points.
-
theirVictoryPoints
int theirVictoryPoints
The Their victory points.
-
myActionsRemaining
int myActionsRemaining
The My actions remaining.
-
myBuysRemaining
int myBuysRemaining
The My buys remaining.
-
myBuyingPower
int myBuyingPower
The My buying power.
-
wasAttacked
boolean wasAttacked
The Was attacked.
-
stacks
LinkedHashMap<K,V> stacks
The Stacks.
-
playsMadeLastTurnByOtherPlayer
List<E> playsMadeLastTurnByOtherPlayer
The Plays made last turn by other player.
-
whatStateAmIIn
PhaseState whatStateAmIIn
The What state am i in.
-
showSelectCard
boolean showSelectCard
The Show select card.
-
debugging
boolean debugging
The Debugging.


← Open News After Party toolkit
How to build your case for change
There are four key steps to putting together the case for your new idea. This could really apply to any kinds of ideas, but it’s especially meant to give you a framework to help you advocate for change, whether to workflow, culture or something else.
Step One: Gather your evidence.
- Pull together a list of examples of how this idea has been implemented in other news organizations. This could include slides from speaker at your conference, or a handout from the workshop you attended.
- Follow up with other attendees or speakers from your event. If someone gave a talk on this subject, offer to take them out to coffee so you can ask them more about their work or research.
Step Two: Build your team.
- Identify people who could be key allies to supporting this idea. Who needs to be on your side in order for this change to happen the most smoothly? Other reporters? The photo desk? The legal team? Someone in technology or ad/ops?
- Reach out to those folks and validate your idea for change with them.
Step Three: Tell your data story
- This step won’t always be necessary or possible, depending on what kind of change you are advocating for within your news organization.
- BUT if it makes sense to do so, pull out any analytics or other data reporting that can help support your pitch.
Step Four: Don’t bury the lede
- Oddly, journalists are really good at getting to the point in our stories, but can easily fall into the trap of backing into an idea, especially if making a large ask to management or leadership.
- Be clear about:
- What you are proposing (changing from XYZ current reality to YXZ ideal state)
- What decisions need to be made
- What resources need to be moved/changed/acquired
- Allow your leadership or management team to ask questions and interrogate your idea
This resource is part of the OpenNews After Party toolkit, developed by Emma Carew Grovum. It’s meant to help you get the most out of SRCCON—or any journalism event—and share what you learn with your own organization. The toolkit is licensed CC BY-SA 4.0, and we’d love to see you use or adapt it for your own event—all we need is a link back here.
We’d also be thrilled to hear how you put what you learn into practice, so please tweet us at #OpenNewsAfterParty, or if you have any questions, let us know!


EVERYONE SAYS I LOVE YOU A film review by James Berardinelli Copyright 1996 James Berardinelli
RATING (0 TO 10): 8.0 Alternative Scale: ***1/2 out of ****
United States, 1996 U.S. Release Date: 12/6/96 (limited); 1/97 (wide) Running Length: 1:41 MPAA Classification: R (Profanity, angst) Theatrical Aspect Ratio: 1.85:1
Cast: Woody Allen, Natasha Lyonne, Julia Roberts, Goldie Hawn, Alan Alda, Edward Norton, Drew Barrymore, Tim Roth, Lukas Haas, Natalie Portman, Gabby Hoffman Director: Woody Allen Producers: Robert Greenhut Screenplay: Woody Allen Cinematography: Carlo Di Palma Music: Dick Hyman U.S. Distributor: Miramax Films
In the past decade, only two live-action, mainstream musical motion pictures have been released. While the first, LITTLE SHOP OF HORRORS, met with some success, the second, NEWSIES, was a box-office disaster. The poor performance of the Disney-backed film seemed to confirm the common perception that, as a movie genre, the musical was dead. Now, however, as 1996 draws to a close, two films are arriving to challenge that belief. The better-known of the pair is, of course, EVITA. However, another musical has beaten it to theaters by more than two weeks: Woody Allen's EVERYONE SAYS I LOVE YOU.
Anyone who surveys Allen's career as a writer/director/actor will find three common threads woven through nearly all of his movies: wit, neuroses, and music. In EVERYONE SAYS I LOVE YOU, Allen once again combines these elements, but with a new twist -- this time, instead of relying on standards from the '30s and '40s as background music, he catapults them into the fore. His characters, all using their own voices, sing and dance to classics like "I'm a Dreamer", "I'm Through With Love", and "Looking at You." All-in-all, there are something like fifteen numbers, with almost every major member of the cast getting an opportunity to warble at least one line.
With EVERYONE SAYS I LOVE YOU, Allen is paying homage to the way musicals used to be made, back in the era when stars who didn't have great voices were occasionally forced to sing. Here, it doesn't always result in the sort of track you'll want on a CD, but it's nice to know that sung lines are not being dubbed, and Allen himself doesn't suddenly sound like Elton John when he breaks into song. Yes, it's almost painful to endure Julia Roberts' single number, but it's hard not to respect her for trying, or Allen for giving her the chance.
The plot, which centers loosely around one sprawling, extended family, is extremely complicated, primarily because there are so many characters. For most of the film, Allen makes effective use of his ensemble cast; only near the end does the crowd of people vying for screen time turn into a detriment. That's not a surprise, however, considering that the last fifteen minutes of the movie are its weakest, in spite of a wonderful song-and-dance number featuring Allen and a feather-light Goldie Hawn (who can sing).
The story is told from the point-of-view of DJ (Natasha Lyonne), the college-age daughter of Joe (Allen) and Steffi (Hawn). DJ's parents have been divorced for a decade-and-a-half, but they get along well. In fact, Joe considers Steffi and her husband, Bob (Alan Alda), to be his best friends, and, when his latest girlfriend dumps him, he flies from his home in Paris to New York to commiserate. DJ also has a step- sister, Skylar (Drew Barrymore), who is about to become engaged to a proper, upright guy in a suit (Edward Norton). Her stepbrother, Scott (Lukas Haas), has shocked the entire family by stating that he has joined the Young Conservatives. And her two half-sisters, Lane (Gabby Hoffman) and Laura (Natalie Portman), are trying to summon the courage to speak to a boy whom they both find attractive. Tim Roth is on-hand as a tough guy who recalls Chazz Palminteri's gangster from BULLETS OVER BROADWAY. Meanwhile, it's not long before Joe finds himself drawn to a younger woman (Julia Roberts), but it takes all of DJ's considerable powers of persuasion to get him to overcome his angst and pursue her.
When it comes to humor, EVERYONE SAYS I LOVE YOU is right up there with two of Allen's better, recent comic releases, MANHATTAN MURDER MYSTERY and BULLETS OVER BROADWAY. Like those films, EVERYONE SAYS I LOVE YOU is overflowing with genuinely funny moments that span the spectrum from physical comedy to sly, sophisticated wit. Allen gets in a number of terrific one-liners, none of which I'll reveal here. His comic sense extends to the musical numbers, many of which are done tongue-in-cheek. There's one sequence where ghosts rise from the grave to dance around and another where doctors and patients form a chorus line.
 In his best films (such as ANNIE HALL and HANNAH AND HER SISTERS), Allen has always used comedy as the proverbial "means to an end" of saying something insightful about how men and women interact with each other. EVERYONE SAYS I LOVE YOU is surprisingly shallow in that regard, going for numerous, broad generalizations rather than depth. Again, perhaps this is the result of having so many stories to tell.
Despite some unlikely names, Allen has chosen a near-perfect cast, only a few members of which are underused (particularly Natalie Portman). Roberts is luminous. Norton (PRIMAL FEAR) and newcomer Lyonne have abundant charisma. Roth is a hoot. Alda and Hawn make for a pleasant, albeit slightly off-kilter couple. And Allen, as always, is Allen. Even Drew Barrymore, playing very much against her sex kitten type, is effective.
It's difficult not to be impressed by what Allen has achieved with this film: successfully reviving the musical comedy in such a thoroughly delightful fashion. The production may be uneven, but it's still wonderful to behold, even at the end, when the structure frays around the edges. Of course, the real force that makes EVERYONE SAYS I LOVE YOU work is Allen himself. As actor, director, and writer, he once again shows that he's willing to take chances. And, in doing so, he gives us a movie that is recognizable as both "a Woody Allen film" and something refreshingly different.
- James Berardinelli e-mail<EMAIL_ADDRESS>ReelViews web site: http://www.cybernex.net/~berardin
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Employee Name
Salary
Designation
Lathika
32220
Software Engineer
Sonia
45220
Team Lead
Ajay
846433
Project Lead
sasi
390000
Senior Software Engineer


OBReadOffer1_Data_Offer
- Amount : OBReadOffer1_Data_Amount
- Description : String
Further details of the offer.
- EndDateTime : Date
Date and time at which the offer ends.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00
- Fee : OBReadOffer1_Data_Fee
- OfferId : String
A unique and immutable identifier used to identify the offer resource. This identifier has no meaning to the account owner.
- OfferType : String
Offer type, in a coded form.
- Enum:
- BalanceTransfer
- LimitIncrease
- MoneyTransfer
- Other
- PromotionalRate
- Rate : String
Rate associated with the offer type.
- StartDateTime : Date
Date and time at which the offer starts.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00
- Term : String
Further details of the term of the offer.
- URL : String
URL (Uniform Resource Locator) where documentation on the offer can be found
- Value : Integer
Value associated with the offer type.


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.231067.20open.20subgroups.html ---
@Reid Barton @Sebastien Gouezel Does one of you have time to review this PR?
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


M_debug(3fm) - [M_debug] a collection of Fortran routines for supporting code development by providing error processing, debugging procedures and unit testing. (LICENSE:PD)
Synopsis
Quote
Description
Examples
Author
License
use M_debug, only : unit_check, unit_check_start, unit_check_good, unit_check_bad, unit_check_done use M_debug, only : unit_check_limit, unit_check_keep_going, unit_check_command use M_debug, only : unit_check_msg, msg use M_debug, only : debug use M_debug, only : fstop use M_debug, only : stderr
Do not let your victories go to your head, nor let your failures go to your heart.
The M_debug(3fm) Fortran module provides procedures and variables useful for providing error processing, debugging capabilities, and unit testing.
o allows for a user-defined command to be called to collect results. o supports different levels o allows stopping on first failure or continuing
unit_check_start(3f) call command "goodbad NAME start ..." unit_check(3f) if expression is .F. call command "goodbad NAME bad" and stop program (by default) unit_check_done(3f) call command "goodbad NAME good" if no failures else call "goodbad NAME bad" unit_check_good(3f) call command "goodbad NAME good" unit_check_bad(3f) call command "goodbad NAME bad" and stop program (by default) unit_check_msg(3f) write message msg(3f) concatenate values into a string for building messages unit_check_keep_going logical variable that can be used to turn off program termination on errors. unit_check_level An integer that can be used to specify different debug levels unit_check_command name of command to execute. Defaults to the name "goodbad".
For unit testing, the existence of a command called "goodbad" is initially assumed. This is generally a script that makes entries for each unit in an SQLite data file which is then used to create CSV and HTML reports on the status of each unit. A sample goodbad(1) command written in the bash(1) shell and using the sqlite3(1) command should be included in this distribution.
fstop(3f) calls STOP VALUE passing in a value (1-32), with optional message pdec(3f) write ASCII Decimal Equivalent (ADE) numbers vertically beneath string stderr(3f) Write message on stderr debug logical variable that can be tested by routines as a flag to process debug statements. The flexibility introduced by calling an external script or program is that The goodbad(1) command can be changed as desired to write CSV files or simple logs or to notify developers with e-mail as desired.
The routines in M_debug(3f) are often combined with the M_hashkeys(3fm) routines and various math and statistical routines to quickly create unit tests.
Comparisons of real values can be done with a tolerance with M_Compare_Float_Numbers(3fm), for example.
The intrinsics ANY(3f) and ALL(3f) are particularly useful in calls to unit_check(3f).
Sample program
!!program demo_unit_tests module M_demo private public one !! regular routines public two !! regular routines public test_suite_M_demo !! special name for use with test_suite(1bash). contains!! regular routines subroutine one() end subroutine one
subroutine two() end subroutine two
!! unit test subroutine test_suite_M_demo use M_debug, only: unit_check_start, unit_check use M_debug, only: unit_check_good, unit_check_bad, unit_check_done use M_debug, only: unit_check_msg, msg implicit none integer :: i, j, k integer,allocatable :: array(:) integer :: arr(4)=[21,51,14,45] integer :: a=21, b=51, c=14, d=45 i=1 j=2 k=3 array=[10,20,30,40,50,60,70] call test_one() call test_two() contains
subroutine test_one() ! register an entry for specified name ("one") in database with status of zero (0) call unit_check_start(one)
! if mask test fails, change database status for specified entry to -1 and stop program, else continue call unit_check(one,i.gt.0,msg=I > 0)
call unit_check(one,all([i,j,k].gt.0), testing if everyone greater than zero) ! display message built of scalars as well call unit_check(one,all(.not.[i,j,k].eq.4),msg=msg(i,j,k,testing if no one is equal to four))
! for tests that are hard to reduce to a logical test just call unit_check_bad(3f) if fail if(i+j+k.lt.1)then call unit_check_bad(one) endif
call unit_check_done(one,checks on "one" ended) end subroutine test_one
subroutine test_two ! use of all(3f), any(3f), merge(3f) can be useful ! if you know what these would produce ! write(*,*)[A,X,X,X,X,B].eq.B ! this would return an array, the last element having the value T, else F ! write(*,*)all([A,X,X,X,X,X].eq.X) ! this would return F ! write(*,*)any([A,X,X,X,X,X].eq.B) ! this would return F ! write(*,*)any([A,X,X,X,X,B].eq.B) ! this would return T ! write(*,*).not.all(array.lt.100) ! write(*,*)all(array.lt.100) ! write(*,*)all([a,b,c,d].eq.[21,51,14,45]) ! compare a list. This would return T ! write(*,*)all(arr.eq.[21,51,14,45]) ! compare an array. This would return T ! you know how valuable ANY(3f) and ALL(3f) will be call unit_check_start(two,check on "two" passed) call unit_check(two, 1.gt.0 .and. abs(10.10000-10.10001).lt.0.0001,msg=two looks good) call unit_check_done(two,checks on "two" ended) end subroutine test_two
end subroutine test_suite_M_demo
end module M_demo
program demo_M_debug use M_demo, only: test_suite_M_demo use M_debug, only: unit_check_command, unit_check_keep_going,unit_check_level unit_check_command= unit_check_keep_going=.true. unit_check_level=0 call test_suite_M_demo end program demo_M_debug
Expected output:
unit_check: one SUCCESS:I > 0 unit_check: one SUCCESS:testing if everyone greater than zero unit_check: one SUCCESS:1 2 3 testing if no one is equal to four unit_check_done: one PASSED GOOD:3 BAD:0unit_check: two SUCCESS:two looks good unit_check_done: two PASSED GOOD:1 BAD:0
TEST-DRIVEN DEVELOPMENT
set-up perform initialization operations common to all tests within a module tear-down perform finalization operations common to all tests within a module
John S. Urban
Public Domain
| M_debug (3) | January 01, 2020 |


Continue Shopping
Check Out
Oops, some of the products are out of stock.
Oops, your cart is empty.
Items
Price
Quantity
In Stock
Only
In Stock
Product Unavailable
delete
$
Update
Total Price (
items):
$


---
title: Grid
subtitle: STRAPLESS - DESIGN
icon: fa-th
---
{{#iterate 1}}
{{> images.image imageSource="http://via.placeholder.com/1024x100"}}
{{/iterate}}
{{#iterate 2}}
{{> images.image imageSource="http://via.placeholder.com/500x100"}}
{{/iterate}}
{{#iterate 3}}
{{> images.image imageSource="http://via.placeholder.com/350x100"}}
{{/iterate}}
{{#iterate 4}}
{{> images.image imageSource="http://via.placeholder.com/350x100"}}
{{/iterate}}
{{#iterate 5}}
{{> images.image imageSource="http://via.placeholder.com/350x100"}}
{{/iterate}}
{{#iterate 6}}
{{> images.image imageSource="http://via.placeholder.com/350x100"}}
{{/iterate}}
{{#iterate 7}}
{{> images.image imageSource="http://via.placeholder.com/350x100"}}
{{/iterate}}
{{#iterate 8}}
{{> images.image imageSource="http://via.placeholder.com/350x100"}}
{{/iterate}}
{{#markdown}}
Strapless is using a 12 column float grid:
~~~
// 12 cols with 1.778em (28.45px) gutters (margin-right + float)
$susy: (
columns: 12,
gutters: 1.778,
gutter-position: after,
math: fluid,
// container: $base-max-width
global-box-sizing: border-box,
column-width : 50.512px // old: 50px
);
~~~
{{/markdown}}
{{#markdown}}
## Susy: Grids on the Fly
Susy is a helper tool that lets you create any kind of grids easily without the need do a ton of math. The beauty about Susy is that it separates presentational CSS from the HTML.
If you have used traditional grid frameworks like Foundation and Bootstrap before, you already know that the grids that come with these frameworks already have fixed widths and breakpoints. Furthermore, classes have to be added to the HTML if you decide to change your layout.
Susy removes this layer altogether. You can immediately target any css class and apply a grid to it.
- [Susy](https://zellwk.com/blog/susy2-tutorial/)
{{/markdown}}


Equivalent to clicking the Modify button on the Color tab, which appears when you click the Options command on the Tools menu. Defines the color for one of the 56 color palette boxes.
Use EDIT.COLOR if you want to use a color that is not currently on the palette and if your system hardware has more than 56 colors available. After you set the color for the color box, any items previously formatted with that color are displayed in the new color.
Syntax
EDIT.COLOR(color_num, red_value, green_value, blue_value)
EDIT.COLOR?(color_num, red_value, green_value, blue_value)
Color_num is a number from 1 to 56 specifying one of the 56 color palette boxes for which you want to set the color.
Red_value, green_value, and blue_value are numbers that specify how much red, green, and blue are in each color.
In Microsoft Excel for Windows, red_value, green_value, and blue_value are numbers from 0 to 255.
In Microsoft Excel for the Macintosh, red_value, green_value, and blue_value are also numbers from 0 to 255. However, the color editing dialog box displays numbers from 0 to 65, 535. Microsoft Excel automatically converts the numbers between the two ranges. This allows you to display similar colors in all operating environments without modifying your macros.
If red_value, green_value, and blue_value are all set to 255, the resulting color is white. If they are all set to zero, the resulting color is black.
If red_value, green_value, or blue_value is omitted, Microsoft Excel assumes it to be the appropriate value for that color_num.
Remarks
Your system hardware determines the number of unique colors that you can choose from and the number of colors that can be displayed on the screen at the same time.
EDIT.COLOR does not use hue, saturation, or brightness values. If you are using the macro recorder and set the color of a color palette box using hue, saturation, and luminance, Microsoft Excel records the corresponding red, green, and blue values instead.
The dialog-box form of this function, EDIT.COLOR?(color_num), displays your system's color editing dialog box. The default red_value, green_value, and blue_value are determined by the current settings for the color_num you specify. Color_num is a required argument for the dialog-box form of this function.
Related Function
COLOR.PALETTE Copies a color palette from one workbook to another
Return to index


{% include head.html %}
Home
About
Series
Archive
Tags
Achievements
Licence
Github
Twitter
Patreon
RSS
Atom
VS Dark
VS Light
MG Light
I am a DevExpress MVP
{{ content }}


Mary Richards' response
Mary Richards had said they don't owe the money and made a suggestion.
Mary Richards said:
I understand that you're not happy with the work on the roof. I'd really like to get this sorted out. The last thing I want is to go to court over this.
Their suggestion
I will organise for the roof to be repaired on or before 1 May.
I suggest you pay £50 to cover the materials.


Confirm Post Or PostOrComment deletion
Confirm operation
Refuse operation
Always Confirm This Type Of Operation In Future


Seniors groups demand MORE pension
by Unconventional EconomistIn its pre-Budget submission, National Seniors has demanded the Morrison Government reduce the taper rate by which the Aged Pension is phased-out:
It wants to reduce the taper rate, which reduces the age pension for people depending on the value of their assets. The taper rate was lifted by then-treasurer Scott Morrison more than two years ago.
The organisation argues the current $3 taper rate means someone with $800,000 in assets is receiving less income than someone with $400,000 in assets.
There are 1037 words left in this subscriber-only article.


Which of the following is a correct result of alpha-conversion on the following lambda calculus expression?
Which variables are bound? Which are free?
How can you modify this expression to avoid capturing free variables?
Which lambda expressions match the formal parameter?


Kristin Chenoweth Supports Kanye West New Religious Journey And Opera Aspirations
by Ricki MathersThere are a lot of skeptics when it comes to Kanye West’s new spiritual and musical journey. Kristin Chenoweth gives Kanye her full support as long as he is serious about his new aspirations.
Wendy Williams covered Kanye’s highly talked about visit to Joel Osteen’s church. She, like many other people, sincerely hopes that this isn’t just a phase that the hip-hop performer is going through.
She also told her studio audience that Ye is planning his first opera after releasing his highly-anticipated gospel album Jesus is King.
Kristin just so happened to be the guest to grace the couch just after Wendy’s Hot Topics session where she was asked about how she feels about Kanye’s latest announcements.
Chenoweth is both a woman of faith and a trained Broadway singer. West even sampled her vocals from Wicked in one of his songs.
‘I think he is operatic in his statements. I do want to say this though to Mr. West — I know, you said it so well in Hot Topics — this can’t be a phase and as a person of faith which I am I don’t want that to be a phase for him either because God is so good and I don’t want it to be a phase. But if he wants to write an opera I say go for it. If you want to write an opera let’s hear it. I want to hear it.’
When the talk host asked if she would go see it, Chenoweth said she would love to and recalled the sample that he used in his song.
During the rest of the interview, the Glee alum talked about meeting Ariana Grande when she was a child and keeping a relationship with her until this day. In fact, the pop star appears on her new album.
Chenoweth is fabulous at 51 and recently debuted her new boyfriend on the red carpet for an awards show.


{% extends base_template %} {% load staticfiles %} {% block title %}Download Kolibri{% endblock title%} {% block headcss %} {% endblock headcss %} {% block bodycontents %}
Released: {{ vars.LATEST_KOLIBRI_RELEASE_DATE|default:"Recent!" }}
Supported languages
DOWNLOAD EXE
Install Kolibri, plus a launcher icon and tray icon.
Compatible with Windows Vista, 7, 8.1, and 10
DOWNLOAD DEB
Or, install with apt-get to get automatic updates,
for devices sometimes online (recommended)
DOWNLOAD PEX
Portable offline executable you can run
if you have Python 2.7+ or 3.4+ installed


CSS
...But I still got my page to look like this!
Would you believe me? Would it blow your mind? Try resizing this page. What???
I have text over here, too!
How did I do that?
I didn't write any JavaScript, either.
I used Bootstrap
<head>
...Make all of this available to you.


Class GameDataUnityClient
Use this to GET and POST data related to the game.
Inheritance
Namespace: PlayGen.SUGAR.Unity
Assembly: PlayGen.SUGAR.Unity.dll
Syntax
public class GameDataUnityClient : object
Methods
Get(Action<IEnumerable<EvaluationDataResponse>>, String[])
Get GameData for the currently signed in user for this game.
Declaration
public void Get(Action<IEnumerable<EvaluationDataResponse>> success, string[] keys = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Action<IEnumerable<EvaluationDataResponse>> | success | Callback with a list of gathered EvaluationDataResponse results. |
| System.String[] | keys | Optional Keys to search and return values for. (default: null) |
GetCount(String, EvaluationDataType, Action<EvaluationDataResponse>)
Get the count of recorded values for the currently signed in user for the key and dataType provided.
Declaration
public void GetCount(string key, EvaluationDataType dataType, Action<EvaluationDataResponse> success)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| EvaluationDataType | dataType | EvaluationDataType of the GameData. |
| Action<EvaluationDataResponse> | success | Callback which contains the gathered result. |
GetCumulative(String, EvaluationDataType, Action<EvaluationDataResponse>)
Get the cumulative value for the currently signed in user for the key and dataType provided.
Declaration
public void GetCumulative(string key, EvaluationDataType dataType, Action<EvaluationDataResponse> success)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| EvaluationDataType | dataType | EvaluationDataType of the GameData. |
| Action<EvaluationDataResponse> | success | Callback which contains the gathered result. |
Remarks
- EvaluationDataType should be a type that can be added together, eg. Long
GetEarliest(String, EvaluationDataType, Action<EvaluationDataResponse>)
Get the earliest recorded data for the currently signed in user for the key and dataType provided.
Declaration
public void GetEarliest(string key, EvaluationDataType dataType, Action<EvaluationDataResponse> success)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| EvaluationDataType | dataType | EvaluationDataType of the GameData. |
| Action<EvaluationDataResponse> | success | Callback which contains the gathered result. |
GetHighest(String, EvaluationDataType, Action<EvaluationDataResponse>)
Get the data related to the highest value recorded for the currently signed in user for the key and dataType provided.
Declaration
public void GetHighest(string key, EvaluationDataType dataType, Action<EvaluationDataResponse> success)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| EvaluationDataType | dataType | EvaluationDataType of the GameData. |
| Action<EvaluationDataResponse> | success | Callback which contains the gathered result. |
GetLatest(String, EvaluationDataType, Action<EvaluationDataResponse>)
Get the latest recorded data for the currently signed in user for the key and dataType provided.
Declaration
public void GetLatest(string key, EvaluationDataType dataType, Action<EvaluationDataResponse> success)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| EvaluationDataType | dataType | EvaluationDataType of the GameData. |
| Action<EvaluationDataResponse> | success | Callback which contains the gathered result. |
GetLowest(String, EvaluationDataType, Action<EvaluationDataResponse>)
Get the data related to the lowest value recorded for the currently signed in user for the key and dataType provided.
Declaration
public void GetLowest(string key, EvaluationDataType dataType, Action<EvaluationDataResponse> success)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| EvaluationDataType | dataType | EvaluationDataType of the GameData. |
| Action<EvaluationDataResponse> | success | Callback which contains the gathered result. |
Send(String, Boolean, Action<Boolean>)
Record GameData with EvaluationDataType Bool with the key and value provided.
Declaration
public void Send(string key, bool value, Action<bool> success = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| System.Boolean | value | The Bool value that'll be recorded. |
| Action<System.Boolean> | success | Optional Callback returns whther the data was sent successfully (default: null) |
Send(String, Int64, Action<Boolean>)
Record GameData with EvaluationDataType Long with the key and value provided.
Declaration
public void Send(string key, long value, Action<bool> success = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| System.Int64 | value | The Long value that'll be recorded. |
| Action<System.Boolean> | success | Optional Callback returns whther the data was sent successfully (default: null) |
Send(String, Single, Action<Boolean>)
Record GameData with EvaluationDataType Float with the key and value provided.
Declaration
public void Send(string key, float value, Action<bool> success = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| System.Single | value | The Float value that'll be recorded. |
| Action<System.Boolean> | success | Optional Callback returns whther the data was sent successfully (default: null) |
Send(String, String, Action<Boolean>)
Record GameData with EvaluationDataType String with the key and value provided.
Declaration
public void Send(string key, string value, Action<bool> success = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | key | Name of the GameData key. |
| System.String | value | The String value that'll be recorded. |
| Action<System.Boolean> | success | Optional Callback returns whther the data was sent successfully (default: null) |


| Originator | Division of Parks and Recreation |
| Abstract | Legislative statutory boundaries for sixty six state parks, six state recreation areas, and eight state waysides. These data are derived principally from DNR's pls40ne3 coverage where available, with special delineations using heads up digitizing from DOQ and DRGs with interepretations based on changes in land use. Other sources include plsscne3, BOE digital parcel lines, survey quality GPS, and best guess. |
| Use Tips | Mapped from a variety of sources, using the most accurate information available. Layer is regularly updated. |
| Browse Graphic | View a sample of the data. |
| Time Period of Content Date | 2002 |
| Currentness Reference | This data is constantly being improved as more accurate data sets are completed for various areas of the state. These boundaries will be revisited annually as legislation for parks statutory boundaries are changed. Individual boundary segments have dates that they were updated. Some segments have not been updated from the original set. These .aat segments have a bdry_date of 19900101. |
| Access Constraints | None |
| Use Constraints | None |
| Distributor Organization | DNR-MIS |
| Ordering Instructions | See Online Linkage or Distribution Contact |
| Online Linkage | http://deli.dnr.state.mn.us/ |
| Section 1 | Identification Information |   | Top of page | |
| Originator | Division of Parks and Recreation | |||
| Title | State Park Statutory Boundaries | |||
| Abstract | Legislative statutory boundaries for sixty six state parks, six state recreation areas, and eight state waysides. These data are derived principally from DNR's pls40ne3 coverage where available, with special delineations using heads up digitizing from DOQ and DRGs with interepretations based on changes in land use. Other sources include plsscne3, BOE digital parcel lines, survey quality GPS, and best guess. | |||
| Use Tips | Mapped from a variety of sources, using the most accurate information available. Layer is regularly updated. | |||
| Purpose | The State Park Statutory Boundaries layer was created to support a variety of park planning and management activities and provide a GIS layer that more accurately represents current legislative-defined boundaries for state parks. | |||
| Time Period of Content Date | 2002 | |||
| Currentness Reference | This data is constantly being improved as more accurate data sets are completed for various areas of the state. These boundaries will be revisited annually as legislation for parks statutory boundaries are changed. Individual boundary segments have dates that they were updated. Some segments have not been updated from the original set. These .aat segments have a bdry_date of 19900101. | |||
| Progress | Complete | |||
| Maintenance and Update Frequency | As Needed | |||
| Spatial Extent of Data | Statewide | |||
| Bounding Coordinates | -97 -89 49 43 |
|||
| Place Keywords | Minnesota | |||
| Theme Keywords | State Parks, Recreation, State Land, boundaries | |||
| Theme Keyword Thesaurus | None | |||
| Access Constraints | None | |||
| Use Constraints | None | |||
| Contact Person Information | Hal Watson,
GIS Database Coordinator DNR-MIS 500 Lafayette Road, Box 11 St. Paul, MN 55155-4011 Phone:<PHONE_NUMBER> FAX:<PHONE_NUMBER> E-mail: | |||
| Browse Graphic | View a sample of the data. | |||
| Browse Graphic File Description | ||||
| Associated Data Sets | |
|||
| Section 2 | Data Quality Information | Top of full metadata | Top of page | |
| Attribute Accuracy | Source table BDRY_STPRKPY3.DBF: Not specifically assesed. | |||
| Logical Consistency | Data are topologically correct using ARC/INFO. All polygons are closed and lines intersect where intended. | |||
| Completeness | Data are complete over the entire state. | |||
| Horizontal Positional Accuracy | Source layer bdry_stprkpy3: Horizontal positional accuracy is dependant on accuracy of the pl40ne3 dataset and statutory descriptions of park boundaries. In most areas, pls40ne3 features can be expected to be +/- 40 feet from their true position. The most significant problems have typically been observed in the northeastern part of the state. However, when significant accuracy problems are observed, State Parks Statuatory boundaries will typically rely on other sources of information, such as cultural features visible on aerial imagery. Accurate land surveyed boundaries are also used on occasion. | |||
| Vertical Positional Accuracy | Source layer bdry_stprkpy3: Not Applicable | |||
| Lineage | Attribute Lineage for source table BDRY_STPRKPY3.DBF: Unknown. | |||
| Source Scale Denominator | Source layer bdry_stprkpy3: 24000 | |||
| Section 3 | Spatial Data Organization Information | Top of full metadata | Top of page | |
| Native Data Set Environment | Arc/Info 7.x | |||
| Geographic Reference for Tabular Data | Not Applicable | |||
| Spatial Object Type | vector | |||
| Vendor Specific Object Types | polygon | |||
| Tiling Scheme | state | |||
| Section 4 | Spatial Reference Information | Top of full metadata | Top of page | |
| Horizontal Coordinate Scheme | UTM | |||
| Ellipsoid | GRS1980 | |||
| Horizontal Datum | NAD83 | |||
| Horizontal Units | meters | |||
| Distance Resolution | ||||
| Altitude Datum | Not Applicable | |||
| Altitude Units | Not Applicable | |||
| Depth Datum | Not Applicable | |||
| Depth Units | Not Applicable | |||
| Cell Width | ||||
| Cell Height | ||||
| Latitude Resolution | ||||
| Longitude Resolution | ||||
| UTM Zone Number | 15 | |||
| SPCS Zone Identifier | ||||
| County Coordinate Zone Identifier | ||||
| Coordinate Offsets or Adjustments | Not Applicable | |||
| Map Projection Name | Transverse Mercator | |||
| Map Projection Parameters | Not Applicable | |||
| Other Coordinate System's Definition | Not Applicable | |||
| Section 5 | Entity and Attribute Information | Top of full metadata | Top of page | |
| Entity and Attribute Overview | Data Elements for Attribute Table BDRY_STPRKPY3.DBF: LONG_NAME: Unit Name and Type NAME: Unit Name PGRM_PRJ: BREM Program Project code - state parks PARK_TYPE: Unit Type PARK_CODE: Region number and unique 2 digit park code STAT_ACRES: Legislative Statutory Acres PARK_OWNED: Park Owned/Administered OWN_DATE: Date that park ownership was updated. CALC_ACRES: ArcView calculated acres |
|||
| Entity and Attribute Detailed Citation | Value Domain for Data Element LONG_NAME: Value Domain for Data Element NAME: Value Domain for Data Element PGRM_PRJ: SRA00*** = BREM Program Project code - state recreation areas Value Domain for Data Element PARK_CODE: |
|||
| Section 6 | Distribution Information | Top of full metadata | Top of page | |
| Publisher | Minnesota DNR - Division of Parks & Recreation | |||
| Publication Date | 2002-01-01 00:00:00.0 | |||
| Contact Person Information | Hal Watson GIS Database Coordinator DNR-MIS 500 Lafayette Road, Box 11 St. Paul, MN 55155-4011 Phone:<PHONE_NUMBER> FAX:<PHONE_NUMBER> E-mail: |
|||
| Distributor's Data Set Identifier | bdry_stprkpy3 | |||
| Distribution Liability | The Minnesota Department of Natural Resources makes no representation or warranties, express or implied, with respect to the reuse of data provided herewith, regardless of its format or the means of its transmission. There is no guarantee or representation to the user as to the accuracy, currency, suitability, or reliability of this data for any purpose. The user accepts the data 'as is', and assumes all risks associated with its use. By accepting this data, the user agrees not to transmit this data or provide access to it or any part of it to another party unless the user shall include with the data a copy of this disclaimer. The Minnesota Department of Natural Resources assumes no responsibility for actual or consequential damage incurred as a result of any user's reliance on this data. | |||
| Transfer Format Name | Shapefile | |||
| Transfer Format Version Number | Not Applicable | |||
| Transfer Size | 0.7 | |||
| Ordering Instructions | See Online Linkage or Distribution Contact | |||
| Online Linkage | http://deli.dnr.state.mn.us/ | |||
| Section 7 | Metadata Reference Information | Top of full metadata | Top of page | |
| Metadata Date | 2006-10-20 10:30:29.0 | |||
| Contact Person Information | Ron Danielson,
GIS Coordinator DNR-Parks 1201 East Hwy 2 Grand Rapids, MN 55744 Phone:<PHONE_NUMBER> FAX:<PHONE_NUMBER> E-mail: |
|||
| Metadata Standard Name | Minnesota Geographic Metadata Guidelines | |||
| Metadata Standard Version | 1.2 | |||
| Metadata Standard Online Linkage | http://www.gis.state.mn.us/stds/metadata.htm |


AngularJS Expression
AngularJS Expressions developer guides
1 + 1 = {{1 + 1}}
// as numbers
a + b = {{'a' + 'b'}}
// as string
{{fruits[0]}}
// as array
{{basket.buyer}}


icecast and darkice
Any team can benefit from a widely-accessible streaming music server. Sharing the same music increases team flow and builds culture. And funny things happen.
To share both music and announcements, party.io uses Play from Github. Play is an ‘employee-powered iTunes-based client-driven distributed music server for your office’. Our company DJ (a big-hearted, chrome-plated hubot) manages Play and occasionally accepts submissions from the team.
Play syncs the company song queue, but a streaming audio server is still needed to stream what’s playing. There are products that do this; Nicecast is one.
You can also build an open-source frankenstack for free. It’s just four pieces: Soundflower, Jack, Darkice and Icecast. This post explains how to put these pieces together.
While it’s a little more work, the outcome is the ability to stream system audio anywhere. This makes more scenarios possible and it requires less maintenance - there’s no requirement to add media files in advance or to configure any applications.
If you can hear it, you can stream it.
Before starting
You’ll need the latest compiler installed, whether via XCode or the OSX Mountain Lion Command Line Tools installation at http://connect.apple.com/ (recommended if you don’t need all of XCode). You’ll need to be somewhat comfortable with working on the command line. Make sure you have Homebrew installed. And make sure to run brew update
before beginning, and brew doctor
if anything goes wrong along the way.
Installation: Soundflower
Soundflower is an inter-application audio routing utility. Soundflower creates additional audio devices that bind to applications to send and receive audio. Soundflower also comes with a program called Soundflowerbed. It lets you listen to audio locally even while broadcasting, like a splitter. Here’s what the Soundflowerbed menu bar app looks like:
Download Soundflower here and install it. Homebrew doesn’t have a Soundflower formula AFAIK, but thankfully there’s nothing tricky to this installation.
Once you’ve restarted we’ll install the next component, Jack.
Installation: Jack
Jack is a professional quality audio tool that can also route audio between applications.
Jack had problems initially with Mac OSX 10.7.3+, but a beta version seems to have worked the bugs out. Neither the Homebrew formula nor the latest download on jackosx.com have the new code, but you can find it on the Jack-OSX Yahoo group.
There’s a link to the 0.90b8 beta package on this thread. Download and install it, restarting when necessary.
Next, start the Soundflowerbed app (in /Applications/Soundflower) and choose the ‘Audio Setup’ option from the menu bar icon it installs. This will launch the System Audio Midi Setup menu. Set both input and output to Soundflower (2ch), like in the image below. Also make sure the volume is up.
Now we can start Jack as follows:
➜ ~ jackdmp -d coreaudio
jackdmp 1.9.9
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2012 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
Input channel = 0 ==> JACK input port = 0
Input channel = 1 ==> JACK input port = 1
JACK output port = 0 ==> output channel = 0
JACK output port = 1 ==> output channel = 1
CoreAudio driver is running...
Jack will now be running and can pass audio from Soundflower into our next component, Darkice.
Installation: Darkice
Darkice is a live audio streamer. In our setup, it’s responsible for encoding the audio from Jack (into MP3, Ogg Vorbis, et. al.) and sending it to Icecast.
We’ll install Darkice with Homebrew but this gets a little weird. Darkice has a dependency on Jack, but Homebrew doesn’t know we’ve already installed Jack through another means. So we have to install a ‘dummy’, unlinked Jack so Homebrew thinks the Jack dependency is satisfied but Darkice builds against the downloaded Jack and not the Homebrew Jack (this is essential).
Run this command:
1
brew install darkice --use-llvm #ignore the linking warnings for Jack - Darkice must complete without Jack linked!
During this process Jack will fail to link and issue a warning but the script will still continue. This is good, because Darkice will then build against the downloaded Jack. If things blow up which installing dependencies, install without the llvm flag and then retry this again. The goal is just to get the Jack-failed-link and the Darkice build in the same step.
Installation: Icecast
Icecast is the web-serving layer of our stack, accepting incoming client connections and then broadacsting out the stream it receives from Darkice.
Install Icecast with Homebrew.
1
brew install icecast
Running Icecast and Darkice
We need a config file for Icecast: download this sample icecast.xml I’ve put together for this tutorial into ~/.icecast.xml
. Now we can start Icecast:
1
icecast -c ~/.icecast.xml
We also need a config file for darkice: download this sample darkice.cfg into ~/.darkice.cfg
. Once you have it saved, let’s start Darkice:
1
darkice -c ~/.darkice.cfg
We can now check our status by logging into Icecast’s administration UI. Go to http://localhost:8000/admin/ and enter the admin-user and admin-password from the icecast.xml config file. You should arrive at the admin page:
And you should see an area below that shows the active mount point, created by Darkice:
Testing with a client
Now, head over to another computer on your network, or your smartphone, and head for to the streaming address we’ve set up. The URL should look something like this:
1
http://computer.local:8000/spin
Substitute ‘computer.local’ for the hostname or IP address of your computer. ‘spin’ is the name of the mountpoint we specified in darkice.cfg (and 8000 the port).
Paste the URL into Safari on Mac or iOS and you should get playback in iTunes / iOS Quicktime respectively:
Now you, your team, or the whole Internet can listen to your music, broadcasts, and the output of the command say! Flex the golden pipes!
Configure your router
You won’t be able to access your streaming server from outside your home network unless your open the appropriate ports on your router. In this example, you’d open port 8000. Your router’s instruction manual can you tell you how.
Bonus Gist
If you get it all to work, you might want to run these programs in the background and on startup. I wrote up a few basic plist files to be used with launchd that do just that. You can find them in this gist.
Credits
The creators of all of these fine tools. This article: Broadcasting music to multiple speakers.


Reflections on version control
git and GitHub
May 24th, 2015
What are the benefits of version control? There are many benefits of version control. Version control can be used to create a backup. It's helpful with collaboritive work flow. It can make debugging a program easier by keeping track of changes in logical chunks. There are many other benefits as well as the ones mentioned.
How does git help you keep track of changes? git helps you keep track of changes by allowing you to create a save point or multiple save points if you like.
Why use GitHub to store your code? It's helpful if you lose your computer, you still have access to your code online. Plus, if you intend to share your code, GitHub is a great place to to do so.


|
some stuff
some stuff some stuff |
My 1st column might have content resulting in e.g. a 400px height, though it could be less or more.
My 2nd column is a bunch of text data, perhaps document excerpts, that could be a line or two, or hundreds of lines. In the latter case, what I get is *all* hundreds of lines and the height of my is x-hundreds of px.
What I'd like to do is limit the height of column 2 to be no taller than column 1 and, if there is more to display, have a scroll-bar on the 2nd column. The way I've shown it doesn't work.
I'm open to any ideas: frames? position?
|


Search Results for term:
|
Programatic Repeat using my.Repeat and its templateString:
|
Declarative Repeat using my.Repeat does not pass templateString:
|
Details for selected index:


Full width page
This is a page that spans the entire available space. You can use this as an alternative to the two-column layout that you saw in the dashboard page.
Here's what a table looks like when spanned the entire width.
| Name | Username | Actions | ||
|---|---|---|---|---|
| Apply to selected | ||||
| Adrian Purdila | adipurdila |<EMAIL_ADDRESS>| ||
| Adrian Purdila | adipurdila |<EMAIL_ADDRESS>| ||
| Adrian Purdila | adipurdila |<EMAIL_ADDRESS>| ||
| Adrian Purdila | adipurdila |<EMAIL_ADDRESS>| ||
| Adrian Purdila | adipurdila |<EMAIL_ADDRESS>| ||
| Adrian Purdila | adipurdila |<EMAIL_ADDRESS>|
When you resize the page, all the elements inside the page will resize as well, this being a liquid or fluid layout.


Pepyatka is an open source FriendFeed clone (yes, it is free and open!). Basically, this is a social real-time feed aggregator that allows you to share cute kittens, coordinate upcoming events, discuss any other cool stuff on the Internet or setup a private Pepyatka instance in your company.
Build with love by epicmonkey@frf.


Alice
Internet
Bob
Create Offer
Post Offer
Fetch Offer
Create Answer
Post Answer
Fetch Answer
Fake Successful Connect
Connect


Click the red button to create a new room, then copy the url to join from another tab or device
Creating room…
Joining call…


@( key: String, email: String )
This is for testing without using real payment details
@key
Read this to learn about test users
You do not have to use any details, just make sure you are logged out, have visited this page before hand and the red flash is visible.
Alternatively, register an identity account as per a recurring product purchase, and make sure you are logged in.


I graduated from the University of Oregon in 2013 with a Bachelors of Science in Business. I also had a minor in Economics. Within the business school, I concentrated in Finance and Sports Business. After I graduated, I started a job doing accounting for a company called Dealer Spike, located just outside of Portland.
Dealer Spike
For amlost three years I worked at a local tech company called Dealer Spike. This company made websites for powersport dealerships. I really enjoyed working for Dealer Spike, but I was not convinced I wanted to go down the accounting path. I had contact with Dealer Spike's developers and gradually became more interested in coding.
Epicodus
My cousin had a friend that was doing the Epicodus program so he put me in contact with him. Immediately after my talk with his friend, I knew I wanted to apply for Epicodus. I applied and I was accepted, now here I am studying and writing code.
If you would like more info, here is a link to my LinkedIn profile.


Anime List
(current)
Read Manga
Movie
About
Genre
Action
Adventure
Cars
Comedy
Dementia
Demons
Drama
Ecchi
Fantasy
Game
Harem
Historical
Horror
Josei
Kids
Magic
Martial Arts
Mecha
Military
Music
Mystery
Parody
Police
Psycological
Romance
Samurai
School
Sci-Fi
Seinen
Shoujo
Shoujo Ai
Shounen
Shounen Ai
Slice of Life
Space
Sports
Super Power
Super Natural
Thriller
Vampire
Yaoi
Yuri
Previous
Next


{{ headline }}
Login Status
Login Status:
{{ login.msg }}
Logout
Email/Password Account
Email
A valid email is required.
Password
Password is too short.
Password is too long.
Login with Email
Create User
Anonymous Account
Login Anonymously
Convert to Email/Password account
Provider's Accounts
Login with Google
Ficebook, Twitter and GitHub authentication is also avaliable.


DigitalOcean example
Estimated reading time: 5 minutesFollow along with this example to create a Dockerized DigitalOcean Droplet (cloud host).
Step 1. Create a DigitalOcean account
If you have not done so already, go to DigitalOcean, create an account, and log in.
Step 2. Generate a personal access token
To generate your access token:
-
Go to the DigitalOcean administrator console and click API in the header.
-
Click Generate new token to get to the token generator.
-
Give the token a descriptive name, make sure the Write (Optional) checkbox is checked, and click Generate Token.
-
Grab (copy to clipboard) the generated big long hex string and store it somewhere safe.
This is the personal access token used in the next step to create your cloud server.
Step 3. Use Machine to create the Droplet
-
Run
docker-machine create
with thedigitalocean
driver and pass your key to the--digitalocean-access-token
flag, along with a name for the new cloud server.For this example, the new Droplet is called
docker-sandbox
:$ docker-machine create --driver digitalocean --digitalocean-access-token xxxxx docker-sandbox Running pre-create checks... Creating machine... (docker-sandbox) OUT | Creating SSH key... (docker-sandbox) OUT | Creating Digital Ocean droplet... (docker-sandbox) OUT | Waiting for IP address to be assigned to the Droplet... Waiting for machine to be running, this may take a few minutes... Machine is running, waiting for SSH to be available... Detecting operating system of created instance... Detecting the provisioner... Provisioning created instance... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... To see how to connect Docker to this machine, run: docker-machine env docker-sandbox
When the Droplet is created, Docker generates a unique SSH key and stores it on your local system in
~/.docker/machines
. Initially, this is used to provision the host. Later, it’s used under the hood to access the Droplet directly with thedocker-machine ssh
command. Docker Engine is installed on the cloud server and the daemon is configured to accept remote connections over TCP using TLS for authentication. -
Go to the DigitalOcean console to view the new Droplet.
-
At the command terminal, run
docker-machine ls
.$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default - virtualbox Running tcp://<IP_ADDRESS>:2376 docker-sandbox * digitalocean Running tcp://<IP_ADDRESS>:2376
The new
docker-sandbox
machine is running, and it is the active host as indicated by the asterisk (*). When you create a new machine, your command shell automatically connects to it. If for some reason your new machine is not the active host, rundocker-machine env docker-sandbox
, followed byeval $(docker-machine env docker-sandbox)
to connect to it.
Step 4. Run Docker commands on the Droplet
-
Run some
docker-machine
commands to inspect the remote host. For example,docker-machine ip <machine>
gets the host IP address anddocker-machine inspect <machine>
lists all the details.$ docker-machine ip docker-sandbox <IP_ADDRESS> $ docker-machine inspect docker-sandbox { "ConfigVersion": 3, "Driver": { "IPAddress": "<IP_ADDRESS>", "MachineName": "docker-sandbox", "SSHUser": "root", "SSHPort": 22, "SSHKeyPath": "/Users/samanthastevens/.docker/machine/machines/docker-sandbox/id_rsa", "StorePath": "/Users/samanthastevens/.docker/machine", "SwarmMaster": false, "SwarmHost": "tcp://<IP_ADDRESS>:3376", "SwarmDiscovery": "", ...
-
Verify Docker Engine is installed correctly by running
docker
commands.Start with something basic like
docker run hello-world
, or for a more interesting test, run a Dockerized webserver on your new remote machine.In this example, the
-p
option is used to expose port 80 from thenginx
container and make it accessible on port8000
of thedocker-sandbox
host.$ docker run -d -p 8000:80 --name webserver kitematic/hello-world-nginx Unable to find image 'kitematic/hello-world-nginx:latest' locally latest: Pulling from kitematic/hello-world-nginx a285d7f063ea: Pull complete 2d7baf27389b: Pull complete ... Digest: sha256:ec0ca6dcb034916784c988b4f2432716e2e92b995ac606e080c7a54b52b87066 Status: Downloaded newer image for kitematic/hello-world-nginx:latest 942dfb4a0eaae75bf26c9785ade4ff47ceb2ec2a152be82b9d7960e8b5777e65
In a web browser, go to
http://<host_ip>:8000
to bring up the webserver home page. You got the<host_ip>
from the output of thedocker-machine ip <machine>
command you ran in a previous step.
Step 5. Use Machine to remove the Droplet
To remove a host and all of its containers and images, first stop the machine, then use docker-machine rm
:
$ docker-machine stop docker-sandbox
$ docker-machine rm docker-sandbox
Do you really want to remove "docker-sandbox"? (y/n): y
Successfully removed docker-sandbox
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
default * virtualbox Running tcp:////xxx.xxx.xx.xxx:xxxx
If you monitor the DigitalOcean console while you run these commands, notice that it updates first to reflect that the Droplet was stopped, and then removed.
If you create a host with Docker Machine, but remove it through the cloud
provider console, Machine loses track of the server status. Use the
docker-machine rm
command for hosts you create with docker-machine create
.
Where to go next
- Understand Machine concepts
- Docker Machine driver reference
- Docker Machine subcommand reference
- Create containers for your Docker Machine
- Provision a Docker Swarm cluster with Docker Machine


We need ways to describe content in a HTML document. The basic elements like
,
, and
 will often do the job, but our basic set of tags doesn't cover every possible type of page element or layout choice. For this we need ID's and Classes.
So what is the difference between class and id?
Each element can have only one ID;
Each page can have only one element with that ID, in general, use id whenever you want to refer to a specific element, for example
, this will give us the chance to target this unordered list specifically, so that we may manipulate it uniquely to other unordered lists on our page.
in a css file - define an id named nobullets
/**remove the bullet dots for that perticular unordered list*/
Or we might have a section on our page that has no relevant tag to signify it, for example a footer, where we might do something like this:
.
in a css file - define an ID named footer
/** define footer style */
in a html file - apply footer ID to Footer only
You can use the same class on multiple elements, in general you use class when you have a number of things that are all alike.
For example a page with multiple "outline", which gives awesome outline effect to the text.
in a css file, define a class named outline,
/** define the outline effect to text */
in a html file, apply outline class as many times as needed
outline class have been repeatly applied in this html file.
You can use multiple classes on the same element.
for example
/** define a green-background class */
then I can apply class outline that I defined previously and class green-background on the same element;
Hope above examples explained the difference between classes and ids.


Click here to access the Github repository.
This page is part of the
Engineering Academy Documentation Assignment
Engineering Academy Session One took place on 29 March 2020.
Engineering Academy Session Two took place on 30 March 2020.
Click the link above for more information on the assignment.
In case the link becomes broken in the future, A short description is provided below.
Background
The following was covered in the 29 March morning session:
- Why we need to document
- If you don't document your work, it is as if it didn't happen
- Introduction to HTML and CSS
- Perhaps a basic understanding will get you through. That could be done in 12 minutes.
- Webpage hosting on GitHub
- Why not? It's FREE!
- Version control using Git
- This could save you from losing your precious work
- Markdown as an alternative to HTML
- It's easier to write, but less flexible especially in terms of styling.
- It has the full power of HTML but not so much of CSS.
Requirements
- Show an understanding of the importance and need for good documentation.
- Create a website with at least 3 pages
- Home Page
- Introduction of what your site intends to host
- A brief outline of the site's contents
- e.g. projects, experiences, skills-learnt, mistakes made, new technical products
- Project Page(s)
- Documenting experience with HTML, CSS, GitHub, Git and/or Markdown.
- How you setup your site etc.
- e.g. document how Github Desktop is used for archival, with relations to Git commands.
- About
- Tell the world about yourself.
- Leave out confidential data e.g Your birthday, NRIC or bank details.
- Make it interesting so that a reader would want to follow your exploits!
- The following WWW characteristics:
- A uniform look across all pages
- Navigation from the Home Page to the other pages
- A common header,
footerand navigation - Images and side-by-side text
- Links and references
- A way to contact you through social media e.g. email, etc
- Place all your images (photos, drawings, screenshots) in a folder names "images" to separate it from the rest of your web-pages.
- Host your website on Github using the project-name engacad.
- Use Git to manage your web-site