Получи случайную криптовалюту за регистрацию!

OutSolik

Логотип телеграм канала @outsolik — OutSolik O
Логотип телеграм канала @outsolik — OutSolik
Адрес канала: @outsolik
Категории: Блоги
Язык: Русский
Количество подписчиков: 5
Описание канала:

Рассуждаю о жизни, рассказываю о том, что умею. Ввожу понятия, за которые не вывожу.

Рейтинги и Отзывы

3.00

3 отзыва

Оценить канал outsolik и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

1

2 звезд

1

1 звезд

0


Последние сообщения

2022-11-13 02:59:27 Когда становится особенно трудно чем-то заниматься, я начинаю считать, сколько примерно времени уйдет на выполнение задачи. Это верный знак, что то, чем я занимаюсь, мне неинтересно (иначе зачем мне знать время на выполнение?).

Прошлый пост был о рассуждениях на тему того, что нужно делать чат-бота в виде игры. Однако, до реализации дело так и не дошло. У меня есть и другие дела, а этот чат-бот был бы лишь в качестве эксперимента. Я умею видеть перспективы чего-либо, и перспективы этого бота не были заоблачными при том количестве времени, которое я собирался выделить на развитие этого проекта. Основные механики были сделаны, и по ощущениям осталось не более 10 часов работы до первой играбельной версии чат-бота.

В итоге, все опять упирается в простую истину: нужно как можно больше дел делегировать на других. Проще заплатить кому-то, чтобы он доделал то, что не кажется приоритетным в данный момент.

Однако, с кодом ситуация обстоит немного сложнее: если его писал кто-то другой, он мог оставить критические баги. Более того, у него на руках есть исходник проекта. Увы, но я не умею организовывать работу таким образом, чтобы на существующие проекты "подключать" других разработчиков без риска, что они могут украсть исходники.

Из вариантов, которые есть у меня в голове, нужно организовать код в виде некого API (или отдельной библиотеки), и давать доступ лишь к документации, а для тестирования работоспособности кода нанятых разработчиков приспособить какую-нибудь виртуальную машину, в которую передается код, и уже она подключает его к общей базе проекта, после чего запускает сервер для тестирования.

Таким образом, нужно проверять безопасность отправляемого кода в эту виртуальную машину. Тут паранойя играет новыми красками, так как уж лучше самому на глаз хотя бы проверить код, и самому протестировать, отправив фидбек разработчику, чем позволять ему отправлять что-либо на какой-либо сервер самолично. В общем, пока что я не готов определиться с тем, как все это делать. Но, мне кажется, что выбранное направление имеет смысл, и нужно хотя бы структурировать один из проектов в виде API/Библиотеки, чтобы попробовать на практике описанное мной.
7 views23:59
Открыть/Комментировать
2022-03-20 22:04:26 Завтра будет юбилейный год с момента последнего поста на этом канале.

Значится, что там у нас... ситуация в мире нестабильная, как и всегда.

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

Самым оптимальным для меня кажутся именно чат-боты ВКонтакте, так как они легко раскручиваются сарафанным радио, да и в принципе привлекать трафик в ВКонтакте дешевле, чем в телеграм. Можно рассуждать о том, что аудитория в телеграм более платежеспособная. Возможно, так оно и есть. Однако, повышенная платежеспособность подразумевает также и повышенные требования к продукту.

При этом, большой плюс ВКонтакте в его локальности: самая большая часть аудитории проживает на территории России, а значит не нужна английская локализация проекта, да и оплату можно принимать через ту же фрикассу, ограничившись приемом QIWI, ЮМани и карт Мир.

За основу проекта лучше взять что-то уже существующее, и просто адаптировать это под чат-бота.

Самый очевидный пример: какая-нибудь мобильная игра.

Еще один важный аргумент в пользу чат-ботов на данный момент: скорость разработки сверхбыстрая, так как временные затраты на интерфейс минимальны (Текст, эмодзи и кнопки).
76 views19:04
Открыть/Комментировать
2021-03-21 04:28:36 Очень важно всегда иметь план по выполнению определенной нормы.

В современном мире идея «ставить цель» извращена инфобизнесом. Но, фактически, мы часто забываем о том, что ставить цели все же нужно.

Причем речь идет не о просто целях вроде «заработать кучу бабла», а нечто более конкретное. План нормы.

Это не абстрактные планы, а конкретные цели, с четким сроком достижения.

Пример: увеличить продажи в своем проекте на 25% за 2 месяца.

Не просто так подобные планы есть у каждой уважающей себя компании.

Когда ставится четкая цель, то пустые скитания становятся непрерывными мыслями и действиями, направленными на ее достижение.

И даже если план не удастся выполнить, хотя бы будут предприняты попытки хоть что-то сделать. Будут придуманы какие-то идеи.

