Music generation with Wasserstein Autoencoders
An attempt on music generation.
Table of Contents
Introduction
This is a project I started working on for my Machine Learning class. The aim, as you can read from the title, is being able to generate music that is, at least, not unpleasant.
In order to do so I investigated the use of Wasserstein Autoencoders (WAE), a generative model firstly proposed by Tolstikhin et al. 1, which employs a regularizer derived from the theory of optimal transport.
The data
The data I used was published by a group of researchers from the Academia Sinica (Taiwan), as part of a paper2 where they jointly proposed a novel GAN (MuseGAN) and released the dataset where the model was trained on. They open-sourced almost everything so you can access to their code and data.
This dataset contains 174154 unique 4/4 multi-track music pieces of 4 bars, coming from different rock music compositions. Every element of this dataset is represented as a multi-track (binary-valued) pianoroll. For those of you who are not familiar with DAWs or audio processing, a single-track pianoroll is basically a matrix whose entries represent the behaviour of the notes played by the single instrument. The number of columns in this matrix is the number of time-steps used to quantize the composition while the number of rows represents the octave extension, i.e. the number of possible notes that the instrument can execute.
In this dataset a single bar is quantized into 48 time-steps (the minimum duration of a note is then 1/48th) and can span between 84 notes from C1 to B7. Every element of the dataset contains 4 bars of 5 instruments, resulting in a binary-valued (note on/off - velocity information is discarded) tensor of shape (4*48, 84, 5) = (192, 84, 5). The tempo was set to 100 bpm and the authors transposed every element to the same tonality. The instruments involved are Drums, Bass, Guitar, Piano and Strings.
The pianoroll is one of the most commonly used representations, although it has some limitations. An important one, compared to the MIDI representation, is that there is no note-off information. As a result, there is no way to distinguish between a long note and repeated short notes. In order to partially solve this issue the authors did as following
Note that during the conversion from MIDI files to pianorolls, an additional minimal-length (of one time step) pause is added between two consecutive (without a pause) notes of the same pitch to distinguish them from one single note.
A few samples from the dataset3 (lower your audio output):
Theory
Disclaimer: a lot of this theory is taken from the original paper1, I did not re-write it from scratch!
WAEs are a class of Autoencoders derived by theory of optimal transport. Given a collection of (unlabelled) data points $S_X$, the ultimate goal of the task is to tune a model capable of generating sets of synthetic points $S_G$ which look similar to $S_X$. There are various ways of defining the notion of similarity between two sets of data points: the most common approach assumes that both $S_X$ and $S_G$ are sampled independently from two probability distributions $P_X$ and $P_G$ respectively, and employ some of the known divergence measures for distributions.
Two major approaches currently dominate this field. Variational Auto-Encoders (VAEs) minimize the Kullback-Leibler (KL) divergence $D_{KL}(P_X, P_G)$, which is equivalent to maximizing the marginal log-likelihood of the model $P_G$. Generative Adversarial Networks (GANs) employ an elegant framework, commonly referred to as adversarial training, which is suitable for many different divergence measures, including (but not limited to) $f-$divergences, 1-Wasserstein distance, and Maximum Mean Discrepancy (MMD).
Similarly to VAEs, WAEs describe a particular way to train probabilistic latent variable models (LVMs) $P_G$. LVMs act by first sampling a code (feature) vector $Z$ from a prior distribution $P_Z$ defined over the latent space $\mathcal{Z}$ and then mapping it to a random input point $X \in \mathcal{X}$ using a conditional distribution $P_G(X|Z)$ also known as the decoder. This results is a density of the form
$$ p_G(x) = \int_{\mathcal{Z}} p_G(x|z)p(z)dz $$
assuming all involved densities are properly defined.
Instead of minimizing the KL divergence between the LVM $P_G$ and the unknown data distribution $P_X$ as done by VAEs, WAEs aim at minimizing any optimal transport distance between them. Kantorovich’s formulation of the optimal transport problem (OT) is given by
$$ W_c(P_X, P_G) = \inf_{\Gamma \in \mathcal{P}(X \sim P_X, Y \sim P_G)} \mathbb{E}_{(X,Y) \sim \Gamma} [c(X,Y)] $$
where $c:\mathcal{X} \times \mathcal{Y} \to \mathbb{R}^+$ is any measurable cost function and $\mathcal{P}(X \sim P_X, Y \sim P_G)$ is the set of all joint distributions of $(X, Y)$ with marginals $P_X$ and $P_G$ respectively. When $(\mathcal{X}, d)$ is a metric space (with distance $d$) and $c(x,y) = d^p(x,y)$ for $p \geq 1$ then $W_p$ (the $p$-th root of $W_c$) is known as the $p$-Wasserstein distance. When $p=1$ we then have the $1$-Wasserstein distance and this duality holds (Kantorovich-Rubinstein duality)
$$ W_1(P_X, P_G) = \sup_{f \in \mathcal{F}_L} \mathbb{E}_{X \sim P_X} [f(X)] - \mathbb{E}_{Y \sim P_G}[f(Y)] $$
where $\mathcal{F}_L$ is the set of all bounded 1-Lipschitz functions on $(\mathcal{X}, d)$. The authors state (and prove) that for deterministic decoders, i.e. $P_G(X|Z=z) = \delta_{G(z)}$ deterministically mapping latent codes $z \in \mathcal{Z}$ to the input space for a given map $G: \mathcal{Z} \to \mathcal{X}$, there is a simpler formulation for the OT problem: instead of finding a coupling $\Gamma$ between two random variables in $\mathcal{X}$ it is sufficient to find a conditional distribution $Q(Z|X)$ such that its $Z$ marginal $Q(Z) = \mathbb{E}_{X \sim P_X} [Q(Z|X)]$ is identical to the prior distribution $P_Z$. This resulted in a theorem where the OT problem was re-formulated (under these assumptions) as
$$ W_c(P_X, P_G) = \inf_{Q:Q_Z = P_Z} \mathbb{E}_{P_X}\big [ \mathbb{E}_{Q(Z|X)}[c(X, G(Z))] \big ] $$
In order to implement a numerical solution to this problem the authors relax the constraint on $Q_Z$ by adding a penalty term to the objective, which, in the end, takes the following form
$$ D_{WAE}(P_X, P_G) = \inf_{Q(Z|X) \in \mathcal{Q}} \mathbb{E}_{P_X}\big [ \mathbb{E}_{Q(Z|X)}[c(X, G(Z))] \big ] + \lambda \mathcal{D}_Z(Q_Z, P_Z) $$
where $\mathcal{Q}$ is any nonparametric set of probabilistic encoders, $\mathcal{D}_Z$ is an arbitrary divergence between $Q_Z$ and $P_Z$ , and $\lambda > 0$ is a hyperparameter. The authors propose two implementations of the WAE model, based on two different divergences.
WAE-GAN
The WAE-GAN model employs the Jensen-Shannon divergence, i.e.
$$ \mathcal{D}_Z(Q_Z, P_Z) = \mathcal{D}_{JS}(Q_Z, P_Z) = \frac{1}{2} D_{KL}(P_Z, M) + \frac{1}{2} D_{KL}(Q_Z, M) $$
where $M = \frac{1}{2}(P_Z + Q_Z)$ and uses the adversarial training to estimate it. The authors introduce an adversary (discriminator) in the latent space $\mathcal{Z}$ trying to separate “true” points sampled from $P_Z$ and “fake” ones sampled from $Q_Z$.
WAE-MMD
For a positive-definite reproducing kernel $k : \mathcal{X} \times \mathcal{X} \to \mathbb{R}$ the following expression is called the Maximum Mean Discrepancy (MMD):
$$ \text{MMD}_k(P_Z, Q_Z) = \Big | \Big | \int_\mathcal{Z} k(z, \cdot) dP_Z(z) - \int_\mathcal{Z} k(z, \cdot) dQ_Z(z) \Big | \Big |_{\mathcal{H}_k} $$
where $\mathcal{H}_k$ is the RKHS of real-valued functions mapping $\mathcal{Z}$ to $\mathcal{R}$. If $k$ is characteristic then MMD$_k$ defines a metric and can be used as a divergence measure. The authors propose to use an unbiased estimate of the MMD that is the sum of two $U$-statistics and a sample average. Given i.i.d. samples $\mathbf{P} = { z_1, \dots, z_n }$ from $P_Z$ and i.i.d. samples $\mathbf{Q} = {\tilde{z}_1, \dots, \tilde{z}_n}$ from $Q(Z|z_i)$ , the unbiased estimate4 is
$$ \widehat{MMD}^2_U \big [\mathcal{H}_k, \mathbf{P}, \mathbf{Q} \big ] = \frac{1}{n(n-1)} \sum_{i=1}^n \sum_{j \neq i} k(z_i, z_j) + \sum_{i=1}^n \sum_{j \neq i} k(\tilde{z}_i, \tilde{z}_j) - \frac{2}{n^2} \sum_{i=1}^n \sum_{j=1}^n k(z_i, \tilde{z}_j) $$
Experiments details
Architechtures
Encoder $Q_\phi$, decoder $G_{\theta}$ and discriminator $D_{\gamma}$ are parametrized by deep neural nets. Given the structure of the data, binary-valued tensors of shape (H,W,5) (where 5, the number of instruments, plays naturally the role of the number of channels), both encoder and decoder are CNNs, while the discriminator (which acts in the latent space $\mathcal{Z}$) is a “vanilla” NN. You can check out the various models I’ve coded here, they are almost all equals except for the strides of the convolutions.
The main architecture I used was inspired by DCGAN 5. In the following picture I’m showing the encoder that, starting from the (192, 84, 5) input tensor, applies 4 convolutions with $[6,6]$ filters, followed by Batch Normalizations and ReLUs. The last layer employs a reshape (not shown in the picture) followed by a fully-connected layer that maps the previous inputs into a vector of size $dim(\mathcal{Z}) = d_{\mathcal{Z}}$ (in this case I went with $d_{\mathcal{Z}} = 8$).
The decoder acts simmetrically wrt the encoder, using 2D transposed convolutions instead of convolutions. The discriminator network maps a vector from $\mathcal{Z}$ to $[0,1]$ through 6 dense layers of 512 neurons followed by ReLUs.
Prior
I’ve used a Gaussian prior $P_Z = \mathcal{N} \big ( 0, \sigma_z^2 \cdot I_{d_z} \big )$ where the variance $\sigma_z^2$ is an hyperparameter.
Latent space dimensionality
The authors studied the choice of the dimensionality of the latent space in a follow-up paper6. They investigated the relationship between the latent space dimension $d_{\mathcal{Z}}$ and the *intrinsic dimensionality* of the data distribution, $d_{\mathcal{I}}$. This last quantity is, informally, *the minimum number of parameters required to continuously parametrise the data manifold*. If this quantity is greater than $d_{\mathcal{Z}}$ then the encoder will map the data distribution $P_X$ to $Q_Z$ supported on a latent manifold of dimension at most $d_{\mathcal{I}}$ while the divergence regularizer $\lambda \mathcal{D}_Z (Q_Z, P_Z)$ will encourage the encoder to fill the latent space similarly to the prior $P_Z$ as much as possible. This can potentially lead to the absence of any learning capability.
Adversarial training
I’ve decided to use (as the authors suggest) the non-saturating GAN loss 7: this resulted in a discriminator $D_\gamma$ trained by the maximization of
$$ \frac{\lambda}{n} \sum_{i=1}^n \log D_\gamma(z_i) + \log D_\gamma(1-\tilde{z}_i) $$
and in an autoencoder ($Q_\phi, G_\theta$) trained by the minimization of
$$ \frac{1}{n}\sum_{i=1}^n c(z_i, G_\theta(\tilde{z}_i)) - \lambda D_\gamma \log (\tilde{z}_i) $$
As the authors point out this procedure falls into the min-max problem which makes GAN unstable. This training strategy can then possibly yield instabilities in the training phase but the authors claim that by executing an adversarial training in a “simpler” space (wrt the pixel space where GANs are usually trained on), the whole process could benefit.
Cost function
I’ve used $c(x, y) = || x - y ||_2^2$ for both implementations (WAE-GAN and WAE-MMD).
Hyperparameters
Since there is no objective measure of performace for this kind of task, running an hyperparameter optimization procedure is hard. I’ve adjusted the parameters manually and so the results I obtained might not be the best that these model can produce.
Results
As mentioned in the data section, the input samples are binary-valued tensors of shape (192, 84, 5). The decoder, although, maps a latent code into $[0, 1]^{192 \times 84 \times 5}$ through the action of the sigmoid function. These output tensors $\hat{x}$ must then be binarized, and I’ve used two strategies to do so:
-
Hard thresholding (HT): The resulting tensor entry $\hat{x}_{ijk}$ needs to be greater than a fixed threshold (0.5) in order to be mapped to 1. $$\hat{x}_{ijk}^{HT} = \begin{cases} 1 & \text{if } \hspace{10pt} x_{ijk} > 0.5 \\
0 & \text {o.w }\end{cases}$$ -
Bernoulli sampling (BS): The resulting tensor entry $\hat{x}_{ijk}$ needs to be greater than a sample from the uniform distribution over scalars between 0 and 1. $$\hat{x}_{ijk}^{BS} = \begin{cases} 1 & \text{if } \hspace{10pt} x_{ijk} > b \sim \mathcal{U}[0,1] \\
0 & \text {o.w }\end{cases}$$
I’m presenting samples binarized with the HT method.
For a “fair” comparison the following results have been obtained with the same architecture and hyperparameters. Both WAE-GAN and WAE-MMD models have been trained with a latent dimension of $d_{\mathcal{Z}} = 16$. The number of filters in the four convolutions (see the picture above) are [16, 32, 64, 128] for the encoder and [128, 64, 32, 16] for the decoder. Both sequences of convolution used a fixed filter size of 6x6. I’ve trained both models for 300 epochs with Adam. The autoencoder’s optimizer started with a learning rate of $10^{-3}$ while the discriminator optimizer (in WAE-GAN) started with a learning rate of $10^{-4}$.
The following are some of the “best” samples (wrt my personal taste) that I picked: please make sure to lower the level of your audio output3 before playing! I suggest listening with headphones.
WAE-GAN |
WAE-MMD |
|---|---|
The next samples, instead, are randomly picked. Some of them totally lack the basic musical structures.
WAE-GAN |
WAE-MMD |
|---|---|
The samples I was able to generete suffer the problem of over-fragmentation. The notes generated tend to be fragmented, sometimes yielding chaotic and unpleasant results. This problem has also been recognized in 2 and the authors of MuseGAN proposed a new version of the model where their generator was equipped with binary neurons8, making it able to map the input noise directly into binary-valued output tensors. This partially solved the issue.
The following samples come from a different set of WAE-GAN models I’ve trained (doubling the number of filters for each convolutional layer, using $d_{\mathcal{Z}} = 128$ and more epochs), I’ve cherry picked them hence they are not the “average” case, but the drums seem to be more predominant wrt the “simpler” models proposed above.
WAE-GANs |
|
|---|---|
Survey
TODO
References
-
MuseGAN: Multi-track Sequential Generative Adversarial Networks for Symbolic Music Generation and Accompaniment ↩
-
I’ve done the MIDI to MP3 conversions with the help of VLC and its integrated synthesizer FluidSynth. I’ve done no post-processing (eq, fx, mixing, mastering) so what you hear comes straight out-of-the box. The sounds produced are unpleasant: please think of them as part of an experiment and not music meant to be played. ↩
-
Kernel Mean Embedding of Distributions: A Review and Beyond page 52 ↩
-
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks ↩
-
Convolutional Generative Adversarial Networks with Binary Neurons for Polyphonic Music Generation ↩


