ทำให้ดูเหมือนว่าฉันกำลังทำงานอยู่


278

บ่อยครั้งที่ฉันพบว่าตัวเองกำลังเรียกใช้สคริปต์หรือคิวรีซึ่งจะใช้เวลานานพอสมควรในการทำงาน ฉันสามารถเปิดสคริปต์นั้นไว้และเพลิดเพลินกับการผัดวันประกันพรุ่งที่ไม่มีความผิด

ตอนนี้ถ้าฉันสามารถเขียนสคริปต์ที่ดูเหมือนว่าจะเป็นหนึ่งในสคริปต์ข้างต้นให้กับผู้เข้าชมใด ๆ แต่ในลักษณะเฉพาะ? ฉันสามารถวางมันลงบนหน้าจอและสนุกกับวันแห่งความฝันของลูกแมวก่อนที่จะมีใครรู้ว่าแท่นขุดเจาะที่ซับซ้อนบนหน้าจอไม่มีอะไรเกี่ยวข้องกับงานจริงของฉัน

ความท้าทายของคุณคือการเขียนสคริปต์นี้ให้ฉัน (ใช่ฉันขี้เกียจ)

ดีคำตอบที่จะ:

  • ทำให้บางสิ่งบางอย่างปรากฏบนหน้าจอที่ดูเหมือนว่าสคริปต์กำลังทำงานอยู่ "หน้าจอ" สามารถเป็นเทอร์มินัลเบราว์เซอร์ ฯลฯ
  • เป็นต้นฉบับอย่างเป็นธรรม (ใช่เราเคยเห็นโปรแกรมแถบความคืบหน้าไม่สิ้นสุด)
  • เอาชีวิตรอดจากการตรวจสอบคร่าวๆ

ไม่ดีคำตอบที่จะ:

  • เอาฉันออกไป
  • ปรับปรุงบางสิ่งที่เราทุกคนถูกส่งต่อในยุค 90

คำตอบที่เป็นตัวเอกอาจ:

  • ชนะหนึ่งในสัญลักษณ์แสดงหัวข้อย่อยที่ไม่ดีด้านบน ( ตัวอย่าง )
  • เอาตัวรอดจากการตรวจร่างกาย
  • * อ้าปากค้าง * ทำสิ่งที่มีประโยชน์จริง ๆหรือช่วยในการหลบหลีกการทำงานของฉัน

การตอบรับจะขึ้นอยู่กับคะแนนโหวตพร้อมโบนัสจากผลการใช้งานจริง ฉันจะเรียกใช้สคริปต์เหล่านี้ (Linux Mint 16) ในที่ทำงานเมื่อหน้าจอของฉันมองเห็นได้ (การประชุมและสิ่งที่คล้ายกัน) เพื่อกำหนดการตรวจจับ หากมีคนสังเกตเห็นว่ามันแกล้งทำคุณกำลังวิ่งหนี หากมีคนแสดงความคิดเห็นว่าฉันทำงานหนักแค่ไหนโบนัสเพิ่มขึ้น +5 สำหรับคุณ

"ประโยชน์" ในกรณีนี้สามารถนำไปใช้กับ coder ใด ๆ แต่ถ้าคุณกำลังมองหาที่เงางามพิเศษในแอปเปิ้ลครูผูกพันของฉัน Webdev เต็มรูปแบบสแต็คที่ทำงานในรหัสประมาณตามแท็กของฉัน

คำถามบางส่วนแรงบันดาลใจจากนี้

ผล

ผิดหวังฉันไม่ได้รับความคิดเห็นใด ๆ ทั้งในรายการเหล่านี้ พวกเขาทั้งหมดยอดเยี่ยมดังนั้นคุณคือผู้ชนะทั้งหมดในใจของฉัน อย่างไรก็ตาม Loktar มีคะแนนมากที่สุดโดยการยิงนานดังนั้นเขาจึงได้ +15 จากการยอมรับ ยินดีด้วย!


6
เกณฑ์การชนะการประกวดความนิยมคืออะไร?
Kyle Kanos

36
ดังนั้น ... จะเกิดอะไรขึ้นถ้าคุณทดสอบคำตอบและมันทำให้คุณถูกไล่ออก?
Bob

54
นี่ทำให้ฉันมีความคิดสำหรับคำถามกอล์ฟรหัสอื่น "ทำให้มันมีลักษณะเหมือนคำถามของฉันไม่ควรวางไว้"
twiz

9
เพียงแค่เขียนหนึ่งในโปรแกรมเหล่านี้และรวบรวม !
ugoren

13
ฉันเห็น remake ที่ดีจริงๆของห้องประชุมคณะกรรมการ Tron Legacy ใน Github ในวันอื่น ๆ : github.com/arscan/encom-boardroom
Paul Prestidge

คำตอบ:


291

JavaScript

ดังนั้นฉันจึงบ้าไปกับสิ่งนี้ ฉันทำระหว่างพักจากการทำงานกับ GUI เพื่อติดตาม IP โดยใช้ Visual Basic

คุณสามารถเข้าถึงได้โดยไปที่โดเมนที่ร้ายแรงที่สุดที่ฉันทำเพื่อคืนนี้เช่นกันเพื่อให้คุณสามารถดูยุ่งได้ทุกที่Gui Hackerและทางแยกและสร้างของคุณเองจากแหล่งข้อมูลต่อไปนี้

โดยทั่วไปหากคุณมีการทำงานนี้ไม่มีใครจะรบกวนคุณเพราะพวกเขารู้ว่าคุณกำลังทำสิ่งที่ร้ายแรง

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>


47
คนวาดภาพ / บำรุงรักษาตระหนักว่าฉันเป็นโปรแกรมเมอร์และไม่ใช่แค่ผู้ชายบางคนกำลังฟังเพลง !! ฉันสงสัยว่าสิ่งนี้จะอยู่รอดได้โดยการตรวจสอบโดยคนที่แต่งตัวประหลาดเทคโนโลยี: P
sabithpocker

