Buat itu terlihat seperti saya sedang bekerja

278

Seringkali, saya menemukan diri saya menjalankan skrip atau kueri yang akan memakan banyak waktu untuk dijalankan. Saya dapat membiarkan skrip itu terbuka dan menikmati penundaan yang bebas dari rasa bersalah.

Sekarang, bagaimana jika saya bisa menulis skrip yang tampaknya menjadi salah satu skrip di atas untuk setiap penonton, tetapi dalam tampilan saja? Saya bisa memasangnya di layar dan menikmati berhari - hari kucing streaming langsung sebelum ada yang menyadari bahwa semua omong kosong rumit di layar tidak ada hubungannya dengan pekerjaan saya yang sebenarnya.

Tantangan Anda adalah menulis skrip ini untuk saya (ya, saya malas).

Sebuah baik jawaban akan:

  • Buat sesuatu muncul di layar yang terlihat seperti skrip sedang bekerja. "Layar" dapat berupa terminal, browser, dll.
  • Jadilah yang asli (ya, kita semua telah melihat program progress bar yang tidak pernah berakhir)
  • Bertahan ujian sepintas oleh orang teknis

Sebuah buruk jawabannya akan:

  • Buat saya dipecat
  • Rehash sesuatu yang kita semua diteruskan pada 90-an

Sebuah bintang jawaban mungkin:

  • Melampaui salah satu poin buruk di atas ( misalnya )
  • Selamat dari pemeriksaan kritis
  • * Terkesiap * benar - benar melakukan sesuatu yang berguna atau membantu dalam pekerjaan saya melalaikan

Penerimaan akan didasarkan pada suara, dengan bonus dari hasil kehidupan nyata. Saya benar-benar akan menjalankan skrip ini (Linux Mint 16) di tempat kerja ketika layar saya terlihat (rapat dan sejenisnya) untuk menentukan deteksi. Jika ada yang tahu itu palsu, Anda kehabisan waktu. Jika seseorang mengomentari seberapa keras saya bekerja, +5 bonus meningkatkan untuk Anda.

"Berguna" dalam hal ini dapat berlaku untuk pembuat kode apa pun, tetapi jika Anda mencari kilau ekstra pada apel Anda yang terikat guru, saya webdev penuh-tumpukan yang bekerja dalam kode kira-kira sesuai dengan tag saya .

Pertanyaan sebagian terinspirasi oleh ini .

Hasil

Mengecewakan, saya tidak mendapatkan komentar apa pun tentang entri ini. Semuanya luar biasa, jadi Anda semua adalah pemenang di hati saya. Namun, Loktar memiliki suara terbanyak dengan tembakan panjang, jadi dia mendapat +15 dari penerimaan. Selamat!

Anak kucing
sumber
6
Apa kriteria kemenangan, kontes popularitas ?
Kyle Kanos
36
Jadi ... apa yang terjadi jika Anda menguji jawaban dan itu benar-benar membuat Anda dipecat?
Bob
54
Ini memberi saya ide untuk pertanyaan golf kode lain. "Jadikan pertanyaan saya tidak seharusnya ditunda"
twiz
9
Tulis saja salah satu dari program ini , dan kompilasi !
ugoren
13
Saya melihat remake yang sangat bagus dari ruang dewan Tron Legacy di Github tempo
Paul Prestidge

Jawaban:

291

JavaScript

Jadi saya menjadi sedikit gila dengan ini. Saya melakukannya antara istirahat dari bekerja pada GUI saya untuk melacak IP menggunakan Visual Basic.

Anda dapat mengaksesnya dengan masuk ke domain super serius yang saya buat malam ini juga sehingga Anda dapat terlihat sibuk di mana saja Gui Hacker dan fork dan membuat sendiri dari sumber-sumber berikut

Pada dasarnya, jika Anda menjalankan ini tidak ada yang akan mengganggu Anda karena mereka tahu Anda melakukan beberapa hal serius.

var canvas = document.querySelector(".hacker-3d-shiz"),
  ctx = canvas.getContext("2d"),
  canvasBars = document.querySelector(".bars-and-stuff"),
  ctxBars = canvasBars.getContext("2d"),
  outputConsole = document.querySelector(".output-console");

canvas.width = (window.innerWidth / 3) * 2;
canvas.height = window.innerHeight / 3;

canvasBars.width = window.innerWidth / 3;
canvasBars.height = canvas.height;

outputConsole.style.height = (window.innerHeight / 3) * 2 + 'px';
outputConsole.style.top = window.innerHeight / 3 + 'px'


/* Graphics stuff */
function Square(z) {
  this.width = canvas.width / 2;
  this.height = canvas.height;
  z = z || 0;

  this.points = [
    new Point({
      x: (canvas.width / 2) - this.width,
      y: (canvas.height / 2) - this.height,
      z: z
    }),
    new Point({
      x: (canvas.width / 2) + this.width,
      y: (canvas.height / 2) - this.height,
      z: z
    }),
    new Point({
      x: (canvas.width / 2) + this.width,
      y: (canvas.height / 2) + this.height,
      z: z
    }),
    new Point({
      x: (canvas.width / 2) - this.width,
      y: (canvas.height / 2) + this.height,
      z: z
    })
  ];
  this.dist = 0;
}

Square.prototype.update = function() {
  for (var p = 0; p < this.points.length; p++) {
    this.points[p].rotateZ(0.001);
    this.points[p].z -= 3;
    if (this.points[p].z < -300) {
      this.points[p].z = 2700;
    }
    this.points[p].map2D();
  }
}

Square.prototype.render = function() {
  ctx.beginPath();
  ctx.moveTo(this.points[0].xPos, this.points[0].yPos);
  for (var p = 1; p < this.points.length; p++) {
    if (this.points[p].z > -(focal - 50)) {
      ctx.lineTo(this.points[p].xPos, this.points[p].yPos);
    }
  }

  ctx.closePath();
  ctx.stroke();

  this.dist = this.points[this.points.length - 1].z;

};

function Point(pos) {
  this.x = pos.x - canvas.width / 2 || 0;
  this.y = pos.y - canvas.height / 2 || 0;
  this.z = pos.z || 0;

  this.cX = 0;
  this.cY = 0;
  this.cZ = 0;

  this.xPos = 0;
  this.yPos = 0;
  this.map2D();
}

Point.prototype.rotateZ = function(angleZ) {
  var cosZ = Math.cos(angleZ),
    sinZ = Math.sin(angleZ),
    x1 = this.x * cosZ - this.y * sinZ,
    y1 = this.y * cosZ + this.x * sinZ;

  this.x = x1;
  this.y = y1;
}

Point.prototype.map2D = function() {
  var scaleX = focal / (focal + this.z + this.cZ),
    scaleY = focal / (focal + this.z + this.cZ);

  this.xPos = vpx + (this.cX + this.x) * scaleX;
  this.yPos = vpy + (this.cY + this.y) * scaleY;
};

// Init graphics stuff
var squares = [],
  focal = canvas.width / 2,
  vpx = canvas.width / 2,
  vpy = canvas.height / 2,
  barVals = [],
  sineVal = 0;

for (var i = 0; i < 15; i++) {
  squares.push(new Square(-300 + (i * 200)));
}

//ctx.lineWidth = 2;
ctx.strokeStyle = ctxBars.strokeStyle = ctxBars.fillStyle = '#00FF00';

/* fake console stuff */
var commandStart = ['Performing DNS Lookups for',
    'Searching ',
    'Analyzing ',
    'Estimating Approximate Location of ',
    'Compressing ',
    'Requesting Authorization From : ',
    'wget -a -t ',
    'tar -xzf ',
    'Entering Location ',
    'Compilation Started of ',
    'Downloading '
  ],
  commandParts = ['Data Structure',
    'http://wwjd.com?au&2',
    'Texture',
    'TPS Reports',
    ' .... Searching ... ',
    'http://zanb.se/?23&88&far=2',
    'http://ab.ret45-33/?timing=1ww'
  ],
  commandResponses = ['Authorizing ',
    'Authorized...',
    'Access Granted..',
    'Going Deeper....',
    'Compression Complete.',
    'Compilation of Data Structures Complete..',
    'Entering Security Console...',
    'Encryption Unsuccesful Attempting Retry...',
    'Waiting for response...',
    '....Searching...',
    'Calculating Space Requirements '
  ],
  isProcessing = false,
  processTime = 0,
  lastProcess = 0;


function render() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  squares.sort(function(a, b) {
    return b.dist - a.dist;
  });
  for (var i = 0, len = squares.length; i < len; i++) {
    squares[i].update();
    squares[i].render();
  }

  ctxBars.clearRect(0, 0, canvasBars.width, canvasBars.height);

  ctxBars.beginPath();
  var y = canvasBars.height / 6;
  ctxBars.moveTo(0, y);

  for (i = 0; i < canvasBars.width; i++) {
    var ran = (Math.random() * 20) - 10;
    if (Math.random() > 0.98) {
      ran = (Math.random() * 50) - 25
    }
    ctxBars.lineTo(i, y + ran);
  }

  ctxBars.stroke();

  for (i = 0; i < canvasBars.width; i += 20) {
    if (!barVals[i]) {
      barVals[i] = {
        val: Math.random() * (canvasBars.height / 2),
        freq: 0.1,
        sineVal: Math.random() * 100
      };
    }

    barVals[i].sineVal += barVals[i].freq;
    barVals[i].val += Math.sin(barVals[i].sineVal * Math.PI / 2) * 5;
    ctxBars.fillRect(i + 5, canvasBars.height, 15, -barVals[i].val);
  }

  requestAnimationFrame(render);
}

function consoleOutput() {
  var textEl = document.createElement('p');

  if (isProcessing) {
    textEl = document.createElement('span');
    textEl.textContent += Math.random() + " ";
    if (Date.now() > lastProcess + processTime) {
      isProcessing = false;
    }
  } else {
    var commandType = ~~(Math.random() * 4);
    switch (commandType) {
      case 0:
        textEl.textContent = commandStart[~~(Math.random() * commandStart.length)] + commandParts[~~(Math.random() * commandParts.length)];
        break;
      case 3:
        isProcessing = true;
        processTime = ~~(Math.random() * 5000);
        lastProcess = Date.now();
      default:
        textEl.textContent = commandResponses[~~(Math.random() * commandResponses.length)];
        break;
    }
  }

  outputConsole.scrollTop = outputConsole.scrollHeight;
  outputConsole.appendChild(textEl);

  if (outputConsole.scrollHeight > window.innerHeight) {
    var removeNodes = outputConsole.querySelectorAll('*');
    for (var n = 0; n < ~~(removeNodes.length / 3); n++) {
      outputConsole.removeChild(removeNodes[n]);
    }
  }

  setTimeout(consoleOutput, ~~(Math.random() * 200));
}

render();
consoleOutput();

window.addEventListener('resize', function() {
  canvas.width = (window.innerWidth / 3) * 2;
  canvas.height = window.innerHeight / 3;

  canvasBars.width = window.innerWidth / 3;
  canvasBars.height = canvas.height;

  outputConsole.style.height = (window.innerHeight / 3) * 2 + 'px';
  outputConsole.style.top = window.innerHeight / 3 + 'px';

  focal = canvas.width / 2;
  vpx = canvas.width / 2;
  vpy = canvas.height / 2;
  ctx.strokeStyle = ctxBars.strokeStyle = ctxBars.fillStyle = '#00FF00';
});
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-weight: 400;
  src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(http://themes.googleusercontent.com/static/fonts/sourcecodepro/v4/mrl8jkM18OlOQN8JLgasDxM0YzuT7MdOe03otPbuUS0.woff) format('woff');
}
body {
  font-family: 'Source Code Pro';
  background: #000;
  color: #00FF00;
  margin: 0;
  font-size: 13px;
}
canvas {
  position: absolute;
  top: 0;
  left: 0;
}
.bars-and-stuff {
  left: 66.6%;
}
.output-console {
  position: fixed;
  overflow: hidden;
}
p {
  margin: 0
}
<canvas class='hacker-3d-shiz'></canvas>
<canvas class='bars-and-stuff'></canvas>
<div class="output-console"></div>

