Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» прикладное программирование и не только оно...

Автор: AnGo
Дата сообщения: 13.01.2014 14:15

Цитата:
Мне кажется пользователи смогут стать частью человечества


Я думаю надо брать ширше, а то и ширее, не только пользователи, сиречь юзеры не только могут стать, но но сесть, а некоторым можно даже разрешить, в качестве поощрения, даже и лечь!
Одним словом, вопрос нуждается в глубокой проработке, и чем глыбже, тем тщательнее!
Автор: Big17
Дата сообщения: 23.01.2014 11:58

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

Копай WMI и счетчики Windows.
Вот статья про WMI: http://www.gotdotnet.ru/blogs/msdn/6342/
Автор: xpin2013
Дата сообщения: 13.03.2014 17:44
Предлагаю составить Список Правил Настоящего Программиста. Несколько вариантов:

1) Настоящий программист не должен чистить зубы, иначе могут учуять перегар.
2) Настоящий программист не должен бриться, иначе поймут что он умеет пользоваться не только компьютером.
3) Настоящий программист не должен играть в тетрис на компьютере директора, иначе поймут что он много знает.

Я предлагаю в этом духе собрать варианты у кого что есть...
Автор: rrromano
Дата сообщения: 14.03.2014 16:11

Цитата:
Несложная задачка для программистов. Кто сделает - будет польза многим, я думаю.
Вот: нажимаем клавиши CTRL+SHIFT+ESC, появляется окно ДИСПЕТЧЕР ЗАДАЧ WINDOWS, в этом окне выбираем вкладку БЫСТРОДЕЙСТВИЕ. В этой вкладке есть данные о времени работы компьютера с момента включения. Задача: Надо чтобы это время каждый где-то запоминалось и суммировалось за весь период работы компьютера.
Такие функции есть у некоторых программ, но эти программы навороченные разными ненужными функциями и имеют большой объём. Нужен просто счётчик времени работы компьютера за его жизнь.

Ага. Хранить его в БИОС, естественно. В картинке лого. Так? )
Автор: AndrMan
Дата сообщения: 15.03.2014 10:10
rrromano
На удаленном сервере, например
Автор: saidumar
Дата сообщения: 15.03.2014 11:07
ollz
Интересная идея, надо подумать...
Автор: AndrMan
Дата сообщения: 16.03.2014 08:39
saidumar
Вопрос не только в том, где запоминать, но и что запоминать. Если переустановили ОС - это смена компьютера? А если винт вставили в другой системник. Это другой компьютер? Таких вот "если" очень много.
Автор: saidumar
Дата сообщения: 17.03.2014 14:25
AndrMan
Надо определить ключевой элемент компа или что еще лучше хранить время работы не компа в целом а его компонентов...

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

как-то так...
Автор: rrromano
Дата сообщения: 17.03.2014 16:37

Цитата:
На удаленном сервере, например

Не всегда есть сеть.

И как отследить внезапное выключение?
Пожалуй, надо висеть сервисом и каждую секунду (10, 60, N...) писать в файлик счетчик. Но будет теряться та самая секунда в худшем случае, плюс время на загрузку.

Хотя, было время, я на ассемблере использовал функцию получения количества тиков с момента запуска процессора - если такой функционал доступен сейчас, то можно обойти потерю времени на загрузку ).
Автор: AndrMan
Дата сообщения: 17.03.2014 16:53
saidumar
В целом, похоже на правду.

Добавлено:
rrromano
Это я как вариант предложил вариантов хранения не так много. И при глобальной смене надо действительно восстанавливать данные. Отследить сколько времени прошло с момента запуска системы не просто легко, а очень легко. А сохранять надо!
Автор: rrromano
Дата сообщения: 17.03.2014 18:06

Цитата:
А сохранять надо!

Ну давайте проанализируем. Куда можно сохранить?
1. В комп.
а) жесткий диск (файл, сектор, служебное место);
б) БИОС.
2. В сеть.
а) облако;
б) ftp, http, web-сервис, мыло и т. п.;
в) СМС.
3. В устройство.
а) внешний накопитель;
б) аццкая машинка, подключенная к COM-порту.

список можно расширить ).
Автор: AndrMan
Дата сообщения: 18.03.2014 09:08
rrromano
Можно расширить Но, думаю, что из реально нормального места только хард и есть. А остальное место бэкапа. БИОС было бы тоже хорошее место, если бы к нему был нормальный доступ и универсальное место для хранения.
Автор: rrromano
Дата сообщения: 20.03.2014 11:11

Цитата:
если бы к нему был нормальный доступ и универсальное место для хранения

Нормальный доступ - без проблем с помощью, например, драйвера.
Место - в лого, например )
Автор: AndrMan
Дата сообщения: 21.03.2014 06:13
rrromano
Согласись, что хранить в лого - это не совсем хорошо Тем более, что некоторые биосы хранят лого в сжатом виде.
Автор: ne_viens
Дата сообщения: 21.03.2014 12:59
Так можно разжать сохранить и пожать обратно.
Если дыры в картинке мешают, можно стеганографически оформить, или как ASCII .nfo.

