text:
//1. Write a program that allocates array of 20 integers and initializes each element by its index multiplied by 5.
//Print the obtained array on the console.

using System;
using System.Collections.Generic;
using System.Linq;

class AllocateArray
    {
        static void Main()
        {
            int[] numbers = new int[20];
            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = i * 5;
                //Console.WriteLine("index[{0}] = {1}", i, numbers[i]);
            }
            Console.WriteLine(string.Join(", ", numbers));
        }
    }


text:
package org.esco.portlet.mediacentre.model.ressource;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.util.StringUtils;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @author elecaude
 *
 */
public abstract class AbstractJson {
	/*
	 * ===============================================
	 * Propriete de la classe
	 * ===============================================
	 */

	/*
	 * ===============================================
	 * Constructeurs de la classe
	 * ===============================================
	 */

	/*
	 * ===============================================
	 * Getter / Setter de la classe
	 * ===============================================
	 */

	/*
	 * ===============================================
	 * Methodes privees de la classe
	 * ===============================================
	 */
	/**
	 * @param attribut
	 * @return le nom du getter d'un attribut
	 */
	private String methodeGetter(String attribut) {
		return "get" + StringUtils.capitalize(attribut);
	}

	/*
	 * ===============================================
	 * Methodes publiques de la classe
	 * ===============================================
	 */
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {

    	ObjectMapper mapper = new ObjectMapper();
		try {
			return mapper.writeValueAsString(this);
		} catch (JsonProcessingException e) {
			return super.toString();
		}
	}

	/**
	 * Methode de recuperation des valeurs d'un attribut d'un objet en utilisant une notation "pointee" pour retrouver l'attribut
	 * @param chemin json object path
	 * @return la liste des valeurs de l'attribut
	 * @throws Exception Exceptions de parcours sur l'objet
	 */
	public List<String> getValeursAttribut(String chemin) throws Exception {
		Class<? extends Object> objectClass = this.getClass();
		String nomAttribut = null;
		Set<String> valeurs = new HashSet<String>();

		int posPoint = chemin.indexOf('.');
		boolean estAttributFinal = (posPoint<0);
		if (!estAttributFinal) {
			nomAttribut = chemin.substring(0, posPoint);
		} else {
			nomAttribut = chemin;
		}
		Method getter = objectClass.getMethod(methodeGetter(nomAttribut), (Class[]) null);
		Object valeurAttribut = getter.invoke(this, (Object[]) null);

		if (valeurAttribut == null) {
			return new ArrayList<String>(valeurs);
		}

		if (estAttributFinal) {
			valeurs.add(valeurAttribut.toString());
			return new ArrayList<String>(valeurs);
		}

		if (valeurAttribut instanceof List<?>) {
			for (Object obj : (List<?>)valeurAttribut) {
				if (obj instanceof AbstractJson) {
					valeurs.addAll(((AbstractJson)obj).getValeursAttribut(chemin.substring(posPoint+1)));
				}
			}
		} else {
			if (valeurAttribut instanceof AbstractJson) {
				valeurs.addAll(((AbstractJson)valeurAttribut).getValeursAttribut(chemin.substring(posPoint+1)));
			}
		}

		return new ArrayList<String>(valeurs);
	}

}

redpajama_set_name: RedPajamaGithub


text:
/* ======= Animations ======= */
jQuery(document).ready(function($) {

    //Only animate elements when using non-mobile devices
    if (jQuery.browser.mobile === false) {

        /* Animate elements in #Promo */
        $('#promo .title').css('opacity', 0).one('inview', function(isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp1');}
        });
        $('#promo .summary').css('opacity', 0).one('inview', function(isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp2');}
        });
        $('#promo .ios').css('opacity', 0).one('inview', function(isInView) {
            if (isInView) {$(this).addClass('animated fadeInLeft delayp3');}
        });

        $('#promo .android').css('opacity', 0).one('inview', function(isInView) {
            if (isInView) {$(this).addClass('animated fadeInRight delayp3');}
        });

        $('#promo .ipad').css('opacity', 0).one('inview', function(isInView) {
            if (isInView) {$(this).addClass('animated fadeInRight delayp3');}
        });

        $('.phone-holder').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInRightBig delayp4');}
        });

        /* Animate elements in #Features */
        $('#game .icon').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp1');}
        });

        /* Animate elements in #How */
        $('#download .video-wrapper').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInLeft delayp1');}
        });

        $('#download .content').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInRight delayp2');}
        });

        /* Animate elements in #faq */
        $('#faq .title').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp1');}
        });
        $('#faq .question').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp2');}
        });
        $('#faq .answer').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp3');}
        });
        $('#faq .btn').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp2');}
        });

        /* Animate elements in #story */
        $('#story .content').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInLeft delayp1');}
        });

        $('#story .member').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInRight delayp2');}
        });

        /* Animate elements in #testimonials */
        $('#product .title').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp1');}
        });

        $('#product .quote-box').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp2');}
        });

        $('#product .people').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp3');}
        });

        $('#product .press').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp1');}
        });

        /* Animate elements in #contact */
        $('#contact .title').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp1');}
        });

        $('#contact .intro').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp2');}
        });

        $('#contact .contact-form').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp3');}
        });

        $('#contact .social-icons').css('opacity', 0).one('inview', function(event, isInView) {
            if (isInView) {$(this).addClass('animated fadeInUp delayp4');}
        });

    }

});


text:
.. _users-release-notes:

=============
Release Notes
=============

v0.9.0 (TBD)
------------

Highlights
~~~~~~~~~~

New features
~~~~~~~~~~~~

API changes
~~~~~~~~~~~

Backward-incompatible changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Deprecations
^^^^^^^^^^^^

Bug fixes
~~~~~~~~~

v0.8.0 (2022-05-05)
-------------------

Highlights
~~~~~~~~~~

*  New implants: :py:class:`~pulse2percept.implants.BVT44` [Petoe2021]_
   (:pull:`465`)
*  New models: :py:class:`~pulse2percept.models.BiphasicAxonMapModel`
   [Granley2021]_ (:pull:`398`) and
   :py:class:`~pulse2percept.models.Thompson2003Model` [Thompson2003]_
   (:pull:`448`)
*  New datasets: :py:func:`~pulse2percept.datasets.load_greenwald2009`
   [Greenwald2009]_ (:pull:`459`) and
   :py:func:`~pulse2percept.datasets.load_perezfornos2012`
   [PerezFornos2012]_ (:pull:`457`)
*  New stimuli: :py:class:`~pulse2percept.stimuli.BarStimulus`,
   :py:class:`~pulse2percept.stimuli.GratingStimulus` (:pull:`310`)
*  Python 3.10 support (:pull:`479`)

New features
~~~~~~~~~~~~

*  New gallery examples for visual field maps (:pull:`432`), Nanduri
   dataset (:pull:`452`), psychophysics stimuli (:pull:`480`), and
   :py:class:`~pulse2percept.models.BiphasicAxonMapModel` (:pull:`484`)
*  Crop method for :py:class:`~pulse2percept.stimuli.ImageStimulus` and
   :py:class:`~pulse2percept.stimuli.VideoStimulus` objects (:pull:`455`)
*  Specify number of OpenMP threads (:pull:`453`)
*  Ignore stimuli of deactivated electrodes (:pull:`444`)
*  Percepts can now have a limited number of gray levels (:pull:`443`)
*  Automatic stimulus reshaping for
   :py:class:`~pulse2percept.stimuli.ImageStimulus` and
   :py:class:`~pulse2percept.stimuli.VideoStimulus` objects (:pull:`434`)
*  :py:class:`~pulse2percept.implants.ElectrodeGrid` can now have different
   spacings in x and y direction (:pull:`430`)
*  Add new plotting styles for a grid's ``plot`` method (:pull:`426`,
   :pull:`433`, :pull:`446`)
*  Additional options for :py:func:`~pulse2percept.viz.scatter_correlation`
   (:pull:`422`)

API changes
~~~~~~~~~~~

Backward-incompatible changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*  ``RetinalCoordTransform`` has been renamed to ``VisualFieldMap`` (:pull:`432`)
*  ``plot_axon_map`` was removed: Use :py:meth:`pulse2percept.models.AxonMapModel.plot`
*  ``plot_implant_on_axon_map`` was removed: Use
   :py:meth:`pulse2percept.implants.ProsthesisSystem.plot` on top of
   :py:meth`pulse2percept.models.AxonMapModel.plot`

Deprecations
^^^^^^^^^^^^

None.

Bug fixes
~~~~~~~~~

*  Fix handling of multi-channel images for scikit-image >= 0.19 (:pull:`473`)
*  Fix corrupted stimuli when created from multiple stimuli (:pull:`469`)
*  :py:func:`~pulse2percept.viz.plot_argus_phosphenes` now works for sliced subsets of data
   (:pull:`415`)
*  Fix plot window for the :py:class:`~pulse2percept.models.AxonMapModel` ``plot`` method
   (:pull:`414`)
*  Keep metadata intact when stimuli are created from other stimuli (:pull:`396`)
*  Be able to run :py:class:`~pulse2percept.models.AxonMapModel` on a single pixel (:pull:`395`)
*  Mirror-flip the :py:class:`~pulse2percept.implants.BVT24` implant (:pull:`393`)

v0.7.1 (2021-06-21)
-------------------

New features
~~~~~~~~~~~~

*  Add :py:class:`~pulse2percept.models.FadingTemporal`, a generic phosphene fading model (:pull:`378`)

Maintenance
~~~~~~~~~~~

*  Various implant usability and speed upgrades (:pull:`375`, :pull:`382`, :pull:`383`, :pull:`386`)
*  Various stimulus usability and speed upgrades (:pull:`382`, :pull:`383`, :pull:`384`, :pull:`385`)
*  Refactor common Cython functions and move them into a ``utils._fast_math`` submodule (:pull:`382`)
*  Further speed up the :py:class:`~pulse2percept.models.AxonMapModel` build process (:pull:`369`)
*  Improve documentation and usability of various :py:class:`~pulse2percept.models.AxonMapModel` methods (:pull:`370`)
*  Disallow lambda<10 for :py:class:`~pulse2percept.models.AxonMapModel` (:pull:`370`)
*  Show a warning when :py:class:`~pulse2percept.models.ScoreboardModel` or
   :py:class:`~pulse2percept.models.AxonMapModel` is used with a nonzero electrode-retina distance (:pull:`368`)

Bug fixes
~~~~~~~~~

*  Fix naming convention for :py:class:`~pulse2percept.implants.BVT24` electrodes (:pull:`380`)
*  Fix issues with plotting and animating :py:class:`~pulse2percept.percepts.Percept` (:pull:`379`)
*  Fix inconsistencies and missing parameters in the [Nanduri2012]_ dataset (:pull:`376`)
*  Fix :py:meth:`pulse2percept.models.AxonMapModel.plot` for left eyes (:pull:`367`)
*  Fix axon map visualization in :py:meth:`~pulse2percept.viz.plot_argus_phosphenes` (:pull:`366`)

