The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"OpenNews: Хранитель экрана, показывающий исходные тексты Lin..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"OpenNews: Хранитель экрана, показывающий исходные тексты Lin..."  +/
Сообщение от opennews (??) on 11-Янв-08, 23:45 
"Linux Kernel Source Code Screensaver (http://micrux.net/?p=66)" - как написать хранитель экрана, отображающий случайные части исходных текстов Linux ядра.

URL: http://micrux.net/?p=66
Новость: http://www.opennet.ru/opennews/art.shtml?num=13618

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от AdVv (??) on 11-Янв-08, 23:45 
Вот еслиб он части исходных текстов Windows показывал ... :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от КтулхЪ on 12-Янв-08, 14:12 
Амбиций автору не занимать, даже програмулину на си написал, какой! :)
хотя можно было все одним скриптом.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от asdfasf on 13-Янв-08, 12:57 
Хм! И как же вы такую графику скриптом то сделаете?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от Dbil on 14-Янв-08, 11:36 
>Хм! И как же вы такую графику скриптом то сделаете?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от DevTi (ok) on 14-Янв-08, 11:38 
>Хм! И как же вы такую графику скриптом то сделаете?

Когда читать научимся?
"Now just to clarify, I did not write my own screensaver. I’m actually using the phosphor screensaver under xscreensaver."

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от pavlinux (ok) on 17-Янв-10, 17:56 
Дохлый сайт уже.

Вот, ещё живое - http://yurik-notes.blogspot.com/2008/01/linux.html

А сейчас все гораздо проще...

Открываем файл
# vi /usr/share/applications/screensavers/phosphor.desktop

и заменяем параметр Exec на своё

Exec=phosphor -root -program "cat `find /usr/src/linux/ -name '*.c' -size -5k| argshuf`" -delay 27317 -scale 2 -ticks 13

Esc:wq

Программка argshuf выглядит так


/*
*
* # cc -g -O2 -Wall -pedantic argshuf.c -o argshuf
* # cp -vfi argshuf /usr/bin/
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>

#define INITSIZE 31

int main(void) {
    char **list, **temp, input[200];
    int size = INITSIZE, i = 0, j;
    struct timeval time;

    gettimeofday(&time,NULL);
    srand(time.tv_usec);
    list = malloc(size*sizeof(char *));

    while(!feof(stdin)) {
        fscanf(stdin,"%s\n",input);
        if(i >= size) {
           temp = (char **) calloc((size*=2),sizeof(char *));
           for(j=0;j<i;++j) temp[j] = list[j];
           free(list);
           list = temp;
        }
        list[i] = (char *) malloc((strlen(input)+1)*sizeof(char));
        strcpy(list[i++],input);
    }

    printf("%s\n",list[(int)((double)i * (rand() / (RAND_MAX + 1.0)))]);

    for(j=0;j<i;++j) free(list[j]);
    free(list);

    return EXIT_SUCCESS;
}


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Хранитель экрана, показывающий исходные тексты Linux ядра"  +/
Сообщение от Igor (??) on 20-Июн-10, 14:33 
argshuf скрипт, положить в /usr/bin

#!/bin/bash
# argument shuffler, from input lines chooses random only one string

i=0
while read myline
do
  lines[$i]=$myline
  i=$i+1
done
N=${#lines[@]}-1
if ((($N) < 2)); then
  exit -1
fi

echo ${lines[(($RANDOM%($N)+1))]}

>[оверквотинг удален]
>        strcpy(list[i++],input);
>    }
>
>    printf("%s\n",list[(int)((double)i * (rand() / (RAND_MAX + 1.0)))]);
>
>    for(j=0;j<i;++j) free(list[j]);
>    free(list);
>
>    return EXIT_SUCCESS;
>}

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
A-Real
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру