As shown earlier, the convolution sum can be defined as $$y(n) = \sum \limits _{m \in \Z} x(m)h(n-m) = (x * h)(n) $$ or using the commutative property of convolution we can write $$ y(n) = \sum \limits _{k \in \Z} h(k)x(n-k) = (h * x)(n) $$ where $h(n)$ denotes the \emph{impulse response} of systems $H$ to the input signal $x(n)$, defined as $$x(n) =\cdots + x(-1)\delta(n+1) + x(0)\delta(n) + x(1)\delta(n-1) + \cdots \mbox{,}$$ and the output signal of the LTI system $y(n)$ is defined as $$ y(n) =\cdots + x(-1)h(n+1) + x(0)h(n) + x(1)h(n-1) + \cdots \mbox{.} $$
Note that $x * \delta = \delta * x = x$. In other words, $\delta(n)$ is the identity element of the convolution sum.
We have shown that convolution in the time domain is multiplication in the frequency domain: $$(f*g)(t) \ftp F(\omega)G(\omega)$$ Consider the Modulation Property of the Continuous-Time Fourier Transform: $$ f(t)g(t) \ftp \frac{1}{2\pi} (F*G)(\omega) $$ \begin{align*} \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\int_{-\infty}^{\infty}(F*G)(\omega)e^{i\omega t}d\omega \\ \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F(W)G(\omega-W) dW e^{i\omega t}d\omega \\ \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\int_{-\infty}^{\infty}F(W)\int_{-\infty}^{\infty}G(\omega-W) e^{i\omega t} d\omega dW \\ \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\int_{-\infty}^{\infty}F(W)\int_{-\infty}^{\infty}G(\Omega) e^{i(\Omega+W) t} d\Omega dW \\ \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\int_{-\infty}^{\infty}F(W)\lr{\int_{-\infty}^{\infty}G(\Omega) e^{i\Omega t} d\Omega }e^{iWt}dW \\ \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\int_{-\infty}^{\infty}F(W)e^{iWt}dW \lr{\int_{-\infty}^{\infty}G(\Omega) e^{i\Omega t} d\Omega}\\ \iftrans{(F*G)(\omega)} &= \frac{1}{2\pi}\lr{2\pi f(t)}\lr{2\pi g(t)} \\ \iftrans{(F*G)(\omega)} &= 2\pi f(t)g(t) \\ \iftrans{\frac{1}{2\pi}(F*G)(\omega)} &= f(t)g(t) \\ \end{align*}
When we integrate a function in time, what happens to its Laplace Transform? \begin{align*} x(t) \ltp \hat{X}(s) \\ y(t) = \int_{-\infty}^t x(\tau) d\tau \end{align*} We can solve this by using the fact that $y(t) = x(t) * u(t) = \int^{\infty}_{-\infty} x(\tau) u(t - \tau) d\tau$ \begin{align*} x(t) &\ltp \hat{X}(s) \\ u(t) &\ltp \frac{1}{s} \\ y(t) &\ltp \frac{\hat{X}(s)}{s} \\ \end{align*} The $RoC(u) = \{ s \st \Real{s} > 0 \}$, and the new region of convergence is at least the intersection of $RoC(x)$ and $RoC(u)$. Hence, we have our Integration in Time property:
If we view the complex exponential as a particle traveling around the unit circle, it does not have to be traveling around at a constant rate. For instance, we can represent $\theta$ as a function. If $\theta(t) = \omega_0t + \phi_0$, the particle goes around at a constant rate. We call $\theta(t)$ the instantaneous angle, and $\omega(t)$ the instantaneous frequency at time $t$: $$ \omega(t) = \dot{\theta}(t) = \frac{d\theta}{dt} $$ The prototype of a pure frequency is $e^{i \omega_0t}$, and represents a phasor going around the unit circle at a constant rate $\omega \frac{\mbox{rad}}{\mbox{sec}}$. If $z = e^{i \theta(t)}$ and $\theta(t) = \omega_0t + \phi_0$, then $\phi_0$ represents the phase shift, or initial phase offset.
In Continuous Time, we use the Dirac Delta function. (Technically not a function, and the height is actually infinite)
A binary operation on a set $G$ is a function from $G \times G$ to $G$. A binary operation $\circ$ on a set $G$ is associative if $$ \forall a,b,c \in G\ \ a \circ (b \circ c) = (a \circ b) \circ c $$ For a binary operation $\circ$ on a set $G$ and $a,b \in G$, $a$ and $b$ are said to commute if $a \circ b = b \circ a$. If for any $a,b \in G$, $a$ and $b$ commute, then $\circ$ is said to be commutative.
A binary operation on a set $G$ is a function from $G \times G$ to $G$. A binary operation $\circ$ on a set $G$ is associative if $$ \forall a,b,c \in G\ \ a \circ (b \circ c) = (a \circ b) \circ c $$ For a binary operation $\circ$ on a set $G$ and $a,b \in G$, $a$ and $b$ are said to commute if $a \circ b = b \circ a$. If for any $a,b \in G$, $a$ and $b$ commute, then $\circ$ is said to be commutative.
Leonhard Euler demonstrated a relationship between the base of the natural logarithm, sine, cosine, and the imaginary unit, which is now coined Euler's Formula:
Euler's formula can be derived by looking at the complex exponential on the unit circle. The horizontal component of $e^{i \theta}$ is $ \cos \theta$, and the vertical component is $i\sin \theta$. The formula can also be derived using infinite series. \begin{align*} e^\theta &= \sum \limits_{n = 0}^{\infty} \frac{\theta^n}{n!} = 1 + \theta + \frac{\theta^2}{2!} + \frac{\theta^3}{3!} + \frac{\theta^4}{4!} + \cdots \\ \sin \theta &= \sum \limits_{n = 0}^{\infty} \frac{(-1)^n\theta^{2n+1}}{(2n+1)!} = \theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} + \cdots \\ \cos \theta &= \sum \limits_{n = 0}^{\infty} \frac{(-1)^n\theta^{2n}}{(2n)!} = 1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} + \cdots \end{align*} Given the above formulae, we can derive $e^{i\theta}$ in terms of $\sin \theta$ and $\cos \theta$: \begin{align*} e^{i\theta} &= \sum \limits_{n = 0}^{\infty} \frac{(i\theta)^n}{n!} = 1 + i\theta + \frac{i^2\theta^2}{2!} + \frac{i^3\theta^3}{3!} + \frac{i^4\theta^4}{4!} + \cdots \\ e^{i\theta} &= \sum \limits_{n = 0}^{\infty} \frac{(i\theta)^n}{n!} = 1 + i\theta - \frac{\theta^2}{2!} - \frac{i\theta^3}{3!} + \frac{\theta^4}{4!} + \frac{i\theta^5}{5!} -\frac{\theta^6}{6!} - \cdots \\ e^{i\theta} &= \sum \limits_{n = 0}^{\infty} \frac{(i\theta)^n}{n!} = \left[ 1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \cdots \right] + \left[ i\theta - \frac{i\theta^3}{3!} + \frac{i\theta^5}{5!} - \cdots\right] \\ e^{i\theta} &= \sum \limits_{n = 0}^{\infty} \frac{(i\theta)^n}{n!} = \sum \limits_{n = 0}^{\infty} \frac{(-1)^n\theta^{2n}}{(2n)!} + i\sum \limits_{n = 0}^{\infty} \frac{(-1)^n\theta^{2n+1}}{(2n+1)!} \\ e^{i \theta} &= \cos \theta + i \sin \theta \end{align*} We can also use this formula to come up with useful identities: For $\cos \theta$: \begin{align*} e^{-i \theta} &= \cos (\theta) + i \sin(- \theta) \\ e^{-i \theta} &= \cos \theta - i \sin \theta \quad \mbox{(since cosine is even and sine is odd)} \\ e^{i \theta} + e^{-i \theta} &= (\cos \theta + i \sin \theta) + (\cos \theta - i \sin \theta) \\ e^{i \theta} + e^{-i \theta} &= 2\cos \theta \\ \frac{e^{i \theta} + e^{-i \theta}}{2} &= \cos \theta \end{align*} This demonstrates that a cosine wave defined by $\cos \omega_0t = \frac{1}{2}e^{i\omega_0t} + \frac{1}{2}e^{-i\omega_0t}$ has two frequencies, namely $\omega_0$ and $-\omega_0$. The magnitude represents how much each frequency contributes. The same goes for the sine wave: For $\sin \theta$: \begin{align*} e^{i \theta} - e^{-i \theta} &= (\cos \theta + i \sin \theta) - (\cos \theta - i \sin \theta) \\ e^{i \theta} - e^{-i \theta} &= 2i\sin \theta \\ \frac{e^{i \theta} - e^{-i \theta}}{2i} &= \sin \theta \end{align*}


The Code Dx branch to use as the parent if the specified "target branch" does not exist yet. The new branch will inherit the findings of the base branch. The branch must exist in the Code Dx project beforehand.
This field is ignored if a "target branch" is not specified, or if the target branch already exists.
This field is required if the "target branch" does not exist yet.
("Branches" refer to branches within the Code Dx project, not SCM branches.)


test:
<ngx-form-element> gives you possibility to dynamically create new html form element like input, select or any another that you will provide to form element module config using Material Design.
simple[0] {{simple[0]|json}}
model {{rows[0]|json}}


We have a wide range of customized programs on core engineering domains suitable for working professionals/ engineering graduates and engineering students. Programs and Courses are available from 3 Days to 6 Months. Technical Workshops are structured for 3-6 days, and detailed courses are open from 2 to 6 months.


N/A
Unique Items.
It's a sad day when there are no items to display.
Try changing the filters, there are other items to show.


Passwords are hard to remember
Online accounts containing personally identifiable information—Facebook, Chase, Amazon, Dropbox, employee intranets—are difficult to manage when account security and integrity come into play. This is because passwords are inherently unfriendly to the user. Combinations of capital letters, lowercase letters, numerals, and special characters are usually required.  This is probably why most people only use around three or four passwords across all of their accounts. There has to be a better way to remember all of your passwords while keeping your information safe.
Solution (sort of): Password Managers
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Expedita, illum repellat vitae molestias magnam, cum nulla tenetur eligendi illo culpa officia vel consectetur animi voluptate esse quis aliquid. Ex, voluptate.


The People Behind The Brand!
Sam Mai is the President and CEO of Sparks. With a professional background in tax and accounting, Sam began working extensively with nonprofit organizations starting in the early 1990s. His solo practice continued to grow, leading to the decision to develop a professional services firm addressing the tax and compliance needs of Sparks nationwide.
Alan Vang stands at the forefront of the fastest moving technology industry trend: cloud services. He’s spent the past five years evangelizing an industry-wide shift to the cloud and has helped position Microsoft as a leader in the public cloud space.
An industry expert with more than 20 years of successful experience in full life cycle Recruiting and Business Development, Nathan Tadesse has a proven ability to foster relationships with C-Suite and senior executives for I.T. Operations, Accounting, Finance and Home Building opportunities.
Derek Jackson joined the Newtrition family in April 2012, but has quickly become a true MVP to our clients. As Director of Compliance Services, Fatima and her team concentrate their skills toward the ongoing needs of established nonprofits, with services such as IRS Form 990 preparation and charitable solicitations registration and renewal.


