Làm cho nó giống như tôi đang làm việc


278

Thông thường, tôi thấy mình đang chạy một tập lệnh hoặc truy vấn sẽ mất một lượng thời gian đáng kể để chạy. Tôi có thể để kịch bản mở và tận hưởng sự chần chừ không có tội.

Bây giờ, điều gì sẽ xảy ra nếu tôi có thể viết một kịch bản dường như là một trong những kịch bản trên cho bất kỳ người xem nào, nhưng chỉ về ngoại hình? Tôi có thể đưa nó lên màn hình và tận hưởng những ngày livestream của mèo con trước khi bất cứ ai nhận ra rằng tất cả sự nghiêm khắc phức tạp trên màn hình không liên quan gì đến công việc thực tế của tôi.

Thử thách của bạn là viết kịch bản này cho tôi (vâng, tôi lười quá).

Một câu trả lời tốt sẽ:

  • Làm cho một cái gì đó xuất hiện trên màn hình trông giống như một kịch bản đang làm việc. "Màn hình" có thể là thiết bị đầu cuối, trình duyệt, v.v.
  • Khá nguyên bản (vâng, tất cả chúng ta đều đã thấy các chương trình thanh tiến trình không ngừng)
  • Kiểm tra chữ thảo sống sót bởi một người kỹ thuật

Một câu trả lời tồi sẽ:

  • Làm tôi bị sa thải
  • Làm lại một cái gì đó tất cả chúng ta đã được chuyển tiếp trong những năm 90

Một câu trả lời xuất sắc có thể:

  • Vượt qua một trong những điểm đạn xấu ở trên ( ví dụ )
  • Kiểm tra quan trọng sống sót
  • * thở hổn hển * thực sự làm một cái gì đó hữu ích hoặc hỗ trợ trong công việc của tôi trốn tránh

Chấp nhận sẽ dựa trên phiếu bầu, với tiền thưởng từ kết quả thực tế. Tôi thực sự sẽ chạy các tập lệnh này (Linux Mint 16) tại nơi làm việc khi màn hình của tôi hiển thị (các cuộc họp và tương tự) để xác định phát hiện. Nếu bất cứ ai nhận thấy rằng nó giả mạo, bạn sẽ ra khỏi chạy. Nếu ai đó nhận xét về mức độ tôi đang làm việc chăm chỉ, +5 điểm thưởng cho bạn.

"Hữu ích" trong trường hợp này có thể áp dụng cho bất kỳ lập trình viên nào, nhưng nếu bạn đang tìm kiếm sự tỏa sáng thêm đó trên quả táo bị ràng buộc bởi giáo viên của bạn, thì tôi là một webdev đầy đủ, hoạt động theo mã theo các thẻ của tôi .

Câu hỏi một phần lấy cảm hứng từ điều này .

Các kết quả

Thất vọng, tôi cũng không nhận được bất kỳ bình luận nào về các mục này. Tất cả đều tuyệt vời, vì vậy bạn là tất cả những người chiến thắng trong trái tim tôi. Tuy nhiên, Loktar có nhiều phiếu bầu nhất bởi một cú sút xa, vì vậy anh nhận được +15 từ chấp nhận. Chúc mừng!


6
Tiêu chí chiến thắng, cuộc thi nổi tiếng là gì?
Kyle Kanos

36
Vậy ... chuyện gì xảy ra nếu bạn kiểm tra một câu trả lời và nó thực sự khiến bạn bị sa thải?
Bob

54
Điều này cho tôi một ý tưởng cho một câu hỏi golf mã khác. "Làm cho nó giống như câu hỏi của tôi không nên bị giữ lại"
twiz

9
Chỉ cần viết một trong những chương trình này , và biên dịch !
ugoren

13
Tôi đã thấy một phiên bản làm lại thực sự tốt của phòng họp Tron Legacy trên Github vào một ngày khác: github.com/arscan/encom-boardroom
Paul Prestidge

Câu trả lời:


291

JavaScript

Vì vậy, tôi đã phát điên một chút với điều này. Tôi đã làm điều đó giữa các lần nghỉ khi làm việc trên GUI của mình để theo dõi IP bằng Visual Basic.

Bạn cũng có thể truy cập nó bằng cách truy cập vào miền cực kỳ nghiêm trọng mà tôi đã tạo cho nó tối nay để bạn có thể trông bận rộn ở bất cứ nơi nào Gui Hacker và ngã ba và tự tạo từ các nguồn sau

Về cơ bản, nếu bạn có hoạt động này, sẽ không có ai làm phiền bạn vì họ biết bạn đang làm một số việc nghiêm trọng.

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
Các anh chàng vẽ tranh / bảo trì nhận ra rằng tôi là một lập trình viên chứ không chỉ là một anh chàng nghe nhạc !! Tôi tự hỏi nếu điều này sẽ sống sót qua một cuộc kiểm tra của một anh chàng công nghệ: P
sabithpocker

