Наткнулся на интересный репозиторий - 30 second of code
Более сотни коротких кусочков кода. Залипнуть можно на долго, многое может пригодиться для решения ваших задач.
Рекомендую 👍
#js
Более сотни коротких кусочков кода. Залипнуть можно на долго, многое может пригодиться для решения ваших задач.
Рекомендую 👍
#js
GitHub
GitHub - Chalarangelo/30-seconds-of-code: Coding articles to level up your development skills
Coding articles to level up your development skills - Chalarangelo/30-seconds-of-code
Вытягиваем из текста ссылки на Google Документы
regexp101
regexp101
/https:\/\/docs.google.com\/(.*)\/d\/(.*)\/.*sharing/regex101
regex101: build, test, and debug regex
Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java. Features a regex quiz & library.
Forwarded from DidacticСardsBot
JSON-minify
Источник:
Порт JSON-minifyутилиты на язык JavaScript.
Обзор
JSON-minifyпреобразует блоки JSON-подобного содержимого в допустимый JSON, удаляя все пробелы и комментарии в стиле JS (однострочные //и многострочные /* .. */).
С помощью JSON-minifyвы можете поддерживать удобные для разработчиков документы JSON, но минимизировать их перед синтаксическим анализом или передачей по сети.
••••••••••
Обсудить:
Источник:
Порт JSON-minifyутилиты на язык JavaScript.
Обзор
JSON-minifyпреобразует блоки JSON-подобного содержимого в допустимый JSON, удаляя все пробелы и комментарии в стиле JS (однострочные //и многострочные /* .. */).
С помощью JSON-minifyвы можете поддерживать удобные для разработчиков документы JSON, но минимизировать их перед синтаксическим анализом или передачей по сети.
••••••••••
Обсудить:
GitHub
getify/JSON.minify
Simple minifier for JSON to remove comments and whitespace - getify/JSON.minify
Forwarded from DidacticСardsBot
Распределение ролей в проекте (скрипт Google Apps для таблиц)
Источник:
Создайте сводную таблицу распределения ролей в проекте на основе имен проектов, пользователей и их ролей.
••••••••••
Обсудить:
Источник:
Создайте сводную таблицу распределения ролей в проекте на основе имен проектов, пользователей и их ролей.
••••••••••
Обсудить:
GitHub
cvonk/gas-sheets-project_role_alloc
Create project role allocation pivot table based on projects names, users and their roles. - cvonk/gas-sheets-project_role_alloc
Forwarded from DidacticСardsBot
Объединить две таблицы Google (скрипт Google Apps для таблиц)
Источник:
Объединяет информацию из двух Google Таблиц. Например, сценарий можно использовать для объединения информации о людях, экспортированной из системы LDAP, со списком назначений проекта.
Первая строка таблицы src / dst должна содержать метки для каждого столбца. Самая левая метка на листе dst считается keyLabel, а значения в этом столбце считаются ключами . Эти ключи используются для сопоставления строк между листами src и dst.
••••••••••
Обсудить:
Источник:
Объединяет информацию из двух Google Таблиц. Например, сценарий можно использовать для объединения информации о людях, экспортированной из системы LDAP, со списком назначений проекта.
Первая строка таблицы src / dst должна содержать метки для каждого столбца. Самая левая метка на листе dst считается keyLabel, а значения в этом столбце считаются ключами . Эти ключи используются для сопоставления строк между листами src и dst.
••••••••••
Обсудить:
GitHub
cvonk/gas-sheets-merge
Combines the information from two Google Sheets. Contribute to cvonk/gas-sheets-merge development by creating an account on GitHub.
Forwarded from Голосовые чаты в Telegram
FAQ: Что нужно знать создателям голосовых чатов
— Чтобы запустить голосовой чат, нужно обновить Telegram до последней версии, зайти в информацию о канале и нажать на «Начать голосовой чат».
— Для голосового чата можно задать имя. Отразите в названии голосового чата главную суть вашей встречи со слушателями: укажите название, которое соответствует теме разговора.
— Запускайте собственные аудиочаты в каналах: по сравнению с группами, каналы привлекут большую аудиторию. Но если запускаете голосовой чат в группе, в опциях голосового чата можно, как и в канале, разрешить говорить только администраторам.
— Заранее анонсируйте войсчат: у ваших подписчиков будет время узнать про него, а у вас — выстроить план разговора. В анонсе используйте слова "Голосовой чат" — так нам будет проще найти ваш анонс и рассказать о голосовом чате нашим подписчикам.
— Ссылка на голосовые чаты не меняется: если вы хотите пригласить слушателей, просто добавьте к адресу собственного канала
Ссылка начнет работать только после старта голосового чата.
Для спикеров создаются отдельные, персональные ссылки, которые по окончанию голосового чата будут обнулены. Сгенерировать их можно только после старта войсчата.
— Найдите модератора для голосового чата. Чтобы ведущему не заниматься техническими вопросами, попросите проконтролировать эфир одного из ваших администраторов. Он сможет регулировать уровень звука всех спикеров для всех слушателей, и активировать определённым гостям микрофон.
— Голосовой чат можно записать, чтобы в дальнейшем разговор могли послушать и другие читатели вашего канала: просто нажмите на кнопку записи голосового чата в начале трансляции. О том, что беседа записывается, можно понять по мигающей красной точке сверху, возле наименования чата. Запись голосового чата после его окончания появится у вас в «Избранном».
— Если хотите подключить ваших слушателей к разговору — объясните им, как это сделать. Следует нажать кнопку «Поднять руку», а после того, как его назначат спикером, активировать микрофон. Также советуйте спикерам, которые не участвуют в разговоре в текущий момент отключать микрофон, чтобы те не "засоряли" эфир посторонними звуками. Точно так же выключайте и свой микрофон, чтобы не было эха при вещании спикеров.
#FAQ
— Чтобы запустить голосовой чат, нужно обновить Telegram до последней версии, зайти в информацию о канале и нажать на «Начать голосовой чат».
— Для голосового чата можно задать имя. Отразите в названии голосового чата главную суть вашей встречи со слушателями: укажите название, которое соответствует теме разговора.
— Запускайте собственные аудиочаты в каналах: по сравнению с группами, каналы привлекут большую аудиторию. Но если запускаете голосовой чат в группе, в опциях голосового чата можно, как и в канале, разрешить говорить только администраторам.
— Заранее анонсируйте войсчат: у ваших подписчиков будет время узнать про него, а у вас — выстроить план разговора. В анонсе используйте слова "Голосовой чат" — так нам будет проще найти ваш анонс и рассказать о голосовом чате нашим подписчикам.
— Ссылка на голосовые чаты не меняется: если вы хотите пригласить слушателей, просто добавьте к адресу собственного канала
?voicechat. Полная ссылка будет выглядеть так: t.me/voiceinfo?voicechat.Ссылка начнет работать только после старта голосового чата.
Для спикеров создаются отдельные, персональные ссылки, которые по окончанию голосового чата будут обнулены. Сгенерировать их можно только после старта войсчата.
— Найдите модератора для голосового чата. Чтобы ведущему не заниматься техническими вопросами, попросите проконтролировать эфир одного из ваших администраторов. Он сможет регулировать уровень звука всех спикеров для всех слушателей, и активировать определённым гостям микрофон.
— Голосовой чат можно записать, чтобы в дальнейшем разговор могли послушать и другие читатели вашего канала: просто нажмите на кнопку записи голосового чата в начале трансляции. О том, что беседа записывается, можно понять по мигающей красной точке сверху, возле наименования чата. Запись голосового чата после его окончания появится у вас в «Избранном».
— Если хотите подключить ваших слушателей к разговору — объясните им, как это сделать. Следует нажать кнопку «Поднять руку», а после того, как его назначат спикером, активировать микрофон. Также советуйте спикерам, которые не участвуют в разговоре в текущий момент отключать микрофон, чтобы те не "засоряли" эфир посторонними звуками. Точно так же выключайте и свой микрофон, чтобы не было эха при вещании спикеров.
#FAQ
Forwarded from volond
/**
* Первая буква в столбце В верхний регистр
* @param {SpreadsheetApp.Range} range
* @customfunction
*/
var mapToUpperCase=(range)=>{
range=Array.isArray(range)?range:[range]
return range.map(el=>{
var str=el[0]
var [a,...rest]=[...str]
return [[a.toUpperCase(),rest.join("")].join("")]
})
}Forwarded from volond
/**
* JOIN с
* @customfunction
*/
var progressiveJoin=(range)=>{
return range.flat().map((el,i,arr)=>!i?[el]:[arr.slice(!i?1:0,i+1).join()])
}Взаимодействие между web-приложениями через Web Intents
Источник:
В Android OS эта проблема решается при помощи Intents[1] — архитектуры, позволяющей взаимодействовать компонентам одного или нескольких различных приложений. По этой схеме, клиенсткое приложение создает запрос (к примеру, разослать что-нибудь) и задает параметры, которые будут переданы другому приложению-сервису. После этого пользователю предоставляется список приложений, которые регистрировали свою возможность обрабатывать данный тип intent-запроса. Затем выбранное пользователем приложение запускается в новом контексте, и ему передаются параметры, переданные клиентом в некоем, заранее определенном для конкретного типа intent, формате.
Мы считаем своей основной и важнейшей задачей разработку простого и удобного в использовании API. При помощи Web Intents, вы можете подключить web-приложение к необходимому сервису используя всего лишь две строки кода! Chome сделает все остальное за вас.
••••••••••
Обсудить:
Источник:
В Android OS эта проблема решается при помощи Intents[1] — архитектуры, позволяющей взаимодействовать компонентам одного или нескольких различных приложений. По этой схеме, клиенсткое приложение создает запрос (к примеру, разослать что-нибудь) и задает параметры, которые будут переданы другому приложению-сервису. После этого пользователю предоставляется список приложений, которые регистрировали свою возможность обрабатывать данный тип intent-запроса. Затем выбранное пользователем приложение запускается в новом контексте, и ему передаются параметры, переданные клиентом в некоем, заранее определенном для конкретного типа intent, формате.
Мы считаем своей основной и важнейшей задачей разработку простого и удобного в использовании API. При помощи Web Intents, вы можете подключить web-приложение к необходимому сервису используя всего лишь две строки кода! Chome сделает все остальное за вас.
••••••••••
Обсудить:
Хабр
Взаимодействие между web-приложениями через Web Intents
Прим.: Обычно не занимаюсь переводами, но новость проскочила интересная. В сегодняшней браузерной экосистеме веб-приложения полностью изолированы друг от друга,...
Forwarded from volond
var blankArr=(arr)=>arr.filter((row)=>row.filter((cell)=>!!cell.toString()).length)
var values=(sh)=>{
let name=sh.getName()
let dataRange=sh.getDataRange()
let values=sh.getDataRange().getValues()
let count =blankArr(values).length
let a1Not=dataRange.getA1Notation()
return [name,count,a1Not]
}
/**
* Информация о количестве непустых строк
* в листах активной книги
* @customfunction
*/
function rowsCountNoBlank(){
return SpreadsheetApp
.getActiveSpreadsheet()
.getSheets()
.map(values)
}
function test(){
console.log(rowsCountNoBlank())
}
var values=(sh)=>{
let name=sh.getName()
let dataRange=sh.getDataRange()
let values=sh.getDataRange().getValues()
let count =blankArr(values).length
let a1Not=dataRange.getA1Notation()
return [name,count,a1Not]
}
/**
* Информация о количестве непустых строк
* в листах активной книги
* @customfunction
*/
function rowsCountNoBlank(){
return SpreadsheetApp
.getActiveSpreadsheet()
.getSheets()
.map(values)
}
function test(){
console.log(rowsCountNoBlank())
}
Forwarded from GAS Library: EventEmitter (Максим Стоянов)
Библиотека для Google Apps Script.
EventEmitter - представляет собой объект реализующий работу с событиями.
URL файла-проекта:
https://script.google.com/home/projects/1YN3YNaA5JaiY7d_0R4Afxg1YwrU2EVi4y86QuqvkWs0o78eKvMWHL7FI/edit
ID библиотеки:
EventEmitter - представляет собой объект реализующий работу с событиями.
URL файла-проекта:
https://script.google.com/home/projects/1YN3YNaA5JaiY7d_0R4Afxg1YwrU2EVi4y86QuqvkWs0o78eKvMWHL7FI/edit
ID библиотеки:
1YN3YNaA5JaiY7d_0R4Afxg1YwrU2EVi4y86QuqvkWs0o78eKvMWHL7FIVolond Apps pinned «Библиотека для Google Apps Script. EventEmitter - представляет собой объект реализующий работу с событиями. URL файла-проекта: https://script.google.com/home/projects/1YN3YNaA5JaiY7d_0R4Afxg1YwrU2EVi4y86QuqvkWs0o78eKvMWHL7FI/edit ID библиотеки: 1YN3YNa…»
Шпаргалка по регулярным выражениям. В примерах
Источник:
Регулярные выражения (regex или regexp) очень эффективны для извлечения информации из текста. Для этого нужно произвести поиск одного или нескольких совпадений по определённому шаблону (т. е. определённой последовательности символов ASCII или unicode).
#regex #regexp
••••••••••
Обсудить:
Источник:
Регулярные выражения (regex или regexp) очень эффективны для извлечения информации из текста. Для этого нужно произвести поиск одного или нескольких совпадений по определённому шаблону (т. е. определённой последовательности символов ASCII или unicode).
#regex #regexp
••••••••••
Обсудить:
Medium
Шпаргалка по регулярным выражениям. В примерах
Эта шпаргалка по основным шаблонам регулярных выражений, которые помогут вам для решения повседневных задач.
Forwarded from DidacticСardsBot
Google анонсировала новый язык программирования
Источник:
На сайте поискового гиганта появился свежий пост, в котором компания рассказала о своём новом проекте. Он представляет из себя новый декларативный язык логического программирования, названный Logica.
Представители компании заявили, что в основном новинка предназначена для «манипулирования данными и транслирования программ в язык SQL».
Logica будет полезна разработчикам, которые хотят использовать логическое программирование для написания запросов к базе данных. Уже сейчас новый язык Google имеет поддержку Google BigQuery, PostgreSQL и SQLite.
••••••••••
Обсудить:
Источник:
На сайте поискового гиганта появился свежий пост, в котором компания рассказала о своём новом проекте. Он представляет из себя новый декларативный язык логического программирования, названный Logica.
Представители компании заявили, что в основном новинка предназначена для «манипулирования данными и транслирования программ в язык SQL».
Logica будет полезна разработчикам, которые хотят использовать логическое программирование для написания запросов к базе данных. Уже сейчас новый язык Google имеет поддержку Google BigQuery, PostgreSQL и SQLite.
••••••••••
Обсудить:
Tproger
Google анонсировала новый язык программирования
С его помощью компания хочет облегчить работу с базами данных. Уже сейчас новинки поддерживает Google BigQuery, PostgreSQL и SQLite.