Ruby vs. JavaScript
A brief overview of the syntactic differences between Ruby and JavaScript
by Becky Lehmann
November 16, 2015
Overview
If you have some exposure with Ruby and JavaScript, you've probably noticed several syntactic differences between the languages. Similar, I imagine, to trying to learn Spanish and French at the same time, the crossover between the Ruby and JavaScript can be pretty confusing. While you could take a much deeper dive into each of the topics I will cover (and you certainly should!), the purpose of this post is to give a high-level overview of some of those key syntactic differences.
Variable Declaration
In Ruby, variable declaration is pretty straighforward, following a format of variable_name = assigned_value. In JavaScript, the declaration looks a bit different:
var variable_name = assigned_value
As you can see, you must precede the variable name with "var" in order to indicate it is a variable. JavaScript uses this same format, regardless of the scope of the variable. You determine the scope not through the syntax of the variable name, but by looking at where the variable is defined (if variable_name is declared within a function, it is local to that function; if it is declared outside of any functions, it is considered global). The same concept of scope exists in Ruby. However, local variables look different from instance and global variables. For example, if I wanted to declare the same variable_name within a method, but make it accessible to other methods within the same class, I would declare it as @variable_name. Thus, JavaScript draws scope purely from where the variable is declared, while Ruby depends more on the format of the variable name itself.
Ruby Hashes and JavaScript Objects
In Ruby, you may see a hash constructed like so:
my_hash = {
key_one: value_one,
key_two: value_two,
key_three: value_three
}
The syntax looks pretty much the same in JavaScript, except that you would use the variable naming conventions described above. One of the main syntactic differences between hashes and objects relates to how values within the hash are accessed. In Ruby, you would use my_hash[:key_one] to retrieve the value, value_one. In JavaScript, the more common notation is with a dot, like so: my_hash.key_one.
Methods
The main syntactic difference between methods in Ruby and JavaScript relates to the use of parenthesis when calling a method. Let's say I have a string "Becky" assigned to the variable my_name. In Ruby, if I wanted to convert the string to all uppercase letters and assign it to the variable upcase_name, I would do the following:
my_name = "Becky"
upcase_name = my_name.upcase
In JavaScript, you must use parenthesis when calling a function. Thus, a similar method in JavaScript would look like this:
var my_name = "Becky"
var upcase_name = my_name.toUpperCase();
As you can see, I've included a set of parenthesis after "toUpperCase," even though there is no argument included. In JavaScript, you must include parenthesis for many of these built-in methods, otherwise the code will not run properly.
Summary
While this is just a start to the syntactic differences between Ruby and JavaScript, it is important to note the details so you don't run into issues while writing your code. For all you Rubyists out there, beware of the JavaScript semicolons! They may trip you up along the way.


This demo demonstrates running the Sock Shop on a Kubernetes cluster using Weave Net and Weave Scope.
curl -sSL https://get.docker.com/ | sh
apt-get install -yq jq python-pip curl unzip build-essential python-dev
pip install awscli
curl -o /tmp/terraform.zip https://releases.hashicorp.com/terraform/0.7.11/terraform_0.7.11_linux_amd64.zip
unzip /tmp/terraform.zip -d /usr/bin
git clone https://github.com/microservices-demo/microservices-demo
cd microservices-demo
Begin by setting the appropriate AWS environment variables.
export AWS_ACCESS_KEY_ID=[YOURACCESSKEYID]
export AWS_SECRET_ACCESS_KEY=[YOURSECRETACCESSKEY]
export AWS_DEFAULT_REGION=[YOURDEFAULTREGION]
export TF_VAR_aws_region=$AWS_DEFAULT_REGION
Next we’ll create a private key for use during this demo.
aws ec2 create-key-pair --key-name deploy-docs-k8s --query 'KeyMaterial' --output text > ~/.ssh/deploy-docs-k8s.pem
chmod 600 ~/.ssh/deploy-docs-k8s.pem
Finally run terraform.
terraform apply deploy/kubernetes/terraform/
Our master node makes use of some of the files in this repo so lets securely copy those over.
master_ip=$(terraform output -json | jq -r '.master_address.value')
scp -i ~/.ssh/deploy-docs-k8s.pem -o StrictHostKeyChecking=no -rp deploy/kubernetes/manifests ubuntu@$master_ip:/tmp/
master_ip=$(terraform output -json | jq -r '.master_address.value')
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip sudo kubeadm init > k8s-init.log
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip "sudo cp /etc/kubernetes/admin.conf /home/ubuntu/"
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip "sudo chown \$(id -u):\$(id -g) \$HOME/admin.conf"
grep -e --token k8s-init.log > join.cmd
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip KUBECONFIG=\$HOME/admin.conf kubectl apply -f https://git.io/weave-kube-1.6
kubeadm join --token <token> <master-ip>
command from before.node_addresses=$(terraform output -json | jq -r '.node_addresses.value|@sh' | sed -e "s/'//g" )
for node in $node_addresses; do
ssh -i ~/.ssh/deploy-docs-k8s.pem -o StrictHostKeyChecking=no ubuntu@$node sudo `cat join.cmd`
done
There are two options for running Weave Scope, either you can run the UI locally, or using the hosted provider at cloud.weave.works
master_ip=$(terraform output -json | jq -r '.master_address.value')
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip KUBECONFIG=\$HOME/admin.conf kubectl apply -f 'https://cloud.weave.works/launch/k8s/weavescope.yaml'
<token>
from cloud.weave.works ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip kubectl apply -f 'https://cloud.weave.works/launch/k8s/weavescope.yaml?service-token=<token>'
You may optionally choose to configure Weave Flux which allows automatic deployment of changes. Unfortunately it’s beyond the scope of this document, but you can read more about it here.
master_ip=$(terraform output -json | jq -r '.master_address.value')
scp -i ~/.ssh/deploy-docs-k8s.pem -rp deploy/kubernetes/manifests-logging ubuntu@$master_ip:/tmp/
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip kubectl apply -f /tmp/manifests-logging/
master_ip=$(terraform output -json | jq -r '.master_address.value')
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip KUBECONFIG=\$HOME/admin.conf kubectl apply -f /tmp/manifests/sock-shop-ns.yaml -f /tmp/manifests
To deploy with opentracing run after deploying the sock-shop
master_ip=$(terraform output -json | jq -r '.master_address.value')
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip KUBECONFIG=\$HOME/admin.conf kubectl apply -f /tmp/manifests-zipkin/zipkin-ns.yaml -f /tmp/manifests-zipkin
If you want all stateless services to scale automatically based on the CPU utilization, you can deploy all the manifests in the “deploy/kubernetes/autoscaling” directory. The autoscaling directory contains Kubernetes horizontal pod autoscalers for all the stateless services, and the Heapster monitoring application with it’s depedencies.
master_ip=$(terraform output -json | jq -r '.master_address.value')
scp -i ~/.ssh/deploy-docs-k8s.pem -o StrictHostKeyChecking=no -rp deploy/kubernetes/autoscaling ubuntu@$master_ip:/tmp/
ssh -i ~/.ssh/deploy-docs-k8s.pem ubuntu@$master_ip kubectl apply -f /tmp/autoscaling
If you cause enough load on the application you should see the various services scaling up in number.
Run terraform output
command to see the load balancer and node URLs
The sock shop is available at the sock_shop_address as displayed below. The scope app is accessible via the master and any of the node urls on port 30001, while the same applies for Kibana if you deployed it, but using port 31601. It may take a few moments for the apps to get running.
Outputs:
master_address = ec2-52-213-213-161.eu-west-1.compute.amazonaws.com
node_addresses = [
ec2-52-213-136-12.eu-west-1.compute.amazonaws.com,
ec2-52-208-64-132.eu-west-1.compute.amazonaws.com,
ec2-52-48-129-206.eu-west-1.compute.amazonaws.com
]
sock_shop_address = MD-k8s-elb-sock-shop-1211989270.eu-west-1.elb.amazonaws.com
There is a separate load-test available to simulate user traffic to the application. For more information see Load Test. This will send some traffic to the application, which will form the connection graph that you can view in Scope or Weave Cloud.
elb_url=$(terraform output -json | jq -r '.sock_shop_address.value')
docker run --rm weaveworksdemos/load-test -d 300 -h $elb_url -c 2 -r 100
Zipkin is part of the deployment and has been written into some of the services. While the system is up you can view the traces in Zipkin at http://<loadbalancer>:9411. Currently orders provide the most comprehensive traces.


Growl 1.3 now available on the Mac App Store:
Growl, perhaps the most well-known and popular notification system for OS X, has just released version 1.3 as a Mac App Store exclusive. The previously free notification system has become a paid app with Growl 1.3. As Macstories points out, the reason the Growl team decided to make what was previously a free System Preferences pane into a US$1.99 app was so users would be provided with an up-to-date app utilizing the latest Apple technologies.
So what’s new with Growl 1.3? Almost everything. Growl has been rewritten from the ground up using a new architecture, sporting a new UI, and adding lots of features previous iterations of Growl never had. But not to worry, Growl 1.3 still retains everything you loved about Growl 1.2, they’ve just added a lot of cool new features to it.
Among the coolest new features is a Notification Center-like Rollup window. The window, which is accessed from the Finder’s menu bar (where you find Growl now), keeps a history of all your notifications that you’ve received from various apps that use Growl. This is especially handy when you’re away from your computer and want to see what notifications you missed.
Growl 1.3 is $1.99 in the Mac App Store. Users also can still download the free System Preference pane version 1.2.2 here.


p tag
Defines paragraph.

This is a sample of the p tag in action!

Defines paragraph.

This is a sample of the p tag in action!

Scripts the browser.
var x = 10;
function test() {
console.log(x);
}


I am a Computer Science and Engineering graduate from People's Education Society, Bangalore. I'm currently working at ParallelDots. My interests lie in Machine Learning, Big Data, Computer Security, Algorithms and emerging technologies.
I am competent at programming in Python, C++, Java, C, JavaScript, HTML5 and CSS3 having used them during my internships and coursework. I have worked with MySQL, SQLite and Oracle databases. I have experience working with frameworks like Django and Flask. I have also worked with distributed systems and Big Data technologies like Apache Spark and Hadoop. I have a great deal of experience working on several Unix-like systems including Ubuntu, Debian, Arch and Gentoo.
I have a great passion for hackathons and have attended over 25 in Bangalore.
In college I was part of the chess team and was part of the organising teams of several departmental events ranging from extra curriculars to hackathons. I was also a part of the core team that arranged the Computer Science fest of Ayana in 2015.
My hobbies include chess, basketball, swimming and playing the guitar. I am also an avid bibliophile and traveller. I also have a strong affinity for strategy games of all kinds ranging from board games like chess and RISK to digital ones like Age of Empires and Starcraft.


Organized Wonder was a way to share and discover the best talks, documentaries, interviews, short films and various other videos scattered across the web. You could follow people you admire and share your wonders with others.


PPP PGA Golf Pool
The PPP PGA
Golf Pool
The PPP PGA Tour Golf Pool started as the dream of one man. It's evolved little since then.
Send an email to Tyler at<EMAIL_ADDRESS>to request an invite.
He'll set you up with the info you need.