С пониманием текущего плана приходит и спокойствие. Так как не нужно переживать за относительно плохую в данный момент ситуацию, если план для ее решения уже сформирован.
127 viewsedited  01:28
Открыть/Комментировать
2021-03-10 03:57:09 У каждого человека есть то занятие, в котором он разбирается лучше всего. Для меня это программирование. Во время занятия этим делом, я не могу нормально планировать, ведь я сконцентрирован на программировании. Выходит, у меня развитая сущность программиста, но этого недостаточно.

Нужно снять акцент с той сущности, которая отвечает за концентрацию на одном деле, и сформировать общую, основную сущность. Назовем ее Сущность Менеджера.
Это та сущность, которая должна планировать будущие действия и решать, чем заниматься в данный момент.

Нужно как можно чаще находиться в состоянии контроля именно этой сущностью, так как, в конечном счете, человек будет вынужден делегировать большую часть своей деятельности на других людей. А в этом ему поможет именно Сущность Менеджера.

Сущность деятельности (у меня программиста) должна быть хладнокровной и четко выполнять приказы Сущности Менеджера. Менеджер отвечает за креатив, теории, планы. Только Менеджер способен охватить всю картину текущей ситуации и определить, что делать дальше.
95 views00:57
Открыть/Комментировать
2020-12-03 20:02:43 Я заметил за собой такую вещь, что я слишком часто пытаюсь изменить других людей и слишком зацикливаюсь на этом.
Парадокс в том, что я-то это делаю с благими намерениями (трудно поспорить, что попытка улучшить других людей это плохо), однако это только всех бесит.

Если задуматься, то проще сказать человеку, что он ничтожен, чем тратить энергию на какие-то советы и размышления.

Ведь будет 2 возможных исхода:
1. Человек просто обидится на оскорбление, как обиделся бы в любом случае при попытке изменить его.
2. Это оскорбление может мотивировать человека пересмотреть свои взгляды (но это маловероятно).

Получается, что существует больше шансов улучшить человека путем хэйта, либо вообще не думать об этом.

С одной стороны, получается несправедливо, ведь хочется как лучше, но если перестать распыляться на подобные "попытки улучшения других людей", можно будет сосредоточиться лишь на себе самом, и явно добиться большего в собственных делах, чем отвлекаться на советы другим людям и мысли о том, как решить их проблемы. Это им не нужно, иначе бы они уже давно решили их самостоятельно, а не "ждали бы совета".
95 views17:02
Открыть/Комментировать
2019-06-05 20:07:31 О плохих примерах в мануалах/учебниках/гайдах/документации.

Освоение любого дела делится на два ключевых элемента: теорию и практику.
Отдельно на одном элементе далеко не уедешь. Но все же, существует популярное мнение, что практика куда важнее теории. У меня немного иной взгляд на эту ситуацию. Как мне кажется, изучение любого дела или навыка заключается в сопоставлении примеров с логическими заключениями.

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

Я попробую привести очень примитивный пример пример, который будет понятен всем. Положим банан (простите) на стол, оставим его там на месяц. Закономерно, что кожура банана почернеет. Делаем вывод: со временем, кожура банана приобретает темный цвет.

Теперь, увидев почерневший банан, вы будете знать, что он явно лежит дольше, чем в день покупки.
Но это не значит, что все основано на логике. Не стоит полагаться на логические умозаключения слишком часто, ведь в мире очень много независимых от логике вещей.

Примеры должны раскрывать суть изучаемого. Если вы не понимаете из примера, как работает то, что вы изучаете, тогда меняйте этот учебник (под учебником я имею в виду и мануалы, и уроки, и гайды) на другой источник знаний, потому как этот учебник лишь учит теории, без погружения в практику.

Если вы изучаете что-то с помощью общения с реальными людьми (семинар, например), то всегда задавайте вопросы до тех пор, пока не поймете, что вам говорят. Если вы не понимаете, о чем говорит рассказчик, то вы рискуете не понять его никогда.

Только не отражайте мои же слова на меня самого как автора этих постов. Я только учусь излагать свои мысли)
165 views17:07
Открыть/Комментировать
2019-06-05 19:13:11 Еще раз повторюсь, что я начинаю названия переменных и функций со знака _ только для вашего удобства, на деле их можно не использовать. Но будет обидно, когда вы потратите час на определение того, что ваша программа не работает по причине использования уже зарезервированного названия.

Чтобы точно закрепить понимание всех аспектов программирования, которые я описал и опишу, в конце этого обучения я напишу программу по отслеживанию контента на какой-нибудь веб-странице в реальном времени с отправкой push-уведомления в ваш браузер.
117 viewsedited  16:13
Открыть/Комментировать
2019-06-05 19:13:11 Основы программирования. Часть вторая.