Loktar
sumber
47
Orang-orang melukis / pemeliharaan menyadari bahwa saya seorang programmer dan bukan hanya beberapa orang yang mendengarkan musik !! Saya ingin tahu apakah ini akan bertahan beberapa pemeriksaan oleh seorang pria teknologi: P
sabithpocker
17
Saya menginginkannya sebagai screensaver baru saya !! Sebenarnya, bagaimana Anda melakukannya di ubuntu?
33
Saya duduk di Perpustakaan Umum Toronto dengan terbuka ini dan saya memperhatikan orang-orang di belakang saya melihat layar saya. Ini terlihat sangat 'menakutkan' bagi pria nontech. Bisakah Anda membuat guihacker.com memungkinkan kita 2 mengubah judul halaman menjadi apa pun yang kita inginkan, dan jika kita dapat menambahkan di baris kita sendiri yang akan muncul dalam teks hijau? Saya sedang berpikir untuk membuat judul halaman 'Toronto Public Library Internet Access' dan membuat garis hijau mengatakan 'Mengakses Database Keamanan Perpustakaan Umum Toronto ..' 'Mengakses nama pengguna dan kata sandi ...' 'Access Granted ..' Ini mungkin membuat saya dalam masalah tetapi itu akan menyenangkan.
user2719875
37
Apakah ini berjalan selama 30 detik sebelum rekan-rekan pengembang saya datang untuk menanyakan apa yang saya peretas. Saya pikir itu dianggap sukses, jadi +1
MrTheWalrus
10
"Laporan TPS" ... brilian.
Dennis
111

Bash / coreutils

Memperkenalkan pertama yang pernah ... kompilasi emulator . Dengan program ini, Anda dapat memiliki pertempuran pedang kursi kantor epik kapan saja Anda suka, bahkan tanpa menulis kode apa pun!

