How to Burn Your Own OS X Lion Install DVD or USB Drive

  1. Download Lion from the Mac App Store. The installer should show up in your Applications folder.
  2. Right-click on the installer and hit “Show Package Contents”. Navigate to Contents > SharedSupport and look for a file called “InstallESD.dmg”.
  3. Open up Disk Utility and drag the DMG file into the left-hand sidebar. If you’re burning it to a DVD, insert your DVD, select the disk image in the sidebar, and hit the “Burn” button. Skip down to the last step to use it.
  4. If you want to burn Lion to a USB flash drive, plug it in and click on it in the left-hand sidebar in Disk Utility. Go to the Partition tab and select “1 Partition” from the dropdown menu. Choose “Mac OS Extended (Journaled) on the left.
  5. Hit the Options button under the partition table and choose “GUID Partition Table”. You’ll need this to make the drive bootable on a Mac. Hit the Apply button when you’re done to format your drive (note: it will erase everything on the drive).
  6. Click on the “Restore” tab, choose the InstallESD.dmg file as the source and your flash drive as the destination. Hit the Apply button and it will create your bootable USB drive.
  7. Reboot into OS X and hold the OPTION key when you hear the startup chime. You can boot into your DVD or flash drive from there.

Mac OSX 恢复路由表

由于某些原因,我需要在机器上设置静态路由,但是每次机器sleep再wake后,可能网络环境已经变了(比如从一个wifi信号换到了另外一个),所以之前的静态路由可能已经失效.

这时可以这样删除之前已经设置的静态路由:

$ sudo route -n flush

这条命令可能要执行多次.直至没有输出为止.

然后加入新加入的网络的网关:

$ sudo route add default <new gateway IP>

Mac下不能移除移动硬盘怎么办

在想拔掉移动硬盘前出现了这样的错误?

让我们一步步来检查原因.

首先可以到移动硬盘根目录下删除Spotlight所用的目录:

$ sudo rm -rf /Volumes/MyDisk/.Spotlight-V100*

如果真是这个原因,未免以后再出现这样的问题,我们可以直接在此目录禁用index:

$ touch /Volumes/MyDisk/.metadata_never_index

如果这样子还不行,最后的杀手锏就是lsof了:


$lsof /Volumes/MyDisk/

会列出所有占用了这个盘的进程,杀之.





		

AGAL基本知识(What is AGAL)

Adobe的汇编GPU语言是AGAL,相对的高级语言是PixelBender 3D,学习AGAL有助于更好的理解GPU的工作模式。

以下是Adobe给出的指令集:

 

AGAL的基本语法:

<opcode> <destination>, <source 1>, <source 2 or sampler>

Registers:

所有的Register都是128位的。可以看成4个Components,每个Component都可以用<register>.<x|y|z|w> 或者<register>.<r|g|b|a>来表示。自己根据实际语言区分坐标和颜色。

6种类型register

1. Attribute registers

These registers reference the Vertex Attribute data of the VertexBuffer that is the input of the Vertex Shader. Therefore, they are only available in Vertex Shaders.

This is the main data stream that the Vertex Shader is responsible for processing. Each vertex attribute in the VertexBuffer has its own attribute register.

In order to assign a VertexBuffer attribute to a specific attribute register, use the function Context3D:setVertexBufferAt() , with the proper index.

Then from the Shader, access the attribute register with the syntax: va<n> , where <n> is the index number of the attribute register.

There are a total of attribute registers available to Vertex Shaders.

2. Constant registers

These registers serve the purpose of passing parameters from ActionScript to the Shaders. This is performed with the Context3D::setProgramConstants() family of functions.

These registers are accessed from the Shader with the syntax: vc<n> for Vertex Shaders and fc<n> for Pixel Shaders, where <n> is the index number of the constant register.

There are 128 constant registers available to Vertex Shaders, and 28 constant registers for Pixel Shaders.

3. Temporary registers

These registers are available to Shaders, and they are used for temporary calculations. Since AGAL doesn’t use variables, you’ll use temporary registers to store data throughout your code.

Temporary registers are accessed with the syntax vt<n> (Vertex Shaders) and ft<n> (Pixel Shaders) where <n> is the register number.

There are 8 temporary registers available for Vertex Shaders, and 8 for Pixel Shaders.

4. Output registers