v0.7.0 (2021-04-04)
-------------------

Highlights
~~~~~~~~~~

*  New implants: :py:class:`~pulse2percept.implants.PRIMA`,
   :py:class:`~pulse2percept.implants.PRIMA75`,
   :py:class:`~pulse2percept.implants.PRIMA55`,
   :py:class:`~pulse2percept.implants.PRIMA40` (:pull:`188`)
*  New electrodes: :py:class:`~pulse2percept.implants.SquareElectrode`,
   :py:class:`~pulse2percept.implants.HexElectrode`,
   :py:class:`~pulse2percept.implants.PhotovoltaicPixel` (:pull:`188`,
   :pull:`193`)
*  New stimuli: :py:class:`~pulse2percept.stimuli.ImageStimulus` and
   :py:class:`~pulse2percept.stimuli.VideoStimulus` (:pull:`196`, :pull:`220`,
   :pull:`221`, :pull:`356`), :py:class:`~pulse2percept.stimuli.BarStimulus`
   and :py:class:`~pulse2percept.stimuli.GratingStimulus` (:pull:`323`)
*  New datasets: :py:class:`~pulse2percept.datasets.load_nanduri2012`
   (:pull:`250`)
*  New model selection subpackage (:pull:`311`)
*  100x speedup of building :py:class:`~pulse2percept.models.AxonMapModel` (:pull:`331`)
*  OpenMP support (:pull:`260`)
*  Python 3.9 support (:pull:`348`)

New features
~~~~~~~~~~~~

*  :py:class:`~pulse2percept.stimuli.Stimulus` objects now store stimulus parameters
   in their metadata (:pull:`346`)
*  :py:class:`~pulse2percept.stimuli.Stimulus` objects can now be manipulated with
   arithmetic operators (:pull:`301`)
*  Image processing methods can be directly applied to
   :py:class:`~pulse2percept.stimuli.ImageStimulus` and
   :py:class:`~pulse2percept.stimuli.VideoStimulus` objects
   (:pull:`241`, :pull:`253`)
*  Feature matrix and phosphene visualizations (:pull:`232`)
*  Percepts can be animated directly in IPython / Jupyter Notebook, and saved
   as a movie file (:pull:`196`, :pull:`226`, :pull:`358`)
*  Electrodes, electrode arrays, and prosthesis systems now have their own
   plot method (:pull:`188`, :pull:`195`, :pull:`222`)

API changes
~~~~~~~~~~~

Backward-incompatible changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*  Implants rotation angles are now speicified in degrees, not radians (:pull:`357`)
*  pulse2percept now requires Matplotlib 3.0.2 or newer (:pull:`223`)
*  FFMPEG and scikit-video dependencies have been removed (:pull:`196`)
*  ``TimeSeries`` has been removed. Please use
   :py:class:`~pulse2percept.stimuli.Stimulus` instead
*  ``LegacyMonophasicPulse``, ``LegacyBiphasicPulse`` and ``LegacyPulseTrain``
   have been removed. Use their equivalents without the "Legacy" prefix.

Deprecations
^^^^^^^^^^^^

*  ``plot_axon_map``: Use :py:meth:`pulse2percept.models.AxonMapModel.plot`
*  ``plot_implant_on_axon_map``: Use
   :py:meth:`pulse2percept.implants.ProsthesisSystem.plot` on top of
   :py:meth`pulse2percept.models.AxonMapModel.plot`

Bug fixes
~~~~~~~~~

*  Fix metadata and plotting of Beyeler et al. (2019) dataset (:pull:`353`)
*  Fix data boundaries in :py:meth:`~pulse2percept.models.AxonMapModel.plot`
   (:pull:`244`)
*  :py:class:`~pulse2percept.models.AxonMapModel` have been drastically reduced
   (:pull:`215`)
*  :py:class:`~pulse2percept.utils.Grid2D`: Grid now produces correct step size
   even when range is not divisible by step (:pull:`201`)
*  :py:class:`~pulse2percept.implants.AlphaIMS`: Implant now uses
   :py:class:`~pulse2percept.implants.SquareElectrode` objects and has exactly
   1500 electrodes (:pull:`193`)
*  :py:class:`~pulse2percept.implants.ElectrodeGrid`: Alphabetic names now
   follow A-Z, AA-AZ, BA-BZ, etc. (:pull:`192`)
*  :py:class:`~pulse2percept.implants.BVA24`: Setting a stimulus in the
   constructor now has the desired effect (:pull:`186`)
*  Computational cost and memory usage of

v0.6.0 (2020-05-05)
----------------------

Highlights
~~~~~~~~~~

*   New API (:pull:`96`, :pull:`174`, :pull:`178`)
*   New implants: :py:class:`~pulse2percept.implants.BVA24` (:pull:`161`)
*   New models: :py:class:`~pulse2percept.models.ScoreboardModel` (:pull:`96`),
    :py:class:`~pulse2percept.models.AxonMapModel` (:pull:`96`),
    :py:class:`~pulse2percept.models.Nanduri2012Model` (:pull:`168`),
    :py:class:`~pulse2percept.models.Horsager2009Model` (:pull:`180`)
*   New stimuli: :py:class:`~pulse2percept.stimuli.BiphasicPulseTrain`,
    :py:class:`~pulse2percept.stimuli.AsymmetricBiphasicPulse`,
    :py:class:`~pulse2percept.stimuli.AsymmetricBiphasicPulseTrain`
    (:pull:`178`)
*   New :py:mod:`~pulse2percept.percepts` subpackage (:pull:`174`)
*   New :py:mod:`~pulse2percept.datasets` subpackage (:pull:`167`)
*   New build process: Compile code and run tests via ``Makefile``
    (:pull:`96`)
*   Documentation now includes a tutorial, user guide, developer's guide, and
    a gallery
*   Python 2.7 and 3.4 are no longer supported (:pull:`96`)

New features
~~~~~~~~~~~~

*   A visual prosthesis is now considered a
    :py:class:`~pulse2percept.implants.ProsthesisSystem` consisting of an
    :py:class:`~pulse2percept.implants.ElectrodeArray` and optionally a
    :py:class:`~pulse2percept.stimuli.Stimulus` (:pull:`96`).
*   A :py:class:`~pulse2percept.models.Model` can be built by mix-and-matching
    spatial and temporal models from different publications (:pull:`174`).
*   A :py:class:`~pulse2percept.stimuli.Stimulus` can be created from various
    source types, such as scalars, NumPy arrays, lists, and dictionaries.
    There are also a variety of built-in pulses and pulse trains
    (e.g., :py:class:`~pulse2percept.stimuli.BiphasicPulseTrain`).
*   :py:class:`~pulse2percept.implants.ElectrodeArray` now stores electrodes in
    a dictionary (:issue:`74`).
*   :py:class:`~pulse2percept.implants.ElectrodeGrid` can be used to create
    electrodes on a rectangular (:pull:`150`) or hexagonal grid (:pull:`160`).

API changes
~~~~~~~~~~~

Backward-incompatible changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

*  Times are now specified in milliseconds.
*  The ``Simulation`` object has been removed. Please directly
   :ref:`instantiate a model <topics-models>` instead.
*  ``pulse2percept.retina``: use :py:mod:`~pulse2percept.models` instead
*  ``pulse2percept.files``: use :py:mod:`~pulse2percept.io` instead

Deprecations
^^^^^^^^^^^^

*  ``TimeSeries``: use :py:class:`~pulse2percept.stimuli.Stimulus` instead
*  Old pulses got renamed to ``LegacyMonophasicPulse``, ``LegacyBiphasicPulse``
   and ``LegacyPulseTrain``

v0.5.2 (2020-02-25)
-------------------

Bug fixes
~~~~~~~~~

*   ``pulse2percept.retina.Nanduri2012``: improved Cython implementation

v0.5.1 (2020-02-05)
-------------------

Bug fixes
~~~~~~~~~

*   ``pulse2percept.retina.Nanduri2012``: allow switch between FFT/Cython
*   ``pulse2percept.retina.Horsager2009``: respect ``use_jit`` option
*   ``pulse2percept.utils.center_vector``: "cannot determine Numba type"

v0.5.0 (2019-11-29)
-------------------

Highlights
~~~~~~~~~~

*   New :py:mod:`pulse2percept.viz` module (:pull:`84`)
*   Support for the :py:class:`~pulse2percept.implants.AlphaIMS` implant
    (:pull:`87`)
*   Automated wheelhouse build (:pull:`130`)
*   New contribution guidelines (:pull:`92`)
*   New issue templates (:pull:`93`)
*   New code of conduct (:pull:`95`)
*   Host documentation on
    `pulse2percept.readthedocs.io <https://pulse2percept.readthedocs.io>`_.

Bug fixes
~~~~~~~~~

*   Fix nasal/temporal labeling for left eyes (:commit:`9c3bddc`)
*   Fix :py:meth:`~pulse2percept.viz.plot_fundus` for left eyes
    (:commit:`a6ffdbc`)
*   Fix ``scipy.special.factorial`` (:commit:`c9631ae`)

v0.4.3 (2018-05-21)
-------------------

Highlights
~~~~~~~~~~

*   Cython integration:

    * The model described in Nanduri et al. (2012) now uses a finite difference
      method implemented in Cython as opposed to FFT-based convolutions
      (:pull:`83`)

    * Single-core benchmarks show a 200x speedup over a pure-Python
      implementation.

Bug fixes
~~~~~~~~~

*   Python 2.7 unpacking error in :py:meth:`~pulse2percept.viz.plot_fundus`
    (:commit:`3dd9d1e`)

.. _0.4.3-deprecation-removals:

Deprecation removals
~~~~~~~~~~~~~~~~~~~~

* ``pulse2percept.files.savemoviefiles``
* ``pulse2percept.files.npy2movie``
* ``pulse2percept.files.scale``
* ``pulse2percept.stimuli.Movie2Pulsetrain``
* ``pulse2percept.stimuli.retinalmovie2electrodtimeseries``
* ``pulse2percept.utils.Parameters``
* ``pulse2percept.utils.mov2npy``

v0.3.0 (2018-02-20)
-------------------

Highlights
~~~~~~~~~~

*   New, faster axon map calculation
*   Better plotting
*   Support for left/right eye


text:
layout: post
title:  "Segunda Chance de Thyatis (Absoluta)"
date:   2018-01-01
source: Manual do Devoto 95.
tags: [nenhum, bardo]
---

**divina 9 (ordem)**

**Alcance**: 30m

**Teste de Resistência**: nenhum.

**Duração**: instantânea

**Alvo**: 1 criatura

**Tempo de Execução**: ação livre

