bValidator is a jQuery plug-in for client side form validation.
It supports fully customized error messages defined with template and CSS, many validation functions (actions) like date, email, URL, IP address, validation of dynamic forms, customized validation functions and more.
If you like and use bValidator, I'd like a small donation from you and
I promise I'll put it to good use:)
Setup
For a basic setup you will need to include into your web page which contains form you want to validate jquery.bvalidator.js file or (recommended) compressed file with YUI compressorjquery.bvalidator-yc.js and, of course, jQuery:
The web page should have elements you want to validate. This is usually a form, but validator can also work on input fields which are not inside the form (see example). Note the data-bvalidator input field attribute which tells bValidator which validation functions (actions) to invoke for the field. The name of that attribute can be changed and this can be for example class or rel, see options for details.
This code should be inserted after the form or you can use jQuery's $(document).ready to execute the script as soon as the webpage's Document Object Model (DOM) has been loaded. In that case this javascript code can be before or after the form:
OR by defining a global object with options called bValidatorOptions. bValidatior will check if this object exists and if does, will load options from it and override default options.
OR BOTH, you can define a global bValidatorOptions object and also pass options to the validator constructor. In that case options from the bValidatorOptions object override default options and options passed as argument to constructor will override options from the bValidatorOptions object.
Option
Default
Description
singleError
false
Enabling this shows only first validation error at a time.
offset
{x:-23, y:-4}
Fine tunes the error message tooltip position specified with the position property.
position
{x:'right', y:'top'}
Specifies the position of the error message tooltip. Valid values for x are: left, center, right and for y are top, center, bottom
showCloseIcon
true
Controls if the error message tooltip has a close icon. If true user can click on it and close the error message tooltip.
showErrMsgSpeed
normal
Error message's fade-in speed. Values can be 'fast', 'normal', 'slow' or number of miliseconds.
CSS class for the error message tooltip close icon.
errMsgClass
errmsg
CSS class for the error message tooltip (error messages container).
errorClass
invalid
CSS class for the input field containing an invalid value. Will not be applied on checkboxes and radio buttons.
validClass
CSS class for the input field containing a valid value. Will not be applied on checkboxes and radio buttons.
lang
en
Language for localization.
errorMessageAttr
data-bvalidator-msg
Input field attribute which holds error message text. Message from this attribute will override default messages or localized error messages.
validateActionsAttr
data-bvalidator
Input field attribute which tells validator which validation actions to invoke for the field.
forceValidAttr
data-bvalidator-forcevalid
Input field attribute which tells validator to act like the field is valid regardless of actions set by data-bvalidator attribute. Value should be set to 'true' to disable validation. Validation is also disabled for hidden or disabled fields, but sometimes you don't want to make field hidden or disabled and still need to disable (or re-enable) validation on the field. You can also disable validation by removing data-bvalidator attribute.
modifyActionsAttr
data-bvalidator-modifier
Input field attribute which tells validator which modifiers to invoke for the field.
paramsDelimiter
:
Options delimiter for validaton function parameters inside square brackets [].
actionsDelimiter
,
Validator functions (actions) delimiter in validateActionsAttr attribute.
validateOn
null
On which input field event to start validation. Values can be null, 'change', 'blur', 'keyup'. See this option in action in this example. This option will be not applied on checkboxes and radio buttons.
errorValidateOn
keyup
On which input field event to start validation if error message is already shown. Values can be null, 'change', 'blur', 'keyup'
scrollToError
true
If first error message is not visible on the screen, page will be scrolled up or down to be visible.
template

 {message}