17
Tôi muốn nó là trình bảo vệ màn hình mới của tôi !! Trong thực tế, làm thế nào bạn sẽ làm điều đó trong Ubuntu?

33
Tôi ngồi trong Thư viện Công cộng Toronto với cái này mở và tôi nhận thấy những người đứng sau tôi đang nhìn vào màn hình của tôi. Điều này có vẻ khá 'đáng sợ' đối với một anh chàng không tầm thường. Bạn có thể làm cho guihacker.com cho phép chúng tôi 2 thay đổi tiêu đề của trang thành bất cứ điều gì chúng tôi muốn và nếu chúng tôi có thể thêm vào các dòng của riêng mình sẽ xuất hiện trong văn bản màu xanh lá cây? Tôi đã suy nghĩ về việc tạo tiêu đề của trang 'Truy cập Internet Thư viện công cộng Toronto' và làm cho các dòng màu xanh lá cây nói 'Truy cập cơ sở dữ liệu bảo mật thư viện công cộng Toronto ..' 'Truy cập tên người dùng và mật khẩu ...' 'Truy cập được cấp ..' làm cho tôi gặp một số rắc rối nhưng nó sẽ rất vui
dùng2719875

37
Có phải cái này đã chạy trong tất cả 30 giây trước khi các nhà phát triển đồng nghiệp của tôi ghé qua để hỏi tôi đang hack cái gì. Tôi nghĩ đó được coi là một thành công, vì vậy +1
MrTheWalrus

10
"Báo cáo TPS" ... xuất sắc.
Dennis

111

Bash / coreutils

Giới thiệu trình giả lập biên dịch đầu tiên . Với chương trình này, bạn có thể có những cuộc đấu kiếm trên ghế văn phòng hoành tráng bất cứ lúc nào bạn muốn, thậm chí không cần viết bất kỳ mã nào!

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

Nó sử dụng dữ liệu từ /usr/includeđể tạo ra một nhật ký biên dịch trông như thật. Tôi đã quá lười biếng để đưa ra những cảnh báo ngẫu nhiên, vì vậy chỉ có một -wlá cờ.

Mẫu thử ngẫu nhiên:

gcc -w -m64 -pipe -msse -msse2 -msse3 -O1 -c libiptc / xtc Shared.c -o libiptc / xtc Shared.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-lib libc / ipt_kernel_headers.o libiptc / libip6tc.o libiptc / libiptc.o libiptc / libiptc.o libiptc / libiptc vì thế
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-shared e2p / e2p.o -o e2p.so
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / spice-widget-enums.c -o spice-client-gtk-2.0 / spice-widget-enums.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / spice-Grab resultence.c -o spice-client-gtk-2.0 / spice-Grab resultence.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 spice-client-gtk-2.0 / spice-widget.o
gcc -w -pipe -O0 -msse -msse2 -m64 -c spice-client-gtk-2.0 / usb-device-widget.c -o spice-client-gtk-2.0 / usb-device-widget.o
gcc -w -pipe -m64 -msse -msse2 -O1-share spice-client-gtk-2.0 / spice-Grab resultence.o spice-client-gtk-2.0 / spice-gtk-session.o spice-client-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 -pipe -m64 -msse -msse2 -msse3 -msse4_1 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -c cairomm-1.0 / cairomm / path.
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 / font
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 / thạch anh
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 / win_
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
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
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 / bối cảnh
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 /
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
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
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
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 / matrix
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 / thạch
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 / ngoại lệ
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 / thiết bị
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
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-xb
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 / font.
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
gcc -w -O0 -pipe -m64 -D_GNU_SOURCE = 1 -D_REENTRANT -D_POSIX_C_SOURCE = 200112L -msse -msse2 -msse3 -msse4_1-cairomm-1.0 / cairomm / cairomm /cairomm/device.o cairomm-1.0 / cairomm / enums.o cairomm-1.0 / cairomm / ex.o cairomm-1.0 / cairomm / fontface.o cairomm-1.0 / cairomm / fontoptions.o cairomm-1.0 / cairomm 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 / refptr.o cairomm / area.o cairomm-1.0 / cairomm / scaledfont.o cairomm-1.0 / cairomm / Surface.o cairomm-1.0 / cairomm / type.o cairomm-1.0 / cairomm / win32_font.o cairomm-1.0 / cairomm 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.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

