Volond Apps
220 subscribers
216 photos
28 videos
22 files
994 links
Программирование для души и от лени
Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Download Telegram
Forwarded from Библиотека программиста
✏️ Такую документацию по командам Git вы ещё не видели.
Объектно-ориентированное программирование в примерах

Не получается представить программу в виде объектов? Цикл статей на жизненных примерах объяснит концепции ООП:

1. Объяснение понятий классов, объектов и интерфейсов: https://tprg.ru/Re9E

2. Основные принципы ООП — инкапсуляция, полиморфизм, наследование: https://tprg.ru/Zlkf

#ооп
Нашли для вас 20 однострочников на JavaScript — программ, код которых умещается в одну строку и призван выполнять разные функции. Надеемся, они помогут вам ускорить и упростить ваши обязанности и выйти на новый уровень.
В VS Code любую команду можно выполнить через командную строку, но наличие практических комбинаций клавиш может здорово сэкономить время разработки. Нашли для вас наиболее полезные сочетания, которые значительно повысят скорость написания кода. Вам осталось только запомнить их)
Python, например

Автор: Лейси Никола
Год издания: 2021

#Python #русский
Forwarded from Google Таблицы
Ну что, друзья, пора бы нам и о Формах поговорить...
Сегодня делимся полезной статьей от Александра Макеева - про предзаполненную форму.

Это возможность сразу отображать образец заполнения формы. В статье о самом образце, о том, как формируется ссылка на образец заполнения и как формулой в Таблицах сформировать ссылки на большое количество предзаполненных форм, а не таскать данные "руками" из таблицы в каждую форму.

Благодарим Александра за отличный материал!

https://telegra.ph/Google-Form-Predzapolnenie-08-15-2
Forwarded from volond
Года 3 назад @oshliaer сказал что справка Google самая лучшая книга по скриптам я его не понимал а вот недавно прочитал правила наименования переменных типа такого
и как говориться прозрел
Есть еще два прекрасный ресурса 1 и более академический
Из книг
так как я пришел из мира VBA то GOIN GAS
и еще
Forwarded from volond
Имена месяцев из дат без дополнительного списка
=arrayformula(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(TEXT(date(2021;SEQUENCE(12;1;1);1);"mmmm.yyyy");"я\.";"ь ");"та\.";"т ");"аь";"ай"))
Forwarded from Эксплойт
⛳️ Учимся гуглить. Секреты поиска Google, о которых должен знать каждый

Информация - нефть 21 века, а умение ее искать мастхев-навык для каждого современного человека.

Google обычно отлично справляется с поставленной задачей, даже если вы ввели запрос неверно. Однако когда дело доходит до использования поиска в исследовательских целях или необходим более узкий и точный результат – стоит воспользоваться продвинутыми настройками.

Вы можете использовать скрытые модификаторы поиска, чтобы намного быстрее получать более точные результаты. В этой статье мы собрали самые полезные из них:

exploit.media/tech/google-secrets/
Forwarded from Alexander Ivanov
Возможно, что-то вроде
function controlCallSimpleService(){

var webAppUrl ='https://script.google.com/a/DOMAIN/macros/s/id123123123/exec';

var token = ScriptApp.getOAuthToken();

var options = {
'method' : 'post'
, 'headers': {'Authorization': 'Bearer '+ token}
, muteHttpExceptions: true
};

var response = UrlFetchApp.fetch(webAppUrl, options);
console.log(response.getContentText());
}
Forwarded from Александр
Образцы шаблонов даты и времени
Источник:
Google Forms использует шаблоны даты и времени Oracle для форматирования и анализа дат. Вот несколько примеров форматов и соответствующие выходные данные, которые будут отображаться в сообщениях электронной почты.

═══════════════════════════════
Date and Time Patter |Formatted Text Output
═══════════════════════════════
yyyy-MM-dd hh:mm |2020-11-19 11:34 PM
═══════════════════════════════
yyyy-MMM-d HH:mm:ss |2020-Nov-19 23:34:49
═══════════════════════════════
MMMMM dd, yyyy |November 19, 2020
════════════════════════════════
EEE, d MMM yyyy |Thu, 19 Nov 2020
═══════════════════════════════
EEEEE, d MMM yyyy |Thursday, 19 Nov 2020
════════════════════════════════
yyyy/MM/dd HH:mm:ss | 2020/11/19 23:34:49
════════════════════════════════
••••••••••
Обсудить
Forwarded from Юрий
Кстати, может кому-то будет полезно, 2GIS ввел API в тестовом режиме, кто хочет может попробовать, правда мне до сих пор ответа с ключом доступа так и не прислали (прошло больше суток)
https://dev.2gis.ru/
Тестируем триггеры
/**
* Test function for onEdit. Passes an event object to simulate an edit to
* a cell in a spreadsheet.
*
* Check for updates: https://stackoverflow.com/a/16089067/1677912
*
* See https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
*/
function test_onEdit() {
onEdit({
user : Session.getActiveUser().getEmail(),
source : SpreadsheetApp.getActiveSpreadsheet(),
range : SpreadsheetApp.getActiveSpreadsheet().getActiveCell(),
value : SpreadsheetApp.getActiveSpreadsheet().getActiveCell().getValue(),
authMode : "LIMITED"
});
}

