Поддержка  •  Дневник  •  Без рекламы  •  О сайте  •  Реклама  •  Поставить баннер  •  Fleshlight  •  Прислать  •  Хроника  •  Translate Гости: 3    Участники: 0 Авторизация Авторизация   Регистрация 
Метод Научного Тыка
RULVEN
Поиск  
О сайте, обо всём что меня окружает, интересует, волнует, касается.   Размещение рекламы
Содержание
Поиск
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001

Содержание предыдущих серий... 2023 г.

Страница 7 из 9
 
« следующие заметки  1 2 3 4 5 6 7 8 9   предыдущие заметки »

В мире тяжмета как и в поп-музыке, ничуть не меньше проходных, совершенно неинтересных, можно сказать никчёмных песен. Просто вот такое унылое тра-ля-ля, на гитаре дрын-дын-дын, в барабаны бум-бум, вокал - только в туалете кричать «занято!», аж ухи вянут.

Saint Daemon - At Break of Dawn

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

The Offspring

Вот например Arch Enemy. Откуда они? Швеция.

 Arch Enemy

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

За прошедший месяц замечено что 16 GB памяти уже не канает. Надо 32 и монитор 4K, дуймов так хотя бы 32. Два монитора, 27" и 34", для работы самое то.

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

Сейчас найти, например, Crypta, Nervosa, Visions of Atlantis - дело пары секунд.

Постепенно реанимируется, развивается, улучшается сайт с аудио всякими. Там ещё надо много чего сделать, но процесс пошёл. Этому сайтику конечно далеко до других подобных сервисов, а это что там тут нам не надо. Не надо здесь и всё. Что есть то уже хорошо, вот например «Сказ про Федота-стрельца, удалого молодца» Леонида Филатова.

Поиски работы наверное скоро доведут меня до цугундера, проводить за компуктером часов 30 в сутки это уже как-то не очень. Хочется просто взять лопату и пойти в поля тупо копать землю, или в лесу деревья валить. Тем же агентствам по подбору персонала и HR тоже не позавидуешь, у них такие объёмы информации что только держись.

Помимо поиска работы ещё умудряюсь заниматься своими проектиками, всё потихоньку движется вперёд, развивается. К концу года здесь всё будет ещё круче, но вопрос привлечения зарегистрированных пользователей остаётся открытым. И очень непростым. Да во всём виноваты Facebook и Twitter, про других даже не говорю.

Неделя обещает быть вообще нескучной, в контексте поиска работы. Вчера/сегодня постоянные переписки, назначение встреч, вакансии, звонки, интервью, тесты. Но это хорошо, страшно когда вокруг тебя звенящая тишина и тебя не хотят трогать даже десятиметровой палкой. По многим вакансиям предлагают переехать на Мальту, Кипр, в Польшу, Швейцарию и т. д., но мне это как-то не в цвет. Хотя деньги там были бы наверное нешуточные. Вообще надо пошевелить умишком, насчёт переезда. В некоторых компаниях надо приезжать в офис хотя бы раз в месяц. В Польшу, Швецию... Зачем?..

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

Выходные не прошли даром. Для сайта сообщества сделано очень много. Лиха беда начало.

Разработка сайта сообщества идёт нормально так, одно из самых главных там это уровень безопасности и изолированности. Чтобы было просто технически невозможно залезть в чужой контент и творить там всякое. Ну и возможности управления контентом тоже на первом месте. Дело ещё осложняется тем что во всех соцсетях доступ возможен только для авторизованных посетителей. Но мы лёгких путей не ищем, анонимы тоже смогут что-то постить (на случай нарушения беспорядков есть механизм банов), и авторы контента смогут устанавливать уровень доступа.

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

Подошла к концу ещё одна рабочая неделька, по вакансиям результата 0. "Чел, у тебя охренительный опыт, но... взять на работу мы тебя не можем." Прислали результаты тестирования на HackerRank из польской компании, тест прошёл, но "команды уже укомплектованы, а ты сходи-ка погуляй".
Копаем дальше. Но на LinkedIn приняли в две .NET группы, послал заявку недели три назад, хоть какая-то радость. Теперь впереди два дня контентного безумия на блекболыче.

Потихоньку идёт работа над сайтом сообщества, местной микросоциалочки, думается что к апрелю-маю всё будет по красоте. Спешить некуда потому что никто туда ничего постить не будет.

