木匣子

Web/Game/Programming/Life etc.

「攻略」JetBrains Quest S1E2

书接上回,续 JetBrains Quest S1E1 之后,@JetBrains 发布了挑战第二弹。废话少说,来看迷面:

Time for the next #JetBrainsQuest!
.spleh A+lrtC/dmC .thgis fo tuo si ti semitemos ,etihw si txet nehw sa drah kooL .tseretni wohs dluohs uoy ecalp a si ,dessecorp si xat hctuD erehw esac ehT .sedih tseuq fo txen eht erehw si ,deificeps era segaugnal cificeps-niamod tcudorp ehT
剧透警告!!!本文记录了挑战 II 的攻略过程。如果有兴趣自行通关,请暂时不要往下读!!!

Stage 1

这是一段倒置文,作为前端,用 Javascript 解之:

const secret = ".spleh A+lrtC/dmC .thgis fo tuo si ti semitemos ,etihw si txet nehw sa drah kooL .tseretni wohs dluohs uoy ecalp a si ,dessecorp si xat hctuD erehw esac ehT .sedih tseuq fo txen eht erehw si ,deificeps era segaugnal cificeps-niamod tcudorp ehT";
const message = secret.split('').reduceRight((memo, iter)=> memo + iter, '');

得到正文:

"The product domain-specific languages are specified, is where the next of quest hides. The case where Dutch tax is processed, is a place you should show interest. Look hard as when text is white, sometimes it is out of sight. Cmd/Ctrl+A helps."

大意是他们在一款能够创建 DSL 的产品的案例介绍文中隐藏了一些文字。白底白字,将文字全选后可以发现它们。

于是顺滕摸瓜,找到这款叫 MPS 的产品,在页面中找到 “Agile Law Execution Factory” 这个案例,打开下面的 Read MPS case study 链接。进入一个 PDF 文件。

在 PDF 的右上角空白处,可以选择一段看不见的文字:

MPS-case-study

复制粘贴得到:

This is our 20th year as a company,
we have shared numbers in our JetBrains
Annual report, sharing the section with
18,650 numbers will progress your quest.

Stage 2

通过 Google 我们可以找到 JetBrains 20 周年年报

www.jetbrains.com › company › annualreport
JetBrains 2019 Annual Highlights – Celebrating 20 Years!
---
Founded on a single product, our portfolio now boasts 25, including the JetBrains created programming language, Kotlin®, and the recently announced integrated ...

在这个页面的我没有找到确切的 18,650 这个数字,不过在 7th Annual Hackathon 这一小节有出现 18,000,点击这个小节的分享按钮,得到提示文字(也可以通过网页源码直接搜索 “quest” 找到):

I have found the JetBrains Quest! Sometimes you just need to look closely at the Haskell language, Hello,World! in the hackathon lego brainstorms project https://blog.jetbrains.com/blog/2019/11/22/jetbrains-7th-annual-hackathon/ #JetBrainsQuest

Stage 3

7th-Annual-Hackathon 页面,有一个介绍 Haskell 的漫画:

hello-wolrd-in-haskell

如果你仔细把黑板上的白字抄下来,可以得到:

d1D joo KN0w J378r41n2 12 4lw4y2 H1R1Ng? ch3ck Ou7 73h K4r33r2 P4g3 4nD 533 1f 7H3r3 12 4 J08 0R 4 KW35T. cH4Ll3n93 70 g0 fUr7h3r @ 13457!

这和我们在 S1E1 收到的邮件结尾的 hint 使用的一样的 Leet Code 黑客语。翻译过来就是:

Did you know JetBrains is always hiring? Check out the careers page and see if there is a job or a quest. Challenge to go further at least!

大意是他们的招聘页面有线索,找到并通过挑战。在首页的菜单栏中找到 Company > Career > Jobs,浏览岗位列表,发现最不寻常的一项:Fearless Quester。阅读招聘需求:

To progress with your quest what you’ll need:

* To check out what we have for game developers.
* Be geeky enough to remember how you used to cheat at Konami games.
* Try cheating on the page.

Stage 4

  • 找到 JetBrains 为游戏开发者提供的新产品 Solutions > Game Development
  • 使用著名的 Konami Code 激活彩蛋游戏
  • 通关游戏(可以尝试作弊)

在页面上依次按下 上上下下左右左右BA(注意在页面上,不是在地址栏)会出现一个弹砖块游戏。把所有砖块消掉后,可以看到兑奖地址。

当然,如果你不想玩游戏,可以在 Dev Tools 里一个叫 block-breaker.js 的源码中找到以下信息:

Congratulations you have beat the second quest.
Use the code key GamesAreFun on the quest page
https://jb.gg/quest to claim your prize.

领奖页面输入 GamesAreFun,领取奖励。又是 JetBrains 全家桶三个月的激活码,可以叠加到上一个挑战的奖励上,也可以送给朋友。

跟据邮件提示,之后还会有一个最终任务,会通过 twitter 发布。

A little @jetbrains bird will deliver the next clue – so do some birdwatching,

待续。