HTML template for the error message tooltip. This HTML code will be put inside the container div element and appended after the input field. {errMsgClass} will be replaced with value of the errMsgClass option and {message} will be replaced with error messages text.
This piece of HTML will be used when showCloseIcon option is true. {message} tag in the HTML code specified by template option will be replaced by this code. With these two options you have full control over the error messages layout. See example 9 where this option is used to support IE6. {message} tag in this code will be replaced with the error messages text, {closeIconClass} will be replaced with the value of closeIconClass option.
noMsgIfExistsForInstance
empty array
This option can be usefull if you are using more bValidator instances and you don't want to show message for element if already exists for instance specified by this option. If message is already shown it will not be removed.
validateOnSubmit
true
If true, validation will occur on form submit if validator is bind to a form.
stopSubmitPropagation
true
If true, submit event will be stopped on error if validator is bind to a form. This option is considered only if value of validateOnSubmit option is true.
This option tells which modifiers to automatically call for some validation action. By default trim modifier is called for stated actions. So you don't have to explicitly put modifier into data-bvalidator-modifier attribute. You can put more auto modifiers for one action and use parameters just like in the attribute. For example: 'myValidator': ['trim', 'myMod', 'myMod2[1:3]']
ajaxAnswerValid
'ok'
Valid response for ajax validation with the ajax action. If value is valid ajax request should return this string.
ajaxDelay
300
Delay for asynchronous ajax request.
ajaxOptions
{cache: false}
Options for ajax request. See jQuery documentation. Note that some options like data and async will be changed by bValidator before making the request.
ajaxParamName
'bValue'
Name of the GET/POST parameter with the value to validate on the server side.
validateTillInvalid
false
By default, if there are more validation actions in data-bvalidator attribute they are all invoked when validation is triggered.
If you set this option to true actions will be invoked till value is invalid by one action and check by rest of the actions will be skipped. For example: data-bvalidator="number,max[10]"
if check with number action fails max action will not be called.
Callbacks
Callbacks are user defined functions that are called by validator in a certain moment. Callbacks are defined the same way as configuration options. Here is an example of defining callback:

Callback
Arguments
Description
onBeforeElementValidation
jQuery object containing input field
Called before the validation routine starts for each element (input field) that is validated. Returning false will cause the validation to be skipped for that element.
onAfterElementValidation
jQuery object containing input field
array containing all error messages for the element
Called after the validation routine ends for each element (input field) that is validated.
If false is returned error messages (if any) won't be displayed, and binding events (validateOn, errorValidateOn) to input fields will be skipped.
Returning 0 (zero) will only disable bValidator error messages. See example 10.
onBeforeAllValidations
jQuery object containing all inputs that will be validated
Called once before the validation is started. Returning false will skip the validation. For example, if you validate a form with more input elements this callback will be called once before all validations and if false is returned the form will not be validated at all.
onAfterAllValidations
jQuery object containing all inputs that are validated
validation result (true or false)
Called once after all validations are done. For example, if you validate a form with more input elements this callback will be called once after all validations are done and error messages (if any) are displayed. See example 10.
onBeforeValidate
jQuery object containing input field
string validator action (example: min[5])
Called before the validation routine starts for each validation action. Returning false will cause the validation to be skipped for that validator action.
This callback function will be called for each validation action so if you put more actions on one form element for example: max[10],email,required this callback will be called two times (for max and for email).
onAfterValidate
jQuery object containing input field
string validator action (example: max[10])
validation result (true or false)
Called after each validation routine ends. Returning false will stop executing that validator action, displaying error messages and binding events (validateOn, errorValidateOn) to input fields will be skipped.
Will be called for each validation action (see onBeforeValidate description).
onValidateFail
jQuery object containing input field
string validator action (example: max[10])
array containing all error messages for the element
Called after validation fails.
Will be called for each validation action that fails (see onBeforeValidate description).
onValidateSuccess
jQuery object containing input field
string validator action (example: max[10])
Called after validation is sucessfull.
Will be called for each validation action that is successful (see onBeforeValidate description).
data-bvalidator-msg-actionName attribute. Replace actionName with the name of validation action (see example).
Most of the validator actions has error message named same as the action in configuration object. If you use some custom validation function (example) you can also add error message named same as the validation function into the configuration object.
You can use {0}, {1}, {2}, {3},... tags in error messages and they will be replaced with validator action parameters in [].
Error messages can be localized (translated). To translate messages you need to pass translated messages as options to validator constructor:

OR define global bValidatorOptions object with translated error messages that will be used in all validator instances:

You can see all default English error messages in jquery.bvalidator.js file (search for first occurrence of 'errorMessages' inside the file). If you made translation please post it to bValidator discussion group. I will also put it on download page.
Validator actions
There are two types of validator actions: validation actions and modifying actions (from version 0.7).
Validation actions (validators) are functions that checks if a value is valid.
Modifying actions (modifiers) are functions that change the value of the field before validation. This is useful if you want to clean up user input for example to trim whitespaces before validation.
Validations which validator will perform on a single input field are stated by default in data-bvalidator attribute and modifiers are stated in data-bvalidator-modifier attribute.
You can use different attributes like class or rel if you need that your HTML is valid. Just set the name of the attribute in validateActionsAttr or modifyActionsAttr option.
Some actions can have parameters and those are stated in square brackets after the action name and delimited with ':'. For example: [param1:param2:param3]. You can have unlimited number of parameters per action.
Here are listed built-in validator actions but it is very simple to add custom validation functions (see example and getActions API function).
Validator
Parameters
Description
alpha
Checks if all characters are alphabetic. Empty space (' '), underscore(_), minus(-) and period (.) are also valid.
alphanum
Checks if all characters are alphanumeric. Empty space (' '), underscore(_), minus(-) and period (.) are also valid.
digit
Checks if all characters are digits.
number
Checks if value is a number.
email
Checks if value is a valid E-mail.
image
Checks if value ends with image file extension jpg, jpeg, png, gif or bmp. Can be useful for file fields.
url
Checks if value is a valid URL.
regex
pattern
modifier (optional)
Checks if value matches pattern given by parameter.
If you'll need to use characters like [],: in pattern which are also used by validator to parse action arguments you'll have to write custom validator function like in this example.
As second parameter regular expression modifier can be passed.
date
date format
Checks if value is a valid date in format specified by action parameter. Format can be any combination of mm, dd, yyyy with one character separator between. Example: 'mm.dd.yyyy' or 'yyyy-mm-dd'.
required
Is a value required.
If you put required in front of other actions like data-bvalidator="required,max[10],email" then error message that field is required will be shown in error messages tooltip with other error messages.
If you put required after other actions like data-bvalidator="max[10],email,required" then error message that field is required will not be shown in error messages tooltip if there are some more error messages.
NOTE that if a field is not marked as required and it is empty it will not be validated at all. For example, if you have field with data-bvalidator="email" and you leave it empty, email action will not be called. If you want to call validator action even if value is empty and not required use valempty.
between
minimum value
maximum value
Checks is value between values in action parameters.
If the input is a checkbox and it is in a group of checkboxes (all with the same name for example name="chk[]") or select then between means "number of selected checkboxes (options) must be between values set by action parameters". See example.
If you use between with checkbox or select you should use custom error messages. See errorMessageAttr option.
max
maximum value
Checks is value less or equel than action parameter value.
If the input is a checkbox and it is in a group of checkboxes (all with the same name for example name="chk[]") then max means "select no more then max checkboxes". See example.
If the input is a select then max means "select no more then max options".
If you use max with checkbox or select you should use custom error messages. See errorMessageAttr option.
min
minimum value
Checks is value greater or equel than action parameter value.
If the input is a checkbox and it is in a group of checkboxes (all with the same name for example name="chk[]") then min means "select at least min checkboxes". See example.
If the input is a select then min means "select at least min options".
If you use min with checkbox or select you should use custom error messages. See errorMessageAttr option.
rangelength
minimum length
maximum length
Checks if length of the value is between action parameters values.
maxlength
maximum length
Checks if length of the value is smaller than action parameter value.
minlength
minimum length
Checks if length of the value is greater than action parameter value.
differs
element id
The value has to be diferent from the value of field which ID is passed as parameter.
equalto
element id
The value has to be equel to the value of field which ID is passed as parameter.
extension
file extensions
Checks if value ends with '.' followed by any of passed parameters.
You can put as many file extensions you need as parameters to this action. For example: extension[jpg:png:txt]
ip4
Checks if the value is a valid IPv4 address.
ip6
Checks if the value is a valid IPv6 address. NOTE that this action uses complex regular expression which can be pretty slow and doesn't work in Chrome which shows "Aw, Snap!" page! So be careful where you use this action or make your own custom action for IPv6 address validation.
valempty
Validate field even if it's not marked as required and is empty. This action makes sense only if some other custom validator action is also used on that field and the field is not required. For example, you can have an input box that can be empty in some cases that depend on some other field. In that case you cannot put required action on it because it can be empty, but you need to validate it even if its empty. See example.
ajax
URL for the ajax request
Action for server side validation with ajax. As the action argument put URL for the ajax request, but keep in mind that URL should not contain characters which bValidator uses to parse actions and parameters. Those are by default semicolon and comma (see paramsDelimiter and actionsDelimiter options). So use relative URLs or absolute from server root. For example:
data-bvalidator="ajax[/validate/checkusername],required".
bValidator tries to be smart and to optimize requests to the server:
It will use asynchronous and synchronous ajax calls depending on the situation. Sometimes it must use synchronous call for example before form submit.
bValidator will not make ajax request if a value is invalid by some other validator. But this depends on the actions order in data-bvalidator attribute. If you don't want to make ajax request if value is already invalid put the ajax action in the last place. For example: data-bvalidator="email,ajax[/url]"
It will not make ajax request if a value of the input is not changed from the last check with ajax. It will use cached result.
Here is the list of built-in modifiers. Custom modifiers can be added like custom validation functions (see example).
Modifier
Parameters
Description
trim
Removes the whitespaces from the beginning and end of the input value.
API functions
When you make an instance of validator you can call some functions on that instance. You can access validator instance through jQuery data function:

.data('bValidator') will return reference to the first instance of bValidator.
You can have more instances of bValidator on the same form (see example 12) and all references are returned by .data('bValidators'). Note the 's' here.

NOTE: prior to version 0.6 you could get validator instance like this:

From version 0.6 plugin function doesn't return
validator instance to maintain chainability. Now you can do for example:

Function
Arguments
Description
getOptions
Returns the options object of the current validator instance.
isValid
jQuery object containing inputs to check only
(optional)
Just checks if inputs in current validator instance are valid. Doesn't show error messages.
removeMsg
jQuery object
containing input
Removes (hides) the message
showMsg
jQuery object
containing input
string message
Displays message. This function doesn't have anything with validation, it just displays tooltip message on the element specified with the first argument. Message can be displayed for any element on a page. Element doesn't have to be part of the form (or container element) for which bValidator is instanced.
getInputs
Returns all input fields associated with the validator.
bindValidateOn
jQuery object
containing inputs
This function is helpful when using validateOn option and dynamic forms. If you add some new input elements to the form after validator is already initialized and you want to validate them on event specified with validateOn option you need to call this method.
If you are not using validateOn option with dinamic forms you can forget about this function.
reset
Resets the validator. Hides all error messages like the validator is only initialized. If you have a reset button on your form this function is automatically bind to it.
destroy
Removes existing bValidator instance.
validate
if true error messages are not displayed
(optional)
jQuery object containing inputs to validate only (optional)
Does validation.
getValidators
Returns the object with all built-in validator action functions of the current validator instance. This is useful for adding custom validator actions which are not accessible from global scope or overriding existing built-in actions. For example, you can add your validation function like this:

Note that parameter passed to validator functions is object with 'value' property which holds the input value. This is not the case with custom validator functions in global scope where the first parameter is input value.
getModifiers
Returns the object with all built-in modifiers of the current validator instance. This is useful for adding custom modifier actions which are not accessible from global scope or overriding existing built-in actions. For example, you can add your modifier function like this:
You can see source of each example by clicking on the 'Example source' button.
1 - All validators in action
2 - Input specific error message
In this example regex validator action is used (regex[a{3}]) and error message which is defined in data-bvalidator-msg attribute.
3 - Custom validators
This example shows how you can create your own validation action. Just make a function that returns true for successful validation and false for an error and put the function name in data-bvalidator attribute. See also this example.
You can see also in this example how to use parameters with your own validation action. You can put error message for your validation function in options object as described above, just call it the same as your validation function.
See also getActions API function if your validation function is not accessible from global scope.
Note that from version 0.7 this keyword inside custom validator function refers to the DOM element on which validation is performed.
Note that first argument of a custom validator function will be a value of the input and other arguments (if any) are parameters for that action stated in square brackets after the action name in the data-bvalidator attribute. Custom validator function should return true or false.
4 - Dynamic forms
You can dynamically add inputs to the form after the validator is initialized. Note that hidden form elements are not validated. If you need to hide or show some form elements, put them into some container element (like
 in this example) and then show or hide that container because validation messages will not follow show/hide actions if you apply them only on the input element which is validated.
If you use validateOn option, then after adding new input to form you can call bindValidateOn function for new added inputs to bind validateOn event on them also.
5 - Server side validation
This example is similar to custom validators example above. Just make your own validator action function which will do synchronus AJAX request that will check if value is valid.
In version 0.7 ajax validation function is added and it is nicer way to do server side validation. See example.
6 - Error message position and style
You can set template, position and CSS styles for error messages. See also example 9.
7 - Instance on
 element
