Chaospace

Reshape the world by engineering chaos


  • 首页

  • 分类

  • 归档

  • 站点地图

  • 公益 404

  • 搜索

开源软件维护者的责任

发表于 2015-11-07 | 分类于 开源

开始清理公司的资料了,发现几封很老的邮件。事情的起因是: 2.6.32-rc6 的时候,一个用户发现了内核无线网络驱动中的 Bug,他通过二分搜索找到导致问题的修改并发邮件请 Linus 取消修改。这时候无线子系统的维护者有点不乐意,他发文希望以后这种邮件直接发给维护者。 Linus 的回答以 “You’re full of sh*t” 开始,言辞犀利,直中要害。面对世界上最优秀的程序员,Linus 能够主持 Linux 开发这么多年,不是盖得。

On Wed, 4 Nov 2009, Marcel Holtmann wrote:

I have to agree here. It happens why too often lately. And this needs to
stop. Otherwise why bother with subsystem maintainers? Just send
everything to Linus directly and have him to review every line of code.
You’re full of sh*t.

Bugs are bugs. They should be reverted, and the people who introduced them
should be SHAMED if the thing was introduced after the merge window.

I don’t need to review any line of code at all - a revert is a revert.
There’s not a lot of review that needs, just a very obvious “that bug
causes more problems than it fixed”.

And yes, I’m upset, because in this case I saw one of the earlier bisect
results too, and I did actually spend time debugging it and sending
Johannes the information, because he basically ignored the bisect result.

That makes me upset. The fact that somebody has bisected the problem means
that you should damn well thank them, not complain. And look at the -rc
number, look at the commit - and you should realize that “please revert”
is OBVIOUSLY the right thing to say to something that introduces problems
after -rc5.

The fact is, maintainer ship does not mean ownership. It means that you
should be responsible for the code, and you get credit for it, but if
problems happen you do NOT “own” it. Not at all.

If you don’t understand that, you shouldn’t be a maintainer.

And if it’s not obvious - I’m really upset that people are complaining
about “please revert” for this case. YOU were wrong.

Linus==================================================

On Tue, 3 Nov 2009, Johannes Berg wrote:

I’ll rant a bit too – I’ve been very annoyed by this many times. Note
this isn’t really against you (Dmitry) in particular, just another
case … but it does tick me off that many times when somebody manages
to blame a failure on a specific commit the first thing they do is ask
somebody way “above” (in terms of patch flow into mainline) the person
writing the patch (like Linus here) to revert it.
Johannes, you’re simply WRONG.

At this point (ie way after -rc1), “just revert it” really is the right
thing to do. The commit was shit. It caused more problems than it fixed. I
should have reverted it immediately when that was clear. I didn’t, and
because I didn’t, other people then had to waste time bisecting it.

So instead of complaining about other people, I would suggest you look
yourself in the mirror. Stop thinking you “own” code. If you wrote a buggy
commit, and somebody else went through the work to bisect it, you should
(a) expect it to be reverted
(b) thank the person for finding the bug YOU introduced.
(c) be ashamed of YOURSELF
instead of whining about it as if we should thank you!

Linus

中科红旗倒了

发表于 2015-11-07 | 分类于 开源

中科红旗倒闭了,有人拍手称快,有人扼腕叹息。我倒是觉得,这种开源世界的封闭怪胎,这种靠国家拨款才能生存的机构,存在与否,又有什么关系呢。

中科红旗 - 开源的幌子

中科红旗倒下,能说明 Linux 在中国混不开了吗?显然不是,因为中科红旗,完全是按封闭的手法运营一个开放的科技。这么多年下来,红旗 Linux 没有为开源界做出过什么贡献。照抄国外的发行版,自己做做汉化翻译。而且这些翻译也没有提交到上游,完全是自私自立的玩法。这样的公司,能有什么竞争力?

技术前沿

开源世界不缺少优秀的公司,Red Hat 每年的净利润都大幅增长。而这些优秀公司都有一个共同的特点:他们都是主营技术的重要贡献者,参与者。只有这样的公司,才能一直走在技术的最前沿。那些把修改留在自己手里的公司很快发现,保持私有代码的同步更新就已经耗费了大量的精力。之前在 VIA 工作的时候,我对这一点也是深有体会。因为 Linux Driver 没有提交到上游,每次内核有变动,都需要重新适配,针对每一个发行版打包。历史的包袱会越来越重,到最后不堪重负,败下阵来。

代码不再是核心竞争力

曾几何时,源代码是很多公司的核心机密。擅自将代码拷贝出去会被立即开除,甚至关入监狱。那是一个代码稀缺的时代。随着一代代编程语言的兴起和衰落,很多公司逐步发现,其实代码不重要,而代码中的逻辑和知识才是核心竞争力。增强这种竞争力的手段,不是把代码放入保险箱,而是公开代码,让更多的人了解它,改进它。

靠申请经费活着的公司,其实已经死了

真的有实力,有竞争力,投资者还是能找到的。中国大部分的科研院所都在捣浆糊,做学问不行,骗经费在行。中科红旗,其实算比较好的,至少有东西可以用。不像有些人编纂了几组数据就到处骗人。

红旗 Linux,就像红旗汽车一样,是闭关锁国的产物。中国人要用一个旗帜,证明自己行,证明自己可以做汽车,可以做 Linux 发行版。从这个意义上说,中科红旗已经完成了其历史使命。

nodejs nvm

发表于 2015-11-07 | 分类于 代码

NVM(Node version manager) 顾名思义,就是 Node.js 的版本管理软件,可以轻松的在 Node.js 各个版本间切换.

下载并安装 NVM 脚本

$ curl https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | bash
$ source ~/.bash_profile

列出所需要的版本

nvm list-remote

安装相应的版本

nvm install v0.10.40

查看已安装的版本

nvm list

切换版本

nvm use v0.10.30

设置默认版本

nvm alias default v0.10.30

推广自己

发表于 2015-10-12 | 分类于 个人

这篇文章 里面作者也提到对其职业生涯最有帮助的话:

You do great work. I mean really great work. I like how your code looks and that it rarely breaks. The problem is that others don’t see it. In order for you to get credit for the work you’re doing, you have to let people know. You need to do a bit of self-promotion to get noticed.

技术的极致是什么?就是把自己隐藏起来,让人感受不到技术的存在。所以技术出身的人,大都有个通病:只会埋头苦干,不会推广自己,甚至不屑于推广自己。

学会推广自己,才能让别人看到自己的价值,才能提高影响力。这个道理,我花了很多年的经历才有深刻的体会。希望新入职场的人能看到这篇文章,早日明白这一点。

回味 IE、firefox(Netscape) 十余年 6 轮技术攻防战

发表于 2015-10-12 | 分类于 开源

Firefox

Firefox 真心命苦,眼看要实现超越,结果 Chrome 来了

2006.10.24 来自:CSDN

简 介:1993 年 4 月 22 日,伊利诺斯大学的一个学生小组发明了一段旨在从各种公共网 络上获取信息的程序。当时很少有人会预见这个叫 Mosaic 的程序将从根本上改变我们的日常生活。1994 年,网景拥有了 Mosaic,并在在 1994 年 4 月推出了 Netscape Communication,很快地,Netscape 就以其强大的功能、友好方便的用户界面获得了广大用户的好评。随着微软在 1995 年 8 月 24 日推出 的 Windows95,在其后的数个月内,互联网取得了突飞猛进的发展,Netscape 更是接着如此东风,取得了 70%以上的市场份额(注意:那时候的 Netscape 可是一个收费软件)。好景不长,随着微软免费捆绑的 IE3.0 推出,一场龙争虎斗、硝烟四起的浏览器市场霸主争夺战争就这样拉开了序幕。

这里,我们记录了历史上浏览器之战中最大的和最精彩的战役。

在互联网发展早期,第一款浏览器是 WorldWideWeb。由 Tim Berners-Lee 所开发,这款事件上第一款 Web 浏览器是在 NeXT 平台上开发,并专门为这个平台所编写的–换句话说,它并不是许多人都可以享受到的。

随 后,其他一些浏览器接踵而至–www, Erwise, Midas, ViolaWWW, Cello 等等。但是真正意义上点开 Web 的是 1993 年发布的 Mosaic。由 (美国) 国家超级计算应用中心的 Mark Andreessen 和 Eric Bina 所编写,Mosaic 成为第一款在同一个窗口中成功结合文字和图片的 Web 浏览器。虽然早先该浏览器是为 Unix 平台所编写,但是不久,它就被迁 移到了 Mac 和 Windows 平台,使网络浏览为更多的观众所接受。于是,电脑用户们向 Web 一拥而上,而 Mosaic 就成为他们联系 Web 的一个最好的 途径了。

Round 1: Netscape Navigator vs. Mosaic

就在发布 Mosaic 后不久,Andreessen 辞去了在 NCSA 的工作,创建了 Mosaic Communications Corp. 。NCSA 继续延用 Mosaic 的名字,然而,Andreessen 的新公司改名为 Netscape Communications。同时,NCSA 注册了 Mosaic 技术和商标,并将其提供给 Spry 和 Spyglass 公司,以开发全新商业版本的 Mosaic。

1994 年,Netscape 发布了一个叫做 Netscape 的新浏览器,于是,世界浏览器市场的第一次世界大战爆发 了。快 速、稳定并且功能丰富等特色,使得 Netscape 迅速成为 Web 浏览事实上的标准。在 1994 和 1995 年期间,表示 Netscape 浏览器的大写 N 在 接入到互联网的电脑桌面上随处可见。渐渐地,Mosaic 抵挡不住 Netscape 的强大攻击了,慢慢地淡出了浏览器市场。

The Winner: Netscape Navigator

Round 2: Internet Explorer 1.0/2.0 vs. Netscape Navigator 1.0/2.0

当 WWW 逐渐成为大众文化不可或缺的一部分的时候,微软决定是时候参加这个互联网大战了。但是,微软并非是白手起家,而是从 Spyglass 申请注册的浏览器技 术。这样,Internet Explorer 的基础实际上就是 Mosaic–一款被 Netscape 所废弃的浏览器。

1995 年 8 月 Internet Explorer 1.0 的发布,引发了一系列有争议的战斗,并扩大了两款浏览器之间的差距,但是 IE 市场份额增长的一个主要因素就是它的亲和性。在 IE 发布之前,对于日常 PC 用户来说,跟踪和安装一个 Web 浏览器并非易事:确保拨号兼容性和配置 TCP/IP 功能需要相当的技术专长。通过利用易于安装的 Plus! Pack Add-On 在 Windows 95 平台上绑定它的浏览器,微软迅速开发了一个 IE 的后续版本。

然而,很不幸的是,微软那不争气的浏览器在载入 Web 页面的时候比 Netscape 慢好多。此外,IE 1.0 对许多站点并不是 100% 的兼容,因为需要 Web 开发者早先只是关注于确保他们的页面与 Netscape 的兼容性。

为 了积极应对这个问题,仅仅在 IE 1.0 推出后三个月,微软发布了 Internet Explorer 的一个新的 2.0 版本。这一草率的修正版添加了许多功能,目的就是提高开发者的效率和降低客户对安全的关注。例如, Secure Sockets Layer(安全套接字层,简称 SSL),就是保证数据安全传输的一个重要的加密协议。该版本的浏览器同样还包含了一个集成的 Usenet 新闻组阅读器。

Netscape 将 IE 2.0 的匆忙推出视为一个微软开始进攻的一个信号,于是该公司迅速开始对 Navigator 开始修改。Andreessen 的浏览器,依然是比 IE 更快, 功能更丰富并且能够显示绝大多数 Web 站点,占据了浏览器市场的主要份额。但是压力依然存在,Netscape 的运气不久就改变了。

The Winner: Netscape Navigator
Round 3: Internet Explorer 3.0 vs. Netscape Navigator 3.0

1996 年八月,微软再次为 Windows 95 发布了 Internet Explorer 3.0,但是不同的是,这次微软对 IE 进行了完全的重新编译。这款浏览器包含了大量的新功能,比如 Internet Mail 和集成了对 GIF 和 JPG 文件以及 MIDI 和流音频的支持。(在 IE3.0 之前,用户需要去下载辅助的应用程序以显示或者收听这些类型的文件。)

最为重要的是,微软这次赢取了 Web 开发社区的芳心。IE3 提供了一个支持多脚本语言的灵活的编程模型。并且它引入了层叠样式表(CSS)的首次使用,从而给予了开发者对其页面的显示方式更多的控制权和预见权。

在 就同一个月,为了应对微软 IE 的第三次发布,Netscape 发布了 Netscape Navigator 3.0。基于上两个版本的相同技术开发的 3.0,为用户带来两个不同的选择:Standard Edition 和 Gold Edition。Gold Edition 带来了许多新功能,比如集成的邮件客户端和针对 Web 设计的 WYSIWYG 功能。但是 Netscape 这次却不是那么幸运,这个改进版本因 为反应较迟钝而收到用户的严厉批评。

虽然 Internet Explorer 支持抢占了 Netscape 的 18% 的市场份额,但是微软缺在质量上和 Netscape 拉近了距离。

The Winner:平局

Round 4: Internet Explorer 4.0 vs. Netscape Communicator

1997 年标志了 Netscape 终结的开始。在十月份,微软在浏览器开发上的攻击驱力导致了 Internet Explorer 4.0 的发布。

除 了在性能上得到很大的提升以外,IE 4.0 引入了一个叫做 DHTML(动态 HTML)的强大的新功能,该功能可以使开发者们实现达到交互性和页面样式的空前层次。此外,IE 4.0 的发布同样也结合了大量在 Windows 上广泛的升级,包括了 MP3 的支持。为了应对来自微软 IE 新功能所带来的冲击,Netscape 将其 4.0 版本的浏览器以一个新的名称发布:Netscape Communicator。该浏览器是 Netscape Navigator 的 Gold Edition 的一个精装版本,并提供了许多集成的应用程序,如一个 e-mail 阅读器。但不幸的是,这个新的名字惹恼了用户,并且因为该浏览器的启动较 慢和迟钝的表现,用户对其进行了严厉的批评。

微软已经达到了其在质量上打败 Netscape 的目的。Web 开发者们,技术记者们,以及消费者们开始全体向 IE 阵营迁徙。

1998 年,Netscape 作出了一个大胆的决定:在一个开源协议的约束下,发布其浏览器的基础代码。有趣的是,这些代码成为了 Mozilla 的 Firefox 浏览器的基础所在,也就是这款浏览器,在 6 年之后的 2004 年开始了对 Internet Explorer 的强有力挑战。就是在同时,美国在线收购了 Netscape,并将它的浏览器集成到了 AOL 客户端中。

AOL 继续着 Netscape Navigator 的后续开发和发行,微软也在继续着 Internet Explorer 的修正和改进之路,但是 Netscape Navigator 4.x 始终不能战胜微软的 IE。到 2002 年,微软的 Internet Explorer 占据了浏览器市场超过 95% 的份额。这场历时 7 年之久的浏览器之战终于以 Internet Explorer 的完胜而宣告结束。

The Winner: Internet Explorer

Round 5: Firefox 1.0/1.5 vs. Internet Explorer 6.0

然 而,自从 Netscape 在 1998 年公布代码之后,开源项目的成员组织之一的 Mozilla.org 却在悄悄地开发着一款更好的浏览器。终于,在 2002 年,包含一个 Web 浏览器、一个电子邮件客户端,一个聊天客户端的 Mozilla 1.0 套件正式发布。但是,直到其在 2004 年发布一个叫 Firefox 的独立浏览器之前,这个团队的产品始终没有对 Internet Explorer 构成太大的威胁。

强大且灵活的 Firefox 自称进行了诸多关键性的改进,如标签式浏览(这个功能在一些不出名的浏览 器, 如 Opera 中已经出现了)和一个集成的 RSS 阅读器,还有一大批第三方开发的提供扩展功能的插件。2005 年 11 月发布了一个过渡的 1.5 版本,添加了 许多新的功能,并对现存的版本进行了提高。

Firefox 好似微软得意忘形之际的一个当头棒喝,因为微软因为在浏览器市场没有竞争对 手,故 放慢了对 IE 的开发,使数年之内 IE 都未得到很好的改进和开发。由于 Firefox 对其浏览器市场霸主地位的威胁,微软开始向其最新版本的浏览器–IE 7 中加入了许多类 Firefox 的功能,并对其采取了更好的安全措施。IE 7 独立于 Windows XP,并将集成于在明年一月发布的 Windows Vista 操作系统中。