17
ฉันต้องการมันเป็นสกรีนเซฟเวอร์ใหม่ของฉัน !! อันที่จริง, คุณจะทำอย่างนั้นในอูบุนตูได้อย่างไร?

33
ฉันนั่งอยู่ในห้องสมุดสาธารณะโตรอนโตพร้อมกับเปิดกว้างและสังเกตเห็นคนที่อยู่ข้างหลังฉันมองที่หน้าจอ ดูเหมือนว่า 'น่ากลัว' สำหรับคนที่ไม่ใช่เทค คุณสามารถสร้าง guihacker.com ให้เรา 2 เปลี่ยนชื่อของหน้าเป็นสิ่งที่เราต้องการและถ้าเราสามารถเพิ่มในบรรทัดของเราเองซึ่งจะปรากฏในข้อความสีเขียว? ฉันกำลังคิดที่จะทำชื่อเรื่องของหน้า 'การเข้าถึงอินเทอร์เน็ตของห้องสมุดสาธารณะโตรอนโต' และทำให้สายสีเขียวบอกว่า 'การเข้าถึงฐานข้อมูลความปลอดภัยของห้องสมุดสาธารณะโตรอนโต .. ' 'กำลังเข้าถึงชื่อผู้ใช้และรหัสผ่าน ... เข้าใจฉันด้วยปัญหาบางอย่าง แต่มันจะสนุก
2719875

37
หากว่านี่ทำงานมาตลอด 30 วินาทีก่อนที่นักพัฒนาเพื่อนของฉันจะมาถามว่าฉันกำลังแฮ็คอะไร ฉันคิดว่านับเป็นความสำเร็จดังนั้น +1
MrTheWalrus

10
"รายงาน TPS" ... ยอดเยี่ยม
Dennis

111

ทุบตี / coreutils

แนะนำครั้งแรกที่เคย ... รวบรวมจำลอง ด้วยโปรแกรมนี้คุณสามารถต่อสู้ด้วยดาบเก้าอี้สำนักงานได้ทุกเวลาที่คุณต้องการโดยไม่ต้องเขียนรหัสใด ๆ !

#!/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

มันใช้ข้อมูลจาก/usr/includeการสร้างบันทึกการรวบรวมที่ดูสมจริง ฉันขี้เกียจเกินไปที่จะโยนคำเตือนแบบสุ่มดังนั้นจึงมีเพียง-wธง

สุ่มตัวอย่าง:

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- แชร์ libiptc / ipt_kernel_headers.o libiptc / libip6tc.o libiptc / libiptc.o libiptc / libxtc.o ดังนั้น
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- แชร์ e2p / e2p.o -o e2p.so
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / เครื่องเทศ-วิดเจ็ต-enums.c -o เครื่องเทศ-ไคลเอนต์ gtk-2.0 / เครื่องเทศ-widget-enums.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / เครื่องเทศ-grabsequence.c -o เครื่องเทศ-client-gtk-2.0 / เครื่องเทศ -loggenceence.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / spice-gtk-session.c -o spice-client-gtk-2.0 / spice-gtk-session.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / spice-widget.c -o เครื่องเทศ-client-gtk-2.0 / spice-widget.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / อุปกรณ์ usb-widget.c-o-spice-client-gtk-2.0 / usb-device-widget.o
gcc -w -pipe -m64 -msse -msse2 -O1 -shared spice-client-gtk-2.0 / spice-grabsequence.o เครื่องเทศ-ไคลเอนต์ gtk-2.0 / spice-gtk-session.o เครื่องเทศ-ไคลเอนต์ gtk-2.0 /spice-widget-enums.o spice-client-gtk-2.0 / spice-widget.o เครื่องเทศ-client-gtk-2.0 / อุปกรณ์ usb-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 -pipe -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-1.0 / cairomm-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / scaledfont.c-cairomm-1.0
gcc -w -O0 -pipe -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-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / quartz_font.co cairomm-1.0
gcc -w -O0 -pipe -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-c -ommont-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / refptr.c-cairomm-1.0 / cptomm-1.0
gcc -w -O0 -pipe -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
gcc -w -O0 -pipe -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-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / enums.c
gcc -w -O0 -pipe -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-cseomm-1.0 / c-rommet
gcc -w -O0 -pipe -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-1.0
gcc -w -O0 -pipe -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-1.0 / cairomm-1.0
gcc -w -O0 -pipe -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-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / quartz_surface.c-cairomm-1.0
gcc -w -O0 -pipe -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-1.0 / cairomm-1.0 / cairomm-1.0 / cairomm-1.0
gcc -w -O0 -pipe -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-1.0
gcc -w -O0 -pipe -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-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -cairomm-1.0 / cairomm / 1.0lair_surface.c -o-cseomml = 1.012
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / fontoptions.c-cairomm-1.0
gcc -w -O0 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / ภูมิภาค.c-cairomm-1.0 / cairomm-1.0
gcc -w -O0 -pipe -m64 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -msse -msse2 -msse3 -msse4_1 -shared cairomm-1.0 / cairomm / cairomm.o /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-1.0 o 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 / 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 -pipe -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.o
gcc -w -O2 -msse -msse2 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -m64 -pipe -c 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

4
ไม่เลวเลย! มีบางสิ่งที่รู้สึกไม่ถูกต้องเกี่ยวกับเรื่องนี้ (นั่นเป็น HD ที่ทำให้เงียบสนิทหรือไม่) แต่สำหรับผู้ดูที่ไม่รู้ตัวว่ามีความสงสัยมาก ถึงแม้ว่า ... อะไรมันกำลังรวบรวมอยู่libdrm? และsys/wait.o?? สิ่งที่ ...
หยุดหันมาคุยกันเมื่อ