"x" "1" "FUJITA,H, AOKI,N AND SASAKI,M, MUTAGENICITY TEST OF FOOD ADDITIVESWITH SALMONELLA TYPHIMURIUM TA97 AND TA102. IX, TOKYO-TORITSU EISEI KENKYUSHOKENKYU NENPO 45:191-199, 1994"


The goal of this project is to provide a traceability software for small industries, start-up or producer. The software can be put inside an AKUINO main station who will host the project ELSA.
The project ELSA is the software who provide the traceabality. It can send alarm to the users if some values are outside the expected values by mail, sms, ... .
To avoid that too much sensors are connected directly on ELSA by 1-WIRE, a new project has emerged called LoRanne. LoRanne is an open hardware and software allowing to connect many sensors on a little Arduino chip by 1-wire and I2C and it sends the data back to the main station by a LoRa signal.
To comply with the laws on LoRa signal, an arduino library allowing to compress the payload of the packet named JBCDIC were created.
Finally, as making malloc in IoT is dangerous, a FIFO buffer was created to contain the different packet that are not already acknowledged by the main station. This library is an upgrade on an existing project by adding a feature allowing the FIFO to work with strings.
The LoRanne project was first to create the hardware, in fact the hardware contains a battery, a LoRa chip, differents sensors, a file system (for the receiver version). So the first version was to create the packaging for the LoRanne hardware.
Then, a first version of the transmitter and receiver was made, without compression or FIFO. The transmitter sent the data without looking for an acknolegment and the receiver read the data and send it back to the ELSA system.
The finale step was to add the JBCDIC library for the payload compression, and the Arduino-FIFO library for messages waiting acknolegment. Obviously, the Arduino-FIFO contains the compress messages.
As said in the introduction, the Arduino-FIFO is a fork of an existing project. A feature allowing to push, pop and peek string was added to the project, because the LoRanne sends string messages and not characters one by one.
The FIFO works with an array of uint8_t, so first the size of the string is push to the array, and then we push the integer's value of each characters of the string.
When someone wants to recover a string, the library reads the first element of the FIFO. This element matches with the size of the string that is inside the next case of the array. So the library will read as much characters as the size peeked before.
So these methods where added :
- bool pushBuffer(const uint8_t* src, int src_size)
- int peekBuffer(uint8_t* dest, int dest_size)
- int popBuffer(uint8_t* dest, int dest_size)
And finaly, a possibility to redefine the FIFO's size in an other file was added, allowing users to use the size they want for the FIFO.
As the use of the LoRa frequencies must respect some rules like the day uses, the size of payload, ... The compression of data were important to establish.
The JBCDIC is based on the BCDIC, it's an other representation for characters which will not be encoded in 8 bits but between 4 and 12 bits.
To encoding, the algorithm will check the position of the character inside the encoding's tables.
- If the character is not inside the current table, the algorithm output 4 bit containing the value of the other table and change the current table.
- If the character is not inside the current line, the algorithm output 4 bit containing the value of the new line and change the current line.
- Finaly, the algorithm output the indice of the character in the table.
To decoding, the algorithm will read the buffer 4 bits by 4 bits, and apply the action that is contained if the current table.
The ELSA contribution was to analyse the software in a security point of vue. Some vulnerabilities were found by using the techniques seen in Computer system security and corrected after.
The 4 vulnerabilities found are the following:
- There was a possibility to steal the session of an active user if you stole the cookie and reused it.
- There was a possibility to create HTML request put it in an other website, and if an active user visit the other website, the request was executed.
- Some URL were not correctly protected and there was a possibility to export important information from the database (like hashed password).
- Some sensors need a mathematical function to get the correct value, users were invited to insert the formula inside a field and python code was authorized. Now, the system checks before executing the formula is there is no malicious code inside the formula.
Here is a picture of my AKUINO system that i use to work on the different AKUINO project.
- This is some sensors (humidity, temperature, CO2 concentration) connected in 1-wire with the AKUINO-system
- This is the AKUINO-System. It's a Raspberry pi, with an antenna to listen radio wave. It hosts too the ELSA software. It contains too a LoRanne receiver to communicate with all LoRanne stations and to send the data to the ELSA software.
- This is a little LoRanne transmitter and a radio sensor.
- In this version, the AKUINO system doesn't have an embedded touchscreen, so this is the screen and the keyboard.
The current template comes from the flask tutorial and was not made by me.


Enter an English word to translate: Enter its Spanish translation: Enter a unique id:
{{englishWords}} in Spanish is: {{spanishWords}}. Add {{spanishWords}} to list


Sign Up Form
Your Name
Your Email
Phone Number
Password
Confirm Password
You are:
Service vendor
Job seeker
Submit
© 2018 Sign Up Form. All rights reserved | Design by Team
Hugs for Bugs.


