posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Acronis Disk Director Suite 11 序列号:
EAHJY7ET-A6YHKVKQ-RLTJPPWE-ALVDYCCL-8RGM4JZS-RM65HG3Q-GHE4NMXT-LD6JHGGS


Acronis Disk Director Suite 是一套强大的硬盘管理工具,它可以分区管理和在不损失资料的情况下对现有硬盘进行重新分区或优化调整,可以对损坏或删除的分区中的数据进行修复。除此之外,软件还是一个不错的引导管理程序,用它你可以轻松的实现多操作系统的安装和引导 ,基于磁盘快照技术备份整个服务器(系统、文件、数据库) ,操作简单、功能强大的特点

Acronis 是一个全球化的公司,分别在美国、欧洲及亚洲设有办公室。其产品销售采取直接及通过企业经销商的销售方式。 Acronis 作为世界领导者提供高级可缩放的 存储管理 和 灾难恢复软件,帮助企业维护企业信息并确保其基础结构的可用性、安全、完整及可恢复性。 Acronis 的专利产品 — 磁盘映象和磁盘管理技术,在数据保护、备份与恢复、系统部署、以及物理和虚拟服务器的迁移等方面的优秀表现广泛赢得企业好评并获得许多奖项。 Acronis 的旗舰产品 Acronis True Image,现已成为 Windows 和 Linux 服务器的商业 磁盘映像和裸机还原解决方案的领导者,它也是自动化系统的可携带和迁移工具。 自 2002 年以来,选择 Acronis True Image 一直都是中小型企业以至 Fortune 500 强银行、专业技术服务、医疗保健、科技、零售、政府和制造业市场客户所选择的解决方案。

  Acronis出品的一款功能强大的磁盘无损分区工具。这是其最新版本,支持windows 7系统。使用它改变可以磁盘容量大小、复制、移动硬盘分割区并且不会遗失数据。
扩展

  Acronis Disk Director Suite 10.0有60M之多,下载安装后,其内部已经整合四大硬盘分区类工具包:
  1、Acronis Disk Director Suite:这个软件用来更改分区大小,移动硬盘分区,拷贝复制硬盘分区,硬盘分区分割,硬盘分区合并,绝对无损硬盘数据。
  2、Acronis Disk Editor:硬盘修复工具,比较专业,允许对硬盘磁盘进行高级操作,例如硬盘引导记录表操作和16进制编辑
  3、Acronis Recovery Expert :强悍的工具,用来扫描和恢复丢失的分区。
  4、Acronis OS Selector :硬盘安装多系统有福了,用它来控制多启动界面。
使用方法

  1、运行Acronis Disk Director,你将能看到上图的操作界面,程序会要求你选择使用的模式,为了图形化的操作磁盘空间,使用到所有功能,我们选择“Manual Mode(手工模式)”,然后点击“OK”。
  2、首先我们要解决硬盘只分了一个系统区的问题,我们要把目标盘(C盘)调整到目标大小,而多出来的空间则创建D、E、F盘。在程序窗口下方表示的C盘图标上点击鼠标右键,选择“Resize(调整尺寸)”。
  3、这时候我们可以直接在“Partition Size(分区大小)”中输入想要的大小,也可以在图形化的调整界面上直接拖拉代表分区的色块来调整分区大小。
  4、接着回到程序的主界面,你可以看到,在C盘右侧多出了一块绿色“Unallocated(未划分空间)”。在该空间上点击鼠标右键,选择“Create Partition(创建分区)”
  5、然后你可以看到窗口。在“Partition Label(分区卷标)”中输入你想要使用的卷标,在“File System(文件系统)”下拉菜单中选择你想要使用的文件系统(阿财推荐NTFS),然后点击“OK”。分区类型保持默认的“Logical Partition(逻辑分区)”即可。
  6、同样的此时可以直接在“Partition Size(分区大小)” 中输入想要的分区大小,也可以在图形化的调整界面上直接拖拉代表分区的色块来调整新分区大小。
  7、多个分区需要依次反复的操作,直到把笔记本磁盘上全部的剩余空间划分完毕。
  8、到这里,本次的工作基本已经全部做完了,现在请仔细检查当前显示的硬盘分区情况是否你所预期的,如果和你的期望有任何出入,还请立刻修改,因为所有的设置都还没有被应用。待你检查一切设置都准确无误后就可以应用这些改变了。.
  9、点击程序主窗口工具栏上的黑白相间小旗图标,选择“Proceed(执行操作)”然后程序可能会告诉你,这些调整需要重启动系统,点击“Reboot(重启动)”按钮,然后程序会自动将所有设置应用完成。
  10、重新启动这时候Acronis Disk Director Suite将会按照刚才的计划,一步一步的执行完全部分区过程,包括迁移数据,调整系统分区,划分新分区。带大量数据的可能会花费较多时间处理,停留在此画面时间可能长达几十分钟,请用户耐心等待,千万不要手动重新启动笔记本电脑。
  11、完成后将自动重新启动Windows ,登录进入桌面以后很可能会提示发现新的磁盘,这时还需要重启一次系统。
  12、注意,整个过程中千万不能断电,否则系统盘上的Windows VISTA系统和数据很可能会全部丢失。所以笔者强烈建议用户在进行分区操作前保证笔记本电脑的电池是处于充满电状态。

Acronis Disk Director Suite 使用教程大全

 

操作使用图示:

安装完后在桌面上会出现Acronis的图标,打开会出现使用界面,这个时候会出现两个选项——
A.自动模式(Automatic Mode):


在置顶菜单的视图(View)里可以切换这两种模式。在自动模式下,能够对硬盘进行的操作很少,这个模式类似我的电脑,可以查看分区内容,增加分区容量等,不推荐用此模式。


B.手动模式(Manual Mode);

在手动模式下可以对硬盘的分区进行删除、创建、移动、切割、更改类型、进行编辑等等。




如下图所示,黄色的是主分区,蓝色的是逻辑分区,绿色的是未划分的空间


1.更改分区类型

众所周知Vista安装的时候分的区都是主分区,那么要怎么把除了C盘以外的主分区改成逻辑分区呢?Vista自带的磁盘管理工具显然是不适合的,其一,它不能直接转换分区,其二,要第三个分区以后才能分成逻辑分区。用Acronis.Disk就可以很快速的安全转换。

在要转换的D分区上点右键,选择高级选项(Advanced),再选择里面的转换(Convert),或者是选定D分区后直接点左边任务条下面的转换(Convert)也可以。

成逻辑分区(Logical Partition)按OK。


不过这样有可能会在分区前面留出一些空间,要注意这个空间是无法合并到其他分区,通过调整大小(Resize)功能可以了解详细信息。从下图看出D分区已经转换成逻辑分区了,不过这个操作还没有实际被应用,需要点上方的花格旗子样的提交(Commit)按钮来执行这个操作。


2.删除和创建分区


A.删除分区:
在需要删除的分区上点右键,再点删除(Delete),或者选中分区后直接点左边任务栏中的删除按钮。


点删除按钮以后会弹出删除分区的确认框,这里有个贴心的设计就是有彻底摧毁数据的功能,可以手动设置覆盖数据(Over-Write)的次数来达到保护数据不外流的目的。