27
@leftaroundabout บอกว่าคุณมี SSD
mniip

36
เพื่อให้เป็นจริงยิ่งขึ้นคุณควรส่งคำเตือนผู้คอมไพเลอร์ปลอมหลายครั้งต่อบรรทัด gcc :)
monocell

3
คุณอาจใช้ pkg-config เพื่อสร้างค่าสถานะ gcc ปลอมที่สมจริงยิ่งขึ้น
เบรนแดน Long

3
@WChargin ที่ไม่เปิดใช้งาน HD
Thorbjørn Ravn Andersen

106

ทุบตี

แสดงค่าเลขฐานสิบหกแบบสุ่มโดยที่บางส่วนถูกเน้นเพื่อให้รู้สึกว่าคุณทำการค้นหาที่ซับซ้อนในข้อมูลดิบ

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

ป้อนคำอธิบายรูปภาพที่นี่


6
Oooh ฉันชอบอันนี้!
ลูกแมวบางคน

4
(ทนกับฉันใหม่เพื่อทุบตี) แต่เมื่อเรียกใช้บรรทัดนี้ (mac osx, terminal) ฉันได้รับผลลัพธ์นี้ในวง:od: illegal option -- w usage: od [-aBbcDdeFfHhIiLlOosvXx] [-A base] [-j skip] [-N length] [-t type] [[+]offset[.][Bb]] [file ...]
Sterling Archer

2
ดูเหมือนว่ารุ่นของคุณodไม่รองรับ -wตัวเลือก คุณสามารถวางตัวเลือกนี้ไว้ที่นี่เพื่อแสดงคอลัมน์ข้อมูลเพิ่มเติมเพื่อเติมเต็มหน้าจออีกเล็กน้อย
barjak

8
ส่วนตัวผมชอบนี้กับการเปลี่ยนแปลงที่จะsleep 0.5 sleep.$[$RANDOM % 10]มันทำให้ jerkier เล็กน้อยและอื่น ๆ เช่นการค้นหาจริง ฉันชอบมัน แต่!
undergroundmonorail

4
เตือนฉันถึงการไม่มีที่สิ้นสุดที่ค้นหาคำว่า "ca fe":cat /dev/random | hexdump | grep "ca fe"
daviewales

102

งานสร้างที่ยาวนานมาก:

emerge openoffice

48
; _;
mniip

3
ยาวกว่า Chromium ไหม
nyuszika7h

6
ปัญหาเกี่ยวกับการรวบรวมโครงการจริงว่ามันจะหยุดหากมีข้อผิดพลาดเกิดขึ้น อาจเป็นไปได้ว่าเราควรใส่มันลงในวงวนไม่สิ้นสุด
อากิระยามาโมโตะ

3
เราไม่ได้โผล่ออกมาในลินุกซ์มิ้นท์?
Akira Yamamoto

3
ในระบบ. deb เช่น Ubuntu และ Mint คุณต้องการsudo apt-get build-dep libreoffice; apt-get source libreoffice; cd libreoffice*; while :; do nice dpkg-buildpackage -rfakeroot; done(คุณจะต้องดูแลมันในการวิ่งครั้งแรกอย่างน้อยก็จนกว่าการคอมไพล์จริงจะเริ่มขึ้นการทำงานที่ตามมาจะต้องwhileวนซ้ำเท่านั้น)
Adam Katz

55

ทับทิม

อันนี้จะ:

  1. รับรหัสสุ่มจากเว็บไซต์นี้ การตรวจสอบโค้ด (สำหรับรหัสที่อ่านง่ายขึ้นและเขียนได้ดี)
  2. ทำให้ดูเหมือนว่าคุณกำลังพิมพ์รหัสนี้
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

นี่คือสคริปต์นี้ตามรหัสที่นำมาจากที่นี่ :

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

นี่คือลักษณะ: รหัส


11
จะเกิดอะไรขึ้นถ้ารหัสที่ได้รับอยู่ใน Brainf ** k, Golfscript หรือ J ซึ่งจะทำให้เกิดความสงสัย
user80551

39
ในที่สุดคำตอบของฉันที่วางไว้อย่างระมัดระวังซึ่งเพิ่มแบ็คดอร์ไว้รอบ ๆ จ่ายเงิน
PlasmaHH

1
บางที stackoverflow น่าจะดีกว่า
PyRulez

3
ความเร็วในการพิมพ์ของแต่ละคนมีลักษณะที่สมจริงมากขึ้นถ้าผมสุ่มความเร็ว (และทำให้มันเร็วขึ้น) โดยการเปลี่ยนสายไปsleep sleep rand(10).to_f / 30
Rory O'Kane

3
ฉันคิดว่าการใช้รหัสตรวจสอบโค้ดบน Code Golf นั้นสมบูรณ์แบบ ฉันเคยคิดว่า Code Golf เป็นคู่ที่ชั่วร้ายของ Code Review และฉันรักทั้ง ...
trichoplax

52

ให้ไปกับสคริปต์ทุบตีง่ายๆที่ทำให้คุณดูแฮ็คโดยการพิมพ์เนื้อหาของทุกไฟล์ที่ระบุว่าเป็นข้อความใน / var / log / บรรทัดต่อบรรทัดด้วยความล่าช้าแบบสุ่มเพื่อให้ดูเหมือนว่าสิ่งที่เกิดขึ้นอย่างเข้มข้น มันสามารถให้ผลลัพธ์ที่น่าสนใจได้

#/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

ต้องแน่ใจว่าธีมเทอร์มินัลของคุณดูแฮ็ค นี่คือตัวอย่างที่ไม่ดี (ไม่ทราบว่ามีความหมายใด แต่ดูเหมือนแฮ็ค):

ภาพ ภาพ


3
ทำได้ดีมาก ภาพหน้าจอตัวอย่างดีมาก
SomeKittens