Функции. Функции — это мини-программы в вашем коде, которые имеют доступ как к переменным программы (если они находятся в нужной видимости), так и к своим собственным (локальным).
То есть, вы можете завернуть какой-то код в вашей программе в функцию, и вызвать ее когда вам будет нужно. Для чего это нужно? Обычно, чтобы один и тот же участок кода можно было вызвать несколько раз, но с небольшими изменениями (значениями переменных, например).

Рассмотрим пример такой функции:
function _name (){
return “Death”;
}

Здесь слово function означает, что вы хотите создать функцию. Далее следует имя, в наше случае “_name”. После этого идут скобки, в которых перечисляются локальные переменные, которые вы хотите использовать внутри функции. В нашем примере они пока что не нужны, поэтому оставляем содержимое скобок пустым.
Далее начинается самая важная часть функции: код, который будет выполняться при вызове функции, заключенный в фигурные скобки.
В нашем примере есть только одна строчка: return “Death”;
Что она возвращает? Соответственно, строку со значением Death. Слово return означает, что после него вы хотите что-то вернуть как результат выполнения функции и завершить ее выполнение. Да, если после строчки с командой return есть еще какой-то код внутри фигурных скобок функции, этот код не будет выполнен, так как команда return завершило выполнение функции.

Как применять функции?
Либо прямо присваивать переменной:
var _a = _name();

Как видно из примера, скобки по-прежнему нужны, даже если в них пусто. Это делается для того, чтобы интерпретатор (то, что выполняет код javascript) понял, что вы хотите вызвать функцию, а не присвоить переменной значение функции. В нашем примере _a имеет значение “Death”. Однако, если бы мы использовали вызов функции без скобок: var _a = _name;
В таком случае, _a переменная превратилась бы в функцию, которую можно выполнять абсолютно так же:
var _b = _a(); // (не забываем про скобки)

Кстати.
Два символа / означают комментарий после них. Все, что находится после // не будет выполнено (все, что находится позже // и на той же строке).
Если же вы хотите создать большой комментарий на несколько строк, начните с /* тут ваш комментарий, и завершите его с помощью */
/* рабоч
ее коммен
тирование */

// комментарий
А тут уже код

Еще: return может не иметь возвращаемого значения. Вы можете вызвать просто return; и все, если нужная вам задача выполняется функцией (например, меняет какую-то глобальную переменную). Но всегда завершайте функцию через какой-либо return, иначе случится утечка памяти, и программа начнет зависать.

Теперь о переменных в скобках при вызове функции. Все просто. При создании функции, мы перечисляем переменные, которые хотим в нее вводить.
function _test (_name, _number){
return _name+” имеет яблок: “+_number;
}

При вызове, мы должны указать значения этим переменным.
var _a = _test(‘Егор’, 6);
Функция возвращает нам объединение 3 значений в одну строку:
Егор + имеет яблок: + 6
Таким образом, переменная _a примет значение «Егор имеет яблок: 6»

Функцию можно и просто вызвать без создания переменных:
_test(‘Егор’, 6);

Однако, поскольку функция лишь возвращает значение, вы ничего не увидите по результату выполнения функции. Чтобы что-то увидеть в таком случае, функцию следует переделать, например, вот так:
//пример 1. Всплывающее окно
function _test (_name, _number){
var _result = _name+” имеет яблок: “+_number;
alert(_result);
return _result;
}

//пример 2. Вывод в консоль
function _test (_name, _number){
var _result = _name+” имеет яблок: “+_number;
console.log(_result);
return _result;
}

В javascript, как и во многих других языках программирования, есть понятие локальные и глобальные переменные. Советую отдельно прочитать про области видимости переменных, потому что это может быть важно.
113 viewsedited  16:13
Открыть/Комментировать
2019-06-04 16:53:23 console.log(название вашей переменной)
Итак, код:
var _a = 1;
var _b = “8”;
console.log(_a+parseInt(_b));
Выведет в консоль сообщение 9.

Немного философии напоследок:
В программировании любой программы есть 3 этапа (основных, на мой взгляд):
Ввод данных. Получение нужных данных для выполнения программы. Это может быть как использование переменных, о которых я рассказал выше, это может быть парсинг данных со страницы, на которой открыта консоль с javascript кодом. Это может быть ручной ввод данных пользователем (то есть вами), это может быть все, что угодно.

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

Вывод данных. Когда обработка данных завершена, их нужно как-то опубликовать. Либо в базу данных, либо выводом в консоль, либо отправить запрос с сервера пользователю.

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