B.创建分区
在绿色的未划分的分区(Unallocated)上点右键,再点创建分区(Create Partition),或者选中未划分的分区后直接点左边任务栏中的创建按钮。


点创建分区按钮以后会弹出创建分区选项界面,这里可以设置分区的卷标(Partition Label),分区的文件系统(File System),分区类型(Create as)(主分区/逻辑分区),此分区前部剩余空间(Unallocated Space Before),分区大小(Partition Size),此分区后部剩余空间(Unallocated Space After)。


3.移动分区
这个功能主要是用于把一个重要的分区完整的移动到其他的空间,从而让不同位置的未划分空间可以合并到一起,方便统一创建分区。
如下图,删除了D盘后,未划分的空间被E盘和F盘隔开了,需要移动E盘和F盘以达到空间合并的目的。

这里有两种移动方法,其一、用移动(Move)选项来移动,这个是正统的移动方法,其二、用调整大小(Resize)选项来移动。

A.用移动(Move)选项来移动分区方法:
在要移动的分区上点右键(这里以恢复盘Recovery E盘做示范)选择移动(Move),或者是选中分区后点左边任务栏中的移动按钮。


在弹出的移动分区选项框中选中要移动的位置(必须是未划分的空间),然后按Next,要注意的是,下图中在F盘后还有一个未划分的空间,这个空间也是可以移动的,不过如果E 盘里的资料要是超过了未划分空间大小的话是不能移动的,移动分区不会损坏分区资料。


按了Next以后,可以看见更详细的信息,同时也可以改变分区的类型,选择好后按ok就完成移动了。


当E盘移动完以后,再把F盘也同样的往左移动就可以让剩余的空间全部合并了。全部操作完成后,需要按提交(Commit)按钮才能执行命令。

特别注意:

如果分区呈以下零散状况


要把F盘移到最后一个未划分的空间的话,那么F盘的大小会自动变为目标分区的大小,只要是跨一个已经分好的分区来移动原有分区的话,那个要移动的分区大小就会自动变为目标分区的大小。不过分区里的资料会完整保留。


B.用调整大小(Resize)选项来移动分区方法:
在要移动的分区上点右键,选择调整大小(Resize)

在弹出来的调整框里,把鼠标移动到分区的图案上,当出现十字型时,按住鼠标左键不放,把整个分区往左拖即可,不同于移动命令的是,这样移动的话不能同时改变分区类型。





特别注意:
如果移动了C盘的话,如下图,C盘被往后移动了。


在点提交(Commit)按钮时候,软件会要求重新启动,此时需要点击重启(Reboot)以完成操作。移动C盘多用于磁盘0磁道附近出现不可修复的坏道。

共2页 第1页 第2页

版权所有,转载者请务必以超链接的形式注明如下信息:
原载于 问key网
原文地址 http://www.wenkey.com/xuliehao/Acronis-Disk-Director-Suite-11-key-sn.html

posted @ 2011-05-10 19:01 RTY 阅读(864) | 评论 (0)编辑 收藏

如何成为 Python 高手