37
คุณทราบหรือไม่ว่าคีย์ส่วนตัวของคุณอยู่ในภาพหน้าจอเหล่านี้
Hubert OG

27
ฮ่าฮ่า gotcha! ;-)
Hubert OG

4
(แต่อย่างจริงจังฉันไม่ได้อ่านภาพหน้าจอเหล่านั้นดังนั้นฉันจึงไม่รู้ว่ามีอะไรอยู่จริง ๆ )
Hubert OG

3
@HubertOG ว้าวคุณเกือบจะทำให้ฉันหัวใจวาย ... ; PI ไม่เห็นที่ใดดังนั้นฉันคิดว่าฉันกำลังจะบ้า: O
Jwosty

49

Bash: คอมไพล์ไม่รู้จบ

ปัญหาเกี่ยวกับคอมพิวเตอร์ทุกวันนี้คือมันค่อนข้างเร็วดังนั้นแม้กระทั่งการรวบรวมงานก็เสร็จสิ้นในที่สุด นอกจากนี้ให้สคริปต์ที่ทำงานเป็นเวลานานคุณอาจยืนยันว่าเป็นไปได้จริงที่จะทำงานอย่างอื่นในขณะที่สคริปต์ทำงาน

เพื่อแก้ปัญหานี้เรามีโปรแกรมดังต่อไปนี้ เพียงแค่เรียนรู้วิธีพิมพ์ 'y' หรือ 'n' แบบสุ่มทุกคราว

แน่นอนว่าคุณต้องการ repo คอมไพล์ด้วยเนื้อหาใหม่ แต่สมมติว่าคุณทำงานจริงเป็นครั้งคราวซึ่งไม่น่าจะมีปัญหา

#!/bin/bash

while [ 1 ]; do
  git add -p
  git reset
done

12
ฉันรู้สึกว่าถูกรบกวนอย่างรุนแรงจากรายการ CG นี้ ... มันเป็น +1 หรือ -1 แต่ฉันก็ไม่รู้เหมือนกัน!
vaxquis

37

ทุบตี

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

เพียงแค่อัปเดต repos ของคุณต่อไป หากมีใครสังเกตเห็นเพียงแค่บอกว่าคุณได้เพิ่ม repo ใหม่สำหรับโปรแกรมใหม่และคุณกำลังทดสอบคนอื่น มันไม่เหมือนกับการแกล้งทำสคริปต์ แต่เป็นคำสั่ง

หมายเหตุ: ฉันไม่เอาผิดกับการไม่ทำงาน แต่ฉันชอบการทดลอง ดังนั้นฉันจึงแนะนำให้ใช้แอพนี้เพื่อให้เกิดประโยชน์แอบแฝง


5
ดี แต่ระวังฟังก์ชั่นวนซ้ำนั้น
Digital Trauma

1
ดูเหมือนส้อมระเบิด !!
Avinash R

2
@AvinashR ไม่มากไม่มีส้อม
PyRulez

43
Mirror เจ้าภาพเกลียดคุณตอนนี้
Caleb

9
"ไม่มากไม่มีส้อม" ดังนั้นคุณพูดเพียงระเบิดหรือไม่ :-)
celtschk

28

C ++ Neural Network

แก้ไข

น่าเศร้าที่ฉันเพิ่มประสิทธิภาพโค้ดนี้ :( ทำให้เร็วขึ้น 2000x ... รหัสดั้งเดิมยังสมบูรณ์แบบสำหรับการเสียเวลา!

เป็นต้นฉบับ

จริง ๆ แล้วฉันเริ่มโครงการในโครงข่ายประสาทเทียมที่สมบูรณ์แบบสำหรับสิ่งนี้! รหัสที่มาและเอกสารที่อยู่บนGitHub ขั้นตอนแรกคือการสร้างเครือข่ายใหม่

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>>());

ตอนนี้เรามีเครือข่ายที่มี 300 เซลล์ประสาทและ 1,250,000 synapses แล้วให้บันทึกลงในไฟล์เพื่อให้แน่ใจว่าเราจะไม่สูญเสียความคืบหน้าใด ๆ ที่เราทำกับเครือข่าย

neuralNetwork.SaveToFile("test2.cnn");

นั่นสร้างไฟล์ข้อความ 68MB และทำงานผ่อนคลายมากกว่าสองสามชั่วโมง ทีนี้มาสนุกกับการทำอะไรกับมันกันเถอะ! ฉันจะสร้างอินพุตสุ่มและเริ่มที่จะแยกแยะมัน

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);

นั่นเป็นอินพุตที่ค่อนข้างเล็กสำหรับรูปภาพ แต่เราแค่พิสูจน์ได้ว่าเครือข่ายสามารถทำอะไรบางอย่างได้ ขั้นต่อไปคือการแยกแยะกับมัน!

Layer output = neuralNetwork.Discriminate();

นี่ยังไม่เสร็จสำหรับฉันและมันใช้งานมานานกว่า 2 วัน! จากนั้นเมื่อเราได้เอาต์พุตนั้นมาลองย้อนกลับอีกครั้งเพื่อความสนุก

Layer generatedOutput = neuralNetwork.Generate(output);

ทั้งหมดนี้เป็นเพียงการพิสูจน์ว่า API ใช้งานได้ยังไม่มีแผน ขั้นตอนนี้ยังไม่ได้เปิดใช้สำหรับฉันและฉันรอซักครู่ ดีกว่า 2 วันที่ถูกเผาและนี่เป็นการประเมินคร่าวๆจากการทดสอบปัจจุบันของฉัน มันค่อนข้างซับซ้อนและคุณจะต้องทำงานหนักเพื่อทำมันสักวันหรือสองวัน แต่หลังจากนั้นคุณอาจไม่ต้องทำงานอีกเลย!