Я упускаю очень много терминов и моментов, но это вынужденная мера, потому как не просто так книга по какому-нибудь C# (язык программирования, чуть более сложный в освоении, чем javascript) занимает 600-900 страниц. В конечном итоге, с практикой, вы сами придете ко всем упущенным мною знаниям. Программирование — это лишь инструмент для достижения нужного вам результата, и у каждого свой подход. Да, есть плохие практики, когда программа работает в десятки раз медленнее, чем могла бы, или использует в десятки раз больше ресурсов. Но понимание “что хорошо, а что плохо” прийдет с опытом в любом случае.

Глядя на то, что я расписал, я понимаю, что покрыл примерно 10% той информации, которой хотел бы поделиться с вами, поэтому сразу уточняю, что я не закончил. Это было лишь введение.

Из полезных ссылок могу дать один сайт, которого достаточно, чтобы все освоить. Но все равно считаю нужным рассказать о важных аспектах самостоятельно.
http://learn.javascript.ru/
91 views13:53
Открыть/Комментировать
2019-06-04 16:53:23 Основы программирования. Введение.

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

Также, перед обучением стоит заранее наметить себе какую-то идею в виде программы, чтобы была хоть малейшая мотивация все это изучать. Безусловно, программирование — это полезнейший навык. Однако, без должного интереса к нему при изучении, вы быстро сдадитесь (мое мнение).

Выбор языка программирования (сокращенно ЯП. Вдруг потом использую аббревиатуру эту).
Скажу лишь одно: лучше начинать с простого и оптимального под разные нужды, чтобы не отбить желание изучать всю эту ересь.

JavaScript будет хорошим выбором, ведь его можно сразу же запустить и протестировать через, например, консоль разработчика в вашем браузере (для Google Chrome на Windows комбинация клавиш Ctrl + Shift + J. Для Mac OS комбинация Alt + Cmd + J).
Уже сейчас можете попробовать открыть ее и ввести строчку
alert(“test”)
после чего нажать Enter и увидеть всплывшее окно с текстом test.

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

Типы данных.
Это могут быть строки (текст, заключенный в кавычки: “пример текста”), числа, массивы (о них позже), JSON объекты (удобный формат хранения данных в javascript, о нем тоже позже).

В случае с javascript, указывать определенный тип данных не нужно, достаточно просто создать переменную и присвоить ей нужное значение.
Переменная — это тег, который ассоциируется с какими-то данными.

Грубо говоря, вы используете слово или набор слов, можно использовать числа (но не в начале названия переменной, иначе будет ошибка). В общем, латинские (английские) буквы и цифры. Остальные символы использовать нежелательно, хотя некоторые даже по-русски пишут названия переменным.

Важно помнить, что названия переменных не должны совпадать с уже существующими словами в языке программирования. Чтобы этого избежать (для новичков), рекомендую просто начинать названия переменных с андерскора (нижнее подчеркивание).

Теперь пример:
var _a = 1;
В коде выше слово var означает желание создать переменную (variable переводится как переменная).
Далее идет название переменной. В нашем случае, это _a. Далее знак = (операция присвоения значения).
Далее идет 1, то бишь само значение. Javascript сам определит, что переменная является числом.
Однако, если написать:
var _a = “1”;
То переменная _a будет хранить в себе уже не число 1, а строку со значением 1. В чем разница? Ну… Поскольку строка со значением 1 является текстом, это значение нельзя будет использовать для математических операций. Конечно, javascript позволяет проводить подобное, но это очень нежелательно.

Объясню почему: если в javascript использовать операцию сложения (+) с двумя переменными, хотя бы одна из которых не является числом, случится следующее: эти две переменные “сольются в одну”. То есть, произойдет объединение строк.
var _a = 1;
var _b = “8”;
В данном случае, команда _a+_b вернет вам значение 18, причем это значение также будет строкой. Чтобы получить значение 9, то есть нормально выполненную математическую операцию, нужно избегать использовать кавычки в тех местах, где вы не хотите использовать строковые типы данных (слова, текст…).
Если же переменная вынуждена быть строкой, но содержит именно число, можно “обернуть” переменную в функцию, которая вернет уже числовую переменную. Эта функция называется parseInt. Что я имею в виду:
parseInt(_b)
Этот код вернет не “8”, а 8, то есть именно число.
В таком случае, _a+parseInt(_b) вернет уже 9, а не “18”.
Любую команду следует заканчивать точкой с запятой ; но это не обязательно, если после окончания команды вы переносите код на другую строку.
Чтобы вывести в консоль, в которой вы работаете, какое-либо значение или переменную, можно использовать функцию alert(название вашей переменной), которая откроет всплывающее окно со значением переменной. Лично мне это не очень нравится, поэтому я предпочитаю команду вывода данных конкретно в консоль:
71 viewsedited  13:53
Открыть/Комментировать