4
Không xấu cả! Một cái gì đó không cảm thấy hoàn toàn đúng về điều này (có phải là HD giữ im lặng hoàn toàn không?) Nhưng với người xem không biết thì rất khó có thể gây ra sự nghi ngờ. Mặc dù ... cái gì, nó đang biên dịch libdrm? Và sys/wait.o?? Cái gì ...
đã ngừng quay ngược chiều

27
@leftaroundabout Nói rằng bạn có SSD.
mniip

36
Để làm cho nó xác thực hơn, bạn nên xuất cảnh báo trình biên dịch giả nhiều lần trên mỗi dòng gcc. :)
monocell

3
Bạn có thể có thể sử dụng pkg-config để đưa ra các cờ gcc giả thực tế hơn.
Brendan Long

3
@WChargin sẽ không kích hoạt HD.
Thorbjørn Ravn Andersen

106

Bash

Hiển thị vô cùng các giá trị thập lục phân ngẫu nhiên, với một số trong số chúng được tô sáng để tạo cảm giác như bạn đang thực hiện tìm kiếm phức tạp trong dữ liệu thô.

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

nhập mô tả hình ảnh ở đây


6
Oooh, tôi thích cái này!
Một số chú mèo

4
(Gấu với tôi, mới để bash) nhưng khi chạy dòng này, (Mac OSX, thiết bị đầu cuối) Tôi nhận được kết quả này trên một vòng lặp:od: illegal option -- w usage: od [-aBbcDdeFfHhIiLlOosvXx] [-A base] [-j skip] [-N length] [-t type] [[+]offset[.][Bb]] [file ...]
Sterling Archer

2
Có vẻ như phiên bản của odbạn không hỗ trợ -wtùy chọn. Bạn có thể bỏ tùy chọn này, ở đây chỉ để hiển thị nhiều cột dữ liệu hơn, để lấp đầy màn hình hơn một chút.
barjak

8
Cá nhân, tôi thích điều này với sự sleep 0.5thay đổi thành sleep.$[$RANDOM % 10]. Nó làm cho nó một chút giật, và giống như một tìm kiếm thực sự. Tôi thích nó, mặc dù!
undergroundmonorail

4
Nhắc nhở tôi về việc tìm kiếm không bao giờ kết thúc cho "ca fe":cat /dev/random | hexdump | grep "ca fe"
daviewales

102

Một bản dựng rất dài:

emerge openoffice

48
; _;
mniip

3
Dài hơn Chromium?
nyuszika7h

6
Vấn đề với việc biên dịch một dự án thực sự là nó sẽ dừng lại nếu xảy ra lỗi. Có lẽ chúng ta nên đặt điều này trong một vòng lặp vô hạn.
Akira Yamamoto

3
Chúng ta có xuất hiện trong Linux Mint không?
Akira Yamamoto

3
Trên các hệ thống .deb như Ubuntu và Mint, bạn muốn sudo apt-get build-dep libreoffice; apt-get source libreoffice; cd libreoffice*; while :; do nice dpkg-buildpackage -rfakeroot; done(Bạn sẽ phải giữ trẻ trong lần chạy đầu tiên, ít nhất là cho đến khi quá trình biên dịch thực sự bắt đầu. Các lần chạy tiếp theo chỉ cần whilevòng lặp.)
Adam Katz

55

Hồng ngọc

Điều này sẽ:

  1. Lấy mã ngẫu nhiên từ trang web này. xem lại mã (để dễ đọc hơn, mã được viết tốt)
  2. Làm cho nó trông giống như bạn đang gõ mã này.
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

Đây là kịch bản này dựa trên một mã được lấy từ đây :

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

Đây là cách nó trông: Mã


11
Điều gì sẽ xảy ra nếu mã mà nó nhận được là trong Brainf ** k, Golfscript hoặc J. Điều đó sẽ gây ra một số nghi ngờ.
user80551

39
Cuối cùng, câu trả lời được đặt cẩn thận của tôi có thêm tất cả các khoảng lùi xung quanh trả tiền
PlasmaHH

1
Có lẽ stackoverflow sẽ tốt hơn?
PyRulez

3
Tốc độ gõ của mỗi người trông thực tế hơn nếu tôi chọn ngẫu nhiên tốc độ (và làm cho nó nhanh hơn) bằng cách thay đổi sleepdòng thành sleep rand(10).to_f / 30.
Rory O'Kane

3
Tôi nghĩ rằng sử dụng Code Code code trên Code Golf là hoàn hảo. Tôi đã luôn nghĩ về Code Golf như một cặp song sinh độc ác của Code Review và tôi yêu cả hai ...
trichoplax

52