Are You Being Micro-Managed? Manage Your Relationship with Your Manager Instead. - by Osman (Ozzie) Ahmed Osman. Takeaway: Consider that your manager is unaware of their behavior, afraid of failure, or has some other valid-to-them reason for micromanaging. But they might also have control issues. Try to take control back by starting a conversation with feedback, using the SBI model. If it doesn’t go well, consider leaving the manager or team for another.
Building and Motivating Engineering Teams - by Camille Fournier. Takeaway:
Grow Your Team by Focusing on Strengths Not Weaknesses - by David Lynch. Takeaway: “Getting the maximum impact from everyone on your team, and growing their potential for impact over time, is perhaps the most important thing a manager can do, but it can also be one of the hardest. Here’s a simple way you can do that.” The simple way is to get your people to focus and build upon their strengths instead of their weaknesses, and to do it from a team-context perspective. Four skills areas to focus on: “leadership, expert execution, strategy and planning and cultural alignment.”
Habits vs Goals: A Look at the Benefits of a Systematic Approach to Life - by Farnham Street. Takeaway: “Habits are processes operating in the background that power our lives. Good habits help us reach our goals. Bad ones hinder us. Either way, habits powerfully influence our automatic behavior.”
How to Bullshit (podcast) - by Happy Melly, with guest Tomas Kejzlar.
How to Feel Progress - by Jocelyn K. Glei. Takeaway: “Making progress in meaningful work is the key to staying engaged…A palpable sense of progress typically emerges from studiously tracking our “small wins.”
How to Foster Talent through a Growth Mindset and Grit - by Jessica Collins. Takeaway: “[L]eaders can leverage growth mindset and grit to better develop talent and drive performance. This article outlines what it takes to build a culture of continuous improvement, among other evidence-based practices.”
How to Tell the Truth - by Ben Horowitz. Takeaway: Do not lie to your people when it comes to telling bad news, but attach meaning to it.
I Do a Yearly Review, Here Are Some of the Questions - by Camille Fournier. Takeaway: a list of 12 simple questions meant to provoke reflection.
The Management Flywheel - by Camille Fournier. Takeaway: “When you find yourself in a rut, remember that you don’t have to solve the root cause of everything wrong with the team as a first act. Start with the little problems.”
Motivating People to Be on Time - by Ken Rubin. Takeaway: Bribes and penalties don’t work. Intrinsic motivation gets people to show up on time.
Moving Motivators - by Jurgen Appelo. A fun exercise you can use with your team to understand which values and aspirations motivate them—status, freedom, power, etc.
The Simple Tool That Revives Employee Motivation - by FirstRound. Takeaway: Product leader Jack Chou shares his own “hierarchy of needs” for building and maintaining motivation in teams.
The 3 Motivational Forces of Developers - by Ben Northrop. Takeaway: Developers have three main different motivations, and each motivation can be used in different states of a project life-cycle.
3 Simple Secrets to Motivating Employees You Can Do Today - by Lighthouse. Takeaway: Give specific, frequent, strategic praise on something great they did; give feedback on their work (millennials want it more frequently); remind them of their impact and purpose. Autonomy: the urge to direct our own lives. Mastery: the desire to get better and better at something that matters. Purpose: yearning to do something larger than ourselves—e.g., hospital janitor as “ambassador” or “promote healing by creating sterile places.”
12 Ways Leaders Can Help Their Team Overcome Culture Issues - by Young Entrepreneur Council. Takeaway: Communicate directly and frequently; keep your team focused on strategic goals; set people free; let the team step away from work; openly address issues; reinforce your values; anchor the team to a bigger purpose; form a bubble/shield the team; appreciate people’s work; listen; be a role model, and reformulate your values.
Vacation Time Can Boost Employee Performance - by Amanda Eisenberg. Takeaway: Research shows that more vacation time off leads to better performance.
When Your Manager Isn’t Supporting You, Build a Voltron - by Lara Hogan. Takeaway: “no one person will ever be able to manage you the way you want or need,” but “there are a plethora of people out there whom you can lean on to find the variety of support you need.” Look for people who “will push you out of your comfort zone; have different levels of experience than you (both more experience, and less experience); have experience in a different industry; are good at the things that you’re terrible at.”
Why Aren’t My Engineers Taking Initiative? - by GitPrime/Jean Hsu. Takeaway: “One of the signals that managers might need more training is when their engineers aren’t taking initiative.”
Why Happiness at Work Is Good for the Bottom Line - by Andy Cope. Takeaway: Being an inspiring and positive person can be learned. Very happy employees “are rare but when you find them you discover they are positive energisers who create and support the vitality of others. They have an uplifting and boosting effect that leaves others feeling lively and motivated.”
Why Motivating Others Starts with Using the Right Language - by David Marquet. Takeaway: “the next time one of your subordinates tries to trick you into telling them what to do, take the time to ask them what they think you should do. Then be quiet and listen. With time, these incremental changes will have a profound impact not only on your organization’s effectiveness, but on the lives of its people.”
Why Today’s Workplace Creates Emotional Conflicts: The Dark Side of Success - by Douglas LaBier. Takeaway: “Periodically a new survey appears, documenting depression in the workplace and dissatisfaction with leadership. Other research confirms that demoralization rises when work isn’t very engaging; or when opportunities for continued growth and expanding competencies are too limited or blocked. It’s time we recognize the negative psychological impact that the management culture and the ‘requirements’ for success can have on people and the organizations they work for. They exist at great cost to both.”
Why Your Programmers Just Want to Code - by Marcus Blankenship. Takeaway: “How you handle ideas from new programmers sends an important signal. Good or bad, it sets the stage for what they expect. This determines if they share more ideas in the future… or keep their mouth shut.”
Coaching Should Be The New Free Lunch in Tech - by Lisa Nielsen.  About Keen IO’s decision to create an internal team of coaches to offer coaching all employees; 91% have opted in to take advantage of the service.
“Cost of Turnover” Calculator - by Lattice HQ. Takeaway: Plug in your company size and turnover rate, along with the costs of hiring and onboarding. The results may surprise you. And that says nothing of the emotional headache and cultural drain felt from losing great people.
8 Bad Mistakes That Make Good Employees Leave - by Dr. Travis Bradberry.  Takeaway: to motivate and retain your team, create individual development plans, provide performance metrics, provide opportunities outside of a job function, give constructive feedback, remove barriers, link to a professional network, outlay resources, and set the example.
4 Core Steps towards Decreasing Employee Turnover - by Sapling. Correct what’s not right; foster a culture of open communication; develop your employees, and recognize and reward effort and success.
The 4 ‘Perks’ Good Developers Really Want - by Mike Melnicki. Takeaway: The best developers “want to have an impact in all aspects of the company: product direction, marketing, human resources, design and even finance.” The other three: Allow your devs to build a personal brand; create opportunities for them to demonstrate creativity; and consider the unique needs of your team members, and support them with flexibility.
How to Grow Your Employees When You Can’t Promote Them - by unspecified Lighthouse blog writer. Takeaway: There are still opportunities for employees even if promotion is not currently an option. Lateral moves, and specific skills focus can help retain folks. Tapping into intrinsic motivations can help with engagement.
How We Pay People at Basecamp - by DHH. Takeaway: “There are no negotiated salaries or raises at Basecamp. Everyone in the same role at the same level is paid the same. Equal work, equal pay.” Basecamp offers employees salaries in the top 5% of the market (Chicago) and meaningful benefits, and has instituted a new profit growth sharing scheme.
Leadership Hack: The Pizza Model for Happy and Productive Teams - by Adi Oz. Takeaway: Oz created the Pizza Model after becoming a manager and watching half of the engineers leave due to company culture. The model includes four needs: social, (work-life) balance, profession and salary. Every person rates these factors on a different scale.
People Leave Managers, Not Companies. Don’t Let That Manager Be You. - by Rich Archebold. Takeaway: Avoid manager overconfidence by asking for advice and peer review, owning instead of blaming, give feedback with empathy, savor success, and constantly revisit what it takes to be a good manager.
Quantifying Personal Retention Impact: A Mathematical Thought Exercise - by Roy Rapoport. Takeaway: Offers a scale from -3 to +3 for determining how much you’d join a company based on whether a former colleague you liked or disliked is working there.
Retention and the Cross-Generational Pipeline - by Kate Heddleston. Takeaway: “You can retain any employee by valuing them equal to their work, training managers at your company, and giving employees the benefits and work flexibility to manage life outside the office. I wish we valued retaining underrepresented groups as much as we valued hiring them.”
Tech Leavers - by Kapor Center. Takeaway: A survey of 2,000 U.S. adults who left a job during the previous three years. “Workplace culture drives turnover, significantly affecting the retention of underrepresented groups, and costing the industry more than $16 billion each year.”
10 Surprising Employee Retention Statistics You Need to Know - by George Dickson, Bonusly. Takeaway: surprising stats and context about retention, from “35% of employees said they’d look for a new job if they do not receive a pay raise in the next year” to “93% of millennials say they left their employer the last time they changed roles.”
To Keep Employees Loyal, Try Asking What They Want - by Anne Fisher. Takeaway: When the article was published in 2011, Aflac CEO Dan Amos worked with a team that was 70% women. His company’s approach to reducing turnover, he just asked employees what they wanted. It produced results.
Tomorrow Half Your Company Is Quitting (So Win Them Back) - by Ryan Pendell. Takeaway: “Organizations that rely on world-class talent must find more creative ways of re-recruiting their top performers, even when traditional incentives (i.e., pay and promotions) are not immediately available.”
Turning Around Employee Turnover - by Jennifer Robison for Gallup. Takeaway: “According to Gallup’s research, 9 of the 12 workplace elements consistently predict turnover across business units, regardless of an organization’s size. These elements are: having clear expectations, having the materials and equipment to do the job right, having the opportunity to do what you do best every day, the belief that someone at work cares, the belief that someone encourages your development, a sense that your opinions count, the mission or purpose of the company making you feel that your job is important, a belief that your coworkers are committed to quality, and having opportunities to learn and grow at work. If these needs are met, as shown by higher scores on these employee engagement items, turnover is likely to be low.”
20 Simple Reasons Your Top Performers Quit - by George Dickson at Bonusly. Takeaway: “Start by taking a step back and objectively analyzing the causes of voluntary turnover. Understanding why top performers quit is the first step in preventing yours from leaving for greener pastures. Luckily, you don’t have to make these mistakes yourself to learn from them. Plenty of others already have.”
What Not to Do When You’re Trying to Motivate Your Team - by Ron Carucci. Takeaway: “Motivation is not something you do to people. People ultimately choose to be motivated — when to give their best, go the extra mile, and offer radical ideas. The only thing leaders can do is shape the conditions under which others do, or don’t, choose to be motivated. But the final choice is theirs.”
Why I Rejected My Manager - by Mianya Ong. Takeaway: Ong rejects in managers the “their way or the highway” attitude, being busy being too busy, lack of awareness of what reports are working on, infallibiity, inability to explain why, hiring people exactly like them, and inability to compromise.
Why People Can’t Wait to Quit Your Company - by Nicole Sanchez. Takeaway: Bad managers, HR isn’t trusted/can’t do its job well; misalignment; your company treats people like tools; the CEO is underperforming instead of working; your approach to hiring senior leadership looks more like cronyism than rigorous selection; the smartest person in your company is buried deep in the org chart and underutilized. But you can fix it.


Based on the car you selected and your commute, we have provided a suggestion below on whether to buy a car or to uber. It also gives you a rough estimate on the amount of money you would save as compared to going with the other option. You can change the amount of miles you expect to drive in a week to see if this changes the results.