หมายเหตุ: หากคุณไม่เคยต้องการทำงานอีกครั้งลองฝึกอบรมเครือข่าย

neuralNetwork.LearnCurrentInput();

ฉันไม่มีเวลาเสียเปล่าสำหรับอันนี้!

หากคุณต้องการแสดงข้อมูลทั้งหมดที่เกิดขึ้นให้เพิ่มการโทรในฟังก์ชั่นเพื่อแสดงว่าเกิดอะไรขึ้น

ตัวสร้างใหม่

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

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;
}
}

คุณจะได้รับผลลัพธ์มากมายบนคอนโซลของคุณทันที


4
+1 สำหรับบริบทชีวิตจริงเช่นกัน น่าสนใจ :)
จอร์จ

1
ฮ่าฮ่าฮ่าฮ่าสะกดชื่อย่อว่า "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)

มันแสดงผลเป็นกลุ่มบรรทัดของ JS และ HTML ปลอมที่มีเวลา "โหลด" ปลอม (ล่าช้า) เพื่อให้ดูสมจริงยิ่งขึ้น

สิ่งนี้สามารถและจะเพิ่มขึ้นอย่างมาก! (โปรแกรมพื้นฐานอยู่ที่นั่นฉันแค่ต้องเพิ่มเนื้อหาเพิ่มเติมตอนนี้)


นี่คือตัวอย่างของ "หน้า" ที่สร้างขึ้น (นี่คือจากรหัสรุ่นเก่าฉันจะอัปเดตด้วยรหัสใหม่เมื่อฉันทำเสร็จ):

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>

3
เยี่ยมมากรอไม่ไหวที่จะเห็นสิ่งที่คุณเพิ่มเข้าไป!
ลูกแมวบางคน

เฮ้ใช่นี่คือลาเตะสวย ใจของฉันเต็มไปด้วยสิ่งดีๆที่คุณสามารถทำกับคนรุ่นต่อไปได้
Loktar

ไม่ใช่แค่ไพ ธ อน 3, 2.7 ก็โอเคเช่นกัน
Hannes Karppila

1
เยี่ยมมาก ดูสมจริงมาก ๆ
qwr

24

Node.js + BDD

ดูเหมือนว่าการทดสอบสไตล์ BDD จะสิ้นสุดลง ไม่มีใครสามารถตำหนิคุณในการทำข้อสอบ!

    "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()

ปรับปรุง

มันเกิดขึ้นกับฉันว่ามันจะดูน่าสงสัยหากการทดสอบทั้งหมดของคุณผ่านดังนั้นฉันได้อัปเดตให้รวมถึงการทดสอบที่ล้มเหลวบางอย่าง - พร้อมกับมอบให้ - เมื่อ - แล้ว

และใช่ฉันรู้ว่าความล้มเหลวทั้งหมดมีข้อความเหมือนกัน คุณต้องแก้ไขลิงก์ออกจากระบบจริง ๆ !

ป้อนคำอธิบายรูปภาพที่นี่


2
ฉลาดมากฉันได้รับคะแนนโบนัสเพื่อให้มั่นใจว่ารหัสของฉันผ่านการทดสอบแล้ว! ไม่ควรระวังมากเกินไป
ลูกแมวบางคน

23

C # (Windows)

ฉันนำเสนอให้คุณMemtest86 Simulator 2014 ใหม่ล่าสุด! (เนื่องจากการเรียกใช้ Memtest86 ภายใต้ Windows นั้นสมเหตุสมผลอย่างยิ่ง)

สมบูรณ์ด้วยแถบความคืบหน้าการทำงานและตัวบ่งชี้รูปแบบ!

รหัสนี้ใช้คลาสคอนโซลอย่างกว้างขวางซึ่งเท่าที่ฉันรู้มีเฉพาะใน Windows เท่านั้น นอกจากนี้ฉันไม่สามารถหาวิธีแสดงชื่อ / ความถี่โปรเซสเซอร์จริงและหน่วยความจำที่มีอยู่ดังนั้นจึงเป็นฮาร์ดโค้ด

ภาพหน้าจอ: ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข

เมื่อต้องการดึงข้อมูลตัวประมวลผลคุณสามารถใช้ Microsoft.Win32 namespace และคลาส RegistryKey

 // 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");
            }
        }

รหัส (น่าเกลียดฉันรู้):

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++;
        }
    }
}

7
ทำไมไม่เรียกใช้ Memtest86? "ฉันคิดว่าฉันมีปัญหาฮาร์ดแวร์ที่นี่ฉันเดาว่าฉันจะต้องทำอะไรจนกว่าจะเสร็จ"
MadTux

20
@ MadTux 'เพราะคุณต้องเข้าสู่ Memtest ซึ่งหมายถึงไม่มีรูปแมว
Schilcote

1
System.Console ธิการในโมโนผมคิดว่าคุณก็ต้องปรับแต่งโค้ดสำหรับขนาดของหน้าต่างคอนโซลพล
NothingsImpossible

8
คุณไม่สามารถเรียกใช้ Memtest86 ใน VM ได้หรือไม่
โคลจอห์นสัน

3
ฉันชอบ Memtest ในแนวคิด VM
John


14

AHK

คุณแสร้งทำเป็นพิมพ์ในขณะที่สคริปต์สร้างพวงของ accessors และ mutators ใน JavaScript ตรวจสอบให้แน่ใจ IDE (ฉันทดสอบสิ่งนี้บน Notepad ++) เป็นหน้าต่างที่ใช้งานอยู่

ระบุรายการตัวแปรและชื่อคลาสหากคุณต้องการ window.locationฉันเพียงแค่ใช้สิ่งที่มีอยู่แล้วใน

กด esc เพื่อออก

กด 0 บนแป้นตัวเลขของคุณเพื่อหยุดชั่วคราวเมื่อมีคนพยายามคุยกับคุณ