А если серьёзно, то существует EFI переменные, для чтения и записи которых есть уже готовые инструменты (например, EfiVar.dll + variable.sys для интеловских матплат). Проблема будет только найти свободную переменную, которая не нужна системе, и перезапись которой не превратит плату в кусок неровного ламината.
Автор: AndrMan
Дата сообщения: 21.03.2014 13:48
ne_viens
Не только найти переменную в биосе, а найти перемененную во всех биосах: предлагается же универсальное решение. можно, конечно, писать "временно не поддерживается", но это тоже не совсем хорошо... Но даже не это проблема: проблема в том, что нет никакой гарантии, что следующий апдейт bios не "превратит плату в кусок неровного ламината" только из-за этой записи.
Автор: xpin2013
Дата сообщения: 21.03.2014 21:04
Я предлагаю утилиту которая стирает весь и любой биос и пишет туда контрольную цифру. После использования программы выдавать диалог - НЕ ОТДАВАЙТЕ КОМПЬЮТЕР В РЕМОНТ.
Автор: Erazor84
Дата сообщения: 28.03.2014 13:07
Писать в БИОС? Это плохая затея, во-первых их много разновидностей, во-вторых при несовпадении контрольной суммы у пользователя могут быть проблемы при обновлении на новую версию. Вспомните хотя бы метод взлома Windows 7 через прошивку BIOS
Автор: AndrMan
Дата сообщения: 28.03.2014 13:25
Erazor84
Именно - именно. Слишком много нюансов.
Автор: HNKTO
Дата сообщения: 04.04.2014 00:15
Вопрос несколько не по программированию а скорей чисто математический, связанный с обратным инженерингом и дешифровкой данных.
Собственно вопрос: как скачать видео с YouTube

Причём часть решений я уже нашёл сам:
Надо найти Javaскрипт начинающийся примерно с
<script>*var ytplayer = ytplayer *</script>
найти в нём раздел ytplayer.config = {*};
в этом разделе найти "args": {*},
в последнем ищем "adaptive_fmts": "*", или "url_encoded_fmt_stream_map": "*"
в которых собственно содержится список ссылок на потоки видео и звука в разном качестве. Структура зашифрована, но как расшифровать я вкупил. И часть видеороликов с ютрубы таким способом успешно качается.
Но решение не полно т. к. есть ролики типа этого:
http://www.youtube.com/watch?v=891fx4x47sA
или этого:
http://www.youtube.com/watch?v=JLAW1swjjcc
для которых данный метод не подходит в связи с тем что ссылки на потоки указаны неполные, а модифицируются и дополняются (вылущено путём перехвата трафика), но вот как и на осонове чего - понять пока не могу

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

* под "*" понимается любое, возможно нулевое число символов кода
** пример описан для быдлокодной версии YouTube-овской страницы. Для "короткой" версии несколько меняется синтаксис скрипта, порядок этапов дешифровки и разбора, но принцип вцелом тотже.
Автор: saidumar
Дата сообщения: 04.04.2014 08:23

Цитата:
Структура зашифрована, но как расшифровать я вкупил

не поделитесь?
Автор: HNKTO
Дата сообщения: 04.04.2014 10:18

Код:
#include <malloc.h>

unsigned int HalfByteConv(char Symb)
{ //Преобразует буквенные обозначения в соответствующие им полубайты
    switch(Symb)
    {
    case '0':
        return 0x0;
    case '1':
        return 0x1;
    case '2':
        return 0x2;
    case '3':
        return 0x3;
    case '4':
        return 0x4;
    case '5':
        return 0x5;
    case '6':
        return 0x6;
    case '7':
        return 0x7;
    case '8':
        return 0x8;
    case '9':
        return 0x9;
    case 'A':
    case 'a':
        return 0xA;
    case 'B':
    case 'b':
        return 0xB;
    case 'C':
    case 'c':
        return 0xC;
    case 'D':
    case 'd':
        return 0xD;
    case 'E':
    case 'e':
        return 0xE;
    case 'F':
    case 'f':
        return 0xF;
    default:
        return -1;
    }
}

char* DecPercentXXXX(char* Data)
{
    size_t DataSz = _msize(Data);
    char* DecData = (char*) malloc(DataSz);

    size_t cntIn = 0;
    size_t cntOut = 0;
    for(; cntIn < DataSz; cntIn++)
    {
        if(Data[cntIn] == '%')
        {
            cntIn++; if(cntIn >= DataSz) break;
            //dec
            unsigned int bytes = 0;
            for(int i=0; i<8; i++) //сдвигаем по биту для исследования всех
            {
                unsigned char flag;
                flag = (Data[cntIn] << i) & 0x80; //т. к. еденицы в старших байтах
                if(flag == 0x80)
                {
                    bytes++;
                }
                else
                {
                    if(bytes == 0)
                        bytes = 1;
                    break;
                }
            }
            for(bytes; bytes > 0; bytes --)
            {
                DecData[cntOut] = HalfByteConv(Data[cntIn]);
                DecData[cntOut] <<= 4;
                cntIn++; if(cntIn >= DataSz) break;
                DecData[cntOut] |= HalfByteConv(Data[cntIn]);
                cntOut++;
                if(bytes > 1) //загружаем следующий полубайт перед возвратом в начало цикла
                {
                    cntIn++; if(cntIn >= DataSz) break;
                }
            }
        }
        else
        {
            DecData[cntOut] = Data[cntIn];
            cntOut++;
        }
    }
    free(Data);
    DecData = (char*) realloc(DecData, cntOut);
    return DecData;
}