The abstract operation CreateArrayFromListOrRestricted accepts the arguments _list_ and _restricted_ , and performs the following steps:
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The abstract operation CharacterDirectionOfLocale accepts the argument _loc_ , and performs the following steps:
The abstract operation WeekInfoOfLocale accepts the argument _loc_ , and performs the following steps:
| Field Name | Value | Meaning |
|---|---|---|
| [[FirstDay]] | Integer value between 1 and 7: 1 specifies Monday; 2 specifies Tuesday; 3 specifies Wednesday; 4 specifies Thursday; 5 specifies Friday; 6 specifies Saturday; and 7 specifies Sunday. | The weekday value indicating which day of the week is considered the 'first' day, for calendar purposes. |
| [[Weekend]] | A List of 1 or more integer values between 1 and 7: 1 specifies Monday; 2 specifies Tuesday; 3 specifies Wednesday; 4 specifies Thursday; 5 specifies Friday; 6 specifies Saturday; and 7 specifies Sunday. | ```The list of weekday values indicating which days of the week are considered as part of the 'weekend', for calendar purposes. Notice that the number of days in the weekend are different in each locale and may not be contiguous. |
| [[MinimalDays]] | Integer value between 1 and 7. | The minimal days required in the first week of a month or year, for calendar purposes. |
The Locale constructor is the %Locale% intrinsic object and a standard built-in property of the Intl object.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar.
The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar. When the *Intl.Locale* function is called with an argument _tag_ and an optional argument _options_, the following steps are taken:
The Intl.Locale constructor has the following properties:
The value of *Intl.Locale.prototype* is *%Locale.prototype%*.
This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *false* }.
The value of the [[RelevantExtensionKeys]] internal slot is « *"ca"*, *"co"*, *"hc"*, *"kf"*, *"kn"*, *"nu"* ». If %Collator%.[[RelevantExtensionKeys]] does not contain *"kf"*, then remove *"kf"* from %Locale%.[[RelevantExtensionKeys]]. If %Collator%.[[RelevantExtensionKeys]] does not contain *"kn"*, then remove *"kn"* from %Locale%.[[RelevantExtensionKeys]].
The Intl.Locale prototype object is itself an ordinary object. %Locale.prototype% is not an Intl.Locale instance and does not have an [[InitializedLocale]] internal slot or any of the other internal slots of Intl.Locale instance objects.
The initial value of *Intl.Locale.prototype.constructor* is *%Locale%*.
The initial value of the @@toStringTag property is the string value *"Intl.Locale"*.
This property has the attributes { [[Writable]]: *false*, [[Enumerable]]: *false*, [[Configurable]]: *true* }.
`Intl.Locale.prototype.baseName` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar. Its get accessor function performs the following steps:
`Intl.Locale.prototype.calendar` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
This property only exists if %Locale%.[[RelevantExtensionKeys]] contains *"kf"*.
`Intl.Locale.prototype.caseFirst` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.collation` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.hourCycle` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
This property only exists if %Locale%.[[RelevantExtensionKeys]] contains *"kn"*.
`Intl.Locale.prototype.numeric` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.numberingSystem` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.language` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar. Its get accessor function performs the following steps:
`Intl.Locale.prototype.script` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar. Its get accessor function performs the following steps:
`Intl.Locale.prototype.region` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar. Its get accessor function performs the following steps:
`Intl.Locale.prototype.calendars` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.collations` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.hourCycles` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.numberingSystems` is an accessor property whose set accessor function is *undefined*. Its get accessor function performs the following steps:
`Intl.Locale.prototype.defaults` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to UTS 35's Unicode Language and Locale Identifiers grammar. Its get accessor function performs the following steps:
`Intl.Locale.prototype.textInfo` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to Locale data specified in UTS 35's Layouts Elements. Its get accessor function performs the following steps:
`Intl.Locale.prototype.weekInfo` is an accessor property whose set accessor function is *undefined*. The following algorithm refers to Locale data specified in UTS 35's Week Elements. Its get accessor function performs the following steps:


Below is a list of projects I have created all the projects make use of HTML and CSS language.
This site highlights my journey into how i have managed to reduce my carbon footprint through my newly aquired hobbie which is home gardining.
This site was created for a private investor, for a private remote island in Maldives. Through this site, the resort has been able to increase it's bookings.
This is the website of a restaurant that was founded a decade ago by my family.Through this site, customers are able to view the menu online and also make online deliveries
This is a website of my pet dog. Through this site I have been able to get play-date bookings for my pet.


I am the Top Tag on Top!
We are learning CSS today!
I'm an another P Tag!
One more P Tag!


"x" "1" "SAYATO,Y, NAKAMURO,K AND UENO,H, MUTAGENICITY OF PRODUCTS FORMED BYOZONATION OF NAPHTHORESORCINOL IN AQUEOUS SOLUTIONS, MUTAT. RES. 189(3):217-222,1987"


Basic 'wt-vaadin-multi-combo' Demo (using items array)
Basic 'wt-vaadin-multi-combo' Demo (using url)


Pricing Plans
Start building for free, then add a site plan to go live. Account plans unlock additional features.
Currency
Argentina (ARS)
Australia (AUD)
United States (USD)
Canada (CAD)
France (EUR)
Japan (JPY)
Nigeria (NGN)
Switzerland (CHF)
United Kingdom (GBP)


A default toggle button
{{basicState}}
Toggle buttons with label
Toggle buttons that interact with each other
Toggle buttons with different theme colors (using mixins)
Custom theme
primary-color: $mat-light-green-500, off-btn-color: $mat-lime-500
Toggle label on right


about me
I’m a Business Consultant working for Applied Predictive Technologies. Before this, I graduated with a Bachelor of Science and Engineering degree from Princeton University.
You can find my Linkedin page and ways to contact at the bottom of the page.
In my free time, I love reading, hiking, watching/playing basketball, and occasionally maintaining this blog.
about this blog
This blog is built off the Kiko Plus Theme from @aweekj, powered by Jekyll, hosted on Github Pages.
my resume
Education
- 2012-2016
- BSc, Computer Science; Princeton University, Princeton, NJ
Minor: Finance
Honors: Fung Scholar (Fall 2012 - Spring 2016); Sigma Xi Society Nomimation
- 2007-2011
- GCE A-Level, Hwa Chong Institution, Singapore
Awarded merit-based full Singapore Government Scholarship
SAT: 800V 790W 800M
Experience
- Aug 2016 - Present
- Business Consultant, Applied Predictive Technologies, San Francisco, CA
- Serving as an analyst on client teams for a national telecommunications company, a national furniture company and a national apparel brand
- Managing and owning data processes on various client projects with SQL Server and Data Imports
- Working with firm knowledge management team to document the best practices of various types of analyses in mass media studies
- Working with sales teams to track new verticals and potential target companies, and share intellegience in bi-weekly meetings with senior executives in the firm
- May 2015 - Aug 2015
- Business Consultant Intern, Applied Predictive Technologies, Washington D.C.
- Served as an analyst on client teams for a regional bank and an apparel retailer
- Evaluated and modeled success of new initiatives using financial and store level data
- Led presentations on client site and maintained close working relationship with client senior management teams
- Worked with firm knowledge management team to improve gravity modeling and its documentation
- Jun 2014 – Aug 2014
- Software Engineer Summer Intern, Microsoft, Tampere, Finland
- Produced weekly analysis reports of MTBF test results using crash dumps and stack traces
- Received a Peer-to-Peer Recognition Award for system debugging and emergency test camps
- Evaluated MIPI Battery Interface Standards and finalized MIPI specifications for firm-wide adoption
- Awarded //oneweek Hackathon 2014 Best Demonstration Prize
- Mar 2014 – Aug 2014
- Researcher/Analyst, Goodst.org, an online charity startup, New York, NY
- Researched, screened and contacted charities as potential partners and donation recipients weekly
- Jan 2014 – Jan 2014
- Consultant Intern, Jenkins Consulting Group, Tulsa, OK
- Consolidated demographic data and projected growth trends for YWCA East Tulsa and Philbrook Museum
- Presented findings to the YWCA executives to assess needs, identify challenges and set next-step action plans
- Jul 2013 – Aug 2013
- Sales Intern, Xinhai Electrics Co.,Ltd, Ningbo, Zhejiang, China
- Negotiated and closed one lighter deal worth $120,000 monthly
- Followed up on existing clients to clear compliance and safety inspections to ensure timely delivery
- Conducted comparables analysis of competitor firms and strategized North American sales plans


three.js
- indexed instancing (single box)
interleaved buffers, dynamic updates
Sorry your graphics card + browser does not support hardware instancing


CV
- Semi-finalist for Institute for Public Art’s 2nd International Award for Public Art. 2015
- Peace Innovations Fund Grant. United States Institute of Peace. 2013-2014
- New York Foundation for the Arts’ Artspire fiscal sponsorship for Mera Karachi Mobile Cinema.
- National University of Singapore grant for collaborative research on (MKMC) with Nausheen H. Anwar
Grants and Awards
- Ancestors: Architecture of Memory. The Gandi Engine Commission.
Curator, Natasha Ginwala. Commissioned by Lahore Biennale Foundation. Lahore. 20, Sept. 2015. - Digital Marrakech Festival 4th edition. A Pakhtun Memory.
Arab Media Lab Foundation. Marrakech. Nov. 28, 2014 - CityPossible Film Festival III. A Pakhtun Memory. Singapore. Nov. 6, 2014
- Karachi Conference Film Festival. A Pakhtun Memory. Karachi. Nov. 23, 2014
- 10 curated screenings by the Tentative Collective’s Mera Karachi Mobile Cinema
in various neighborhoods of Karachi. 2012-2014 - Pursukoon Karachi Art Festival. The Kolachi Brothers (Mera Karachi Mobile Cinema). Karachi. 2013.
- Galerie Polaris. Mera Karachi Mobile Cinema, a project of the Tentative Collective. Paris. 2013
- VBB (Voices Breaking Boundaries). Exploring Rituals Production. Houston, TX. 2013
- Syracuse International Film Festival. A Pakhtun Memory. Syracuse, NY. 2012
- Artists of the Mohawk Hudson Regional. University Art Museum. A Pakhtun Memory
.Winner of the Juror’s Award by Nato Thompson. Albany, NY. 2012 - VBB. Women Under Siege, Parts 1, 2: A Living Room Art Production. Houston, TX. 2012
Selected Exhibitions
- Tentative Collective: Projections project. Karachi Literature Festival:
in conversation with Nausheen Anwar. Feb 8, 2015 - A Pakhtun Memory. CityPossible Film Festival III. Asia Research Institute NUS. Singapore. Nov 6 2014
- Mera Karachi Mobile Cinema: Projection,Perception. The First International Karachi Conference. 2013
- Creative Leadership: Mera Karachi Mobile Cinema. National Museum, Karachi. 2014
- Art Politics. Aga Khan University. Humanities and Social Sciences Lectures, Karachi. 2013
Talks
- Chaudhri, Yaminay N., and Nausheen H. Anwar. “Mera Karachi Mobile Cinema: Projection,
Perception & Public Space.” Web log post. Asian Urbanisms Blog. Asia Research Institute,
National University of Singapore, 4 Dec. 2013. Web.. - Chaudhri, Yaminay N. “Karachi: Cell Phone Videos Tell Stories of Migrant Life.”
Creative Time Reports. 9 Jan. 2013. Web. - Chaudhri, Yaminay N. “Karachi: Cell Phone Videos Tell Stories of Migrant Life.”
Web log post. 3quarksdaily. 2 Feb. 2013. Web. - Chaudhri, Yaminay N. “Karachi: Cell Phone Videos Tell Stories of Migrant Life.”
Web log post. ArtAsiaPacific Blog. 22 Jan. 2013. Web. - Chaudhri, Yaminay N. “Mera Karachi Mobile Cinema.” Ed. Gemma Sharpe and Framji Minwala.
Indus: A Journal of Art, Culture and Design 1 (forthcoming) Print. - Chaudhri, Yaminay N. “Mera Karachi Mobile Cinema: Methodology of Representation.”
Karachi Conference Journal 1. Comp. Aliya I. Naqvi. (forthcoming). Print.
Writing
- Chaudhri, Yaminay N. "Films by Rickshaw: The Tentative Collective."
Interview by Hira Nabi. Rising Voices. 22 Apr. 2013. Web. - Chaudhri, Yaminay. "The Tentative Collective: Karachi Mobile Cinema."
Interview by Hira Nabi. Mashallah News→ The Tentative Collective. - Farrukh, Niilofur. "Critical Space: Art That Does Not Alienate." Dawn.com.
DawnNews, 4 Nov. 2012. Web. - Malkani, Zahra. "Art Now Pakistan | Parde Mein Rehne Do, Parda Na Uthao:
Opacity And The Refusal To Represent In Contemporary Artworks In Karachi."
Art Now Contemporary Art of Pakistan. Dec. 2013. Web. - Siddiqui, Nadir. "The Art of Protest." Dawn.com. DawnNews, 23 Dec. 2011. Web.
- Siddiqui, Nadir. "Going "Beyond Walls"" Dawn Multimedia. DawnNews, 20 Dec. 2011. Web.
Thompson, Nato. "Occupy Everything."2012 Artists of the Mohawk Hudson Region.
Albany: U at Albany, 2012. 8-19. Print. (Exhibition Catalogue).