Hãy đi với một tập lệnh bash đơn giản khiến bạn trông có vẻ là tin tặc bằng cách in nội dung của mỗi tệp được xác định là văn bản trong / var / log / line theo dòng, với sự chậm trễ ngẫu nhiên để làm cho nó trông giống như những điều chuyên sâu đang xảy ra. Tùy thuộc vào các tệp mà nó truy cập, nó có thể cung cấp một số đầu ra khá thú vị.

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

Hãy chắc chắn chủ đề thiết bị đầu cuối của bạn trông có vẻ hacker. Dưới đây là một số ví dụ xấu (không biết ý nghĩa của những thứ này là gì, nhưng có vẻ như là tin tặc):

Hình ảnh, tưởng tượng Hình ảnh, tưởng tượng


3
Làm rất tốt Ảnh chụp màn hình ví dụ rất tuyệt
Một số chú mèo

37
Bạn có biết rằng các khóa riêng của bạn nằm trên các ảnh chụp màn hình này không?
Hubert OG

27
Haha, đã nhận được! ;-)
Hubert OG

4
(Nhưng nghiêm túc, tôi đã không đọc những ảnh chụp màn hình đó vì vậy tôi không biết những gì thực sự ở đó.)
Hubert OG

3
@HubertOG Wow, bạn gần như khiến tôi đau tim ...; PI không thấy điều đó ở bất cứ đâu nên tôi nghĩ rằng tôi đang phát điên: O
Jwosty

49

Bash: Cam kết vô tận

Một vấn đề với máy tính ngày nay là chúng khá nhanh, do đó, ngay cả các tác vụ biên dịch cuối cùng cũng hoàn thành. Ngoài ra, với một kịch bản chạy trong một thời gian dài, bạn có thể lập luận rằng thực sự có thể tiếp tục làm việc với một thứ khác trong khi kịch bản chạy.

Để giải quyết điều này, chúng tôi có chương trình sau đây. Chỉ cần học cách gõ 'y' hoặc 'n' một cách ngẫu nhiên mỗi giờ và sau đó.

Tất nhiên bạn cần một repo git với một số nội dung mới nhưng giả sử bạn thỉnh thoảng làm công việc thực tế không phải là vấn đề.

#!/bin/bash

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

12
Tôi cảm thấy bị làm phiền nghiêm trọng nhất bởi mục CG này ... Đó là +1 hoặc -1, nhưng tôi vẫn không biết cái nào!
vaxquis

37

Bash

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

Điều này sẽ tiếp tục cập nhật repos của bạn. Nếu một số thông báo, chỉ cần nói rằng bạn đã thêm một repo mới cho một chương trình mới và bạn đang thử nghiệm các chương trình khác nhau. Nó không thực sự giống như giả mạo một kịch bản, mà là một lệnh.

LƯU Ý: Tôi không chấp nhận việc không hiệu quả trong công việc, nhưng tôi thích các thí nghiệm. Do đó, tôi khuyên bạn nên sử dụng ứng dụng này để có hiệu quả bí mật.


5
Tốt, nhưng coi chừng chức năng đệ quy đó.
Chấn thương kỹ thuật số

1
Trông như quả bom ngã ba !!
Avinash R

2
@AvinashR Không hẳn, không có ngã ba.
PyRulez

43
Máy chủ gương ghét bạn bây giờ.
Caleb

9
"Không hẳn, không có ngã ba." Vì vậy, bạn nói, chỉ có bom? :-)
celtschk

28

Mạng thần kinh C ++

BIÊN TẬP