Com um simples gesto, você lança sua magia e impõe os ensinamentos de Thyatis a alguém. Escolha uma ação que o alvo acabou de fazer — pode ser algo tão simples quanto um ataque ou tão drástico quanto uma declaração de guerra. De qualquer forma, a ação deve contrariar os preceitos de Thyatis.
Ou seja, deve ser injusta, sanguinária, negando a alguém chance de redenção ou promovendo a ignorância. O alvo da magia deve mudar a ação. Por exemplo, um inimigo pode decidir não atacar alguém indefeso, ou um nobre pode decidir não declarar guerra a um feudo vizinho. O mestre decide quais ações são dignas da intervenção de Thyatis e quais novas ações resultam desta intervenção.
Além disso, quando você lança esta magia, recebe 1d6 "previsões" à sua escolha sobre o futuro do alvo. Ao longo de toda a vida do alvo, enquanto estiver enxergando-o, você pode mudar um número de ações dele igual ao número de previsões que recebeu.
Por exemplo, dez anos depois de ter decidido não declarar guerra ao feudo vizinho, um nobre está prestes a casar sua filha com um velho e tirânico barão local. Você faz ele mudar de ideia, deixando a moça livre para fazer o que quiser da vida. Vinte anos após isso, o nobre ataca um plebeu que o desrespeitou. Você faz com que ele em vez disso perdoe o camponês e se compadeça de sua vida dura. E assim por diante.


text:
package node

import "golang.org/x/net/html"

// Traverse walks through tree of nodes and adds visited node to the slice
// if check function returns true for this node.
func Traverse(n *html.Node, check func(*html.Node) bool, nodes []*html.Node) []*html.Node {
	for c := n.FirstChild; c != nil; c = c.NextSibling {
		if check(c) {
			nodes = append(nodes, c)
		}
		nodes = Traverse(c, check, nodes)
	}
	return nodes
}


text:
<?xml version="1.0" ?>

<building name="Masonry" game_type="Workshop" game_subtype="Masons" file="workshop.png">

	<!-- benches wall -->
	<if>
		<!-- replace this with position index if required -->
		<BuildingOccupancy value="3" />
		<!-- benches -->
		<include file="wsBenches.xml"/>
	</if>
	<else>
		<include file="wsUpperBorder.xml"/>
	</else>
	<!-- end benches wall -->

	<!-- contents -->

	<if>
		<PositionIndex value=7 />
		<sprite index = 170 offsetx=2 offsety=-1/>
	</if>

	<if>
		<BuildingOccupancy value="3" />
		<if>
			<PositionIndex value=2 />
			<sprite index = 170 offsetx=-3 offsety=-8/>
		</if>
		<else>
			<PositionIndex value=5 />
			<sprite index = 168 offsetx=2 offsety=-2 />
			<sprite index = 169 offsetx=-3 offsety=-2 />
		</else>
	</if>

	<include file="ws3x3Blueprint.xml"/>
	<include file="wsLowerBorder.xml"/>

</building>


text:
<html>
<body bgcolor="#FFFFFF" onLoad="onLoad();">
	<canvas id="theCanvas" width="1000" height="500"></canvas>
	<script src="scripts/game.js"></script>
</body>
</html>


text:
import Mux from '@mux/mux-node'
const { Video } = new Mux()

export default async function uploadHandler(req, res) {
  const { method } = req

  switch (method) {
    case 'POST':
      try {
        const upload = await Video.Uploads.create({
          new_asset_settings: { playback_policy: 'public' },
          cors_origin: '*',
        })
        res.json({
          id: upload.id,
          url: upload.url,
        })
      } catch (e) {
        console.error('Request error', e)
        res.status(500).json({ error: 'Error creating upload' })
      }
      break
    default:
      res.setHeader('Allow', ['POST'])
      res.status(405).end(`Method ${method} Not Allowed`)
  }
}


text:
<?php

class Ess_M2ePro_Block_Adminhtml_Ebay_Listing_Log_Grid extends Ess_M2ePro_Block_Adminhtml_Listing_Log_Grid
{
    //########################################

    protected function getActionTitles()
    {
        $allActions = Mage::helper('M2ePro/Module_Log')->getActionsTitlesByClass('Listing_Log');
        $excludeActions = array(
            Ess_M2ePro_Model_Listing_Log::ACTION_DELETE_AND_REMOVE_PRODUCT => '',
            Ess_M2ePro_Model_Listing_Log::ACTION_DELETE_PRODUCT_FROM_COMPONENT => '',
            Ess_M2ePro_Model_Listing_Log::ACTION_SWITCH_TO_AFN_ON_COMPONENT => '',
            Ess_M2ePro_Model_Listing_Log::ACTION_SWITCH_TO_MFN_ON_COMPONENT => '',
            Ess_M2ePro_Model_Listing_Log::ACTION_CHANGE_PRODUCT_TIER_PRICE => '',
            Ess_M2ePro_Model_Listing_Log::ACTION_RESET_BLOCKED_PRODUCT => '',
        );

        if (!Mage::helper('M2ePro/View_Ebay')->isAdvancedMode()) {
            $excludeActions[Ess_M2ePro_Model_Listing_Log::ACTION_TRANSLATE_PRODUCT] = '';
        }

        return array_diff_key($allActions, $excludeActions);
    }

    //########################################
}


text:
@extends('app')

@section('content')

      <form action="/workout" method="get">

Pump Code.

Keep your coding skills in shape.

                <input type="submit" value="Start Workout" class="btn btn-primary btn-lg"></input>

            @foreach($tags as $tag => $value)

                    <input type="checkbox" name="tag[]" value="{{$value}}" /> {{$tag}}

            @endforeach

      </form>

@stop


text:
// KeyEdit.cpp: Implementierungsdatei
//

#include "stdafx.h"
#include "CrypToolApp.h"
#include "KeyEdit.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CKeyEdit

CKeyEdit::CKeyEdit()
{
}

CKeyEdit::~CKeyEdit()
{
}

BEGIN_MESSAGE_MAP(CKeyEdit, CEdit)
	//{{AFX_MSG_MAP(CKeyEdit)
	ON_WM_KEYDOWN()
	ON_WM_SYSKEYDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CKeyEdit

void CKeyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen

	CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CKeyEdit::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
/*	if(nFlags & (1<<13)) {
		switch(nChar) {
		case('p'):
		case('P'): m_Param_NCtrl.SetFocus();
			return;
		case('a'):
		case('A'): m_Param_bCtrl.SetFocus();
			return;
		}
	}	// TODO: Code für die Behandlungsroutine für Nachrichten hier einfügen und/oder Standard aufrufen
*/
	CEdit::OnSysKeyDown(nChar, nRepCnt, nFlags);
}


text:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:app="http://schemas.android.com/apk/res-auto"
             xmlns:tools="http://schemas.android.com/tools"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             tools:context=".fragments.MapFragment">

    <com.mapbox.mapboxsdk.views.MapView
        android:id="@+id/map_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        app:access_token="@string/map_box_sdk_token"/>

    <LinearLayout
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginStart="20dp"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textColor="@color/sysBlack"
                android:textSize="12sp"
                android:text="@string/vehicle"/>

            <View
                android:layout_width="50dp"
                android:layout_height="4dp"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@color/sysRed"/>

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textColor="@color/sysBlack"
                android:textSize="12sp"
                android:text="@string/bicycle"/>

            <View
                android:layout_width="50dp"
                android:layout_height="4dp"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@color/sysBlue"/>

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textColor="@color/sysBlack"
                android:textSize="12sp"
                android:text="@string/walking"/>

            <View
                android:layout_width="50dp"
                android:layout_height="4dp"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@color/sysYellow"/>

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:textColor="@color/sysBlack"
                android:textSize="12sp"
                android:text="@string/running"/>

            <View
                android:layout_width="50dp"
                android:layout_height="4dp"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@color/sysGreen"/>

        </RelativeLayout>

    </LinearLayout>

</FrameLayout>


text:
/*!
 *  Copyright (c) 2017 by Contributors
 * \file rocm_module.h
 * \brief Execution handling of ROCM kernels
 */
#ifndef TVM_RUNTIME_ROCM_ROCM_MODULE_H_
#define TVM_RUNTIME_ROCM_ROCM_MODULE_H_

#include <tvm/runtime/module.h>
#include <memory>
#include <vector>
#include <string>
#include <unordered_map>
#include "../meta_data.h"

namespace tvm {
namespace runtime {

/*! \brief Maximum number of GPU supported in ROCMModule */
static constexpr const int kMaxNumGPUs = 32;

/*!
 * \brief create a rocm module from data.
 *
 * \param data The module data, can be hsaco
 * \param fmt The format of the data, can be "hsaco"
 * \param fmap The map function information map of each function.
 * \param rocm_source Optional, rocm source file
 */
Module ROCMModuleCreate(
    std::string data,
    std::string fmt,
    std::unordered_map<std::string, FunctionInfo> fmap,
    std::string rocm_source,
    std::string assembly);
}  // namespace runtime
}  // namespace tvm
#endif  // TVM_RUNTIME_ROCM_ROCM_MODULE_H_


text:
#include <stdio.h>
#include <stdlib.h>

#include "cvode_impl.h"
#include "cvode_spils_impl.h"

/* Private constants */

#define ZERO   RCONST(0.0)
#define PT25   RCONST(0.25)
#define ONE    RCONST(1.0)

/* Algorithmic constants */

#define MAX_ITERS  3  /* max. number of attempts to recover in DQ J*v */

/* Readability Replacements */

#define lrw1      (cv_mem->cv_lrw1)
#define liw1      (cv_mem->cv_liw1)
#define tq        (cv_mem->cv_tq)
#define tn        (cv_mem->cv_tn)
#define h         (cv_mem->cv_h)
#define gamma     (cv_mem->cv_gamma)
#define nfe       (cv_mem->cv_nfe)
#define f         (cv_mem->cv_f)
#define user_data (cv_mem->cv_user_data)
#define ewt       (cv_mem->cv_ewt)
#define lmem      (cv_mem->cv_lmem)

#define ils_type  (cvspils_mem->s_type)
#define sqrtN     (cvspils_mem->s_sqrtN)
#define ytemp     (cvspils_mem->s_ytemp)
#define x         (cvspils_mem->s_x)
#define ycur      (cvspils_mem->s_ycur)
#define fcur      (cvspils_mem->s_fcur)
#define delta     (cvspils_mem->s_delta)
#define npe       (cvspils_mem->s_npe)
#define nli       (cvspils_mem->s_nli)
#define nps       (cvspils_mem->s_nps)
#define ncfl      (cvspils_mem->s_ncfl)
#define njtimes   (cvspils_mem->s_njtimes)
#define nfes      (cvspils_mem->s_nfes)

#define jtimesDQ  (cvspils_mem->s_jtimesDQ)
#define jtimes    (cvspils_mem->s_jtimes)
#define j_data    (cvspils_mem->s_j_data)

#define last_flag (cvspils_mem->s_last_flag)

/*
 * -----------------------------------------------------------------
 * OPTIONAL INPUT and OUTPUT
 * -----------------------------------------------------------------
 */