My very first trip was one I hope I never forget. A few minutes after I nervously took ~15 mg of 4-AcO-DMT in a shot of water, I started feeling a bit high. There was definitely a substance in me, but that was the extent of the feeling.
C, my boyfriend, best friend, and trip partner (he had had experience with psychedelics previously, so I felt much more secure going into the experience), walked to the giant park in the middle of our campus, walked to the murky part of the reservoir within, and turned back to head toward the huge open field. Here I started feeling the effects; I felt like I was periodically being 'punched' by the drug. At this point I felt like I'd be happy either moving to the next point on our journey or just standing where we were, staring at a tree.
C and I sit/lay in the field; he began feeling the effects before me. We listened to Shine On You Crazy Diamond and I felt there was a small symphony in my mouth. I relaxed and listened, fixated on a tree in the distance. Maybe since this was my first time, I felt like telling him (and everybody else, I just wanted to share) everything I was feeling.
A bit later (I have no idea how long since my time perception was completely distorted), we walked to the edge of the reservoir. I decided I wanted to listen to Transatlantic, and All of the Above began playing. Across the reservoir (probably a few hundred yards away), the group of trees transformed into monkey faces (and at the very beginning, skull faces). They moved in interesting dance patterns and sang along to the song, putting on a show for me. I knew they could potentially hurt me if they crossed the water, but I knew that it wouldn't happen since they were my friends. Occasionally I'd look at the sky above the trees and see patterns of hexagons made up of small triangles.
At this point I began an internal dialogue between my conscience (which was louder and sounded more like me than ever) and what I can only describe as the voice of a big black woman who would guide me through my problems. We went over every issue I was thinking about at the time. I felt more worry free and confident than I ever have. She told me to always feel that way, and that now we had talked I could do it myself without her help.
All of the Above seemed to last for hours, and we started moving to another destination right as it was finishing. A flock of ducks loudly flew over the water and some landed in it. I thought it was a beautiful and artistic and poetic way to complete the song.
C and I walked again. While walking, we passed a group of people having what I presumed to be a picnic. From a distance I thought they were little kids, but approaching them, I realized they were mostly adults, with a few little kids playing by the water. I wondered why our society treats adults different from kids. What I thought was a dog or a duck turned out to be a few white bottles or something certainly inanimate, and I came to the conclusion that everything, living or otherwise, deserves to be treated with the same amount of decency and respect.
We walked through a bit of somewhat dense woods until we reached a clearing where C could smoke (he wanted a boost, as at that point his effects were weaning). I sat on the ground stroking a baby plant and watching some of the bugs walking around me. I really liked looking at him then; when I looked at him I felt like I was staring at a photograph. After he had finished, we started leaving the park. I thought that it was stupid that people reduce the whole process of sunset to one minute (upon returning to sobriety I realized that that specific sunset time makes sense for record-keeping sake).  I thought everything is a part of nature, the trees and grass and cars and buildings (once again, sobriety reminded me that all of those simply arenít included in the definition of nature, but at the time it was a mind-blowing thought).
When we got back to our place, I had a brief laughing fit. We listened to music, some of which made me cry due to its sheer beauty. I (seemingly for the first time, although it should have been obvious) realized that there are many different kinds of love, and that the kinds of love I have for C and my favorite band and my other friends are all completely different.
The peak of my first trip was one of the top experiences of my life, and many trips later, I still consider it as such.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Name can contain any letters or numbers
Please provide a price for the game
Description should be at least 50 characters


Backup Photos
Backup Videos
Backed up
:
0
/
0
Will be backed up
:
0
/
0
Check All
More
Backup
Everything was successfully downloaded.
Everything has failed.


Links iTest2 iTest2 with Id
Checkboxes No Value With value true Id but no name
Buttons Image button: Button with Javascript:
Radio buttons Apple Linux
Select (combobox) By Name: iTest2 display Watir By Id: Agile way Water way
File attachment:
Label Tag 1: First Label 2: Second Label Span Tag 1: First Span 2: Second Span
Table
Same links: Click Me Click Me
Show info Hide info


Healthtracker
Add
Breakfast
Lunch
Dinner
Meals detail
Day
Meal
Food
Calories
Number of calories taken since
today: xxxx
this week: xxxx
this month: xxxx
Graph n°1: Trends
Graph n°2: Composition


404: Page not found
The page you requested does not exist!
Make sure the URL is typed correctly
Perhaps the page you were looking for has since been removed.
Go back home


Strigi-0.7.8
Installation of Strigi
Install strigi by running the
following commands:
sed -i "s/BufferedStream :/STREAMS_EXPORT &/" libstreams/include/strigi/bufferedstream.h &&
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_CLUCENE=OFF \
-DENABLE_CLUCENE_NG=OFF \
.. &&
make
To test the results, issue make
test.
Now, as the root
user:
make install
Command Explanations
sed -i "...": This
command fixes the build with recent GCC versions.
-DCMAKE_INSTALL_LIBDIR=lib
:
This switch is used so the package doesn't write over the lib64
symlink on 64 bit systems.
-DCMAKE_BUILD_TYPE=Release
:
This switch is used to apply higher level of the compiler
optimizations.
-DENABLE_DBUS=OFF
: Use this
cmake variable if you
don't have D-Bus installed.
-DENABLE_QT4=OFF
: Use this cmake variable if you don't have
Qt4 installed or if you compiled
Qt4 without D-Bus support.
-DENABLE_CLUCENE*=OFF
: These statements
disable the package from trying to use CLucene-<IP_ADDRESS> (current
stable version).
Contents
Installed Programs:
deepfind, deepgrep, rdfindexer,
strigiclient, strigicmd, strigidaemon, and xmlindexer
Installed Libraries:
libsearchclient.so, libstreamanalyzer.so,
libstreams.so, libstrigihtmlgui.so, libstrigiqtdbusclient.so,
and several in /usr/lib/strigi
Installed Directories:
/usr/include/strigi, /usr/lib/strigi, and
/usr/share/strigi
Short Descriptions
|
deepfind
|
is a utility for searching for filenames in compressed
archives like tar, cpio, and zip
|
|
deepgrep
|
is a utility for searching compressed archives like tar,
cpio, and zip
|
|
rdfindexer
|
manages and performs indexing of the RDF data for
entities present on your site
|
|
strigiclient
|
is a Qt4 client (GUI) for the Strigi Desktop Search
software
|
|
strigicmd
|
is a program for creating and querying indices
|
|
strigidaemon
|
is a daemon program for maintaining indices
|
|
xmlindexer
|
indexes XML documents
|
Last updated on 2014-03-05 14:59:08 -0800