Đáng buồn là tôi đã tối ưu hóa mã này :( làm cho nó nhanh hơn 2000 lần ... Mã kế thừa vẫn hoàn hảo để lãng phí thời gian!

Nguyên

Tôi thực sự bắt đầu một dự án trong mạng lưới thần kinh tích chập hoàn hảo cho việc này! Mã nguồn và tài liệu là trên github . Bước đầu tiên là tạo một mạng mới.

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

Bây giờ chúng ta có một mạng với 300 nơ-ron và 1.250.000 khớp thần kinh, hãy lưu nó vào một tệp để đảm bảo chúng ta không mất bất kỳ tiến triển nào chúng ta thực hiện với mạng.

neuralNetwork.SaveToFile("test2.cnn");

Điều đó tạo ra một tệp văn bản 68 MB và hơn một vài giờ làm việc thoải mái. Bây giờ, hãy vui vẻ làm mọi thứ với nó! Tôi sẽ tạo một đầu vào ngẫu nhiên và bắt đầu phân biệt nó.

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

Đó là một đầu vào khá nhỏ cho một hình ảnh, nhưng chúng tôi chỉ chứng minh rằng mạng có thể làm một cái gì đó. Bước tiếp theo là phân biệt đối xử với nó!

Layer output = neuralNetwork.Discriminate();

Điều này thậm chí còn chưa hoàn thành đối với tôi và nó đã hoạt động được hơn 2 ngày! Sau đó, một khi chúng ta có được đầu ra đó, hãy chạy ngược lại chỉ để giải trí.

Layer generatedOutput = neuralNetwork.Generate(output);

Đây là tất cả chỉ để chứng minh rằng API hoạt động, chưa có kế hoạch cho nó. Bước này chưa được chạy cho tôi và tôi đã chờ đợi một thời gian. Hơn 2 ngày bị đốt cháy, và đó là một ước tính sơ bộ trong thử nghiệm hiện tại của tôi. Điều này khá phức tạp và bạn sẽ làm việc chăm chỉ trong một hoặc hai ngày để thực hiện nó, nhưng sau đó bạn có thể không bao giờ phải làm việc nữa!

Lưu ý: Nếu bạn không bao giờ, muốn làm việc lại, hãy thử đào tạo mạng

neuralNetwork.LearnCurrentInput();

Tôi thậm chí không có thời gian để lãng phí cho cái này!

Nếu bạn muốn thể hiện tất cả dữ liệu đang xảy ra, hãy thêm một số cuộc gọi vào các chức năng chỉ để hiển thị những gì đang xảy ra

Nhà xây dựng mới

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 mới

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

Bạn sẽ nhận được nhiều đầu ra trên bảng điều khiển của bạn bây giờ.


4
+1 cho bối cảnh thực tế là tốt. Thú vị :)
George

1
Hahahaha tên viết tắt của chữ "CNN"
Nic Hartley

26

Con trăn 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)

Nó đưa ra một loạt các dòng JS và HTML giả, với thời gian "tải" giả (độ trễ) để làm cho nó có vẻ thực tế hơn.

Điều này có thể và sẽ được mở rộng khi rất nhiều! (chương trình cơ bản là có; tôi chỉ cần thêm nhiều nội dung bây giờ)


Đây là một "trang" mẫu mà nó tạo ra (đây thực sự là từ một phiên bản mã cũ; tôi sẽ cập nhật nó với mã mới khi tôi hoàn thành):

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
Tuyệt vời, không thể chờ đợi để xem những gì bạn thêm vào nó!
Một số chú mèo

heh yeah cái này khá là đá đít Tâm trí tôi phát điên với những điều tuyệt vời mà bạn có thể làm với các thế hệ
Loktar

Không chỉ python3, 2.7 cũng ổn
Hannes Karppila

1
Bạn đã làm rất tốt. Trông khá thực tế.
qwr

24

Node.js + BDD

Trông giống như một dòng vô tận các bài kiểm tra kiểu BDD đang chạy. Không ai có thể đổ lỗi cho bạn vì đã chạy thử nghiệm!

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

Cập nhật

Tôi nhận ra rằng nó sẽ có vẻ đáng ngờ nếu tất cả các bài kiểm tra của bạn vượt qua, vì vậy tôi đã cập nhật nó để bao gồm một số bài kiểm tra thất bại - hoàn thành với Cho-Khi-Thens.

Và vâng, tôi biết rằng tất cả các thất bại đều có cùng một thông điệp. Bạn thực sự cần phải sửa liên kết đăng xuất đó!

nhập mô tả hình ảnh ở đây


2
Rất thông minh, tôi nhận được điểm thưởng vì đảm bảo rằng mã của tôi đã được kiểm tra! Không thể quá cẩn thận
Một số chú mèo con

23

C # (Windows)

Tôi giới thiệu với bạn, Memtest86 Simulator 2014 hoàn toàn mới ! (Bởi vì chạy Memtest86 trong Windows có ý nghĩa hoàn toàn)

Hoàn thành với thanh tiến trình làm việc và chỉ báo mẫu!

Mã này sử dụng rộng rãi lớp Console, theo như tôi biết, nó chỉ có sẵn trên Windows. Ngoài ra, tôi không thể tìm ra cách hiển thị tên / tần số bộ xử lý thực và bộ nhớ khả dụng, vì vậy chúng được mã hóa cứng.

Ảnh chụp màn hình: nhập mô tả hình ảnh ở đây

BIÊN TẬP

Để lấy thông tin bộ xử lý, bạn có thể sử dụng không gian tên Microsoft.Win32 và lớp 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");
            }
        }

Mã (xấu, tôi biết):

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
Tại sao không chạy Memtest86? "Tôi nghĩ rằng tôi có một số vấn đề về phần cứng ở đây, tôi đoán tôi sẽ phải giải quyết cho đến khi nó hoàn thành"
MadTux

20
@MadTux 'Nếu bạn phải khởi động vào Memtest, có nghĩa là không có hình ảnh con mèo.
Schilcote