NZD/USD recovers to 0.6420, stays in weekly range amid protracted trade uncertainty
by Eren Sengezer- Chinese President Xi says he is not afraid of a trade war with US.
- US could reportedly delay December tariff hike if there is no deal.
- US Dollar Index moves sideways near 98 ahead of PMI data.
The NZD/USD pair is having a difficult time making a decisive move despite the modest recovery witnessed on Friday. As of writing, the pair is trading at 0.6417, adding 0.25% on a daily basis.
Investors continue to assess US-China trade developments
The lack of clarity on the completion of phase one of the United States (US)-China trade deal ahead of the scheduled tariff hikes on December 15th seems to be forcing investors to refrain from making large bets.
The South China Morning Post (SCMP) on Thursday claimed that the White House could delay the tariff increase on Chinese imports even if a deal is not finalized but there is good progress in the next round of face-to-face talks. During the Asian trading hours on Friday, Chinese President Xi Jinping reiterated that they want to work out phase one fo the trade deal but added that he is not afraid of a trade war with the US. "When necessary we will fight back, but we have been working actively to try to not have a trade war," Xi added.
In the meantime, the US Dollar Index is moving sideways near the 98 mark, causing the pair to remain stuck in its daily range. During the American session, the IHS Markit will publish the preliminary Manufacturing and Services Purchasing Managers' Index (PMI) data for November. Markets are likely to react to a big deviation in the Manufacturing PMI reading, which is expected to edge up to 51.5 from 51.3 in October.
Technical levels to consider
NZD/USD
| Overview | |
|---|---|
| Today last price | 0.6418 |
| Today Daily Change | 0.0017 |
| Today Daily Change % | 0.27 |
| Today daily open | 0.6401 |
| Trends | |
|---|---|
| Daily SMA20 | 0.6382 |
| Daily SMA50 | 0.6345 |
| Daily SMA100 | 0.643 |
| Daily SMA200 | 0.6562 |
| Levels | |
|---|---|
| Previous Daily High | 0.6438 |
| Previous Daily Low | 0.6396 |
| Previous Weekly High | 0.642 |
| Previous Weekly Low | 0.6324 |
| Previous Monthly High | 0.6437 |
| Previous Monthly Low | 0.6204 |
| Daily Fibonacci 38.2% | 0.6412 |
| Daily Fibonacci 61.8% | 0.6422 |
| Daily Pivot Point S1 | 0.6385 |
| Daily Pivot Point S2 | 0.637 |
| Daily Pivot Point S3 | 0.6343 |
| Daily Pivot Point R1 | 0.6427 |
| Daily Pivot Point R2 | 0.6454 |
| Daily Pivot Point R3 | 0.6469 |


#include <MatlabImageAdapter.h>
Inheritance diagram for MatlabImageAdapter:
Public Member Functions | |
| MatlabImageAdapter (mxArray *im) | |
| virtual | ~MatlabImageAdapter () |
| virtual double | getPixel (int row, int column, int channel) const |
| virtual void | setPixel (double value, int row, int column, int channel) |
Protected Member Functions | |
| template<class T> | |
| double | getPixelT (int row, int column, int channel) const |
| template<class T> | |
| void | setPixelT (double value, int row, int column, int channel) |
| double | getPixeldoNothing (int row, int column, int channel) const |
| void | setPixeldoNothing (double value, int row, int column, int channel) |
Protected Attributes | |
| mxArray * | mMatlabImage |
| void * | mImageDataPtr |
| double(MatlabImageAdapter::* | getPixelfptr )(int row, int column, int channel) const |
| void(MatlabImageAdapter::* | setPixelfptr )(double value, int row, int column, int channel) |
The MatlabImageAdapter class is inherited from the OvImageAdapter and provides a wrapper around Matlab's mxArray allowing the OpenVis3D library functions to access the dimensions and datatype of the image, and provides get and set methods to alter image pixels.
| MatlabImageAdapter::MatlabImageAdapter | ( | mxArray * | im | ) |
to prevent the default constructor from being used
| MatlabImageAdapter::~MatlabImageAdapter | ( | ) | [virtual] |
Destructor.
| double MatlabImageAdapter::getPixel | ( | int | row, | |
| int | column, | |||
| int | channel | |||
| ) | const [virtual] |
Returns a pixel value at a particular row, column and color channel.
| row | row of the image | |
| column | column of the image | |
| channel | channel of the image |
Implements OvImageAdapter.
| double MatlabImageAdapter::getPixeldoNothing | ( | int | row, | |
| int | column, | |||
| int | channel | |||
| ) | const [protected] |
Dummy function for use when internal mxArray pointer is null or data type unknown.
| row | row of the image | |
| column | column of the image | |
| channel | channel of the image |
| double MatlabImageAdapter::getPixelT | ( | int | row, | |
| int | column, | |||
| int | channel | |||
| ) | const [protected] |
Internal template function to handle any image datatype. Returns a pixel value at a particular row, column and color channel.
| row | row of the image | |
| column | column of the image | |
| channel | channel of the image |
| void MatlabImageAdapter::setPixel | ( | double | value, | |
| int | row, | |||
| int | column, | |||
| int | channel | |||
| ) | [virtual] |
Sets a pixel value at a particular row, column and color channel.
| value | value to be set | |
| row | row of the image | |
| column | column of the image | |
| channel | channel of the image |
Implements OvImageAdapter.
| void MatlabImageAdapter::setPixeldoNothing | ( | double | value, | |
| int | row, | |||
| int | column, | |||
| int | channel | |||
| ) | [protected] |
Dummy function for use when internal mxArray pointer is null or data type unknown.
| value | value to be set | |
| row | row of the image | |
| column | column of the image | |
| channel | channel of the image |
| void MatlabImageAdapter::setPixelT | ( | double | value, | |
| int | row, | |||
| int | column, | |||
| int | channel | |||
| ) | [protected] |
Internal template function to handle any image datatype. Sets a pixel value at a particular row, column and color channel.
| value | value to be set | |
| row | row of the image | |
| column | column of the image | |
| channel | channel of the image |
double(MatlabImageAdapter::* MatlabImageAdapter::getPixelfptr)(int row, int column, int channel) const [protected] |
function pointer used to store getpixel function appropriate for image datatype
void* MatlabImageAdapter::mImageDataPtr [protected] |
saved pointer to the raw data array within the Matlab mxArray object
mxArray* MatlabImageAdapter::mMatlabImage [protected] |
saved pointer to Matlab mxArray object
void(MatlabImageAdapter::* MatlabImageAdapter::setPixelfptr)(double value, int row, int column, int channel) [protected] |
function pointer used to store setpixel function appropriate for image datatype


