Как бизнесу рассказать о своих услугах, не делая закрепленные сторис
Ходили когда-нибудь по странице мастера или кондитера в непонимании, как сделать заказ? Возможно, ваши клиенты тоже не могут сориентироваться и не понимают, как у вас купить. Расскажем, как небольшому бизнесу грамотно собрать информацию о себе, используя GemDoc. Для примера возьмем страничку кондитера.
1. Создайте документ в GemDoc
Если вы еще не зарегистрированы, перед этим нужно войти в сервис через VK ID или e-mail.
После — нажмите на «плюсик» и создайте новый документ.
2. Назовите его так, чтобы все поняли
Напишите, что предлагаете заказать, добавьте свое имя. Дополнительно можете указать, из какого вы города или в каком районе работаете.
3. Добавьте основные условия заказа в самом начале
Расскажите, когда не сможете доставить торт, за сколько дней нужно сделать заказ и что важно учесть, перед тем, как к вам обратиться.
👉 Обязательно оставьте контакты на видном месте, чтобы номер телефона не пришлось долго искать.
4. Расскажите о деталях
Например, укажите, какие начинки для десертов вы можете предложить.
5. Загрузите фото ваших десертов или как-то иначе покажите свою работу
Так у всех точно разыграется аппетит!
6. Укажите стоимость
Вы всегда сможете поменять ее. Не нужно будет переделывать актуальные сторис в соцсетях или писать новый закрепленный пост.
7. Опубликуйте документ
Это можно сделать в «Настройках доступа». Активируйте кнопку «Опубликовать документ», чтобы его могли видеть все пользователи интернета, у которых есть ссылка.
8. Готово!
Документ будет выглядеть так⬇
GemDoc — онлайн-сервис для создания документов, заметок и учебных материалов. Можно редактировать текст, загружать иллюстрации и проводить опросы.
Есть совместное редактирование и возможность опубликовать документ в интернете для всех.
Не поссориться и все-таки отдохнуть: как выбрать место для корпоратива в сервисе GemDoc
Участвовали в скучных корпоративах? Наверняка! Ведь одним интересен поход в бар, другим — пейнтбол, а третьим — мастер-класс по лепке пельменей. Но чтобы выяснить это, нужно выдержать часы баталий с коллегами. Мы устали от споров и создали сервис для работы с контентом GemDoc.
В статье расскажем, как за 3 минуты организовать голосование и больше не тратить время на дискуссии в офисе и чатах. Вот наша инструкция⬇
0. Зарегистрируйтесь в сервисе. Если использовать VK ID, создадите аккаунт в один клик. Через почту чуть дольше, но не критично.
1. Создайте новый документ, он же топик. Назовите его так, чтобы все поняли, что вы собираетесь обсудить. Варианты, вроде «Новый документ» не подходят.
2. Опишите, зачем проводите корпоратив, в какую дату и по какому поводу.
3. Добавьте в топик блок «Голосование». Так получится провести опрос.
4. Укажите все варианты, которые у вас есть. Пропишите название и описание варианта и сохраните его. Потом можно добавить следующий.
Коллеги тоже могут добавить варианты для корпоратива. Для этого попросите их зарегистрироваться в сервисе и добавьте их в соавторы. Пусть они тоже выскажут мнение.
5. Пропишите возможность остаться дома. Вдруг праздники и вечеринки уже всем надоели😅
6. Добавьте подробности с помощью инструментов «Текст» и «Изображение».
7. Позовите коллег голосовать за варианты. Главное — поставьте дедлайн, чтобы все точно успели высказаться.
gemdoc.ru — российская смесь Notion и Coda. Основная функция — работа с контентом. В GemDoc можно написать текст, проиллюстрировать его, провести голосование и объединить страницы в базы знаний по разным темам.
Мой подход к изучению иностранного языка и моё WEB-приложение
Сейчас много различных приложений для изучения иностранных языков. Некоторые из них довольно простые, другие обладают широчайшим функционалом, прикручивают геймификацию и вообще пытаются научить всему и сразу. Чем сложнее и шире спектр изучаемого, тем больше приходится делить это на составляющие и "есть слона по частям".
Когда у меня возникла потребность в изучении английского, я попытался разобраться, что действительно работает, и как добиться значимого прогресса с минимальными усилиями. Я собирал информацию, учился и сформировал собственное отношение.
Ах, если бы мы могли посвятить все силы новому языку, а в остальное время просто отдыхать и копить энергию для очередного рывка. Мечты, мечты... Но действительность сурова, и у нас остаётся не так уж много личных ресурсов, чтобы себя прокачивать, особенно если мы не видим мгновенного профита и не можем понять прямо сейчас, какую гигантскую пользу получим. Но изучая новое, мы буквально перестраиваем своё мышление.
Далее я излагаю свои взгляды по этой теме, обозначаю ключевые моменты и предлагаю собственное решение.
Предыстория:
Однажды мне понадобилось подтянуть английский. Вот прям припёрло настолько, что дальше двигаться по профессии стало крайне неэффективно. Словарный запас, как выяснилось, хромал на обе ноги, хотя и позволял работать, а доки то и дело приходилось совать в переводчик.
Собрав немного информации про изучение иностранных языков, я понял, что чтение, написание, слушание и говорение - это 4 почти отдельных навыка. Я стал пробовать разные приложения, но быстро пришёл к выводу, что лошадь следует ставить впереди телеги, а именно, лично для меня наиболее подходящими оказались Anki и Memrise.
Именно максимально простое изучение, именно и ТОЛЬКО СЛОВ как основы языка, я посчитал наиболее эффективным, в том числе и для ускорения обучения на более продвинутых уровнях, если это будет необходимо. Это будет мощной базой и колоссальным подспорьем для развития других навыков, помимо чтения. Более того, если вы уже набрали минимальную базу иностранных слов, постоянное повторение и само напряжение в процессе изучения очень позитивно сказывается на, например, понимании текстов, потому что вы как бы держите пул слов в "оперативной памяти".
С другой стороны, важно понимать значимость так называемого "осознанного обучения". Если всё разжёвывать и класть в рот, то никакого эффективного обучения не случится, потому что человек должен прилагать сознательные усилия для научения своего мозга. На самом деле главный секрет - РЕГУЛЯРНЫЕ усилия в нужную сторону!
У "программы карточек" Anki много возможностей, но много и заморочек. В общем, долбил Memrise больше года по 15 минут два раза в день. Я старался осознанно прилагать усилия для запоминания слов, в том числе используя различные мнемоники (можно погуглить "Мнемоника").
А так как я человек ленивый, сосредоточиться всего на 15 минут - это меня вдохновляло.
Что самое главное для эффективного запоминания, в процессе я постоянно обращался к переводчикам гугла и яндекса, чтобы посмотреть изучаемые слова в контексте - показывал своему мозгу целые предложения с этим словом и заставлял его пробовать понять их смысл. Поначалу просто смотрел предложение и перевод, со временем дела пошли заметно успешнее.
Примерно через полгода я начал читать Марсианина в оригинале, и мне сильно не хватало в Memrise возможности вести свои небольшие словари по темам и подмешивать незнакомые слова из них в основной поток изучаемых слов.
Дело в том, что для продуктивного обучения используются так называемые "частотные словари" - сначала вы изучаете наиболее часто употребляемые слова. Скажем так, для понимания 80-90 процентов информации вам нужно всего лишь, например, 5000 самых часто встречающихся слов из всех-всех слов иностранного языка. Это позволяет максимально быстро нарастить свой словарь иностранных слов и начать понимать основную массу иностранных текстов.
Со временем стало не хватать возможности, встретив хорошо знакомое слово, добавить его сразу в изученные слова, чтобы не возвращаться к нему снова.
Тут стоит отметить, что Memrise использует схему, похожую на так называемый "режим рационального повторения", - подкидывает вам слово снова и снова по некой схеме (например, через сутки, потом через неделю, месяц и т.д.). Если вы не будет допускать ошибки при проверке слова, это слово в итоге попадёт в "выученные слова".
Потом, очень понравился отдельный режим "трудных слов". Если вы никак не можете выучить слово и постоянно допускаете в нём ошибки, Memrise определит это слово в "трудные", и вы сможете изучать подобные слова отдельно, возможно, по несколько иному алгоритму. И тут нелишней была бы возможность сразу определить встреченное слово в эту категорию, если вы знаете что подобного рода слова даются вам с трудом.
Как известно, перевести с одного языка на другой можно, но нельзя. Это трудно объяснить, но понять это возможно только открыв для себя новое измерение жизни, выучив иностранный язык. Грубо говоря, это иной параллельный способ мыслить, который обогатит любого человека любой профессии так, как невозможно было представить доселе. Поэтому можно забыть об одном переводе иностранного слова, можно зыбыть о точном переводе, о переводе единственном. Наглядным доказательством служит изменение значения слова в зависимости от контекста. Для каждого иностранного слова должен быть представлен целый пул слов родного языка, желательно отсортированный по частоте использования.
Предпосылки:
Учитывая отсутствие важного для меня функционала в приложении Memrise, появилось желание создать "идеальный" продукт, конечно со своего взгляда на эту проблему.
Передо мной вставал вопрос: "А зачем я буду тратить своё время? Их же тысячи!". Это прозвучит громко, но для меня имело значение, что проект принесёт пользу другим людям. Даже если небольшое количество человек посчитают инструмент, разработанный мной, полезным - это ну очень круто.
Ну и позитивное влияние на собственный прогресс в языке, согласно "Технике обучения Фейнмана" отрицать бессмысленно.
Для меня это был шаг в сторону своей реализации - улучшить что-то в этом мире, что будет нужно другим. Привнести своё видение, предложить людям то, что я считаю полезным и эффективным. Убедиться, что я смогу сделать сам, насколько далеко я смогу продвинуться. Плюс открылась возможность дополнительно прокачаться по широкому стеку технологий, бросить себе вызов.
Спустя некоторое время нашёлся инвестор, который поддерживал мой проект. К сожалению, последние события вынудили его прекратить финансирование на неопределённый срок.
Я сформировал функциональные требования, которыми должно обладать моё приложение.
Основные требования к приложению:
Должно быть доступно с любого устройства через браузер и интернет.
Должно адекватно отображаться на различных устройствах с различным разрешением и размером экрана. Глаза ломаться не должны.
Должно быть максимально возможно лёгким (объём загрузки) и быстро работать.
Должно обучать словам и только словам.
Должно иметь минимум функционала, чтобы хорошо выполнять одну и только одну функцию, и пользователь ощущал бы себя как в любимых домашних тапочках, пользовался бы приложением как зубной щёткой, на "кончиках пальцев".
Не должно быть никакой геймификации - "вам шашечки или ехать?!".
Должна быть возможность пользоваться приложением "без заморочек", без блужданий в интерфейсе - выдалось 5 минут свободного времени - погнали долбить слова! Нашлись силы сконцентрироваться на 15 минут - превосходно, рванули долбить слова!
Должно иметь минимальный порог входа, но такой барьер быть должен, ведь впереди путь, требующий вложения энергии.
Не должно функционировать в качестве диалога, должно провоцировать прилагать сознательные усилия к обучению. По вышеописанным причинам.
Должно использовать "частотный словарь" иностранных слов (на данный момент в приложении 17696 самых распространённых английских/американских слов).
Должно использовать "режим рационального повторения" (можно погуглить "Кривая забывания").
Должна быть возможность услышать, как произносится слово.
Должно показывать для изучаемого слова определённый объём переводов и значений на родном языке, желательно отсортированных по частоте использования.
Должно показывать объяснение (толкование) изучаемого слова с помощью других слов того же языка.
Должно показывать предложения (примеры), в которых содержится изучаемое слово, как с переводом, так и без оного. Важно сразу увидеть слово в контексте!
Должно показывать синонимы для изучаемого слова, желательно отсортированные по частоте применения.
Должно показывать изображения (мемы, приколы и т.п.), относящиеся к слову, для лучшего запоминания, для задействования эмоциональной составляющей нашей психики.
Должна быть возможность сразу определить встреченное слово в "Выученные слова" или в "Трудные слова".
Должна быть возможность изучать/повторять "Трудные слова" отдельным потоком.
Должна быть возможность вести свои словари по отдельным темам (например, Марсианин или Гарри Поттер) и включать слова из них в основной поток изучения "частотного словаря".
Ну что ж, загоревшись идеей, засучил рукава. Долго ли, коротко ли, довёл приложение до рабочего состояния, потестил. Выложил на сервер. Стало возможно использовать как и задумывалось. Разумеется, будут баги и неожиданности. Надо смотреть под нагрузкой, допиливать функционал. Но основная масса работы уже позади, не стыдно и показать.
Вынести на суд пикабушников своё творение меня сподвигли две вещи:
Первая - это волна, где вы делились своими фото с профессиями, тут я понял, как разнообразна аудитория пикабу и как много у неё интересов.
Вторая - недавно был пост, где комрад демонстрировал свою программу для изучения иностранного языка и свой взгляд на это дело.
И я подумал: "Пришла пора показать и моё приложение и попросить поддержки"...
Ура! Проект живёт. Тестовый доступ на 1000 слов работает бесплатно. Этого должно быть достаточно для понимания сути проекта и проделанной работы. Жду критики и обратной связи. Хочется понять, как люди отреагируют, как увидят со своей стороны.
Юзать лучше через Google Chrome браузер (Yandex browser, Edge browser), там работает вибро, и вёрстка максимально без багов. Но проверяю обычно и в Mozilla (FireFox), и в Safari (iOS, macOS).
Проект сейчас находится на такой стадии, что его дальнейшая судьба нуждается в затратах времени. А у меня нет возможности уделять проекту много сил, потому что исчерпаны все финансы. Тянуть весь стек в одного - не легко, а нанимать помощника на этом этапе невозможно без прибыли.
Я надеюсь найти финансирование на свой проект, чтобы сделать его полностью таким, как задумывалось.
Я буду рад и благодарен, если вы сможете поддержать мою работу и дать моему приложению путёвку в жизнь.
Частью проекта я обязан инвестору, но есть договорённость, что донаты не будут входить в общий пул доходов, чтобы была возможность поддержать проект без оформления юридической стороны дела на первом этапе. Так же решили давать льготную подписку тем, кто сможет оказать помощь.
В любом случае спасибо за уделённое время.
Да прибудет с вами сила!
Адрес приложения:
https://groklang.ru
Группа в Telegram:
https://t.me/groklang
Почта для поддержки:
support@groklang.ru
Оказать помощь проекту:
Внимание!!!
Пожалуйста, в комментарии к платежу укажите способ связи с вами, чтобы я мог идентифицировать вашу помощь и учесть для льготной подписки.
В приложении после авторизации можно посмотреть свой ID (уникальный идентификатор) в настройках пользователя. Лучше всего указать именно ID в комментарии к платежу.
Вы можете оказать помощь прямо из приложения - ссылка находится в диалоге "Like" ( 👍 ).
ЗЫ:
Стек, кому интересно: Python (aiohttp); Postgres; Svelte + Ionic
Как получить удаленный доступ к компьютеру с помощью любого хромоподобного браузера
Когда требуется удаленно управлять другим устройством, одним из лучших вариантов является программа TeamViewer, но есть и более простой способ, как например бесплатное расширение Chrome Remote Desktop.
Вам нужно будет установить его на оба устройства, после чего предоставить необходимые разрешения и создать ПИН-код для защиты. Вас также могут попросить установить дополнительный процесс, необходимый для работы расширения.
В итоге у вас будет две опции — поделиться управлением своим устройством или управлять другим компьютером. В первом случае, вы получите код, который нужно будет ввести на другом устройстве. Графический интерфейс операционной системы появится прямо в окне браузера.
Атакуем веб-приложения. Уязвимость SQLi. Часть 1 - Теория
Данный пост носит теоретический характер.
В данном посте будет описано что из себя представляет SQLi и как это может быть использовано (в том числе и в незаконных целях).
Крактое определение.
Внедрение SQL-кода (SQL injection) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
Как это работает?
объясненние сделано максимально простым и опущены некоторые нюансы
Для представления механизма работы SQLi, нужно представлять, что такое база данных и скрипты, в которых производятся запросы к базе данных, а также знать хотя бы на примитивном уровне SQL и иметь навык написания базовых запросов.
Грубо говоря, обычная, в нашем понимании, БД состоит из множества таблиц. У каждой таблицы, естественно, есть столбцы и есть строки. Собственно, это ключевой момент. Возьмем к примеру таблицу пользователей какого-либо интернет-магазина. Для каждого пользователя должно быть описано несколько параметров (логин, адрес электронной почты, дата регистрации, сохранённая карточка и т.д.).
В итоге каждый столбец определяет какой-либо параметр пользователя, а каждая строка - конкретного пользователя. А в пересечении нужного нам столбца и строки будет информация о параметре нужного пользователя.
Пример.
Представим, что вы (скрипт) идёте в магазин (базу данных), и просите в магазине (создаёте SQL запрос и отправляете его в базу данных) продавца: “Мне нужна одна бутылка воды за 25 рублей”.
Теперь переделаем это в SQL запрос к базе данных, получим следующее:
SELECT * FROM магазин WHERE (тип=’вода’ AND цена=25) LIMIT 1
Собственно, в ответ на вашу просьбу (SQL запрос) вы (скрипт) получаете бутылку (информацию), и продавца (Базу данных) уже не волнует, что вы будете с ней делать, так как свою работу он выполнил. Вы можете ее выпить, вылить, подарить (обработать, вывести, рассчитать) и тд.
Что надо бы знать?
Для полного понимания запроса в базу данных необходимо знать на базовом уровне язык SQL, однако даже без особых знаний можно заметить, что запрос выглядит понятным, так как используются довольно известные слова и они трактуются в данном случае однозначно. Вопросы может вызвать разве что окончание запроса: “LIMIT 1” – данная конструкция объявляет, что необходимо выдать только первый найденный результат, если вдруг их больше одного (бутылок по такой цене может быть очень много, но нам нужна только одна).
Все остальные мнемоники (команды) запроса предельно понятны:
SELECT – выбери (возьми)
FROM – из (указывает от куда нужно взять, чаще всего после данной команды следует название одной из таблиц в текущей базе данных)
WHERE – где (указывает какие значения различных параметров должны быть у той строки которую мы хотим получить, по сути указывает критерии для того товара который мы хотим получить)
Для успешной реализации атаки типа SQLi необходимо хорошо знать язык SQL.
Обобщенно атака типа SQL инъекция (SQL injection) возникает в случае если злоумышленник может каким-то образом модифицировать запрос к БД.
Ещё один пример.
Рассмотрим всё тот-же пример с магазином.
Допустим вы решили пойти в магазин за кефиром, и специально написали на бумажке список продуктов, которые хотите купить, чтобы ничего не забыть. Предположим, что у вас дома оказался друг, который очень любит шоколад, однако ему нельзя есть его много и на его просьбу, вы ответили отказом и не стали записывать в листочек его пожелание. Итого вы получаете листочек, в котором на каждой новой строке записаны продукты, которые вам необходимы в магазине. Допустим, что каждый из продуктов будет представлять собой некий запрос к базе данных (магазину) как и в прошлом примере. Вы просто отдаёте продавцу свой листочек (скрипт передаёт запросы в базу данных) и он, читая очередную строку кладёт в ваш пакет тот или иной продукт (сохраняет результаты, того что удалось получить из базы данных). Теперь представим, что в данный листок ваш друг всё-таки умудрился вписать шоколад (провел атаку SQL injection) и продавец, читая очередную строчку может увидеть следующее: “Масло за 100 рублей или шоколад за 150 рублей”. В магазине может не оказаться масла, или продавцу долго за ним идти, и он положит вам в пакет шоколад. Продавец в данном случае не имеет представления о том, что вашему другу нельзя шоколад и вам он тоже особо не нужен, он просто выполняет свою работу, предоставляет продукты согласно переданному ему списку (база данных будет осуществлять работу по возврату данных на основание входящих запросов, если они были составлены правильно). Переведя это в SQL запрос получим следующее:
SELECT * FROM магазин WHERE (тип=’масло’ AND цена=’100’) OR (тип=‘шоколад’ AND цена=‘150’) LIMIT 1
Атака удалась потому что вы не проверили листочек перед тем как отдать его продавцу (скрипт не проверил входные данные перед формированием запроса и его отправки в базу данных).
Где можно найти SQLi?
SQLi может возникать в местах, где есть какие либо входящие параметры, например формы поиска товаров в интернет магазине или форма авторизации, которые есть на большей части всех веб-приложений. Любой не фильтруемый пользовательский ввод – почти всегда приводит к плачевным последствиям.
Особенности.
В случае с SQLi есть некоторые особенности, связанные с запросом, в который подставляются введённые пользователем данные. Например, тип значение, в которое поступают данные от пользователя может быть целочисленным или строковым, или стоять в нескольких скобочных вложениях, что немного затруднит написание зловредного запроса.
В случае с запросом на авторизацию, необходимо понимать, что как таковые данные с помощью такого запроса получить не удастся, так как такого рода запросы чаще всего рассчитываются на получение хэша от пользовательского пароля и сравнение его с высчитанным хэшом от входного пароля.
Большинство из SQLi обнаруживаются путём нарушения общего мнения о том, что должно быть введено в данное поле конечным пользователем, чаще всего срабатывает символ одинарной кавычки, так как многие из параметров – строковые. Подставив в какой-либо параметр кавычку и получив ошибку, содержащую слова “SQL syntax error” или что-то подобное, можно сразу сказать, что скорей всего здесь есть SQLi.
Однако, есть варианты что кавычка фильтруется, или отключен отчёт об ошибках, в этом случае нужно прибегать к другим методам. Про обходы фильтраций будет написано в следующих постах, после того как будут выпущены посты про "практику SQLi" - следите за каналом!
Мы в телеграме: Life-Hack [Жизнь-Взлом]/Хакинг - подписывайся!