/*
 * -----------------------------------------------------------------
 * CVSpilsSetPrecType
 * -----------------------------------------------------------------
 */

int CVSpilsSetPrecType(void *cvode_mem, int pretype)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsSetPrecType", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsSetPrecType", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  /* Check for legal pretype */
  if ((pretype != PREC_NONE) && (pretype != PREC_LEFT) &&
      (pretype != PREC_RIGHT) && (pretype != PREC_BOTH)) {
    cvProcessError(cv_mem, CVSPILS_ILL_INPUT, "CVSPILS", "CVSpilsSetPrecType", MSGS_BAD_PRETYPE);
    return(CVSPILS_ILL_INPUT);
  }

  cvspils_mem->s_pretype = pretype;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsSetGSType
 * -----------------------------------------------------------------
 */

int CVSpilsSetGSType(void *cvode_mem, int gstype)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsSetGSType", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsSetGSType", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  if (ils_type != SPILS_SPGMR) {
    cvProcessError(cv_mem, CVSPILS_ILL_INPUT, "CVSPILS", "CVSpilsSetGSType", MSGS_BAD_LSTYPE);
    return(CVSPILS_ILL_INPUT);
  }

  /* Check for legal gstype */
  if ((gstype != MODIFIED_GS) && (gstype != CLASSICAL_GS)) {
    cvProcessError(cv_mem, CVSPILS_ILL_INPUT, "CVSPILS", "CVSpilsSetGSType", MSGS_BAD_GSTYPE);
    return(CVSPILS_ILL_INPUT);
  }

  cvspils_mem->s_gstype = gstype;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * Function : CVSpilsSetMaxl
 * -----------------------------------------------------------------
 */

int CVSpilsSetMaxl(void *cvode_mem, int maxl)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;
  int mxl;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsSetMaxl", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(NULL, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsSetMaxl", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  if (ils_type == SPILS_SPGMR) {
    cvProcessError(cv_mem, CVSPILS_ILL_INPUT, "CVSPILS", "CVSpilsSetMaxl", MSGS_BAD_LSTYPE);
    return(CVSPILS_ILL_INPUT);
  }

  mxl = (maxl <= 0) ? CVSPILS_MAXL : maxl;
  cvspils_mem->s_maxl = mxl;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsSetEpsLin
 * -----------------------------------------------------------------
 */

int CVSpilsSetEpsLin(void *cvode_mem, realtype eplifac)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsSetEpsLin", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsSetEpsLin", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  /* Check for legal eplifac */
  if(eplifac < ZERO) {
    cvProcessError(cv_mem, CVSPILS_ILL_INPUT, "CVSPILS", "CVSpilsSetEpsLin", MSGS_BAD_EPLIN);
    return(CVSPILS_ILL_INPUT);
  }

  cvspils_mem->s_eplifac = (eplifac == ZERO) ? CVSPILS_EPLIN : eplifac;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsSetPrecSetupFn
 * -----------------------------------------------------------------
 */

int CVSpilsSetPreconditioner(void *cvode_mem,
                             CVSpilsPrecSetupFn pset, CVSpilsPrecSolveFn psolve)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsSetPreconditioner", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsSetPreconditioner", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  cvspils_mem->s_pset = pset;
  cvspils_mem->s_psolve = psolve;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsSetJacTimesVecFn
 * -----------------------------------------------------------------
 */

int CVSpilsSetJacTimesVecFn(void *cvode_mem, CVSpilsJacTimesVecFn jtv)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsSetJacTimesVecFn", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsSetJacTimesVecFn", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  if (jtv != NULL) {
    jtimesDQ = FALSE;
    jtimes = jtv;
  } else {
    jtimesDQ = TRUE;
  }

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetWorkSpace
 * -----------------------------------------------------------------
 */

int CVSpilsGetWorkSpace(void *cvode_mem, long int *lenrwLS, long int *leniwLS)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;
  int maxl;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetWorkSpace", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetWorkSpace", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  switch(ils_type) {
  case SPILS_SPGMR:
    maxl = cvspils_mem->s_maxl;
    *lenrwLS = lrw1*(maxl + 5) + maxl*(maxl + 4) + 1;
    *leniwLS = liw1*(maxl + 5);
    break;
  case SPILS_SPBCG:
    *lenrwLS = lrw1 * 9;
    *leniwLS = liw1 * 9;
    break;
  case SPILS_SPTFQMR:
    *lenrwLS = lrw1*11;
    *leniwLS = liw1*11;
    break;
  }

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetNumPrecEvals
 * -----------------------------------------------------------------
 */

int CVSpilsGetNumPrecEvals(void *cvode_mem, long int *npevals)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetNumPrecEvals", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetNumPrecEvals", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *npevals = npe;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetNumPrecSolves
 * -----------------------------------------------------------------
 */

int CVSpilsGetNumPrecSolves(void *cvode_mem, long int *npsolves)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetNumPrecSolves", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetNumPrecSolves", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *npsolves = nps;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetNumLinIters
 * -----------------------------------------------------------------
 */

int CVSpilsGetNumLinIters(void *cvode_mem, long int *nliters)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetNumLinIters", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetNumLinIters", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *nliters = nli;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetNumConvFails
 * -----------------------------------------------------------------
 */

int CVSpilsGetNumConvFails(void *cvode_mem, long int *nlcfails)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetNumConvFails", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetNumConvFails", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *nlcfails = ncfl;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetNumJtimesEvals
 * -----------------------------------------------------------------
 */

int CVSpilsGetNumJtimesEvals(void *cvode_mem, long int *njvevals)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetNumJtimesEvals", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetNumJtimesEvals", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *njvevals = njtimes;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetNumRhsEvals
 * -----------------------------------------------------------------
 */

int CVSpilsGetNumRhsEvals(void *cvode_mem, long int *nfevalsLS)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetNumRhsEvals", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetNumRhsEvals", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *nfevalsLS = nfes;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetLastFlag
 * -----------------------------------------------------------------
 */

int CVSpilsGetLastFlag(void *cvode_mem, long int *flag)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;

  /* Return immediately if cvode_mem is NULL */
  if (cvode_mem == NULL) {
    cvProcessError(NULL, CVSPILS_MEM_NULL, "CVSPILS", "CVSpilsGetLastFlag", MSGS_CVMEM_NULL);
    return(CVSPILS_MEM_NULL);
  }
  cv_mem = (CVodeMem) cvode_mem;

  if (lmem == NULL) {
    cvProcessError(cv_mem, CVSPILS_LMEM_NULL, "CVSPILS", "CVSpilsGetLastFlag", MSGS_LMEM_NULL);
    return(CVSPILS_LMEM_NULL);
  }
  cvspils_mem = (CVSpilsMem) lmem;

  *flag = last_flag;

  return(CVSPILS_SUCCESS);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsGetReturnFlagName
 * -----------------------------------------------------------------
 */

char *CVSpilsGetReturnFlagName(long int flag)
{
  char *name;

  name = (char *)malloc(30*sizeof(char));

  switch(flag) {
  case CVSPILS_SUCCESS:
    sprintf(name,"CVSPILS_SUCCESS");
    break;
  case CVSPILS_MEM_NULL:
    sprintf(name,"CVSPILS_MEM_NULL");
    break;
  case CVSPILS_LMEM_NULL:
    sprintf(name,"CVSPILS_LMEM_NULL");
    break;
  case CVSPILS_ILL_INPUT:
    sprintf(name,"CVSPILS_ILL_INPUT");
    break;
  case CVSPILS_MEM_FAIL:
    sprintf(name,"CVSPILS_MEM_FAIL");
    break;
  case CVSPILS_PMEM_NULL:
    sprintf(name,"CVSPILS_PMEM_NULL");
    break;
  default:
    sprintf(name,"NONE");
  }

  return(name);
}

/*
 * -----------------------------------------------------------------
 * CVSPILS private functions
 * -----------------------------------------------------------------
 */

/* Additional readability Replacements */

#define pretype (cvspils_mem->s_pretype)
#define eplifac (cvspils_mem->s_eplifac)
#define maxl    (cvspils_mem->s_maxl)
#define psolve  (cvspils_mem->s_psolve)
#define P_data  (cvspils_mem->s_P_data)

/*
 * -----------------------------------------------------------------
 * CVSpilsAtimes
 * -----------------------------------------------------------------
 * This routine generates the matrix-vector product z = Mv, where
 * M = I - gamma*J. The product J*v is obtained by calling the jtimes
 * routine. It is then scaled by -gamma and added to v to obtain M*v.
 * The return value is the same as the value returned by jtimes --
 * 0 if successful, nonzero otherwise.
 * -----------------------------------------------------------------
 */

