Рубрика «Песочница» - 198

Про куки

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

$.cookie('cookie_name', 'cookie_value'); //установка
$.cookie('cookie_name'); //чтение
$.cookie('cookie_name', null); //удаление
$.cookie('cookie_name', 'cookie_value', {
    expires: 5,
    path: '/admin',
}); //опции

или

cookie.set('cookie_name', optios);
cookie.get('cookie_name');

В исходниках на получение куки всегда есть что-то из разряда

var cookies = document.cookie.split('; ');
for (var i = 0; i < cookies.length; i++) {
// и разбор самой куки
}

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

// прочитать
if (cookie.id === '1') {
    //удалить
    delete cookie.id;
}

//установить новое значение
cookie.key = '12341234';

//поменяем опции
cookie.options = {
    expires: new Date(Date.now() + 30*24*60*60*1000).toUTCString(),
    path: '/'
};

//обновить значение
cookie.key = '43214321';

Proxy

В ES6 появилась возможность полного перехвата любого объекта, обращение к любому свойству объекта можно контролировать как мы это захотим, к сожалению, заполифилить для поддержки старичков возможности нет. Описание всех возможностей Proxy мы не рассмотрим, затронем только основное на мой взгляд, на примере реализации работы с куками.

Читать полностью »

Итак, Вы написали свой первый (или 99-ый по счёту) скрипт на PHP и решили его продавать!

Ура! Поздравляю, Шарик — ты балбес, то есть вау… это круто! Вы стали одним из десятков миллионов людей на Земле, кому пришла в голову эта гениальная мысль. Проблема только в том, что у Вас сегодня огромная куча конкурентов, которым та же мысль пришла в голову гораздо раньше и, вероятно, часть из них уже смогла её довольно успешно реализовать.

Кто виноват? Никто.

Могу Вас успокоить, — эта мысль посещает рано или поздно почти любого софт-разработчика.
Посмотрите вокруг — сколько успешных людей, которые смогли создать и раскрутить свой продукт!

Вы не виноваты в том, что они додумались до этого 10 или 15 лет назад и поэтому… и если Вы всё же твёрдо настроены на успех, то… что ж… лучше поздно, чем никогда.

Что делать? Не сидеть сложа руки.
Читать полностью »

После очередной чистки системы (пылесосом) и смены термопасты (впервые с 2011 года) 45 нанометровый AMD Phenom II X6 1100T 3.3 GHz в простое грелся до 35 градусов, под нагрузкой до 60. Температура мостов на материнке (GA-880GA-UD3H AMD880G/SB850) была 38-45 градусов в простое, датчик общей температуры в корпусе около 37-39.

Цифры вроде не критичные, более чем адекватные для такого техпроцесса, но захотелось их снизить. Благо вентиляторы сейчас не самые дорогие.

Охлаждение в бюджетном miditower или как опустить процессор ниже 30 градусов - 1

Первые три температуры — корпус и мосты, далее скорости вентиляторов, ниже ядра процессора. Температура в простое до замены вентиляторов.

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

Читать полностью »

В С++ существует несколько возможностей передачи массива в функцию.

  1. В С++ массивы можно инициализировать следующим образом:
    int arr[] = {p1, p2, p3, ...}; // длина массива определяется 
    после инициализации

    Как следствие, его можно передать в функцию таким же способом:

    void func(int arr[]){
    //your code
    }
  2. Еще один вариант — передать массив по указателю. Например:
    void func(int* arr){
    //your code
    }
    int arr[5] = {1, 2, 3, 4, 5};

    Мы привыкли обращаться к элементам массива по индексам, но попробуйте скомпилировать и запустить следующие строки:

    int main(){ 
       int arr[5] = {1, 2, 3, 4, 5};
       cout << arr << endl; //в данном случае мы увидим адрес начала массива 
        return 0; //его мы и передаем в массив
    }

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

void func(int* arr, int length){
//your code
}

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

int len(int* arr){
    int count = 0;
    while(*x++ < ?) count++;
    return count;
}

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

Для начала немного несуществующих деревень и сёл

Сальтолово
Ничичи
Каверная Голяна
Придориусловка
Старотипенки
Кюканово
Кутюшевка
Верхний Стед
Сабаревка
Зеленокировка
Хадонские Выселки
Старый Куля
Октяга
Ржиново
Черемошно
Голодионово
Александрово-Полейково
Подлопаново
Малое Сусовое
Горы-Чусалы
Чубравяково