Terraform快速入门
todo
一、安装
Terraform是以二进制可执行文件发布的，只需下载terraform，然后将terraform可执行文件添加到系统环境变量PATH中即可。下面以Linux系统为例：
mkdir -p ~/terraform && cd $_
wget https://releases.hashicorp.com/terraform/0.14.3/terraform_0.14.3_linux_amd64.zip
unzip terraform_0.14.3_linux_amd64.zip
sudo mv terraform /usr/local/bin/
二、认证鉴权
使用Terraform管理云资源前，需要获取云平台的AK/SK，并在Terraform中进行配置，从而实现认证鉴权。认证信息的配置方式是由各云厂商实现的provider决定的，详细信息可参考各云的provider文档。但常用的方式有两种：静态文件和环境变量。下面我们分别讨论。
2.1、静态文件
静态文件，就是直接在配置文件中添加AK、SK信息，如下示例：
provider "huaweicloud" {
region = "cn-north-1"
access_key = "my-access-key"
secret_key = "my-secret-key"
}
说明：
- region：区域，即要管理哪个区域的资源。
- access_key：密钥ID，即AK。
- secret_key：访问密钥，即SK。
2.2、环境变量
环境变量，就是将认证信息配置成系统环境变量，下面以华为云为例：
$ export HW_REGION_NAME="cn-north-1"
$ export HW_ACCESS_KEY="my-access-key"
$ export HW_SECRET_KEY="my-secret-key"
说明：
- HW_REGION_NAME：区域，即要管理哪个区域的资源。
- HW_ACCESS_KEY：密钥ID，即AK。
- HW_SECRET_KEY：访问密钥，即SK。
三、使用Terraform创建云上网络
下面，我们以华为云为例，使用Terraform创建一个VPC网络
3.1、搭建本地registry
wget https://releases.hashicorp.com/terraform-provider-huaweicloud/1.20.0/terraform-provider-huaweicloud_1.20.0_linux_amd64.zip
mkdir -p ~/.terraform.d/plugins/local-registry/huaweicloud/huaweicloud/1.20.0/linux_amd64
unzip terraform-provider-huaweicloud_1.20.0_linux_amd64.zip -d ~/.terraform.d/plugins/local-registry/huaweicloud/huaweicloud/1.20.0/linux_amd64
3.2、配置registry
cat > ~/terraform/versions.tf << EOF
terraform {
required_providers {
huaweicloud = {
source = "local-registry/huaweicloud/huaweicloud"
version = "1.20.0"
}
}
}
EOF
3.3、定义资源
创建“main.tf”文件，内容如下：
cat > ~/terraform/main.tf << EOF
# Configure the HuaweiCloud Provider
provider "huaweicloud" {
region = "cn-south-1"
domain_name = "Kuberxy"
access_key = "access_key"
secret_key = "access_key"
}
# Create a VPC
resource "huaweicloud_vpc" "example" {
name = "gz_vpc"
cidr = "<IP_ADDRESS>/16"
}
EOF
该文件：
- 上半部分为HuaweiCloud Provider的配置，包含认证鉴权的内容；如果使用环境变量方式认证鉴权，可以省略该部分内容。
- 下半部分描述一个名为example的VPC资源，该VPC在云平台上的名称为gz_vpc，cidr为<IP_ADDRESS>/16。
3.4、初始化
terraform init
如果使用的是网络registry，首次执行时会访问公网下载Provider并安装。该命令的输出结果如下：
Initializing the backend...
Initializing provider plugins...
- Finding local-registry/huaweicloud/huaweicloud versions matching "1.20.0"...
- Installing local-registry/huaweicloud/huaweicloud v1.20.0...
- Installed local-registry/huaweicloud/huaweicloud v1.20.0 (unauthenticated)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
3.5、查看要创建的资源
terraform plan
该命令会显示要创建哪些资源，输出如下：
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# huaweicloud_vpc.example will be created
+ resource "huaweicloud_vpc" "example" {
+ cidr = "<IP_ADDRESS>/16"
+ enterprise_project_id = (known after apply)
+ id = (known after apply)
+ name = "gz_vpc"
+ region = (known after apply)
+ routes = (known after apply)
+ shared = (known after apply)
+ status = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.
3.6、创建资源
terraform apply
该命令后需要我们进行确认后，才会真正的创建资源。根据提示输入“yes”即可，输出如下：
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# huaweicloud_vpc.example will be created
+ resource "huaweicloud_vpc" "example" {
+ cidr = "<IP_ADDRESS>/16"
+ enterprise_project_id = (known after apply)
+ id = (known after apply)
+ name = "gz_vpc"
+ region = (known after apply)
+ routes = (known after apply)
+ shared = (known after apply)
+ status = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
huaweicloud_vpc.example: Creating...
huaweicloud_vpc.example: Creation complete after 7s [id=420c4ed2-20e5-4dca-b4bf-3758535ccbfc]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
3.7、查看资源信息
terraform show
该命令会显示资源的详细信息，输出如下：
# huaweicloud_vpc.example:
resource "huaweicloud_vpc" "example" {
cidr = "<IP_ADDRESS>/16"
enterprise_project_id = "0"
id = "420c4ed2-20e5-4dca-b4bf-3758535ccbfc"
name = "gz_vpc"
region = "cn-east-2"
routes = []
shared = false
status = "OK"
}
3.8、删除资源
terraform destroy
该命令也需要进行确认，根据提示输入“yes”即可，输出如下：
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# huaweicloud_vpc.example will be destroyed
- resource "huaweicloud_vpc" "example" {
- cidr = "<IP_ADDRESS>/16" -> null
- enterprise_project_id = "0" -> null
- id = "420c4ed2-20e5-4dca-b4bf-3758535ccbfc" -> null
- name = "gz_vpc" -> null
- region = "cn-east-2" -> null
- routes = [] -> null
- shared = false -> null
- status = "OK" -> null
}
Plan: 0 to add, 0 to change, 1 to destroy.

Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
huaweicloud_vpc.example: Destroying... [id=420c4ed2-20e5-4dca-b4bf-3758535ccbfc]
huaweicloud_vpc.example: Still destroying... [id=420c4ed2-20e5-4dca-b4bf-3758535ccbfc, 10s elapsed]
huaweicloud_vpc.example: Destruction complete after 11s
Destroy complete! Resources: 1 destroyed.
四、参考
本博客所有文章除特别声明外，均采用 CC BY-SA 4.0 协议 ，转载请注明出处！


|
Completing your claim
|
{% if data.completing_your_claim=="complete" %}
{% include "includes/task_status_finished.html" %}
{% endif %}
|
|
Your details
|
{% if data.your_details=="complete" %}
{% include "includes/task_status_finished.html" %}
{% endif %}
|
|
Their details
|
{% if data.their_details=="complete" %}
{% include "includes/task_status_finished.html" %}
{% endif %}
|
|
Claim amount
|
{% if data.claim_amount=="complete" %}
{% include "includes/task_status_finished.html" %}
{% endif %}
|
|
Claim details
|
{% if data.claim_details=="complete" %}
{% include "includes/task_status_finished.html" %}
{% endif %}
|


Welcome to Movie Library application
This simple application will allow user to
-
List All movies in grid
-
Create new Movie (with several directors)
-
Update an existing movie
-
Delete an existing movie
-
Sort list of movies by title, director, release date, type
-
Search for a movie by title, director, release date, type
-
Display the list of films of a Director on Hover (author page)


Cross-Site Scripting in 37Signals Writeboard Application
While recently using Basecamp, a 37Signals product, I was writing a collaborative document using Writeboard and noticed that I could insert greater than (>) and less than (<) tags in the document.
Writeboard uses a simpler form of editing, similar to wiki's. If you want to make the line bold, you can use *bold*
instead of standard HTML, <b>bold</b>
. However, Writeboard allows the user to markup the text either way. Well, this was a product that I needed to QA. I quickly inserted a script source tag, saved the Writeboard, and to my surprise, the script src tag fired.
Upon identifying this I then attempted Cross-Site Scripting 101:
<script>alert (123)</script>;
That was also successful! I was rather blown away that a product used by, Adidas, National Geographic, Kellogg, and USA Today, has never been tested. I am also surprised that no one at any of these companies has ever accidental found this functionality.
I reached out to the security team at 37Signals, and the issue has been fixed and I have been given a nice shout out on the security page.
I initially thought, "This is what happens when start-ups attempt to rush products to market without doing sanity checking on what they are doing."
However, upon further research, I read the excellent "book" Get Real by Jason Fried the Founder of 37Signals. These essays explained why this type of vulnerability lived in this system. 37Signals follows a process of quick deployment, development, with fast subsequent revisions. Their concept is get a product out that people can immediately begin using.
While I agree, this is a great way to develop SaaS products, it is difficult to see how security can come into play with this type of software delivery model. In one essay, Fried, explains the necessity of getting well rounded individuals (generalists) and avoid hiring specialists. Does this mean more software developers should be interested in security?
This is yet to be seen, and I think it is dependent upon your product. There is something however that other companies can learn from 37Signals.
37 Signals did the following when it came to me finding this bug: * I initially reached out to Jason Fried on Twitter, and he got back to me in less than an hour. * They had a simple way for me to contact them. * After reaching out to them, they immediately acknowledged the receiving of my message. * They fixed the issue in 4 days.
I commend 37Signals for fixing the issue as fast as they did. Typically, when these issues are reported to companies, they are typically forwarded to the trash.


Evercam Architecture Diagram - Logo Driven Development ;).
-
{% for repository in site.github.public_repositories %}
- {{ repository.name }} {% endfor %}
Get involved with Evercam
The Open Source Camera Management Platform
Public Cameras
www.evercam.io/public
Found a public camera? Add it here. Got a public camera dataset? Email us
Camera Make & Models Cameras
www.evercam.io/vendors
www.evercam.io/models
You’re a camera manufacturer?
You’ve got a camera we don’t support?
You want a camera feature we don’t support?
You’ve got an NVR or DVR we don’t support?
-- Email us
There’s some server side functionality you’d like to see? Make a pull request.
Evercam Clients
www.github.com/evercam
You’d like to create your own Evercam? Fork our repo. There’s a client side feature you’d like to see? Check out the Trello Dashboard Roadmap
Evercam Wrappers
www.github.com/evercam
There’s an app or an integration you’d like to see? Let us know, or try it yourself.
Evercam Gateway
www.github.com/evercam
Check out the Evercam VPN Gateway project


{% extends "base_foundation.html" %} {% block title %}Contact the Django Software Foundation{% endblock %} {% block content %}
This contact form is for the Django Software Foundation - the legal and fundraising arm of the Django project.
If you want to report a bug, feature request, or documentation issue in Django, use the ticket tracker.
If you want to report a problem with this website, use the GitHub repo.
If you've got questions about how to use Django, use the django-users mailing list.
{% endblock %}


(Using: Bootstrap 3.3.6, AngularJS 1.4.8, Angular UI Bootstrap 0.14.3, Font-Awesome 4.5)
This Demo of Angular-Dialog-Service is the same as the demo for using the service without Angular-Translate. Except now the service checks to see if Font-Awesome has been loaded and will automatically use Font-Awesome icons instead of the Bootstrap "glyphicons," in the header of the predefined dialogs.
Previously glyphicons were hard wired in, if you didn't include the Bootstrap version with the glyphicons because you were using Font-Awesome instead, then nothing appeared in the dialog headers. Now the service will automatically detect that you're using Font-Awesome and include the equivalent icons for each predefined dialog.
Confirmation: {{confirmed}}
Name Enter (From Custom): {{name}}
Custom 2 Value: {{custom.val}}


A prototype single-page application powered by React.js that leverages Google Books to seamlessly allow book searching and list creation
The homepage of a concept site for an urban mall in Rochester, NY
A Google Map canvas that plots weather forecasts along any inputted route, utilizing several Maps APIs and Forecast.io
A simple calculator that runs in the browser


§333F-5 Other systems within the developmental disability system. The department may create other systems as required to implement the services necessary for persons with developmental or intellectual disabilities. [L 1987, c 341, pt of §2; am L 2011, c 220, §13]


M. BUTTERFLY A film review by James Berardinelli Copyright 1993 James Berardinelli
M. BUTTERFLY
Rating (Linear 0 to 10): 4.2
Date Released: 10/8/93 (selected cities); 10/15/93 (everywhere) Running Length: 1:41 Rated: R (Sexual situations, nudity)
Starring: Jeremy Irons, John Lone, Barbara Sukowa, Ian Richardson Director: David Cronenberg Producer: Gabriella Martinelli Screenplay: David Henry Hwang, based on his play Music: Howard Shore Released by Geffen Films through Warner Brothers
The place and time are Beijing, 1964. Rene Gallimard, an accountant working for the French Embassy, has just arrived in China. Early in his tenure, he attends a performance of Puccini's MADAME BUTTERFLY performed by the outspoken and exotic singer Song Liling (John Lone), who is actually a man masquerading as a woman. Not recognizing this, Gallimard proceeds to pursue an affair with Liling, never once recognizing that he is being duped. However, the deception goes even deeper, for Liling is working for the Communist government and using the relationship with Gallimard to procure important French intelligence.
The main problem with M. BUTTERFLY is one of credibility. All other issues momentarily aside, there is a huge question that needs to be answered: How can Gallimard have lived with, and made love to, this person for eighteen years, yet not recognized that Liling is actually a man? No firm solution is given, and the subject is only tackled in the most oblique and unsatisfactory manner.
The first half of M. BUTTERFLY, which takes place in China, is far better than the disastrously-constructed final portion (in France). While the romance between Gallimard and Liling isn't particularly effective (Jeremy Irons generates about as much heat as an ice cube), there are at least some interesting ideas presented here which, if nothing else, provide fodder for the intellect. Liling has some uncompromising opinions about the roles of men and women in society. In answer to the question of why men are frequently used to take on the roles of women in Chinese operas, his response is: "Because only men know how women are supposed to act."
As a whole, the plot doesn't pay much attention to reality, despite having been based on a true-to-life scandal. There are a lot of little things that simply don't ring true.
Yet, despite all the problems, M. BUTTERFLY remains strangely compelling through most of the first hour, and a great deal of the credit for this must go to actor John Lone, who does an excellent job in a challenging role. However, when the scene shifts to Paris, the story gets so disjointed and confused that it's impossible to know what to think.
The final confrontation between Gallimard and Liling as a man, is a dud. There's no connection between these two, and it's difficult to accept that they've lived together as husband and wife for so many years. The emotions released are obviously not heartfelt, and the lack of any genuine catharsis leaves the audience detached and frustrated. With his shedding of female garb, Lone loses the bulk of his charisma.
The final scene is artsy, symbolic, pretentious, and empty. Rarely have I been more disgusted by a supposedly-intelligent film's choice of "resolutions". I had thought Cronenberg a better craftperson than this.
Needless to say, there are similarities between M. BUTTERFLY and THE CRYING GAME, but beyond the switched-gender portrayals, there isn't much substance to the comparisons. The bulk of THE CRYING GAME makes sense; the same cannot be said about this movie. There are also a few issues touched on here that are presented far more effectively in FAREWELL MY CONCUBINE.
Jeremy Irons has done some excellent work in the past, but he is badly miscast here (as he was in Louis Malle's DAMAGE). The role of Gallimard demands an actor who can effectively convey deeply-felt passions and a driving obsession, tasks that Irons appears incapable of. He is flat, so the movie, which is told almost exclusively from his perspective, sputters and fizzles helplessly.
M. BUTTERFLY disappoints in almost every area, which is a shame considering the high regard with which the play has been received. The movie, however, seems to make the wrong decision at almost every opportunity, trying for the kind of melodramatic tragedy that only works in opera. Motion pictures like this need a firm grounding in reality which, sadly, Cronenberg has failed to provide. As a result, M. BUTTERFLY never gets out of the cocoon.
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Ljungberg wants Arsenal to start scoring first
Cape Town - Interim boss Freddie Ljungberg admits it's a real problem for Arsenal that they are always conceding first and are then required to chase games.
The Gunners have taken just one point from Ljungberg's two Premier League games at the helm since he was appointed as Unai Emery's temporary successor last month.
He takes his side to West Ham on Monday night knowing they will be in the bottom half of the table at kick-off following their winless run.
But the 42-year-old believes he knows where to start correcting the issues to get to back to winning ways.
"If you score the first goal you don't have to chase the game," he said.
"You don't have to open up as much because you can control the game so that's something that, in my opinion, we need to change a little bit."
Ljungberg has spoken about the lack of belief among his players at the moment but insists they will continue working to address the slide.
"It's never easy when you sack a manager and you're low on confidence," he added.
"We started really well at Norwich. We started the second half really well and I was sure we were going to win the game and get going again.
"We get a sucker punch on a counter or as they play down one side. It's hard to take but we keep plugging away."
Ljungberg will be unable to call on Real Madrid loanee Dani Ceballos, who remains sidelined with a hamstring problem.
Rob Holding could return following a minor knee injury and will be assessed before the trip to the London Stadium.
- TeamTalk Media


Local care center employees cook up tasty chili
by John GarlockKIRKSVILLE, Mo. — A local care facility celebrated the Saturday start of Missouri's Fall Firearms Deer Season with a little friendly competition for its staff.
Employees at Kirksville Manor Care Center took part in a chili cookoff Friday afternoon.
KTVO Human Resources Director Melissa Billington and KTVO’s John Garlock served as the judges for the contest.
There were six entries, and they were all delicious. Unfortunately, there could only be three winners.
Third place went to Adam Smith, second place went to Kathy Humphreys, and first place was awarded to Tara Craig.
All three were given a prize.
Manor Care Activities Director Nancy Price said this was the first year for the chili contest, but they will probably make it an annual event.


Accounts by Name
No accounts found containing '
text
'.
try to
evict the cache
Accounts whose owner contains '
text
' are:
Account ID
Account Number
Owner
Balance
1
123456789
Keri
500.00
Options:
Home
|
Account Search


Ocean [am10], ocean, in The Outer Sea ------------------------------------------------------------------------ 22: It has begun to rain. Routes leaving Ocean: North, to Ocean [al10], 6 days East, to Ocean [am11], 6 days South, to Ocean [an10], 6 days West, to Ocean [am09], 6 days It is raining.


Space X Launch Programs
Loading...
Filters
Launch year
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
Successful Launch
True
False
Successful Landing
True
False
Falcon #1
Mission ids
Launch year
Successful launch
Successful landing
Falcon #1
Mission ids
Launch year
Successful launch
Successful landing
Falcon #1
Mission ids
Launch year
Successful launch
Successful landing
Falcon #1
Mission ids
Launch year
Successful launch
Successful landing
Falcon #1
Mission ids
Launch year
Successful launch
Successful landing


TIFFOpen
Section: Misc. Reference Manual Pages (3T)
Updated: January 9, 1996
Index
Return to Main Contents
NAME
TIFFOpen, TIFFFdOpen, TIFFClientOpen - open a
TIFF
file for reading or writing
SYNOPSIS
#include <tiffio.h>
TIFF* TIFFOpen(const char* filename, const char* mode)
TIFF* TIFFFdOpen(const int fd, const char* filename, const char* mode)
typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t);
typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);
typedef int (*TIFFCloseProc)(thandle_t);
typedef toff_t (*TIFFSizeProc)(thandle_t);
typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*);
typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);
TIFF* TIFFClientOpen(const char* filename, const char* mode, thandle_t clientdata,
TIFFReadWriteProc readproc, TIFFReadWriteProc writeproc, TIFFSeekProc seekproc,
TIFFCloseProc closeproc, TIFFSizeProc sizeproc, TIFFMapFileProc mapproc,
TIFFUnmapFileProc unmapproc)
DESCRIPTION
TIFFOpen
opens a
TIFF
file whose name is
filename
and returns a handle to be used in subsequent calls to routines in
libtiff.
If the open operation fails, then zero is returned.
The
mode
parameter specifies if the file is to be opened for reading (``r''),
writing (``w''), or appending (``a'') and, optionally, whether
to override certain default aspects of library operation (see below).
When a file is opened for appending, existing data will not
be touched; instead new data will be written as additional subfiles.
If an existing file is opened for writing, all previous data is
overwritten.
If a file is opened for reading, the first
TIFF
directory in the file is automatically read
(also see
TIFFSetDirectory(3T)
for reading directories other than the first).
If a file is opened for writing or appending, a default directory
is automatically created for writing subsequent data.
This directory has all the default values specified in
TIFF
Revision 6.0:
BitsPerSample=1,
ThreshHolding=bilevel art scan,
FillOrder=1
(most significant bit of each data byte is filled first),
Orientation=1
(the 0th row represents the visual top of the image, and the 0th
column represents the visual left hand side),
SamplesPerPixel=1,
RowsPerStrip=infinity,
ResolutionUnit=2
(inches), and
Compression=1
(no compression).
To alter these values, or to define values for additional fields,
TIFFSetField(3T)
must be used.
TIFFFdOpen
is like
TIFFOpen
except that it opens a
TIFF
file given an open file descriptor
fd.
The file's name and mode must reflect that of the open descriptor.
The object associated with the file descriptor
must support random access.
TIFFClientOpen
is like
TIFFOpen
except that the caller supplies a collection of functions that the
library will use to do UNIX-like I/O operations.
The
readproc
and
writeproc
are called to read and write data at the current file position.
seekproc
is called to change the current file position a la
lseek(2).
closeproc
is invoked to release any resources associated with an open file.
sizeproc
is invoked to obtain the size in bytes of a file.
mapproc
and
unmapproc
are called to map and unmap a file's contents in memory; c.f.
mmap(2)
and
munmap(2).
The
clientdata
parameter is an opaque ``handle'' passed to the client-specified
routines passed as parameters to
TIFFClientOpen.
OPTIONS
The open mode parameter can include the following flags in
addition to the ``r'', ``w'', and ``a'' flags.
Note however that option flags must follow the read-write-append
specification.
- l
-
When creating a new file force information be written with
Little-Endian byte order (but see below).
By default the library will create new files using the native
CPU
byte order.
- b
-
When creating a new file force information be written with
Big-Endian byte order (but see below).
By default the library will create new files using the native
CPU
byte order.
- L
-
Force image data that is read or written to be treated with
bits filled from Least Significant Bit (LSB) to
Most Significant Bit (MSB).
Note that this is the opposite to the way the library has
worked from its inception.
- B
-
Force image data that is read or written to be treated with
bits filled from Most Significant Bit (MSB) to
Least Significant Bit (LSB); this is the default.
- H
-
Force image data that is read or written to be treated with
bits filled in the same order as the native
CPU.
- M
-
Enable the use of memory-mapped files for images opened read-only.
If the underlying system does not support memory-mapped files
or if the specific image being opened cannot be memory-mapped
then the library will fallback to using the normal system interface
for reading information.
By default the library will attempt to use memory-mapped files.
- m
-
Disable the use of memory-mapped files.
- C
-
Enable the use of ``strip chopping'' when reading images
that are comprised of a single strip or tile of uncompressed data.
Strip chopping is a mechanism by which the library will automatically
convert the single-strip image to multiple strips,
each of which has about 8 Kilobytes of data.
This facility can be useful in reducing the amount of memory used
to read an image because the library normally reads each strip
in its entirety.
Strip chopping does however alter the apparent contents of the
image because when an image is divided into multiple strips it
looks as though the underlying file contains multiple separate
strips.
Finally, note that default handling of strip chopping is a compile-time
configuration parameter.
The default behaviour, for backwards compatibility, is to enable
strip chopping.
- c
-
Disable the use of strip chopping when reading images.
BYTE ORDER
The
TIFF
specification (all versions) states that compliant readers
must be capable of reading images written in either byte order.
Nonetheless some software that claims to support the reading of
TIFF
images is incapable of reading images in anything but the native
CPU
byte order on which the software was written.
(Especially notorious
are applications written to run on Intel-based machines.)
By default the library will create new files with the native
byte-order of the
CPU
on which the application is run.
This ensures optimal performance and is portable to any application
that conforms to the TIFF specification.
To force the library to use a specific byte-order when creating
a new file the ``b'' and ``l'' option flags may be included in
the call to open a file; for example, ``wb'' or ``wl''.
RETURN VALUES
Upon successful completion
TIFFOpen,
TIFFFdOpen,
and
TIFFClientOpen
return a
TIFF
pointer.
Otherwise, NULL is returned.
DIAGNOSTICS
All error messages are directed to the
TIFFError(3T)
routine.
Likewise, warning messages are directed to the
TIFFWarning(3T)
routine.
"%s": Bad mode.
The specified
mode
parameter was not one of ``r'' (read), ``w'' (write), or ``a'' (append).
%s: Cannot open.
TIFFOpen()
was unable to open the specified filename for read/writing.
Cannot read TIFF header.
An error occurred while attempting to read the header information.
Error writing TIFF header.
An error occurred while writing the default header information
for a new file.
Not a TIFF file, bad magic number %d (0x%x).
The magic number in the header was not (hex)
0x4d4d or (hex) 0x4949.
Not a TIFF file, bad version number %d (0x%x).
The version field in the header was not 42 (decimal).
Cannot append to file that has opposite byte ordering.
A file with a byte ordering opposite to the native byte
ordering of the current machine was opened for appending (``a'').
This is a limitation of the library.
SEE ALSO
libtiff(3T),
TIFFClose(3T)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- BYTE ORDER
-
- RETURN VALUES
-
- DIAGNOSTICS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 01:31:37 GMT, November 23, 1999


