const groupBy = key => array =>
array.reduce((objectsByKeyValue, obj) => {
const value = obj[key];
objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj);
return objectsByKeyValue;
<!-- | |
In Vue, we use v-model for all form bindings, while | |
Knockout maintains separate binding types, such as | |
textInput, checked, and options. In some cases, | |
such as for an input of type "range", Knockout | |
simply doesn't have an equivalent two-way binding | |
helper and the more verbose value and valueUpdate | |
must be used. | |
--> | |
<div id="app"> |
# This is Git's per-user configuration file. | |
[user] | |
# Please adapt and uncomment the following lines: | |
name = xamedow (Andrey Hamedov) | |
email = xamedow@gmail.com | |
[core] | |
editor = subl | |
[color "branch"] | |
current = yellow reverse | |
local = yellow |
В гисте план правильного создания формы и моменты, на которых спотыкаются незнакомые с компонентом разработчики
- Продумываем список полей формы
- Создаем инфоблок для сохранения результатов и запоминаем коды свойств
- Создаем почтовое событие
- Создаем почтовый шаблон для события
- Настраиваем вызов компонента формы
- Настраиваем .config шаблона компонента формы
<!-- HTML advanced commentary block --> | |
<snippet> | |
<content><![CDATA[ | |
<${1:div} class="${2:col}"> | |
${3:Content} | |
</${1:div}> <!-- .${2:col} --> | |
]]></content> | |
<!-- Optional: Set a tabTrigger to define how to trigger the snippet --> | |
<tabTrigger>`hac</tabTrigger> | |
</snippet> |
Английская версия: https://evilmartians.com/chronicles/bootstrap-an-intervention
У CSS есть несколько базовых проблем, которые позволяют очень быстро отстрелить себе ногу при неправильном использовании:
-
Глобальный неймспейс – в серверном программировании все что написано в файле, в файле и остается. Все же что написано в css и js засирает глобальное пространство имен со всеми вытекающими. В JS эту проблему сейчас побороли всякими модульными системами, а вот с css сложнее. В идеальном мире это должен починить Shadow DOM и настоящие Web Components, но пока их нет единственный способ с этим бороться – следовать какой-то системе именований селекторов, которая по возможности уменьшает и исключает возможные конфликты.
-
Каскадность – если на один элемент может сработать несколько правил, то они все и сработают последовательно. Если есть элемент
h1.title
, на него сработают все правила для теговh1
и все правила для класса.title
. Так как весь html состоит из тегов, то правил которые п
This is the follow up to a post I wrote recently called From Require.js to Webpack - Party 1 (the why) which was published in my personal blog.
In that post I talked about 3 main reasons for moving from require.js to webpack:
- Common JS support
- NPM support
- a healthy loader/plugin ecosystem.
Here I'll instead talk about some of the technical challenges that we faced during the migration. Despite the clear benefits in developer experience (DX) the setup was fairly difficult and I'd like to cover some of the challanges we faced to make the transition a bit easier.
<?php | |
class DecimalFraction | |
{ | |
public $numerator; | |
public $denominator; | |
public $integer = 0; | |
public function __construct($numerator, $denominator, $integer = null) | |
{ | |
if( is_null($integer) ) |
{ | |
"name": "yourcompany/myproject", | |
"description": "Какой-то проект нашей компании", | |
"keywords": ["bitrix", "проектище"], | |
"homepage": "http://bitrix.expert/", | |
"type": "project", | |
"license": "Commerce", | |
"support": { | |
"source": "http://github.com/bitrix-expert/" | |
}, |
// Reference: http://www.blackdogfoundry.com/blog/moving-repository-from-bitbucket-to-github/ | |
// See also: http://www.paulund.co.uk/change-url-of-git-repository | |
$ cd $HOME/Code/repo-directory | |
$ git remote rename origin bitbucket | |
$ git remote add origin https://github.com/mandiwise/awesome-new-repo.git | |
$ git push origin master | |
$ git remote rm bitbucket |