Only digits:
bValidator doesn't care if inputs are not inside a <form> element. It will work on any container element that has some child inputs that can be validated. Of course, you won't have submit button in that case and validation will not be automatically bind to it, but you can call it manually like in this example.
8 - Groups of checkboxes and radio buttons
A group of checkboxes or radio buttons is created by giving the same name attribute to all elements in the group. bValidator attributes for actions and custom error message should be added to only one element in the group on which error message will be shown. As of bValidator version 0.6 you can have element names with some value in [] like name="chk81[abc]".
9 - For old browsers
Some people live in the past and they love their favorite browser IE6. This example will work nice in IE6. CSS styles are changed to use image for arrow and templateCloseIcon option is used to replace default template with one that uses tables.
10 - Put error messages into container
This example shows how to put error messages into the container element. This functionality is not built-in into the bValidator, but you can achieve it by using callbacks. onAfterAllValidations and onAfterElementValidation callbacks are used in this example.
11 - Depending inputs
In this example validation of one input field that depends on value entered in another field. This is achieved with checkMyInputs custom action.
This example also shows the use of valempty action which is used to trigger checkMyInputs action even if the field is empty. If you need both fields to be required then you should use required action instead of valempty action.
12 - More types of error messages
Try to enter numbers and letters in both fields to see two types of error messages. From version 0.6 you can have more instances of bValidator on the same form (container element). In this example there are two bValidator instances for the same form. Red messages are messages from the first validator instance and gray are from the second validator instance.
For every validator instance you can have it's own settings. Instances are totally independent from each other like they are bind to two different forms so you can adjust settings for each instance as you like. In this example second instance is configured just to show warning messages and not to stop form from submitting.
See here how to access validator instances if you need to call some functions on them and also see themes section below for changing messages style. See also example 13.
13 - Just displaying messages
 element
In this example no validation is done. Just tooltip messages are displayed. This can be useful for example if you validate all your data on the server and just want to show messages to a user or want to show some other information in tooltip messages beside validation messages.
Note that messages can be displayed on any element, it doesn't have to be input and it doesn't have to be inside container element that bValidator is bind on. In this example more instances of bValidator are used for various styles of error messages (see also example 12).
14 - Using modifiers
Modifiers are functions which purpose is to change the input value before validation. This can be useful to clean up data user has entered for example to strip whitespaces or similar. Modifiers are called before all validation actions. By default modifiers should be listed in data-bvalidator-modifier attribute just like validators in data-bvalidator attribute (see modifyActionsAttr option). For some validation actions trim modifier is automatically called (see autoModifiers option).
In this example on the first field trim modifier is automatically called because email action is mentioned by default in autoModifiers option.
On the second field custom modifier is called which will delete all but digits. Generally it is not good idea to use modifiers that change user input in that way, but it is here for the example.
The third field will add 'http://' if you enter URL without it and also automatically trim spaces.
The fourth field has only modifier action, no validation at all.
You can use only modifier actions on the field without data-bvalidator attribute and validation.
Note that first argument of a custom modifier function will be a value of the input and other arguments (if any) are parameters for that action stated in square brackets after the action name in the data-bvalidator-modifier attribute. Custom modifier function should return a new value for the input field. If nothing (undefined) is returned the input value wont't be changed.
15 - Server side validation with ajax action
In this example both fields use server side validation using ajax action. For a value to be valid the response from the server should be string specified in ajaxAnswerValid option. It also shows use of data-bvalidator-msg-ajax attribute to set message only for ajax action (see more about defining messages).
Please check documentation for all ajax options and description for ajax action.
Themes
In the examples below you can see how to make your own theme for bValidator by changing CSS and some configuration options. See also example 9 and example 6.
If you make a nice theme
please send it to me and I will include it into this section.


Home
(current)
Sign in
Learning
Music theory
Guitar
Piano
Violin
Flute
Chord Library
Guitar
Piano
Violin
Services
Contact
guitar
chapter 1: music theory
chapter 2: guitar overview
chapter 3: chord
chapter 4: how to read TAB
chapter 5: fingerstyle's skills
Previous
Next
lesson 1: guitar shape
learn about traditional guitar
lesson 2: guitar playing posture
learn about guitr playing posture
lesson 3: finger's placement
learn how to place hands on the guitar
lesson 4: notes on guitar
learn about notes on guitar
lesson 5: how to tune the guitar
learn how to tune the guitar
game
reinforce the knowledge learned through the game


Ben Simmons Just Hit A Legit NBA Three & The Internet Has Gone Fucken Bonkers
by By Cam TyesonIt’s happened.  Ben Simmons, in regular NBA season play, against a regular NBA team, on a regular NBA court, with his own by-god hands, has shot and made a three.
Look. LOOK.
That’s a three! Ben Simmons hit a regulation, regular NBA season three! He’s on the board, baby!
It’s not some sort of cruel trick or deep fake either.
Yes sir!
YES SIR.
Understandably, social media has lost its ever-loving mind over this clearly historic moment, the moment where Ben Simmons truly became President or whatever.
There’s more than a few folks out there willing to retcon history as far their current and future kids are concerned, what with Simmons suddenly being the NBA’s most potent perimeter threat and all.
The corner three has paid off for more than just Simmons and the Sixers as well, with at least a small handful of fortunate punters cashing in on the absurd odds on offer.
There’s a fine line between bravery and stupidity, after all.
There you have it though folks. Ben Simmons, in the year of our lord 2019, has finally hit a three-point shot in regular NBA season play. Start the MVP chants right the hell now.
Image: Getty Images / Mitchell Leff