#!/bin/bash
collect()
{
    while read line;do
        if [ -d "$line" ];then
            (for i in "$line"/*;do echo $i;done)|sort -R|collect
            echo $line
        elif [[ "$line" == *".h" ]];then
            echo $line
        fi
    done
}

sse="$(awk '/flags/{print;exit}' </proc/cpuinfo|grep -o 'sse\S*'|sed 's/^/-m/'|xargs)"

flags=""
pd="\\"

while true;do
    collect <<< /usr/include|cut -d/ -f4-|
    (
        while read line;do
            if [ "$(dirname "$line")" != "$pd" ];then
                x=$((RANDOM%8-3))
                if [[ "$x" != "-"* ]];then
                    ssef="$(sed 's/\( *\S\S*\)\{'"$x,$x"'\}$//' <<< "$sse")"
                fi
                pd="$(dirname "$line")"
                opt="-O$((RANDOM%4))"
                if [[ "$((RANDOM%2))" == 0 ]];then
                    pipe=-pipe
                fi
                case $((RANDOM%4)) in
                    0) arch=-m32;;
                    1) arch="";;
                    *) arch=-m64;;
                esac
                if [[ "$((RANDOM%3))" == 0 ]];then
                    gnu="-D_GNU_SOURCE=1 -D_REENTRANT -D_POSIX_C_SOURCE=200112L "
                fi
                flags="gcc -w $(xargs -n1 <<< "opt pipe gnu ssef arch"|sort -R|(while read line;do eval echo \$$line;done))"
            fi
            if [ -d "/usr/include/$line" ];then
                echo $flags -shared $(for i in /usr/include/$line/*.h;do cut -d/ -f4- <<< "$i"|sed 's/h$/o/';done) -o "$line"".so"
                sleep $((RANDOM%2+1))
            else
                line=$(sed 's/h$//' <<< "$line")
                echo $flags -c $line"c" -o $line"o"
                sleep 0.$((RANDOM%4))
            fi
        done
    )
done

Ini menggunakan data dari /usr/include untuk membuat log kompilasi yang tampak realistis. Saya terlalu malas untuk melempar peringatan acak, jadi hanya ada -wbendera.

Contoh acak:

gcc -w -m64 -pipe -msse -msse2 -msse3 -O1 -c libiptc / xtcshared.c -o libiptc / xtcshared.o
gcc -w -m64 -pipe -msse -msse2 -msse3 -O1 -c libiptc / libip6tc.c -o libiptc / libip6tc.o
gcc -w -m64 -pipe -msse -msse2 -msse3 -O1 -c libiptc / libxtc.c -o libiptc / libxtc.o
gcc -w -m64 -pipe -msse -msse2 -msse3 -O1 -c libiptc / ipt_kernel_headers.c -o libiptc / ipt_kernel_headers.o
gcc -w -m64 -pipe -msse -msse2 -msse3 -O1 -c libiptc / libiptc.c -o libiptc / libiptc.o
gcc -w -O2 -m64 -pipe -msse -msse2 -msse3 -msse4_1 -msse4_2 -membagikan libiptc / ipt_kernel_headers.o libiptc / libip6tc.o libiptc / libiptc.o libiptc / libiptc.o libiptc/libcc/ciploc.cip ke libiptc. begitu
gcc -w -m64 -pipe -O0 -msse -msse2 -msse3 -msse4_1 -c e2p / e2p.c -o e2p / e2p.o
gcc -w -msse -msse2 -msse3 -msse4_1 -m64 -pipe -O1 -bagi e2p / e2p.o -o e2p.so
gcc -w -pipa -O0 -msse -msse2 -m64 -c rempah-klien-gtk-2.0 / spice-widget-enums.c -o rempah-rempah-klien-gtk-2.0 / rempah-rempah-widget-enums.o
gcc -w -pipa -O0 -msse -msse2 -m64 -c rempah-klien-gtk-2.0 / spice-grabafterence.c -o rempah-rempah-klien-gtk-2.0 / spice-grabafterence.o
gcc -w -pipa -O0 -msse -msse2 -m64 -c rempah-klien-gtk-2.0 / spice-gtk-session.c -o rempah-rempah-klien-gtk-2.0 / spice-gtk-session.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c rempah-klien-gtk-2.0 / spice-widget.c -o rempah-klien-gtk-2.0 / spice-widget.o
gcc -w -pipa -O0 -msse -msse2 -m64 -c rempah-klien-gtk-2.0 / usb-device-widget.c -o rempah-rempah-klien-gtk-2.0 / usb-device-widget.o
gcc -w -pipa -m64 -msse -msse2 -O1 -bagi-rempah-klien-gtk-2.0 / rempah-grabugurence.o rempah-klien-gtk-2.0 / rempah-rempah-gtk-session.o rempah-rempah-klien-gtk-2.0 /spice-widget-enums.o spice-client-gtk-2.0 / spice-widget.o spice-client-gtk-2.0 / usb-device-widget.o -o spice-client-gtk-2.0.so
gcc -w -pipe -m64 -msse -msse2 -O1 -c search.c -o search.o
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / path.c -o massalomm-1.0 / cairomm / pathoc
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / scaledfont.c -o cairomm / scaledfont / scaledfont / scallemembreg / calo
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / fontface.c -o massalomm-1.0 / tulisan biasa / font.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / quartz_font.c -o massalomm-1.0 / jamomo
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / win32_font.c -o cairomm-1.0 / grossomm / win_no
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / refptr.c -o massalomm-1.0 / cairomm / ref.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / cairomm-1.0 / cairomm / bulkomm.o
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / context.c-bulkartomm-1.0 / cairomm / contexto.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / enums.c -o massalomm-1.0 / cairomm / enums.um
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / win32_surface.c -o bulkomm_surface.commurobo/permukaanur biasa.command/permukaan.comur biasa./permukaan biasa di winord / 1.0.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / pattern.c -o cairomm-1.0 / cairomm / patterno.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / types.c -o cairomm-1.0 / cairomm / typeo.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / 1.0 / cairomm / matrixo.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / quartz_surface.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / pengecualian / pengecualian.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / device.c -o cairomm / 1.0 perangkat
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / 1.0 / cairomm / surfaceo.
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / xlib_surface.c -o bulkomm_surve_burter_command_command_curved_our
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / fontoptions.c -o massalomm-1.0 / fontomop
gcc -w -O0 -pipa -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / region.c -o bulkomm-1.0 / cairomm / regiono.
gcc -w -O0 -pipe -m64 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -msse -msse2 -msse3 -msse4_1 -bagi bersamaommomomma 1.0 / cairomm / cairomm.o cairomm-1.0 / cairomm-konteks. /cairomm/device.o cairomm-1.0 / cairomm / enums.o cairomm-1.0 / cairomm / exception.o cairomm-1.0 / cairomm / fontface.o cairomm-1.0 / cairomm / fontoptions.o cairomm-1.0 / cairomm / matrix. cairomm-1.0 / cairomm / path.o cairomm-1.0 / cairomm / pattern.o cairomm-1.0 / cairomm / quartz_font.o cairomm-1.0 / cairomm / quartz_surface.o cairomm-1.0 / cairomm / refptr.o cairomm-1.0 / cairomm / region.o cairomm-1.0 / cairomm / scaledfont.o cairomm-1.0 / cairomm / surface.o cairomm-1.0 / cairomm / types.o cairomm-1.0 / cairomm / win32_font.o cairomm-1.0 / cairomm / win32_surface.o cairomm-1.0 / cairomm / xlib_surface.o -o cairomm-1.0 / cairomm.so
gcc -w -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -msse -O1 -pipa-Shared cairomm-1.0 / *. o -o cairomm-1.0.so
gcc -w -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -msse -O1 -pipe -c ulockmgr.c -o ulockmgr.o
gcc -w -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -msse -O1 -pipe -c gshadow.c -o gshadow.o
gcc -w -O2 -msse -msse2 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -pipe -c dpkg / string.c -o dpkg / string.o
gcc -w -O2 -msse -msse2 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -pipe -c dpkg / fdio.c -o dpkg / fdio.o
gcc -w -O2 -msse -msse2 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -pipe -c dpkg / namevalue.c -o dpkg / namevalue.o
gcc -w -O2 -msse -msse2 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -pipe -c dpkg / macros.c -o dpkg / macros.o
mniip
sumber
4
Tidak buruk sama sekali! Sesuatu tidak terasa benar tentang hal ini (apakah HD terus diam?) Tetapi bagi pemirsa yang tidak tahu, sangat tidak mungkin menimbulkan kecurigaan. Meskipun ... apa, itu kompilasi libdrm? Dan sys/wait.o?? Apa yang ...
berhenti berubah counterclockwis
27
@leftaroundabout Katakanlah Anda memiliki SSD.
mniip
36
Untuk membuatnya lebih otentik Anda harus menampilkan peringatan kompiler palsu beberapa kali per baris gcc. :)
monocell
3
Anda mungkin bisa menggunakan pkg-config untuk membuat flag gcc palsu yang lebih realistis.
Brendan Long
3
@WChargin yang tidak akan mengaktifkan HD.
Thorbjørn Ravn Andersen
106

Pesta

Secara tak terbatas menampilkan nilai-nilai heksadesimal acak, dengan beberapa di antaranya disorot untuk membuatnya terasa seperti Anda melakukan pencarian rumit dalam data mentah.

while true; do head -c200 /dev/urandom | od -An -w50 -x | grep -E --color "([[:alpha:]][[:digit:]]){2}"; sleep 0.5; done

enter image description here

barjak
sumber
6
Oooh, aku suka yang ini!
SomeKittens
4
(Tetap bersamaku, baru mengenal bash) tetapi ketika menjalankan baris ini, (mac osx, terminal) saya mendapatkan output ini secara berulang:od: illegal option -- w usage: od [-aBbcDdeFfHhIiLlOosvXx] [-A base] [-j skip] [-N length] [-t type] [[+]offset[.][Bb]] [file ...]
Sterling Archer
2
Tampaknya versi odAnda tidak mendukung -wopsi. Anda dapat menjatuhkan opsi ini, ada di sini hanya untuk menampilkan lebih banyak kolom data, untuk mengisi layar sedikit lebih banyak.
barjak
8
Secara pribadi, saya lebih suka ini sleep 0.5diubah ke sleep.$[$RANDOM % 10]. Itu membuatnya sedikit lebih brengsek, dan lebih seperti pencarian nyata. Tapi aku suka itu!
undergroundmonorail
4
Mengingatkan saya pada pencarian yang tidak pernah berakhir untuk "ca fe":cat /dev/random | hexdump | grep "ca fe"
daviewales
102

Bangunan yang sangat panjang:

emerge openoffice
John
sumber
48
; _;
mniip
3
Lebih lama dari Chromium?
nyuszika7h
6
Masalah dengan mengkompilasi proyek nyata itu bahwa itu akan berhenti jika terjadi kesalahan. Mungkin kita harus meletakkan ini dalam loop yang tak terbatas.
Akira Yamamoto
3
Apakah kita sudah muncul di Linux Mint?
Akira Yamamoto
3
Pada sistem .deb seperti Ubuntu dan Mint, Anda ingin sudo apt-get build-dep libreoffice; apt-get source libreoffice; cd libreoffice*; while :; do nice dpkg-buildpackage -rfakeroot; done(Anda harus mengasuhnya di jalankan pertama, setidaknya sampai kompilasi yang sebenarnya dimulai. Berjalan berikutnya hanya perlu whileloop.)
Adam Katz
55

Rubi

Yang ini akan:

  1. Dapatkan kode acak dari situs ini. review kode (untuk kode yang lebih mudah dibaca dan ditulis dengan baik)
  2. Buat seolah-olah Anda sedang mengetik kode ini.
require 'open-uri'
require 'nokogiri'
site = "http://codereview.stackexchange.com/"
system 'cls'
system("color 0a")
5.times do
    begin
        id = rand(1..6000)
        url = "#{site}/a/#{id}"
        page = Nokogiri::HTML(open(url))
        code = page.css('code')[0].text
    end until code

    code.each_char  do |char|
        print char
        sleep rand(10) / 30.0
    end
end

Ini skrip ini berdasarkan pada kode yang diambil dari sini :

require 'open-uri'
code = open("http://hackertyper.com/code.txt")
system 'cls'
system("color 0a")

code.each_char  do |char|
    print char
    sleep rand(10) / 30.0
 end

Berikut tampilannya: Code

Mhmd
sumber
11
Bagaimana jika kode yang didapat ada di Brainf ** k, Golfscript atau J. Itu akan menimbulkan kecurigaan.
user80551
39
Akhirnya jawaban ditempatkan dengan hati-hati saya yang menambahkan backdoors di sekitar pembayaran
PlasmaHH
1
Mungkin stackoverflow akan lebih baik?
PyRulez
3
Kecepatan mengetik masing-masing terlihat lebih realistis jika saya mengacak kecepatan (dan membuatnya lebih cepat) dengan mengubah sleepbaris menjadi sleep rand(10).to_f / 30.
Rory O'Kane
3
Saya pikir menggunakan kode Ulasan Kode pada Kode Golf sempurna. Saya selalu menganggap Code Golf sebagai kembaran jahat Code Review, dan saya suka keduanya ...
trichoplax
52

Mari kita pergi dengan skrip bash sederhana yang membuat Anda terlihat seperti hacker dengan mencetak konten setiap file yang diidentifikasi sebagai teks di / var / log / baris demi baris, dengan penundaan acak untuk membuatnya tampak seperti hal-hal intensif sedang terjadi. Bergantung pada file yang diketuknya, itu dapat memberikan beberapa output yang agak menarik.

#/bin/bash
# this script helps you do hackerish stuff

if [ "$EUID" -ne 0 ]
then
  echo "Please run as root to be hackerish."
  exit
fi

# turn off globbing
set -f
# split on newlines only for for loops
IFS='
'
for log in $(find /var/log -type f); do
  # only use the log if it's a text file; we _will_ encounter some archived logs
  if [ `file $log | grep -e text | wc -l` -ne 0 ]
  then
    echo $log
    for line in $(cat $log); do
      echo $line
      # sleep for a random duration between 0 and 1/4 seconds to indicate hard hackerish work
      bc -l <<< $(bc <<< "$RANDOM % 10")" / 40" | xargs sleep
    done
  fi
done

Pastikan tema terminal Anda terlihat seperti hacker. Berikut adalah beberapa contoh badass (tidak tahu apa artinya ini, tetapi kelihatannya seperti hacker):

image image

Jwosty
sumber
3
Bagus sekali. Contoh tangkapan layar sangat bagus
SomeKittens
37
Apakah Anda sadar bahwa kunci pribadi Anda ada di tangkapan layar ini?
Hubert OG
27
Haha, mengerti! ;-)
Hubert OG
4
(Tapi serius, saya tidak membaca screenshot itu jadi saya tidak tahu apa yang sebenarnya ada di sana.)
Hubert OG
3
@ HubertOG Wow, Anda hampir memberi saya serangan jantung ...; PI tidak melihat bahwa di mana pun jadi saya pikir saya akan menjadi gila: O
Jwosty
49

Bash: Git tanpa akhir berkomitmen

Masalah dengan komputer saat ini adalah mereka cukup cepat, sehingga bahkan tugas kompilasi akhirnya selesai. Juga, mengingat skrip yang berjalan untuk waktu yang lama Anda mungkin berpendapat bahwa itu sebenarnya mungkin untuk terus mengerjakan sesuatu yang lain saat skrip berjalan.

Untuk mengatasi ini, kami memiliki program berikut. Belajarlah mengetik 'y' atau 'n' secara acak setiap saat.

Tentu saja Anda memerlukan repo git dengan beberapa konten baru tetapi dengan asumsi Anda sesekali melakukan pekerjaan aktual yang seharusnya tidak menjadi masalah.

#!/bin/bash

while [ 1 ]; do
  git add -p
  git reset
done
monocell
sumber
12
Saya merasa sangat terganggu oleh entri CG ini ... Entah +1 atau -1, tapi saya masih tidak tahu yang mana!
vaxquis
37

Pesta

#!/bin/bash
function lazy {
    sudo apt-get update
    lazy
    }
lazy

Ini hanya akan terus memperbarui repo Anda. Jika seseorang memperhatikan, katakan saja Anda menambahkan repo baru untuk program baru, dan Anda sedang menguji yang berbeda. Ini tidak benar-benar seperti memalsukan naskah, tetapi sebuah perintah.

CATATAN: Saya tidak memaafkan tidak produktif di tempat kerja, tetapi saya suka eksperimen. Karena itu saya merekomendasikan aplikasi ini untuk digunakan agar produktif secara diam-diam.

PyRulez
sumber
5
Bagus, tapi hati-hati dengan fungsi rekursif itu.
Digital Trauma
1
Sepertinya bom fork !!
Avinash R
2
@AvinashR Tidak cukup, tidak bercabang.
PyRulez
43
Host cermin membencimu sekarang.
Caleb
9
"Tidak juga, tidak bercabang." Jadi katamu, hanya bom? :-)
celtschk
28

C ++ Neural Network

SUNTING

Sayangnya saya mengoptimalkan kode ini :( membuatnya 2000x lebih cepat ... Kode warisan masih sempurna untuk membuang waktu!

Asli

Saya sebenarnya memulai sebuah proyek dalam jaringan saraf convolutional yang sempurna untuk ini! Kode sumber dan dokumentasi ada di github . Langkah pertama adalah membuat jaringan baru.

std::vector<int> numNeurons = { 500, 500, 2000, 10 };
std::vector<int> numMaps = { 1, 1, 1, 1 };

ConvolutionalNeuralNetwork neuralNetwork(numNeurons, numMaps, numNeurons, 
    std::vector<std::vector<int>>(), std::vector<std::vector<int>>());

Sekarang kita memiliki jaringan dengan 300 neuron dan 1.250.000 sinapsis, mari kita simpan ke file untuk memastikan kita tidak kehilangan kemajuan yang kita buat dengan jaringan.

neuralNetwork.SaveToFile("test2.cnn");

Itu menghasilkan file teks 68MB dan lebih dari beberapa jam kerja santai. Sekarang, mari bersenang-senang melakukan sesuatu dengannya! Saya akan membuat input acak dan mulai membeda-bedakannya.

std::vector<std::vector<float>> input;
for (int i = 0; i < 2; ++i)
    input.push_back(std::vector<float>{});

for (int i = 0; i < 2; ++i)
    for (int j = 0; j < 3; ++j)
        input[i].push_back(rand() % 100);
neuralNetwork.SetInput(input);

Itu adalah input yang cukup kecil untuk sebuah gambar, tetapi kami hanya membuktikan bahwa jaringan dapat melakukan sesuatu. Langkah selanjutnya adalah melakukan diskriminasi!

Layer output = neuralNetwork.Discriminate();

Ini bahkan belum selesai untuk saya, dan sudah berjalan selama 2 hari! Kemudian setelah kita mendapatkan output itu, mari kita jalankan lagi secara terbalik hanya untuk bersenang-senang.

Layer generatedOutput = neuralNetwork.Generate(output);

Ini semua hanya untuk membuktikan bahwa API berfungsi, belum ada rencana untuk itu. Langkah ini belum berjalan untuk saya, dan saya sudah menunggu beberapa saat. Bagus 2+ hari terbakar, dan itu perkiraan kasar dari pengujian saya saat ini. Ini cukup rumit, dan Anda akan bekerja keras selama satu atau dua hari untuk membuatnya, tetapi setelah itu Anda mungkin tidak perlu bekerja lagi!

Catatan: Jika Anda tidak pernah ingin bekerja lagi, cobalah untuk melatih jaringan

neuralNetwork.LearnCurrentInput();

Aku bahkan tidak punya waktu untuk membuang yang satu ini!

Jika Anda ingin memamerkan semua data yang terjadi, tambahkan beberapa panggilan di fungsi hanya untuk menampilkan apa yang terjadi

Konstruktor baru

ConvolutionalNeuralNetwork::ConvolutionalNeuralNetwork(std::vector<int> neuronCountPerLayer, std::vector<int> featureMapsPerLayer, std::vector<int> featureMapDimensions, std::vector<std::vector<int>> featureMapConnections, std::vector<std::vector<int>> featureMapStartIndex)
{
std::map<SimpleNeuron, std::vector<Synapse>> childrenOf;
for (unsigned int i = 0; i < neuronCountPerLayer.size() - 1; ++i)
{
    Layer currentLayer;

    for (int j = 0; j < neuronCountPerLayer[i]; ++j)
    {
        std::vector<Synapse> parentOf;

        if (featureMapsPerLayer[i] == 1)
        {
            for (int n = 0; n < neuronCountPerLayer[i + 1]; ++n)
            {
                std::cout << "Adding new synapse, data: " << std::endl;

                SimpleNeuron current = SimpleNeuron(i + 1, j + 1);
                SimpleNeuron destination = SimpleNeuron(i + 2, n + 1);

                std::cout << "Origin: " << i + 1 << ", " << j + 1 << "; Destination: " << i + 2 << ", " << n + 1 << std::endl;

                Synapse currentParentSynapse = Synapse(current, current);
                Synapse currentChildSynapse = Synapse(destination, destination);

                currentChildSynapse.SetWeightDiscriminate(currentParentSynapse.GetWeightDiscriminate());
                currentChildSynapse.SetWeightGenerative(currentParentSynapse.GetWeightGenerative());

                std::cout << "Weights: Discriminative: " << currentChildSynapse.GetWeightDiscriminate() << "; Generative: " << currentChildSynapse.GetWeightGenerative() << std::endl;

                parentOf.push_back(currentParentSynapse);

                if (childrenOf.find(destination) != childrenOf.end())
                    childrenOf.at(destination).push_back(currentChildSynapse);
                else
                    childrenOf.insert(std::pair<SimpleNeuron, std::vector<Synapse>>(destination,
                    std::vector<Synapse>{ currentChildSynapse }));
            }
        }

        else
        {
            int featureMapsUp = featureMapsPerLayer[i + 1];
            int inFeatureMap = featureMapsPerLayer[i] / j;
            int connections = featureMapConnections[i][inFeatureMap];
            int startIndex = (neuronCountPerLayer[i + 1] / featureMapsUp) * featureMapStartIndex[i][inFeatureMap];
            int destinationIndex = startIndex + (neuronCountPerLayer[i + 1] / featureMapsUp) * connections;

            for (int n = startIndex; n < destinationIndex; ++n)
            {
                SimpleNeuron current = SimpleNeuron(i + 1, j + 1);
                SimpleNeuron destination = SimpleNeuron(i + 2, n + 1);

                std::cout << "Origin: " << i + 1 << ", " << j + 1 << "; Destination: " << i + 2 << ", " << n + 1 << std::endl;

                Synapse currentParentSynapse = Synapse(current, current);
                Synapse currentChildSynapse = Synapse(destination, destination);

                currentChildSynapse.SetWeightDiscriminate(currentParentSynapse.GetWeightDiscriminate());
                currentChildSynapse.SetWeightGenerative(currentParentSynapse.GetWeightGenerative());

                std::cout << "Weights: Discriminative: " << currentChildSynapse.GetWeightDiscriminate() << "; Generative: " << currentChildSynapse.GetWeightGenerative() << std::endl;

                parentOf.push_back(currentParentSynapse);

                if (childrenOf.find(destination) != childrenOf.end())
                    childrenOf.at(destination).push_back(currentChildSynapse);
                else
                    childrenOf.insert(std::pair<SimpleNeuron, std::vector<Synapse>>(destination,
                    std::vector<Synapse>{ currentChildSynapse }));
            }
        }

        std::cout << "Adding neuron" << std::endl << std::endl;

        if (childrenOf.find(SimpleNeuron(i + 1, j + 1)) != childrenOf.end())
            currentLayer.AddNeuron(Neuron(parentOf, childrenOf.at(SimpleNeuron(i + 1, j + 1))));
        else
            currentLayer.AddNeuron(Neuron(parentOf, std::vector<Synapse>{}));
    }

    std::cout << "Adding layer" << std::endl << std::endl << std::endl;

    AddLayer(currentLayer);
}

Layer output;

std::cout << "Adding final layer" << std::endl;

for (int i = 0; i < neuronCountPerLayer[neuronCountPerLayer.size() - 1]; ++i)
    output.AddNeuron(Neuron(std::vector<Synapse>(), childrenOf.at(SimpleNeuron(neuronCountPerLayer.size(), i + 1))));
AddLayer(output);
}

FireSynapse Baru

float Neuron::FireSynapse()
{
float sum = 0.0f;

std::cout << "Firing Synapse!" << std::endl;

for (std::vector<Synapse>::iterator it = m_ChildOfSynapses.begin(); it != m_ChildOfSynapses.end(); ++it)
    sum += ((*it).GetWeightDiscriminate() * (*it).GetParent().GetValue());

std::cout << "Total sum: " << sum << std::endl;

float probability = (1 / (1 + pow(e, -sum)));

std::cout << "Probably of firing: " << probability << std::endl;

if (probability > 0.9f)
    return 1.0f;

else if (probability < 0.1f)
    return 0.0f;

else
{
    std::cout << "Using stochastic processing to determine firing" << std::endl;
    float random = ((rand() % 100) / 100);
    if (random <= probability)
        return 1.0f;
    else
        return 0.0f;
}
}

Anda akan mendapatkan banyak output di konsol Anda sekarang.

Liam McInroy
sumber
4
+1 untuk konteks kehidupan nyata juga. Menarik :)
George
1
Hahahaha inisial namanya "CNN"
Nic Hartley
26

Python 3

#!/usr/bin/python3

import random
import time

first_level_dirs = ['main', 'home', 'usr', 'root', 'html', 'assets', 'files']
title_descs = ['page', 'script', 'interface', 'popup']
id_names = ['container', 'main', 'textbox', 'popup']
tag_names = ['div', 'textarea', 'span', 'strong', 'article', 'summary', 'blockquote', 'b']
autoclosing_tags = ['br', 'input']

def random_js_line():
    return random.choice([
        '      $("#%s").html("<b>" + $("#%s").text() + "</b>");' % (random.choice(id_names), random.choice(id_names)),
        '      $.get("t_%i.txt", function(resp) {\n        callback(resp);\n      });' % (int(random.random() * 50)),
        '      $("%s>%s").css({width: %i + "px", height: %i + "px"});' % (random.choice(tag_names), random.choice(tag_names), int(random.random() * 75), int(random.random() * 75)),
        '      for (var i = 0; i < count; i++) {\n        $("<div>").appendTo("#%s");\n      }' % (random.choice(id_names))
    ])

def random_js_lines():
    lines = [random_js_line() for _ in range(int(random.random() * 14) + 1)]
    return '\n'.join(lines)

def random_html_line():
    tag_name = random.choice(tag_names)
    return random.choice([
        '    <%s>id: %i</%s>' % (tag_name, int(random.random() * 1000), tag_name),
        '    <%s class="%s">\n      <%s/>\n    </%s>' % (tag_name, random.choice(first_level_dirs), random.choice(autoclosing_tags), tag_name),
        '    <div id="%s"></div>' % (random.choice(first_level_dirs))
    ])

def random_html_lines():
    lines = [random_html_line() for _ in range(int(random.random() * 9) + 1)]
    return '\n'.join(lines)

while True:
    print('creating /%s/%i.html' % (random.choice(first_level_dirs), int(random.random() * 1000)))
    time.sleep(random.random())
    lines = [
        '<!DOCTYPE html>',
        '<html lang="en">',
        '  <head>',
        '    <title>%s #%i</title>' % (random.choice(title_descs), int(random.random() * 100)),
        '    <script type="text/javascript" src="/js/assets/jquery.min.js"></script>',
        '    <script type="text/javascript">',
        random_js_lines(),
        '    </script>',
        '  </head>',
        '  <body>',
        random_html_lines(),
        '  </body>',
        '</html>'
    ]
    lines = [single_line for linegroup in lines for single_line in linegroup.split('\n')]
    for line in lines:
        print(line)
        time.sleep(random.random() / 10)
    print()
    time.sleep(random.random() / 2)

Ini menghasilkan banyak baris JS dan HTML palsu, dengan waktu "tunda" palsu (penundaan) untuk membuatnya tampak lebih realistis.

Ini dapat dan akan diperluas secara luas! (program dasar ada di sana; Saya hanya perlu menambahkan lebih banyak konten sekarang)


Inilah "halaman" contoh yang dihasilkannya (ini sebenarnya dari versi kode yang lama; Saya akan memperbaruinya dengan kode baru ketika saya selesai):

creating /assets/809.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>script #32</title>
    <script type="text/javascript" src="/js/assets/jquery.min.js"></script>
    <script type="text/javascript">
      $("#main").html("<b>" + $("#main").text() + "</b>");
      $("#textbox").html("<b>" + $("#container").text() + "</b>");
      $("#popup").html("<b>" + $("#textbox").text() + "</b>");
      $("#container").html("<b>" + $("#textbox").text() + "</b>");
      $.get("t_11.txt", function(resp) {
        callback(resp);
      });
      $("#main").html("<b>" + $("#textbox").text() + "</b>");
      $.get("t_14.txt", function(resp) {
        callback(resp);
      });
      $.get("t_1.txt", function(resp) {
        callback(resp);
      });
      $.get("t_34.txt", function(resp) {
        callback(resp);
      });
    </script>
  </head>
  <body>
    <span>id: 462</span>
    <textarea>id: 117</textarea>
  </body>
</html>
Gagang pintu
sumber
3
Luar biasa, tidak sabar untuk melihat apa yang Anda tambahkan ke dalamnya!
SomeKittens
heh ya yang satu ini cantik sekali. Pikiranku menjadi liar dengan hal-hal keren yang bisa kamu lakukan dengan generasi
Loktar
Bukan hanya python3, 2,7 juga ok
Hannes Karppila
1
Kerja bagus. Terlihat cukup realistis.
qwr
24

Node.js + BDD

Sepertinya aliran tanpa henti tes gaya BDD berjalan. Tidak ada yang bisa menyalahkan Anda karena menjalankan tes!

    "use strict"
var colors = require("colors"),
    features = ["User", "Request", "Response", "Cache", "Preference", "Token", "Profile", "Application", "Security"],
    patterns = ["Factory", "Observer", "Manager", "Repository", "Impl", "Dao", "Service", "Delegate", "Activity"],
    requirements = ["return HTTP 403 to unauthorized users",
                    "accept UTF-8 input",
                    "return HTTP 400 for invalid input",
                    "correctly escape SQL",
                    "validate redirects",
                    "provide online documentation",
                    "select internationalized strings, based on locale",
                    "support localized date formats",
                    "work in IE6",
                    "pass W3C validation",
                    "produce valid JSON",
                    "work with screen readers",
                    "use HTML5 canvas where available",
                    "blink"],
    minTimeout = 100,
    maxTimeout = 1000,
    minRequirements = 2,
    maxRequirements = 6,
    skipThreshold = 0.1,
    failThreshold = 0.2


function randBetween(l, u) {
  return Math.floor(Math.random() * (u - l) + l) 
}

function choose(l) {
  return l[randBetween(0, l.length)]
}

function timeout() {
  return randBetween(minTimeout, maxTimeout)
}

function printFeature() {
  console.log("")
  var feature = choose(features) + choose(patterns)
  var article = /^[AEIOU]/.test(feature) ? "An " : "A "
  console.log(article + feature + " should")
  setTimeout(function() {
    var reqs = randBetween(minRequirements, maxRequirements)
    printRequirements(reqs)
  }, timeout())
}

function printRequirements(i) {
  if (i > 0) {
    var skipFailOrPass = Math.random()
    if (skipFailOrPass < skipThreshold) {
      console.log(("- " + choose(requirements) + " (SKIPPED)").cyan)
    } else if (skipFailOrPass < failThreshold) {
      console.log(("x " + choose(requirements) + " (FAILED)").red)
      console.log(("  - Given I am on the " + choose(features) + " page").green)
      console.log(("  - When I click on the " + choose(features) + " link").green)
      console.log(("  x Then the Log Out link should be visible in the top right hand corner").red)
    } else {
      console.log(("+ " + choose(requirements)).green)
    }
    setTimeout(function() {printRequirements(i - 1)}, timeout())
  } else {
    printFeature()
  }
}

printFeature()

Memperbarui

Terpikir oleh saya bahwa itu akan terlihat mencurigakan jika semua tes Anda lulus, jadi saya telah memperbaruinya untuk memasukkan beberapa tes yang gagal - lengkap dengan Given-When-Thens.

Dan ya, saya tahu bahwa semua kegagalan memiliki pesan yang sama. Anda benar-benar harus memperbaiki tautan keluar itu!

masukkan deskripsi gambar di sini

James_pic
sumber
2
Sangat pintar, saya mendapat poin bonus untuk memastikan kode saya diuji!
Jangan
23

C # (Windows)

Saya hadir untuk Anda, Simulator Memtest86 baru 2014 ! (Karena menjalankan Memtest86 di Windows masuk akal)

Lengkap dengan bilah kemajuan dan indikator pola!

Kode ini secara luas menggunakan kelas Konsol, yang sejauh yang saya tahu, ini hanya tersedia di Windows. Juga, saya tidak dapat menemukan cara untuk menunjukkan nama prosesor nyata / frekuensi dan memori yang tersedia, jadi itu adalah hardcode.

Tangkapan layar: masukkan deskripsi gambar di sini

SUNTING

Untuk mengambil informasi prosesor, Anda dapat menggunakan kelas namespace dan RegistryKey Microsoft.Win32.

 // Processor information, add 'using Microsoft.Win32';
string processor = "";
RegistryKey processor_name = Registry.LocalMachine.OpenSubKey(@"Hardware\Description\System\CentralProcessor\0", RegistryKeyPermissionCheck.ReadSubTree);
        if (processor_name != null)
        {
            if (processor_name.GetValue("ProcessorNameString") != null)
            {
                processor = (string)processor_name.GetValue("ProcessorNameString");
            }
        }

Kode (jelek, saya tahu):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

class MemTestSim
{
    static void Main(string[] args)
    {
        Random r = new Random();
        int seconds = 0;
        int pass = 0;
        int test = 0;
        int testNumber = 0;

        string[] testNames = { "Address test, own Adress", "Moving inversions, ones & zeros", "Moving inversions, 8 bit pattern" };
        string[] pattern = { "80808080", "7f7f7f7f", "40404040", "bfbfbfbf", "20202020", "dfdfdfdf", "10101010", "efefefef", "08080808", "f7f7f7f7", "8f8f8f8f" };

        // Trick to stop the console from scrolling
        Console.SetWindowSize(80, 40);

        Console.Title = "Memtest86+ v2.11";
        Console.CursorVisible = false;

        // Dark Blue Background Color
        Console.BackgroundColor = ConsoleColor.DarkBlue;
        Console.Clear();

        // Green Title Text
        Console.BackgroundColor = ConsoleColor.DarkGreen;
        Console.ForegroundColor = ConsoleColor.Black;
        Console.Write("      Memtest86+ v2.11     ");

        // Gray on Blue Text and main window structure
        Console.BackgroundColor = ConsoleColor.DarkBlue;
        Console.ForegroundColor = ConsoleColor.Gray;
        Console.Write("| Pass " + pass + "%\n");
        Console.WriteLine("Intel Core i5 2290 MHz     | Test ");
        Console.WriteLine("L1 Cache:  128K   1058MB/s | Test #" + testNumber + "  [" + testNames[0] + "]");
        Console.WriteLine("L2 Cache:  512K   1112MB/s | Testing:  132K - 8192M  8192M");
        Console.WriteLine("L3 Cache: 3072K   1034MB/s | Pattern: ");
        Console.WriteLine("Memory  : 8192M            |---------------------------------------------------");
        Console.WriteLine("Chipset :  Intel i440FX");
        Console.WriteLine();
        Console.WriteLine();
        Console.WriteLine(" WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs");
        Console.WriteLine(" ---------  ------  -------  --------  -----  ---  ----  ----  ------  --------");
        Console.WriteLine("   0:00:26   8192M      64K  e820-Std    on   off   Std     0       0");

        // Bottom Bar
        Console.SetCursorPosition(0, 24);
        Console.BackgroundColor = ConsoleColor.Gray;
        Console.ForegroundColor = ConsoleColor.DarkBlue;
        Console.WriteLine("(ESC)Reboot  (c)configuration  (SP)scroll_lock  (CR)scroll_unlock               ");


        Console.SetWindowSize(80, 25);

        // Reset text color
        Console.BackgroundColor = ConsoleColor.DarkBlue;
        Console.ForegroundColor = ConsoleColor.Gray;

        // FOREVER
        while (true)
        {
            TimeSpan time = TimeSpan.FromSeconds(seconds);

            // Running Time (WallTime)
            Console.SetCursorPosition(3, 11);
            string min = (time.Minutes < 10 ? "0" + time.Minutes : "" + time.Minutes);
            string sec = (time.Seconds < 10 ? "0" + time.Seconds : "" + time.Seconds);
            Console.Write(time.Hours + ":" + min + ":" + sec);

            // Test percentage
            Console.SetCursorPosition(34, 1);
            Console.Write((int)test + "%");

            // Test Progress Bar
            Console.SetCursorPosition(38, 1);
            for (int i = 0; i < test / 3; i++)
                Console.Write("#");

            Console.SetCursorPosition(38, 0);
            for (int i = 0; i < pass / 3; i++)
                Console.Write("#");

            // Test Number
            Console.SetCursorPosition(35, 2);
            Console.Write(testNumber + "  [" + testNames[testNumber] + "]        ");

            if (testNumber != 0)
            {
                Console.SetCursorPosition(38, 4);
                Console.Write(pattern[test / 10]);
            }
            else
            {
                Console.SetCursorPosition(38, 4);
                Console.Write("         ");
            }

            if (test >= 100)
            {
                test = 0;

                Console.SetCursorPosition(34, 0);
                Console.Write(pass + "%");

                Console.SetCursorPosition(34, 1);
                Console.Write("                                      ");
                testNumber++;
                pass += 2;

                if (testNumber == 2)
                    testNumber = 0;
            }

            Thread.Sleep(1000);
            test += r.Next(0, 3);
            seconds++;
        }
    }
}
segfaultd
sumber
7
Mengapa tidak menjalankan Memtest86 saja? "Saya pikir saya memiliki beberapa masalah perangkat keras di sini, saya kira saya hanya perlu membuang waktu sampai selesai"
MadTux
20
@MadTux 'Karena Anda harus boot ke Memtest, yang berarti tidak ada gambar kucing.
Schilcote
1
System.Console Bekerja pada Mono, saya pikir Anda hanya perlu menyesuaikan kode untuk ukuran jendela konsol sewenang-wenang
NothingsImpossible
8
Tidak bisakah Anda menjalankan Memtest86 dalam VM?
Cole Johnson
3
Saya SUKA Memtest dalam ide VM.
John
22

Python, 36 karakter

print("Opening Internet Explorer...")

Python, 21 karakter

print("Opening IE...")

Berusaha menjadi lucu. : P

Mohammad Areeb Siddiqui
sumber
8
Maksud Anda seperti cdn7.dottech.org/wp-content/uploads/2013/06/… ?
aditsu
^ Tepat. : DDDD
Mohammad Areeb Siddiqui
14

AHK

Anda berpura-pura mengetik sementara skrip menghasilkan sekelompok pengakses dan mutator dalam JavaScript. Pastikan IDE (saya menguji ini pada Notepad ++) adalah jendela aktif.

Tentukan daftar variabel dan nama kelas jika Anda mau. Saya hanya menggunakan apa yang sudah ada window.location.

Tekan esc untuk keluar.

Tekan 0 pada papan angka Anda untuk berhenti ketika seseorang mencoba berbicara dengan Anda.

Tekan ctrl + w (w singkatan dari work) untuk memulai

^w::
    loop{
        variable_names  :=  "hash|host|hostname|href|origin|pathname|port|protocol|search"
        class_name  :=  "location"

        StringSplit, variable_names_array, variable_names, "|"

        loop, %variable_names_array0%{
            Random, delay, 80, 120
            SetKeyDelay, %delay%
            current :=  variable_names_array%a_index%
            Send, %class_name%.prototype.
            Random, r, 800, 1300
            Sleep, %r%
            Send, get_
            Random, r, 800, 1300
            Sleep, %r%
            Send, %current%
            Random, r, 800, 1300
            Sleep, %r%
            Send, {space}={space}
            Random, r, 800, 1300
            Sleep, %r%
            Send, function(){{}{enter}
            Random, r, 800, 1300
            Sleep, %r%
            Send, {tab}
            Random, r, 800, 1300
            Sleep, %r%
            Send, return this.
            Random, r, 800, 1300
            Sleep, %r%
            Send, %current%;{enter}
            Random, r, 800, 1300
            Sleep, %r%
            Send, {BackSpace}{}}
            Random, r, 800, 1300
            Sleep, %r%
            Send, {enter}{enter}
            Random, r, 800, 1300
            Sleep, %r%

            Send, %class_name%.prototype.
            Random, r, 800, 1300
            Sleep, %r%
            Send, set_
            Random, r, 800, 1300
            Sleep, %r%
            Send, %current%
            Random, r, 800, 1300
            Sleep, %r%
            Send, {space}={space}
            Random, r, 800, 1300
            Sleep, %r%
            Send, function(%current%){{}{enter}
            Random, r, 800, 1300
            Sleep, %r%
            Send, {tab}
            Random, r, 800, 1300
            Sleep, %r%
            Send, this.
            Random, r, 800, 1300
            Sleep, %r%
            Send, %current% ={space}
            Random, r, 800, 1300
            Sleep, %r%
            Send, %current%;{enter}
            Random, r, 800, 1300
            Sleep, %r%
            Send, return this;{enter}
            Random, r, 800, 1300
            Sleep, %r%
            Send, {BackSpace}{}}
            Random, r, 800, 1300
            Sleep, %r%
            Send, {enter}{enter}
            Random, r, 800, 1300
            Sleep, %r%
        }
    }
return

esc::
    ExitApp
    return

numpad0::
    Pause, toggle
    return
Meredith
sumber
14

Pesta

Membuang memori fisik acak dan melihat isinya. Akan perlu menjadi root untuk ini. Hanya memori 1MB pertama yang tersedia secara default. ddukuran blok default adalah 512 byte, yang dapat diubah dengan opsi ibs=bytestetapi perlu diingat opsi lain skip=$offsetyang mengambil blok secara acak. Output dari dddikirim melalui truntuk menghapus karakter non ASCII; hanya hasil unik 2 karakter atau lebih yang dievaluasi.

Setiap string yang ditemukan dibandingkan dengan kamus. Jika tidak ada kecocokan yang ditemukan, ia mencoba memecahkan kode sebagai base64. Akhirnya, semua string yang dievaluasi dikembalikan.

Ada beberapa opsi tergantung platform lainnya yang perlu diperhatikan, seperti lokasi file kamus (/ usr / share / dict / words), apakah sleep menerima input floating point, dan jika base64tersedia.

Perlu diketahui juga bahwa ddstatistik keluaran pada operasi dilakukan ke stderr, yang disalurkan ke / dev / null. Jika ada yang tidak beres (Anda mengakses / dev / mem ...) output stderr tidak akan terlihat.

Secara keseluruhan, tidak terlalu berguna, tetapi saya belajar sedikit tentang memori linux dan menulis skrip ini ternyata menyenangkan.

#!/bin/bash

offset=`expr $RANDOM % 512`
mem=`dd if=/dev/mem skip=$offset count=1 2>/dev/null| tr '[\000-\040]' '\n' | tr '[\177-\377'] '\n' | sort -u | grep '.\{2,\}'`

results=""

for line in $mem
do
    echo "Evaluating $line"
    greps=`grep "^$line" /usr/share/dict/words | head`

    if [ -n "$greps" ]
    then
        echo "Found matches."
        echo $greps
    else
        #echo "No matches in dictionary. Attempting to decode."
        decode=`echo "$line" | base64 -d 2>/dev/null`
        if [ $? -ne 1 ]
        then
            echo "Decode is good: $decode"
        #else
            #echo "Not a valid base64 encoded string."
        fi
    fi

    results+=" $line"

    # make it look like this takes a while to process
    sleep 0.5

done 

if (( ${#results} > 1 ))
then
    echo "Done processing input at block $offset: $results"
fi

Terkadang tidak ada output yang menarik (semua nol). Terkadang hanya ada beberapa string:

codegolf/work# ./s 
Evaluating @~
Evaluating 0~
Evaluating ne
Found matches.
ne nea neal neallotype neanic neanthropic neap neaped nearable nearabout
Done processing input at block 319:  @~ 0~ ne

Kadang-kadang sebenarnya ada sesuatu yang dapat dibaca manusia dalam memori (sebelum saya mencatat blok offset):

codegolf/work# ./s 
Evaluating grub_memset
Evaluating grub_millisleep
Evaluating grub_mm_base
Evaluating grub_modbase
Evaluating grub_named_list_find
Evaluating grub_net_open
Evaluating grub_net_poll_cards_idle
Evaluating grub_parser_cmdline_state
Evaluating grub_parser_split_cmdline
Evaluating grub_partition_get_name
Evaluating grub_partition_iterate
Evaluating grub_partition_map_list
Evaluating grub_partition_probe
Evaluating grub_pc_net_config
Evaluating grub_pit_wait
Evaluating grub_print_error
Evaluating grub_printf
Evaluating grub_printf_
Evaluating grub_puts_
Evaluating grub_pxe_call
Evaluating grub_real_dprintf
Evaluating grub_realidt
Evaluating grub_realloc
Evaluating grub_refresh
Evaluating grub_register_command_prio
Evaluating grub_register_variable_hook
Evaluating grub_snprintf
Evaluating grub_st
Evaluating grub_strchr
Evaluating _memmove
Done processing input:  grub_memset grub_millisleep grub_mm_base 
    grub_modbase grub_named_list_find grub_net_open grub_net_poll_cards_idle
    grub_parser_cmdline_state grub_parser_split_cmdline 
    grub_partition_get_name grub_partition_iterate grub_partition_map_list 
    grub_partition_probe grub_pc_net_config grub_pit_wait grub_print_error 
    grub_printf grub_printf_ grub_puts_ grub_pxe_call grub_real_dprintf 
    grub_realidt grub_realloc grub_refresh grub_register_command_prio 
    grub_register_variable_hook grub_snprintf grub_st grub_strchr _memmove

Dan satu menjalankan sampel terakhir yang menunjukkan input grep yang salah, klik kamus, dan decode base64 yang berhasil (sebelum blok logging diimbangi kembali):

codegolf/work# ./s 
Evaluating <!
Evaluating !(
Evaluating @)
Evaluating @@
Evaluating $;
Evaluating '0@
Evaluating `1
Evaluating 1P$#4
Evaluating )$2
Evaluating -3
Evaluating 3HA
Evaluating 3N
Evaluating @@9
Evaluating 9@
Evaluating 9Jh
Evaluating \9UK
grep: Invalid back reference
Evaluating a#
Evaluating CX
Evaluating ?F
Evaluating !H(
Evaluating +%I
Evaluating Io
Found matches.
Io Iodamoeba Ione Ioni Ionian Ionic Ionicism Ionicization Ionicize Ionidium
Evaluating Kj
Found matches.
Kjeldahl
Evaluating l#
Evaluating L6qh
Decode is good: /��
Evaluating O%
Evaluating OX
Evaluating PR
Evaluating .Q
Evaluating Q4!
Evaluating qQ
Evaluating )u
Evaluating Ua
Found matches.
Uaraycu Uarekena Uaupe
Evaluating $v
Evaluating )V
Evaluating V8
Evaluating V,B~
Evaluating wIH
Evaluating xU
Evaluating y@
Evaluating @z
Evaluating Z0
Evaluating zI
Evaluating Z@!QK
Done processing input:  <! !( @) @@ $; '0@ `1 1P$#4 )$2 -3 3HA 3N
    @@9 9@ 9Jh \9UK a# CX ?F !H( +%I Io Kj l# L6qh O% OX PR .Q Q4!
    qQ )u Ua $v )V V8 V,B~ wIH xU y@ @z Z0 zI Z@!QK
Komunitas
sumber
Bagaimana Anda menjalankan ini? Saya membuangnya ke dalam script.sh, melakukan chmod +xdi atasnya, tetapi itu hanya keluar. sudojuga tidak membantu.
Octavia Togami
Kedengarannya seperti mem=garis tidak mengembalikan apa pun. Anda harus memeriksa dan memastikan bahwa setiap bagian dari perintah di antara pipa benar-benar mengembalikan sesuatu.
Oke, saya akan melakukannya.
Octavia Togami
Ini hanya berjalan seperti 5 detik pertama kali dan dicetak seperti 12 baris, lalu seperti 0,1 detik setiap kali tanpa output.
Mike
13

Windows Batch

@echo off

set /p hax="How much haxx0rz: " %=%
set /p haxx="How quick haxx0rz (seconds): " %=%

FOR /L %%I IN (1, 1, %hax%) DO (
START cmd /k "COLOR A&&tree C:\"
timeout %haxx%
)

Ini adalah skrip lelucon yang saya simpan selama bertahun-tahun agar terlihat seperti film hacker tahun 90-an. Saya biasanya menggunakannya saat terhubung dari jarak jauh ke komputer untuk menakuti orang.

Ikan kecil
sumber
2
Dia mengunduh virus ke seluruh sistem!
qwr
12

Pesta

Pencarian kafe tanpa henti.

Saya menemukan ini di web sejak lama:

cat /dev/urandom | hexdump | grep "ca fe"
daviewales
sumber
Coba gunakan urandom sebagai gantinya.
Alice Ryhl
Ah ... Saya mengujinya pada Mac, dan Mac memiliki keduanya randomdan urandom.
daviewales
5
/dev/randomada, tetapi ini dimaksudkan untuk lebih aman daripada /dev/urandomdengan hanya menghasilkan angka jika ada entropi yang tersedia. Setelah Anda kehabisan, itu berhenti. /dev/urandomtidak melakukan itu, dan tidak akan pernah berhenti mengeluarkan.
undergroundmonorail
Mengapa itu tidak pernah berakhir? Saya merasa bodoh, yang kedua kalinya hari ini.
Daniel W.
1
/dev/urandomadalah 'file' yang terus memberi makan nomor acak cat. catkemudian pipa ini ke hexdump, dll.
daviewales
11

Python 2.7

The Endless Test Suite

"Menjalankan" satu set "Tes Unit" pada semua file di pohon direktori Anda. Melintasi semua subdirektori. Mulai lagi ketika sampai akhir.

Mencetak status yang sedang berjalan:

============================= entering . =============================
------------------------ test_line_numbers.py ------------------------
Ran 18 tests in 3.23707662572 seconds, 0 errors
---------------------------- test_main.c ----------------------------
Ran 26 tests in 1.3365194929 seconds, 0 errors
--------------------------- test_parser.c ---------------------------
Ran 8 tests in 1.61633904378 seconds, 0 errors
--------------------------- test_README.c ---------------------------
Ran 12 tests in 2.27466813182 seconds, 0 errors
4 modules OK (0 failed)
=========================== entering ./lib ===========================

...

Fitur yang membuatnya lebih kompleks dari yang dibutuhkan, dan semoga lebih realistis:

  • Jumlah pengujian dan waktu pengujian sebanding dengan ukuran file.
  • Mengubah ekstensi file kode sumber non menjadi yang dikenal. MemodifikasiCodeExtensions untuk menambahkan tipe yang lebih dikenal.
    • Memilih ekstensi baru berdasarkan frekuensi file bahasa aktual yang terlihat, sehingga Anda tidak akan terlihat menguji kode Python jika hard drive Anda penuh dengan Ruby.
  • Melompati file dengan memimpin . Tanpa hadiah seperti "test_.bashrc.js"
import os,random,time,collections

CodeExtensions = ('.py', '.c','.cpp','.rb','.js','.pl','.cs','.el')
last_exts = collections.deque(CodeExtensions[:1],100)
maxlen=0

def maketestname(filename):
    root,ext = os.path.splitext(filename)
    if ext in CodeExtensions:
        last_exts.append(ext)
    else:
        ext = random.choice(last_exts)
    return 'test_'+root+ext

def banner(char,text,width=70):
    bar = char*((width-len(text)-2)/2)
    return "{} {} {}".format(bar,text,bar)

def scaledrand(scale,offset):
    return random.random()*scale+random.randrange(offset)

while True:
    for dirname, subdirs, files in os.walk('.'):
        print banner('=',"entering {}".format(dirname))
        skipped = 0
        for filename in files:
            if filename[0] is not '.':
                testfilename = maketestname(filename)
                print banner('-',testfilename)
                filelen = os.path.getsize(os.path.join(dirname,filename))
                maxlen = max(maxlen,filelen)
                ntests = int(scaledrand(20*filelen/maxlen,10))
            testtime = scaledrand(ntests/5.0,2)
            time.sleep(testtime)                
            else:
                skipped+=1
                continue

            print "Ran {} tests in {} seconds, {} errors".format(ntests,testtime,0)
        print "{} modules OK ({} failed)\n".format(len(files)-skipped,0)
ASHelly
sumber
1
Anda juga bisa menjalankan tes regresi Python, yang dibundel dengan sebagian besar pemasangan Python.
nneonneo
Tapi itu akhirnya selesai.
AShelly
2
maka Anda bisa menjalankannya ... dalam satu lingkaran!
nneonneo
1
Saya juga berpikir itu kurang mencurigakan untuk menguji file dengan nama yang terkait dengan proyek Anda daripada untuk menguji sumber Python. Saya kira sebagian besar dari kita tidak memelihara Python secara profesional ...
AShelly
11

Java + Jambu 16 (Jambu tidak perlu super, tapi itu membuat beberapa hal sedikit kurang mengganggu untuk menulis).

Baiklah, kamu seharusnya bekerja? Bagaimana dengan program yang benar-benar menulis kode Java nyata, yang sebenarnya mengkompilasi (meskipun tidak banyak).

Sulit untuk mendemonstrasikan animasinya, tetapi program ini menulis program Java menggunakan kamus default (250 kata bahasa Inggris yang umum) atau file yang dibatasi baris baru (diambil sebagai argumen baris perintah), dan mengetiknya ke konsol satu karakter pada satu waktu pada kecepatan yang tampak manusia . Pastikan untuk menjalankannya sendiri karena pos ini tidak adil. Ketika selesai, menunggu 1 menit, lalu mencetak banyak baris kosong ke konsol, dan mulai lagi. Saya mencoba menulisnya untuk membuat berbagai parameter yang dapat diubah.

Juga, biasanya saya akan memasukkan ini ke dalam lebih dari satu file, tetapi untuk membuatnya lebih mudah dijalankan, saya menghancurkan semua kelas bersama-sama.

package org.stackoverflow.ppcg;

import java.io.*;
import java.util.*;

import com.google.common.base.CaseFormat;
import com.google.common.base.Converter;
import com.google.common.collect.Lists;

public class CodeGenerator {
    public static final Converter<String, String> TOUPPER =
            CaseFormat.LOWER_CAMEL.converterTo(CaseFormat.UPPER_CAMEL);
    public static final Converter<String, String> TOLOWER =
            CaseFormat.UPPER_CAMEL.converterTo(CaseFormat.LOWER_CAMEL);

    public static final String[] TYPES = new String[]{
        "int", "long", "double", "String"
    };

    public static final List<String> DEFAULT_LIST = Arrays.asList(new String[]{
            "the", "and", "for", "you", "say", "but", "his", "not", "she", "can",
            "who", "get", "her", "all", "one", "out", "see", "him", "now", "how",
            "its", "our", "two", "way", "new", "day", "use", "man", "one", "her",
            "any", "may", "try", "ask", "too", "own", "out", "put", "old", "why",
            "let", "big", "few", "run", "off", "all", "lot", "eye", "job", "far",
            "have", "that", "with", "this", "they", "from", "that", "what", "make", "know",
            "will", "time", "year", "when", "them", "some", "take", "into", "just", "your",
            "come", "than", "like", "then", "more", "want", "look", "also", "more", "find",
            "here", "give", "many", "well", "only", "tell", "very", "even", "back", "good",
            "life", "work", "down", "call", "over", "last", "need", "feel", "when", "high",
            "their", "would", "about", "there", "think", "which", "could", "other", "these", "first",
            "thing", "those", "woman", "child", "there", "after", "world", "still", "three", "state",
            "never", "leave", "while", "great", "group", "begin", "where", "every", "start", "might",
            "about", "place", "again", "where", "right", "small", "night", "point", "today", "bring",
            "large", "under", "water", "write", "money", "story", "young", "month", "right", "study",
            "people", "should", "school", "become", "really", "family", "system", "during", "number", "always",
            "happen", "before", "mother", "though", "little", "around", "friend", "father", "member", "almost",
            "change", "minute", "social", "follow", "around", "parent", "create", "others", "office", "health",
            "person", "within", "result", "change", "reason", "before", "moment", "enough", "across", "second",
            "toward", "policy", "appear", "market", "expect", "nation", "course", "behind", "remain", "effect",
            "because", "through", "between", "another", "student", "country", "problem", "against", "company", "program",
            "believe", "without", "million", "provide", "service", "however", "include", "several", "nothing", "whether",
            "already", "history", "morning", "himself", "teacher", "process", "college", "someone", "suggest", "control",
            "perhaps", "require", "finally", "explain", "develop", "federal", "receive", "society", "because", "special",
            "support", "project", "produce", "picture", "product", "patient", "certain", "support", "century", "culture"
    });

    private static final int CLASS_NAME_LENGTH = 2;

    private final WordList wordList;
    private final Appendable out;
    private final Random r = new Random();

    private CodeGenerator(WordList wordList, Appendable out) {
        this.wordList = wordList;
        this.out = out;
    }

    public static void main(String... args) throws Exception {
        List<?> wordSource = getWords(args);
        WordList list = new WordList(wordSource);
        SleepingAppendable out = new SleepingAppendable(System.out);
        CodeGenerator generator = new CodeGenerator(list, out);
        while(!Thread.interrupted()) {
            generator.generate();
            try {
                Thread.sleep(60000);
            } catch (InterruptedException e) {
                break;
            }
            out.setSleeping(false);
            for(int i = 0; i < 100; i++) {
                out.append(System.lineSeparator());
            }
            out.setSleeping(true);
        }
    }

    private static List<?> getWords(String[] args) {
        if(args.length > 0) {
            try {
                return getListFromFile(args[0]);
            } catch(IOException e) { }
        }
        return DEFAULT_LIST;
    }

    private static List<Object> getListFromFile(String string) throws IOException {
        List<Object> newList = Lists.newArrayList();

        File f = new File(string);
        Scanner s = new Scanner(f);

        while(s.hasNext()) {
            newList.add(s.nextLine());
        }

        return newList;
    }

    private void generate() throws IOException {
        String className = beginClass();
        List<Field> finalFields = generateFields(true);
        printFields(finalFields);
        out.append(System.lineSeparator());
        List<Field> mutableFields = generateFields(false);
        printFields(mutableFields);
        out.append(System.lineSeparator());
        printConstructor(className, finalFields);
        printGetters(finalFields);
        printGetters(mutableFields);
        printSetters(mutableFields);
        endClass();
    }

    private void printGetters(List<Field> fields) throws IOException {
        for(Field f : fields) {
            out.append(System.lineSeparator());
            f.printGetter(out);
        }
    }

    private void printSetters(List<Field> fields) throws IOException {
        for(Field f : fields) {
            out.append(System.lineSeparator());
            f.printSetter(out);
        }
    }

    private void printConstructor(String className, List<Field> finalFields) throws IOException {
        out.append("\tpublic ").append(className).append('(');
        printArgs(finalFields);
        out.append(") {").append(System.lineSeparator());
        for(Field f : finalFields) {
            f.printAssignment(out);
        }
        out.append("\t}").append(System.lineSeparator());
    }

    private void printArgs(List<Field> finalFields) throws IOException {
        if(finalFields.size() == 0) return;

        Iterator<Field> iter = finalFields.iterator();

        while(true) {
            Field next = iter.next();
            next.printTypeAndName(out);
            if(!iter.hasNext()) break;
            out.append(", ");
        }
    }

    private List<Field> generateFields(boolean isfinal) {
        int numFields = r.nextInt(3) + 2;
        List<Field> newFields = Lists.newArrayListWithCapacity(numFields);
        for(int i = 0; i < numFields; i++) {
            String type = TYPES[r.nextInt(4)];
            newFields.add(new Field(type, wordList.makeLower(r.nextInt(2) + 1), isfinal));
        }
        return newFields;
    }

    private void printFields(List<Field> finalFields) throws IOException {
        for(Field f : finalFields) {
            f.printFieldDeclaration(out);
        }
    }

    private String beginClass() throws IOException {
        out.append("public class ");
        String className = wordList.nextClassName(CLASS_NAME_LENGTH);
        out.append(className).append(" {").append(System.lineSeparator());

        return className;
    }

    private void endClass() throws IOException {
        out.append("}");
    }

    private static class WordList {
        private final Random r = new Random();

        private final List<?> source;

        private WordList(List<?> source) {
            this.source = source;
        }

        private String makeUpper(int length) {
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < length; i++) {
                sb.append(randomWord());
            }
            return sb.toString();
        }

        private String makeLower(int length) {
            return TOLOWER.convert(makeUpper(length));
        }

        private String randomWord() {
            int sourceIndex = r.nextInt(source.size());
            return TOUPPER.convert(source.get(sourceIndex).toString().toLowerCase());
        }

        public String nextClassName(int length) {
            return makeUpper(length);
        }
    }

    private static class Field {
        private final String type;
        private final String fieldName;
        private final boolean isfinal;

        Field(String type, String fieldName, boolean isfinal) {
            this.type = type;
            this.fieldName = fieldName;
            this.isfinal = isfinal;
        }

        void printFieldDeclaration(Appendable appendable) throws IOException {
            appendable.append("\tprivate ");
            if(isfinal) appendable.append("final ");
            printTypeAndName(appendable);
            appendable.append(';').append(System.lineSeparator());
        }

        void printTypeAndName(Appendable appendable) throws IOException {
            appendable.append(type).append(' ').append(fieldName);
        }

        void printGetter(Appendable appendable) throws IOException {
            appendable.append("\tpublic ");
            appendable.append(type).append(" get").append(TOUPPER.convert(fieldName));
            appendable.append("() {").append(System.lineSeparator());
            appendable.append("\t\treturn ").append(fieldName).append(';');
            appendable.append(System.lineSeparator()).append("\t}").append(System.lineSeparator());
        }

        void printSetter(Appendable appendable) throws IOException {
            appendable.append("\tpublic void set");
            appendable.append(TOUPPER.convert(fieldName));
            appendable.append("(").append(type).append(' ').append(fieldName);
            appendable.append(") {").append(System.lineSeparator());
            printAssignment(appendable);
            appendable.append("\t}").append(System.lineSeparator());            
        }

        void printAssignment(Appendable appendable) throws IOException {
            appendable.append("\t\tthis.").append(fieldName).append(" = ").append(fieldName);
            appendable.append(';').append(System.lineSeparator());
        }
    }

    private static class SleepingAppendable implements Appendable {
        private Random r = new Random();
        private Appendable backing;

        private boolean sleeping = true;

        public SleepingAppendable(Appendable backing) {
            this.backing = backing;
        }

        @Override
        public Appendable append(CharSequence csq) throws IOException {
            return append(csq, 0, csq.length());
        }

        @Override
        public Appendable append(CharSequence csq, int start, int end)
                throws IOException {
            for(int i = start; i < end; i++) {
                append(csq.charAt(i));
            }

            sleep(100, 300);

            return this;
        }

        @Override
        public Appendable append(char c) throws IOException {
            sleep(170, 80);

            backing.append(c);

            return this;
        }


        private void sleep(int base, int variation) {
            if(!sleeping) return;
            try {
                Thread.sleep((long) (r.nextInt(80) + 70));
            } catch (InterruptedException e) {
            }
        }

        public boolean isSleeping() {
            return sleeping;
        }

        public void setSleeping(boolean sleeping) {
            this.sleeping = sleeping;
        }
    }
}

Contoh hasil program (hanya satu program)

public class GetGroup {
    private final double thoughRight;
    private final double socialYear;
    private final double manOne;
    private final int appear;

    private double man;
    private double comeHis;
    private double certain;

    public GetGroup(double thoughRight, double socialYear, double manOne, int appear) {
        this.thoughRight = thoughRight;
        this.socialYear = socialYear;
        this.manOne = manOne;
        this.appear = appear;
    }

    public double getThoughRight() {
        return thoughRight;
    }

    public double getSocialYear() {
        return socialYear;
    }

    public double getManOne() {
        return manOne;
    }

    public int getAppear() {
        return appear;
    }

    public double getMan() {
        return man;
    }

    public double getComeHis() {
        return comeHis;
    }

    public double getCertain() {
        return certain;
    }

    public void setMan(double man) {
        this.man = man;
    }

    public void setComeHis(double comeHis) {
        this.comeHis = comeHis;
    }

    public void setCertain(double certain) {
        this.certain = certain;
    }
}

Output sampel lain:

public class TryControl {
    private final int over;
    private final double thatState;
    private final long jobInto;
    private final long canPut;

    private int policy;
    private int neverWhile;

    public TryControl(int over, double thatState, long jobInto, long canPut) {
        this.over = over;
        this.thatState = thatState;
        this.jobInto = jobInto;
        this.canPut = canPut;
    }

    public int getOver() {
        return over;
    }

    public double getThatState() {
        return thatState;
    }

    public long getJobInto() {
        return jobInto;
    }

    public long getCanPut() {
        return canPut;
    }

    public int getPolicy() {
        return policy;
    }

    public int getNeverWhile() {
        return neverWhile;
    }

    public void setPolicy(int policy) {
        this.policy = policy;
    }

    public void setNeverWhile(int neverWhile) {
        this.neverWhile = neverWhile;
    }
}
durron597
sumber
9
Anda telah membuat mesin cetak uang otomatis untuk siapa saja yang masih dibayar berdasarkan baris kode - pekerjaan hebat!
Philipp
9

pesta

Keluarkan beberapa komentar dari file sumber acak pada interval acak, diikuti oleh bilah progres do-nothing yang dibuat secara acak.

#!/bin/bash

# The directory to extract source comments from
srcdir=~/src/php-src/

# Generate a status bar that lasts a random amount of time.
# The actual amount of time is somewhere between 1.5 and 30
# seconds... I think. I fudged this around so much it's hard to tell.
function randstatus() {
    bsize=4096
    r_rate=$(echo "$RANDOM/32767 * $bsize * 1.5 + $bsize / 4" | bc -l | sed 's/\..*$//')
    r_min=3
    r_max=15
    r_val=$(($r_min + $RANDOM % $(($r_max - $r_min)) ))
    i=0
    dd if=/dev/urandom bs=$bsize count=$r_val 2> /dev/null | pv -L $bsize -s $(($r_val * bsize)) > /dev/null
}

# Picks a random .c file from the given directory, parses
# out one-line comments, and outputs them one by one with a
# random delay between each line.
function randout() {
    r_file=$(find $1 -name '*.c' | sort -R | head -n 1)
    echo "# $r_file"
    grep '^\s*/\*.*\*/\s*$' $r_file | sed 's:[/\*]::g' | sed -e 's:^\s\+::' -e 's:\s\+$::' | sed -e 's:^\W\+::' | grep -v '^$' | while read line; do
        echo $line
        sleep $(printf "%0.2f" $(echo "$((($RANDOM%4)+1))/4" | bc -l))
    done
}

while true; do
    randout $srcdir
    randstatus
    # sleep here to make it easier to break out of the 'while read' loop
    sleep 2
done

Keluaran:

# /home/jerkface/src/php-src/sapi/fpm/fpm/fpm_shm.c
Id: fpm_shm.c,v 1.3 20080524 17:38:47 anight Exp $
c) 2007,2008 Andrei Nigmatulin, Jerome Loyet
MAP_ANON is deprecated, but not in macosx
  32kB 0:00:08 [3.97kB/s] [====================================================================>] 100%