The output registers are used by Vertex and Pixel Shaders to store the output of their calculations. For Vertex Shaders, this output is the position of the vertex. For Pixel Shaders it is the color of the pixel.

These registers are accessed with the syntax op for Vertex Shaders, and oc for Pixel Shaders.

There is obviously only one output register for Vertex and for Pixel Shaders.

5. Varying Registers

These registers are used to pass data from Vertex Shaders to Pixel Shaders. The data that is passed is properly interpolated by the GPU, so that the Pixel Shader receives the correct value for the pixel that is being processed.

Typical data that gets passed in this way is the vertex color or the UV coordinates for texturing.

These registers can be accessed with the syntax v<n> , where <n> is the register number.

There are 8 varying registers available.

6. Texture sampler registers

Texture Sampler registers are used to pick color values from textures, based on UV coordinates.

The texture to be used is specified through ActionScript with the call Context3D::setTextureAt().

The syntax for using texture samplers is: fs<n> <flags> , where <n> is the sampler index, and <flags> is a set of one or more flags that specifies how the sampling should be made.

<flags> is a comma separated set of strings, that defines:

  • texture dimension. Options: 2d, cube
  • mip mapping. Options: nomip (or mipnone , they are the same) , mipnearest, miplinear
  • texture filtering. Options: nearest, linear
  • texture repeat. Options: repeat, wrap, clamp

For example, a standard 2D texture without MIP mapping and linear filtering could be sampled into temporary register ft1 , with the following line:

tex ft1, v0, fs0 <2d,linear,nomip>

In the example above, the varying register v0 holds the interpolated texture UVs.

为程序员量身定制的12个目标

转自 伯乐

对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。

01. 变得有耐心

02. 保持健康

03. 拥抱变化带来的不适应

04. 学习一门新的编程语言

05. 自动化

06. 学习更多数学知识

07. 关注安全

08. 备份你的数据

09. 学习更多理论知识

10. 接触艺术和人文

11. 向新的软件学习

12. 完成一个自己的项目

接下来我会对这些建议逐个介绍。

变得有耐心

程序员们会担心锻炼耐心付出的努力得不到应有的回报。其实,培养耐心只要付出很小的投入就能够得到相对而言很大的收获。下面是开始锻炼耐心可以尝试的一个列表,只要全身心投入其中任意一项,都可以在一个月左右脱离门外汉(成为有经验的新手)的阶段:

烹饪、徒步、滑雪、天文、慢跑、木工、武术、舞蹈
保持健康

程序员通常久坐少动,因此在日常工作中会面临健康问题,但通常都被我们忽略了。一年中花整整一个月来调整你的生活习惯、 饮食和生活环境,这会促使你养成持久、健康的生活习惯。每年去一趟诊所检查血压、胆固醇和血糖,看看这些指标最近有什么变化。如果你的手腕开始疼痛或者已 经疼了很久,马上停掉手上的工作开始与“鼠标手”(重复性劳损)作战。注意你的坐姿,尤其是肩膀和脖子。我使用了矫姿器来帮助治疗。

跟踪你的体重、摄入以及燃烧的卡路里。如果有必要,可以改变生活方式以养成健康的饮食习惯和减肥。(《Zed Shaw:程序员的常见健康问题》)

程序员的常见健康问题程序员的常见健康问题

拥抱变化带来的不适

在我20刚出头的时候,通过观察身边年纪稍大一些的伙伴我发现有些人停滞不前而另一些则活力充沛,我试着寻找背后的原 因。答案就是舒适感。舒适会让技术停滞不前。当找到一个能够为我所用的系统时,我们会一直使用它。但技术是不断进步的,而那些停留在舒适区的人永远不会意 识到这些进步能够为他们带来好处。不破不立,要让自己适应不舒适的感觉。

下面列出的事情一开始可能会让你感到不适应:

  • 使用德沃夏克键盘
  • 使用vim替代emacs,反之亦然
  • 不使用鼠标
  • 使用不同的窗口管理器
  • 喝清咖啡不加奶油和糖,或者喝清茶
  • 尝试一个月“流行且无聊的新事物”
  • 一个星期中有一天不开手机
  • 学习使用一种可以单手输入的设备
  • 尝试一个不同的操作系统
  • 一个星期中有一天不上网
  • 试着对饮食加以限制:尝试吃素,成为纯素食主义者,不吃乳制品,等等
  • 每天吃一种你不喜欢的食物
  • 将你习惯使用的胳膊用绷带绑起来
  • 学习用你不习惯的那只手写字
  • 开一个博客
  • 参加公共演讲
  • 一个月听一种你不喜欢的音乐
  • 去医院或退休家庭护理做志愿者
  • 一个星期有一天快生活
  • 去一个与自己文化或语言不同的国家旅行
  • 读一篇广受好评但却不是你喜欢题材的小说
  • 看一场广受好评但却不是你喜欢风格的电影或演出
  • 学会用变速杆(手动)开车
  • 反对你相信的一些事情