A native Vue.js select component that provides similar functionality to Select2/Chosen without the overhead of jQuery.


HP Labs is conducting research in the field of high-dimensional similarity search, which seeks to improve search performance on very large datasets by pre-computing an index of vectors that describe each object in a database. One application of this technology is to search through images to find those similar to a candidate image.
When you give us your email address, you’re agreeing to receive occasional messages containing updates to this program. We will not use your email for any other purpose or pass it to a third party.
When you click “Choose File” you are presented with a window that will allow you to upload an image.
A: Anything will work, but you should only upload public domain images or your own images. Please be aware that your images may appear in search results from other users.
A: The images that users upload will be added to the image database so that the quality of search results continuously improves. Uploaded images will be stripped of all metadata to remove personal information contained in the file. Uploaded images will be reviewed by HP Labs staff as they are added to the database. Images that are deemed inappropriate will be permanently deleted.
A: Images will be stored on HP Labs systems.
A: Send a message to the HP Privacy team (Feedback form) You should add an address here because the privacy policy should be the HP Privacy Statement) and attach a copy of the image to be removed. (Because we strip all the metadata from the image and anonymize the filename, we have to have a copy of the image in order to know which one to remove.)
By clicking “Accept” you are agreeing to these terms and to HP’s collection and use of your information in accordance with the HP Privacy Statement.


by Álex 0001-01-01 post
Description = “” Tags = [“kubernetes”, “immutable”, “Architecture”] date = “2015-11-02T00:40:31Z” title = “Snapshot Architecture” +++
Immutable is good. Immutable is good because it doesn’t change, and things that don’t change are good because if it works once, it has to work always… or that’s the theory.
If you use any of those fancy new functional programming languages, you’re using immutable data types. They are great. Do you know why? because they do not change. Things that change are hard. Managing things that change is complicated. Managing many things that chnage very quickly is a nightmare.
Have you heard of immutable infrastructure? infrastructure is hard, so, by making infrastructure immutable you reduce the pain of managing things that change. It has been recently that we achieved the fact of deploying always the same application regardless of where it runs.
Kubernetes helps a bit with managing immutable infrastructure, but infrastructure is not our mission. It is important, but it is just another piece. I do not know anyone with the only purpouse of running machines by the sole sake of running them. It’s the applications we’re interested on!
Do we have immutable applications? kind of. Containers are helping. Do we have immutable infrastructure? indeed we have, and yes, containers are helping… So, where is the trouble?
It has taken me a while to understand this, but I think I’m starting to understand where the rabbit hole is (and where it takes).
If infrastructure is our data type, the architecture is the functional programming language. It’s great to have immutability all the way down making sure our data, applications or machines do not change, but there’s a missing piece still. If we don’t start re-architecting solutions based on those principles, the principles will not stand.
 Comment might be fair in some contexts, but in my experience it’s not about services or monoliths, it’s about adopting a half baked approach.
Microservices are great, but they are hard to manage because the internal dependencies now are external. We give away control. We trust… the others.
Trouble is that if we understand an application as a set of loosely coupled microservices (all of them running in containers, hence immutable services), we have to accept that now that state, that mutability we have tried to get rid of, is present as the hardest of all forms: distributed evolution.
We have traded the cohesion of our applications for flexibility. And it is good. But we have still to embrace a truly immutable architecture. We have to understand that our applications are immutable. The services do not change. The services are replaced by other services that superseed the old ones.
It’s not deploying new versions of an application anymore, it’s deploying new services every time. Services that replace services.
Let me tell you 2 words: Backwards compatible. Probably the heaviest stone in our world of design and compute. Think about it. What I’m saying is that we’re in a position to let all the baggage go. Every time you start, you start afresh. It doesn’t matter your previous sins, you’re clean.
Stop thinking of your code like something that it’s alive. Think of your code as a cake or toy factory. It produces things that do not change. You can change the machinery of that factory, you can improve the making of products, but the toy you did two years ago… that toy will not be touched once has left the factory.
I know, you could go all crazy and start shouting “Stop refactoring!!”, “Stop fixing bugs!”but truth is that you’re not doing it to improve something that it’s there, you’re doing it to make something better.
polo is made with by @agonzalezro