กด ctrl + w (w หมายถึงงาน) เพื่อเริ่ม

^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

14

ทุบตี

ทิ้งบล็อกสุ่มของหน่วยความจำกายภาพและดูเนื้อหา จะต้องมีการรูทสำหรับสิ่งนี้ หน่วยความจำ 1MB แรกเท่านั้นที่มีให้โดยค่าเริ่มต้น ddขนาดบล็อกเริ่มต้นคือ 512 ไบต์ซึ่งสามารถเปลี่ยนแปลงได้ด้วยตัวเลือกibs=bytesแต่โปรดทราบว่าตัวเลือกอื่นskip=$offsetที่เลือกบล็อกแบบสุ่ม เอาต์พุตจากddถูกส่งผ่านtrเพื่อลบอักขระที่ไม่ใช่ ASCII; มีการประเมินผลลัพธ์เฉพาะอักขระ 2 ตัวขึ้นไป

แต่ละสตริงที่พบจะถูกเปรียบเทียบกับพจนานุกรม หากไม่พบไม้ขีดไฟมันจะพยายามถอดรหัสเป็นเบส 64 ในที่สุดสตริงทั้งหมดที่ถูกประเมินจะถูกส่งคืน

มีอีกหลายตัวเลือกขึ้นอยู่กับแพลตฟอร์มที่ต้องระวังเช่นตำแหน่งของไฟล์พจนานุกรม (/ usr / share / dict / words) ว่า sleep ยอมรับอินพุตอินพุตของจุดลอยตัวหรือไม่และถ้าbase64มี

นอกจากนี้โปรดระวังว่าddเอาต์พุตสถิติเกี่ยวกับการดำเนินการกับ stderr ซึ่งถูกไพพ์ไปที่ / dev / null หากมีบางอย่างผิดพลาดอย่างน่ากลัว (คุณกำลังเข้าถึง / dev / mem ... ) เอาต์พุต stderr จะไม่ปรากฏให้เห็น

โดยรวมแล้วมีประโยชน์ไม่มาก แต่ฉันได้เรียนรู้เล็กน้อยเกี่ยวกับหน่วยความจำ linux และการเขียนสคริปต์นี้กลายเป็นเรื่องสนุก

#!/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

บางครั้งไม่มีผลลัพธ์ที่น่าสนใจ (ศูนย์ทั้งหมด) บางครั้งมีเพียงไม่กี่สาย:

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

บางครั้งมีบางสิ่งบางอย่างที่มนุษย์สามารถอ่านได้ในหน่วยความจำ (ก่อนที่ฉันจะบันทึกออฟเซ็ตบล็อก):

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

และหนึ่งการรันตัวอย่างสุดท้ายแสดงการป้อน grep ที่ผิดรูปแบบ, การเข้าดูพจนานุกรมและการถอดรหัส base64 ที่ประสบความสำเร็จ (ก่อนที่การบันทึกบล็อกออฟเซ็ตอีกครั้ง):

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

คุณทำงานนี้ได้อย่างไร ฉันทิ้งมันลงไปscript.shทำchmod +xต่อ แต่ก็แค่ออก sudoไม่ช่วยเช่นกัน
Octavia Togami

ฟังดูเหมือนmem=เส้นจะไม่ส่งคืนอะไรเลย คุณจะต้องตรวจสอบและตรวจสอบให้แน่ใจว่าแต่ละส่วนของคำสั่งระหว่างไพพ์ส่งคืนอะไรบางอย่าง

ตกลงฉันจะทำอย่างนั้น
Octavia Togami

การดำเนินการนี้จะใช้เวลาเพียง 5 วินาทีในครั้งแรกและพิมพ์ออกมาเป็น 12 บรรทัดจากนั้นก็เช่นกัน 0.1 วินาทีในทุกครั้งที่ไม่มีผลลัพธ์
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%
)

นี่เป็นสคริปต์ตลกที่ฉันเก็บไว้กับฉันเป็นเวลาหลายปีเพื่อทำให้มันดูเหมือนกับภาพยนตร์แฮ็กเกอร์ในยุค 90 ฉันมักจะใช้มันในขณะที่เชื่อมต่อกับคอมพิวเตอร์จากระยะไกลเพื่อทำให้คนประหลาด


2
เขากำลังดาวน์โหลดไวรัสเข้าสู่ทั้งระบบ!
qwr

12

ทุบตี

การค้นหาร้านกาแฟที่ไม่มีที่สิ้นสุด

ฉันพบสิ่งนี้บนเว็บเมื่อนานมาแล้ว:

cat /dev/urandom | hexdump | grep "ca fe"

ลองใช้ urandom แทน
อลิซ Ryhl

อ่า ... ผมทดสอบบน Mac และแม็คมีทั้งและrandom urandom
daviewales

5
/dev/randomมีอยู่จริง แต่มีจุดประสงค์เพื่อความปลอดภัยมากกว่าการ/dev/urandomสร้างตัวเลขเฉพาะในกรณีที่มีเอนโทรปี เมื่อคุณหมดมันจะหยุด /dev/urandomไม่ทำอย่างนั้นและจะไม่หยุดเพียงแค่ส่งออก
undergroundmonorail

ทำไมมันไม่สิ้นสุด วันนี้ฉันรู้สึกโง่เป็นครั้งที่สอง
Daniel W.

1
/dev/urandomเป็น 'ไฟล์' catอย่างต่อเนื่องซึ่งฟีดตัวเลขสุ่ม catจากนั้นไปป์เหล่านี้hexdumpเป็นต้น
daviewales

11

Python 2.7

ชุดทดสอบที่ไม่มีที่สิ้นสุด

"Runs" ชุด "การทดสอบหน่วย" ในไฟล์ทั้งหมดในแผนผังไดเรกทอรีของคุณ ผ่านไดเรกทอรีย่อยทั้งหมด เริ่มต้นใหม่เมื่อถึงจุดสิ้นสุด