EVP_MAC, EVP_MAC_fetch, EVP_MAC_up_ref, EVP_MAC_free, EVP_MAC_is_a, EVP_MAC_get0_name, EVP_MAC_names_do_all, EVP_MAC_get0_description, EVP_MAC_get0_provider, EVP_MAC_get_params, EVP_MAC_gettable_params, EVP_MAC_CTX, EVP_MAC_CTX_new, EVP_MAC_CTX_free, EVP_MAC_CTX_dup, EVP_MAC_CTX_get0_mac, EVP_MAC_CTX_get_params, EVP_MAC_CTX_set_params, EVP_MAC_CTX_get_mac_size, EVP_MAC_CTX_get_block_size, EVP_Q_mac, EVP_MAC_init, EVP_MAC_update, EVP_MAC_final, EVP_MAC_finalXOF, EVP_MAC_gettable_ctx_params, EVP_MAC_settable_ctx_params, EVP_MAC_CTX_gettable_params, EVP_MAC_CTX_settable_params, EVP_MAC_do_all_provided - EVP MAC routines
#include <openssl/evp.h>
typedef struct evp_mac_st EVP_MAC;
typedef struct evp_mac_ctx_st EVP_MAC_CTX;
EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,
const char *properties);
int EVP_MAC_up_ref(EVP_MAC *mac);
void EVP_MAC_free(EVP_MAC *mac);
int EVP_MAC_is_a(const EVP_MAC *mac, const char *name);
const char *EVP_MAC_get0_name(const EVP_MAC *mac);
int EVP_MAC_names_do_all(const EVP_MAC *mac,
void (*fn)(const char *name, void *data),
void *data);
const char *EVP_MAC_get0_description(const EVP_MAC *mac);
const OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac);
int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac);
void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx);
EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src);
EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CTX *ctx);
int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]);
int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]);
size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx);
size_t EVP_MAC_CTX_get_block_size(EVP_MAC_CTX *ctx);
unsigned char *EVP_Q_mac(OSSL_LIB_CTX *libctx, const char *name, const char *propq,
const char *subalg, const OSSL_PARAM *params,
const void *key, size_t keylen,
const unsigned char *data, size_t datalen,
unsigned char *out, size_t outsize, size_t *outlen);
int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t keylen,
const OSSL_PARAM params[]);
int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen);
int EVP_MAC_final(EVP_MAC_CTX *ctx,
unsigned char *out, size_t *outl, size_t outsize);
int EVP_MAC_finalXOF(EVP_MAC_CTX *ctx, unsigned char *out, size_t outsize);
const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac);
const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac);
const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac);
const OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx);
const OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx);
void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx,
void (*fn)(EVP_MAC *mac, void *arg),
void *arg);
These types and functions help the application to calculate MACs of different types and with different underlying algorithms if there are any.
MACs are a bit complex insofar that some of them use other algorithms for actual computation. HMAC uses a digest, and CMAC uses a cipher. Therefore, there are sometimes two contexts to keep track of, one for the MAC algorithm itself and one for the underlying computation algorithm if there is one.
To make things less ambiguous, this manual talks about a "context" or "MAC context", which is to denote the MAC level context, and about a "underlying context", or "computation context", which is to denote the context for the underlying computation algorithm if there is one.
EVP_MAC is a type that holds the implementation of a MAC.
EVP_MAC_CTX is a context type that holds internal MAC information as well as a reference to a computation context, for those MACs that rely on an underlying computation algorithm.
EVP_MAC_fetch() fetches an implementation of a MAC algorithm, given a library context libctx and a set of properties. See "ALGORITHM FETCHING" in crypto(7) for further information.
See "Message Authentication Code (MAC)" in OSSL_PROVIDER-default(7) for the list of algorithms supported by the default provider.
The returned value must eventually be freed with EVP_MAC_free(3).
EVP_MAC_up_ref() increments the reference count of an already fetched MAC.
EVP_MAC_free() frees a fetched algorithm. NULL is a valid parameter, for which this function is a no-op.
EVP_MAC_CTX_new() creates a new context for the MAC type mac. The created context can then be used with most other functions described here.
EVP_MAC_CTX_free() frees the contents of the context, including an underlying context if there is one, as well as the context itself. NULL is a valid parameter, for which this function is a no-op.
EVP_MAC_CTX_dup() duplicates the src context and returns a newly allocated context.
EVP_MAC_CTX_get0_mac() returns the EVP_MAC associated with the context ctx.
EVP_Q_mac() computes the message authentication code of data with length datalen using the MAC algorithm name and the key key with length keylen. The MAC algorithm is fetched using any given libctx and property query string propq. It takes parameters subalg and further params, both of which may be NULL if not needed. If out is not NULL, it places the result in the memory pointed at by out, but only if outsize is sufficient (otherwise no computation is made). If out is NULL, it allocates and uses a buffer of suitable length, which will be returned on success and must be freed by the caller. In either case, also on error, it assigns the number of bytes written to *outlen unless outlen is NULL.
EVP_MAC_init() sets up the underlying context ctx with information given via the key and params arguments. The MAC key has a length of keylen and the parameters in params are processed before setting the key. If key is NULL, the key must be set via params either as part of this call or separately using EVP_MAC_CTX_set_params(). Providing non-NULL params to this function is equivalent to calling EVP_MAC_CTX_set_params() with those params for the same ctx beforehand.
EVP_MAC_init() should be called before EVP_MAC_update() and EVP_MAC_final().
EVP_MAC_update() adds datalen bytes from data to the MAC input.
EVP_MAC_final() does the final computation and stores the result in the memory pointed at by out of size outsize, and sets the number of bytes written in *outl at. If out is NULL or outsize is too small, then no computation is made. To figure out what the output length will be and allocate space for it dynamically, simply call with out being NULL and outl pointing at a valid location, then allocate space and make a second call with out pointing at the allocated space.
EVP_MAC_finalXOF() does the final computation for an XOF based MAC and stores the result in the memory pointed at by out of size outsize.
EVP_MAC_get_params() retrieves details about the implementation mac. The set of parameters given with params determine exactly what parameters should be retrieved. Note that a parameter that is unknown in the underlying context is simply ignored.
EVP_MAC_CTX_get_params() retrieves chosen parameters, given the context ctx and its underlying context. The set of parameters given with params determine exactly what parameters should be retrieved. Note that a parameter that is unknown in the underlying context is simply ignored.
EVP_MAC_CTX_set_params() passes chosen parameters to the underlying context, given a context ctx. The set of parameters given with params determine exactly what parameters are passed down. If params are NULL, the unterlying context should do nothing and return 1. Note that a parameter that is unknown in the underlying context is simply ignored. Also, what happens when a needed parameter isn't passed down is defined by the implementation.
EVP_MAC_gettable_params() returns an OSSL_PARAM(3) array that describes the retrievable and settable parameters. EVP_MAC_gettable_params() returns parameters that can be used with EVP_MAC_get_params().
EVP_MAC_gettable_ctx_params() and EVP_MAC_CTX_gettable_params() return constant OSSL_PARAM(3) arrays that describe the retrievable parameters that can be used with EVP_MAC_CTX_get_params(). EVP_MAC_gettable_ctx_params() returns the parameters that can be retrieved from the algorithm, whereas EVP_MAC_CTX_gettable_params() returns the parameters that can be retrieved in the context's current state.
EVP_MAC_settable_ctx_params() and EVP_MAC_CTX_settable_params() return constant OSSL_PARAM(3) arrays that describe the settable parameters that can be used with EVP_MAC_CTX_set_params(). EVP_MAC_settable_ctx_params() returns the parameters that can be retrieved from the algorithm, whereas EVP_MAC_CTX_settable_params() returns the parameters that can be retrieved in the context's current state.
EVP_MAC_CTX_get_mac_size() returns the MAC output size for the given context.
EVP_MAC_CTX_get_block_size() returns the MAC block size for the given context. Not all MAC algorithms support this.
EVP_MAC_is_a() checks if the given mac is an implementation of an algorithm that's identifiable with name.
EVP_MAC_get0_provider() returns the provider that holds the implementation of the given mac.
EVP_MAC_do_all_provided() traverses all MAC implemented by all activated providers in the given library context libctx, and for each of the implementations, calls the given function fn with the implementation method and the given arg as argument.
EVP_MAC_get0_name() return the name of the given MAC. For fetched MACs with multiple names, only one of them is returned; it's recommended to use EVP_MAC_names_do_all() instead.
EVP_MAC_names_do_all() traverses all names for mac, and calls fn with each name and data.
EVP_MAC_get0_description() returns a description of the mac, meant for display and human consumption. The description is at the discretion of the mac implementation.
Parameters are identified by name as strings, and have an expected data type and maximum size. OpenSSL has a set of macros for parameter names it expects to see in its own MAC implementations. Here, we show all three, the OpenSSL macro for the parameter name, the name in string form, and a type description.
The standard parameter names are:
Its value is the MAC key as an array of bytes.
For MACs that use an underlying computation algorithm, the algorithm must be set first, see parameter names "algorithm" below.
Some MAC implementations (GMAC) require an IV, this parameter sets the IV.
Some MAC implementations (KMAC, BLAKE2) accept a Customization String, this parameter sets the Customization String. The default value is the empty string.
This option is used by BLAKE2 MAC.
It's a simple flag, the value 0 or 1 are expected.
This option is used by KMAC.
A simple flag to set the MAC digest to not initialise the implementation specific data. The value 0 or 1 is expected.
This option is used by HMAC.
A simple flag to set the MAC digest to be a oneshot operation. The value 0 or 1 is expected.
This option is used by HMAC.
For MAC implementations that use an underlying computation cipher or digest, these parameters set what the algorithm should be.
The value is always the name of the intended algorithm, or the properties.
Note that not all algorithms may support all digests. HMAC does not support variable output length digests such as SHAKE128 or SHAKE256.
For MAC implementations that support it, set the output size that EVP_MAC_final() should produce. The allowed sizes vary between MAC implementations, but must never exceed what can be given with a size_t.
This parameter is only supported by HMAC. If set then special handling is activated for calculating the MAC of a received mac-then-encrypt TLS record where variable length record padding has been used (as in the case of CBC mode ciphersuites). The value represents the total length of the record that is having the MAC calculated including the received MAC and the record padding.
When used EVP_MAC_update must be called precisely twice. The first time with the 13 bytes of TLS "header" data, and the second time with the entire record including the MAC itself and any padding. The entire record length must equal the value passed in the "tls-data-size" parameter. The length passed in the datalen parameter to EVP_MAC_update() should be equal to the length of the record after the MAC and any padding has been removed.
All these parameters should be used before the calls to any of EVP_MAC_init(), EVP_MAC_update() and EVP_MAC_final() for a full computation. Anything else may give undefined results.
The MAC life-cycle is described in life_cycle-mac(7). In the future, the transitions described there will be enforced. When this is done, it will not be considered a breaking change to the API.
The usage of the parameter names "custom", "iv" and "salt" correspond to the names used in the standard where the algorithm was defined.
EVP_MAC_fetch() returns a pointer to a newly fetched EVP_MAC, or NULL if allocation failed.
EVP_MAC_up_ref() returns 1 on success, 0 on error.
EVP_MAC_names_do_all() returns 1 if the callback was called for all names. A return value of 0 means that the callback was not called for any names.
EVP_MAC_free() returns nothing at all.
EVP_MAC_is_a() returns 1 if the given method can be identified with the given name, otherwise 0.
EVP_MAC_get0_name() returns a name of the MAC, or NULL on error.
EVP_MAC_get0_provider() returns a pointer to the provider for the MAC, or NULL on error.
EVP_MAC_CTX_new() and EVP_MAC_CTX_dup() return a pointer to a newly created EVP_MAC_CTX, or NULL if allocation failed.
EVP_MAC_CTX_free() returns nothing at all.
EVP_MAC_CTX_get_params() and EVP_MAC_CTX_set_params() return 1 on success, 0 on error.
EVP_Q_mac() returns a pointer to the computed MAC value, or NULL on error.
EVP_MAC_init(), EVP_MAC_update(), EVP_MAC_final(), and EVP_MAC_finalXOF() return 1 on success, 0 on error.
EVP_MAC_CTX_get_mac_size() returns the expected output size, or 0 if it isn't set. If it isn't set, a call to EVP_MAC_init() will set it.
EVP_MAC_CTX_get_block_size() returns the block size, or 0 if it isn't set. If it isn't set, a call to EVP_MAC_init() will set it.
EVP_MAC_do_all_provided() returns nothing at all.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <unistd.h>
#include <openssl/evp.h>
#include <openssl/err.h>
#include <openssl/params.h>
int main() {
EVP_MAC *mac = EVP_MAC_fetch(NULL, getenv("MY_MAC"), NULL);
const char *cipher = getenv("MY_MAC_CIPHER");
const char *digest = getenv("MY_MAC_DIGEST");
const char *key = getenv("MY_KEY");
EVP_MAC_CTX *ctx = NULL;
unsigned char buf[4096];
size_t read_l;
size_t final_l;
size_t i;
OSSL_PARAM params[3];
size_t params_n = 0;
if (cipher != NULL)
params[params_n++] =
OSSL_PARAM_construct_utf8_string("cipher", (char*)cipher, 0);
if (digest != NULL)
params[params_n++] =
OSSL_PARAM_construct_utf8_string("digest", (char*)digest, 0);
params[params_n] = OSSL_PARAM_construct_end();
if (mac == NULL
|| key == NULL
|| (ctx = EVP_MAC_CTX_new(mac)) == NULL
|| !EVP_MAC_init(ctx, (const unsigned char *)key, strlen(key),
params))
goto err;
while ( (read_l = read(STDIN_FILENO, buf, sizeof(buf))) > 0) {
if (!EVP_MAC_update(ctx, buf, read_l))
goto err;
}
if (!EVP_MAC_final(ctx, buf, &final_l, sizeof(buf)))
goto err;
printf("Result: ");
for (i = 0; i < final_l; i++)
printf("%02X", buf[i]);
printf("\n");
EVP_MAC_CTX_free(ctx);
EVP_MAC_free(mac);
exit(0);
err:
EVP_MAC_CTX_free(ctx);
EVP_MAC_free(mac);
fprintf(stderr, "Something went wrong\n");
ERR_print_errors_fp(stderr);
exit (1);
}
A run of this program, called with correct environment variables, can look like this:
$ MY_MAC=cmac MY_KEY=secret0123456789 MY_MAC_CIPHER=aes-128-cbc \
LD_LIBRARY_PATH=. ./foo < foo.c
Result: C5C06683CD9DDEF904D754505C560A4E
(in this example, that program was stored in foo.c and compiled to ./foo)
property(7) OSSL_PARAM(3), EVP_MAC-BLAKE2(7), EVP_MAC-CMAC(7), EVP_MAC-GMAC(7), EVP_MAC-HMAC(7), EVP_MAC-KMAC(7), EVP_MAC-Siphash(7), EVP_MAC-Poly1305(7), provider-mac(7), life_cycle-mac(7)
These functions were added in OpenSSL 3.0.
Copyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact
logomark
Toggle navigation
Features
Enterprise
Contact


{% include head.html %}
{"API Integrations"}
Integrations (listing)
Integrations (icons)
API
(
APIs.json
)
Support
Spreadsheet
⇜
Return to API Evangelist
{{ content }}


Galvanize Delivers
menu
Order Delivery
Galvanize Delivers
Order Delivery
Menu
Royale with Cheese
$8.99
Add to Order
Arugula Pie
$11.99
Add to Order
Smoked Swine
$14.99
Add to Order
Ice Cream Biscuit
$7.99
Add to Order
Order
Item
Price
$0.00
Subtotal
$0.00
Tax
$0.00
Total
account_circle
First Name
phone
Telephone
business
Address
PLACE ORDER