# /home/jerkface/src/php-src/ext/mbstring/mb_gpc.c
Id$
includes
mbfl_no_encoding _php_mb_encoding_handler_ex()
split and decode the query
initialize converter
auto detect
convert encoding
we need val to be emalloc()ed
add variable to symbol table
SAPI_POST_HANDLER_FUNC(php_mb_post_handler)
  12kB 0:00:03 [4.02kB/s] [===============>                                                      ] 24% ETA 0:00:09
Sammitch
sumber
1
Pintar! Agak terlambat untuk menerima perhatian lebih, tetapi ambil lima tinggi dari saya.
SomeKittens
@BeberapaKittens Jenius sebenarnya dari skrip ini adalah bahwa mengerjakannya tampak lebih seperti pekerjaan nyata. ; D
Sammitch
7

Rsync dari BASH

 rsync -n -avrIc --verbose  ~ ~ | sed s/"(DRY RUN)"/""/g    
# Note the space at the beginning of the above line,

rsync - alat penyalin file yang cepat, serbaguna, jarak jauh (dan lokal) ... yang dengan -n menjalankan proses kering , hanya mencoba melakukan, tidak benar-benar melakukannya, dan menunjukkan apa yang terjadi.
Dalam hal ini cobalah untuk memeriksa apakah akan memperbarui semua file direktori home Anda (dan sub-folder ).
Jika Anda memiliki akses root, tentu saja Anda dapat menjalankannya pada bagian yang lebih besar dari sistem file Anda.