พิมพ์สถานะการทำงาน:

============================= 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 ===========================

...

คุณลักษณะที่ทำให้ซับซ้อนกว่าที่ต้องการและหวังว่าจะสมจริงยิ่งขึ้น:

  • จำนวนการทดสอบและเวลาทดสอบเป็นสัดส่วนกับขนาดไฟล์
  • เปลี่ยนนามสกุลไฟล์ที่ไม่ใช่ซอร์สโค้ดเป็นไฟล์ที่รู้จัก แก้ไขCodeExtensionsเพื่อเพิ่มประเภทที่รู้จักมากขึ้น
    • เลือกส่วนขยายใหม่ตามความถี่ของไฟล์ภาษาจริงที่เห็นดังนั้นคุณจะไม่เห็นการทดสอบรหัส Python หากฮาร์ดไดรฟ์ของคุณเต็มไปด้วยทับทิม
  • ข้ามไฟล์ที่. ไม่มีของรางวัลชั้นนำเช่น "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)

1
คุณสามารถเรียกใช้การทดสอบการถดถอยของ Python ซึ่งมาพร้อมกับการติดตั้ง Python ส่วนใหญ่
nneonneo

แต่ท้ายที่สุดแล้ว
AShelly

2
จากนั้นคุณสามารถเรียกใช้พวกเขา ... ในวง!
nneonneo

1
ฉันคิดว่ามันน่าสงสัยน้อยกว่าในการทดสอบไฟล์ที่มีชื่อที่เกี่ยวข้องกับโครงการของคุณมากกว่าที่จะทดสอบแหล่ง Python ฉันคาดเดามากที่สุดของเราไม่ได้มืออาชีพรักษาหลาม ...
AShelly

11

Java + Guava 16 (Guava ไม่จำเป็นสุด ๆ แต่มันทำให้บางอย่างน่ารำคาญน้อยลงในการเขียน)

เอาล่ะคุณควรจะทำงานเหรอ? วิธีการเกี่ยวกับโปรแกรมที่เขียนโค้ด Java จริงที่รวบรวมได้จริง (แม้ว่ามันจะไม่ได้ทำอะไรมาก)

เป็นการยากที่จะแสดงให้เห็นถึงภาพเคลื่อนไหว แต่โปรแกรมนี้เขียนโปรแกรม Java โดยใช้พจนานุกรมเริ่มต้น (คำศัพท์ภาษาอังกฤษทั่วไป 250 คำ) หรือไฟล์ที่มีการคั่นด้วยการขึ้นบรรทัดใหม่ (ซึ่งถือเป็นอาร์กิวเมนต์บรรทัดคำสั่ง) และพิมพ์ลงในคอนโซลหนึ่งตัว ด้วยความเร็วที่ดูเหมือนมนุษย์ อย่าลืมรันด้วยตัวเองเพราะโพสต์นี้ไม่ยุติธรรม เมื่อเสร็จสิ้นแล้วจะรอ 1 นาทีจากนั้นพิมพ์บรรทัดว่างจำนวนมากไปที่คอนโซลและเริ่มต้นใหม่อีกครั้ง ฉันพยายามเขียนเพื่อทำให้พารามิเตอร์ต่างๆปรับเปลี่ยนได้อย่างสมเหตุสมผล

นอกจากนี้โดยปกติแล้วฉันจะใส่สิ่งนี้ลงในไฟล์มากกว่าหนึ่งไฟล์ แต่เพื่อให้ง่ายต่อการเรียกใช้ฉันได้ทำการเขคลาสทั้งหมดเข้าด้วยกัน

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;
        }
    }
}

เอาต์พุตโปรแกรมตัวอย่าง (เพียงหนึ่งโปรแกรม)

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;
    }
}

เอาท์พุทตัวอย่างอื่น:

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;
    }
}

9
คุณได้สร้างเครื่องพิมพ์เงินอัตโนมัติเต็มรูปแบบสำหรับทุกคนที่ยังคงชำระเงินด้วยบรรทัดของรหัส - งานที่ยอดเยี่ยม!
Philipp

9

ทุบตี

แสดงความคิดเห็นบางส่วนจากไฟล์ต้นฉบับแบบสุ่มตามช่วงเวลาที่สุ่มแล้วตามด้วยแถบความคืบหน้าแบบไม่มีการทำอะไรที่สร้างขึ้นแบบสุ่ม

#!/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

เอาท์พุท:

# /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

1
ฉลาด! มันสายไปนิดที่จะได้รับความสนใจมากขึ้น แต่รับห้าสูงจากฉัน
ลูกแมวบางคน

@SomeKittens อัจฉริยะที่แท้จริงของสคริปต์นี้คือการทำงานกับมันดูดียิ่งมากขึ้นเช่นการทำงานจริง ; D
Sammitch

7

รูปแบบ Rsync BASH

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

rsync - เครื่องมือคัดลอกไฟล์ที่รวดเร็วและหลากหลายระยะไกล (และในพื้นที่) ... ที่มี -nทำการรันแบบแห้ง , พยายามทำ, ไม่ได้ทำจริงๆ, และแสดงสิ่งที่เกิดขึ้น
ในกรณีนี้ลองตรวจสอบว่าจะอัพเดทไฟล์ทั้งหมดของโฮมไดเร็กตอรี่ของคุณ (และโฟลเดอร์ย่อย ) หรือไม่
หากคุณมีสิทธิ์เข้าถึงรูทแน่นอนคุณสามารถรันบนส่วนที่ใหญ่กว่าของระบบไฟล์ของคุณ