A singleton instance of this class is yielded by Inflector.inflections, which can then be used to specify additional inflection rules. Examples:
ActiveSupport::Inflector.inflections do |inflect| inflect.plural /^(ox)$/i, '\1\2en' inflect.singular /^(ox)en/i, '\1' inflect.irregular 'octopus', 'octopi' inflect.uncountable "equipment" end
New rules are added at the top. So in the example above, the irregular rule for octopus will now be the first of the pluralization and singularization rules that is runs. This guarantees that your rules run before any of the rules that may already have been loaded.
- Singleton
| [R] | humans | |
| [R] | plurals | |
| [R] | singulars | |
| [R] | uncountables |
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 37 37: def initialize 38: @plurals, @singulars, @uncountables, @humans = [], [], [], [] 39: end
Clears the loaded inflections within a given scope (default is :all). Give the scope as a symbol of the inflection type, the options are: :plurals, :singulars, :uncountables, :humans.
Examples:
clear :all clear :plurals
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 105 105: def clear(scope = :all) 106: case scope 107: when :all 108: @plurals, @singulars, @uncountables = [], [], [] 109: else 110: instance_variable_set "@#{scope}", [] 111: end 112: end
Specifies a humanized form of a string by a regular expression rule or by a string mapping. When using a regular expression based replacement, the normal humanize formatting is called after the replacement. When a string is used, the human form should be specified as desired (example: ‘The name’, not ‘the_name’)
Examples:
human /_cnt$/i, '\1_count' human "legacy_col_person_name", "Name"
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 94 94: def human(rule, replacement) 95: @humans.insert(0, [rule, replacement]) 96: end
Specifies a new irregular that applies to both pluralization and singularization at the same time. This can only be used for strings, not regular expressions. You simply pass the irregular in singular and plural form.
Examples:
irregular 'octopus', 'octopi' irregular 'person', 'people'
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 63 63: def irregular(singular, plural) 64: @uncountables.delete(singular) 65: @uncountables.delete(plural) 66: if singular[0,1].upcase == plural[0,1].upcase 67: plural(Regexp.new("(#{singular[0,1]})#{singular[1..-1]}$", "i"), '\1' + plural[1..-1]) 68: singular(Regexp.new("(#{plural[0,1]})#{plural[1..-1]}$", "i"), '\1' + singular[1..-1]) 69: else 70: plural(Regexp.new("#{singular[0,1].upcase}(?i)#{singular[1..-1]}$"), plural[0,1].upcase + plural[1..-1]) 71: plural(Regexp.new("#{singular[0,1].downcase}(?i)#{singular[1..-1]}$"), plural[0,1].downcase + plural[1..-1]) 72: singular(Regexp.new("#{plural[0,1].upcase}(?i)#{plural[1..-1]}$"), singular[0,1].upcase + singular[1..-1]) 73: singular(Regexp.new("#{plural[0,1].downcase}(?i)#{plural[1..-1]}$"), singular[0,1].downcase + singular[1..-1]) 74: end 75: end
Specifies a new pluralization rule and its replacement. The rule can either be a string or a regular expression. The replacement should always be a string that may include references to the matched data from the rule.
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 43 43: def plural(rule, replacement) 44: @uncountables.delete(rule) if rule.is_a?(String) 45: @uncountables.delete(replacement) 46: @plurals.insert(0, [rule, replacement]) 47: end
Specifies a new singularization rule and its replacement. The rule can either be a string or a regular expression. The replacement should always be a string that may include references to the matched data from the rule.
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 51 51: def singular(rule, replacement) 52: @uncountables.delete(rule) if rule.is_a?(String) 53: @uncountables.delete(replacement) 54: @singulars.insert(0, [rule, replacement]) 55: end
Add uncountable words that shouldn‘t be attempted inflected.
Examples:
uncountable "money" uncountable "money", "information" uncountable %w( money information rice )
[ show source ]
# File vendor/rails/activesupport/lib/active_support/inflector.rb, line 83 83: def uncountable(*words) 84: (@uncountables << words).flatten! 85: end


Moodle and e-safety
Jan 13, 2009
A couple of quotes from me in the pre-BETT Guardian. Alas, the photos they took of our pupils Moodling don’t appear to have made it in 🙁
Jack Kenny’s article, ‘Get ready for the next intranet generation‘:
… Meanwhile, supporters of the open source Moodle platform have seen it go from strength to strength across primary and secondary schools. Miles Berry, head of Alton convent school prep in Hampshire, has long backed Moodle. “Version 1.9 released last March brought with it features that meet the needs of schools (or even authorities) as a whole, rather than the teacher/class focus that has been characteristic in the past,” he says. “For example, Moodle now offers a centralised grade book, competency or outcome tracking, teacher notes and ePortfolio integration. It remains very strong at providing the tools to allow social learning. It also works beautifully on an iPhone or iPod Touch.” …
Julie Nightingale’s article “Don’t Panic!“:
Share… Headteacher Miles Berry and ICT consultant Terry Freedman will examine some of the issues around e-safety in their seminar on informal learning (“What are your kids learning when you’re not looking?” Saturday 17 January). Fears will be lessened if parents and teachers get to grips with the role technologies such as social networking can play in learning, Berry suggests. “Schools that provide tools for social networking, collaboration and creativity themselves, or encourage learning using such tools, are in a good place to talk to parents in a balanced, informed way about just how their children are using the net.” …


Press the button then say the phrase to test the recognition.
Loading Model...
No pitch detected
Phrase...
Right or wrong?
...diagnostic messages


Russian 1000 Islands Sauce
A tasty sauce that goes well with salads or rice. Recipe taken from a Russian monastery.
Ingredients
- Ketchup (Sir Kensington’s recommended)
- Mayonnaise
- Horseradish
- Worchestershire sauce
- Paprika
- Dijon mustard
- Onion powder
- Pickle relish (optional)
Directions
- Take ingredients,
- Put into bowl or cup,
- Mix together thoroughly,
- Done.
Contribution
Recipe tags:
basic
spread
quick
russian


FEB 2017
Party WE LOVE 12A3
Hung have a party with Mary Malinda Hall and John Zera Alger.
FEB 2017
Party WE LOVE 12A3
Hung have a party with Mary Malinda Hall and John Zera Alger.
FEB 2017
Party WE LOVE 12A3
Hung have a party with Mary Malinda Hall and John Zera Alger.
FEB 2017
Party WE LOVE 12A3
Hung have a party with Mary Malinda Hall and John Zera Alger.
FEB 2017
Party WE LOVE 12A3
Hung have a party with Mary Malinda Hall and John Zera Alger.
FEB 2017
Party WE LOVE 12A3
Hung have a party with Mary Malinda Hall and John Zera Alger.


Dr. Norman Borlaug
Norman Ernest Borlaug was an American agronomist
Borlaug was often called "the father of the Green Revolution",[5][6] and is credited with saving over a billion people worldwide from starvation.[7][8][9][10] According to Jan Douglas, executive assistant to the president of the World Food Prize Foundation, the source of this number is Gregg Easterbrook's 1997 article "Forgotten Benefactor of Humanity."


{% extends 'base.html' %} {% block content %} {{super()}}
Welcome to the journal app!
We have screenshots, put them into your eyes!
Read our privacy policy here.


§431:12-114 Licenses. No person shall act as an insurance producer in connection with mass merchandising of insurance, unless the person is licensed as such under article 9A. [L 1987, c 347, pt of §2; am L 2002, c 155, §79]


This recipe is from my dad and they are a favorite among friends and family. The secret ingredient is the coconut!Be warned,these will fly off of the plate!
Most people don't know the complicated past of the cookie. According to culinary historians, the first historic record of cookies was their use as test cakes. A small amount of cake batter was baked to test the oven temperature.
As people started to explore the globe, biscuits (hardtack) became the ideal traveling food, because they stayed fresh for long periods Hardtack proved a portable food that had a long storage life and was perfect for traveling. For centuries, a ship’s biscuit, an iron-like cracker, was aboard any ship that left port because it could last for months (even years under the right conditions).
Click here to check out my other great recipes.


A responsible HTML framework + Text to Speech App Created by Ela Cai / @elacai
The lecturer on evolution had been going on for nearly two hours. then he started again, and said he:"Let me ask the evolutionist a question --- if we had tails like a baboon, where are they?"
教进化论的老师已经滔滔不绝地讲了快两个小时，他的话题又来了：“让我向进化论者提个问题——如果我们曾经像狒狒那样长着尾巴，那么现在尾巴到哪里去了?”
"I'll venture an answer," said an old lady.
“我来试试看，”一位老太太说。“该是我们在这里坐这么久把它们磨掉了吧。”
词汇学习A history teacher and his wife were sitting at a table
一位历史老师和他的妻子在吃饭
The wife asked “Anything new at work”, and he replied", no, I am teaching History".
妻子问到：“工作上有什么新鲜事吗?”丈夫回答说：“没有，我是教历史的。”
词汇学习Psychiatrist: What's your problem?
精神病医师：你哪里不舒服?
Patient: I think I'm a chicken.
病人：我认为我是一只鸡。
Psychiatrist: How long has this been going on?
精神病医师：这种情况从什么时候开始的?
Patient: Ever since I was an egg!
病人：从我还是一只蛋的时候开始。
词汇学习"You can't imagine how difficult it is for me to deal with my wife," the man complained to his friend
“你根本无法想象和我妻子打交道是多么的难，”一个男人对他的朋友诉苦说
"She asks me a question, then answers it herself, and after that she explained to me for half an hour why my answer is wrong.
“她问我一个问题，然后自己回答了，过后又花半个小时跟我解释为什么我的答案是错的。”
词汇学习A fat man and a skinny man were arguing about who was the more polite.
一个胖子和一个瘦子在争论谁更有礼貌。
The skinny man said he was more polite because he always tipped his hat to ladies.
瘦子说他更有礼貌，因为他经常对女士摘帽示意。
But the fat man knew he was more courteous because, whenever he got up and offered his seat, two ladies could sit down.
但是胖子认为他更有风度，因为无论什么时候他在车上给别人让座时，总有两位女士能坐下。
词汇学习


This is an interactive chart to show the correlation between 2 sets of RPI index. The data set is based on findings from 7 years.


{% extends 'base.html' %} {% load static from staticfiles %} {% load frontend_extras %} {% block header %} App Passwords {% endblock header %} {% block content %}
App Passwords allow you to access AK Writers services -- such as the chat server -- through apps such as Pidgin or Adium. We'll generate the app passwords for you, and you won't need to remember them -- your app will do that for you!
| Name | Created | Last Used | Access |
|---|---|---|---|
| {{ password.name }} | {{ password.created_on|simple_time }} | {{ password.last_used|simple_time|default:'--' }} | |
|
|


open_site().find().download().move()([ 'boilerplates', 'libraries' ]);
config([ 'pacakge.json', '.editorconfig', '.jshintrc', 'Gruntfile' ]);
_.loop( function(){
out_of_date && open_site().find().download().move([ 'libraries' ]);
(sass && compass) && watch();
coffee ? coffee().compile() : coding().linting();
livereload || find_and_switch_browser().reload_by_my_hand();
debugging().tuning();
}, time_to_go_home() );
linting().compile().min().uglify().optimize().package().dist();
# defualt generator
yo webapp
# angular generator
yo angular
yo angular:controller myController
yo angular:directive myDirective
yo angular:filter myFilter
# chromes apps generator
yo chromeapp
yo chrome-extentions
#search
bower search backbone
# install one or more dependencies
bower install backbone.layoutmanager
# list installed dependencies.
bower list
# update to the latest version available
bower update lodash
# build an optimized, production-ready version
grunt
# preview your app (Livereload)
grunt server
# run the unit tests for an app
grunt test
# scaffolds
yo webapp
# install default dependencies
npm install && bower install
# install a dependency for your project from Bower
bower install jquery
# test and preview your app
grunt test
grunt server
# build the application for deployment
grunt
var manifest = {
name: 'my prototype extension',
assets: [ 'icon16,19,38,128', 'popup.html',
'option.html', 'main.css' ],
scripts: [ 'background', 'contentscript' ],
lib: [ 'boilerplates', 'libraries' ]
};
write(manifest);
prev ? copy(manifest) : make(manifest);
});
compile().concat().optimize().COMPRESS().publish();
# install with official package
npm install generator-chrome-extension
# install with preview version, via github repo
npm install 'git://github.com/ragingwind/generator-chrome-extension.git'
# scaffolds, generate menifest.json, default script/html/assets
yo chrome-extension
# install default dependencies
npm install && bower install
# test, build and compress
grunt jshint && grunt test
grunt
yo chrome-extension
# interacting with options
Would you like to use UI Action(1: Browser, 2:Page)? 2
Would you like to use the Options Page? (y/N) y
Would you like to use the Content Scripts? (y/N) y
Would you like to declare the "Tabs" permission? (y/N) y
# install default dependencies
npm install && bower install
bower insall jquery --save && bower insall oauth2-extensions-for-test --save
# test, lint and build
grunt jshint && grunt test
grunt
yo chrome-extension
# interacting with options
Would you like to use UI Action(1: Browser, 2:Page)? 1
Would you like to declare the "Tabs" permission? (y/N) y
Would you like to declare the "History" permission? (y/N) y
# install default dependencies
npm install && bower install
bower insall jquery --save
# test, lint and build
grunt jshint && grunt test
grunt
yo chrome-extension
# interacting with options
Would you like to use UI Action(1: Browser, 2:Page)? 0
Would you like to use the Omnibox? (Please input keyword) dic
# install default dependencies
npm install && bower install
# test, lint and build
grunt jshint && grunt test
grunt