%name% (id: %id%)
Level:
%level%
Distance:
%dist%
Clan Name:
%factionId%
Aggresion range:
%aggro%
Exp Rewards:
%expReward%
Sp Rewards:
%spReward%
Respawn:
%respawn%


Chevrolet Suburban Fuel Filter at Andys Auto Sport
Many aftermarket Suburban fuel filter assemblies use replaceable elements, . quick and easy to replace the filter element without having to remove the housing .
http://www.andysautosport.com/fuel_filter/chevrolet_suburban.html
Treatment for Herniated or Bulging Discs
GMC C1500 Suburban Fuel Pump - Gas Pumps - Delphi Airtex ...
The GMC C1500 Suburban Fuel Pump draws fuel from the gas tank on the other side . 1997, 1996, 1995, 1994, 1993, 1992, 1986, 1985, 99, 98, 97, 96, 95, 94, 93, 92, 86, 85. . 99 1999 GMC C1500 Suburban Fuel Pump Assembly 5.7L V8 Delphi . Detailed Note: Clockable Lower Housing Can be Rotated For Best Inlet .
http://www.partsgeek.com/mmparts/fuel_pump/gmc/c1500_suburban.html
Chevrolet C10 Suburban Fuel Pump - Gas Pumps - Delphi ...
85 1985 Chevrolet C10 Suburban Fuel Pump 6.2L V8 Delphi . Detailed Note: Clockable Lower Housing Can be Rotated For Best Inlet / Outlet Assignment .
http://www.partsgeek.com/mmparts/fuel_pump/chevrolet/c10_suburban.html
housing assembly fuel pump 1985 suburban Herniated or Bulging Discs
Chevy Suburban Parts - 1A Auto
Chevy Suburban parts at 1AAuto.com. Order new Chevy Suburban auto parts and aftermarket parts for your Chevy Suburban. . 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982 . Air Filter Housing . Fuel Pressure Regulator . Power Steering Pump Reservoir .
http://www.1aauto.com/1A/-/Chevy/Suburban
Chevy Suburban Door Handle - Interior at 1AAuto.com
Chevy Suburban Door Handle - Interior at 1AAuto.com. Find a premium quality Door Handle - Interior for your Chevy Suburban. Buy your Chevy Suburban Door .
http://www.1aauto.com/1A/DoorHandleInterior/Chevy/Suburban
Official Impairment Listing for Spinal Disorders
GMC S15 Fuel Pump - Auto Body Parts - Discount Fuel Pump ...
SPECTRA FUEL PUMP HANGER ASSEMBLY, NEW -- Electric; Includes strainer; A high . 1985-1986: S15 Base; 4 Cyl 2.5L; "GAS, FI, Naturally Aspirated, VIN E" . pump housing to ensure longer life than cast housings; Delivers more output . pm253 pv1000 r1500 r1500 suburban r2500 r2500 suburban r3500 s15 s15 .
http://www.drivewire.com/vehicle/gmc-s15/fuel-pump/
- record keystrokes flash whitepaper (narrowing of the spine)
Fuel Pump - Electrics | StreetPerformance.com
Results 1 - 20 of 19074 . In Tank Fuel Pump Assembly-Module for your 91-96 Dodge Dakota . Pump Features Tumble Polished Billet Look New Lower Housing .
http://www.streetperformance.com/m/cats/195-fuel-delivery/5557-fuel-pump-electric.htmlChevy Suburban Questions including "Brake lights not working ...
Where is the fuel pump on a 1999 Chevy Suburban V8 front wheel drive? . WILL SAVE YA SOME CASH) TO GAIN ACCESS TO THE HANDLE ASSEMBLY, . you have to remove the rear cover on the differential housing. once fluid is all drained . WIRING INFORMATION - CHEVROLET / SUBURBAN / 1985 12volts red .
http://wiki.answers.com/Q/FAQ/614
Cars Of A Lifetime: 1982 Chevy Suburban Or What's The Worst ...
Oct 23, 2011 . But lets say it also needed a water pump and the radio is broken. . I remember 2 things about this generation of Suburban-The prodigious appetite for fuel and the . A/C system scavenged from a condemned housing project and a . on which worker put that part of the truck together on the assembly line.
http://www.curbsideclassic.com/curbside-classics-american/cars-of-a-lifetime-1982-chevy-suburban-or-whats-the-worst-vehicle-youve-ever-owned/
Medical-Vocational Allowance for Herniated Disc
Chevrolet K10 Suburban Fuel Pump - Gas Pumps - Delphi ...
85 1985 Chevrolet K10 Suburban Fuel Pump 6.2L V8 Delphi . Detailed Note: Clockable Lower Housing Can be Rotated For Best Inlet / Outlet Assignment .
http://www.partsgeek.com/mmparts/fuel_pump/chevrolet/k10_suburban.html
Chevy Suburban Mirror - Side View at 1AAuto.com
Chevy Suburban Mirror - Side View at 1AAuto.com. Find a premium quality Mirror - Side View for your Chevy Suburban. Buy your Chevy Suburban Mirror - Side .
http://www.1aauto.com/1A/Mirrors/Chevy/Suburban
GMC Suburban Fuel Filter at Andys Auto Sport
Many aftermarket Suburban fuel filter assemblies use replaceable elements, . quick and easy to replace the filter element without having to remove the housing .
http://www.andysautosport.com/fuel_filter/gmc_suburban.html
Appealing a Denial of Benefits
Chevy Suburban Wheel Bearing & Hub - Front at 1AAuto.com
Buy your Chevy Suburban Wheel Bearing & Hub - Front online or call . 1995 - 1999 Chevy Suburban 4WD Front Wheel Bearing & Hub Assembly for Models .
http://www.1aauto.com/1A/wheel-bearing-hub-front/Chevy/Suburban
Pigtails - Two Lead Pigtails - Single Lead - Pico
Windshield Washer Pump/Low Coolant Sensor . Buick, Cad & Chev 1985-91 . GM without Fuel Injection 1987+ Delco PT102 . 3-14 ga Leads Black Housing Ford 1996+ . GM Suburban 1984-91 . Resistor Assembly #E7TZ-19A706-A .
http://www.picowiring.com/pdf/Cat-35-38.pdf