หมายเหตุ:

  1. หากHISTCONTROL=ignorebothหรืออย่างน้อยHISTCONTROL=ignorespaceในเซสชั่นทุบตีประวัติทุบตีของคุณจะไม่จำคำสั่งนั้นถ้าคุณเขียนมันด้วยช่องว่างก่อน (คุณไม่สามารถดันขึ้นและดูได้บนหน้าจอไม่ได้อยู่ในบันทึกประวัติ )
  2. | sed s/"(DRY RUN)"/""/gจะไพพ์เอาต์พุตผ่านsedซึ่งจะลบ(DRY RUN)ข้อความที่ส่วนท้ายของเอาต์พุต rsync หากผู้เชี่ยวชาญตรวจสอบคุณสามารถพูดได้ว่าคุณทำอย่างนั้นจริง ๆ ไม่ใช่แค่การทดสอบ
  3. -avrIcคุณสามารถเปลี่ยนตัวเลือกเหล่านั้นตรวจสอบman rsyncแต่ไม่ต้องลบตัวเลือก-nอื่นคุณควรมีปัญหาร้ายแรงยิ่งกว่านั้นหากคุณทำงานเป็นรูท ... 8-O!

6

Maven ภายใต้ทุบตี

Maven เหมาะสำหรับงานประเภทนี้ ;-)

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

6

งูเห่า

สิ่งนี้จะเปิดหน้าต่างคอนโซลที่ลูปผ่านวัตถุปลอมต่าง ๆ และสิ่งต่าง ๆ เพิ่มขึ้นในการผ่านและความคืบหน้าสำหรับแต่ละผ่าน มันรอเวลาสุ่มเล็ก ๆ ที่เพิ่มขึ้นแต่ละครั้งเพื่อจำลองความล่าช้าในการคำนวณจริง

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))

1
คุณมีเวลาทั้งสัปดาห์เพื่อทำงานนี้ดังนั้นใช้เวลาของคุณ
ลูกแมวบางคน

1
ภาษางูเห่านี้คืออะไรดูเหมือนว่าลูกนอกรีตของ Python และ C #, ฮ่าฮ่า (มองมันดูเหมือนว่าจะมีคุณสมบัติที่น่าสนใจบางอย่าง), +1
Thomas

1
@Thomas ส่วนใหญ่เป็น C # (ปัจจุบันไม่มี LINQ) โดยใช้ไวยากรณ์ Python-esque และหนึ่งในคอมไพเลอร์เริ่มต้นที่เป็นประโยชน์ที่สุดที่ฉันเคยมีความสุขในการทำงานด้วย
Junurous

ดังนั้นคุณไม่เคยจบการทำรหัสนี้?
rayryeng

4

ฉันเขียนสคริปต์หลามโง่เพื่อทำสิ่งนี้ครั้งเดียว เรียกว่า "ProgramAboutNothing" ... ฉันไม่แน่ใจว่ามันน่าเชื่อถือ แต่ใช้เวลาเพียง 10 นาทีเท่านั้น มันแค่เอาท์พุทประโยคสุ่มที่อธิบายว่ามันควรจะทำอะไร ... ฉันอาจเลือกคำที่ดีกว่าสำหรับมันซึ่งอาจดูน่าเชื่อถือกว่า แต่ฉันไม่เคยใช้มันอย่างถูกต้อง ฉันเดาว่าถ้ามีคนต้องการใช้มันพวกเขาสามารถแก้ไขและเพิ่มคำของตัวเองในรายการ ... แฟน ๆ ของ Sim City อาจสังเกตเห็นสิ่งที่คุ้นเคย : 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",

1
บางทีคุณกำลังใช้ Python 3 print( ... )ลองเพิ่มวงเล็บรอบงบพิมพ์เช่นนี้:
daviewales

1
@daviewales ninja'd: P
ลุค

1
@Luke ฉันเพิ่งติดตั้งPython 3.4.1สำหรับ Windows ฉันไม่สามารถเขียนโปรแกรมในหลาม แต่ผมสนใจในโปรแกรมเล็ก ๆ น้อย ๆ ของคุณ ...
Mathlight

1
@Mathlight เตรียมที่จะจม : P
ลุค

1
@ ลุคมันใช้งานได้แล้ว และฉันก็ประทับใจ ^ _ ^
Mathlight

4

แล้วอันนี้ละ? มันจะดาวน์โหลดข้อมูล codegolf HTML ทุก 1 วินาที ดังนั้นข้อมูลจะเปลี่ยนไปเรื่อย ๆ ตราบใดที่มีคำถามใหม่ ๆ เข้ามาในเวลาเดียวกันมันก็จะปรากฏขึ้นราวกับว่าคุณกำลังดาวน์โหลดข้อมูลสำคัญบางอย่างจากเว็บไซต์

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


2

นี่คือการจำลองคอมไพเลอร์ C ++ (เขียนใน 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"));
    }
}

2

xdotool และ IDE (เช่น eclipse)

สำหรับผู้ใช้ X11

ใช้สคริปต์นี้และตรวจสอบให้แน่ใจว่าคุณแค่Alt+ tab'ed จาก Eclipse คุณต้องมีไฟล์ java ตัวอย่างเช่นที่นี่: https://raw.githubusercontent.com/Valay/Longest-Word-Made-of-other-Words/master/LongestWord.java

#!/bin/sh

xdotool key alt+Tab
xdotool sleep 0.2
xdotool type --delay 300 "$(cat LongestWord.java)"
xdotool key alt+Tab

2

ชุด

วางในโฟลเดอร์ที่มีไฟล์จำนวนมาก หากเลื่อนเร็วพอจะไม่มีใครสงสัย

:l
dir/s
echo %RANDOM%
echo %RANDOM%
echo %RANDOM% 
goto l

2
emerge @world

recompile เต็มรูปแบบใน gentoo


ฉันค่อนข้างมั่นใจว่าความพร้อมใช้งานของข้ออ้างพรีโม่นี้เป็นเหตุผลหลักที่ทำให้ Gentoo ใช้งานได้เลย
แม็กเคเล็บ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.