Statistical data set
Information on community learning through skills for life qualifications by participation and achievements.
Community learning includes a range of community based and outreach learning opportunities, primarily managed and delivered by local authorities and general further education colleges designed to bring together adults (often of different ages and backgrounds).
MS Excel Spreadsheet , 167KB
MS Excel Spreadsheet , 380KB
MS Excel Spreadsheet , 200KB
Published: 5 March 2014
Updated: 4 May 2016
From: Skills Funding Agency
Part of: FE data library


Walkthrough
Configured containers for studied web applications are available for download. After downloading the desired compressed package, and running docker-compose up you can access the web applications on port 8085.
By default, the original versions of applications are loaded. The credentials used to login to these instances are available in CREDENTIALS.txt file in each compressed package.
To test the debloating process, you can either debloat the applications yourself (described below) or you can test the currently debloated versions. To do that, SSH into the "web" container (you can use ssh_web.sh script available in root directory of the project), navigate to /var/www/html/ and move the files from file_debloating or function_debloating directories to the parent directory. You can make sure the permissions are correct by issuing chown -R www-data:www-data * in /var/www/html/.
This panel is accessible at http://localhost:8086/admin. Within this panel you can perform tasks such as:
You can host and debloat multiple versions of different web applications at the same time. As such, "WEB APPLICATIONS" subsection will allow you to add different versions of web applications.
1. Adding a new software: First, create an entry for your target application.This section presents the reports on which vulnerable files, functions or lines within each application was executed during selected tests. Additionally we can debloat target web applications at the file or function level.
- ReportsAt this point, the target application has been debloated. This can be tested by using the application normally and then navigating to one of the files or functions that has been removed to trigger an error.
By following the steps below, under "VULNERABILITIES" subsection, we can add new CVEs and mark vulnerable files, functions and lines in our target applications.
- Adding a new CVETo demonstrate how an exploit attempt can fail after debloating, you can test CVE-2016-4010. This exploit targets an unsafe deserialization on shopping cart information in guest checkout. The gadget chain starts with Credis_Client class which is the redis client used in Magento and this module is not enabled or used by default. This is a common theme for most classes used in PHP Object Injection gadgets, they are from classes that are not used. And as this is the case for this class, both file and function level debloating will successfully remove this class and exploit attempt will fail.
Follow these steps to reproduce this scenario:


This is a demo experiment, with this minimal consent form being loaded as an external html document. To continue, click the checkbox below and hit "Start Experiment".
I agree to take part in this study.


Hi there! Nice to meet you! My [middle] name is Dianne. I am so glad you are here.

This wouldn’t be an “about me page” if I don’t tell you a few things about myself.
Let’s connect! Find me on twitter/instagram: @dianneblogs


UK PM Johnson implores Trump: please avoid the election
by Temisan AmoyePrime Minister Boris Johnson said it was best if U.S. President Donald Trump did not get involved in Britain’s upcoming election when he visits London for a NATO summit next week.
“What we don’t do traditionally as loving allies and friends, what we don’t do traditionally, is get involved in each other’s election campaigns,” said Johnson, whose Conservative Party has a commanding lead in the polls ahead of the Dec. 12.
ALSO READ: Boris Johnson: Nigerians’re not just interested in money, we’re committed to It
“The best (thing) when you have close friends and allies like the U.S. and the UK is for neither side to get involved in each other’s election.”
Trump has already waded into the election, saying in October left-wing opposition leader Labour Party, Jeremy Corbyn, would be “so bad” for Britain and that Johnson should do a pact with Brexit Party leader Nigel Farage.
ALSO READ: Court annuls sack of FUOYE’s Lecturer, orders immediate reinstatement
Corbyn has used Trump’s praise of Johnson as one of his focal messages to attack the Conservatives in his campaign, saying they would sell off parts of the much-loved state-run National Health Service to the U.S. businesses after Brexit if they win the election.
Source: Reuters


[gecode-users] Quicksort bug
Michal D.
michal.dobrogost at gmail.com
Sat Dec 13 19:03:28 CET 2008
Hi All,
I had one hell of a bug hunt recently. What started as a crash on
winxp x64 ended up in a "true" being changed to a "false" on freebsd
(so I could sanely debug into the Gecode code base). The culprit was
FullTupleCompare (gecode/int/extensional/tuple-set.cc) but quicksort
also got hit in the cross-fire.
FullTupleCompare implements a less than or equal (<=) operator and not
a strict less than (<) operator. In effect, for the case where both
tuples are identical up the arity it returns true instead of false.
This causes quicksort massive problems. See tuple-set.cc.diff for the
fix.
The gecode quicksort assumes that its stack will never exceed a depth
of 32. This was getting exceeded when used on a large tupleset with
the above comparison operator. However, in general this assumption is
wrong. Stack usage for quicksort is worst case O(n) depending on the
values that are chosen for the pivot! Exceeding the stack current
results in an outright crash as an out of bounds pointer is
dereferenced. I toyed with two fixes:
1) make push return a success/failure code and if the push fails then
call quicksort recursively instead of pushing onto the stack. See
sort.icc.diff.
2) start off with an static stack and expand it dynamically if it's
exceeded. I'm not sure if Memory::malloc() / Memory::free() are the
right ways to go about grabbing memory. There is no performance
penalty if the stack depth does not exceed 32 entries. See
sort.icc.diff2.
Both solutions have the overhead of checking if the stack is going to
exceed 32 entries on a push. This doesn't seem significant especially
since most of the work should be happening in partition. My vote is
for fix # 2 as it seems to be the more robust solution (no potential
stack overflow).
Cheers,
Michal
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tuple-set.cc.diff
Type: application/octet-stream
Size: 833 bytes
Desc: not available
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20081213/61408fd1/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sort.icc.diff
Type: application/octet-stream
Size: 2954 bytes
Desc: not available
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20081213/61408fd1/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sort.icc.diff2
Type: application/octet-stream
Size: 2937 bytes
Desc: not available
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20081213/61408fd1/attachment-0002.obj>
More information about the gecode-users
mailing list


I just want to go to sleep. My head hurts.
We have to learn cursive. The teacher says it
is something everyone needs to learn, it's
just what you do. I can't read cursive...
well, I can't properly read print either,
but I really can't cursive. I have spent the last
thirty minutes writing fifty lower case "a"s. Then
I get to spend thirty more minutes writing fifty lower
case "b"s...then I get to do it with the next 24 letters.
Oh, wait, then it's uppercase. I am going to be up all
night doing this.
Who came up with the cursive letter for uppercase "G"s? What
is wrong with them?
Why am I not learning how to read? Why am I spending time learning
an entirely new and even more confusing way to write a language that
I already struggle with? Why are they doing this?
I want to cry.