Gate In
Opens the envelope gate (can be retriggered).
Toggle Envelope In
Switches between the two envelopes when triggered.
VCA Audio In
Audio input for the voltage-controlled attenuator.
10V Envelope Out
Envelope output with a peak at 10V.
5V Envelope Out
Envelope output with a peak at 5V.
VCA Audio Out
Audio output for the voltage-controlled attenuator.


PhoneGap Day app perf examples
Slow
Scrolling
Animation
2D Animation
Fast
Scrolling
Animation
2D Animation - top/left
2D Animation - transform


Yes, you can.
Get Involved
We need people to organise, to set up, to greet and involve participants. Contact anyone on the list who is running an event soon. Or get in touch with James or Bart and we’ll keep you in mind.
We’ll test your Software
If you make open-source software, we’re always on the hunt for new stuff to test. We hope you’ll have a relativly-mature product without obvious bugs that works on a range of devices – but you won’t have to meet all those requirements. We’ll give you good feedback, and will try to get you into the lab so you can see how testers are testing.
Present to our Participants
We try to make the TestLab available to speakers, so that they can get people doing things that they’d otherwise be hearing about. We’ve taken the TestLab into sessions, and speakers have lead their participants from the session rooms into the TestLab. More commonly, we schedule a hands-on session for speakers to run themselves in the TestLab. We publicise these. Sessions before your lecture can attract people to the lecture. Sessions after can help interested participants to deepen their understanding.
Lend us your Kit
Typically, client devices and networking kit. You’ll need to lend it to us for the duration of the event – and you may need to give us the admin passwords so we can install stuff. We’ll try not to break it, and you may need to uninstall stuff when you get it back. It’s a big ask, though we hjave regular kit donors. We’ll get your name on the TestLab somehow.
Show off your Products
The TestLab is a great place to demonstrate tools and techniques. Some conferences give expo-floor vendors an opportunity to show off their offering in action against TestLab software. Can your products be used outside the booth, against real software? Can your staff build enhance the testing that’s going on through the event? It’s an acid test, and only the most-confident vendors take us up… and attendees know that.


Previous
Next
The Principles of Interaction Design
Courtesy of Bruce Tognazzini. Check out the original
here
.a


Welcome to Wee
screen.less
inside "assets/css/custom" will serve as your primary stylesheet. There you will also find variables.less
which sets up your configuration, mixins.less
for your custom LESS mixins, and legacy.less
for special legacy Internet Explorer rules, should you need them. Last and probably least there is print.less
for custom print styling. You should also configure the applicable breakpoint files as needed in the breakpoints directory. Visit weepower.com for more examples and documentation.
 John Doe
Lists
Unordered List
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
Ordered List
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
Description List
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
- Lorem ipsum dolor
Address
Lorem ipsum dolor123 Main Street
City, ST 12345