Catatan:

  1. Jika HISTCONTROL=ignorebothatau setidaknya HISTCONTROL=ignorespacedalam sesi bash Anda, riwayat bash Anda tidak akan mengingat perintah itu jika Anda menuliskannya dengan spasi sebelumnya. (Anda tidak dapat mendorong dan melihatnya di layar, juga di log riwayat ).
  2. | sed s/"(DRY RUN)"/""/gakan menyalurkan output melalui sedyang akan menghapus (DRY RUN)teks di akhir output rsync. Jika seorang ahli memeriksa Anda dapat mengatakan Anda benar-benar melakukan itu, tidak hanya pengujian.
  3. -avrIcAnda dapat mengubah opsi itu, periksa man rsync, tetapi jangan pernah menghapus-n , kalau tidak Anda akan memiliki masalah serius, bahkan lebih jika Anda menjalankan sebagai root ... 8-O!
Cepat
sumber
6

Maven di bawah bash

Maven sangat cocok untuk tugas semacam ini ;-)

while true;
do mvn -X archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false;
done
jeroen_de_schutter
sumber
6

Kobra

Ini membuka jendela konsol yang loop melalui berbagai objek palsu dan berbagai macam hal, menambah pass dan progres untuk setiap pass. Itu menunggu waktu acak kecil setiap kenaikan, untuk mensimulasikan penundaan perhitungan yang sebenarnya.

