如何基于DC/OS整合smack that

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
基于面向服务构架的用户界面集成方法
下载积分:30
内容提示:基于面向服务构架的用户界面集成方法
文档格式:PDF|
浏览次数:211|
上传日期: 08:22:59|
文档星级:
该用户还上传了这些文档
基于面向服务构架的用户界面集成方法
官方公共微信基于xmpp openfire smack开发之smack类库介绍和使用[2] - 推酷
基于xmpp openfire smack开发之smack类库介绍和使用[2]
关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等。
下面我们写几个程序小例子测试一下。
(1)登录操作
PPConnection.DEBUG_ENABLED =
AccountManager accountM
final ConnectionConfiguration connectionConfig = new ConnectionConfiguration(
&192.168.1.78&, Integer.parseInt(&5222&), &&);
// 允许自动连接
connectionConfig.setReconnectionAllowed(true);
connectionConfig.setSendPresence(true);
Connection connection = new XMPPConnection(connectionConfig);
connection.connect();// 开启连接
accountManager = connection.getAccountManager();// 获取账户管理类
} catch (XMPPException e) {
throw new IllegalStateException(e);
connection.login(&admin&, &admin&,&SmackTest&);
System.out.println(connection.getUser());
connection.getChatManager().createChat(&shimiso@&,null).sendMessage(&Hello word!&);
运行结果:
在login中一共有三个参数,登录名,密码,资源名,可能有人不明白资源名到底是什么意思,其实就是客户端的来源,客户端的名称,如果不写它默认就叫smack,如果你用相同的账户不同的资源名和同一个人发三条消息,那将会弹出三个窗口,而不是一个窗口。
同时smack还为我们提供了非常好的调试工具Smack Debug,利用该工具我们可以准确的捕获详细的往返报文信息。
(2)下面我们继续写个聊天的例子:
PPConnection.DEBUG_ENABLED =
AccountManager accountM
final ConnectionConfiguration connectionConfig = new ConnectionConfiguration(
&192.168.1.78&, Integer.parseInt(&5222&), &&);
// 允许自动连接
connectionConfig.setReconnectionAllowed(true);
connectionConfig.setSendPresence(true);
Connection connection = new XMPPConnection(connectionConfig);
connection.connect();// 开启连接
accountManager = connection.getAccountManager();// 获取账户管理类
} catch (XMPPException e) {
throw new IllegalStateException(e);
connection.login(&admin&, &admin&,&SmackTest3&);
ChatManager chatmanager = connection.getChatManager();
Chat newChat = chatmanager.createChat(&shimiso@&, new MessageListener() {
public void processMessage(Chat chat, Message message) {
if (message.getBody() != null) {
System.out.println(&Received from 【&
+ message.getFrom() + &】 message: &
+ message.getBody());
Scanner input = new Scanner(System.in);
while (true) {
String message = input.nextLine();
newChat.sendMessage(message);
运行结果:
这里我们用Scanner来捕捉用户在控制台的键盘操作,将信息发出,同时创建了一个MessageListener监听,在其中强制实现processMessage方法即可捕获发回的信息,在初次使用上还是较为容易上手的,我们只要细心查看API即可逐步深入下去。
(3)除了聊天以外我们经常还能想到就是广播
需要给所有在线的用户发送一个通知,或者给所有在线和离线的用户全发送,我们先演示如何给在线用户发送一个广播:
PPConnection.DEBUG_ENABLED =
AccountManager accountM
final ConnectionConfiguration connectionConfig = new ConnectionConfiguration(
&192.168.1.78&, Integer.parseInt(&5222&), &&);
// 允许自动连接
connectionConfig.setReconnectionAllowed(true);
connectionConfig.setSendPresence(true);
Connection connection = new XMPPConnection(connectionConfig);
connection.connect();// 开启连接
accountManager = connection.getAccountManager();// 获取账户管理类
} catch (XMPPException e) {
throw new IllegalStateException(e);
connection.login(&admin&, &admin&,&SmackTest3&);
Message newmsg = new Message();
newmsg.setTo(&shimiso@&);
newmsg.setSubject(&重要通知&);
newmsg.setBody(&今天下午2点60分有会!&);
newmsg.setType(Message.Type.headline);// normal支持离线
connection.sendPacket(newmsg);
connection.disconnect();
运行结果:
将参数设置为Message.Type.normal即可支持离线广播,openfire系统会自动判断该用户是否在线,如果在线就直接发送出去,如果不在线则将信息存入ofoffline表,现在我将shimiso用户退出登录,再给它发消息,我们可以进入openfire库的ofoffline表中,非常清楚看到里面躺着一条离线消息记录是发给shimiso这个用户的
(4)那么我们如何让shimiso这个用户一登陆就取到离线消息呢?
请看如下代码
PPConnection.DEBUG_ENABLED =
AccountManager accountM
final ConnectionConfiguration connectionConfig = new ConnectionConfiguration(
&192.168.1.78&, Integer.parseInt(&5222&), &&);
// 允许自动连接
connectionConfig.setReconnectionAllowed(true);
connectionConfig.setSendPresence(false);//不要告诉服务器自己的状态
Connection connection = new XMPPConnection(connectionConfig);
connection.connect();// 开启连接
accountManager = connection.getAccountManager();// 获取账户管理类
} catch (XMPPException e) {
throw new IllegalStateException(e);
connection.login(&shimiso&, &123&,&SmackTest&);
OfflineMessageManager offlineManager = new OfflineMessageManager(
connection);
Iterator&org.jivesoftware.smack.packet.Message& it = offlineManager
.getMessages();
System.out.println(offlineManager.supportsFlexibleRetrieval());
System.out.println(&离线消息数量: & + offlineManager.getMessageCount());
Map&String, ArrayList&Message&& offlineMsgs = new HashMap&String, ArrayList&Message&&();
while (it.hasNext()) {
org.jivesoftware.smack.packet.Message message = it.next();
System.out
.println(&收到离线消息, Received from 【& + message.getFrom()
+ &】 message: & + message.getBody());
String fromUser = message.getFrom().split(&/&)[0];
if (offlineMsgs.containsKey(fromUser)) {
offlineMsgs.get(fromUser).add(message);
ArrayList&Message& temp = new ArrayList&Message&();
temp.add(message);
offlineMsgs.put(fromUser, temp);
// 在这里进行处理离线消息集合......
Set&String& keys = offlineMsgs.keySet();
Iterator&String& offIt = keys.iterator();
while (offIt.hasNext()) {
String key = offIt.next();
ArrayList&Message& ms = offlineMsgs.get(key);
for (int i = 0; i & ms.size(); i++) {
System.out.println(&--&& + ms.get(i));
offlineManager.deleteMessages();
} catch (Exception e) {
e.printStackTrace();
offlineManager.deleteMessages();//删除所有离线消息
Presence presence = new Presence(Presence.Type.available);
nnection.sendPacket(presence);//上线了
nnection.disconnect();//关闭连接
运行结果:
这里我们需要特别当心的是先不要告诉openfire服务器你上线了,否则永远也拿不到离线消息,用下面英文大概意思就是在你上线之前去获取离线消息,这么设计是很有道理的。
The OfflineMessageManager helps manage offline messages even before the user has sent an available presence. When a user asks for his offline messages before sending an available presence then the server will not send a flood with all the offline messages when the user becomes online. The server will not send a flood with all the offline messages to the session that made the offline messages request or to any other session used by the user that becomes online.
拿到离线消息处理完毕之后删除离线消息offlineManager.deleteMessages() 接着通知服务器上线了。
(5)下面我们来看看如何来发送文件
PPConnection.DEBUG_ENABLED =
AccountManager accountM
final ConnectionConfiguration connectionConfig = new ConnectionConfiguration(
&192.168.1.78&, Integer.parseInt(&5222&), &&);
// 允许自动连接
connectionConfig.setReconnectionAllowed(true);
connectionConfig.setSendPresence(true);
Connection connection = new XMPPConnection(connectionConfig);
connection.connect();// 开启连接
accountManager = connection.getAccountManager();// 获取账户管理类
} catch (XMPPException e) {
throw new IllegalStateException(e);
connection.login(&admin&, &admin&,&Rooyee&);
Presence pre = connection.getRoster().getPresence(&shimiso@&);
System.out.println(pre);
if (pre.getType() != Presence.Type.unavailable) {
// 创建文件传输管理器
FileTransferManager manager = new FileTransferManager(connection);
// 创建输出的文件传输
OutgoingFileTransfer transfer = manager
.createOutgoingFileTransfer(pre.getFrom());
// 发送文件
transfer.sendFile(new File(&E:\\Chrysanthemum.jpg&), &图片&);
while (!transfer.isDone()) {
if (transfer.getStatus() == FileTransfer.Status.in_progress) {
// 可以调用transfer.getProgress();获得传输的进度 
System.out.println(transfer.getStatus());
System.out.println(transfer.getProgress());
System.out.println(transfer.isDone());
运行结果:
在这里我们需要特别注意的是,跨资源是无法发送文件的,看connection.login(&admin&, &admin&,&Rooyee&);这个代码就明白了,必须是“域名和资源名”完全相同的两个用户才可以互发文件,否则永远都没反应,如果不清楚自己所用的客户端的资源名,可以借助前面提到的SmackDebug工具查看往返信息完整报文,在to和from中一定可以看到。
如果我们自己要写文件接收例子的话,参考代码如下:
FileTransferManager transfer = new FileTransferManager(connection);
transfer.addFileTransferListener(new RecFileTransferListener());
public class RecFileTransferListener implements FileTransferListener {
public String getFileType(String fileFullName) {
if (fileFullName.contains(&.&)) {
return &.& + fileFullName.split(&//.&)[1];
return fileFullN
public void fileTransferRequest(FileTransferRequest request) {
System.out.println(&接收文件开始.....&);
final IncomingFileTransfer inTransfer = request.accept();
final String fileName = request.getFileName();
long length = request.getFileSize();
final String fromUser = request.getRequestor().split(&/&)[0];
System.out.println(&文件大小:& + length + &
& + request.getRequestor());
System.out.println(&& + request.getMimeType());
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(&.&));
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
final File file = chooser.getSelectedFile();
System.out.println(file.getAbsolutePath());
new Thread() {
public void run() {
System.out.println(&接受文件: & + fileName);
inTransfer
.recieveFile(new File(file
.getAbsolutePath()
+ getFileType(fileName)));
Message message = new Message();
message.setFrom(fromUser);
message.setProperty(&REC_SIGN&, &SUCCESS&);
message.setBody(&[& + fromUser + &]发送文件: &
+ fileName + &/r/n& + &存储位置: &
+ file.getAbsolutePath()
+ getFileType(fileName));
if (Client.isChatExist(fromUser)) {
Client.getChatRoom(fromUser)
.messageReceiveHandler(message);
ChatFrameThread cft = new ChatFrameThread(
fromUser, message);
cft.start();
} catch (Exception e2) {
e2.printStackTrace();
}.start();
System.out.println(&拒绝接受文件: & + fileName);
request.reject();
Message message = new Message();
message.setFrom(fromUser);
message.setBody(&拒绝& + fromUser + &发送文件: & + fileName);
message.setProperty(&REC_SIGN&, &REJECT&);
if (Client.isChatExist(fromUser)) {
Client.getChatRoom(fromUser).messageReceiveHandler(message);
ChatFrameThread cft = new ChatFrameThread(fromUser, message);
cft.start();
* InputStream in = inTransfer.recieveFile();
* String fileName = &r&+inTransfer.getFileName();
* OutputStream out = new FileOutputStream(new
* File(&d:/receive/&+fileName)); byte[] b = new byte[512];
* while(in.read(b) != -1) { out.write(b); out.flush(); }
* in.close(); out.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println(&接收文件结束.....&);
(6)用户列表
* 返回所有组信息 &RosterGroup&
* @return List(RosterGroup)
public static List&RosterGroup& getGroups(Roster roster) {
List&RosterGroup& groupsList = new ArrayList&RosterGroup&();
Collection&RosterGroup& rosterGroup = roster.getGroups();
Iterator&RosterGroup& i = rosterGroup.iterator();
while (i.hasNext())
groupsList.add(i.next());
return groupsL
* 返回相应(groupName)组里的所有用户&RosterEntry&
* @return List(RosterEntry)
public static List&RosterEntry& getEntriesByGroup(Roster roster,
String groupName) {
List&RosterEntry& EntriesList = new ArrayList&RosterEntry&();
RosterGroup rosterGroup = roster.getGroup(groupName);
Collection&RosterEntry& rosterEntry = rosterGroup.getEntries();
Iterator&RosterEntry& i = rosterEntry.iterator();
while (i.hasNext())
EntriesList.add(i.next());
return EntriesL
* 返回所有用户信息 &RosterEntry&
* @return List(RosterEntry)
public static List&RosterEntry& getAllEntries(Roster roster) {
List&RosterEntry& EntriesList = new ArrayList&RosterEntry&();
Collection&RosterEntry& rosterEntry = roster.getEntries();
Iterator&RosterEntry& i = rosterEntry.iterator();
while (i.hasNext())
EntriesList.add(i.next());
return EntriesL
(7)用户头像的获取
使用VCard,很强大,具体自己看API吧,
可以看看VCard传回来XML的组成,含有很多信息的
* 获取用户的vcard信息
* @param connection
* @param user
* @throws XMPPException
public static VCard getUserVCard(XMPPConnection connection, String user) throws XMPPException
VCard vcard = new VCard();
vcard.load(connection, user);
* 获取用户头像信息
public static ImageIcon getUserImage(XMPPConnection connection, String user) {
ImageIcon ic =
System.out.println(&获取用户头像信息: &+user);
VCard vcard = new VCard();
vcard.load(connection, user);
if(vcard == null || vcard.getAvatar() == null)
ByteArrayInputStream bais = new ByteArrayInputStream(
vcard.getAvatar());
Image image = ImageIO.read(bais);
ic = new ImageIcon(image);
System.out.println(&图片大小:&+ic.getIconHeight()+& &+ic.getIconWidth());
} catch (Exception e) {
e.printStackTrace();
(8)组操作和用户分组操作
* 添加一个组
public static boolean addGroup(Roster roster,String groupName)
roster.createGroup(groupName);
} catch (Exception e) {
e.printStackTrace();
* 删除一个组
public static boolean removeGroup(Roster roster,String groupName)
* 添加一个好友
public static boolean addUser(Roster roster,String userName,String name)
roster.createEntry(userName, name, null);
} catch (Exception e) {
e.printStackTrace();
* 添加一个好友到分组
* @param roster
* @param userName
* @param name
public static boolean addUser(Roster roster,String userName,String name,String groupName)
roster.createEntry(userName, name,new String[]{ groupName});
} catch (Exception e) {
e.printStackTrace();
* 删除一个好友
* @param roster
* @param userName
public static boolean removeUser(Roster roster,String userName)
if(userName.contains(&@&))
userName = userName.split(&@&)[0];
RosterEntry entry = roster.getEntry(userName);
System.out.println(&删除好友:&+userName);
System.out.println(&User: &+(roster.getEntry(userName) == null));
roster.removeEntry(entry);
} catch (Exception e) {
e.printStackTrace();
(9)用户查询
public static List&UserBean& searchUsers(XMPPConnection connection,String serverDomain,String userName) throws XMPPException
List&UserBean& results = new ArrayList&UserBean&();
System.out.println(&查询开始...............&+connection.getHost()+connection.getServiceName());
UserSearchManager usm = new UserSearchManager(connection);
Form searchForm = usm.getSearchForm(serverDomain);
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer(&Username&, true);
answerForm.setAnswer(&search&, userName);
ReportedData data = usm.getSearchResults(answerForm, serverDomain);
Iterator&Row& it = data.getRows();
UserBean user =
while(it.hasNext())
user = new UserBean();
row = it.next();
user.setUserName(row.getValues(&Username&).next().toString());
user.setName(row.getValues(&Name&).next().toString());
user.setEmail(row.getValues(&Email&).next().toString());
System.out.println(row.getValues(&Username&).next());
System.out.println(row.getValues(&Name&).next());
System.out.println(row.getValues(&Email&).next());
results.add(user);
//若存在,则有返回,UserName一定非空,其他两个若是有设,一定非空
(10)修改自身状态
包括上线,隐身,对某人隐身,对某人上线
ublic static void updateStateToAvailable(XMPPConnection connection)
Presence presence = new Presence(Presence.Type.available);
nnection.sendPacket(presence);
public static void updateStateToUnAvailable(XMPPConnection connection)
Presence presence = new Presence(Presence.Type.unavailable);
nnection.sendPacket(presence);
public static void updateStateToUnAvailableToSomeone(XMPPConnection connection,String userName)
Presence presence = new Presence(Presence.Type.unavailable);
presence.setTo(userName);
nnection.sendPacket(presence);
public static void updateStateToAvailableToSomeone(XMPPConnection connection,String userName)
Presence presence = new Presence(Presence.Type.available);
presence.setTo(userName);
nnection.sendPacket(presence);
(11)心情修改
* 修改心情
* @param connection
* @param status
public static void changeStateMessage(XMPPConnection connection,String status)
Presence presence = new Presence(Presence.Type.available);
presence.setStatus(status);
connection.sendPacket(presence);
(12)修改用户头像
有点麻烦,主要是读入图片文件,编码,传输之
public static void changeImage(XMPPConnection connection,File f) throws XMPPException, IOException{
VCard vcard = new VCard();
vcard.load(connection);
bytes = getFileBytes(f);
String encodedImage = StringUtils.encodeBase64(bytes);
vcard.setAvatar(bytes, encodedImage);
vcard.setEncodedImage(encodedImage);
vcard.setField(&PHOTO&, &&TYPE&image/jpg&/TYPE&&BINVAL&&
+ encodedImage + &&/BINVAL&&, true);
ByteArrayInputStream bais = new ByteArrayInputStream(
vcard.getAvatar());
Image image = ImageIO.read(bais);
ImageIcon ic = new ImageIcon(image);
vcard.save(connection);
private static byte[] getFileBytes(File file) throws IOException {
BufferedInputStream bis =
bis = new BufferedInputStream(new FileInputStream(file));
int bytes = (int) file.length();
byte[] buffer = new byte[bytes];
int readBytes = bis.read(buffer);
if (readBytes != buffer.length) {
throw new IOException(&Entire file not read&);
} finally {
if (bis != null) {
bis.close();
(13)用户状态的监听
即对方改变头像,状态,心情时,更新自己用户列表,其实这里已经有
实现的监听器
nal Roster roster = Client.getRoster();
roster.addRosterListener(
new RosterListener() {
public void entriesAdded(Collection&String& arg0) {
// TODO Auto-generated method stub
System.out.println(&--------EE:&+&entriesAdded&);
public void entriesDeleted(Collection&String& arg0) {
// TODO Auto-generated method stub
System.out.println(&--------EE:&+&entriesDeleted&);
public void entriesUpdated(Collection&String& arg0) {
// TODO Auto-generated method stub
System.out.println(&--------EE:&+&entriesUpdated&);
public void presenceChanged(Presence arg0) {
// TODO Auto-generated method stub
System.out.println(&--------EE:&+&presenceChanged&);
至此,有关openfire和smack的安装部署使用基本代码调试讲解完毕,本集源码容我稍作整理后再更新出来,请大家保持关注,同时下面会我们进入课程的重点环节,包括
如何在Openfire服务器上开发一款Android端的聊天软件。。。
如何在openfire上二次开发,如何在在web和android上接入IM模块。。。
如何在Spark基础二次开发基于java swing的PC客户端。。。
结合我之前讲的
由浅入深的对apache MINA,XMPP协议,以及socket底层等一些难点进行讨论剖析。。。
Openfire作为一款优秀的XMPP开源服务器,整合及时通讯,视频,语音,会议室等多种服务,如何更好的让它集成到现有的系统中去才是我们研究的最终价值,否则一切都是空谈,本教程结合实战和理论,为大家提供提供一个共同研究和学习的平台,欢迎有识之士加入我们的技术交流群:,
共同探讨Java开发那些事儿
放些图以飨读者。。。
PS:本课程为原创如有雷同纯属巧合欢迎各种形式的技术交流,共同探讨和斧正
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致小站会根据您的关注,为您发现更多,
看到喜欢的小站就马上关注吧!
下一站,你会遇见谁的梦想?
看乔布斯走后一年,库克为苹果做了甚
看乔布斯走后一年,库克为苹果做了甚
距离乔布斯正式从苹果辞职已经过了一年有余,难忘怀去年8月24日的那一天,被誉为&苹果灵魂&的乔布斯宣布辞职,推荐接任帅位。去年10月5日对苹果公司来说更是晴天霹雳,苹果乔帮主因病去世,公司失去了一位富有远见和创造力的天才,世界失去了一位奇人。乔帮主留下的是一家唯有他能创造出来的公司,很多人曾怀疑这个极富实力、盈利能力超强的企业,会因为这个&产品终极检验师&的离世而失去敏锐的市场嗅觉。
时过一年的今天,我们回首看看乔帮主走后,库克为苹果做出了哪些突出业绩,苹果真的如人们所说的一样,失去了乔布斯时代的激情、创新和对消费者负责的敏锐洞察力吗?
慈善贡献被誉为&产品终极检验师&的乔布斯是个&传奇&人物,他有一种奇特的洞察力,善于挑选产品设计,用产品引导消费。但是在外界人的眼中,他一直都不怎么热衷于发展公共慈善事业。但据传闻他非常乐于在私下里与慈善机构沟通,他个人和公司都曾做过很多的慈善捐助事迹,但不可否认的是苹果公司并没有因为捐款而闻名于世。被任命为首席执行官的蒂姆&库克,上任后首先做的事情就是为公司员工启动了一个慈善匹配程序。2011年9月中旬,苹果就开始分配员工为那些非营利慈善组织做贡献,每年该公司的人均捐款都高达10000美元。对于如此物有所值的慈行善举,库克曾专门写信对员工致以崇高的谢意。
看乔布斯走后一年,库克为苹果做了甚
在过去,苹果可能向投资者支付红利的笑话已经让人听得耳朵起茧了。而就在2012年3月苹果却发布了一项出人意料的公告,公司确定将开始对其股票支付股息,在2012财年的第四季度开始支付每股2.65美元的利息。该公司还宣布了一个股票回购计划,预计将在2013财年支出100亿美元来开展计划,可能会持续三年来中和&未来股权员工购股引起的股票稀释&。之前很多人期盼苹果能通过股票分割来代替红利,但库克表示并没有证据表明分裂能对一只股票产生正面影响。
接连不断的纠纷案
iPad商标纠纷案:中国深圳唯冠与苹果产生的iPad商标纠纷案已经历时两年之久,终于在日正式达成和解,唯冠将持有的iPad商标正式转让给苹果,苹果公司自该日起享有商标专用权。为了得到这一商标,苹果将支付6000万美元获得iPad在华商标权。
电子书反垄断诉讼:美国司法部在今年4月对苹果和阿歇特、哈伯柯林斯、麦克米伦及企鹅等出版商提出的反垄断诉讼,在最科技里都有详细报道,小编在这里就不多说了。目前苹果和那4家出版商都已在电子书定价方面向亚马逊等零售商作出让步,允许它们在两年内以打折的价格销售电子书,这一举动可能是想避开司法部的反垄断诉讼。
看乔布斯走后一年,库克为苹果做了甚
专利保卫战:在苹果和三星于2011年4月开展的专利诉讼案中,由九人组成的陪审团几乎都站到了苹果阵营,判决三星侵犯iPhone智能手机和iPad平板电脑的设计专利,将赔偿苹果近10.5亿美元,就像一样,在这场专利战中苹果只是获得了阶段性的胜利。在苹果iOS和谷歌Android专利大战中,HTC与苹果之间的专利诉讼也备受关注。HTC董事长王雪红扬言,三星败诉并不意味着整个Android生态系统的失败,就算三星以战败而告终,但HTC绝不会妥协让步。
新产品新业绩不过在乔布斯走后的一年里,库克确实带领苹果公司推出了不少新产品,包括具有视网膜显示屏的MacBook&Pro、新的MacBook&Airs、iPhone&4S、新iPad和OS&X&Mountain&Lion等等,当然接下来的新iPhone和迷你iPad也足以引人注目。在这一年的时间里,苹果业务着实得到了提升,股价上涨了近80%,市值增长了约2700亿美元,日前更是赶超微软成为美史上市值最高的公司。目前的库克已经是全球薪酬最高的CEO,执掌着全球市值最高的企业,但是大体看来苹果在过去一年所做得很多都是升级,而不是有建设意义的改革,公司依然延续着乔时代的构想。希望库克在提高业绩、捍卫公司权力的同时,也多多专注于苹果新产品的研发,提高更优质的用户体验。本文由邬云连整理发布,转载请注明出处:
初创企业不可不知的销售7宗罪
初创企业不可不知的销售7宗罪
就业难,创业也难,对于初创企业来说,把握好自己的是很重要的。但是在创业的过程中,必不可少的一个步骤就是销售。许多初创企业总是不可避免在销售战略上犯一些错误,因此初创企业应适时停下脚步,总结一些经验教训。下面小编就道道初创企业不可不知的销售7宗罪,如果你正在创业,是否也犯过这种错误呢?
1.不了解你的客户:许多创业公司直接将不同类型客户的喜好进行简要概括,客户想要的有可能是一个特定的市场或服务,但是不管怎样,面临每一个客户时的挑战都是不同的。一些初创企业在投放产品之前很少对客户进行过调查研究,因此他们对于不同客户的不同需求也就不能满足。初创企业总是把时间花在了自己的产品上,他们一味的讨论自己产品如何的伟大,有哪些特点。创业者需要激情,但是这是建立在明白客户想要什么和能迎合不同客户需求的基础上的。
2.不懂得如何卖:大多数初创企业卖产品时,总是会弄一些锣鼓来制造声势,并不是说这样做不对,只能说企业关注的点不对。这些花哨的方式只是一个辅助,真正重要的是解决客户的问题,你需要真正的了解客户的需求。你在卖产品时需要提供给客户2~3个关于该产品实际的好处,而不是你计划在未来对该产品增添的100个功能。
3.没有深入市场:不到实际市场去推销的创业者是看不到客户对产品是怎样的心态,更别说接近有价值的客户。这是为什么呢?第一,他们错过了直接与早期客户建立长久发展的关系;第二,他们不能直接得到客户的反馈。
初创企业不可不知的销售7宗罪
4.没有跟进:大多数初创企业对产品销售了一次后,便不会再跟进,或许有些还会再销售一到两次。其实说实在点,创业者就是太爱面子,他们担心如此一而再,再而三的销售会使客户感到厌烦。因此如果他们失去了一个客户,便不会再去挽回。虽然说不主张每隔几分钟就给客户打个电话,但是也要适时地跟进客户,别让,跟上客户直到他们做出决定,要么&是&,要么&否&。
5.销售程序不到位:创业者爱优化他们的客户界面、客户体验,但总是不思考一下他们的销售漏洞,甚至有些初创企业都没有一个好的销售渠道。既然优化客户界面、客户体验,那么销售渠道是不是也该优化呢?
6.不正确的价格:有些初创企业往往认为他们的产品越便宜越好,其实不然。低价格虽然可以让公司拥有部分客户,但是也会削弱产品的价值。如果说你的电子邮件和网站的插件为客户提供了巨大的价值,那为什么Netflix每月提供的订阅价格相同呢?为什么不降价呢?当销售人员将产品推销给客户时,你需要考虑产品的定价是否合理。客户需要的是产品为自己带来的价值,而不是它的价格标签。
7.害怕卖不出去:初创企业往往将关注点放到产品的销量上,不敢跟进客户,害怕销量下降。但这不是关键,销量是次要的,重要的是花时间培养与客户之间的关系,如果能成为好朋友,岂不是更好?可能许多人因为各种原因走上了创业的道路,不过一旦决定了,那么公司都需要有一个成功地销售团队推销自己的产品或服务,使他们的梦想成为现实,而我们也在其他公司的失败中不断总结,以降低失败的几率。本文由金鑫编译,转载请注明出处:&
烧烤极客必杀技——不为外行所知的科技产品
周末来临,成千上万的户外厨师们,带着烧烤架和大群家人朋友去,不难想象这阵容有多浩大吧!这是一个精英厨师集团,致力于生产出超冰球汉堡包和分裂热狗,这些后院战士总是在寻找不同的设备和配件,以制作最佳口味的肉块为使命。户外烹饪的必杀技,是知道一块肉何时做熟了,而公众意见相反,认为食物熟透是基于内部温度足够高,而不是其在火上烧烤了多久。鉴于这种情况,我们发现并推荐三个助你成为烧烤极客的温度设备。
&CyberQ Wifi&抽风机控制系统
烧烤极客必杀技&&不为外行所知的科技产品
对于吸烟过敏或者在韦伯斯莫科山烧烤的人来说,烤肉大师的CyberQ Wifi系统是一种必不可少的工具。CyberQ Wifi是一个电脑风扇系统,可以吹走你烧烤时木炭排出的烟雾,它使用几个探测器来跟踪你烧烤的地方周围温度,以及你正在烹饪的肉的内部温度。CyberQ Wifi,由于它能够知道你需要多少空气煤,所以能保证你在很长、一致的时间里,将你的电饭煲温度控制在一个精确的温度点。更好的一点是,使用这个产品你甚至不需要在家里控制你吸烟的客人,因为它建成了一个web服务器,通过WiFi无线通信和你连接,建立在一个开源的系统上,CyberQ开发人员正在开发独立工作的手机应用程序,那样你就可以使用你的iPhone或Android设备,对CyberQ Wifi做出调整。
烧烤极客必杀技&&不为外行所知的科技产品
对于拥有iOS设备的人,当你需要缓慢烹饪一盘食物的时候,看一看这个iGrill蓝牙测肉温度计,你就可以离开厨房在屋子里干点别的事。iGrill是一个能够连接到iPhone和iPad上应用程序在的蓝牙温度计,这个装置可以自由地在你的房子里移动,同时依然对你烹饪的鸡汤保持关注。iGrill的零售价是79.99美元,通过应用商店获得的应用是免费的,当你的晚餐已经达到理想的温度可以提醒你。这个产品与Android设备是不兼容的。
烧烤极客必杀技&&不为外行所知的科技产品
Kintrex红外温度计,许多烧烤厨师将Kintrex当做工具腰带使用。它最重要的成分是,每次都能让你的烤架有一个恒定的温度,帮你制做出一个完美的烤肉块。大多数时候,附带在你的户外烹饪设备上的温度计,不需要有像煮咖啡豆一样的精度。如果你想知道你的烧烤架到底是多少温度,只需要拍摄了照片用Kintrex分析。这个40美元的设备,可以用来测量大量的家庭和车库物品温度,保证安全远离危险。通过阅读红外热信号,可以将Kintrex转换成一个可读温度信息显示准确性达到正负五度的温度计。如果你想要一个足够高的温度烧你的肉,又不想你的肉被烧焦,Kintrex对支架炊具或烤架很有用。
吃货们,爱自助烧烤的吃货们,想让你的烤肉更美味些吗?上面介绍的三款科技产品,能够帮你提高任何一种食物风味。心动不如行动,赶紧回去试用吧!Via &本文由袁丽娟编译,转载请注明出处:
【研究】为什么有些人热爱他们的工作?-10个原因
【研究】为什么有些人热爱他们的工作?-10个原因
大学生迈入社会的第一个难题就是就业,而就业过后就是如何更好地工作。这时候有些人可能想要加薪或升职,有些人想要,不管是哪一种选择,你都需要做好自己的本职工作,那么如何才能激发你对工作的兴趣,热爱自己的工作呢?通过研究发现,有10个原因解释了为什么有些人热爱他们的工作,相信会对你有所启示。
1.他们第一次从事自己感兴趣的事情,很少感到有挑战性。这一部分人过去的生活可能一直是平淡无奇的,迫于父母或家庭带来的压力,一直不能按照自己的意愿生活。而工作后发现有许多挑战,第一次想要迫切的证明自己,对工作产生了兴趣。人们可能不会长期的热爱他们的工作,但是在挑战与使命感的驱使下,会使他们不断的产生对工作的兴趣。
2.他们懂得整合自己的回忆到了工作的年龄时,这说明自己的人生已经过去了一半了,是时候后该整理一下自己的记忆了。这一部分人他们经常会翻阅自己的成长记录,并且懂得整理有价值的回忆。虽然我们不能改变事实,但是那些曾经的回忆见证了我们那时的激情,通过过去的经历激励现在的自己也是一种不错的选择。
3.他们是善于&组合&的思想家他们有思想,他们善于发现自己的激情所在,他们是阴性和阳性的组合。不管干什么不可能一直有激情,工作也不例外,但是这一部分人他们知道怎样激发自己的工作热情。有时他们是阴性的,他们对工作感到了厌烦;有时他们又是阳性的,对工作有着浓厚的兴趣,这是不是就是&善变&呢?不过他们会努力寻找这两者之间的平衡,他们知道自己想要什么。
【研究】为什么有些人热爱他们的工作?-10个原因
4.他们不在乎别人的想法一个人真正想要什么只有自己最清楚。这部分人属于比较自我的人,他们不太在乎别人的想法。可能我们会觉得这部分人注定会失败,因为他们不善于听从别人的意见,不过我们不得不佩服他们的自信以及勇气,他们一旦决定了做某事便不会改变,即使失败也不后悔。这可能就是&自我价值的实现&。
5.他们生来就是规划师他们不仅热爱自己的工作,而且还会全心全意的付出并积极与他人分享,他们享受着工作带来的。他们善于规划自己的未来并沉迷于成功,他们每天激情的做他们的工作,积极地与他人分享自己的知识。他们积极地创建成功并寻找其中的乐趣。
6.他们有强烈的责任心他们与自我价值实现的那部分人有着显著的区别,他们更多的是关注集体的利益。他们知道自己是在一个集体或组织中,他们知道每个人都想要做自己喜欢的事,但是哪有这么如愿的事呢?因此既然不能改变环境,那就选择适应环境。他们一想到因为自己的小偷懒就会影响到集体的整体利益,便会产生愧疚感,因此他们总是带着强烈的使命感进行工作。
7.他们不会停止他们天生就喜欢不断寻找刺激与追求,他们总是热情澎湃,因此他们不懂得如何让自己的热情消散。有时可能会遇到挫折,但是他们的激情不会因此而停止,反而是越来越强。
8.他们想要引起别人的注意在工作中,总会有一些工作能力强的人,而他们总是能得到上司的赞赏,于是这部分人就会心生羡慕,他们也想要成为同事关注的焦点,因此他们就会努力的赶超他人,不过这部分人的热情比较短暂。
9.他们懂得珍惜现在他们懂得时间就是金钱,因此他们非常珍惜自己眼前的生活,如果一直等待别人的劝服,他们会认为这是在浪费时间,因此他们会做一些有价值的事情,比如工作。他们珍惜现在所拥有的,免得将来后悔。
10.他们从来不会因为眼前的小利益而限制自己的视野高效率的人是从来不会只看到饼的一部分的,因此他们的视野是很开阔的,他们不会因为眼前的小利益而就此失去大的方向。我们生活在一个有竞争的环境中,弱者只会被淘汰,因此他们有远大的目标并不断的突破自己,使自己成为&强者&。本文由金鑫编译,转载请注明出处:&
沃尔玛VS亚马逊,语义搜索为何成沃尔玛的利剑?
多大的差异才能使为一个电子商务网站更好的服务呢?将提高&10% -15%销售额的希望,押注在新发布的一个叫北极星的搜索引擎上,其由@WalmartLabs部门开发。
沃尔玛对抗亚马逊,的语义搜索为何成利剑?
位置,位置,位置,有多重要?在零售业,都是关于位置的,在杂货店的走廊摆放牛奶,这条法则其甚至适用于电子商务站点,依靠将产品摆放在首页关键位置,和更好的搜索工具来区分销售了和没有销售的产品。
现在487.94美元的问题是:使用一个更好的搜索引擎,能否为带来更多的销售呢?
新的语义搜索引擎的技术,是从大量的@WalmartLabs收购经验中得来的,其中包括沃尔玛在2011年4月收购的社交媒体初创公司Kosmix。Kosmix的语义Web平台,叫做,能组织社交媒体数据与算法,分析社交媒体内容,帮助购物者展现更符合客户要求的内容。这种确定客户潜在好恶的方式不同于通常的方法:矿业事务数据。例如,如果你从家庭和花园部门,买了一个粉红色的火烈鸟,那么你可能会被标记为喜欢扑面而来的草坪装饰品。矿业事务数据将把零售商的花园优惠券发送给你,而不是你的邻居,除非你购买草坪装饰品,作为恶作剧礼物在街上送给你的邻居。北极星搜索引擎,通过扩大语义搜索的知识包括社交媒体的内容,最关键的是这款搜索引擎可以更好的确定你要寻找购买的商品。这种通过社交发掘商机的形式,加上更好的查询解析和同义词挖掘,可以给客户提供其关注的商品一个更紧密的结果。
沃尔玛对抗亚马逊,的语义搜索为何成利剑?
语义足够了吗?看看的孤立,语义足够这是显而易见的,一个更高效的搜索引擎,通过一个简单的词汇搜索,完成出售的可能性,这可以给客户提供一个广泛的选择。
让全球互联网与&北极星&产品搜索连接是关键。如果消费者正在从谷歌或必应搜索引擎运行他们搜索的货物,或者使用比较像BizRate网站或PriceGrabber网站,尚不清楚有多少新北极星技术是基于互联网的查询。如果语义搜索优势丧失,那么沃尔玛的北极星优势将遭到再次审议,该公司将不得不相互竞争,而不是在价格、可用性和交付方面的搜索结果。可用性和交付是沃尔玛优势,沃尔玛已经能够与亚马逊对抗,甚至通过古怪的价格战,打破了某些热卖物品的价格。一些购物者似乎愿意多付出一点,如果他们学会在网上订购一个商品就不会去商店。但亚马逊已经开始探索当天送货方法,此举应该会挑战沃尔玛在当地可用性的优势。
沃尔玛对抗亚马逊,的语义搜索为何成利剑?
价格将为最终裁决者吗?沃尔玛一直将重点放在提升其在在电子商务优势上,这可以被视为未来亚马逊在洪水来临之前搬运沙袋防洪。因为一旦沃尔玛和亚马逊在一个更为平等分享的平台上竞争,对于再次购物者价格将变成更大的比较点。
沃尔玛220万名员工继续用工资支持亚马逊,更不用说维护沃尔玛的存储位置,用更少的开销,亚马逊可以比沃尔玛以更低的价格在长时间内更灵活的销售货物,可能的一个原因是沃尔玛在语义搜索上采取了强有力的措施,以获取与社会媒体更多的整合内容,来吸引更多的客户登陆。在商品零售领域,一个好的位置仍然是引导顾客的最好司机之一。亚马逊进入社会化电商社区,沃尔玛已经在谋求通过一个更好的搜索结果显示,来获取更好的商品位置。本文由袁丽娟编译,转载请注明出处:
3款约会必备应用:彻底改变你的爱情生活
3款约会必备应用:彻底改变你的爱情生活
现在移动互联网越来越泛滥,如果单身的你还在参加传统的相亲见面会,那毫无疑问你已经Out了,当前各种功能的数字约会软件蜂拥而至,微信这款超过一亿人使用的跨平台手机应用,可通过网络快速发送语音短信、视频、图片和文字;而被人戏称为也是一款基于地理位置的移动社交工具,打着&你好,陌生人!&的标语让用户认识周围任意范围内的陌生人。
下面小编带您看看外国人正在使用的三大流行约会应用,它们都很有可能让你走上通往婚姻殿堂的红地毯,就算没有找到合适的另一半,至少也能带给你一场很有气氛的晚餐或约会。
是一款很让人着迷的约会应用,用户们经常用好友的帐号来追踪自己的目标是否忠诚,大多数在线约会的人都在劝说亲朋好友加入进来。&这个站点是由Chris&Coyne、Sam&Yagan、Max&Krohn以及Christian&Rudder这些元老创始人组建的,目前已经成为为同行业增长最快的免费在线约会网站。基于你对网站设定这些问题的答案,OKCupid使用数学逻辑知识来寻找与你最兼容的单身人士,网站希望能为用户制造最难忘的约会。该网站现在推出了一款,允许用户在当地搜索适合自己条件的单身贵族,或者给偶遇的心仪人选发送暗示消息。如果在当地有与你相匹配的心仪人士,这个应用程序将会自动通知你这个好消息。
How About We
除却上面提到的约会应用,还有另一个很棒的应用程序可以通过回答&&&(我们&&怎么样)&这个问题,让用户提出一个极具创造性的约会。如果有人提议&我们到中央公园去溜冰,然后在奶昔小站吃汉堡怎么样&,之后一旦有人赞成,那恭喜你们配对成功,接下来将开始一场有溜冰有汉堡的风趣约会。这个在布鲁克林(美国纽约西南部的一区)诞生的约会网站是由一对好朋友(Brian&Schechter和Aaron&Schildkrout)创建的,希望让用户通过直截了当的约会来测试他们的化学反应,活动标语就是&上网下线&。该网站针对iOS设备开发了一款免费的,在这里你可以找到自己身边的浪漫约会。
我们最后介绍的这款约会应用着实强大,允许用户搜索附近区域里400万的用户,总会遇到想和你见面的&那盘菜&。创始人Joel&Simkhai曾借助此款应用的疯狂流行程度,发起过同性恋维权抗议运动。该网站推出的对于iOS、Android和黑莓设备都是免费开放的,可以进行私人聊天、访问照片,该应用的定位跟踪特性可以让你快速地联系到下一个有缘人。在国内微信、陌陌盛行的当下,你敢不敢走在潮流的最前端超凡脱俗一把,尝试着用外国人的约会软件找一个金发碧眼的有缘人。就算当不成情侣也可以做个朋友,交流一下中西文化差异,了解当地的风土人情。如果你已经跃跃欲试了,可以按文章中给出的链接下载约会软件,希望能为大家带来好运气。本文由邬云连编译,转载请注明出处:
遍数硅谷新近登场的15位新锐人物!(中)
硅谷一直是高精尖人才的聚集地,在里面混得出类拔萃更是难上加难。其实很多拥有鬼才的CEO并不是天赋异禀,他们也是常人,只不过,他们更善于思考和想象,更喜欢跟着自己的梦想走!
把自己做到最好,便是成功!好了,话不多说,让我们再来开始新锐人物的介绍吧!
6.Bastian&Lehmann&Postmates的首席执行官
遍数硅谷新近登场的15位新锐人物!(中)
Postmates是一家借助智能手机应用来提供服务的互联网快递公司。近来,它风头强劲,在很短的时间内便成为了硅谷一颗耀眼的新星!不过,你可能不知道的是,它的创始人兼CEO&Bastian&Lehmann,是一个不折不扣的复古游戏迷!
当他不醉心于TIE&Fighter的时候,是很会打理自己公司的。他创建的Postmates解决了技术上最难解决的当天交货问题!正是由于越来越多的零售商通过,为客户提供商品,所以Postmates想到利用智能手机来定位客户的位置,由此向快递员进行任务分配。公司的1小时快递送达服务With&Get&It&Now,让你在1小时内能够得到你订购的任何东西!Lehmann让人们开心乐购兴奋不停,他的公司就这么向世人展现了互联网的强大功能和生命力!
7.Tikhon&Bernstam&Parse的首席执行官
遍数硅谷新近登场的15位新锐人物!(中)
Tikhon&Bernstam可能是2012年最厉害的创业者!基本上我们可以把Parse认定为一款应用,因为它可以让用户在添加其他应用程序时的操作更加简易。它提供给了用户一个程序库,里面包含了被人们广泛使用的各种功能!大部分的应用其实都干着相同的事情,不过构建一款应用还是一件相当不容易的事情。试试Parse,它能帮你把事情变容易些!
8.Aaron&Levie&Box的首席执行官
遍数硅谷新近登场的15位新锐人物!(中)
Box的CEO&Aaron&Levie是创业富豪俱乐部的最新成员。他刚刚搞到了1.25亿美元的融资,因为他的初创公司已经估值为10亿美元!
放眼看整个硅谷,Levie是最有趣的CEO之一,当然了,也是最勤奋的一个。这个只有27岁,在大学期间就开始创业的怪小子,总是喜欢玩各种非一般的把戏,比如,他就特别喜欢用纸牌来变魔术!也许,他的性格就是这样,喜欢探索各种未知,同时也时刻保持着一种好奇心。这样的秉性,让他在创业的道路上越走越远。
9.Patrick&Collison&Stripe的首席执行官
遍数硅谷新近登场的15位新锐人物!(中)
支付问题,一直是技术上的一个难题。Patrick&Collison做的,就是寻找能解决这个难题的最佳方案。Stripe为大众提供了一个简便的支付平台,人们无需在银行建立商业账户,就能利用简单的支付体系来确保交易安全。
Patrick&Collison是一个伟大的创业者,在支付领域做得这么出色实属不易。感谢Collison,让交易变得如此简单!
10.Joe&Fernandez&Klou的首席执行官
遍数硅谷新近登场的15位新锐人物!(中)
或爱它,或恨它,那些生活在旧金山湾区的人们还是会不定时得查看他们的Klou分数!Klout通过用户在一些上的表现,来对他们的影响力打分。他的创始人Joe&Fernandez是一个喜欢到处跑步运动的家伙,简直没有片刻的安静!他的奇思妙想就是要帮助人们建立一种&社会简历&。也许不久以后,那些有&影响力&的人们会拥有更多的社会资源,比如,可以在购物中享受更多的折扣!
虽然未来的世界是什么样子我们并不知道,但是相信有了这些人,我们以后的生活,真的会发生点或多或少的改变!本文由杨新明编译,转载请注明出处:
&&分享自&&
iPad Mini vs iPhone5:谁才是苹果的王牌?
iPad Mini vs iPhone5:谁才是苹果的王牌?
近期,苹果与三星的闹得沸沸扬扬,但是这并没有影响到苹果的身价。从3000亿美元到6235亿美元,苹果一跃成为了全球最值钱的上市公司。在这个重要的时刻,苹果的iPad Mini与iPhone5也即将面世,这无疑又为其增添了浓黑墨重彩的一笔。那么发行后,iPad Mini与iPhone5哪一个才是苹果的王牌呢?之前在一文中得知,自两年前推出iPad的以来,苹果公司在全球卖出了8400万台iPad,而且预计这一数字还会上升,2013年iPad的收入可能会很快超过微软的季度收入。那么在消费者眼中,iPad是不是比iPhone更受欢迎呢?看看下面的图表或许你就知道了。
iPad Mini vs iPhone5:谁才是苹果的王牌?
iPad Mini vs iPhone5:谁才是苹果的王牌?
这么看来,是不是也就预示着iPad Mini会比iPhone5更火,iPad Mini会成为苹果的王牌呢?答案也是不一定的,不过我们可以比较一下。
iPad Mini vs iPhone5:谁才是苹果的王牌?
很多人都认为苹果公司推出iPad Mini是一个很不错的战略,因为它使苹果能够利用自己的领先设备以及光环效应与谷歌、亚马逊、三星和微软的平板电脑进行竞争,更有占领市场的优势&&可能会赢得2012年的又一科技大战。
日志:最近在App开发者日志中出现了iPad Mini的内部代号,其中【iPad2,5】和【iPad2,6】是两个新的代号,这也就预示着新的iPad mini是基于iPad的硬件条件配置的,因此推测iPad mini具有Wi-Fi版本和GSM版本。
A5处理器:因为iPad Mini与iPad2配置大体相同,因此预计iPad Mini将采用A5处理器。A5处理器具有降低能耗的特点,这也一直是苹果产品的优势,看来苹果是决定让iPad Mini继续延续下去。
屏幕:据彭博社报道,有4位知情人士称,iPad Mini将采用友达光电和LG Display生产的屏幕。另外推测iPad Mini将拥有7.85英寸的显示屏。
价格?虽然根据业内媒体报道,iPad Mini的价格最低定价在249美元,但是相比以前399美元的iPad2,iPad Mini会降至249美元吗?这还是个未知数。
iPhone5如今据国外媒体的披露,iPhone5极有可能在9月12日上市,9月21日起发售。
速度:iPhone5可能会是市场上最快的设备,几款高端智能手机已经拥有了四核处理器,而有报告称,iPhone5将会搭载A6处理器,速度极快。
更薄、更大:iPhone5将会拥有一个更大的屏幕尺寸和更薄的机身。据报道,iPhone5的屏幕尺寸从3.5英寸扩大到了4英寸;配备in-cell触控面板,使屏幕更轻薄。另外,分辨率从960&640提高到了。
iPad Mini vs iPhone5:谁才是苹果的王牌?
后壳:iPhone5将配备金属外壳,强度更强。
曲线:苹果计划在iPhone5中引入曲线玻璃面板设计,替代原先的直线设计。
按钮:据悉,因为Android手机丢弃了Home按钮后,iPhone5预计也将不再有Home按钮。虽然iPad Mini与iPhone5是两个不同领域的产品,但它们无疑都引起了消费者的高度关注,不然业界也不会纷纷猜测。如今移动互联网迅速发展,智能手机迅速流行,那么这是不是意味着智能手机会取代PC呢?如果是,是不是就证明iPad Mini会比iPhone5更受欢迎呢?小编认为这还不能就此下定论,还是让我们拭目以待吧!不过不管什么产品,怎么改进,都应将用户利益放在首位。本文由金鑫整理编辑,转载请注明出处:
Java“applet”:甲骨文应对最新Java漏洞的“解药”
美国探索频道发现:最近人们广泛使用的Java程序,安全应用存在严重的漏洞。研究人员称,他们已经发现了在周四由公司(Oracle)发布的更新后的Java 7,存在一个缺陷&&电脑攻击者可以完全控制终端用户的计算机。不过甲骨文已经拿出了应对良药&&。Java&applet&运行在一个安全沙箱上,能阻止敏感操作系统功相互作用。更新后Java 7&上的漏洞,甲骨文发布了阻止攻击对外散布的最新的广泛的黑眼睛安全应用软件框架,但未能能阻止在终端用户机上悄悄安装。黑眼睛安全应用,是在4月分不断遭受漏洞攻击的时候,不断学习中发现的。安全漏洞被曝光后,甲骨文尚未解释延迟修复漏洞的原因。
Java&applet&:甲骨文应对最新Java漏洞的&解药&
最新的漏洞&有利于促进更新后的Java 7完整的Java沙箱分流&,负责在波兰部署安全探索的亚当Gowdiak,在写给国外著名科技网站arstechnica的电子邮件中如此说,他的团队开发的概念验证代码,在周五交付给了Oracle工程师。其实这次发现的关键漏洞,早些时候就被IDG新闻报道了。但没有报告称概念验证代码被在线使用。Gowdiak拒绝讨论对于技术细节的担忧,认为不法分子可能更容易利用电子邮件缺陷,或基于web缺陷进行攻击。他说这个发现是&概念验证码在试图解决这个问题,申请最近的Java应用补丁后,便可以制止攻击。&
对于不法分子在本周的袭击,甲骨文缺乏公开回应,只是再次强调用户从电脑移除Java,不要使用跨平台的框架。许多程序宣称Java是正常工作必不可少的,没有甲骨文软件难以很好地工作,星期四Ars报道的至少两个读者证实了这种情况。
Java&applet&:甲骨文应对最新Java漏洞的&解药&
一个Mac用户表示,即使是强制程序,如Photoshop,如果用户经常访问的网站不需要Java插件保护,用户可能想把Java插件从他们的浏览器上移除,移除已经证明了一些有争议的建议是有用的。下面是编辑器选择的一篇读者评论:
DCStone |Smack-Fu博客主人,职位培训
从这篇文章:&即使这是强制程序,如Photoshop,一个Mac用户,是Ars报道的读者&&&
除了装有Java禁用通过的首选项应用的Mac(10 6 8)用户,使用Adobe Photoshop和Dreamweaver(CS6)没有问题。
现在,可能是安装程序不会安装Java首选项应用,可能使某些协作特性不发挥预期作用,有意没有启用Java,我用一个定期更换的Adobe应用,似乎没有什么抱怨了!
某些和化学有关的web工具,会要求我把Java周期性更换,但是我真的不经常使用它们。最后由DCStone编辑,星期五,2012年八月三十一日,下午1:35
27帖子 &|注册20107月6日
虽然,此次Java漏洞快要平息了,但是这应该给人们敲响警钟:网络安全在任何时候都不能轻视。本文由袁丽娟编译,转载请注明出处:
46527人关注
46527人关注
站长在关注

我要回帖

更多关于 dc os 的文章

 

随机推荐