程序员 "专属"的新年祝福原来是这样的! (附中奖名单)

两味真火
 两味真火
发布于 2017年01月05日
收藏 10

本周日,来 OSC·年终盛典收割技术干货,get新技能!!>>>

程序员的新年祝福会是什么样的?我们共收到了97位 OSCer 的回复,以下为支持数排名前十的祝福语:

@yale8848(支持数:10)

document.write("<img sr='' title='祝福大家都有一个这样的键盘'/>")

(小编:捂脸,不过不知道触感怎么样呢~)

@wuyiw (支持数:4)

以下代码请使用 Chrome 在这个页面(链接)的 console 里面运行~

(function () {
  const numGraph       = {
          0: [1, 0, 3, 6, 9, 12, 13, 14, 11, 8, 5, 2],
          1: [2, 5, 8, 11, 14],
          2: [0, 1, 2, 5, 8, 7, 6, 9, 12, 13, 14],
          4: [0, 3, 6, 7, 2, 5, 8, 11, 14],
          7: [0, 1, 2, 5, 8, 11, 14]
        },
        nums           = '2017'.split('').map(num => numGraph[num]),
        blockSize      = nums.reduce(function (pv, cv) {
          return pv + cv.length
        }, 0),
        pixelPerLine   = 3,
        pixelPerColumn = 5,
        margin         = 30,
        pixelSize      = 40,
        blockWidth     = (margin * 2 + pixelSize * pixelPerLine) * nums.length,
        imgCls         = 'SmallPortrait',
        interval       = 1e2,
        urlBase        = location.href.replace(/\?.*/, ''),
        origin         = location.origin,
        domParser      = new DOMParser()
 
  let i = nthBlock = nthNum = nthPos = 0, container, pending = [], done = false, timer = null
  function advance() {
    ++i;
    nthBlock = Math.floor(i / blockSize);
    ++nthPos;
    if (nthPos >= nums[nthNum].length) {
      nthPos = 0;
      nthNum = (nthNum + 1) % nums.length
    }
  }
  function getCord() {
    return {
      top: (margin * 2 + pixelSize * pixelPerColumn) * nthBlock + margin + Math.floor(nums[nthNum][nthPos] / pixelPerLine) * pixelSize,
      left: (margin * 2 + pixelSize * pixelPerLine) * nthNum + margin + Math.floor(nums[nthNum][nthPos] % pixelPerLine) * pixelSize
    }
  }
 
  function pend(img) {
    if (!img.src) {
      img.src = origin + img.getAttribute('src')
    }
    pending.push(img)
  }
 
  function drawPixel() {
    if (pending.length) {
      let img    = pending.shift(),
          cord   = getCord(),
          holder = $('<div>', {
            style: `position: absolute; top: ${cord.top}px; left: ${cord.left}px; width: ${pixelSize}px; height: ${pixelSize}px; box-shadow: 0 0 10px 1px lightblue;`
          }).appendTo(container).get(0)
      img.scrollIntoViewIfNeeded()
      holder.scrollIntoViewIfNeeded()
      let imgRect    = img.getBoundingClientRect(),
          holderRect = holder.getBoundingClientRect()
      $('<img>', {
        src: img.src,
        style: `position: absolute; top: ${holder.style.top}; left: ${holder.style.left}; width: ${pixelSize}px; height: ${pixelSize}px; transition: .5s; transform: translate(${imgRect.left - holderRect.left}px, ${imgRect.top - holderRect.top}px);`
      })
        .on('load', function () {
          setTimeout(() => {
            this.style.transform = ''
          }, 17)
        }).appendTo(container)
      advance()
    } else if (done) {
      clearInterval(timer)
      alert("\u0032\u0030\u0031\u0037\u65b0\u5e74\u5feb\u4e50\u0021")
    }
  }
 
  function getImgs(query) {
    fetch(urlBase + query, { credentials: 'include' })
      .then(res => res.text())
      .then(res => {
        let doc = domParser.parseFromString(res, 'text/html')
        Array.from(doc.getElementsByClassName(imgCls)).forEach(pend)
        let next = doc.querySelector('.page.next a')
        if (next) {
          getImgs(next.getAttribute('href'));
        } else {
          done = true
        }
      })
  }
 
  function draw() {
    container = $('<div>', {
      style: 'position: relative;'
    }).appendTo($('<div>', {
      style: `position: fixed; box-sizing: border-box; top: 0; left: 0; overflow-x: hidden; width: 100vw; height: 100vh; padding: 20px calc((100% - ${blockWidth}px) / 2); text-align: center;   background: rgba(0,0,0,0.5); z-index: 1024;`
    }).appendTo(document.body))
 
    getImgs(document.querySelector('.page:not(.prev)').getAttribute('href')) // first page
 
    timer = setInterval(drawPixel, interval)
  }
 
  draw()
})()