class Does_Nothing_Useful
    var _rng as Random = Random()
    var _hash
    var _pass
    var _names as String[] = @['Vector', 'Object', 'File', 'Index', 'Report', 'Library', 'Entry', 'Log', 'Resource', 'Directory']
    def main
        while true
            .refresh
            name as String = _names[_rng.next(_names.length)] + ' ' + _hash.toString
            for i in _pass
                progress as decimal = 0
                while progress < 100000
                    progress += _rng.next(1000)
                    print name + '; pass', i, ' : ', progress/1000
                    wait as int = 0
                    for n in _rng.next(50), wait += _rng.next(1,100)
                    System.Threading.Thread.sleep(wait)
                print name + '; pass', i, '--FINISHED--'
                print ''
                System.Threading.Thread.sleep(_rng.next(1000,17500))
            print name, '--EVAL COMPLETE--'
            print ''
            System.Threading.Thread.sleep(_rng.next(12500,30000))
    def refresh
        _hash = _rng.next.getHashCode
        _pass = _rng.next(256)
        print '--LOADING NEXT TARGET--'
        print ''
        System.Threading.Thread.sleep(_rng.next(12500,30000))
Suram
sumber
1
Anda memiliki seluruh akhir pekan untuk mengerjakan ini, jadi luangkan waktu Anda.
SomeKittens
1
Apa bahasa Cobra ini, sepertinya anak haram dari Python dan C #, haha ​​(mencarinya sepertinya memang memiliki beberapa fitur menarik), +1
Thomas
1
@ Thomas Untuk sebagian besar, itu C # (saat ini tanpa LINQ) menggunakan sintaks Python-esque. Dan salah satu kompiler default yang paling membantu yang pernah saya senang bekerja sama.
Kamis
Jadi, apakah Anda pernah akhirnya menyelesaikan kode ini?
rayryeng
4

