2014年1月 ’ 的文章存档

什么是内存泄漏

Java最显著的优势之一就是它的内存管理机制。你只需简单创建对象,然后Java垃圾回收机制便会小心的分配和释放内存。然而,事实并非如此简单,因为在Java应用程序中经常发生内存泄漏。

本教程说明了什么是内存泄漏,为什么会发生,以及如何防止它们。

1.什么是内存泄漏?

内存泄漏的定义: 对象不再被应用程序使用,但是垃圾回收器却不能移除它们,因为它们正在被引用。

要理解这个定义,我们需要理解对象在内存中的状态,下图说明了哪些是未被使用的以及哪些是未被引用的。
阅读全文

讨论python的数据类型的区别

python很重要的的那几个数据类型:字符串,列表,字典,元组,他们之间重要的区别的是什么?能否举几个例子来说明下!

共同点:
1、它们都是py的核心类型,是py语言自身的一部分。

核心类型与非核心类型
多数核心类型可通过特定语法来生成其对象,比如”spam”就是创建字符串类型的对象的表达式;
非核心类型需要内置函数来创建,比如文件类型需要调用内置函数open()来创建。
类也可以理解成自定义的非核心类型。
阅读全文

技术项目走向失败的五条“捷径”

kkk

技术项目的失败,屡见不鲜。不论你运营的是一个持续跟进一些项目的软件公司,还是一个需要顾问来为你提供系统集成的非技术公司,你都有可能遭遇这个 问题。进度延期、预算疯涨、直至最后完全失败,这在软件世界非常普遍。事实上,一个项目延期数年,超支数百万,已经不是新鲜事了。

例如,在2003年,我飞去洛杉矶出席微软为软件开发者举办的其中一个会议。活动中,微软发表了激动人心的消息:下一个版本的windows将会带 来一些革命性的新功能。回顾我的笔记,其中有一个新功能叫做WinFS。具体细节不讲,简单来说,WinFS建议将操作系统的文件系统功能(文件和文件夹 的位置信息)和数据库功能(个人对文件的描述信息)合而为一,放进一个又大又邪恶的“文件数据库混合体”。
阅读全文

【实战XBMC插件开发】之磨刀篇—Python基础和实用技巧

(一)环境搭建

    为了更好的学习Python,建议搭建一些软件环境来提高学习开发效率。
Python是一门开源的程序设计语言,是一种可交互执行的解释性脚本语言,非常适合简单应用和插件开发。如果只是编写xbmc插件,并且在xbmc里面进行调试的话,可以不用下载安装python软件包。在官方下载地址上有多个版本下载,因为XBMC内置的解释器是基于python2的,所以请大家下载2.7.3版本进行安装。特别注意,python 3在很多地方与python 2是不兼容的。


DreamPie是一个很好的Python Shell,我经常拿它来进行交互开发,或者作为高级计算器。Python有个优势,不像其他编译性语言一样,一定要等到程序写完,编译通过以后才能运行得到结果。而Python却可以在Python Shell中单独允许一条语句。比如说,你不知道字符串去空格的函数是不是strip了,那么很简单,直接到pytho shell中跑一句 ‘ abc ‘.strip() 看得到的结果是不是’a'就知道了,不对再去查文档也不迟。很多时候,一个很大的py文件里面某地方出错了,你完全可以把其中某一些语句挑出来单独在python shell里面去跑,省去反复不停的执行整个文件,而且减少依赖。

我是用的最多的Python开发环境是Ulipad,因为本身是python写的,跨平台,windows/linux/mac os都可以用。另外一款PyScripter是针对windows平台开发的优秀IDE。两者都具有语法高亮、自动缩进、类型浏览等多种特性,可以提高代码编制效率。当然不嫌麻烦的话,也可以使用记事本来写代码。

阅读全文

创建您自己的浏览器扩展,第 2 部分: 将您的触角延伸至 Firefox

为 Firefox 编写一个基础浏览器扩展

每个浏览器都有其自己的支持者、批评者、优势和劣势。它们的共同点是人们将越来越多的时间花费于其中。本 系列 文章将介绍如何为 Chrome、Firefox 和 Safari 构建相同的基础扩展。您将了解到扩展每个浏览器是什么样子,执行这些常见任务是困难还是简单,以及如何发布您的扩展。在本文中,您将构建一个 Firefox 扩展。

Gawkblocker 扩展

回忆一下,Gawkblocker 支持您(以及其他用户)屏蔽某些您不喜欢访问的域,比如耗时的博客。Gawkblocker 有以下组件:

  • 一个弹出窗口(显示您将要屏蔽的域)
  • 一个可见的浏览器图标(扩展的入口点)
  • 一个选项页面(配置您想要屏蔽以及想要访问的域)

在 Chrome 中,Gawkblocker 扩展将向每个选项卡或窗口添加一个监听程序,并与黑名单进行匹配,这会将屏蔽的 URL 重定向到一个本地页面。现在,您将学习 Gawkblocker 扩展在 Firefox 中如何变化。
阅读全文

什么是全栈开发者

纯粹基于道德而掌握开发堆栈的每一方面的预期是合理的吗?可能不是,但Facebook这样要求。一个Facebook的员工在OSCON告诉我,Facebook只雇佣全栈开发者。那么全栈开发者是什么意思呢?

对我来说全栈开发者是对每一层都熟悉的人,如果不真正对所有的软件技术感兴趣不会对它们精通。
阅读全文