1
System.Console Hoạt động trên Mono, tôi nghĩ bạn chỉ cần điều chỉnh mã cho kích thước cửa sổ bảng điều khiển tùy ý
NothingsImpossible

8
Bạn không thể chạy Memtest86 trong VM?
Cole Johnson

3
Tôi yêu Memtest trong một ý tưởng VM.
Giăng


14

À

Bạn giả vờ gõ trong khi tập lệnh tạo ra một loạt các trình truy cập và trình biến đổi trong JavaScript. Đảm bảo rằng một IDE (tôi đã thử nghiệm điều này trên Notepad ++) là cửa sổ hoạt động.

Chỉ định danh sách các biến và tên lớp nếu bạn muốn. Tôi chỉ sử dụng những gì đã có trong window.location.

Nhấn esc để thoát.

Nhấn 0 trên bàn phím số của bạn để tạm dừng khi ai đó cố gắng nói chuyện với bạn.

Nhấn ctrl + w (w là viết tắt của công việc) để bắt đầu

^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

Bash

Bỏ một khối bộ nhớ vật lý ngẫu nhiên và xem xét nội dung. Sẽ cần phải được root cho việc này. Theo mặc định, chỉ có 1 MB bộ nhớ khả dụng. ddkích thước khối mặc định là 512 byte, có thể thay đổi bằng tùy chọn ibs=bytesnhưng hãy nhớ tùy chọn khác chọn skip=$offsetmột khối ngẫu nhiên. Đầu ra từ ddđược gửi qua trđể loại bỏ các ký tự không phải ASCII; chỉ có kết quả duy nhất 2 ký tự trở lên được đánh giá.

Mỗi chuỗi tìm thấy được so sánh với một từ điển. Nếu không tìm thấy kết quả khớp, nó sẽ cố giải mã thành base64. Cuối cùng, tất cả các chuỗi đánh giá được trả về.

Có một số tùy chọn phụ thuộc nền tảng khác cần chú ý, chẳng hạn như vị trí của tệp từ điển (/ usr / share / dict / words), cho dù giấc ngủ có chấp nhận đầu vào dấu phẩy động hay không và nếu base64có.

Ngoài ra, hãy lưu ý rằng các ddsố liệu thống kê đầu ra trên hoạt động được thực hiện cho thiết bị lỗi chuẩn, được chuyển thành / dev / null. Nếu có lỗi gì đó khủng khiếp (bạn đang truy cập / dev / mem ...) thì đầu ra stderr sẽ không hiển thị.

Nhìn chung, không hữu ích lắm, nhưng tôi đã học được một chút về bộ nhớ linux và viết kịch bản này hóa ra rất vui.

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

Đôi khi không có đầu ra thú vị (tất cả các số 0). Đôi khi chỉ có một vài chuỗi:

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

Đôi khi thực sự có một cái gì đó con người có thể đọc được trong bộ nhớ (trước khi tôi đăng nhập khối bù):

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

Và một lần chạy mẫu cuối cùng hiển thị đầu vào grep không đúng định dạng, các lần truy cập từ điển và giải mã Base64 thành công (trước khi đăng nhập lại khối bù):

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

Làm thế nào để bạn chạy này? Tôi đổ nó vào script.sh, làm một chmod +xcái, nhưng nó chỉ thoát ra. sudocũng không giúp được gì
Octavia Togami

Âm thanh như mem=dòng không trả lại bất cứ điều gì. Bạn sẽ phải kiểm tra và đảm bảo rằng mỗi phần của lệnh giữa các đường ống đang thực sự trả lại một cái gì đó.

Được rồi, tôi sẽ làm điều đó.
Octavia Togami

Điều này chỉ chạy trong 5 giây lần đầu tiên và được in như 12 dòng, sau đó như 0,1 giây mỗi lần tiếp theo mà không có đầu ra.
Mike

13

Batch Windows

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

Đây là một kịch bản trò đùa mà tôi đã giữ với tôi trong nhiều năm để làm cho nó trông giống như một bộ phim về hacker của thập niên 90. Tôi thường sử dụng nó trong khi kết nối từ xa với máy tính để làm mọi người hoảng sợ.


2
Anh ta đang tải virus lên toàn bộ hệ thống!
qwr

12

Bash

Việc tìm kiếm không bao giờ kết thúc cho các quán cà phê.

Tôi đã tìm thấy điều này trên web từ lâu:

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

Thay vào đó hãy thử sử dụng urandom.
Alice Ryhl

À ... tôi đã thử nó trên máy Mac, và máy Mac có cả randomurandom.
daviewales