Saya menulis skrip python bodoh untuk melakukan ini sekali. Disebut "ProgramAboutNothing" ... Saya tidak yakin itu meyakinkan tetapi hanya butuh sekitar 10 menit. Itu hanya menghasilkan kalimat acak yang menggambarkan apa yang seharusnya dilakukan ... Saya mungkin bisa memilih kata-kata yang lebih baik untuk itu yang mungkin terlihat lebih meyakinkan tetapi saya tidak pernah benar-benar menggunakannya dengan benar. Saya kira jika seseorang ingin menggunakannya, mereka dapat mengeditnya dan menambahkan kata-kata mereka sendiri dalam daftar ... Penggemar Sim City mungkin melihat sesuatu yang akrab. : P

from random import randrange
from time import sleep

nouns = ["bridge", "interface", "artifact", "spline"]
verbs = ["building", "articulating", "reticulating", "compiling", "analyzing"]
adjectives = ["mix", "abstract", "essential"]

while True:
    one = randrange(0,5)
    two = randrange(0,4)
    print "%s %s" % (verbs[one], nouns[two]),
    sleep(randrange(0,500)/100)
    print ".",
    sleep(randrange(0,500)/100)
    print ".",
    sleep(randrange(0,500)/100)
    print ".\n",
    loop = randrange(0,50)
    one = randrange(0,5)
    for i in range(loop):
        two = randrange(0,4)
        three = randrange(0,3)
        print "%s %s %s" % (verbs[one], nouns[two], adjectives[three]),
        sleep(randrange(0,250)/100)
        print ".",
        sleep(randrange(0,250)/100)
        print ".",
        sleep(randrange(0,250)/100)
        print ".\n",