int CVSpilsAtimes(void *cvode_mem, N_Vector v, N_Vector z)
{
  CVodeMem   cv_mem;
  CVSpilsMem cvspils_mem;
  int jtflag;

  cv_mem = (CVodeMem) cvode_mem;
  cvspils_mem = (CVSpilsMem) lmem;

  jtflag = jtimes(v, z, tn, ycur, fcur, j_data, ytemp);
  njtimes++;
  if (jtflag != 0) return(jtflag);

  N_VLinearSum(ONE, v, -gamma, z, z);

  return(0);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsPSolve
 * -----------------------------------------------------------------
 * This routine interfaces between the generic Sp***Solve routine
 * (within the SPGMR, SPBCG, or SPTFQMR solver) and the
 * user's psolve routine.  It passes to psolve all required state
 * information from cvode_mem.  Its return value is the same as that
 * returned by psolve. Note that the generic SP*** solver guarantees
 * that CVSpilsPSolve will not be called in the case in which
 * preconditioning is not done. This is the only case in which the
 * user's psolve routine is allowed to be NULL.
 * -----------------------------------------------------------------
 */

int CVSpilsPSolve(void *cvode_mem, N_Vector r, N_Vector z, int lr)
{
  CVodeMem   cv_mem;
  CVSpilsMem cvspils_mem;
  int retval;

  cv_mem = (CVodeMem) cvode_mem;
  cvspils_mem = (CVSpilsMem)lmem;

  /* This call is counted in nps within the CVSp***Solve routine */
  retval = psolve(tn, ycur, fcur, r, z, gamma, delta, lr, P_data, ytemp);

  return(retval);
}

/*
 * -----------------------------------------------------------------
 * CVSpilsDQJtimes
 * -----------------------------------------------------------------
 * This routine generates a difference quotient approximation to
 * the Jacobian times vector f_y(t,y) * v. The approximation is
 * Jv = vnrm[f(y + v/vnrm) - f(y)], where vnrm = (WRMS norm of v) is
 * input, i.e. the WRMS norm of v/vnrm is 1.
 * -----------------------------------------------------------------
 */

int CVSpilsDQJtimes(N_Vector v, N_Vector Jv, realtype t,
                    N_Vector y, N_Vector fy,
                    void *data, N_Vector work)
{
  CVodeMem cv_mem;
  CVSpilsMem cvspils_mem;
  realtype sig, siginv;
  int iter, retval;

  /* data is cvode_mem */
  cv_mem = (CVodeMem) data;
  cvspils_mem = (CVSpilsMem) lmem;

  /* Initialize perturbation to 1/||v|| */
  sig = ONE/N_VWrmsNorm(v, ewt);

  for (iter=0; iter<MAX_ITERS; iter++) {

    /* Set work = y + sig*v */
    N_VLinearSum(sig, v, ONE, y, work);

    /* Set Jv = f(tn, y+sig*v) */
    retval = f(t, work, Jv, user_data);
    nfes++;
    if (retval == 0) break;
    if (retval < 0)  return(-1);

    sig *= PT25;
  }

  if (retval > 0) return(+1);

  /* Replace Jv by (Jv - fy)/sig */
  siginv = ONE/sig;
  N_VLinearSum(siginv, Jv, -siginv, fy, Jv);

  return(0);
}


text:
import greenlet
import time
import curtsies.events as events

from bpython.repl import Interaction as BpythonInteraction

from bpython.curtsiesfrontend.manual_readline import char_sequences as rl_char_sequences

class StatusBar(BpythonInteraction):
    """StatusBar and Interaction for Repl

    Passing of control back and forth between calls that use interact api
    (notify, confirm, file_prompt) like bpython.Repl.write2file and events
    on the main thread happens via those calls and self.wait_for_request_or_notify.

    Calling one of these three is required for the main thread to regain control!

    This is probably a terrible idea, and better would be rewriting this
    functionality in a evented or callback style, but trying to integrate
    bpython.Repl code.
    """
    def __init__(self, initial_message='', permanent_text="", stuff_a_refresh_request=lambda: None):
        self._current_line = ''
        self.cursor_offset_in_line = 0
        self.in_prompt = False
        self.in_confirm = False
        self.waiting_for_refresh = False
        self.prompt = ''
        self._message = initial_message
        self.message_start_time = time.time()
        self.message_time = 3
        self.permanent_text = permanent_text
        self.main_greenlet = greenlet.getcurrent()
        self.request_greenlet = None
        self.stuff_a_refresh_request = stuff_a_refresh_request

    @property
    def has_focus(self):
        return self.in_prompt or self.in_confirm or self.waiting_for_refresh

    def message(self, msg):
        self.message_start_time = time.time()
        self._message = msg

    def _check_for_expired_message(self):
        if self._message and time.time() > self.message_start_time + self.message_time:
            self._message = ''

    def process_event(self, e):
        """Returns True if shutting down"""
        assert self.in_prompt or self.in_confirm or self.waiting_for_refresh
        if isinstance(e, events.RefreshRequestEvent):
            self.waiting_for_refresh = False
            self.request_greenlet.switch()
        elif e in rl_char_sequences:
            self.cursor_offset_in_line, self._current_line = rl_char_sequences[e](self.cursor_offset_in_line, self._current_line, e)
        elif e == "":
            raise KeyboardInterrupt()
        elif e == "":
            raise SystemExit()
        elif self.in_prompt and e in ("\n", "\r"):
            line = self._current_line
            self.escape()
            self.request_greenlet.switch(line)
        elif self.in_confirm:
            if e in ('y', 'Y'):
                self.request_greenlet.switch(True)
            else:
                self.request_greenlet.switch(False)
            self.escape()
        elif e in ['\x1b', '\t', '\x1b\t', '\x1b\x1b']:
            self.request_greenlet.switch(False)
            self.escape()
        else: # add normal character
            self._current_line = (self._current_line[:self.cursor_offset_in_line] +
                                 e +
                                 self._current_line[self.cursor_offset_in_line:])
            self.cursor_offset_in_line += 1

    def escape(self):
        """unfocus from statusbar, clear prompt state, wait for notify call"""
        self.in_prompt = False
        self.in_confirm = False
        self.prompt = ''
        self._current_line = ''

    @property
    def current_line(self):
        self._check_for_expired_message()
        if self.in_prompt:
            return self.prompt + self._current_line
        if self.in_confirm:
            return self.prompt
        if self._message:
            return self._message
        return self.permanent_text

    # interaction interface - should be called from other greenlets
    def notify(self, msg, n=3):
        self.request_greenlet = greenlet.getcurrent()
        self.message_time = n
        self.message(msg)
        self.waiting_for_refresh = True
        self.stuff_a_refresh_request()
        self.main_greenlet.switch(msg)

    # below Really ought to be called from greenlets other than main because they block
    def confirm(self, q):
        """Expected to return True or False, given question prompt q"""
        self.request_greenlet = greenlet.getcurrent()
        self.prompt = q
        self.in_confirm = True
        return self.main_greenlet.switch(q)
    def file_prompt(self, s):
        """Expected to return a file name, given """
        self.request_greenlet = greenlet.getcurrent()
        self.prompt = s.replace('Esc', 'Tab')
        self.in_prompt = True
        result = self.main_greenlet.switch(s)
        return result


text:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="grid_column_count">4</integer>
</resources>


text:
<?php
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

require_once ('cmis_repository_wrapper.php');
function list_objs($objs)
{
    foreach ($objs->objectList as $obj)
    {
        if ($obj->properties['cmis:baseTypeId'] == "cmis:document")
        {
            print "Document: " . $obj->properties['cmis:name'] . "\n";
        }
        elseif ($obj->properties['cmis:baseTypeId'] == "cmis:folder")
        {
            print "Folder: " . $obj->properties['cmis:name'] . "\n";
        } else
        {
            print "Unknown Object Type: " . $obj->properties['cmis:name'] . "\n";
        }
    }
}
function check_response($client)
{
    if ($client->getLastRequest()->code > 299)
    {
        print "There was a problem with this request!\n";
        exit (255);
    }
}

$repo_url = $_SERVER["argv"][1];
$repo_username = $_SERVER["argv"][2];
$repo_password = $_SERVER["argv"][3];
$repo_folder = $_SERVER["argv"][4];
$repo_new_folder = $_SERVER["argv"][5];

$client = new CMISService($repo_url, $repo_username, $repo_password);
print "Connected\n";
$myfolder = $client->getObjectByPath($repo_folder);
print "Got Folder\n";
check_response($client);
if ($myfolder->properties['cmis:baseTypeId'] != "cmis:folder")
{
    print "NOT A FOLDER!\n";
    exit (255);
}

$my_new_folder = $client->createFolder($myfolder->id, $repo_new_folder);
check_response($client);

$obj_doc = $client->createDocument($my_new_folder->id, "TextFile.txt", array (), "THIS IS A NEW DOCUMENT", "text/plain");
check_response($client);

$obj_del = $client->createDocument($my_new_folder->id, "TextFileDel.txt", array (), "THIS IS A NEW DOCUMENT To Be Deleted", "text/plain");
check_response($client);

print "FOLDER AFTER CREATES\n=============================================\n";
$objs = $client->getChildren($my_new_folder->id);
check_response($client);
list_objs($objs);
print "=============================================\n\n";

$delContent = $client->getContentStream($obj_del->id);
echo "DEL CONTENT\n";
print $delContent . "\n";
print "\n";

echo "DELETEING " . $obj_del->properties['cmis:name'] . "\n";
$client->deleteObject($obj_del->id);
print "\n";

print "FOLDER AFTER DELETE\n=============================================\n";
$objs = $client->getChildren($my_new_folder->id);
check_response($client);
list_objs($objs);
print "=============================================\n\n";

$sub_folder = $client->createFolder($my_new_folder->id, "SUB_FOLDER");
$client->moveObject($obj_doc->id, $sub_folder->id, $my_new_folder->id);

print "FOLDER AFTER MOVE\n=============================================\n";
$objs = $client->getChildren($my_new_folder->id);
check_response($client);
list_objs($objs);
print "=============================================\n\n";

print "SUB-FOLDER AFTER MOVE\n=============================================\n";
$objs = $client->getChildren($sub_folder->id);
check_response($client);
list_objs($objs);
print "=============================================\n\n";


text:
package com.rejasupotaro.octodroid;

public class ConnectivityObserver {
    public static boolean isConnect() {
        return true; // TODO
    }
}


text:
import * as stateModule from "@nteract/types";

import { comms as commsReducer } from "../../../../src/core/entities/comms";

import Immutable from "immutable";

describe("registerCommTarget", () => {
  test("sets comm targets", () => {
    const state = stateModule.makeCommsRecord();

    const action = {
      type: "REGISTER_COMM_TARGET",
      name: "steve",
      handler: "?????"
    };

    const nextState = commsReducer(state, action);
    expect(nextState).toEqual(state.setIn(["targets", "steve"], "?????"));
  });
});

describe("comm reducers", () => {
  test("process comm_open and comm_message actions", () => {
    const state = stateModule.makeCommsRecord();
    const action = {
      type: "COMM_OPEN",
      target_module: "reducers",
      target_name: "setIn",
      data: { a: 2 },
      comm_id: 100
    };

    const nextState = commsReducer(state, action);
    expect(nextState.getIn(["info", 100]).toJS()).toEqual({
      target_module: "reducers",
      target_name: "setIn"
    });

    expect(nextState.getIn(["models", 100]).toJS()).toEqual({ a: 2 });

    const actionMessage = {
      type: "COMM_MESSAGE",
      data: { path: ["a"], value: 3 },
      comm_id: 100
    };

    const afterMessageState = commsReducer(nextState, actionMessage);

    expect(afterMessageState.getIn(["models", 100]).toJS()).toEqual({
      a: 3
    });
  });
  test("does a straight replacement for unknown comm messages", () => {
    const state = stateModule.makeCommsRecord();

    // Note that we're not starting with a COMM_OPEN in order to process
    // a COMM_MESSAGE that hasn't been "opened"
    const action = {
      type: "COMM_MESSAGE",
      data: { x: 5113, bagels: true },
      comm_id: 101
    };

    const nextState = commsReducer(state, action);

    expect(nextState.getIn(["models", 101]).toJS()).toEqual({
      bagels: true,
      x: 5113
    });
  });
  test("handles update messages for ipywidgets correctly", () => {
    const state = stateModule.makeCommsRecord({
      models: Immutable.Map({
        test: Immutable.Map({
          state: Immutable.Map({
            x: 5112,
            y: "test"
          })
        })
      })
    });

    // Note that we're not starting with a COMM_OPEN in order to process
    // a COMM_MESSAGE that hasn't been "opened"
    const action = {
      type: "COMM_MESSAGE",
      data: { method: "update", state: { x: 5113, bagels: true } },
      comm_id: "test"
    };

    const nextState = commsReducer(state, action);

    expect(nextState.getIn(["models", "test", "state"]).toJS()).toEqual({
      bagels: true,
      x: 5113,
      y: "test"
    });
  });
});


text:
Job Categories listing of all job categories

		<a href="<?php echo base_url(); ?>aircraft/add" class="btn btn-primary"> Add New Job Category

<a href="<?php echo base_url(); ?>dashboard"> Dashboard

Job Categories

							ID
							Category Name
							Description
							Status
							Actions

<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.9.4/css/jquery.dataTables.css" />
<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>assets/js/plugins/datatables/DT_bootstrap.css" />


text:
package com.jovianware.jv8;

/**
 * An instance of V8Function has a v8::Function equivalent on the native side.
 * The link between those structures is stored in a map inside v8.cpp.
 */
public class V8Function extends V8Object {

  private long handle = 0;

  /**
   * Constructs a function with a native JS Function pointer.
   * @param handle A pointer to Persistent<Function>
   */
  private V8Function( long handle ){
    this.handle = handle;
  }

  /**
   * Calls the JS function with args as arguments.
   *
   * @param args
   *
   * @return null
   */
  public V8Value call(V8Value[] args) {
    return null;
  }

  /**
   * Returns whether the V8Function is bound to a v8::Function yet
   * It can be false if we instantiate V8Function with a String
   * and that jv8 hasn't created the v8::Function yet.
   */
  public boolean isLinked(){
    return handle != 0;
  }

  /**
   * Notifies C++ that it can release the handler.
   */
  native protected void dispose();

  @Override
  protected void finalize() throws Throwable {
    dispose();
  }

  @Override
  public boolean isFunction(){
    return true;
  }

  @Override
  public int getTypeID() {
    return V8Value.TYPE_FUNCTION;
  }
}


text:
package com.android.tools.idea.editors.gfxtrace.rpc;

import com.android.tools.rpclib.binary.Decoder;
import com.android.tools.rpclib.binary.Encoder;
import com.android.tools.rpclib.binary.ObjectTypeID;
import org.jetbrains.annotations.NotNull;

import java.io.IOException;

public class ArrayInfo implements TypeInfo {
  String myName;
  TypeKind myKind;
  TypeInfo myElementType;

  // Constructs a default-initialized {@link ArrayInfo}.
  public ArrayInfo() {
  }

  // Constructs and decodes a {@link ArrayInfo} from the {@link Decoder} d.
  public ArrayInfo(Decoder d) throws IOException {
    decode(d);
  }

  @Override
  public String getName() {
    return myName;
  }

  @Override
  public void setName(String v) {
    myName = v;
  }

  @Override
  public TypeKind getKind() {
    return myKind;
  }

  @Override
  public void setKind(TypeKind v) {
    myKind = v;
  }

  public TypeInfo getElementType() {
    return myElementType;
  }

  public void setElementType(TypeInfo v) {
    myElementType = v;
  }

  @Override
  public void encode(@NotNull Encoder e) throws IOException {
    ObjectFactory.encode(e, this);
  }

  @Override
  public void decode(@NotNull Decoder d) throws IOException {
    ObjectFactory.decode(d, this);
  }

  @Override
  public ObjectTypeID type() {
    return ObjectFactory.ArrayInfoID;
  }
}


text:
layout: post
title: 'dotJS 2015 : compte-rendu d''un astronaute'
lang: fr
permalink: /fr/dotjs-2015-on-y-etait-encore/
excerpt: Cette année encore, Eleven Labs et sa bande d'astronautes étaient partenaires de la http://www.dotjs.io version 2015.
authors:
    - trughooputh
date: '2015-12-22 16:44:57 +0100'
date_gmt: '2015-12-22 15:44:57 +0100'
categories:
    - Javascript
tags:
    - dotJS
    - conférence
    - http
    - async
    - hyperdrive
    - lightning
    - talk
    - reaction
    - angular
    - node
---

Cette année encore, Eleven Labs et sa bande d'astronautes étaient partenaires de la [dotJS](http://www.dotjs.io/){:rel="nofollow noreferrer"} version 2015.

![wilson](https://c1.staticflickr.com/1/593/23547337312_1589d2613a_h.jpg){:rel="nofollow noreferrer"}

![](https://c1.staticflickr.com/1/759/23027109824_359b4a1a60_h.jpg)![](https://c1.staticflickr.com/1/626/23653922455_ecf5d0c6b0_k.jpg){:rel="nofollow noreferrer"}

Alors oui, mais la dotJS c'est quoi déjà ?

Il s'agit ni plus ni moins de la plus grande conférence Javascript d'Europe. Le but étant de se rassembler afin de présenter l'avenir du Javascript, de voir l'avancement de certaines technologies ou fonctionnalités, et de troller tous ensemble.

dotJS fait partie des dotConferences, dont mon collègue astronaute Martin Cadoux nous explique très clairement le concept dans [son article sur dotCSS](https://blog.eleven-labs.com/les-dotcss-2015-cetait-bien/){:rel="nofollow noreferrer"} :

> "dotConference une série de conférences qui vise à proposer des présentations de haute volée en lien avec des technologies ou des sujets particuliers. On en recense six aujourd'hui, dont les dotJS qui se sont déroulés lundi dernier, mais aussi les dotGo, et bientôt les dotScale. Ces rassemblements ont lieu exclusivement à Paris, mais attirent néanmoins une audience venue en large partie de l'étranger."

C'était pour ma part ma première participation à la dotJS. Ayant eu des retours assez mitigés des dernières éditions, malgré de nombreuses personnalités connues du monde JS (Addy Osmani, Jeremy Ashkenas...), j'étais impatient de voir par moi-même cette édition 2015.

Une grande partie des participants venant de toute l'Europe, voir du Monde (et même d'autre galaxie comme notre Wilson !), l'intégralité des conférences se sont déroulées en anglais.
Le programme est assez alléchant: ES6, Node, WebRTC... On retrouve du beau monde, comme Brendan Eich (Inventeur de JavaScript) ou encore Eric Schoffstall (Créateur de Gulp). Mais c'est également l'occasion de découvrir des contributeurs de la communauté moins connus. C'est donc le moment idéal pour rentabiliser votre abonnement WallStreet English !

> Javascripters at [\#dotjs](https://twitter.com/hashtag/dotjs?src=hash) coffee break! Tabs vs spaces indentation discussion was not going to end well ⊙\_☉[@dotjs](https://twitter.com/dotJS) [pic.twitter.com/ivkvFMQjtM](https://t.co/ivkvFMQjtM){:rel="nofollow noreferrer"}
>
> — gerardsans (@gerardsans) [7 Décembre 2015](https://twitter.com/gerardsans/status/673809192642220033){:rel="nofollow noreferrer"}

Pour cette 4ème édition, la communauté JS et plus de 1000 développeurs se sont donc retrouvés le 7 décembre à partir de 9h au coeur du 9eme arrondissement de Paris, plus exactement au "Théatre de Paris", l'un des plus beaux théâtre de capitale.

[https://c2.staticflickr.com/6/5667/23025882214_242cee679a_k.jpg](https://c2.staticflickr.com/6/5667/23025882214_242cee679a_k.jpg){:rel="nofollow noreferrer"}

------------------------------------------------------------------------

L'événement s'étalant sur toute la journée, voici donc un tour d'horizon rapide des différents talks.

![](https://c1.staticflickr.com/1/738/23656479935_b63777fc06_k.jpg){:rel="nofollow noreferrer"}

**Modern Async JS** par [*Christophe Porteneuve*](https://twitter.com/porteneuve){:rel="nofollow noreferrer"}
---------------------------------------------------------------------------------

Christophe Porteneuve nous présente ici plusieurs problématiques liées à l'utilisation de callback et du code asynchrone. Le fameux "Callbackhell", qui comme son nom l'indique, peut vite devenir infernal, autant sur la compréhension que sur la maintenabilité du code. Celui-ci étant parfois difficile à prendre en main, les générateurs et les promises peuvent déjà nous y aider, en attendant les [fonctionnalités await/async d'ES7](https://jakearchibald.com/2014/es7-async-functions/){:rel="nofollow noreferrer"}.

[Slides](http://tdd.github.io/dotjs-async/){:rel="nofollow noreferrer"}

**Hyperdrive: p2p hash sharing tool** par [*Mathias Buus*](https://twitter.com/mafintosh){:rel="nofollow noreferrer"}
-----------------------------------------------------------------------------------------

Mathias Buus, gros contributeur sur npm (Pas loin de 400 modules !), nous présente son dernier module: Hyperdrive. Un module de partage de données via navigateur avec un système de hashage comme l'utilise git.

Dépôt Github du projet : [https://github.com/mafintosh/hyperdrive](https://github.com/mafintosh/hyperdrive){:rel="nofollow noreferrer"}

[Slides](https://github.com/mafintosh/slides/blob/gh-pages/dotjs-2015/README.md){:rel="nofollow noreferrer"}

**Dealing with garbage** par [*Samuel Saccone*](https://twitter.com/samccone){:rel="nofollow noreferrer"}
-----------------------------------------------------------------------------

Samuel Saccone, développeur chez Google, aborde ensuite le sujet épineux des fuites mémoire et des performances (Illustré par quelques screenshots assez sympathiques). S'en suit une démonstration de l'utilisation de la console Chrome poussée, afin de détecter/fixer ces problèmes. Puis de la présentation de son outil de détection de fuite mémoire: [Drool](https://github.com/samccone/drool){:rel="nofollow noreferrer"}.

Présentation drôle et très bien animée pour un sujet pas super passionnant de premier abord.

[Slides](https://docs.google.com/presentation/d/1uom69F6NGURHhrox1Ma50NW1nOKqdxRr0dKDNENwi6Y/edit#slide=id.gd530a4dd9_0_54){:rel="nofollow noreferrer"}

À lire également, une présentation très intéressante d'Addy Osmani sur l'utilisation de la console Chrome [ici](http://addyosmani.com/blog/chrome-devtools-deepdive/){:rel="nofollow noreferrer"}.

**HTTP/2 is here, now let's make it easy** par [*Rebecca Murphy*](https://twitter.com/rmurphey){:rel="nofollow noreferrer"}
-----------------------------------------------------------------------------------------------

Constat sur HTTP/2 aujourd'hui: Ça à l'air cool, mais on ne s'en sert pas. Le principal problème étant la compatibilité des serveurs/hébergeurs/navigateurs, qui ne facilitent pas son utilisation pour le moment.   J'avoue ne pas avoir compris la totalité de la présentation. Si vous en savez plus, je suis preneur ;)

[Slides](https://speakerdeck.com/rmurphey/2-is-here-now-lets-make-it-easy){:rel="nofollow noreferrer"}

**LUNCH BREAK !**

![](https://c2.staticflickr.com/6/5725/23359640130_8bff265e02_h.jpg) ![](http://i.giphy.com/3GCLlNvCg61ji.gif){:rel="nofollow noreferrer"}

Lightning talks
---------------

Après la pause déjeuner, on reprend en douceur avec une série de "Lightining talks" au format court de 5-10 minutes, dont 2 qui ont particulièrement retenus mon attention :

##### **Publishing ES6 modules today** par [*Laurent Voyer*](https://twitter.com/rmurphey){:rel="nofollow noreferrer"}

Laurent Voyer partage avec nous les meilleurs moyens de publier des modules ES6. La meilleure solution étant de pusher nos modules sur npm ou sur un CDN (avec une retro-compatibilité ES5). Un peu court de résumer tout cela en 10min, mais le principe mérite cependant qu'on s'y intéresse plus longuement.

[Slides](http://slides.com/vvo/authoring-and-publishing-es6-modules-today-dotjs-2015){:rel="nofollow noreferrer"}

##### **Mobile debugging with VorlonJS** par [*Etienne Margraff*](https://twitter.com/@meulta){:rel="nofollow noreferrer"}

Etienne Margraff nous présente son outil de debug cross browser: VorlonJS
Après avoir préalablement ajouté un script à notre application, il est possible de debugger depuis une interface VorlonJS à distance. Prometteur. Prochaine étape, le debug d'application NodeJS.

[Slides](http://fr.slideshare.net/emargraff/dotjs-lightning-talk-vorlonjs){:rel="nofollow noreferrer"}

**Practical ES6** par [*Nicolas Bevacqua*](https://twitter.com/nzgb){:rel="nofollow noreferrer"}
--------------------------------------------------------------------

Tour d'horizon sur les fondamentaux de ES6, avec une liste d'exemples expliqués de la nouvelle mouture d'EcmaScript. Rien de vraiment nouveau mais une piqûre de rappel nécessaire, détaillée dans [son article](https://ponyfoo.com/articles/es6){:rel="nofollow noreferrer"}.
Si vous souhaitez d'ores et déjà utilisez ES6 dans vos projets, des outils comme Babel vous aideront à prendre en main la nouvelle syntaxe le temps de sa mise en place progressive.

[Slides](https://speakerdeck.com/bevacqua/practical-es6-for-the-modern-javascript-tinkerer){:rel="nofollow noreferrer"}

**Reactive Javascript** par [*André Staltz*](https://twitter.com/andrestaltz){:rel="nofollow noreferrer"}
-----------------------------------------------------------------------------

Sans doute l'une des présentations les plus intéressantes de la journée.
André Staltz y présente de manière très simple et précise la programmation reactive au travers de [RxJS](https://github.com/Reactive-Extensions/RxJS){:rel="nofollow noreferrer"}. Ne connaissant pas le sujet, j'ai trouvé l'approche claire et les exemples particulièrement parlants, notamment le cycle de vie de deux variables liées et comment l'une affecterait l'autre, via la fonctionnalité "Observable", sorte de promise améliorée.
Je vous incite vivement à regarder tout cela de plus près.
Une introduction est disponible [ici](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) et quelques vidéos [ici](https://egghead.io/series/introduction-to-reactive-programming){:rel="nofollow noreferrer"}, afin d'approfondir le sujet.

Pendant ce temps-là, Wilson se promène un peu.

> Just made a new friend from [@Eleven\_Labs](https://twitter.com/Eleven_Labs) [\#dotJS](https://twitter.com/hashtag/dotJS?src=hash) [pic.twitter.com/dV5PjBm0qA](https://t.co/dV5PjBm0qA) — Adrien Trauth (@Nioufe) [7 Décembre 2015](https://twitter.com/Nioufe/status/673788757640921088){:rel="nofollow noreferrer"}

**WebRTC** par [*Eric Schoffstall*](https://twitter.com/contrahacks){:rel="nofollow noreferrer"}
--------------------------------------------------------------------

WebRTC est en passe de devenir un nouveau standard pour tout ce qui est connexion peer-to-peer entre navigateurs sans passer par un serveur, celui-ci étant assez attendu par la communauté vu les possibilités qu'il propose (Communication par voix ou vidéo par exemple). Cependant, seuls Chrome, Firefox et Opera proposent cette implémentation ([Voir en détails](http://caniuse.com/#search=webrtc)){:rel="nofollow noreferrer"}.
Après avoir travaillé sur la compatibilité sur chaque navigateur (y compris IE9 et mobile) et en regroupant les différentes solutions apportées sur chacune des plateformes, Eric annonce la création de sa nouvelle librairie [rtc-everywhere](https://github.com/contra/rtc-everywhere){:rel="nofollow noreferrer"}. Magique !

> "If you decided your stuff only works on Chrome Desktop, you're not making a product you're building a demo" - [@contrahacks](https://twitter.com/contrahacks) at [\#dotJS](https://twitter.com/hashtag/dotJS?src=hash){:rel="nofollow noreferrer"}
>
> — ChristophePorteneuve (@porteneuve) [7 Décembre 2015](https://twitter.com/porteneuve/status/673876828663230465){:rel="nofollow noreferrer"}

En bonus: Eric postule également au poste de maire de San Francisco...

![](http://i.giphy.com/KTHFxuEtrVoGI.gif){:rel="nofollow noreferrer"}

**Jade > Pug** par [*Forbes Lindesay*](https://twitter.com/forbeslindesay){:rel="nofollow noreferrer"}
-----------------------------------------------------------------------------

Forbes Lindesay, développeur chez Facebook, nous présente le fonctionnement de son moteur de template HTML "Jade" (Renommé "Pug" pour des questions légales, il me semble). Nous utilisons aujourd'hui de plus en plus ce genre d'outils appelé "transpiler", notamment Babel ou CoffeeScript, et il est toujours intéressant de comprendre comment ce genre de parser fonctionne. Il est également possible de créer ses propres plugins avec un système de pipe, une bonne nouvelle pour ceux qui l'utilisent.

**Teaching Kids to Code** par [*Tim Caswell et son fils de 9 ans*](https://twitter.com/creationix){:rel="nofollow noreferrer"}
--------------------------------------------------------------------------------------------------

Présentation amusante du développement pour plus jeunes, et sur ce qui est possible en dehors d'un navigateur web.

[Slides](https://gist.github.com/creationix/507719a418be365c7631){:rel="nofollow noreferrer"}

**Pocked sized JS** par [*Henrik Joreteg*](https://twitter.com/HenrikJoreteg){:rel="nofollow noreferrer"}
-----------------------------------------------------------------------------

Dans un contexte de plus en plus "Mobile-first", Henrik Joreteg nous incite ici vivement à penser "Mobile everywhere". Les performances de nos devices et la qualité de notre connexion lorsque nous développons nos applications n'étant pas forcement identiques à celles de l'utilisateur final.

> if you want to write fast software, use a slow computer
>
> — Dominic Tarr (@dominictarr) [8 Août 2015](https://twitter.com/dominictarr/status/629992939738005504){:rel="nofollow noreferrer"}

Une présentation plus théorique que technique mais certainement pas moins intéressante, qui remet en question notre façon de concevoir nos applications afin de rendre l'expérience utilisateur la plus agréable possible.
Je vous incite vivement à voir sa présentation, une très bonne surprise !

[Slides](https://slides.joreteg.com/dotjs/){:rel="nofollow noreferrer"}

**No title** par [*Brendan Eich*](https://twitter.com/brendaneich){:rel="nofollow noreferrer"}
------------------------------------------------------------------

Enfin pour terminer la journée en beauté, Brendan Eich, le créateur de Javascript. A vrai dire, il était assez compliqué de suivre, tellement les sujets étaient nombreux: FirefoxOS, Tizen, asm.js...
S'en suivit une petite démonstration de jeux Facebook développés en Javascript (Notamment un avec des poulets tueurs de zombies…), le résultat est assez impressionnant par sa fluidité.
J'attendais un peu plus de cette présentation cependant.

> So impressed when [@BrendanEich](https://twitter.com/BrendanEich) demo'ed what web assembly is capable of in [\#firefox](https://twitter.com/hashtag/firefox?src=hash) [\#wasm](https://twitter.com/hashtag/wasm?src=hash) [\#dotjs](https://twitter.com/hashtag/dotjs?src=hash) [pic.twitter.com/sTGDdkHKMr](https://t.co/sTGDdkHKMr) — Perry Mitchell (@perry\_mitchell) [8 Décembre 2015](https://twitter.com/perry_mitchell/status/674242616096104448){:rel="nofollow noreferrer"}

Conclusion
----------

Ce fut pour ma part une très bonne expérience. L'événement fut très bien organisé, les conférences étaient de qualité, les sujets variés et l'ambiance y était très bonne.
C'est avec plaisir qu'on y retrouve également certaines têtes.
Pas de réelle révolution cependant, le but de ce rassemblement semblait plus d'obtenir une orientation de la communauté.
Petite frustration tout de même sur le fait de ne pas pouvoir poser de questions directement en fin de présentation, mais cela est sûrement dû à un souci de logistique.
L'objectif de ce post étant de survoler le large panel de sujets abordés, je vous laisse approfondir les plus intéressants.

![](http://i.giphy.com/kRWFIgO75okHm.gif){:rel="nofollow noreferrer"}

Les photos de l'événement sont disponibles sur le [compte Flickr](https://www.flickr.com/photos/97226415@N08/sets/72157661549425069/){:rel="nofollow noreferrer"}

Compte Twitter : https://twitter.com/dotJS


text:
#ifndef REALM_STRING_HPP
#define REALM_STRING_HPP

#include <cstddef>
#include <algorithm>
#include <string>
#include <ostream>
#include <cstring>

#include <cfloat>
#include <math.h>

#include <realm/util/features.h>
#include <realm/util/optional.hpp>
#include <realm/utilities.hpp>
#include <realm/null.hpp>
#include <realm/owned_data.hpp>

namespace realm {

/// A reference to a chunk of character data.
///
/// An instance of this class can be thought of as a type tag on a region of
/// memory. It does not own the referenced memory, nor does it in any other way
/// attempt to manage the lifetime of it.
///
/// A null character inside the referenced region is considered a part of the
/// string by Realm.
///
/// For compatibility with C-style strings, when a string is stored in a Realm
/// database, it is always followed by a terminating null character, regardless
/// of whether the string itself has internal null characters. This means that
/// when a StringData object is extracted from Realm, the referenced region is
/// guaranteed to be followed immediately by an extra null character, but that
/// null character is not inside the referenced region. Therefore, all of the
/// following forms are guaranteed to return a pointer to a null-terminated
/// string:
///
/// \code{.cpp}
///
///   group.get_table_name(...).data()
///   table.get_column_name().data()
///   table.get_string(...).data()
///   table.get_mixed(...).get_string().data()
///
/// \endcode
///
/// Note that in general, no assumptions can be made about what follows a string
/// that is referenced by a StringData object, or whether anything follows it at
/// all. In particular, the receiver of a StringData object cannot assume that
/// the referenced string is followed by a null character unless there is an
/// externally provided guarantee.
///
/// This class makes it possible to distinguish between a 'null' reference and a
/// reference to the empty string (see is_null()).
///
/// \sa BinaryData
/// \sa Mixed
class StringData {
public:
    /// Construct a null reference.
    StringData() noexcept;

    /// If \a data is 'null', \a size must be zero.
    StringData(const char* data, size_t size) noexcept;

    template<class T, class A>
    StringData(const std::basic_string<char, T, A>&);

    template<class T, class A>
    operator std::basic_string<char, T, A>() const;

    // StringData does not store data, callers must manage their own strings.
    template<class T, class A>
    StringData(std::basic_string<char, T, A>&&) = delete;

    template<class T, class A>
    StringData(const util::Optional<std::basic_string<char, T, A>>&);

    StringData(const null&) noexcept;

    /// Initialize from a zero terminated C style string. Pass null to construct
    /// a null reference.
    StringData(const char* c_str) noexcept;

    char operator[](size_t i) const noexcept;

    const char* data() const noexcept;
    size_t size() const noexcept;

    /// Is this a null reference?
    ///
    /// An instance of StringData is a null reference when, and only when the
    /// stored size is zero (size()) and the stored pointer is the null pointer
    /// (data()).
    ///
    /// In the case of the empty string, the stored size is still zero, but the
    /// stored pointer is **not** the null pointer. It could for example point
    /// to the empty string literal. Note that the actual value of the pointer
    /// is immaterial in this case (as long as it is not zero), because when the
    /// size is zero, it is an error to dereference the pointer.
    ///
    /// Conversion of a StringData object to `bool` yields the logical negation
    /// of the result of calling this function. In other words, a StringData
    /// object is converted to true if it is not the null reference, otherwise
    /// it is converted to false.
    bool is_null() const noexcept;

    friend bool operator==(const StringData&, const StringData&) noexcept;
    friend bool operator!=(const StringData&, const StringData&) noexcept;

    //@{
    /// Trivial bytewise lexicographical comparison.
    friend bool operator<(const StringData&, const StringData&) noexcept;
    friend bool operator>(const StringData&, const StringData&) noexcept;
    friend bool operator<=(const StringData&, const StringData&) noexcept;
    friend bool operator>=(const StringData&, const StringData&) noexcept;
    //@}

    bool begins_with(StringData) const noexcept;
    bool ends_with(StringData) const noexcept;
    bool contains(StringData) const noexcept;

    //@{
    /// Undefined behavior if \a n, \a i, or <tt>i+n</tt> is greater than
    /// size().
    StringData prefix(size_t n) const noexcept;
    StringData suffix(size_t n) const noexcept;
    StringData substr(size_t i, size_t n) const noexcept;
    StringData substr(size_t i) const noexcept;
    //@}

    template<class C, class T>
    friend std::basic_ostream<C,T>& operator<<(std::basic_ostream<C,T>&, const StringData&);

    explicit operator bool() const noexcept;

private:
    const char* m_data;
    size_t m_size;
};

// Implementation:

inline StringData::StringData() noexcept:
    m_data(nullptr),
    m_size(0)
{
}

inline StringData::StringData(const char* data, size_t size) noexcept:
    m_data(data),
    m_size(size)
{
    REALM_ASSERT_DEBUG(data || size == 0);
}

template<class T, class A>
inline StringData::StringData(const std::basic_string<char, T, A>& s):
    m_data(s.data()),
    m_size(s.size())
{
}

template<class T, class A>
inline StringData::operator std::basic_string<char, T, A>() const
{
    return std::basic_string<char, T, A>(m_data, m_size);
}

template<class T, class A>
inline StringData::StringData(const util::Optional<std::basic_string<char, T, A>>& s):
    m_data(s ? s->data() : nullptr),
    m_size(s ? s->size() : 0)
{
}

inline StringData::StringData(const null&) noexcept:
    m_data(nullptr),
    m_size(0)
{

}

inline StringData::StringData(const char* c_str) noexcept:
    m_data(c_str),
    m_size(0)
{
    if (c_str)
        m_size = std::char_traits<char>::length(c_str);
}

inline char StringData::operator[](size_t i) const noexcept
{
    return m_data[i];
}

inline const char* StringData::data() const noexcept
{
    return m_data;
}

inline size_t StringData::size() const noexcept
{
    return m_size;
}

inline bool StringData::is_null() const noexcept
{
    return !m_data;
}

inline bool operator==(const StringData& a, const StringData& b) noexcept
{
    return a.m_size == b.m_size && a.is_null() == b.is_null() && safe_equal(a.m_data, a.m_data + a.m_size, b.m_data);
}

inline bool operator!=(const StringData& a, const StringData& b) noexcept
{
    return !(a == b);
}

inline bool operator<(const StringData& a, const StringData& b) noexcept
{
    if (a.is_null() && !b.is_null()) {
        // Null strings are smaller than all other strings, and not
        // equal to empty strings.
        return true;
    }
    return std::lexicographical_compare(a.m_data, a.m_data + a.m_size,
                                        b.m_data, b.m_data + b.m_size);
}

inline bool operator>(const StringData& a, const StringData& b) noexcept
{
    return b < a;
}

inline bool operator<=(const StringData& a, const StringData& b) noexcept
{
    return !(b < a);
}

inline bool operator>=(const StringData& a, const StringData& b) noexcept
{
    return !(a < b);
}

inline bool StringData::begins_with(StringData d) const noexcept
{
    if (is_null() && !d.is_null())
        return false;
    return d.m_size <= m_size && safe_equal(m_data, m_data + d.m_size, d.m_data);
}

inline bool StringData::ends_with(StringData d) const noexcept
{
    if (is_null() && !d.is_null())
        return false;
    return d.m_size <= m_size && safe_equal(m_data + m_size - d.m_size, m_data + m_size, d.m_data);
}

inline bool StringData::contains(StringData d) const noexcept
{
    if (is_null() && !d.is_null())
        return false;

    return d.m_size == 0 ||
        std::search(m_data, m_data + m_size, d.m_data, d.m_data + d.m_size) != m_data + m_size;
}

inline StringData StringData::prefix(size_t n) const noexcept
{
    return substr(0,n);
}

inline StringData StringData::suffix(size_t n) const noexcept
{
    return substr(m_size - n);
}

inline StringData StringData::substr(size_t i, size_t n) const noexcept
{
    return StringData(m_data + i, n);
}

inline StringData StringData::substr(size_t i) const noexcept
{
    return substr(i, m_size - i);
}

template<class C, class T>
inline std::basic_ostream<C,T>& operator<<(std::basic_ostream<C,T>& out, const StringData& d)
{
    for (const char* i = d.m_data; i != d.m_data + d.m_size; ++i)
        out << *i;
    return out;
}

inline StringData::operator bool() const noexcept
{
    return !is_null();
}

} // namespace realm

#endif // REALM_STRING_HPP


text:
namespace base {
class FilePath;
}  // namespace base

namespace installer {

// Returns a command line to be used to launch the browser in |application_path|
// following a successful install.
base::CommandLine GetPostInstallLaunchCommand(
    const base::FilePath& application_path);

// Launches the browser following a successful install without waiting for it to
// exit.
bool LaunchChromeBrowser(const base::FilePath& application_path);

// Launches Chrome with given command line, waits for Chrome indefinitely (until
// it terminates), and gets the process exit code if available. The function
// returns true as long as Chrome is successfully launched. The status of Chrome
// at the return of the function is given by exit_code.  NOTE: The 'options'
// CommandLine object should only contain parameters.  The program part will be
// ignored.
bool LaunchChromeAndWait(const base::FilePath& application_path,
                         const base::CommandLine& options,
                         int32_t* exit_code);

}  // namespace installer

#endif  // CHROME_INSTALLER_SETUP_LAUNCH_CHROME_H_


text:
module HTTPalooza
  module Players
    class EmHttpRequestPlayer < Base
      introducing! :em_http_request, %w[ em-synchrony em-synchrony/em-http ]

      def response
        response = nil
        EM.synchrony do
          http_request = EventMachine::HttpRequest.new(request.url)
          http_client = http_request.send(request.method, :body => request.payload, :head => request.headers)
          response = Response.new(http_client.response_header.status, http_client.response)
          EM.stop
        end
        response
      end
    end
  end
end


text:
<!DOCTYPE html>

        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="robots" content="index,follow">
        <meta name="fragment" content="!">
        <title>[[config.app.name]]</title>
        <meta name="title" content="il web di fabio">
        <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
        <meta name="keywords" content="siti web su misura, artigiano del web, social media agency, siti web in white label, applicazioni mash-up, freelancer web developer">
        <meta name="description" content="Sito personale e blog di Fabio Bedini aka whisher">
        <meta name="author" content="Fabio Bedini aka Whisher">
        <meta name="Copyright" content="&#169; 2014 All Rights Reserved">
        <link rel="author" href="/public/humans.txt">
        <link rel="shortcut icon" href="/public/favicon.ico" type="image/x-icon">
        <link rel="bookmark" href="/public/favicon.ico">
        {% for file in assets.css %}
            <link rel="stylesheet" href="/[[file]]">
        {% endfor %}
        <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/styles/default.min.css">

               Tweet

                {% if (status == 404 || status == 200) %}
                    {% block content %}{% endblock %}
                {% endif %}

Fabio Bedini aka whisher - Telefono : 3391371402 - Email : io@ilwebdifabio.it - P.IVA : 01371160118

© 2014 All Rights Reserved Vai al top

        {% for file in assets.js %}

        {% endfor %}

        {% if (process.env.NODE_ENV == 'development') %}

        {% endif %}


text:
<?php
/**
 * Created by PhpStorm.
 * User: Samuel
 * Date: 18/09/2016
 * Time: 21:30
 */

namespace Samcrosoft\Soccerama\Facades;

use Illuminate\Support\Facades\Facade;

/**
 * Class Soccerama
 *
 * @package Samcrosoft\Soccerama\Facades
 */
class Soccerama extends Facade
{

    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor()
    {
        return 'soccerama';
    }
}


text:
package org.apache.activemq.transport.stomp;

import java.io.IOException;
import java.net.Socket;

import javax.net.SocketFactory;
import javax.net.ssl.SSLSocketFactory;

public class StompSSLLoadTest extends StompLoadTest {

    @Override
    protected boolean isUseTcpConnector() {
        return false;
    }

    @Override
    protected boolean isUseSslConnector() {
        return true;
    }

    @Override
    protected Socket createSocket() throws IOException {
        SocketFactory factory = SSLSocketFactory.getDefault();
        return factory.createSocket("127.0.0.1", this.sslPort);
    }
}


text:
[FSP (finate state process)](http://www.doc.ic.ac.uk/~jnm/LTSdocumention/FSP-notation.html) notation highlighting for Sublime Text

Supports file extensions **lts** and **fsp**

## Installation
### Package control
The syntax definition is listed as is listed as [FSP Syntax](https://sublime.wbond.net/packages/FSP%20Syntax) on Will Bond's [Sublime Package Control](https://sublime.wbond.net/).

### Manual
Copy file [fsp.tmlLanguage](https://raw.githubusercontent.com/toboid/sublime-fsp-syntax/master/fsp.tmLanguage) into your `Packages` directory, which you can find using the menu item `Preferences -> Browse Packages...` in Sublime Text.