Компания из Польши рассмотрела мою кандидатуру, вроде бы хотят сотрудничать. На вопрос могу ли переехать в Польшу, ответил что не вижу особого смысла переезжать потому что за последние 6 лет все мои проекты, даже когда был в Риге в офисе, были международные, в удалённом режиме. Okay... Тогда спросили могу ли раз в месяц приезжать в офис? Ожидаемый зарплатос €55,000 в год (до уплаты налогов), думаю надо постараться попасть в эту компанию.

Доработка добавления песен с русскими именами файлов дала нормальный такой результат. Если раньше на добавление альбома уходило примерно минут 15-20, то сейчас не больше 5. Прогресс. Теперь русскоязычных групп будет появляться всяко больше.

Борода Бабая - Борода Бабая
2021
1. Поздний гость
2. Чёрная метка
3. Прощай
4. Любовь людоеда
5. Сказочник Бабай
6. Колобок
7. Быть человеком
8. Самогонка
9. Разговор со смертью
10. Колобок (Live 2019)
11. Поздний гость (Live 2019)
12. Сказочник Бабай (Live 2019)

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

Местные инструменты управления контентом развились настолько что сейчас можно невозбранно начать работу над сайтом сообщества на полную мощность. Делать сразу «на все деньги» смысла нет, там большой объём работы и есть риск что это никому не нужно и не интересно. Но блекболыч должен быть готов к новому серверу.

Во дела, в нормальной обстановке, без спешки сделал тест по вакансии как белый человек. Вчера на этот тест после 37 теоретических вопросов оставалось всего 30 минут. Это не дело.

В таком состоянии отослал:

Сегодня всё по красоте:

BankController.cs

using InternetBankingRESTfulService.Api;
using InternetBankingRESTfulService.Api.Core;
using Microsoft.AspNetCore.Mvc;

namespace InternetBankingRESTfulService.Web.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class BankController : ControllerBase
    {
        private InternetBankingApi BankingApi { get; }

        public BankController()
        {
            BankingApi = new InternetBankingApi();
        }

        [HttpGet("api/version")]
        public IActionResult GetApiVersion()
        {
            return Ok(BankingApi.GetApiVersion());
        }

        [HttpGet("api-version")]
        public IActionResult GetApiVersionSecond()
        {
            return Ok(BankingApi.GetApiVersion());
        }

        [HttpGet("api/calc/MD5/{value}")]
        public IActionResult CalculateMD5(string value)
        {
            return Ok(BankingApi.CalculateMD5(Helper.ReplaceDigitsByString(value)));
        }

        [HttpGet("api/calc/{value}/MD5")]
        public IActionResult CalculateMD5Second(string value)
        {
            return Ok(BankingApi.CalculateMD5(Helper.ReplaceDigitsByString(value)));
        }

        [HttpGet("api/password/strong/{value}")]
        public IActionResult PasswordStrong(string value)
        {
            return Ok(BankingApi.IsPasswordStrong(value));
        }

        [HttpGet("api/is-password-strong/{value}")]
        public IActionResult IsPasswordStrong(string value)
        {
            return Ok(BankingApi.IsPasswordStrong(value));
        }
    }
}

InternetBankingApi.cs

using InternetBankingRESTfulService.Api.Core;
using System;

namespace InternetBankingRESTfulService.Api
{
    public class InternetBankingApi : IInternetBankingApi
    {
        private readonly string _apiVersion = $"{DateTime.UtcNow:yyyy.MM.dd}.1.0";

        public string GetApiVersion()
        {
            return _apiVersion;
        }

        public string CalculateMD5(string value)
        {
            return Security.MD5Encode(value);
        }

        public bool IsPasswordStrong(string password)
        {
            return Security.IsPasswordStrong(password);
        }
    }
}

Security.cs

using System.Security.Cryptography;
using System.Text.RegularExpressions;
using System.Text;
using System;
using System.Linq;

namespace InternetBankingRESTfulService.Api.Core
{
    public static class Security
    {
        /// <summary>
        /// Returns MD5 hash string.
        /// </summary>
        /// <param name="plainText"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentException"></exception>
        public static string MD5Encode(string plainText)
        {
            if (string.IsNullOrEmpty(plainText))
                throw new ArgumentException("Text cannot be empty.");

            return string.Concat(MD5.HashData(Encoding.UTF8.GetBytes(plainText)).Select(x => x.ToString("x2"))).ToUpper();
        }