5
/dev/randomtồn tại, nhưng nó dự định sẽ an toàn hơn là /dev/urandomchỉ tạo số nếu có sẵn entropy. Một khi bạn chạy ra ngoài, nó dừng lại. /dev/urandomkhông làm điều đó, và sẽ không bao giờ ngừng xuất ra.
undergroundmonorail

Tại sao nó không bao giờ kết thúc? Tôi cảm thấy ngu ngốc, lần thứ hai ngày hôm nay.
Daniel W.

1
/dev/urandomlà một 'tập tin' liên tục cung cấp số ngẫu nhiên cat. catsau đó chuyển những thứ này sang hexdump, v.v.
daviewales

11

Python 2.7

Bộ thử nghiệm vô tận

"Chạy" một bộ "Kiểm tra đơn vị" trên tất cả các tệp trong cây thư mục của bạn. Đi qua tất cả các thư mục con. Bắt đầu khi nó kết thúc.

In trạng thái đang chạy:

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

...

Các tính năng làm cho nó phức tạp hơn mức cần thiết và hy vọng thực tế hơn:

  • Số lượng thử nghiệm và thời gian thử nghiệm tỷ lệ thuận với kích thước tệp.
  • Biến phần mở rộng tập tin mã nguồn thành những phần đã biết. Sửa đổi CodeExtensionsđể thêm các loại được biết đến nhiều hơn.
    • Chọn tiện ích mở rộng mới dựa trên tần suất của các tệp ngôn ngữ thực tế được nhìn thấy, do đó bạn sẽ không thấy kiểm tra mã Python nếu ổ cứng của bạn chứa đầy Ruby.
  • Bỏ qua các tệp có hàng đầu . Không có quà tặng như "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
Bạn cũng có thể chạy các bài kiểm tra hồi quy Python, được gói cùng với hầu hết các bản cài đặt Python.
nneonneo

Nhưng cuối cùng kết thúc.
HỎI

2
sau đó bạn có thể chạy chúng ... trong một vòng lặp!
nneonneo

1
Tôi cũng nghĩ rằng việc kiểm tra các tệp có tên liên quan đến các dự án của bạn ít nghi ngờ hơn là kiểm tra nguồn Python. Tôi đoán hầu hết chúng ta không bảo trì Python một cách chuyên nghiệp ...
HỎI

11

Java + ổi 16 (ổi không cần thiết lắm, nhưng nó làm cho một số thứ bớt khó chịu hơn khi viết).

Được rồi, bạn đang phải làm việc? Làm thế nào về một chương trình thực sự viết mã Java thực sự, nó thực sự biên dịch (mặc dù nó không làm được gì nhiều).

Thật khó để thể hiện hoạt hình, nhưng chương trình này viết chương trình Java bằng cách sử dụng từ điển mặc định (250 từ tiếng Anh thông dụng) hoặc tệp được phân tách bằng dòng mới (được lấy làm đối số dòng lệnh) và nhập nó vào một ký tự điều khiển một lần ở tốc độ dường như của con người . Hãy chắc chắn để tự chạy nó bởi vì bài đăng này không làm điều đó công lý. Khi nó kết thúc, nó đợi 1 phút, sau đó in rất nhiều dòng trống vào bảng điều khiển và bắt đầu lại. Tôi đã cố gắng viết nó để làm cho các thông số khác nhau có thể điều chỉnh hợp lý.

Ngoài ra, thông thường tôi sẽ đặt nó vào nhiều hơn một tệp, nhưng để dễ chạy hơn, tôi đã làm mờ tất cả các lớp với nhau.

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

Đầu ra chương trình mẫu (chỉ một chương trình)

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

Một đầu ra mẫu khác:

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
Bạn đã tạo ra một máy in tiền hoàn toàn tự động cho bất kỳ ai vẫn được trả tiền theo dòng mã - công việc tuyệt vời!
Philipp

9

bash

Đưa ra một số nhận xét từ các tệp nguồn ngẫu nhiên theo các khoảng thời gian ngẫu nhiên, theo sau là một thanh tiến trình không làm gì được tạo ngẫu nhiên.

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

Đầu ra:

# /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
Tài giỏi! Đã muộn một chút để nhận được nhiều sự chú ý hơn, nhưng hãy nhận lấy năm điểm cao từ tôi.
Vài chú mèo con

@SomeKittens Các thiên tài thực sự của kịch bản này là làm việc trên nó trông thậm chí nhiều hơn như công việc thực tế. ; D
Sammitch

7

Hình thức Rync

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

rsync - một công cụ sao chép tệp nhanh, linh hoạt, từ xa (và cục bộ) ... với -n thực hiện một hoạt động khô khan , chỉ cố gắng làm, không thực sự làm và hiển thị những gì xảy ra.
Trong trường hợp này, hãy thử kiểm tra xem có cập nhật tất cả tệp của thư mục chính của bạn không (và thư mục con ).
Nếu bạn có quyền truy cập root tất nhiên, bạn có thể chạy nó trên một phần lớn hơn của hệ thống tập tin của bạn.