在一个月的尝试之后,你可以决定是否继续采用新方式,或者找到新方式中好的经验与原有方式的结合点。例如,在我从使用了10年的emacs转向vim时,我会为插入模式设置emacs风格快捷键从而继续使用vim。(《25个Vim教程、视频和资源》)

学习一门新的编程语言

编程语言起起落落。如果只了解一门语言,程序员的解决问题能力以及职业前景都会因此受到限制。花上整整一个月时间吸收一门新语言或者一个新的编程范式,并用它写一个小程序。
下面是一些可以学习但不是非常主流的编程语言:

Racket、 HaskellScalaErlangClojureSML/NJOCamlSqueakPrologDatalog.
如果你无所不知,那么你可以实现一门新的编程语言。

自动化

程序员拥有最强大的待开发技能就是将虚拟和现实自动化的能力。如果你从来没有造过一个机器人,那么去做一个吧。至少学会使用Lego Mindstorms或者玩一玩 Arduino board
检查一下你每天的任务,看看其中有哪些可以完全或者部分自动化。自动化在家庭生活里已经有了长足的进步,甚至可以像Insteon那样对系统进行DIY。
投资一个月的时间来进行自动化:

  • 调整你的邮箱过滤器或者设置procmail
  • 为频繁进行的工作编写自动化shell脚本
  • 编写shell脚本帮助写作
  • 学会如何使用cron工具
  • 改造橱柜灯由感应控制
  • 尽可能地用无线替代有线
  • 停止手动同步:将信息存到云端
  • 安装一个远程控制音频系统
  • 通过你的服务器控制家里的空调
  • 安装数字监控摄像头
  • 安装数字内部通话系统,儿童监控系统
  • 让咖啡机自动打开
  • 为宠物安装自动给水槽
  • 为宠物安装自动感应门
  • 将Roomba改造成个人信使

译注:
procmail:procmail软件包包含一个自动的邮件管理器,可以很好的过滤和排序邮件。
cron:linux下的定时执行工具。

Roomba:Roomba是iRobo公司生产的定时智能机器人。
学习更多数学知识
计算机科学本质上讲是数学的一个学科。好的数学家中间会产出优秀的程序员。不要让你的数学能力丧失殆尽。

考虑每年花一个月时间复习列表中的一项:

逻辑学、离散数学、微积分、概率论、统计学、抽象代数、数论、范畴论、偏序理论 (《数学是成就卓越开发人员的必备技能》)

关注安全

很少有程序员具备好的安全习惯。如果你对自己的数字安全很在意,你就会对你写的代码安全性更加关心。确保你在每个站点都使用了唯一的高安全系数密码。使用加密的密码管理器来管理你的密码,例如PasswordSafe或者KeePassX。如果你还没有对整个磁盘加密,留出时间完成它。(在Mac上可以轻松完成)
每年都要研究过去12个月中前10位的安全漏洞。他们是如何发生的?在编程中需要怎么做能够避免在你的代码中出现这些漏洞?

下面是另外一些你需要尝试的安全任务:

  • 在Apache中加入SSL验证
  • 使用RSA或AES实现密码系统
  • 试着破译你的无线网络密码
  • WireShark侦听你的网络通讯
  • 设置基于密钥的无密码ssh登录
  • 自己运行nmap;配置你的防火墙
  • 建立端口扫描
  • 为USB驱动器加密
  • 监控日志文件
  • 设置cron任务定期更新你的程序

译注:
nmap:linux下的网络扫描和嗅探工具包

备份你的数据

每年花一些时间检查你的备份策略。
花一个月时间将备份花费的时间减到最小。
使用基于云的备份服务,比如MozyCarbonite,很容易建立无缝自动备份。
更全面地防御可以选择为每个人分发硬盘,对每台电脑使用像Time Machine这样的自动备份工具进行备份。
对重要文件使用异地远程仓库进行版本控制。

学习更多理论知识

计算机科学有丰富的理论基础。

了解最新进展的同时还要加强对经典开发理论的掌握。

  • 每年在下列主题上花一个月时间:
  • 形式语言
  • 自动机与可计算性理论
  • 计算复杂性理论
  • 形式化方法
  • 语义学
  • 算法与数据结构

译注:

形式语言:按一定规律构成的句子或符号串的有限或无限的集合。

自动机:是有线状态机(FSM)的数学模型。

可计算性理论:研究计算的可行性和函数算法的理论。又称算法理论。它是算法设计与分析的基础,也是计算机科学的理论基础。

计算复杂性理论:计算复杂性理论是理论计算机科学的分支学科,使用数学方法对计算中所需的各种资源的耗费作定量的分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。

形式化方法:在逻辑科学中是指分析、研究思维形式结构的方法。

语义学:研究自然语言中词语意义的学科。也可以指对逻辑形式系统中符号解释的研究。

对于刚起步的程序员,可以先看一看下列文章:

译注:
CEK:CEK机器是由Matthias Felleisen和Dan Friedman开发的λ-演算的力学模型。
Haskell:一种纯函数式编程语言,以美国数学家Haskell Brooks Curry命名。

接触艺术和人文

工程师往往轻视艺术。他们没有意识到艺术和人文是基础升华的重要因素。史蒂夫·乔布斯乐于指出将技术与人文结合的重要性,事实也却是如此。

艺术和设计原则同样适用于人和计算机之间的交互。不要忽视这些原则。艺术和人文的训练让直觉更加敏锐,而这方面的练习是难以用数字来计量。工程师需要知道如何衡量那些他们不能计量的事物,而不是只是统计他们可以计量的内容。

每年至少有一个月学习下面列出的主题:

  • 工业设计
  • 哲学
  • 摄影
  • 绘画
  • 素描
  • 音乐及音乐理论
  • 电影
  • 文学

社会科学同样会对计算机科学家有很大帮助,尤其是经济学和哲学。

向新的软件学习

一个为自己的软件寻找灵感的好办法就是向新的或新型应用程序学习。例如,如果你从来没有尝试过3D建模软件,可以尝试Blender。抑或是,如果你从来没有接触过LaTeX,请真诚地试着去了解它。

在学习过程中,请注意你喜欢什么和讨厌什么。真诚地问自己,这些观察到的内容是否在你的软件中存在。在工作中很难看到自己的缺点,但发现别人的不足却很容易。天下没有哪个父母认为自己的孩子长得难看。请学习看到自己作品的不足。

完成一个自己的项目

如果你整天为别人写代码,那么为自己写程序能让你记得当初为什么会成为程序员。每年为自己选择的项目分配一个月的时间,完成核心功能,将其开源发布。

上海的创业文化问题

前几天受邀主持了第十届上海”十大IT青年新锐”的颁奖典礼中的两个论坛,其中一个的主题就是谈上海的创新,嘉宾中有来自IDGVC的章苏阳,易观国际的于扬,大众点评的张涛以及易讯电商的卜广齐和上海中国移动的黄刚。嘉宾们总结了原因,很有意思也很值得人思考。

五大因素,拖了上海在互联网行业创新的后腿:

本地语言环境与文化环境 – 相比与北京,上海人对本地方言的推崇使得整个环境依然缺乏包容性。北京人喜欢侃,所以每周大大小小的聚会活动很多,而上海人更多情况下没有实际的经济利益不愿多聚,这间接让创新少了些迸发的几率。
丈母娘文化 – 上海丈母娘对女婿的挑剔,是全国出了名的。正是这一点,让众多上海本地男孩和外地希望到沪发展的人更加求稳,因为他们未来的上海丈母娘看重的更是实际的收入和公司的名声,而这两样正是创业者往往无法达到的;
政府的管控 – 常常听人提到,在上海办事,相比其它一些城市,不用玩什么旁门左道的东西,因为上海做事很有规矩。但是如今这种规矩似乎成为了一种阻碍。创业公司现在越来越小,创业方式也越发灵活,上海的循规蹈矩无法应对这种“变”。同时上海政府对各方面都抓得很严,而北京,以某位嘉宾的话来说,就是北京太大了,政府管不过来。正是这种管不过来,反倒是为创业者提供了更多自由发展的环境。
500强抢人才 – 500强企业均落户上海,这是一直以来上海作为国际化大都市的重要体现。但是正是因为这样,年轻人有更多的好职位的选择,这让他们不愿意选择创业这个可能很“痛苦的”经理。从另一个角度,按照大众点评张涛的话来说,500强的吸引力也让上海的创业公司更难找到高素质的员工。
国际化优势在互联网行业未被很好发掘 – 上海相比北京更加国际化,对很多老外来说,除去对中国文化的热爱会留在北京,大都会认为上海更适合他们生活和工作,甚至更充满活力。一次与愤怒的小鸟的亚洲区负责人聊天,他说他一直认为上海更有创新力,所以也把Rovio中国的总部定在了上海。上海把这种国际化的优势的理解,放在了花大力气做了国际电视节,电影节,时装节,车展等等上,而在互联网这个新兴行业里却跟的太慢。
过去的荣耀,仿佛突然间成为上海创新的牵绊。虽然不能以点概全,但是上海,要想建设所设想的以互联网为本的智慧城市,确实是时候反思了。

为什么我们不要.NET程序员?

转自expensify

也许你已经知道了,我们正在招聘最优秀的程序员。不错,每个人都这样说。但是我们的程序员能打败你们的——任何时候。比如,米奇虽然只有5英尺高,但他是一个有相当实力的击剑手。维托尔德以前是一个6’3″的职业冰球选手。内特喜欢以丢匕首为乐。当然,他们都是很有水平的程序员。

发现这些人才,并不是你好好上班就能完成的事。事实上,我生活的一半时间都花在了上面,而丽莎差不多投入了她全部的时间。我们有一支招聘大军,搜遍世界任何一个角落,没有一份简历漏掉。总共算起来,我们有大量的简历。很多我们根本不看,因为简历——说实话——完全没有价值。相反,我们把所有的重点都放在了 几个关键问题上,我们会问所有的应聘者,每个问题的主旨都是要揭示一个关键信息:这是我们真的想要的人吗?

你知道,经验是廉价的。只要有时间,你就能有经验。技术本领难求,但事实上只要你努力就能得到——很多人都能做到。但是态度就不一样了。你要么 有,要么没有。我们要找的是对编程有热情的人,他们离不开编程。他们大多是大学之前——有些是中学之前——就开始编程了,而且一开始就停不下来。他们开发 各种程序,从汇编到jQuery,从个人电脑到移动手机,从复杂的底层计算图形到高端的社交网络。他们各个领域无所不至。

无所不至,但是,不包括 .NET。

让我来解释一下——.NET是一个很不错的语言。它很新潮,很独特,各种花哨的东西应有尽有。如果你要是开发Windows Mobile 7 应用(统计数据显示你应该不是),它应该是你的不二选择。选择 .NET 也是一种选择,如果有谁要做这样的选择,我不会阻止,但要问一声“为什么?”
不要误解我的意思:.NET 在你的简历上并不意味着一个大红叉。但在电话筛选中的确会引起我的疑问,其中的理由让我们用个开心的比喻来解释:

用 .NET 进行编程就像是在麦当劳做烹饪。那里有全套神奇的设备能够自动的造出所有的东西。只有你按一下正确的按钮,跟着提示灯的指示,你就可以批量的制造出完美无缺的1.6盎司的汉堡,比地球上的任何其他人都要快。

然而,如果你想做出一个1.7盎司的汉堡,很抱歉,你做不到。很简单,没有这样的按钮。 馅饼是预先做成了那样的尺寸。它们做出来之后就被冷冻,所有你无法把它们揉到一起做成其它尺寸,解冻机和烹饪机是一体的,你没有办法在它们之间进行拦截。 麦当劳的厨房产出的食品精确的和麦当劳的菜单保持一致的——这种模式使你的大脑不需要任何的思考。可是,它不能偏离菜单,对烹饪机器的任何你妄想的压挤变 形都会导致它停止工作,而被送回返厂维修。

然而,我们要找的是另外一种人。一种能够用削尖的树棍在野外篝火上烧烤松鼠的人——那是在深山老林里为了生存而捕捉并剥了皮的松鼠。我们不需要 快餐店厨师长,我们要的是由野狼带入文明社会的《苍蝇之王(Lord of the Flies)》,在堆满铜钱底壶和精选香料的法国厨房里喂养大的人。我们要的人不仅仅能做汉堡,他要能够从无到有做出任何东西。