SAE月刊:2014年第1期

 

SAE月刊 2014年第1期
Sina APP Engine 易用、可靠、高效、安全
本期特讯
新浪云计算公开课 在1月4日举行的第八期新浪云计算公开课上,新浪云系统工程师们、新浪云合作伙伴们与数百位开发者齐聚一堂,围绕“拥抱云服务,放飞新梦想”这一主题,展开了深入的分享和交流。
在这期分享嘉宾中,SAE特邀了安全宝创始团队成员周永成、有道云笔记高级产品经理兰天、科大迅飞语音云资深工程师吴伟、高德LBS开放平台总监李乐。他们现场宣布了此次与SAE的合作内容,并分享了各自在业界的前沿技术。
最后,与大家就SAE此次推出的新服务Channel(实时推送)和CloudBridge进行了探讨,观点的碰撞之间灵感的火花四溢。
【详细】
技术前沿
SAE实时消息推送服务-Channel
Channel是SAE提供的实时消息推送服务。通过在浏览器和SAE服务端之间建立长连接,使得应用可以方便的向Javascript客户端实时的推送消息。开发者可以利用Channel服务开发自己的实时性要求比较高的应用,如游戏、在线聊天室,在线直播等等。【详细】
被SAE定义为SDN@PaaS的CloudBridge服务Channel是SAE提供的实时消息推送服务。通过在浏览器和SAE服务端之间建立长连接,使得应用可以方便的向Javascript客户端实时的推送消息。开发者可以利用Channel服务开发自己的实时性要求比较高的应用,如游戏、在线聊天室,在线直播等等。【详细】
资源下载
公开课讲义分享
1.新浪云系统架构师@司迎春-Winters 分享的《IaaS平台SDN思想在PaaS平台的实践》.pdf
2.新浪云系统工程师陈峰分享的《SAE Channel服务简介》.pdf
3.新浪云商务经理@im茜娅 分享的《新浪云计算最新简介》.pdf
4.安全宝创始团队成员周永成分享的《采用云服务的网站如何快速构建云防护体系》.pdf
5.新高德LBS开放平台总监李乐分享的《属于你的美丽地图-LBS应用开发经验分享》.pdf
6.科大讯飞语音云工程师吴伟分享的《智能语音和讯飞语音云介绍》.pdf
7.有道云笔记高级产品经理兰天分享的《移动应用如何迈向云端》.pdf
SAE技术微博分享(精选)
1.《15分钟学会使用Git和远程代码库》
2.《一个检查shell脚本语法的神器:shellcheck》
3.《nginx实践笔记》
4.《JavaScript跨域总结与解决办法》
5.《如何招聘一个能干活的程序员》
6.《谈一谈网络编程学习经验》
7.《Linux下高并发socket最大连接数所受的各种限制》
8.《Learn X in Y minutes》
访问SAE 扫描二维码 扫一扫,获取优质技术资源
关注微信:Sina APP Engine
关注新浪微博
 

如果您有任何疑问或建议,请联系我们,欢迎发邮件到saemail@sina.cn,或到开发者论坛交流反馈。

 

被高估人士的七个习惯

我记得曾经和一个老同事之间有过这么一段对话,是关于另一个即将离职的员工。我说:“他的离开我们都不好受,尤其想到他在过去这几年为我们做的那些 事。”但是这个同事的回答让我十分困惑。他说:“如果你仔细想一想的话,就会发现他其实什么也没有干。”这不是开玩笑吗!我立刻反驳并解释道:

在上一个版本里,他一直在……我认为他是那个组的成员之一,所以他在……或者说…… 好吧,不说上个版本的事。我知道在之前的版本里,他在帮助干……额……一些优化运行速度之类的事,我认为。等等,那好像是Bill干的。那他在做……也许 是在那更之前的版本,当时他在……天啊!你是对的。他真的是什么都没干!

1

这到底是怎么回事?我的意思是,为什么我会得出与事实相去甚远的结论?我是白痴吗?如果只有我一个人这么想那么也许是这样,但是第二天我问别人对他 的看法时,他们也是这么说的“他啊,我们肯定会想念他的。”这么看起来,不光是我一个人认为他是团队中重要的一员,而事实上他什么都没做。

自从那次之后,我开始关注团队中和合作项目中的人。我有机会作为一个团队成员、一个团队leader,甚至是一个老板又或者是一名一线员工,一个顾 问,一个和多方合作的团队成员,以及一切你能够想到的角色来做这件事情。我观察之后发现不是因为人们愚蠢导致了评价过高的现象,反而是因为那个人本身就在 做一些能够导致被高估的事。当你观察那些被高估的人时,就会发现他们有一些共同的习惯。
阅读全文

数据层的多租户浅谈

在单租户应用向多租户应用的转型中,数据如何隔离,既满足数据服务的共享,又保证数据的安全性,同时性能也在合理的考量中,是一个共同的课题。同时,我们也关注像 Hibernate、EclipseLink 等数据层的解决方案又是如何具体实现多租户的。

数据层的多租户综述

多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:

在一台服务器上运行单个应用实例,它为多个租户提供服务。

在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。
阅读全文

2014 年 TOP 10 的 PHP 框架

PHP 框架是非常有用的工具,可以帮助开发者构建干净整洁和结构化的 web 开发,同时也加快了创建和维护 web 应用的速度。在这里,我们会介绍排名前 10 并且最受欢迎的 PHP 框架(排名不分先后)。

Laravel

a1
阅读全文