        /// <summary>
        /// Validate password strength.
        /// </summary>
        /// <param name="plainPassword"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentException"></exception>
        public static bool IsPasswordStrong(string plainPassword)
        {
            if (string.IsNullOrEmpty(plainPassword))
                throw new ArgumentException("Password cannot be empty.");

            return new Regex(@"(?=^.{12,}$)(?=.*\d)(?=.*[!@#$%^&*]+)(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$").IsMatch(plainPassword);
        }
    }
}

Helper.cs

using System.Text.RegularExpressions;

namespace InternetBankingRESTfulService.Api.Core
{
    public static class Helper
    {
        /// <summary>
        /// Replace all digits in value parameter by char.
        /// </summary>
        /// <param name="value"></param>
        /// <param name="replaceNumberBy">Default char value is 'X'.</param>
        /// <returns></returns>
        public static string ReplaceDigitsByString(string value, string replaceDigitBy = "X")
        {
            return Regex.Replace(value, @"\d", replaceDigitBy);
        }
    }
}

ApiTest.cs

using Microsoft.AspNetCore.Mvc.Testing;
using NUnit.Framework;
using System;
using System.Globalization;
using System.Threading.Tasks;

namespace InternetBankingRESTfulService.Tests
{
    public class ApiTest
    {
        [Test]
        public async Task TestApiVersion()
        {
            var factory = new WebApplicationFactory<Startup>();
            var Client = factory.CreateClient();
            var result = await Client.GetAsync("/bank/api/version");
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
            var content = result.Content;
            var data = await content.ReadAsStringAsync();
            Assert.AreEqual($"{DateTime.UtcNow.ToString("yyyy.MM.dd", CultureInfo.InvariantCulture)}.1.0", data);
        }

        [Test]
        public async Task TestApiVersion_Second()
        {
            var factory = new WebApplicationFactory<Startup>();
            var Client = factory.CreateClient();
            var result = await Client.GetAsync("/bank/api-version");
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
            var content = result.Content;
            var data = await content.ReadAsStringAsync();
            Assert.AreEqual($"{DateTime.UtcNow.ToString("yyyy.MM.dd", CultureInfo.InvariantCulture)}.1.0", data);
        }

        [Test]
        public async Task TestPasswordStrongIsFalse()
        {
            var factory = new WebApplicationFactory<Startup>();
            var Client = factory.CreateClient();
            var result = await Client.GetAsync($"/bank/api/password/strong/123");
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
            var content = result.Content;
            var data = await content.ReadAsStringAsync();
            Assert.AreEqual("false", data);
        }

        [Test]
        public async Task TestPasswordStrongIsTrue()
        {
            var factory = new WebApplicationFactory<Startup>();
            var Client = factory.CreateClient();
            var result = await Client.GetAsync($"/bank/api/password/strong/ALhj89*19896");
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
            var content = result.Content;
            var data = await content.ReadAsStringAsync();
            Assert.AreEqual("true", data);
        }

        [Test]
        public async Task CalculateMD5()
        {
            var factory = new WebApplicationFactory<Startup>();
            var Client = factory.CreateClient();
            var result = await Client.GetAsync($"/bank/api/calc/MD5/test-string-ABC");
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
            var content = result.Content;
            var data = await content.ReadAsStringAsync();
            Assert.AreEqual("79C8DC4F3BAEBF0A4F40517225F41A86", data);
        }

        [Test]
        public async Task CalculateMD5_SecondURL()
        {
            var factory = new WebApplicationFactory<Startup>();
            var Client = factory.CreateClient();
            var result = await Client.GetAsync($"/bank/api/calc/test-string-ABC/MD5");
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
            var content = result.Content;
            var data = await content.ReadAsStringAsync();
            Assert.AreEqual("79C8DC4F3BAEBF0A4F40517225F41A86", data);
        }
    }
}

В детстве хотел себе мопед Delta, но что-то не сложилось.

Теперь мне неистово нужен NAS.

Только что закончил на DevSkiller очередной тест для вакансии, 2 ч. 30 мин. 37 вопросов + 1 практическое задание. По теории вроде норм, не совсем провально, а тест по разработке Web API закончить не успел, оставшиеся 35 минут это маленько не того. Но сделаю ход конём, закончу тестик без суеты и в понедельник зашлю по почте, типа вот, готово, прошу понять и простить. Ненавижу программить на время когда в лютом цейтноте подгорает пукан и бомбит от каждого неверного шага.