Зачем и почему

Всем привет, меня зовут Илья, я занимаюсь компьютационной биологией и биохимией, в свободное время я заставляю нейросети страдать ерундой.

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

В качестве нейросети я решил воспользоваться torch-rnn, которую достаточно легко установить и настроить. Список городов и сел я нашел тут (можно скачать все в формате csv). С csv пришлось немного повозиться, чтобы привести ее к utf-8, после чего я запихнул ее в нейросеть и оставил на пару часов. Когда тренировка модели закончилась я взял небольшой сампл и получил следующий результат:

Читать полностью »

Про паттерн Builder сказано достаточно. Его достоинства очевидны. Есть изящные варианты замены (Элегантный Builder на Java) уменьшающие количество кода, и генераторы, вообще сводящие boilerplate на нет. Но иногда можно сделать еще проще, причем не прибегая к сторонним библиотекам.
Читать полностью »

в 0:00, , рубрики: Песочница

Месяца назад я получил свою первую работу и стал стажер-разработчиком, наша команда использует язык Scala. Мне кажется, все начинающие разработчики в первый день потерянные. одновременно наваливается куча новых имен, технологий, каких-то правил, да и мало ли что еще, абсолютно все для тебя ново, это же первая работа. В моем же случае я еще и не знал языка, на котором буду программировать, до момента собеседования я даже никогда о нем не слышал. Итог: в первый день я был в полном ауте. Спросите как тогда я вообще получил эту работу? Я знал Java, на собеседовании мне сказали что джависту перейти на скалу будет достаточно легко и можно не переживать. Но видимо чуть-чуть попереживать все же стоило, потому что первое время перед собой я видел просто экраны, заполненные текстом, в которых сходу была ясна едва ли половина.

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

final String str = "abc"; //Java

val str = "abc" // Scala

Читать полностью »

Привет, читатель.

Важно для прочтения!

Если ты не против, то изучи ООП и Jav'y прежде, чем учить другие библиотеки. Ибо ты не будешь браться за физику, не выучив математику. Тут то же самое.

Сегодня мы будем писать простейшего бота Telegram, который будет отвечать на команды. Такая статья была, но писали бота на Питоне.

Почему я выбрал именно Jav'y

Java в плане ботов, серверов, плагинов да и вообще программ будет удобнее для меня.

1. Виртуальная машина хоть и долгая, но если обрабатывать события в несколько потоков, то будет работать быстро.(Вообще для многих серверов/мультиплеерных игр в одном потоке не всегда получится обрабатывать события, в Jav'e сделать это гораздо проще)

2. Наличие хорошей документации и Javadoc'ов, которые можно сделать для всех библиотек(не только для системных)

0. А что такое «бот»?

Бот — это профиль в соцсети/мессенджере(в данном случае Telegram) который отвечает на команды.( В любом случае все действия буду происходить после выполнения команды)

Тип чата с ботом — это переписка 1 на 1.

1.С чего же начинать?

Здесь качать библиотеку Telegram(обязательно with-dependiciens)

IDE можно выбрать любую, я бы порекомендовал eclipse.

Импотрируем библиотеку Телеграма и приступаем.
Читать полностью »

Недавно, при написании одного из проектов, столкнулся с проблемой отображения границ в таблицах. Никогда не думал, что могут возникнуть сложности в такой тривиальной задаче.
В чем суть? По дефолту вокруг каждой ячейки отображается своя рамка (рисунок 1). Мне необходимо было, чтобы отображалась одна линия между двумя ячейками (рисунок 2). Для этого я таблице задал border-collapse: collapse и толщину границы 1px.

image

Самое интересное начинается, если стиль границы поменять с solid на dashed (рисунок 3).Читать полностью »

в 0:00, , рубрики: Песочница

Появился порт ELMAH для ASP.NET Core: здесь

Как его использовать?

1) Установил NUGET пакет ElmahCore
2) Изменил Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();

    //Добавил
    services.AddElmah();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
       app.UseDeveloperExceptionPage();
       app.UseBrowserLink();
    }
    else
    {
       app.UseExceptionHandler("/Error");
    }

    //Добавил
    app.UseElmah();

    app.UseStaticFiles();

     app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller}/{action=Index}/{id?}");
         });
    }

Вуаля...

image

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js