CS-Script uses C# as a scripting language. Therefore, the scripting capabilities are largely based on the language itself. These capabilities can be extended by using external .NET assemblies (FCL or/and third-party assemblies).
It is possible to instruct the script engine to load at execution time any assembly which is referenced within the code. This can be accomplished by any of the following approaches:
Implicit: by placing "using" directive (native C# statement) for namespace directly in the code.
Explicit: by either placing "//css_reference" directive (CS-Script statement) as an explicit user request for loading the assembly or/and using command-line parameter.
The assembly is loaded automatically as a result of the analysis of C# code by the script engine.
The concept of loading the referenced assemblies automatically is quite simple. The script engine analyses all namespaces referenced in the code ("using" statement) and searches "local directories" (see File Location section below) and Global Assembly Cache (GAC) for assemblies with the same name as the referenced namespace. If such assembly is found it is loaded at execution time.
The approach is based on the fact that in a real life there is a strong correlation between the assembly name and the root namespace. For example, the namespace System.Windows.Forms is implemented in the assembly System.Windows.Forms, and the namespace System.XML is implemented in the assembly System.XML . This is also applicable to the assembly file name, which is usually a DLL file with the same name as the assembly name.
Thus, if script code has a statement "using System.Windows.Forms;" the system.windows.forms.dll will be automatically loaded (resolved) form GAC at execution time. If you need to make a use of myLibrary.dll in your script and it has a namespace myLibrary just put "using myLibrary;" in your code and assembly will be resolved.
In any case explicit assembly loading has to be used is where there is no resemblance between a namespace in the assembly and a name of the assembly file (eg. the namespace Steema is implemented in teechart.lite.dll).
The assembly is loaded because of an explicit request either from the code or from the command-line.
Information on loading the assembly from the command-line can be found in the Command-line interface section.
This is the code directive to load the assembly at execution time:
file - name of the assembly file. Assembly names may be enclosed in double quotation marks. Non-searchable assembly names should be enclosed in double quotation marks (see explanations below). Try to avoid using the absolute path because it can create difficulties when isolating scripts for deployment.
The shorter alias directive //css_ref can be used in place of the //css_reference.
The assembly to be loaded must be from one of the following locations (the order indicates the assembly search priority):
the absolute or relative path to assembly directory
Default Script Library directory Script Library (%CSSCRIPT_DIR%\Lib)
Custom Script Library directory(s) (specified in the configuration console SearchDirs)
The assembly math.dll contains
implementation of class Calculator
(which belongs to the namespace Math).
This class has the method
Add(int
a, int b).
The following code explicitly loads two assemblies: math.dll
and system.windows.forms.dll.
| //css_reference math.dll; using System; using System.Windows.Forms; class Test { static public void Main( string [] args) { MessageBox.Show(Math.Calculator.Add(1,2).ToString()); } } |
| //css_include linq.includes.cs; using System; class Test { static public void Main( string [] args) { .... |
This is the content of the linq.includes.cs file:
| //css_ref System.Core; //css_ref System.Data.ComponentModel; //css_ref System.Data.DataSetExtensions; //css_ref System.Xml; //css_ref System.Xml.Linq; |
Command-line interface | CS-Script settings | Using COM (Tutorial)


Virtual Reality is a simulated and immersive experience projected by a device into the user’s sight. The user is then cut off from their enviornment and plunged into the digital realm.
Commonly, a headset is needed to project you into a simulation. It requires a set of lenses inside a viewport on a headset, a mounted device where the experience is computed, and a remote control that is synced up to the headset which allows the user to interact with the 3D space around them!


|
| static TreeMap< Double, Double > | priorities = null |
| |
◆ flowSizeDistribution()
| static int ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.utility.FctDistributions.flowSizeDistribution |
( |
double |
outcome | ) |
|
|
static |
◆ init()
| static void ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.utility.FctDistributions.init |
( |
| ) |
|
|
staticprotected |
◆ mean()
| static int ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.utility.FctDistributions.mean |
( |
| ) |
|
|
static |
◆ sparkDistribution()
| static double ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.utility.FctDistributions.sparkDistribution |
( |
double |
random | ) |
|
|
static |
◆ priorities
| TreeMap<Double, Double> ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.utility.FctDistributions.priorities = null |
|
staticprivate |
◆ rnd
| Random ch.ethz.systems.netbench.xpt.voijslav_and_sppifo.utility.FctDistributions.rnd |
|
static |
The documentation for this class was generated from the following file:


a.
To show that the minimum spanning tree is unique, but that the second spanning need not be unique do the following:
Consider the following graph having 4 vertices. Suppose the vertices are {a, b, c, d} and the edge weights are as follows:
The weight of the minimum spanning tree is 7 while there are two spanning trees having second minimum weight of 8.
b.
Let T be the minimum spanning tree of G. It is required to prove that G contains edges and such that is a second best minimum spanning tree of G.
Proof: Insert an edge by removing some other edge on the unique path between u and v. Such a replacement must increase the weight of the tree. If two or more edges are replaced, it will not produce a tree better than the second best minimum spanning tree.
c.
An algorithm that given T computes max [u, v] for all is as follows:
Use dynamic programming approach. Suppose it is required to find it for (u, v). First identify the vertex x that occurs immediately after u in the path from vertex u to v. Equate max [u, v] to max of w ((u, x)) and max [w, v].
Consider the case that u and v are adjacent. If x can be found in constant time, then the entire dynamic program will run in time.
d.
The second best minimum spanning tree can be computed using the idea of b) and c).
Compute max (u, v) for all vertices in T. Compute max (u, v) for all vertices in T. Compute for any edge (u, v) not in T the difference w (u, v)-max [u, v]. The two edges yielding the smallest positive difference must be replaced.
Minimum spanning tree in sparse graphs
Minimum spanning tree is the set of all vertices such that the resultant tree is connected and having minimum weight over all other spanning tree.
a)
Since, every minimal-incident edge belongs to any MST for a vertex say, therefore the edge that is returned by the call MST-REDUCE also called as minimal edges are all cross the cut. Here, A is the minimum spanning tree that has been formed by MST-Prim and in the union operation with T (set of edges), all the edges of minimum spanning tree are taken into consideration. So, this always leads to formation of minimum spanning tree.
Since PRIM-MST returns the safe edges. This leads to the completion of the tree to MST.
Therefore, the resultant tree defined by is a minimum spanning tree of graph G.
b)
A value has been entered in G’ if the node has more than one node that is making a minimum span of the tree. It is because if there were more ways by which the spanning of tree would have been done, it was taken into consideration.
Therefore, no of components that are stored in G’ are always less than.
That is
c)
MST-REDUCE can be implemented using the simple data structure such as UNION, MAKE_SET and FIND_SET. Running time of thus implemented algorithm will be
MAKE_SET
FIND_SET
UNION
if then
begin
end
Running time of(MST-REDUCE)=COST of for loop in line 1+COST of for loop in line 4+building + COST OF for loop in line 12+COST(constructing adjacency list for )
=
Since,
For connected graphs
Therefore,
Hence proved
d)
In above part it has been proved that MST-REDUCE running time is.
In the stage, suppose there are edges
Since,
And,
Therefore,
Running time of the stages will be times
That is
e)
It can be picked up that.
Now, running time of Prim’s algorithm after stages-
Or,
=
=
Consider,
Differentiating and, the result is
Since,
The value will be minimum value when
Therefore, minimizes the total asymptotic running time.
f)
Prim’s algorithm with preprocessing has running time. On the other hand, Prim’s algorithm without preprocessing has running time.
Therefore, the former is better than latter.
Hence,
Till the time the above formula is satisfied, preprocessed Prim’s algorithm would win over the Prim’s algorithm without preprocessing.
Bottleneck spanning tree
For an undirected graph, a bottleneck spanning tree is a spanning tree of in such a manner that the weight of largest edge is minimum when compared to all spanning trees of.
That is the maximum-weighted value edge in is equal to the value of the bottleneck spanning tree.
a. Suppose that the graphhas a minimum spanning tree which is not a BST (Bottleneck Spanning Tree).
Consider the graph given below:
The minimum spanning tree of the graph given above will be:
Assume that the maximum weight edge in is.
Removing this edge will result in set of disconnected vertices and that edge can be viewed as a cut of graph.
This can be given as:
Now since this edge forms a cut therefore each minimum spanning tree must contain that edge or an edge having weight less than that of.
This leads to the contradiction.
Hence we can say a bottleneck spanning tree is a MST (Minimum Spanning Tree).b. Consider that is a graph and is an integer value.
A linear time algorithm is used to decide whether the value provided by bottleneck spanning tree is at most.
1. remove all the edges from graph .
2. for each edge,
3. if (its weight)
add it to graph
end for
If the graph say constructed in above fashion is connected then we can say that we can create a spanning tree having no edges of weight more than.
Since we are checking for each edges of graph the above algorithm will take time.
c. Initialize with the maximum weight edge of the graph.
Now,
Check
if b is possible (can be checked by above algorithm)
if yes
decrement value of b
else
b will be the maximum weight of the bottleneck minimum spanning tree
In this case, every value of b is checked until the condition is not satisfied. Since it is being checked for each edges of the graph the above algorithm will take time.


{%extends 'admin-dash.html'%} {% load static %} {%block body%}
| Shipping Address |
|---|
| john doe 123123123 abcd 1234 Aberdeen United Kingdom |
| Product | Category | Quantity | Status | Cost |
|---|---|---|---|---|
| Shirt 1 | Clothing | 1 | Pending |
500
|
| Shirt 1 | Clothing | 1 | Confirmed |
500
|
| Coupon Applied | FashVolts Credits Used | Amount Paid |
|---|---|---|
| Abra ka dabra | 200 | 300 |


A custom blog build
A personal project of mine, I was asked to build a custom Tumblr theme to highlight a series of one-a-day illustrations. Editing the HTML directly on the Tumblr’s tools, however, was inefficient and there was no way to track state.
I wanted a system that I could keep in version control and would allow me to easily copy and paste right into Tumblr’s HTML editor. Using Git and build tools with Grunt, that’s exactly what I created.
I needed to compile all markup, styles, and scripts down into one text file so that I could paste it into Tumblr’s HTML editor. So, I needed tools to both concatenate and compile all my code, but also to insert all of it into one file.
Using grunt-html-build, I took all my compiled styles and scripts and inserted it all into my one HTML file, which I was able to easily copy and paste into the HTML editor on Tumblr to quickly test and iterate on my code.
This was a fun tool to build. I took the limited features available to me and used my own knowledge of build tools to make things much easier and pleasant to code.


Plugin Compatibility with IntelliJ Platform Products
All products based on IntelliJ Platform (IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, etc.) share the same underlying platform API. Thus, a plugin that does not use any Java-specific functionality may be marked as compatible with these other products in addition to IntelliJ IDEA. This is done by specifying module dependencies in the plugin.xml
file.
A module dependency is a <depends>
tag where the contents of the tag starts with com.intellij.modules
.
For example:
<idea-plugin version="2">
...
<depends>com.intellij.modules.lang</depends>
...
</idea-plugin>
If a plugin does not include any module dependency tags in its plugin.xml
, it’s assumed to be a legacy plugin and is loaded only in IntelliJ IDEA.
If the plugin.xml
includes one or more such tags, the plugin is loaded if the product contains all of the modules on which the plugin depends.
The following modules are currently available in all products based on IntelliJ Platform:
com.intellij.modules.platform
com.intellij.modules.lang
com.intellij.modules.vcs
com.intellij.modules.xml
com.intellij.modules.xdebugger
The following modules are only available in specific products:
com.intellij.modules.java
- IntelliJ IDEAcom.intellij.modules.ultimate
- IntelliJ IDEA Ultimate Editioncom.intellij.modules.ruby
- RubyMinecom.intellij.modules.python
- PyCharmcom.intellij.modules.appcode
- AppCodecom.intellij.modules.clion
- CLioncom.intellij.modules.cidr.lang
- AppCode, CLioncom.intellij.modules.cidr.debugger
- AppCode, CLion, RubyMotioncom.intellij.modules.androidstudio
- Android Studio
PhpStorm does not have any modules specific to itself, but it includes the PHP plugin, which you can also use as a dependency: com.jetbrains.php
You can also specify optional module dependencies. If your plugin works with all products but provides some Java-specific functionality, you can use a dependency tag like this:
<depends optional="true" config-file="my-java-features.xml">
com.intellij.modules.java
</depends>
Before marking a plugin as compatible with all products, you should verify that it doesn’t use any APIs that are specific to IntelliJ IDEA. To do so, create an IntelliJ Platform SDK pointing to an installation of RubyMine, PyCharm, etc., compile your plugin against that SDK, and verify that everything compiles.
The IntelliJ plugin repository automatically detects the products with which a plugin is compatible, based on the rules above, and makes it available to users of those products.


Android Studio is the official Integrated Development Environment (IDE) for Android app development, based
on IntelliJ IDEA.
Before starting the installation process, please Download the latest version of Android Studio. You should have JDK (Java SE Development
Kit) 7+and you can download it from here.
So let's launch Android Studio.exe. Make sure before launching Android Studio, that environment variable
JAVA_HOME is set to the JDK installation directory via command SET JAVA_HOME.
Launch android-studio.exe to start the installation process. The installer responds by
presenting the Android Studio Setup dialog box as shown. Click Next to go the
Android Virtual Device (AVD) screen.
Choose the default settings and click Next.
After clicking Next,the Configuration Settings panel will show up, where the place to
store android files have to be specified. After providing the location, click Next.
On clicking Next, Choose Start Menu Folder panel shows up. Keep the default setting and
click Install.
The following Installing panel appears:
Clicking Show details shows the names of files being installed and other activities.
When installation finishes, the Installation Complete panel appears.
To complete the installation, leave the Start Android Studio box checked and click
Finish.
Running Android Studio
The first time Android Studio runs, it presents a Complete Installation dialog box that
offers the option of importing settings from a previous installation.
Choose NOT to import settings (the default selection) and click OK,
which would take to the following splash screen:
A message box which says Finding Available SDK Components pops up.
At this point, Android Studio presents the following Android Studio Setup Wizard dialog box:
Click Next, and the wizard invites to select an installation type. Keep the default
Standard setting.
The next window asks user to select a user Interface Theme. Choose any one theme and press
Next.
A Verify Settings window opens. Click Finish to begin the process of
downloading SDK components.
On the next window, Android Studio begins the process of downloading SDK components.
It can take several minutes for this part of the setup to finish. Finally, click Finish to
complete the wizard.
The Welcome to Android Studio dialog box appears.
Creating first App - Hello World
Now the installation process is done, and we can move to create our first app, Hello World
- the beginning project of every developer.
Click on Start a new Android Studio project. Android Studio will respond with the
Create New Project dialog box as shown.
Fill the project details and click Next.
Application Name : It should match with the purpose of the app.
Company Domain : It is the domain name, which will be the app identity when the app
will be uploaded on the playstore.
It should have three terms atleast (e.g. com.iitdh.oss) and should be written in decreasing order ( com
-> company name -> project {->}.. ) and not in opposite order.
Project Location : Specify the Project location. Make sure the location name does not
have white spaces in between.
Generally, white spaces occurs in Computer Username (e.g. Sonu Sourav), in which case the user name
should be changed to a single word (e.g. SonuSourav) otherwise it poses a problem in the future.
In the next window, select the target Android devices and click Next.
The next window asks to select the type of Activity from the provided templates. Select Empty
Activity and click Next.
Next enter the Activity and layout name. Type MainActivity and
activity_main in ActivityName and Layout name respectively. After this, press
Next.
A Installer windows opens up which creates the project. This might take some time, so sit back and
relax. After its done, click Finish.
The project is setup and we are ready to create our first app.
Video tutorial
You can follow this video for Windows installation
Video
Link
Installation on Mac Platform
To install Android Studio on your Mac, proceed as
follows:
Launch the Android Studio DMG file.
Drag and drop Android Studio into the Applications folder, then launch Android Studio.
Select whether you want to import previous Android Studio settings, then click OK.
The Android Studio Setup Wizard guides you through the rest of the setup, which includes downloading
Android SDK components that are required for development. Further steps are similar to Windows
Installation and can be found here.
Video Tutorial
You can follow this video for Mac installation:
Video Link
Installation on Linux Platform
To install Android Studio on Linux, proceed as follows:
Unpack the .zip file you downloaded to an appropriate location for your applications, such
as within /usr/local/ for your user profile, or /opt/ for shared users.
To launch Android Studio, open a terminal, navigate to the android-studio/bin/ directory,
and execute studio.sh.
Select whether you want to import previous Android Studio settings or not, then click OK.
The Android Studio Setup Wizard guides you through the rest of the setup, which includes downloading
Android SDK components that are required for development.
Further steps are similar to Windows Installation and can be found here.
Required libraries for 64-bit machines:
If you are running a 64-bit version of Ubuntu, you need to install some 32-bit libraries with the following
command:
Sonu is an undergraduate student at IIT Dharwad doing major in Electrical Engineering. He is passionate
about contributing to developer community and is associated with many developer programs like Developer
Student Club (DSC), Google Developer Group(GDG) and Open Student Society(OSS). You can always count him
when it comes to organising or volunteering tech related activities.