如今,微软仍然在这场浏览器市场占领的战斗中处于遥遥领先的地位,但是 Firefox 正在继续挺进。截至 2006 年 7 月,据有效数据统计结果显示,因为 Firefox 的加入,微软的市场份额已经削减至 83%。

The Winner:谁胜谁负全依赖于你如何去看待:Firefox 在功能和安全性上领先;但是 IE 仍然占据了市场份额的绝对比例。鸽子这里认为相比如 IE 雄厚的后台实力,Firefox 绝对已经胜出了。

Round 6: Firefox 2.0 vs. Internet Explorer 7.0

事实表明,这场浏览器之战远没有到结束的时候。随着 Firefox 2 和 IE 7 在今天的推出,下一回合仅仅只是开始了。

为 了使 IE 7 的功能赶上 Firefox,微软已经作出了许多努力。微软是否可以通过这些功能,再结合 IE 7 与 Vista 的集成,降低人们对 Firefox 的盲目崇拜呢,亦或 Firefox 的志愿者开发团队继续保持着 Firefox 的奇迹呢?接下来几年内,浏 览器竞技场必将上演一场精彩的龙虎斗,大家只管拭目以待吧!

The Winner: 很快见分晓

volatile_in_C

发表于 2015-10-12 | 分类于 代码

2009-05-18

这个是 06 年 4 月面试 Intel 实习生的题目。当时确实什么都不懂.

volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。比如并口等外围接口的变化与程序无关,还有就是另外的程序可能会改变本程序使用的数据。

用 volatile 关键字声明的变量 i 每一次被访问时,执行部件都会从 i 相应的内存单元中取出 i 的值。