Luke
sumber
1
Mungkin Anda menggunakan Python 3? Coba tambahkan tanda kurung di sekitar laporan cetak seperti ini: print( ... ).
daviewales
1
@daviewales ninja'd: P
Luke
1
@ Lukas Saya baru saja menginstal Python 3.4.1untuk Windows. Saya tidak bisa memprogram dengan Python, tapi saya tertarik dengan program kecil Anda ...
Mathlight
1
@Mathlight bersiap untuk underwhelmed. : P
Luke
1
@ Lukas, Ini berfungsi sekarang. Dan saya terkesan ^ _ ^
Mathlight
4

Bagaimana dengan yang ini? Ini akan mengunduh data HTML codegolf setiap 1 detik. Jadi, data akan terus berubah selama pertanyaan yang lebih baru masuk. Pada saat yang sama, itu juga akan muncul seolah-olah Anda sedang mengunduh beberapa data penting dari situs web.

while true; do     
sleep 1;     
curl "codegolf.stackexchange.com" -s |  w3m -dump -T text/html; 
done
Ramesh
sumber
3

Pesta

Daftar direktori rekursif:

ll -R /
ian.pvd
sumber
2

Ini adalah Simulasi Kompilasi C ++ (ditulis dalam C #):

using System;
using System.Collections.Generic;
using System.Management;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Reflection;

class FakeCompiler {
    static void DoPrint(string txt) {
        Console.WriteLine("Compiling " + txt);
        Thread.Sleep(1000);
    }
    static string Extract(string TypeName) {
        string rt = TypeName.Split(new Char[] {'.'})[ TypeName.Split(new Char[] {'.'}).Length - 1 ];
        if (rt.Contains("+")) {
            rt = rt.Split(new char[] { '+' })[1];
        }
        if (rt.Contains("[")) {
            rt = rt.Split(new char[] { '[' })[0];
        }
        return rt;
    }
    static void DoCompileSingleFile(string _Type_Name) {
        string print = Extract(_Type_Name);
        DoPrint(print + ".h");
        DoPrint(print + ".cpp");
    }
    static Type[] DoFakeCompile_Assembly(string _AssemblyFileName) {
        System.Reflection.Assembly _asm = System.Reflection.Assembly.Load(_AssemblyFileName);
        Type[] _ts = _asm.GetTypes();
        for (int h = 0; h < 15; ++h) {
            DoCompileSingleFile(_ts[h].ToString());
        }
        return _ts;
    }
    static void DoFakeLinkErrors(Type[] t) {
        Console.WriteLine("linking..");
        Thread.Sleep(2000);
        MethodInfo[] mi;
        for (int i = 0; i < t.Length; ++i) {
            mi = t[i].GetMethods();
            for (int j = 0; j < mi.Length; ++j) {
                Console.WriteLine("Link Error: The object {@!" + mi[j].ToString().Split(new char[] {' '})[0] + "#$? is already defined in " + Extract(t[i].ToString()) + ".obj");
                Thread.Sleep(200);
            }
        }
    }
    static void Main(string[] args) {
        Console.WriteLine("Fictional C/C++ Optimizing Command-line Compiler Version 103.33.0");
        DoFakeLinkErrors(DoFakeCompile_Assembly("mscorlib.dll"));
    }
}
gumpalan
sumber
2

Batch

Tempatkan dalam folder dengan banyak file. Jika bergulir dengan cukup cepat, tidak ada yang akan curiga.

:l
dir/s
echo %RANDOM%
echo %RANDOM%
echo %RANDOM% 
goto l
qwr
sumber
2
emerge @world

kompilasi ulang penuh pada gentoo

myururdurmaz
sumber
Saya cukup yakin ketersediaan alasan utama ini adalah alasan utama untuk menjalankan Gentoo sama sekali.
Caleb