Grocer Helvetia
Welcome to our shop %nick%!
We provide you with affordable, best quality!
If there is anything you need, just let me know!
Take your Time!
[npc_%objectId%_Buy 18|Buy/Sell/Refund General.]
[npc_%objectId%_Buy 19|Buy/Sell/Refund Dyes.]
[npc_%objectId%_TerritoryStatus|Ask about the local lord and tax rate]
[npc_%objectId%_Quest|Quest]


Devoxx 2012
Daniel Neagu, Gertjan Assies
14-16 November 2012
Daniel Neagu, Gertjan Assies
14-16 November 2012
One thing I noticed was that a lot of presenters had slides using html5, running in the cloud.
So .. this presentation is also in HTML5 and runs in OpenShift (Red Hat's paas solution)
gertjan$ rhc create app -a myApp -t jboss-as7 -l<EMAIL_ADDRESS>gertjan$ git add remote quickstart git:github.com/openshift/quickstart-as7 gertjan$ git pull quickstart -s recursive gertjan$ cp ~/Devoxx2012.html src/main/webapp gertjan$ git add * gertjan$ git commit -m "added quickstart files + presentation" gertjan$ git push origin
To update it all I have to do is change the html in Presentation.html:
gertjan$ git add src/main/webapp/Devoxx2012.html gertjan$ git commit -m "added some slides" gertjan$ git push
We should all Live Online
Which means: We like to know more about you and show you more ad's
Besides bringing out new versions of Java and JavaFX,
Focus is more on embedded world "The Internet of Things"
Small connected devices that according to google will make up most of the internet traffic in 20 years time
JBoss is getting a new name, voted by the community
WildFly, BaseJump, jBeret, Petatos, Jocron
video { width:320px; heigth:240px; /* Chrome/Safari */ -webkit-filter: blur(10px); /* IE/Firefox */ filter: blur(10px); }
navigator.webkitGetUserMedia({video: true, audio: false}, function(localMediaStream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(localMediaStream); });
Grayscale, Brightness, Contrast are other filters that you can use
runs from your IDE or maven, allows for debugging your integration tests, test on multiple Application Servers
@RunWith(Arquillian.class) public class BasicClientTest { @Deployment(testable = false) public static WebArchive createDeployment() { return ShrinkWrap.create(WebArchive.class) .addClasses(MyBean.class) .setWebXML("WEB-INF/web.xml"); } @Test public void should_login_successfully() { ... } }
@Drone DefaultSelenium browser; @ArquillianResource URL deploymentUrl; @Test public void should_login_successfully() { browser.open(deploymentUrl + "login.jsp"); browser.type("id=loginForm:username", "demo"); browser.type("id=loginForm:password", "demo"); browser.click("id=loginForm:login") browser.waitForPageToLoad("15000"); Assert.assertTrue("User should be logged in!", browser.isElementPresent("xpath=//li[contains(text(), 'Welcome')]")); }
<extension qualifier="selenium"> <property name="browser">*googlechrome</property> </extension>
<tomee></tomee>
Java (JDK 8 or 9, so somewhere in 2015 or later)
int difference = (String s1, String s2) -> s1.length() - s2.length();
Scala, Ceylon, Kotlin (now available)
val difference = (s1: String, s2: String) :Int => s1.length - s2.length
function difference(String s1, String s2) { return s1.length - s2.length; }
fun difference(s1: String, s2: String) : Int { return s1.length - s2.length }
similar, the collection enhancements planned for jdk9 are pretty much available in the languages mentioned here.
{ "tweets" : { "numberOfShards" : 3, "numberOfReplicas" : 1}}
{ "user": "tweety", "postDate": "2009-11-15T13:12:00", "message": "Did Obama win the #election? anybody knows?"}
{ "query" : { "text" : { "message": "obama" }, "range" : { "postDate" : { "from" : "2009-11-15T13:00:00", "to" : "2009-11-15T14:00:00" }}}}
Kick Ass Type system!
shared void run(String? nullableString) { //String? means String|Nothing if (exists nullableString) { // nullableString is of Type String here print(nullableString); } }
Modular from the ground up
doc "my Kickass application" license 'http://www.gnu.org/licenses/lgpl.html' module com.acme.kickass '1.0.0.beta' { export import com.acme.utile '1.0.0'; import org.hibernate '3.0.0'; optional import org.junit '4.8.1'; }
Use the for loop to validate parameters or to filter collections
def userPermissions(session:Session, username:String, password:String) { for { u < username; p < password; } yield session.getPermissions(u,p); }
scala>for (val x <- 1 to 100) {if x % 2 == 0} yield x) toList res0: IndexedSeq[Int] = Vector(2,4,6,8,10 ....
scala>val list = Stream.from(1) take 100 toList list: List[Int] = List(1,2,3,4,5 ....
scala>list.filter( _ % 2 == 0 ) res59: List[Int] = List(2,4,6,8,10 ....
after a quick DI refresher, talk focused on best practices
Simon Ritter, Oracle's Java Evangelist
Famous for his weird demo's.
Java Stack on the Raspberry Pi, some native c code, plus jni classes to map the GPIO and USB pins to java classes
Demoed controlling a robot arm with a game pad controller and a lego motor with his mind
What if Developer, Designer, Tester, Product Owner, Business analyst all spoke the same language?
User Story
As a [Role] I want [Feature] So that I receive [Value]
Specification
Given [Context] When [Event Occurs] Then [Outcome]
@Given("the card is disabled") public void givenCardIsDisabled() { card = new Card().setValid(false); } @When("Inserting card") public void whenInsertingCard() { atm.insert(card); } @Then("the ATM should retain the card") public void thenATMShouldRetainCard() { Assert.assertNull(atm.dispense()); Assert.assertTrue(throwable instanceof CardRetainedException); }
"Adding stock for glimepiride" should { "increase the amount by 90" in { MedicateRest.addStock(user.id, glimepiride.id, 90); val stock = Stock.find(By(Stock.medicine, glimepiride.id), By(Stock.user, user.id)); stock.amount must be equalTo(178.5) } }
@Given("A login screen") @When("User enters his correct password") @Then("He should redirect to download page") ...
@Given("A login screen") @When("User enters a wrong password") @Then("He should get a 'wrong password' message") ...
@Given("The user has logged in correctly") @When("he clicks on a download whitepaper link") @Then("the download of the whitepaper starts") ...
From each level direct feedback to the team is essential for issues to be picked up and fixed quickly.
If it hurts do it more often.Martin Fowler
http://presentation-gassies.rhcloud.com/Devoxx2012.html
https://code.google.com/p/html5slides/


We are keen on Education Coexistence of good faith and quality.
Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum.


Arch Linux - Dell G5 5590
EFI boot using rEFInd
Introduction
This guide shows how to install Arch Linux in UEFI mode on a Dell G5 5590. The installation will have the following characteristics:
- the computer has Linux and Windows installed, and
- rEFInd is used as boot manager.
It will be assumed that
- Windows is already installed;
- the EFI partition used to install Arch Linux is the same EFI partition used by Windows, and
- a USB installer is used.
Partition scheme
The following partition scheme will be used:
| Mount point | Type | Comments |
|---|---|---|
/boot/EFI | EFI partition | |
/ | ext4 | root partition |
/home | ext4 | home partition |
swap | swap | in a non solid-state drive |
Installation
Follow either the ArchWiki's installation guide or my installation guide up to and including the step before Boot loader, considering the following:
- When partitioning the disks, do not create a new EFI partition.
- Using
fdisk
, find the EFI partition created for the Windows installation. This will be the EFI partition for Arch Linux. - When formatting the partitions, do not format the EFI partition.
- When mounting the file systems, mount the EFI partition in
/mnt/boot/efi
.
Then continue with this guide.
Make Arch Linux bootable using rEFInd
Switch to an unprivileged user <user>
$ su <user> $ cd ~
Manual installation of rEFInd
Get the latest version of rEFInd, decompress the file and change directory to
refind-<version>
. Then execute
$ sudo cp -r refind /boot/efi/EFI/ $ cd /boot/efi/EFI/refind $ sudo rm refind_ia32.efi refind_aa64.efi $ sudo rm -r drivers_ia32 drivers_aa64 tools_ia32 tools_aa64 $ mv refind.conf-sample refind.conf
Make rEFInd the default boot option
Restart the computer and access the BIOS setup. Under "Settings - General - Boot Sequence" do the following:
- Select "Add Boot Option".
- Set the value rEFInd in "Boot Option Name".
- Select the file to boot. From the drop down menu "File System", find the one that has the directory refind and select the file refind_x64.efi.
- In "Boot Sequence", select rEFInd and use the arrows to place this entry at the top of the list.
- Save the canges and exit the BIOS setup.


Toggle navigation
OpenPermit
Maps
Region: Miami-Dade County
Miami-Dade County
Leon - Tallahassee
All Florida
Get Involved
Software
About
Filters
Applied since:
the last 30 days
the last 60 days
the last 6 months
the last year
the last 2 years
all
What types of permits?
Master Permits
Electrical
Plumbing
Mechanical
Fire
All
Show inactive permits


Fairy Tail is a japanese manga and anime created by Hiro Mashima. The anime has 286 episodes and the manga has 545 chapters, as well as 62 volumes and spin off books. This anime/manga is for kids 12+.