Появились альбомы панк банды «Роковой Год». Приемлемо, то что надо. На сайте как-то мало русскоязычных групп, это никуда не годится.

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

В нейросети https://creator.nightcafe.studio/ попросил нарисовать картину по запросу «black cat with whiskey».

Страница 7 из 9
 
« следующие заметки  1 2 3 4 5 6 7 8 9   предыдущие заметки »

Поделиться ссылкой:
Последние комментарии

Чт 11.04.2024 21:40
Истинную причину всего этого не...
Только для сосайтников. Для просмотра нужно пройти авторизацию.
Ср 10.04.2024 19:41
Не, тут другой имело ввиду....
Только для сосайтников. Для просмотра нужно пройти авторизацию.
Чт 14.03.2024 00:20
Спасибо! У сайта уже есть какая никакая история, надеюсь этот спектакль продолжится без приключений. Интересно посмотреть что тут будет к декабрю 2024. Здесь уже достаточно интересного контента, и хотелось бы его больше. Больше всякого разного. И вообще работы по развитию...
2 месяца назад, 15:33
Мои поздравления!
4 месяца назад, 09:33
В декабре планирую закончить всякое разное по всему сайту и в январе начать работу над местной микросоциалкой и управлением контентом для пользователей. Надо будет решить, использовать FTP или что-то более модное.
Пн 18.12.2023 23:15
Имею два десятка "Сеповских" бутлегов, помимо официальных релизов. Как откроешь шлюзы на заказчку, можно думать над тем, когда пополнить ими "Черномяч".
Пн 18.12.2023 23:13
Даже как-то неудобно должно быть - давать ссылку на пустую дискографию... =)
Вт 05.12.2023 10:31
Про гороскоп это конечно сильно. Походу у них там HR какая-то девочка в розовом летающая в облаках.
Вс 03.12.2023 02:55
Приветы! Зима выдалась нажористая, снеговиков лепить самое время. Когда буду в Риге, наверное напрошусь затусить в Lido, картоха с шашлыком там моё почтение. И было бы интересно обкашлять будущее блекболыча, проект ведь пиздат. И человеки.
Сб 02.12.2023 14:44
Ждём-с... С наступлением календарной зимы Тебя, Серж! С заснеженным приветом из Кенгарагса!
Вт 21.11.2023 17:40
Насчёт AI это конечно хороший вопрос, ChatGPT мощная штука. И скорее всего можно использовать какие-то плагины для автоматического перевода сайта, а не написания текстов... Но у меня тут другой интерес, написать свою обновлённую версию локализации. JSON, мой маленький технический друг,...
Чт 16.11.2023 15:05
Нельзя ли на перевод подключить какой-нибудь AI? ) Чтобы автоматом переводило не коряво ))
Чт 05.10.2023 10:50
@ Gotfrid666 : да, это нужно сделать, самому надо аж не могу. Но есть куча потусторонних делишек (по другим проектам и вообще), постараюсь на этой неделе их закрыть и заняться сайтом музла. Там будет непросто, надо всё чётко продумать. Потом...
Чт 05.10.2023 10:11
Правильно! Шли их всех!
Чт 05.10.2023 10:11
Правильно! Шли их всех!
Чт 05.10.2023 08:45
В дискографии КМ у Тебя нету ни одного концертника. Открывай шлюзы для залива авторизированным пользователям! Мы об этом уже внушительное время назад говорили на примере ОН.
Пн 02.10.2023 11:24
А то есть это письмо пришло от провайдера? Просто в связи с последними геополитическими ситуациями, Россия сама отказалась от наказывания за пираство и т.д. Так что они теперь хотят от нас? :))
Пт 29.09.2023 17:40
А вот как раз могут. Они пожаловались моему провайдеру. Год назад у меня было предупреждение, чтобы убрал некий говнофильм. Условие следующее: если выебнусь - отключат Инет вообще без возможности подключения по этому адресу. Требование выполнил конечно, нах мне страдать из-за...
Пт 29.09.2023 09:05
судя по всему с какого-то российского ресурса этот запрос пришел, можно забить, т.к. ничего они здесь сделать не могут )))
Вс 16.07.2023 10:52
Андрей, спасибо! За 12 лет с ним такое впервые, а коте выжил в жутком пожаре. Люциферу уже получше. Точим когти!
Разработано на основе BlackNight CMS
Release v.2024-04-15
© 2000–2024 Blackball
Дизайн & программирование:
О сайтеРеклама
Visitors
Web-site performed by Sergey Drozdov