你也看见了,微软是特意这么做的(而且非常成功)。.NET要跟其它所有东西都表现出尽可能的不同,让程序员们远离细节,这样就导致他们完全彻 底的依赖微软神奇的编程工具套件,让这些工具替他们思考。微软早在舞台上只有他一个演员时就这样做,明确的使这些东西要么很难移植到非Windows平 台,要么看起来很难实现,以此来保持他的垄断地位。

这种做法——或者这种对立的思维——导致了无数的分歧。小的方面,比如在文件路径中使用反斜杠,而不是像其它经典系统中使用正斜杠,或在 DirectX中使用左旋坐标系统,而不是使用自从计算机诞生以来就采用的右旋坐标系统。大的方面,比如通过无数的分层把网络架构搞的晦涩难解,使人们很 难想象出字节在网络中如何传输的。还有成百上千这样的事情:他们的开发工具在你没有写任何代码前就先生成了一大堆复杂的文件,笨重的服务器上本来对于任何 人只需要敲几下键盘的操作却非要启动一个远程的GUI终端,那是一个对开源许可协议过敏的编程文化。这样的事情举不胜举。
这些并不会让你成为一个“差程序员”。如果你只想尽快的做出一个1.6盎司的汉堡,把余生奉献到无尽的系列菜单上,那所有的这些特立独行对你来说不会有任何影响。但是,每天你在那种厨房里的日子并不是真正的厨房生活,学不到如何做真正的食物,写不出真正的代码。

更糟糕的是,在微软厨房里学一天的东西需要两天去忘记,我是说,一旦你心安理得的走上了.NET的事业道路,你很难再走回头路。因为你被深深的 桎梏到了这些工具和技术里,而这些工具和技术跟 .NET 之外的东西毫不相干,这样一来,对于一个创业公司来说,你实际上没有什么价值,你的这些年就如南柯一梦。

那么,这篇文章是要告诉你什么?两个事情:

如果你想着在一家创业公司工作,别用.NET。它会让你不受欢迎。
如果你创办了一个公司,想招聘真正的人才,留心那些简历上有 .NET 的人,问他们为什么要写上它。
这些听起来很刺耳,但却是事实。有时候我们只有松鼠可以吃,我们需要能把它做出好的味道。

Set Windows to use BIOS time as UTC timezone

为了和Linux以及Mac OS X兼容,将windows的注册表稍微修改一下,让windows可以将BIOS时间按照UTC时间来读取。然后在系统中修正为当前时区来显示。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] “RealTimeIsUniversal”=dword:00000001

修改好了需要重启Windows.

Mac OS X 中无法清空 Trash 时的解决办法

在安装了 Paragon NTFS for Mac 后经常会遇到在 NTFS 分区中删除文件后无法清空 Trash 的情况,如果你也遇到了这种情况,不妨尝试以下的办法:

使用终端手工删除:

$ sudo su
# cd /Volumes/Sonic_MD
# rm -rf .Trashes

此时删除失败的可能性比较大:

# rm -rf .Trashes/
rm: .Trashes//501/tset: Input/output error
rm: .Trashes//501: Directory not empty
rm: .Trashes/: Directory not empty

接下来,打开 Disk Utility, 选择那个 NTFS 分区,点 Verify Disk。
然后 log 会提示一些错误,最后再 Repair Disk 就解决了。

不行的话 Unmount/Mount 多试几次。

苹果关于员工使用社交网络等行为的内部文档

  • 员工可以拥有自己的个人网站,但不能在上面讨论和苹果相关的内容
  • 苹果员工不能在和苹果相关的网站上发表任何评论
  • 所有员工都拥有 @apple.com 的邮箱地址,但是只能使用 @me.com 邮箱做私人邮箱
  • 不能有任何关于苹果公司及其产品的猜测或传闻
  • 苹果公司有一个名为 HRCCC 的商业政策,即:诚实(Honesty)、尊重(Respect)、保密(Confidentially)、社区(Community)、服从(Compliance)
  • 苹果的商业行为政策及原则适用于普通员工、独立承包商、顾问以及其他与苹果公司有业务往来的人
一切为了保密。这方面苹果是出了名的。

Switch to our mobile site