(小编:超酷炫!不愧是我们的 JS 小王子,附效果图:

@阿信sxq(支持数:4)

</2016><2017>

(小编:感谢来自前端的祝福)

@xiaole…(支持数:3)

for (;;) { print("新年快乐"); }

(小编:满屏的祝福啊,嗯~那就希望新的一年里你能拥有一个更大的显示屏吧)

@乄草民丶(支持数:2)

System.out.println("祝大家新年快乐,新的一年代码无BUG,工作无通宵,工资涨涨涨");

(小编:同一个世界,同一个梦想!)

@孤独的小猪 (支持数:2)

为你编辑快乐的程序,给你安装如意的系统,帮你解开幸福的密码,与你下载好运的软件,新年到了,一切准备就绪,愿你新的一年心情无限好,笑口合不拢。

(小编:兄弟这才华不愁新的一年找不到女朋友啊~)

@机器猫123  (支持数:2)

if 新年

   spring start;

   print(“新年快乐,屌丝的一年又开始了!”)

else 

   summser,autumn,winter加班、加班、加班。。。。

end if

(小编:保重身体!)

@叶飞飘渺 (支持数:2)

快乐无需编译,幸福自会运行;美丽没有指令,人生也会计算;心情不必升级,自由自会扩展。2017年,你的幸福数据在加载

(小编也想来一个:开心快乐stack overflow;悲伤永远null pointer;对象不再404;前途无忧永无bug)

@罗磊-kael(支持数:2)

public static Happy newYear(everyone){

return everyone.doAnything();

}

(小编:原来您是一个心怀天下的“程序员”~)

@东风玖哥  (支持数:2)

祝大家代码bug越来越少,祝OSC越办越好

(小编:感谢各位 OSCer 们的支持!希望我们一起变得更好~)

以上获奖者将获得由华章图书、阿里巴巴提供的计算机图书一本,请及时将联系方式及喜欢的书籍留言@两味真火

留言格式
姓名:xxx
地址:xxxx省xxxx市xxxx路xxxx xxxx
手机:xxxxxxxxxxx
书籍:xxxxxx(可从以下 9 种书籍中任意挑选一本):

除了以上 10 位获得支持数最多的祝福语作者,还有 3 位用户也将获得我们准备的精美图书一本。他们的支持数虽然不多,但是同样诚意满满,来看看他们的祝福语:

@边疆01

public class 程序猿 {
     
    public static class 对象 extends Thread {
        @Override
        public void run() {
            System.out.println("码上有对象!!!");
        }
    }
     
    public static class 涨工资 implements Runnable {
        @Override
        public void run() {
            System.out.println("月月涨工资!!!");
        }
    }
     
    public static void main(String[] args) {
        System.out.println("Hello World ! Hello 2017!");
        System.out.println("祝程序猿:");
        new 对象.start();
        new Thread(new 涨工资).start();
    }
}

@MrCong

PHP: echo "2017健康快乐,Bug避退。";

PHP: echo "2017健康快乐,Bug避退。";

OC: NSLog('2017健康快乐,Bug避退。');

C: print("2017健康快乐,Bug避退。");

js: alert("2017健康快乐,Bug避退。");

@挖红薯

golang:fmt.Println("祝大家新年快乐!")

informix-4GL:DISPLAY "祝大家新年快乐!"

SQL:select '祝大家新年快乐!' from t

请以上幸运参与者将联系方式留言@两味真火,您将收到为我们精心挑选的精美图书!

当然仍然有很多带有满满节日气氛和程序员气息的祝福语,同样感谢没获奖的 OSCer 们的祝福,相信那么多的新年祝福就是你们新年最好的礼物了,同时我们也还会不定期给大家带来福利的哦~

祝大家新年快乐!

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:程序员 "专属"的新年祝福原来是这样的! (附中奖名单)
加载中

精彩评论

Tian_Ya
Tian_Ya
VM172:98 Uncaught TypeError: Cannot read property 'getAttribute' of null...
getImgs(document.querySelector('.page:not(.prev)').getAttribute('href')) // first page

最新评论(4

miss_all
miss_all

引用来自“土豆哥哥好”的评论

VM172:98 Uncaught TypeError: Cannot read property 'getAttribute' of null...
getImgs(document.querySelector('.page:not(.prev)').getAttribute('href')) // first page
同样遇到
Tian_Ya
Tian_Ya
VM172:98 Uncaught TypeError: Cannot read property 'getAttribute' of null...
getImgs(document.querySelector('.page:not(.prev)').getAttribute('href')) // first page
返回顶部
顶部