83人关注此资讯, 我要关注(收藏)(?新闻投递红薯 发布于: 2011年06月23日 (17评)

本文是从 How to become a proficient Python programmer 这篇文章翻译而来。


这篇文章主要是对我收集的一些文章的摘要。因为已经有很多比我有才华的人写出了大量关于如何成为优秀Python程序员的好文章。

我的总结主要集中在四个基本题目上:函数式编程,性能,测试,编码规范。如果一个程序员能将这四个方面的内容知识都吸收消化,那他/她不管怎样都会有巨大的收获。

函数式编程

命令式的编程风格已经成为事实上的标准。命令式编程的程序是由一些描述状态转变的语句组成。虽然有时候这种编程方式十分的有效,但有时也不尽如此(比如复杂性) —— 而且,相对于声明式编程方式,它可能会显得不是很直观。

如果你不明白我究竟是在说什么,这很正常。这里有一些文章能让你脑袋开窍。但你要注意,这些文章有点像《骇客帝国》里的红色药丸 —— 一旦你尝试过了函数式编程,你就永远不会回头了。

性能

你会看到有如此多的讨论都在批评这些“脚本语言”(Python,Ruby)是如何的性能低下,可是你却经常的容易忽略这样的事实:是程序员使用的算法导致了程序这样拙劣的表现。

这里有一些非常好的文章,能让你知道Python的运行时性能表现的细节详情,你会发现,通过这些精炼而且有趣的语言,你也能写出高性能的应用程 序。而且,当你的老板质疑Python的性能时,你别忘了告诉他,这世界上第二大的搜索引擎就是用Python写成的 —— 它叫做Youtube(参考Python摘录)

测试

如今在计算机科学界,测试可能是一个最让人不知所措的主题了。有些程序员能真正的理解它,十分重视TDD(测试驱动开发)和它的后继者BDD(行为 驱动开发)。而另外一些根本不接受,认为这是浪费时间。那么,我现在将告诉你:如果你不曾开始使用TDD/BDD,那你错过了很多最好的东西!

这并不只是说引入了一种技术,可以替换你的公司里那种通过愚蠢的手工点击测试应用程序的原始发布管理制度,更重要的是,它是一种能够让你深入理解你 自己的业务领域的工具 —— 真正的你需要的、你想要的攻克问题、处理问题的方式。如果你还没有这样做,请试一下。下面的这些文章将会给你一些提示:

编码规范

并非所有的代码生来平等。有些代码可以被另外的任何一个好的程序员读懂和修改。但有些却只能被读,而且只能被代码的原始作者修改 —— 而且这也只是在他或她写出了这代码的几小时内可以。为什么会这样?因为没有经过代码测试(上面说的)和缺乏正确的编程规范。

下面的文章给你描述了一个最小的应该遵守的规范合集。如果按照这些指导原则,你将能编写出更简洁和漂亮的代码。作为附加效应,你的程序会变得可读性更好,更容易的被你和任何其他人修改。

那就去传阅这这些资料吧。从坐在你身边的人开始。也许在下一次程序员沙龙或编程大会的时候,也已经成为一名Python编程高手了!

祝你学习旅途顺利。

如果你喜欢这些文章,请在微博上顶一下,让其他人也知道。

更多关于Python的详细信息,或者下载地址请点这里

本文转载自: 外刊IT评论 http://www.aqee.net/ 
收藏此资讯Python 俱乐部
http://www.pythonclub.org/

深入 Python :Dive Into Python 中文版


如何成为 Python 高手

83人关注此资讯, 我要关注(收藏)(?新闻投递红薯 发布于: 2011年06月23日 (17评)

本文是从 How to become a proficient Python programmer 这篇文章翻译而来。


这篇文章主要是对我收集的一些文章的摘要。因为已经有很多比我有才华的人写出了大量关于如何成为优秀Python程序员的好文章。

我的总结主要集中在四个基本题目上:函数式编程,性能,测试,编码规范。如果一个程序员能将这四个方面的内容知识都吸收消化,那他/她不管怎样都会有巨大的收获。

函数式编程

命令式的编程风格已经成为事实上的标准。命令式编程的程序是由一些描述状态转变的语句组成。虽然有时候这种编程方式十分的有效,但有时也不尽如此(比如复杂性) —— 而且,相对于声明式编程方式,它可能会显得不是很直观。

如果你不明白我究竟是在说什么,这很正常。这里有一些文章能让你脑袋开窍。但你要注意,这些文章有点像《骇客帝国》里的红色药丸 —— 一旦你尝试过了函数式编程,你就永远不会回头了。

性能

你会看到有如此多的讨论都在批评这些“脚本语言”(Python,Ruby)是如何的性能低下,可是你却经常的容易忽略这样的事实:是程序员使用的算法导致了程序这样拙劣的表现。

这里有一些非常好的文章,能让你知道Python的运行时性能表现的细节详情,你会发现,通过这些精炼而且有趣的语言,你也能写出高性能的应用程 序。而且,当你的老板质疑Python的性能时,你别忘了告诉他,这世界上第二大的搜索引擎就是用Python写成的 —— 它叫做Youtube(参考Python摘录)

测试

如今在计算机科学界,测试可能是一个最让人不知所措的主题了。有些程序员能真正的理解它,十分重视TDD(测试驱动开发)和它的后继者BDD(行为 驱动开发)。而另外一些根本不接受,认为这是浪费时间。那么,我现在将告诉你:如果你不曾开始使用TDD/BDD,那你错过了很多最好的东西!

这并不只是说引入了一种技术,可以替换你的公司里那种通过愚蠢的手工点击测试应用程序的原始发布管理制度,更重要的是,它是一种能够让你深入理解你 自己的业务领域的工具 —— 真正的你需要的、你想要的攻克问题、处理问题的方式。如果你还没有这样做,请试一下。下面的这些文章将会给你一些提示:

编码规范

并非所有的代码生来平等。有些代码可以被另外的任何一个好的程序员读懂和修改。但有些却只能被读,而且只能被代码的原始作者修改 —— 而且这也只是在他或她写出了这代码的几小时内可以。为什么会这样?因为没有经过代码测试(上面说的)和缺乏正确的编程规范。

下面的文章给你描述了一个最小的应该遵守的规范合集。如果按照这些指导原则,你将能编写出更简洁和漂亮的代码。作为附加效应,你的程序会变得可读性更好,更容易的被你和任何其他人修改。

那就去传阅这这些资料吧。从坐在你身边的人开始。也许在下一次程序员沙龙或编程大会的时候,也已经成为一名Python编程高手了!

祝你学习旅途顺利。

如果你喜欢这些文章,请在微博上顶一下,让其他人也知道。

更多关于Python的详细信息,或者下载地址请点这里




posted @ 2011-05-09 07:35 RTY 阅读(264) | 评论 (0)编辑 收藏

中文名: 高效Python/Django开发工具
英文名: JetBrains PyCharm
资源格式: 压缩包
版本: v1.2.1
发行时间: 2011年
制作发行: JetBrains
语言: 英文
简介:

IPB Image


PyCharm是由JetBrains打造的一款Python IDE。PyCharm具备一般IDE的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……
另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython!

特性:
智能编辑:为Python提供代码完成,快速切换语法,错误代码高亮显示和代码检查;
代码重构:包括重命名,引入变量,不断引进,拉,推下来,其他人;
使用Django进行Web开发:支持特定的模板编辑,服务器从IDE的启动,对HTML,CSS和JavaScript编辑的支持;
项目和代码导航:项目查看,文件结构查看,在文件,类,方法间快速跳转;
Error-Free编码:快速进行代码分析,错误高亮显示和快速修复;
集成VCS:支持Subversion, Perforce, Git以及CVS 等;
跨平台:支持Windows,Mac OS X和Linux操作系统


代码
. '
.:
` ::
: `:
' `.
/ \
.' `.
. -- . . . -- .
. `. _ _ .' .
`._ _.' \( . )/ `._ _.'
/ `_ . _' \
:: \ : / ::
:::: `. . . | . . . .' ::::
::: :::: ```` |\ _ __.i| S!._ /| '''' :::: :::
:::... | \__________. .__________/ | ...:::
:::::: | | | | ::::::
:: _. | | | | ._ ::
. _ __\| | _______.' `._______ | |/__ _ .
._________ |_ |____. . . .____| _| _________.
_| \| | | |/ |_
. \| " | | " |/ .
. _.i(\ \ ' | | ' / /)i._ .
"""______|\ ' ` . /|______"""
| "|_\ E M B R A C E . /_|" |
___| ____ _ _ ____________ i |___
' | | |/ "| | `
! ! ._____________ ' !
_____________ ______ _______________/ /________________ __________
_______// | _______ /_______ /_____ ______/ _______/
/ . |/ _| _/_ _/ _/ _ | /
_____/ /| " . \_ | \ ' | `.__ _____/
_______________/ |____/|_____| |____|\____________________//_____________
. ___ /_____________________| . . .
| \ / . ' | .___.' |
. ___|_ \/ |__________.| _ __| `S! _|___ .
|/ ._ `.______________. `. \|
/ |___ _ . \
/. : .\
/_|____________ .______..-' _|_\
|____________|____________ ____________|____________|
| | | |
|____________|___________|____________|
. |
|__________i|
. .
: |
| _i|
_ |_____..i|_||
`'-. "``-.!
` '
P r o u d l y . P r e s e n t s . .
. _
_________________________|( \.-.___________`-.___ _ ___________
| |
| JetBrains PyCharm v1.2 |
| (c) JetBrains |
| date : 15 Mar, 2o11 size : 14 disks/5.00 MB |
| os : WinAll language : English |
| type : Development |
| protection : RSA-512 |
|_____________________________________________________________. |
______________________________________________________
: | .' :
._ | |__________________________________________________. | _.
|/ | | \|
< __ [ r e l e a s e . i n f o ] __ >
\ | | /
\ | JetBrains PyCharm - Python IDE with complete set of tools | /
\| for productive development with Python programming |/
` language. '
. In addition, the IDE provides high-class capabilities for .
: professional Web development with Django framework. :
| |
| Coding Assistance |
| |
| Code faster and with more pleasure in a smart and |
| configurable editor with code completion, snippets and |
| various intention actions |
| Code Analysis |
| |
| Take advantage of on-the-fly code syntax, error |
| highlighting, intelligent inspections and one-click quick- |
| fix suggestions to make code better |
| Project Code Navigation |
| |
| Instantly navigate from one file to another, from method to |
| its declaration or usages, and through classes hierarchy. |
| Learn keyboard shortcuts to be even more productive |
| Python Refactoring |
| |
| Make project-wide code changes painlessly with rename, |
| extract method, introduce field/variable/constant and pull |
| up/push down refactorings |
| Web Development with Django |
| |
| Even more rapid Web development with Django framework |
| backed up with excellent HTML, CSS and JavaScript editing |
| facilities |
| Google App Engine Support |
| |
| Develop applications for Google App Engine and delegate |
| routine deployment tasks to the IDE |
| |
| |
| INSTALL NOTES: |
| |
| Use the included Keymaker to register... |
| __|__ __
|_ E n j o y . . . /\ \\ `
|_|_____________________________________________________ __/ \____\\
)/\ \ / /
:::::::::::::::: [ g r o u p . i n f o ] ::::::::::: " \_\/____/
_ ____________________________________________________ _ / /\
|_| /____/ \
| It is 2010, and we are still here, almost 10 years `" \ /
| old. We strive to bring you quality above all else, .____\/
| and hope to inspire other groups to do the same. |
| |
| Let us set an example, and motivate future generations |
| to learn reverse engineering, and join the scene. |
__ __|__ |
' // /\ We hope that, with your help, we can continue to |
//____/ \__ tackle every protection. |
\ \ / / |
\____\/_/ Contact information: contact-emb@qq.com |
/\ \ . |
/ \____\ E M B R A C E .:: |
\ / "' established in October 2000 . .: .:::: |
\/____. _ _______________________ ______________________________|
__/ /_
[ g r e e |_ __/ i n g s ]
i.___________________________/ /_______________________________.i
| |
| |
| SSG TMG ECLiPSE ZWT AGAiN SHOCK LND CAFE DAMN TNO BAT |
: ACME ADDICTION NULL DI AiR :
. .
. ... and to all our old members: may you one day find .
' | your way back to us! ... | `
i | | i
__| |_ From the sky we will rise and conquer like we did so _| |___
/\ __ many times before, we will show the spirit of .. __ /\
/ \__/\ ....... /\__/ \
\ / \ `:::' .. / \ /
\/_ \ :::::: ::. ` .:: :::::: `: :: :::::: / _\/
/ \___ _ : ...: : `:' : : ...:. : : : _ ___/ \
\ / :..... : :. .: : :.....: : :....: \ /
\ / `:' \ /
\ / :. .: E M B R A C E ! \ /
\/__ _ `:' _ __\/


代码
. '
.:
` ::
: `:
' `.
/ \
.' `.
. -- . . . -- .
. `. _ _ .' .
`._ _.' \( . )/ `._ _.'
/ `_ . _' \
:: \ : / ::
:::: `. . . | . . . .' ::::
::: :::: ```` |\ _ __.i| S!._ /| '''' :::: :::
:::... | \__________. .__________/ | ...:::
:::::: | | | | ::::::
:: _. | | | | ._ ::
. _ __\| | _______.' `._______ | |/__ _ .
._________ |_ |____. . . .____| _| _________.
_| \| | | |/ |_
. \| " | | " |/ .
. _.i(\ \ ' | | ' / /)i._ .
"""______|\ ' ` . /|______"""
| "|_\ E M B R A C E . /_|" |
___| ____ _ _ ____________ i |___
' | | |/ "| | `
! ! ._____________ ' !
_____________ ______ _______________/ /________________ __________
_______// | _______ /_______ /_____ ______/ _______/
/ . |/ _| _/_ _/ _/ _ | /
_____/ /| " . \_ | \ ' | `.__ _____/
_______________/ |____/|_____| |____|\____________________//_____________
. ___ /_____________________| . . .
| \ / . ' | .___.' |
. ___|_ \/ |__________.| _ __| `S! _|___ .
|/ ._ `.______________. `. \|
/ |___ _ . \
/. : .\
/_|____________ .______..-' _|_\
|____________|____________ ____________|____________|
| | | |
|____________|___________|____________|
. |
|__________i|
. .
: |
| _i|
_ |_____..i|_||
`'-. "``-.!
` '
P r o u d l y . P r e s e n t s . .
. _
_________________________|( \.-.___________`-.___ _ ___________
| |
| JetBrains PyCharm v1.2.1 |
| (c) JetBrains |
| date : 15 Apr, 2o11 size : 14 disks/5.00 MB |
| os : WinAll language : English |
| type : Development |
| protection : RSA-512 |
|_____________________________________________________________. |
______________________________________________________
: | .' :
._ | |__________________________________________________. | _.
|/ | | \|
< __ [ r e l e a s e . i n f o ] __ >
\ | | /
\ | JetBrains PyCharm - Python IDE with complete set of tools | /
\| for productive development with Python programming |/
` language. '
. In addition, the IDE provides high-class capabilities for .
: professional Web development with Django framework. :
| |
| Coding Assistance |
| |
| Code faster and with more pleasure in a smart and |
| configurable editor with code completion, snippets and |
| various intention actions |
| Code Analysis |
| |
| Take advantage of on-the-fly code syntax, error |
| highlighting, intelligent inspections and one-click quick- |
| fix suggestions to make code better |
| Project Code Navigation |
| |
| Instantly navigate from one file to another, from method to |
| its declaration or usages, and through classes hierarchy. |
| Learn keyboard shortcuts to be even more productive |
| Python Refactoring |
| |
| Make project-wide code changes painlessly with rename, |
| extract method, introduce field/variable/constant and pull |
| up/push down refactorings |
| Web Development with Django |
| |
| Even more rapid Web development with Django framework |
| backed up with excellent HTML, CSS and JavaScript editing |
| facilities |
| Google App Engine Support |
| |
| Develop applications for Google App Engine and delegate |
| routine deployment tasks to the IDE |
| |
| |
| INSTALL NOTES: |
| |
| Use the included Keymaker to register... |
| __|__ __
|_ E n j o y . . . /\ \\ `
|_|_____________________________________________________ __/ \____\\
)/\ \ / /
:::::::::::::::: [ g r o u p . i n f o ] ::::::::::: " \_\/____/
_ ____________________________________________________ _ / /\
|_| /____/ \
| It is 2010, and we are still here, almost 10 years `" \ /
| old. We strive to bring you quality above all else, .____\/
| and hope to inspire other groups to do the same. |
| |
| Let us set an example, and motivate future generations |
| to learn reverse engineering, and join the scene. |
__ __|__ |
' // /\ We hope that, with your help, we can continue to |
//____/ \__ tackle every protection. |
\ \ / / |
\____\/_/ Contact information: contact-emb@qq.com |
/\ \ . |
/ \____\ E M B R A C E .:: |
\ / "' established in October 2000 . .: .:::: |
\/____. _ _______________________ ______________________________|
__/ /_
[ g r e e |_ __/ i n g s ]
i.___________________________/ /_______________________________.i
| |
| |
| SSG TMG ECLiPSE ZWT AGAiN SHOCK LND CAFE DAMN TNO BAT |
: ACME ADDICTION NULL DI AiR :
. .
. ... and to all our old members: may you one day find .
' | your way back to us! ... | `
i | | i
__| |_ From the sky we will rise and conquer like we did so _| |___
/\ __ many times before, we will show the spirit of .. __ /\
/ \__/\ ....... /\__/ \
\ / \ `:::' .. / \ /
\/_ \ :::::: ::. ` .:: :::::: `: :: :::::: / _\/
/ \___ _ : ...: : `:' : : ...:. : : : _ ___/ \
\ / :..... : :. .: : :.....: : :....: \ /
\ / `:' \ /
\ / :. .: E M B R A C E ! \ /
\/__ _ `:' _ __\/


下载链接来自sharevirus,

有效注册码:

usersName: Rty
LicenceKey:
===== LICENSE BEGIN =====
81008-12042010
00001owbTYAETk4zVzRIQo10WQVS4U
9Kf7q6uf!4p2qkeLKQdSW"IWiz!ddS
JSH4KB"YmBpICAZnG25E2u5ohOPOLk
===== LICENSE END =====

szf
===== LICENSE BEGIN =====
85700-12042010
00001XPDYm7eosc1rFtt4cOOwlVKpz
1EvJKnFCPTSizjPMEH1c28MxZmIjvh
mroETWBXg6qv!o9uOY6p6vB"pNTMnO
===== LICENSE END =====

1000
===== LICENSE BEGIN =====
13904-12042010
00002k73nc9!bn94HR9QjG"wyY58v8
dtRMmAOKp0E4pCxRyCNWVQtBIoa594
e3dp5yHVnIhfagASpq75c5UF9TQQGy
===== LICENSE END =====
yyyy
===== LICENSE BEGIN =====
94649-12042010
00001qnh1L7nX2WFWedkO3WCo520a3
dAfLTBmuqIJhW1Gza7qknW9VH!lObq
8TDmXRQEONZQzkaoSzV46meFyQRVS2
===== LICENSE END =====

posted @ 2011-05-08 18:08 RTY 阅读(2459) | 评论 (0)编辑 收藏

Creating a Custom Installer for Mac (PackageMaker Package)

RSS

Support Topics/Knowledge Base

Creating a Custom Installer for Mac (PackageMaker Package)

Support
posted this on May-23 2010 02:38 pm

Overview

While Identity Finder is distributed from the IdentityFinder.com website as a dmg, modification to the dmg or application bundle contained therein are not supported. Any organization using Identity Finder for Mac version 3.0 or later (which can take advantage of the management capabilities of Identity Finder Enterprise Console version 4.5 or later) must create and deploy a custom Installer Package that can include a custom plist, license file, and other supplementary files as well as configure the endpoint service application.

The only supported method for creating a custom Installer Package is to use the builds scripts referenced by and attached to this article. These build scripts require the PackageMaker application available with the Apple Developer Tools to be installed on the system used to create the package. Please refer to the Apple User Guide (external PDF link) for complete documentation.

Note: Configuring HTTPS/SSL is outside the scope of this article. If SSL is to be utilized, it is necessary to ensure that the required files and settings are available prior to building the package. For additional information, please refer to the article:

Note: This information only applies to Identity Finder for Mac v3.7 and later. For reference or configuring/troubleshooting an earlier installation package, refer to this KB:

This article contains the following sections:

 

Obtaining the Installation Files

To begin the process, download the build script, Identity Finder application, and client/console communication configuration file.

  1. Download the file IdentityFinderPackageBuilder.zip containing the build scripts.
  2. Download the most recent version of IdentityFinderMacSetup.dmg.
  3. Download the plist with the client/console communication settings from the enterprise console.

 

Preparing the Installation Files

Before executing the script to build the package, it is necessary to organize the files that will be included in the package.

  1. Extract IdentityFinderPackageBuilder.zip to the system that will be used to build the package. That system must have Apple Package Maker installed.
  2. Place the application dmg, IdentityFinderMacSetup.dmg, in the IdentityFinderPackageBuilder folder. The necessary files will be automatically extracted by the script. By default, the application will be installed to:
    /Applications/Identity Finder.app
  3. If using a license file, place the license file - identityfinder.lic - in the IdentityFinderPackageBuilder/Resources folder. By default, this file will be installed to:
    /Library/Application Support/Identity Finder/identityfinder.lic
  4. If using an enterprise console, place the system plist obtained from the Console - com.identityfinder.macedition.plist - in the IdentityFinderPackageBuilder/Resources folder. By default, this file will be installed to:
    /Library/Preferences/com.identityfinder.macedition.plist
  5. Optionally edit the system plist to add in other settings (not recommended)
  6. If using HTTPS/SSL:
    1. Edit the system plist to add the SSL settings. More information on SSL and the necessary settings, is available in the KB article Enabling SSL communication between Mac clients and the Enterprise Console.
    2. Place the certificate file - ca.Pem - in the IdentityFinderPackageBuilder/Resources folder. By default, this file will be installed to:
      /Library/Application Support/Identity Finder/ca.pem

 

Building the Installer Package

The process of building the pkg installer package is performed by executing the script IdentityFinderPackageBuilder.sh at a command prompt, as follows:

  1. Open a Terminal window
  2. Change directory (cd) to the IdentityFinderPackageBuilder/Resources directory
    cd IdentityFinderPackageBuilder/Resources
  3. Verify that all the scripts are executable. If necessary, change the permissions for each script by executing chmod ugo+x. For example:
    chmod ugo+x preflight
    chmod ugo+x preinstall
  4. Change directory to the IdentityFinderPackageBuilder directory
    cd ..
  5. Verify that the IdentityFinderPackageBuilder.sh script file is executable. If ncessary, change the permissions by executing chmod ugo+x. For example:
    chmod ugo+x IdentityFinderPackageBuilder.sh
  6. Execute the IdentityFinderPackageBuilder.sh script. The script requires one of the following two parameters:
    • -RootAuth: Root authorization will be required when the installer runs. This parameter should be used for the initial user-initiated install as root authorization must be obtained to allow the installation of the system resources.
    • -NoRootAuth: Root authorization will not be required when the installer runs. This parameter is used during subsequent automatic and silent upgrades where the installer will run with root permissions.
    To require root authorization, use the -RootAuth parameter:
    ./IdentityFinderPackageBuilder.sh -RootAuth
  7. Press the spacebar to scroll through the license agreement until the “Agree Y/N?” prompt is displayed
  8. Type 'y' at the prompt

The script will then run to completion and create IdentityFinder.pkg in the folder IdentityFinderPackageBuilder/Output. Once completed, test the package.

 

Testing the Package

After building the package, it is necessary to execute the package to verify that all of the components are properly installed and that the endpointservice is started.

  1. Open a Finder window to the location containing the newly created IdentityFinder.pkg file
  2. Run the installer. The install may be monitored for status by performing the following steps:
    • At the Welcome screen, select the Window menu and then select, “Installer Log”
    • In the Detail Level popup, select, "Show All Logs"
    • Example of a successful console log:
      Dec  8 11:52:40 Installer[51892]: @(#)PROGRAM:Install  PROJECT:Install-388
      Dec 8 11:52:40 Installer[51892]: @(#)PROGRAM:Installer PROJECT:Installer-281
      Dec 8 11:52:40 Installer[51892]: Hardware: MacBookPro5,2 @ 2.93 GHz (x 2), 8192 MB RAM
      Dec 8 11:52:40 Installer[51892]: Running OS Build: Mac OS X 10.5.8 (9L31a)
      Dec 8 11:52:40 Installer[51892]: Env: PATH=/usr/bin:/bin:/usr/sbin:/sbin
      Dec 8 11:52:40 Installer[51892]: Env: TMPDIR=/var/folders/ka/kaBzHl2IG6yXTTiPRDoALU+++TI/-Tmp-/
      Dec 8 11:52:40 Installer[51892]: Env: SHELL=/bin/bash
      Dec 8 11:52:40 Installer[51892]: Env: HOME=/Users/devuser
      Dec 8 11:52:40 Installer[51892]: Env: USER=devuser
      Dec 8 11:52:40 Installer[51892]: Env: LOGNAME=devuser
      Dec 8 11:52:40 Installer[51892]: Env: DISPLAY=/tmp/launch-3zJTAy/:0
      Dec 8 11:52:40 Installer[51892]: Env: SSH_AUTH_SOCK=/tmp/launch-aGzIG1/Listeners
      Dec 8 11:52:40 Installer[51892]: Env: Apple_PubSub_Socket_Render=/tmp/launch-yUzIST/Render
      Dec 8 11:52:40 Installer[51892]: Env: __CF_USER_TEXT_ENCODING=0x1F5:0:0
      Dec 8 11:52:40 Installer[51892]: Env: SECURITYSESSIONID=965b9be0
      Dec 8 11:52:40 Installer[51892]: Env: COMMAND_MODE=unix2003
      Dec 8 11:52:40 Installer[51892]: Env: CVS_RSH=ssh
      Dec 8 11:52:40 Installer[51892]: Identity Finder Installation Log
      Dec 8 11:52:40 Installer[51892]: Opened from: /Users/devuser/Documents/workspace/IdfMacPublic/Installer/IdentityFinderPackageBuilder/IdentityFinder.pkg
      Dec 8 11:52:41 installdb[51894]: started (uid 96)
      Dec 8 11:52:41 installdb[51894]: Opened receipt database on '/' with schema 17.
      Dec 8 11:52:41 Installer[51892]: Found receipt (full match) for (identityfinder / com.identityfinder.pkg): (identityfinder / com.identityfinder.pkg)
      Dec 8 11:52:47 installdb[51894]: done. (0.004u + 0.003s)
      Dec 8 11:52:55 runner[51895]: Administrator authorization granted.
      Dec 8 11:52:55 Installer[51892]: ================================================================================
      Dec 8 11:52:55 Installer[51892]: User picked Standard Install
      Dec 8 11:52:55 Installer[51892]: Choices selected for installation:
      Dec 8 11:52:55 Installer[51892]: Upgrade: "Identity Finder"
      Dec 8 11:52:55 Installer[51892]: IdentityFinder.pkg : com.identityfinder.pkg : 3.7.0.3.7
      Dec 8 11:52:55 Installer[51892]: ================================================================================
      Dec 8 11:52:55 Installer[51892]: It took 0.00 seconds to summarize the package selections.
      Dec 8 11:52:55 Installer[51892]: -[IFPKGDerivedDocument sortedPackageLocations]: result = (\n file://localhost\n)
      Dec 8 11:52:55 Installer[51892]: -[IFDInstallController(Private) _buildInstallPlan]: location = file://localhost
      Dec 8 11:52:55 Installer[51892]: -[IFDInstallController(Private) _buildInstallPlan]: file://localhost/Users/devuser/Documents/workspace/IdfMacPublic/Installer/IdentityFinderPackageBuilder/IdentityFinder.pkg
      Dec 8 11:52:55 Installer[51892]: _installNextPackage of 1
      Dec 8 11:52:55 installdb[51896]: started (uid 96)
      Dec 8 11:52:55 installdb[51896]: Opened receipt database on '/' with schema 17.
      Dec 8 11:52:55 Installer[51892]: Found receipt (full match) for (identityfinder / com.identityfinder.pkg): (identityfinder / com.identityfinder.pkg)
      Dec 8 11:52:55 Installer[51892]: Starting installation:
      Dec 8 11:52:55 Installer[51892]: Preparing volume "Macintosh HD" for installation
      Dec 8 11:52:55 Installer[51892]: Configuring volume "Macintosh HD"
      Dec 8 11:52:56 Installer[51892]: Preparing disk for local booted install.
      Dec 8 11:52:56 Installer[51892]: Free space on "Macintosh HD": 49.3 GB (52892991488 bytes).
      Dec 8 11:52:56 Installer[51892]: Create temporary directory "/private/tmp/IdentityFinder.pkg.51892EztnrK"
      Dec 8 11:52:56 Installer[51892]: run preflight script for Identity Finder
      Dec 8 11:52:56 runner[51895]: preflight[51897]: Starting Identity Finder installer preflight script
      Dec 8 11:52:56 runner[51895]: preflight[51897]: Ending Identity Finder installer preflight script
      Dec 8 11:52:56 runner[51895]: preflight[51897]:
      Dec 8 11:52:56 Installer[51892]: Processing Identity Finder:
      Dec 8 11:52:56 Installer[51892]: Determining files to install
      Dec 8 11:52:56 Installer[51892]: It took 0.01 seconds to create the install plan for identityfinder.
      Dec 8 11:52:56 Installer[51892]: Removing previously installed languages
      Dec 8 11:52:56 Installer[51892]: Configuring deferred files
      Dec 8 11:52:56 Installer[51892]: Determining obsolete files
      Dec 8 11:52:56 Installer[51892]: Assembling temporary receipt
      Dec 8 11:52:57 Installer[51892]: Performing pre-extraction actions
      Dec 8 11:52:57 Installer[51892]: run preupgrade script for Identity Finder
      Dec 8 11:52:57 runner[51895]: preupgrade[51899]: Starting pre_upgrade script
      Dec 8 11:52:57 runner[51895]: preupgrade[51899]: End pre_upgrade script
      Dec 8 11:52:57 runner[51895]: preupgrade[51899]:
      Dec 8 11:52:57 Installer[51892]: Removing obsoleted files
      Dec 8 11:52:57 Installer[51892]: Creating destination path
      Dec 8 11:52:57 Installer[51892]: Validating package payload
      Dec 8 11:52:57 Installer[51892]: Starting file extraction
      Dec 8 11:52:57 pkgExtractor[51900]: Extracting...
      Dec 8 11:52:58 pkgExtractor[51900]: 265 of 265 files written in 1.41 seconds.
      Dec 8 11:52:58 pkgExtractor[51900]: 44500 kilobytes installed at 30.9 MB/s.
      Dec 8 11:52:58 Installer[51892]: run postupgrade script for Identity Finder
      Dec 8 11:52:58 runner[51895]: postupgrade[51903]: Starting Identity Finder installer /Users/devuser/Documents/workspace/IdfMacPublic/Installer/IdentityFinderPackageBuilder/IdentityFinder.pkg/Contents/Resources/postupgrade script
      Dec 8 11:52:58 runner[51895]: postupgrade[51903]: Copying EndpointService to /Library/Application Support/Identity Finder...
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: EndpointService successfully copied to /Library/Application Support/Identity Finder
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: Copying com.identityfinder.launchdaemon.plist to /Library/LaunchDaemons...
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: com.identityfinder.launchdaemon.plist cp result = 0
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: Loading com.identityfinder.launchdaemon.plist...
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: launchctl load /Library/LaunchDaemons/com.identityfinder.launchdaemon.plist result = 0
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: Setting owner root:admin for /Applications/Identity Finder.app.
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: Setting file mode to 775 for /Applications/Identity Finder.app.
      Dec 8 11:52:59 runner[51895]: postupgrade[51903]: Ending Identity Finder installer /Users/devuser/Documents/workspace/IdfMacPublic/Installer/IdentityFinderPackageBuilder/IdentityFinder.pkg/Contents/Resources/postupgrade script
      Dec 8 11:52:59 Installer[51892]: Performing post-extraction actions
      Dec 8 11:52:59 Installer[51892]: Finishing receipt
      Dec 8 11:52:59 Installer[51892]: run postflight script for Identity Finder
      Dec 8 11:52:59 runner[51895]: postflight[51916]: Starting post_flight script
      Dec 8 11:52:59 runner[51895]: postflight[51916]: End post_flight script
      Dec 8 11:52:59 Installer[51892]: Removing temporary directory "/private/tmp/IdentityFinder.pkg.51892EztnrK"
      Dec 8 11:52:59 Installer[51892]: Finalize disk "Macintosh HD"
      Dec 8 11:52:59 Installer[51892]: Notifying system of updated components
      Dec 8 11:52:59 Installer[51892]: _installNextPackage of 0
      Dec 8 11:52:59 Installer[51892]:
      Dec 8 11:52:59 Installer[51892]: **** Summary Information ****
      Dec 8 11:52:59 Installer[51892]: Operation Elapsed time
      Dec 8 11:52:59 Installer[51892]: -----------------------------
      Dec 8 11:52:59 Installer[51892]: script 0.91 seconds
      Dec 8 11:52:59 Installer[51892]: zero 0.01 seconds
      Dec 8 11:52:59 Installer[51892]: install 2.79 seconds
      Dec 8 11:52:59 Installer[51892]: validate 0.00 seconds
      Dec 8 11:52:59 Installer[51892]: os 0.00 seconds
      Dec 8 11:52:59 Installer[51892]: extract 1.50 seconds
      Dec 8 11:52:59 Installer[51892]: receipt 0.41 seconds
      Dec 8 11:52:59 Installer[51892]: disk 1.01 seconds
      Dec 8 11:52:59 Installer[51892]: config 0.02 seconds
      Dec 8 11:52:59 Installer[51892]:
      Dec 8 11:53:00 Installer[51892]: Starting installation:
      Dec 8 11:53:00 Installer[51892]: Finalizing installation.
      Dec 8 11:53:00 Installer[51892]: Registering applications
      Dec 8 11:53:00 runner[51895]: Touched '/Applications/Identity Finder.app'
      Dec 8 11:53:00 Installer[51892]: Registered /Applications/Identity Finder.app.
      Dec 8 11:53:00 runner[51895]: Touched '/Applications/./Identity Finder.app'
      Dec 8 11:53:00 runner[51895]: Touched '/Applications/.'
      Dec 8 11:53:00 Installer[51892]: IFDInstallController 85DB40 state = 5
      Dec 8 11:53:00 Installer[51892]: Displaying 'Install Succeeded' UI.
      Dec 8 11:53:01 installdb[51896]: done. (0.004u + 0.003s)
  3. Verify that the application has been installed to /Applications (or the appropriate location if the script was modified).
    /Applications/Identity Finder.app
  4. Verify that the license file, certificate file, and system plist were all installed to the specified locations. For example:
    /Library/Application Support/Identity Finder/identityfinder.lic
    /Library/Application Support/Identity Finder/ca.pem
    /Library/Preferences/com.identityfinder.macedition.plist
  5. Verify that the launchdaemon, which automatically starts the endpoint service at system start-up, was installed to:
    /Library/LaunchDaemons/com.identityfinder.launchdaemon.plist
  6. Verify that the endpoint service binary was installed to:
    /Library/Application Support/Identity Finder/EndpointService
  7. Test the installed application to ensure that a search runs to completion and that the results appear in the console.

 

Removing files on upgrade

When executing an upgrade with a PackageMaker package, no files will be removed even if these files are not present in the new package. If it is necessary to remove files on upgrade, a Preflight script must be created and included in the new package by specifying its location on the Scripts tab within PackageMaker. For example, this script will delete a preexisting Identity Finder.app. Note: Be extremely careful when using this script as an error in any path may result in the deletion of all applications on the system. It is likely more desirable to move the old files to $HOME/.Trash and/or rename them.

A sample Uninstall script is attached to this article as UninstallIDF.sh.

 

Attachments

1 Person found this helpful - Me too!
Topic is closed for comments

posted @ 2011-05-07 07:35 RTY 阅读(830) | 评论 (0)编辑 收藏

     摘要: 源文件下载地址:http://python.net/~gherman/projects/buildpkg/当前记录版本号为: 0.3Readme############################################################################################################ Readme buildpkg...  阅读全文

posted @ 2011-05-07 07:11 RTY 阅读(864) | 评论 (0)编辑 收藏

史蒂夫·乔布斯很懂团队建设

本文是从 Steve Jobs Understands Team Building 这篇文章翻译而来。


我偶然读到了由Rama Dev Jager 和 Rafael Ortiz 在1998年写的《In the Company of Giants》这本书里的一段节选。他们采访苹果公司CEO 史蒂夫·乔布斯,下面的就是他关于团队建设的一些谈话:

问:你一直在向苹果公司、NeXT公司和Pixar公司输送人才,你认为他们是什么样的人才?

史蒂夫·乔布斯: 我想我一直在寻找真正的聪明的人,与他们一起共事。我们所从事的这些重要工作中没有一项是可以由一两个人或三四个人完成的 … 为了把这些一两个人不能完成的任务做好,你必须找到杰出的人

这关键的总结发现是,对于生活中的大多数事情,一般的和最好的相比,一个最好的能抵两个一般的 …

但是,在我所感兴趣的这个领域 —— 最初是硬件设计 —— 我发现一个最优秀的人完成工作的能力能抵50到100个一般水平的人。鉴于此,我们一直在追求精华之中的精华。

这就是我们所做的事情。我们建设一个团队,保证里面的成员都是A+水平。一个都是A+水平的小团队能抵上100个都是B或C水平的巨型团队。

问: 你的所有才能归功于善于发现人才吗?

史蒂夫·乔布斯: 并不只是发现人才。在招到人才后,你要建设一个团队氛围,让人们都感到他们周围都围绕着跟他一样有才能的人,而且工作是第一的。就要他们知道,他们的工作成绩代表了一切,这是一个深刻的明白的认识。 —— 这就是全部。

招募人才并不是你一个人能干的了的,需要更多的帮助,所以我发现大家一起推荐、培养出唯才是举的文化氛围才是最好的方法。

问: 然而,对于一个创业公司,管理者并不会有那么多时间花在招募人才的事情上。

史蒂夫·乔布斯: 我完全的不赞同。我认为那是最重要的工作 … 在一个创业公司里,最初的十个人决定了这个公司的成败与否。

史蒂夫是对的。这就是我上周Tweeted这个的原因:

真正的IT/安全专业天才应该为创造不同而工作,而不是为了降低成本、“调整业务”、或解决其它困境工作。

我强调这一点:有志向的人希望创造出不同。他们想要给生活创造更好的东西。(我喜欢这句格言 — time to junk the present one, if you catch my drift, and go back!)

图片来源: 维基百科

posted @ 2011-05-04 07:32 RTY 阅读(257) | 评论 (0)编辑 收藏

漫画:软件开发评估过程

本文是从 The Process of Software Estimation 这篇文章翻译而来。

我很喜欢这个漫画,我做过的项目没有一个不是拖拖拉拉的,边开发边修改需求,永远没有按照计划完成过。起初的计划看起来总是那么幼稚。
可是反过来,经常会有人说,有经验的人很滑头,非要把一天能干完的事说成两天。我无语。

软件开发评估过程

查看大图

posted @ 2011-05-04 07:29 RTY 阅读(192) | 评论 (0)编辑 收藏

程序员必须知道的几个国外IT网站

此文非翻译,属本人个人评论。

最近有些读者给我来信说很喜欢这个网站上的文章,并且也想通过翻译学习英文,他们询问我这些文章的英文原文是从哪里找到的?

外刊IT评论上的翻译的英文来源很杂,我总结了一下,大概有几个集中的出处,下面列举出来供大家学习参考:

1.TheServerSide

这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以Java和Java周边信息为主,不过最近它也有向客户端和微软产品扩展的趋势。这个网站最初是以免费发放《Mastering Enterprise JavaBeans》这本电子书出名的,现在这本书已经更新到了ELB 3.0版,你现在仍然可以从网站上免费下载这本书。这个网站的内容包括IT新闻咨询,专家评论,专家访谈视频,会议视频等。

2.infoq

infoq上一个重点就是敏捷开发,内容很丰富,而且这个网站还提供中文版,但可能是翻译耗时的原因,中文内容总是比英文内容滞后几天。

3.Digg 的科技频道

Digg最初只是几个技术人员办的专门提供科技信息的网站,由于粉丝的不断增多,流量越来越大,网站的内容也扩展到非科技的各个方面,可糟糕的是,这导致了IT科技信息内容的质量不断下降,引起了很多元老级粉丝的不满,特别是去年这个网站的一次改版行动彻底的伤痛了粉丝的心,导致大批忠实粉丝撤离。网站的整个访问量几乎跌了一半。这是我眼睁睁的看到的一次由于改版而导致的灾难性事故的活生生的例子。

4.reddit 的编程和科技频道

reddit和Digg非常的相似,但界面看起来粗糙一些。最近这个网站的访问量大增,原因就是从Digg撤离的人都跑到这里来了。

5.Hacker News

Hacker News 是我最喜欢的一个网站,虽然它的界面在上面提到的这些网站中是最简陋的。Hacker News属于ycombinator.com旗下网站,ycombinator是一个给科技创业公司提供创业资金的公司,很多著名的IT公司都是从这里出来。Hacker News上的很多文章都是关于如何创业的。

如果你的英语阅读能力还可以,而且是搞编程的,我强烈推荐你经常到这些网站看看,一定会让你耳目一新。我不是崇洋媚外,但我坚决的认为国内的这些IT网站都烂的很,跟国内的软件业是同一个水平。蜀中无大将,那还是先看看别人的吧。

posted @ 2011-05-04 07:27 RTY 阅读(299) | 评论 (0)编辑 收藏

注释里的诅咒:哪种语言遭受最多的咒骂?

,C++遭受了最多的开发人员的诅咒

任何一个程序员都会告诉你,编程中有时你会气得叫骂不已。但你是否知道写C++程序会比写PHP程序或Python程序引起你更多的咒骂呢?

一个叫Andrew Vos的开发人员在寻找一个可以业余时开发的项目时突发奇想,他决定在GitHub上抓取100万条程序注释、评论信息,对其进行扫描,看看里面有多少脏话。他只提取了George Carlin 所说的七个脏词按编程语言分类对它们进行统计。为了避免语言的流行程度对统计结果的影响, Vos 对每种语言都抓取的相同数量的注释。

C++荣膺桂冠,但优势不是很明显。Ruby和JavaScript旗鼓相当,紧随C++之后。然后就是C,Java和C#,它们处于中间,但数量于前者相比大幅的下降。Python和PHP程序员可能要么对这种语言很满意,要么是很绅士、有礼貌。当然,并不是说他们没有在注释评论中留下骂语就表明他们没有咒骂。就像Vos在他的一篇博客里写的,“我用Python,但我的所有咒骂都是跟IE相关的。”

你根本就无法统计究竟有多少开发人员在开发时对着屏幕咒骂,但如果你想找一种被诅咒的相对较少的编程语言时,PHP和Python看起来还是相对较好的选择。

然而,你会发现,读读那些实际的注释评论信息会比这些统计数据更有趣,你可以访问 Vos 在GitHub上的帐户查看一下。我个人最喜欢的一句是:“去他妈的。就这样发布吧。”一点没错。

posted @ 2011-05-04 07:24 RTY 阅读(401) | 评论 (0)编辑 收藏

只要一个返回语句

本文是从 A return to Good Code 这篇文章翻译而来。

别再这样写了:

public boolean foo() {
 if (true) {
   return true;  
 }  else {  
 return false;  
 }
}

每次当我深入某个开源项目,看到大概是某个专家写的、并被有经验的专业人士审查过的这样的代码,我都会惊讶不已,竟然没有人去阻止这个开发者在这个方法里胡乱的放置返回语句。

请告诉我,把代码写成下面的样子很难吗?

public boolean foo() {  
 boolean flag = true;  
 if (true) { 
   flag=true;
 }  
 else {
   flag=false;
 }
 return flag;
}

这是Java基本常识。实际上,这不仅是Java基本常识,这是小学水平的Java知识。如果你的方法返回一个值,你应该在方法的开始处把它声明做一个变量。然后再去做一些赋予这个变量正确意义的操作。然后,在你的最后一行,把这个变量返回给调用程序。这样做不仅仅是为写出好的代码,这是一种有教养的表现。

你是否曾试图修改过一些在方法里到处都是返回语句的程序代码?无从下手。事实上,去维护这样的代码,你第一要做的是重新组织它的结构,让它里面不再有一大堆的返回语句。这样才能把事情做好。没有任何一个方法是不可以写成只在末尾处有一个的、单一的、易于找到的返回语句的形式的。

的确,烂程序员总有一万个理由来说明他们为什么编写出这样糟糕的程序代码。“我只是为了避免在返回时一堆的多余的条件判断语句。”那好,首先,我告诉你,计算机中执行一些条件判断语句时是该死的快,你用短路一个方法来节省CPU的一两个指令操作不是显的太荒诞了吗。此外,如果这些所谓多余的条件判断语句最终没有派上用场的话,这是否是一个有用的信号来说明你的“多余”的代码可能需要重写,也许可以把它们重构成另外一个方法,让它们显的不多余?

关键要说的是,没有任何理由可以为写糟糕的代码或当懒惰的程序员做托辞,特别是当写出好的代码并不是那么困难的情况下。不要在写出里面有成百上千个返回语句的方法了。Java里的方法只可以返回一个值,相应的,一个方法应该有且只有一个返回语句。

posted @ 2011-05-04 07:21 RTY 阅读(243) | 评论 (0)编辑 收藏

仅列出标题
共31页: First 22 23 24 25 26 27 28 29 30 Last