JWT Spring Security Demo
Not logged in!
Login
Try one of the following logins
admin & admin
user & password
disabled & password
login
Authenticated user
logout
call example service
call admin protected service
Response:
×
Login unsuccessful


| Harith Alani (Open University, UK) |
| Lora Aroyo (Free University of Amsterdam, the Netherlands) |
| Nathalie Aussenac-Gilles (IRIT-CNRS, France) |
| Ken Barker (University of Texas, US) |
| Joachim Baumeister (University of Würzburg, Germany) |
| Bettina Berendt (K.U.Leuven, Germany) |
| Paul Buitelaar (DERI, National University of Ireland, Galway) |
| Vinay Chaudhri (SRI International, US) |
| Philipp Cimiano (Universität Bielefeld, Germany) |
| Peter Clark (Vulcan, US) |
| Paul Compton (The University of New South Wales, Australia) |
| Henrik Eriksson (Linköping University, Sweden) |
| Jerome Euzenat (INRIA, France) |
| James Fan (IBM Research, US) |
| George Ferguson (University of Rochester, US) |
| Ken Forbus (Northwestern University, US) |
| Ken Ford (Florida Institute for Human&Machine Cognition, US) |
| Aldo Gangemi (Italian National Research Council, Italy) |
| Alexander García Castro (Bremen University, Germany) |
| John Gennari (University of Washington, US) |
| Yolanda Gil (ISI, US) |
| Ashok Goel (Georgia Institute of Technology, US) |
| Asunción Gómez-Pérez (Universidad Politécnica de Madrid, Spain) |
| José Manuel Gómez-Pérez (iSOCO, ES) |
| Mark Greaves (Vulcan, US) |
| Siegfried Handschuh (Digital Enterprise Research Institute, Ireland) |
| Jane Hunter (The University of Queensland, Australia) |
| Robert Jaeschke (University of Kassel, Germany) |
| Jihie Kim (USC/ISI, US) |
| Tolga Konik (Stanford University, US) |
| Rob Kremer (University of Calgary, Canada) |
| James Lester (North Carolina State University, US) |
| Henry Lieberman (MIT Media Laboratory, US) |
| Rodrigo Martínez-Béjar (Universidad de Murcia, Spain) |
| Peter Mika (Yahoo, Spain) |
| Vibhu Mittal (Google, US) |
| Riichiro Mizoguchi (Osaka University, Japan) |
| Enrico Motta (The Open University, UK) |
| Mark Musen (Stanford University, US) |
| Natasha Noy (Stanford University, US) |
| Terry Payne (University of Liverpool, UK) |
| Sofia Pinto (INESC-ID, Portugal) |
| Alan Rector (University of Manchester, UK) |
| Harald Sack (University of Potsdam, Germany) |
| Guus Schreiber (VU University Amsterdam, the Netherlands) |
| Giovanni Semeraro (University of Bari, Italy) |
| Jude Shavlik (University of Wisconsin-Madison, US) |
| Derek Sleeman (University of Aberdeen, UK) |
| Markus Strohmaier (Graz University of Technology, Austria) |
| Valentina Tamma (University of Liverpool, UK) |
| Dan Tecuci (Siemens Corporate Research, US) |
| Annette ten Teije (Free University Amsterdam, the Netherlands) |
| Samson Tu (Stanford University, US) |
| Tania Tudorache (Stanford University, US) |
| Frank van Harmelen (Free University Amsterdam, The Netherlands) |
| Bob Wielinga (University of Amsterdam, the Netherlands) |