char* DecSIxxxx(char* Data)
{
    size_t DataSz = _msize(Data);
    char* DecData = (char*) malloc(DataSz);

    size_t cntIn = 0;
    size_t cntOut = 0;
    for(; cntIn < DataSz; cntIn++)
    {
        if(Data[cntIn] == '\\')
        {
            cntIn++; if(cntIn >= DataSz) break;
            switch(Data[cntIn])
            {
            case 'n':
                DecData[cntOut] = (char) 0x0a;
                cntOut++;
                break;
            case 'r':
                DecData[cntOut] = (char) 0x0d;
                cntOut++;
                break;
            case 't':
                DecData[cntOut] = (char) 0x09;
                cntOut++;
                break;
            case 'v':
                DecData[cntOut] = (char) 0x0b;
                cntOut++;
                break;
            case '/':
                DecData[cntOut] = '/';
                cntOut++;
                break;
            case '\\':
                DecData[cntOut] = '\\';
                cntOut++;
                break;
            case 'u':
                for(char bytes = 0; bytes < 2; bytes ++)
                {
                    cntIn++; if(cntIn >= DataSz) break;
                    DecData[cntOut] = HalfByteConv(Data[cntIn]);
                    DecData[cntOut] <<= 4;
                    cntIn++; if(cntIn >= DataSz) break;
                    DecData[cntOut] |= HalfByteConv(Data[cntIn]);
                    if(DecData[cntOut] != 0)
                        cntOut++;
                }
                break;
            }
        }
        else
        {
            DecData[cntOut] = Data[cntIn];
            cntOut++;
        }
    }

    free(Data);
    DecData = (char*) realloc(DecData, cntOut);
    return DecData;
}
Автор: DJMC
Дата сообщения: 09.04.2014 10:41

Есть столбец в excele в нем повторяются цифры от 1 до 3, в разном порядке и с разной периодичностью, возможно ли в excele вывести закономерность и чтобы формула высчитывала какая цифра будет следующей?
Или может кто знает есть ли такая программа на любом языке?

Автор: miwa
Дата сообщения: 09.04.2014 13:58
DJMC
А порядок появления цифр точно имеет закономерность?

В целом, конечно, можно поиграться со статистическими функциями, но исходная задача какая-то странная. Что вообще требуется узнать?
Автор: XPEHOMETP
Дата сообщения: 09.04.2014 16:02
DJMC

Цитата:
Есть столбец в excele в нем повторяются цифры от 1 до 3, в разном порядке и с разной периодичностью, возможно ли в excele вывести закономерность и чтобы формула высчитывала какая цифра будет следующей?
Или может кто знает есть ли такая программа на любом языке?

miwa

Цитата:
но исходная задача какая-то странная. Что вообще требуется узнать?

Таки, да! Если не заниматься поиском регулярных выражений (на что формулировка задачи вроде и не претендует), то следующая цифра должна быть наиболее повторяющейся из всего списка. От 0 до 3. Считайте повторяемость...
Автор: akaGM
Дата сообщения: 09.04.2014 16:21
зато точно можно сказать, что наперёд заданная цифра появится следующей с вер = 1/3 :)

Добавлено:

DJMC

глянь в сторону анализа псевдослучайных последовательностей...
там считается период повторяемости для генератора, т.к. у тебя диапазон (1 2 3) очень узкий, то должно быть всё просто...
Автор: DJMC
Дата сообщения: 09.04.2014 20:47
miwa
Вот это и хочу узнать,есть ли закономерность, или нет.
Требуется узнать, числа от 1 до 3 выпадают каждый день,проследить статистику за год,есть ли закономерность-логика какая та, или нет, пока удалось через сумму сделать,но показатели всего 50% это очень мало,и скорее всего даже случаность... Через сумму что сложив пять раз цифр за начало месяца допустим за марта сумма получается шестой день апреля.

akaGM
А ссылку можно?
Автор: akaGM
Дата сообщения: 09.04.2014 20:54
DJMC

конечно нельзя, я только идею кинул...
Автор: miwa
Дата сообщения: 09.04.2014 21:06
DJMC
Ты теорвер изучал? Если нет - тогда даже не знаю. Можно, конечно, начинать отсюда, отсюда или даже отсюда, но оно точно надо?
Автор: Kmich
Дата сообщения: 11.04.2014 11:00
DJMC
Посмотрите про корреляцию, она как раз и показывает есть ли связи и зависимости в рядах данных.

Страницы: 12345678910111213141516171819202122232425262728293031

Предыдущая тема: Borland Developer Studio 2006 и Oracle пакеты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.