没 有用 volatile 关键字声明的变量 i 在被访问的时候可能直接从 cpu 的寄存器中取值(因为之前 i 被访问过,也就是说之前就从内存中取出 i 的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值,是因为编译器优化代码的结果(访问 cpu 寄存器比访问 RAM 快的多)。

以上两种情况的区别在于被编译成汇编代码之后,两者是不一样的。

之所以这样做是因为变量 i 可能会经常变化,保证对特殊地址的稳定访问。


人生第一次电面,很失败啊

远程办公 - 下一个风口

发表于 2015-10-08 | 分类于 经济

科技的力量

信息技术飞速发展,正在迅速改变各个行业。

  • O2O 是整个消费行业的趋势,商场的界限被打破,生产者和消费者直接对接。
  • 在线教育是教育行业的趋势,学校的界限被打破,最好的老师和学生直接对接。
  • 远程工作是办公领域的趋势,城市的界限被打破,公司的工作不再受地域限制。

诱惑

远程办公会产生巨大的节省,有巨大的市场、巨大的诱惑.

  • 一线城市,被堵车、交通、雾霾折磨着的人,被高放假压的喘不过气的人,是受益者
  • 被马太效应压制的二三线城市,找不到合适技术人才的企业,是受益者
  • 跨国的工作协助也会走上新的台阶,国家界限进一步弱化。

现状

一些人已经意识到这个巨大市场的存在,但是绝大部分公司依然持反对态度。一些新的协作软件已经出现,但是依然很不完善,只能算是初级阶段。

痛点

  • 很多沟通的书籍都强调面对面沟通的重要,定期会面机制。
  • 需要新的工具,进行远程沟通,远程管理。
  • 异步工作流程

预测

很快,不愿意拥抱远程工作的公司,将越来越难招到最优秀的人才,会在竞争中处于劣势。

当前的公司组织架构、流程、人员、项目管理方式,都会需要为更好的支持远程办公而改变。

这一切,都预示着一个巨大的市场,巨大的机会。

Markdown_cheetsheet

发表于 2015-10-06

标题

# Header 1 #
## Header 2 ##
### Header 3 ###
#### Header 4 ####
##### Header 5 #####

右侧的 # 可以省略

带 ID 的标题

## Markdown plus h2 with a custom ID ## {#id-goes-here}
[Link back to H2](#id-goes-here)

段落

This is a paragraph, which is text surrounded by whitespace. Paragraphs can be on one
line (or many), and can drone on for hours.

链接

Here is a Markdown link to [Warped](http://warpedvisions.org), and a literal <http://link.com/>.
Now some SimpleLinks, like one to [google] (automagically links to are-you-
feeling-lucky), a [wiki: test] link to a Wikipedia page, and a link to
[foldoc: CPU]s at foldoc.

格式标记

Now some inline markup like _italics_, **bold**, and `code()`. Note that underscores in
words are ignored in Markdown Extra.

图片

![picture alt](/images/photo.jpg)

引用

> Blockquotes are like quoted text in email replies
>> And, they can be nested

列表

* Bullet lists are easy too
- Another one
+ Another one
1. A numbered list
2. Which is numbered
3. With periods and a space

代码

And now some code:

// Code is just text indented a bit
which(is_easy) to_remember();

代码块

// Markdown extra adds un-indented code blocks too
if (this_is_more_code == true && !indented) {
// tild wrapped code blocks, also not indented
}

诗歌

Text with
two trailing spaces
(on the right)
can be used
for things like poems

水平线

* * * *
****
--------------------------

表格

| Header | Header | Right |
| ------ | ------ | -----: |
| Cell | Cell | $10 |
| Cell | Cell | $20 |
* Outer pipes on tables are optional
* Colon used for alignment (right versus left)

定义

Bottled water
: $ 1.25
: $ 1.55 (Large)
Milk
Pop
: $ 1.75
  • Multiple definitions and terms are possible
  • Definitions can include multiple paragraphs too

附录

*[ABBR]: Markdown plus abbreviations (produces an <abbr> tag)

下一站 Hexo - 我的博客历史

发表于 2015-10-05 | 分类于 个人

从最开始写博客,一晃已经十年时间。博客平台换了好几个,目前开始 Github + Hexo, 追忆一下往事。

起步 - MSN Space

最早开始写博客,是从微软的 MSN Space 开始的。研究生刚入学,加了一些同学的 MSN。发现用户签名有标记,点开可以看到 MSN Space 上的新文章更新。那时候时间充裕,所以也开启了自己的 MSN 空间。

内容以转载为主,包含了印象深刻的电源,动画。后来加入了一些自己历程的总结。有些幼稚,有些年轻。

2007-03-12,因为忍受不了访问和编辑速度,转到了百度.

Baidu Hi Space

后来 MSN 开始持续出现登录异常,很难更新。所以只好换平台,因为那时候百度 Hi Space 界面比较干净简单。就把所有的文章放到 Baidu 上面。

因为有技术,又有个人内容,经济、历史。感觉比较混乱,后来还单独把技术文章分出一个。

博客平台的消亡

再后来,Twitter 出现了,微博出现了。于是很多人都停止大篇幅文章的写作,各个博客平台流量持续下降。

  • MSN Space 停了,只有图片还存在 One Drive 里面
  • 百度 Hi Space 停了,文章保留在了百度网盘

阿里云

因为看到各个平台的不稳定,而自己也开通了阿里云服务器。所以就自己在阿里云上搭建了 Mezzanine,导入了以前的博客。Mezzanine 是 Django 写的,之所以选用它,是因为阿里云上已经建好了一个 askbot 站点。而当时我在技术上确实是想向 Python 转移的,后来发现这其实是一个错误的绝对。

虽然自己的博客平台搭建好了,但是出现了一些问题。SEO 做的很差,几乎没有访问。而我自己的业余时间也大部分都花在 Arch Wiki 上面。所以基本上文章都没有什么更新,就那么空放着。

Hexo

再后来,更新阿里云的时候,Python 2 升级到了 Python 3。Mezzanine 遇到了严重的兼容性问题,至今没时间修复。Python 在我心中的位置,也被 Javascript 取代。

考虑过搭建 Ghost,但是精力实在有限,就一直没有启动。后来看到 Github 可以当博客平台用,于是就有了 Hexo.

写文章

最近几年,经历了很多,整理之前文章的时候,回想当时的一些观点,不禁唏嘘不已。以前写博客是为了吸引眼球,证明自己,展现自己。现在的想法是:

写文章本身,就是一种收获,是一种思想的提炼;而如果这些想法能对别人有帮助,那就是物超所值。

再见 Google Reader

发表于 2013-03-14 | 分类于 个人

google reader

1…678…18

Feng Chao

178 日志
14 分类
1 标签
RSS
GitHub E-Mail Twitter
© 2006 — 2018 Feng Chao
由 Hexo 强力驱动
|
主题 — NexT.Mist