Doggone Photoshopped Shame
US President Donald Trump sent the Twitterverse into a tizzy on Wednesday after reposting a photoshopped image of the military dog wounded in the raid that led to the death of Daesh leader Abu Bakr al-Baghdadi.
While many netizens had something to say about Trump reposting the image originally doctored by the Daily Wire, 45 took to Twitter on Thursday and countered claims that he was frightened to be around the military dog by announcing the pooch would be visiting the White House “sometime next week.”
However, in usual Trump fashion, he stirred up more social media controversy by calling the Belgian Malinois by his name - “Conan.”
Many previously speculated that the dog’s name would remain classified, as it would be possible for those seeking revenge to use the canine’s information to identify US troops involved in the Baghdadi military operation. Indeed, Chairman of the Joint Chiefs of Staff Gen. Mark Milley previously declined to share the dog’s name for security reasons. Despite the recent outrage, Newsweek previously cited “multiple Defense Department sources” in confirming that Conan was indeed the dog’s name.


A Gaussian Surface Surrounded By A Charge Distribution
Zoom in to see the field lines originating within the charge distribution,
and that there is no charge and no field within the gaussian surface.
Mouse Interactions
- Click and drag with the left mouse button to rotate the model.
- Use the mouse wheel to zoom in and out.
Touch Interactions
- Swipe with a finger to rotate the model.
- Pinch with two fingers to zoom in and out.


{% extends "account/base.html" %} {% load i18n %} {% block htitle %}SPARCS SSO {% trans "Deactivate" %}{% endblock %} {% block header %}{% endblock %} {% block content %}
{% trans "Your account will be removed permanently 60 days after the deactivation" %}
{% trans "If you login within the 60 days, your account will become ACTIVE again." %}
{% else %}{% trans "You CANNOT deactivate your account since you are registered to at least one SPARCS service yet." %}
{% trans "Go to" %} {% trans "Manage Service" %}{% trans "page first, and unregister all services." %}
{% endif %}


Shorty: URL Shortener
Create personalized short-links
Some error message
Jeah, it works!
Add the destination URL of your short link *
Please add an (optional) name for your short link
Abbreviation
Destination
Operations
hhu
https://hhu.de


Thank You For Your Inquiry
The Bachelor of Professional Studies (BPS) degrees and certificates are specially designed to align with the demands of the changing workplace.
Because trends in the professional environment are constantly shifting, adaptable skills and a wide variety of competencies are essential to your success. This two-pronged, career-focused degree program was developed with close attention to academic research, regional employer input, and market demand.


About
Hi! My name is Alexander Harris. I am a Computer Science major at Rose-Hulman Institute of Technology. This is currently my Junior year at Rose-Hulman. I am from Hidalgo Illinois, and currently live at Village Quarter in Terre Haute, Indiana during the school year. I am currently enrolled in CSSE280, CSSE432, CSSE474, and ECE332. Some of my hobbies include: video games, programming (video games, etc.), taking on small projects, watching popular television shows, and hanging out with my roommate.
When I leave Rose-Hulman, I hope to get a great job opportunity soon after. I will most likely be getting my Master Degree after some time in the work-space. I am unsure as to where I intend on living after college, but those issues will come to me later! As of right now, all I need to worry about is getting an internship, and learning many great things during my time at Rose-Hulman. I enjoy learning and taking on new experiences, as I find it enjoyable to be able to do a variety of things.


Enjoyable website presents the size of space
by Mark FrauenfelderNeal Agarwal made this website about the size of space. You click through it one page at a time, starting with a single astronaut and ending with the observable universe.
Neal Agarwal made this website about the size of space. You click through it one page at a time, starting with a single astronaut and ending with the observable universe.


Hi, steemit friends!💙
First, I want to thank @wanderwithtwo for nominating me for the “What’s in my bag” challenge! From her, I’ve noticed this challenge held by @ramengirl. Now follow me and have a look at my bag to see what’s in it.👇🏻
首先，我想要感谢 @wanderwithtwo点名我参加这个活动叫”我的包包里面有什么”!从她的帖子，我才注意到了 @ramengirl举办的这个活动。那么现在就跟着我一起来看看我的包包里面有什么吧。
This photo is taken in my car, for I am out today. From the size of my bag, you may know there are only a few things in it. Above are all the things that I take every day. I have classified them into several parts.
这张照片是在车里拍的，今天我在外面逛吃逛吃。从我包包的尺寸，你们就知道我里面的东西不是很多。以上就是我每天要带的必需品，接下来我将为大家分类介绍。
To be honest, I seldom make up on weekdays. But when dating on weekends, I will carry them. They are Sulwhasoo perfecting cushion, a Kate eyebrow pencil and a Mac lipstick. In addition, there is a contact lens case.
说实话，我平时上班都是素颜的，但周末出去玩的时候，我就会带上这些东西。他们是雪花秀的气垫bb霜，Kate的眉笔（个人很少画，但这个眉笔真的很好用）和Mac的口红一支。另外，我会带着隐形眼镜盒。
This card bag contains all the cards needed in my daily life. I hardly carry cash but this bag is a necessity for me.
这个卡包涵盖了我所有日常生活中需要的卡，我还很少会带现金出门，但这个卡包我一定会带。
Last but equally important, these four items are much more important than the others referred to. The keys to my house and my office, the key to my car, a USB flash disk and a cellphone are what I use every day.
最后，这四样物品都是我每天必带的，家里以及办公室钥匙，车钥匙，上课用的U盘和手机。当然，手机是最主要的，几乎日常的开销都用手机支付。
That’s all the stuff in my bag. @wanderwithtwo said that her bag is close to being one of the most unfemanine bags. I think mine is closer to that.
这就是我包里的所有东西， @wanderwithtwo说她的包是没有女人味的包包，我想说我的才是。O(∩_∩)O
Now, it’s time for nomination. I would like to see if @susanlo and @sweetieprincess can share what they have in their bags for this challenge. 😊
下一个我想提名 @susanlo 和 @sweetieprincess来参加这个活动。希望两位美女不介意给我们看她们包包里的东西。😊
This page is synchronized from the post: ‘What’’s In My Bag Challenge 👜 我的包包里面有什么 (by @mrspointm)’