/**
* Test function for Spreadsheet Form Submit trigger functions.
* Loops through content of sheet, creating simulated Form Submit Events.
*
* Check for updates: https://stackoverflow.com/a/16089067/1677912
*
* See https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
*/

function test_onFormSubmit() {
var dataRange = SpreadsheetApp.getActiveSheet().getDataRange();
var data = dataRange.getValues();
var headers = data[0];
// Start at row 1, skipping headers in row 0
for (var row=1; row < data.length; row++) {
var e = {};
e.values = data[row].filter(Boolean); // filter: https://stackoverflow.com/a/19888749
e.range = dataRange.offset(row,0,1,data[0].length);
e.namedValues = {};
// Loop through headers to create namedValues object
// NOTE: all namedValues are arrays.
for (var col=0; col<headers.length; col++) {
e.namedValues[headers[col]] = [data[row][col]];
}
// Pass the simulated event to onFormSubmit
onFormSubmit(e);
}
}

Подсказки
При моделировании событий старайтесь как можно точнее сопоставить задокументированные объекты событий.

Если вы хотите проверить документацию, вы можете зарегистрировать полученное событие от своей триггерной функции.

Logger.log( JSON.stringify( e , null, 2 ) );

В событиях отправки формы электронной таблицы:
все значения namedValues ​​являются массивами.
Метки времени - это строки, и их формат будет локализован в соответствии с локалью формы. При чтении из электронной таблицы с форматированием по умолчанию * они являются объектами Date. Если ваша функция триггера полагается на строковый формат отметки времени (что является плохой идеей), убедитесь, что вы правильно моделируете значение.
Если в вашей электронной таблице есть столбцы, которых нет в вашей форме, метод в этом сценарии будет имитировать «событие» с включенными этими дополнительными значениями, а это не то, что вы получите при отправке формы. < / li>
Как указано в проблеме 4335 , массив values пропускает пустые ответы (в «новых формах» + «новых таблицах»). Для моделирования этого поведения используется метод filter(Boolean).

Обновление 2017 г .: Отлаживайте объекты событий с помощью Stackdriver Logging для скрипта Google Apps. В строке меню редактора скриптов перейдите к: View > Stackdriver Logging для просмотра или потоковой передачи журналов.

console.log () будет писать сообщения уровня DEBUG

function onEdit (e) {
var debug_e = {
authMode: e.authMode,
range: e.range.getA1Notation(),
source: e.source.getId(),
user: e.user,
value: e.value,
oldValue: e. oldValue
}

console.log({message: 'onEdit() Event Object', eventObject: debug_e});
}

function onFormSubmit (e) {
var debug_e = {
authMode: e.authMode,
namedValues: e.namedValues,
range: e.range.getA1Notation(),
value: e.value
}

console.log({message: 'onFormSubmit() Event Object', eventObject: debug_e});
}


function onChange (e) {
var debug_e = {
authMode: e.authMode,
changeType: changeType,
user: e.user
}

console.log({message: 'onChange() Event Object', eventObject: debug_e});
}

Затем проверьте журналы в Stackdriver UI, помеченном как строка message, чтобы увидеть выход

Источник:
Forwarded from Рестарт
This media is not supported in your browser
VIEW IN TELEGRAM
CodeSee — сервис для визуализации кода

Это автоматически генерируемые, самообновляющиеся диаграммы кода. Они синхронизируют вашу кодовую базу по мере развития кода.

Сервис поможет понять, как связаны файлы и папки, увидеть, как изменения кода вписываются в более крупную архитектуру, и многое другое.

CodeSee может отображать файлы и папки для любого языка с возможностью визуализировать зависимости между кодовыми базами Go, Java, JavaScript, Python и TypeScript.

GIT #программирование