Ghi chú:

  1. Nếu HISTCONTROL=ignorebothhoặc ít nhất là HISTCONTROL=ignorespacetrong phiên bash của bạn, lịch sử bash của bạn sẽ không nhớ lệnh đó nếu bạn viết nó với một khoảng trắng trước đó. (Bạn không thể đẩy lên và nhìn thấy nó trên màn hình, trong nhật ký lịch sử ).
  2. | sed s/"(DRY RUN)"/""/gsẽ dẫn đầu ra qua sedđó sẽ xóa (DRY RUN)văn bản ở cuối đầu ra rsync. Nếu một chuyên gia kiểm tra bạn có thể nói bạn thực sự làm điều đó, không chỉ kiểm tra.
  3. -avrIcbạn có thể thay đổi các tùy chọn đó, kiểm tra man rsync, nhưng không bao giờ xóa-n , nếu không bạn sẽ gặp vấn đề nghiêm trọng, thậm chí nhiều hơn nếu bạn chạy bằng root ... 8-O!

6

Maven dưới bash

Maven hoàn hảo cho loại nhiệm vụ này ;-)

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

6

Rắn hổ mang

Điều này mở ra một cửa sổ giao diện điều khiển vòng lặp thông qua các đối tượng giả mạo và các loại khác nhau, tăng dần trong các lượt đi và tiến bộ cho mỗi lần vượt qua. Nó chờ đợi một thời gian ngẫu nhiên nhỏ mỗi lần tăng, để mô phỏng độ trễ tính toán thực tế.

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
Bạn đã có cả ngày cuối tuần để làm việc này, vì vậy hãy dành thời gian của bạn.
Một số chú mèo

1
Ngôn ngữ Cobra này là gì, nó trông giống như đứa con hoang của Python và C #, haha ​​(nhìn nó có vẻ như có một số tính năng thú vị), +1
Thomas

1
@Thomas Đối với hầu hết các phần, đó là C # (hiện không có LINQ) sử dụng cú pháp Python-esque. Và một trong những trình biên dịch mặc định hữu ích nhất mà tôi từng có khi làm việc cùng.
Οurous

Vì vậy, bạn đã bao giờ kết thúc hoàn thành mã này?
rayryeng

4

Tôi đã viết một kịch bản python ngu ngốc để làm điều này một lần. Được gọi là "Chương trình Giới thiệu" ... Tôi không chắc nó có sức thuyết phục nhưng tôi chỉ mất khoảng 10 phút. Nó chỉ đưa ra những câu ngẫu nhiên mô tả những gì nó được cho là đang làm ... Tôi có thể đã chọn những từ tốt hơn cho nó có vẻ thuyết phục hơn nhưng tôi chưa bao giờ thực sự sử dụng nó đúng cách. Tôi đoán nếu ai đó muốn sử dụng nó, họ có thể chỉnh sửa nó và thêm từ của riêng họ vào danh sách ... Mặc dù vậy, người hâm mộ của Sim City có thể nhận thấy điều gì đó quen thuộc. : 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
Có lẽ bạn đang sử dụng Python 3? Hãy thử thêm dấu ngoặc đơn xung quanh các câu lệnh in như thế này : print( ... ).
daviewales

1
@daviewales ninja'd: P
Luke

1
@Luke Tôi vừa cài đặt Python 3.4.1cho Windows. Tôi không thể lập trình bằng Python, nhưng tôi quan tâm đến chương trình nhỏ của bạn ...
Mathlight

1
@Mathlight chuẩn bị bị áp đảo. : P
Luke

1
@luke, nó đang hoạt động. Và tôi rất ấn tượng ^ _ ^
Mathlight

4

Cái này thì sao? Nó sẽ tải xuống dữ liệu HTML của codegolf cứ sau 1 giây. Vì vậy, dữ liệu sẽ tiếp tục thay đổi miễn là có câu hỏi mới hơn. Đồng thời, nó cũng sẽ xuất hiện như thể bạn đang tải xuống một số dữ liệu quan trọng từ một trang web.

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


2

Đây là Mô phỏng trình biên dịch C ++ (viết bằng 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

Mẻ

Đặt trong một thư mục có rất nhiều tập tin. Nếu nó cuộn đủ nhanh, sẽ không ai nghi ngờ gì cả.

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

2
emerge @world

biên dịch lại đầy đủ trên gentoo


Tôi khá chắc chắn rằng sự sẵn có của lý do nguyên thủy này là lý do hàng đầu để chạy Gentoo.
Caleb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.