互联网女皇2013年趋势报告:个人数据革命
美国KPCB风险投资公司的著名互联网分析师玛丽・米克尔(Mary Meeker)素有“互联网女皇”之称,她每年发布的《互联网趋势报告》在业界极具影响力。本周三,米克尔在AllThingsD D11大会上发布了她最新的报告。以下是报告主要内容:
from cnBeta.COM http://www.cnbeta.com/articles/239178.htm
Apple Will No Longer Approve Apps Using Unique Device Identifier (UDID) Beginning May 1
Apple has informed app developers that it will no longer allow apps to use the unique device identifier or UDID after May 1, according to a post on Apple’s developer website.
Instead, Apple requests developers use the new ‘Vendor or Advertising identifiers’ that were introduced in iOS 6.
Using Identifiers in Your Apps
March 21, 2013Starting May 1, the App Store will no longer accept new apps or app updates that access UDIDs. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6. You can find more details in the UIDevice Class Reference.
Apple announced in 2011 that it would be phasing out developer access to UDID’s, and instead create a non-identifying marker for advertisers to use. A year ago, it was reported that Apple began quietly rejecting apps for the use of the UDID, but this public announcement suggests Apple has gotten more serious about shutting down use of the identifier.
Apple had been under increased pressure to change how the UDID works due to the privacy implications of a developer knowing which particular iOS device is being used to access their app. Apple and several app developers were sued over the use of the UDID to track users across different apps. While the UDID doesn’t specifically identify a user, the sharing of UDIDs across ad networks and apps can help piece together a valuable picture of activity and interests of the user of a specific device. Apple seems to be requiring apps to generate their own unique identifiers for each installation to avoid this ability to share such information across apps.
Recent Mac and iOS Blog Stories
• Redesigned ‘Speedtest.net’ App Released, Improved Server Selection and Sharing
• A Look at American Airlines’ iPad Electronic Flight Bag
• Apple Tops J.D. Power Smartphone Satisfaction Rankings By Significant Margin
• Black Pixel to Revive ‘NetNewsWire’ With Cross-Device Syncing
• Cleveland Museum of Art Uses iPads for Visitor-Personalized Tours
• Pixelmator Crashing Issue Fixed in OS X 10.8.3
• MagSafe Adapter Key Ring Connects MagSafe Converter to Keys
• GarageBand for iOS Updated With Audiobus Support and Other Enhancements
from MacRumors: Mac News and Rumors – Front Page http://www.macrumors.com/2013/03/21/apple-will-no-longer-approve-apps-using-unique-device-identifier-udid-beginning-may-1/
Twemproxy – Twitter 开源的 Redis proxy
在去年的QCon London2012 大会上,Twitter 发表了题为 《Timelines @ Twitter》的演讲,里面提到以Redis作为其timeline的主要存储,目前目测全球范围内,Twitter可能是Redis的最大用户了(或者是新浪微博?)。
而今天我们要说的这个Twemproxy,是 Twitter 开源出来的 Redis 和 Memcached 代理。
功能介绍
我们知道,无论是 Memcached 还是当前的 Redis,其本身都不具备分布式集群特性,当我们有大量 Redis 或 Memcached 的时候,通常只能通过客户端的一些数据分配算法(比如一致性哈希),来实现集群存储的特性。
而 Twemproxy 通过引入一个代理层,可以将其后端的多台 Redis 或 Memcached 实例进行统一管理与分配,使应用程序只需要在 Twemproxy 上进行操作,而不用关心后面具体有多少个真实的 Redis 或 Memcached 存储。
在 Redis 的 Cluster 方案还没有正式推出之前,通过 Proxy 的方式来实现存储集群可能是最好的选择了。更何况 Twemproxy 是通过 Twitter 自身得到了充分检验的产品。
性能
根据 Redis 作者的测试结果,在大多数情况下,Twemproxy 的性能相当不错,直接操作 Redis 相比,最多只有20%的性能损失。这对于它带来的好处来说真的是微不足道了。唯一可能还有待改进的是其 MGET 操作的效率,其性能只有直接操作 Redis 的 50%。
安装与配置
Twemproxy 的安装有点小麻烦,主要命令如下:
apt-get install automake apt-get install libtool git clone git://github.com/twitter/twemproxy.git cd twemproxy autoreconf -fvi ./configure --enable-debug=log make src/nutcracker -h
通过上面的命令就算安装好了,然后是具体的配置,下面是一个典型的配置
redis1: listen: 0.0.0.0:9999 #使用哪个端口启动Twemproxy redis: true #是否是Redis的proxy hash: fnv1a_64 #指定具体的hash函数 distribution: ketama #具体的hash算法 auto_eject_hosts: true #是否在结点无法响应的时候临时摘除结点 timeout: 400 #超时时间(毫秒) server_retry_timeout: 2000 #重试的时间(毫秒) server_failure_limit: 1 #结点故障多少次就算摘除掉 servers: #下面表示所有的Redis节点(IP:端口号:权重) - 127.0.0.1:6379:1 - 127.0.0.1:6380:1 - 127.0.0.1:6381:1 - 127.0.0.1:6382:1 redis2: listen: 0.0.0.0:10000 redis: true hash: fnv1a_64 distribution: ketama auto_eject_hosts: false timeout: 400 servers: - 127.0.0.1:6379:1 - 127.0.0.1:6380:1 - 127.0.0.1:6381:1 - 127.
from NoSQLFan http://item.feedsky.com/~feedsky/nosqlfan/~8149226/710154282/6253001/1/item.html
Ceylon M5 with Tuples, Verbatim Strings, Spread Operator, Late Annotation
RedHat has released Ceylon M5 programming language with several new features such as Tuples, Verbatim Strings, Spread Operator, Late Annotation and reified generics including a new module, package, functions in addition to several key syntax modifications. By Anand Narayanaswamy
from InfoQ Personalized Feed for rongying zhou http://www.infoq.com/news/2013/03/ceylon-m5
A Beginner’s Guide to HTML & CSS
from A Beginner's Guide to HTML & CSS http://learn.shayhowe.com/html-css/
This week’s headlines from across Inside Network
A roundup of all the news Inside Network brought you between Feb. 18 and Feb. 22.
Inside Mobile Apps
Tracking the convergence of mobile apps, social platforms and virtual goods.
Tuesday, Feb. 19
- NIS America takes to iOS to promote new PlayStation 3 game
- Fireproof Games announces The Room sequel, free prequel content and Android version
- Ping lets you say it with… squares?
- Puzzle & Dragons estimated to generate between $54M to $75M a month in Japan, says Japanese press
- The Inside Network Job Board: Machine Zone, KIXEYE, Kongregate more
- Gaia Interactive launches RumbleKitten on iOS
- Haze, Adventure Time, The Amazing Spider-Man and more on this week’s top paid app charts
Wednesday, Feb. 20
- Show off your social metrics with Social Tiles
- Distimo: 2% of top iPhone publishers are new, 3% on Google Play
- Text with Instagram in Messagegram
- What’s the Word?, Modern War, The Simpsons on this week’s top grossing apps charts
Thursday, Feb. 21
- New hires in mobile apps: PlayHaven, Wooga and more
- Mobile productivity app CloudOn comes to Android smartphones
- Build your own personal newspaper with Thirst
- Share between your iOS and OS X devices with Instashare
- Join Us for the first Inside Social Apps Tech Job Fair
Friday, Feb. 22
- Change the way the world sees you with iMadeFace
- Apple and Samsung remain top device manufacturers on Millennial Media’s platform
- Pledge on the go with the official Kickstarter app
- Wooga announces 3 new mobile games, reveals that it was profitable in 2012
- Mobile apps news roundup
Inside Social Games
Covering all the latest developments at the intersection of games and social platforms. Tuesday, Feb. 19
- Questionary review
- CMUNE receives DCM funding to build “the next billion dollar gaming brand”
- Plarium finds success with core games on Facebook, adding mobile titles to its future catalog
- Puzzle & Dragons estimated to generate between $54M to $75M a month in Japan, says Japanese press
- The Inside Network Job Board: Machine Zone, KIXEYE, Kongregate more
- Gaia Interactive launches RumbleKitten on iOS
- 94 Seconds (iOS/Android) review
Wednesday, Feb. 20
- Playnomics closes $5M Series B round of funding
- 4 Pics 1 Word (iOS/Android) review
- Criminal Case leads fastest-growing Facebook games by DAU
- Sony entering the post-Facebook world with PS4
- Bubble Pop Battle review
- New hires in social games: gloops and Wooga
Thursday, Feb. 21
- King.com moves into Asia with localized games
- Game of Thrones Ascent now playable on Facebook
- Slot Buster review
- Join us for the first Inside Social Apps Tech Job Fair
- Wooga entering mid-core market, aims to change storytelling with newest social games
- Worm Run (iOS) review
Friday, Feb. 22
- Game of Thrones Ascent review
- FarmVille 2 is this week’s fastest-growing Facebook game by MAU
- Dragon Storm (iOS) review
- Social games news roundup
Inside Facebook
Tracking Facebook and the Facebook platform for developers and marketers.
- Case study: FBX ads result in more sales when combined with Facebook Ads API
- Malicious Chrome extension promising business version of Flash can take over users’ Facebook accounts
- Facebook platform industry news and hires: We Are Social
Wednesday, Feb. 20
Thursday, Feb. 21
- Facebook page posts now support realtime updates
- Facebook lets developers know how often their app is found through search
- FBX has lower CPCs and CPMs but web retargeting has other benefits, AdRoll finds
Friday, Feb. 22
- Facebook events get cover photos
- Facebook bugs led page reach and impressions to be misreported
- Facebook updates iOS app with free calls in the U.S., Canada
- Report: Facebook to match user profiles with offline purchases for ad targeting
- Zuckerberg, Twitter, Yahoo and more in this week’s Facebook news roundup
Inside Social Commerce
Tracking the convergence of social media and commerce.
- Interview: Curalate’s Apu Gupta on adding Instagram to image analytics service
- Squarespace Commerce platform features WYSIWYG interface, built-in storefronts
- Join us for the first Inside Social Apps Tech Job Fair
- Real-world retail analytics service Euclid gets 17.3M in funding
- comScore: Online travel spending breaks $100B, not including mobile
from Inside Facebook http://www.insidefacebook.com/2013/02/24/this-weeks-headlines-from-across-inside-network-42/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+InsideFacebook+%28Inside+Facebook%29
PECL/mysqlnd_ms 1.5 + PHP 5.5.0 + MySQL 5.6 = better load balancing
PECL/mysqlnd_ms is a client-side load balancer for PHP that supports any MySQL cluster. It does read-write splitting, failover, introduces a quality of service concept, supports partitioning and, of course, load balancing. New mysqli API (begin, *savepoint) calls in PHP 5.5.0 help to improve transaction awareness. New read only in MySQL 5.6 promise major performance gains (think 2x) and an option to reduce the load on a MySQL Replication master. Read how the features go together in PECL/mysqlnd_ms 1.5.
Load balancing – transaction aware?
A load balancer must not switch connections in the middle of a transaction. A load balancer must send all queries to the server a transaction has been started on until the transaction ends. Unfortunately, it is very hard to develop a transparent load balancer for MySQL. In general there are four approaches:
- forget about transparency and require applications to hint the load balancer about transaction boundaries (buuuh!)
- have the MySQL server announce transactions to clients on the wirte protocol (buggy )
- monitor SQL queries controlling transactions
- monitor API calls controlling transactions
PECL/mysqlnd_ms supports the basic hinting and the API monitoring approach. Using SQL hints to control load balancing during transactions is possible but very uncomfortable.
$mysqli = new mysqli(...); $mysqli->query("BEGIN"); /* stop load balancing, force use of last server */ $mysqli->query(sprintf("/*%s*/INSERT INTO test(id) VALUES (1)", MYSQLND_MS_LAST_USED_SWITCH)); sprintf("/*%s*/COMMIT", MYSQLND_MS_LAST_USED_SWITCH));
API monitoring is a step forward. If transaction stickiness has been configured, PECL/mysqlnd_ms stops load balancing once autocommit is turned off. Given you set trx_stickiness=master
, the load balancer will run all transactions on the master.
$mysqli->autocommit(false); /* autocommit is off, must not switch connections if transaction_stickiness is set */ $mysqli->query("INSERT INTO test(id) VALUES (1)"); $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false); /* if trx_stickiness is set, no connection switch allowed */ $stmt = $pdo->prepare("SELECT @myrole AS _role"); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
Internally, PECL/mysqlnd_ms hooks the autocommit()
C API function of mysqlnd. PDO_MySQL and mysqli call it and thus, PECL/mysqlnd_ms recognizes the change.
Any PHP MySQL application | |
| | |
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false); |
$mysqli->autocommit(false); |
mysqlnd autocommit()
|
|
PECL/mysqlnd_ms autocommit() :transaction stickiness set and in transaction? |
|
| | |
MySQL Master | MySQL Slave |
However, remember that if you used SQL to control the autocommit mode, PECL/mysqlnd_ms would not recognize the change and transaction stickiness would not work.
MySQL C API vs. PHP API
As a PHP user, you may be surprised to hear that autocommit() is the only call monitored in PECL/mysqlnd_ms 1.4. That’s because its pretty much all the MySQL C API had to offer and thus, all the plugin could hook and use to detect transaction boundaries. For example, PECL/mysqlnd_ms 1.4 cannot be made aware of a call to PDO::beginTransaction()
because PDO::beginTransaction()
does not map to any MySQL C API call that the plugin could monitor.
A close look unveils that SQL offers way more options to control transactions than the MySQL C API.
SQL | MySQL C API | PHP 5.4 MySQL APIs |
---|---|---|
SET autocommit | mysql_autocommit() | mysqli_autocommit(), PDO::ATTR_AUTOCOMMIT |
START TRANSACTION | n/a | PDO::beginTransaction() |
START TRANSACTION transaction_characteristic (e.g. READ ONLY) | n/a | n/a |
COMMIT | mysql_commit() | mysqli_commit(), PDO::commit() |
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] | n/a | n/a |
ROLLBACK | mysql_rollback() | mysqli_rollback(), PDO::rollBack() |
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] | n/a | n/a |
The feature gap between SQL and PHP (mysqli) API is closed in PHP 5.5. The mysqlnd C library has been extended to offer C calls for all SQL features. Those C calls can be monitored by PECL/mysqlnd_ms 1.5. And, those calls are exported to the mysqli API. The transaction aware load balancing of PECL/mysqlnd_ms 1.5 is no longer limited to autocommit() but covers all of the below mysqli_*-functions.
SQL | PHP 5.5 MySQL APIs |
---|---|
SET autocommit | mysqli_autocommit(), PDO::ATTR_AUTOCOMMIT |
START TRANSACTION | mysqli_begin_transaction(), PDO::beginTransaction() |
START TRANSACTION transaction_characteristic (e.g. READ ONLY) | mysqli_begin_transaction([option [, name]]) |
COMMIT | mysqli_commit(), PDO::commit() |
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] | mysqli_commit([option]) |
ROLLBACK | mysqli_rollback(), PDO::rollBack() |
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] | mysqli_rollback([option]) |
PDO_MySQL has not been modified yet to use the new mysqlnd API calls. Work in progress… even the mysqli API additions have not been documented yet.
mysqli constant | Comment |
---|---|
MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT , MYSQLI_TRANS_START_READ_WRITE , MYSQLI_TRANS_START_READ_ONLY
|
For mysqli_begin_transaction() . See SQL. |
MYSQLI_TRANS_COR_AND_CHAIN , MYSQLI_TRANS_COR_AND_NO_CHAIN , MYSQLI_TRANS_COR_RELEASE , MYSQLI_TRANS_COR_NO_RELEASE
|
Use with mysqli_commit() , mysqli_rollback() . See SQL. |
Better load balancing in PECL/mysqlnd_ms 1.5
MySQL 5.6 introduces read only transactions. If you tell InnoDB in advance that a transaction will perform read operations only, it can be executed faster than a transaction that may perform a write. Early MySQL 5.6 Release Candidate benchmarks hinted that read only transactions could run twice as fast as normal transactions. You can use the SQL statementSTART TRANSACTION READ ONLY
to begin a read only transaction, or you use the new mysqli API features of PHP 5.5.0.
$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY); $mysqli->query(...); $mysqli->query(...); $mysqli->commit();
Using the API has the advantage that PECL/mysqlnd_ms 1.5 can do transaction aware load balancing: the plugin picks a server to run the transaction and continues using it until the transaction ends. If MYSQLI_TRANS_START_READ_ONLY
is set, the plugin may try to run the transaction on a slave in order to reduce the load on the master. Whether the transaction will end up on a slave depends on a number of additional factors.
trx_stickiness setting | mysqli call | version requirements |
---|---|---|
PECL/mysqlnd_ms load balancing | ||
not set | $mysqli->begin_transaction() | |
Ignored! Load balancer may switch connections at any time. Not transaction safe! | ||
master | $mysqli->autocommit(), PDO::ATTR_AUTOCOMMIT | PHP 5.4, PECL/mysqlnd_ms 1.2 |
If autocommit is turned off, choose master and used it until autocommit is enabled again. Once autocommit is enabled, switching servers may happen at any time. | ||
master | $mysqli->begin_transaction() | PHP 5.5, PECL/mysqlnd_ms 1.5 |
Choose a master: if failover is enabled, search a master until you find one based on failover rules. Once a master has been found stop load balancing, stop failover. Use master until the end of the transaction, monitor mysqli_commit(), mysqli_rollback() C API counterparts to learn about the end of the transaction. | ||
on | $mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY) | PHP 5.5, PECL/mysqlnd_ms 1.5 |
Try to use a slave to run the transaction on. Try to use slave only if master-on-write and the current quality of service setting allows it. For example, if strong consistency has been requested, slaves will not be considered. If no slaves are configured or all slaves have failed, try using a master (see above). |
Beside all the improvements, it would be so much easier for clients to do proper transaction aware load balancing if the server would announce the begin and end of a transaction on the wire protocol…
Happy hacking!
The post PECL/mysqlnd_ms 1.5 + PHP 5.5.0 + MySQL 5.6 = better load balancing appeared first on Ulf Wendel.
PlanetMySQL Voting:
Vote UP /
Vote DOWN
from Planet MySQL http://blog.ulf-wendel.de/2013/peclmysqlnd_ms-1-5-php-5-5-0-mysql-5-6-better-load-balancing/
[下载]iPhone 5版iOS 6 GUI PSD源文件发布
感谢jailbreak iOS 6的投递
如果你是一名iOS应用设计者,iOS 6 GUI PSD源文件发布将会对你有很大的帮助,他可以协助你创建惊人的应用程序。该GUI为标准的1136×640。
from cnBeta.COM http://www.cnbeta.com/articles/209484.htm
长假在家做烘焙—–82道甜点等你哟
假期,不一定要跋山涉水,不一定非得大江南北,有时候,安安静静的呆在家里,陪陪家人,哄哄孩子,见见朋友,干干家务,看看电视,翻翻书都是一种假期。把那些平日里期盼很久,但一直没机会实现的事儿,都来一遍,那才是我心里的假期。比如:以下。
点击图片,可以直接查看具体做法:
枫糖水果煎饼
乳酪布朗尼蛋糕
草莓夏洛特
菠萝酥皮泡芙
香蕉核桃玛芬
咖啡千层蛋糕
奶酪戚风 李子布丁蛋糕
柠香杏仁纸杯蛋糕 橙子果冻
咖啡蕾丝脆片
香葱苏打饼干
蛋黄酥
小狮子面包
三色水果巧克力慕斯
蜂蜜蛋糕
圣诞姜饼屋
凤梨酥
装饰CUP
CAKE
乳酪石榴包
原味餐包
焦糖布丁蛋糕
米老鼠椰香慕斯
果仁玛格丽特
南瓜乳酪派
香酥蛋卷
巧克力马卡龙
蔓越莓椰丝乳酪球
海苔肉松蛋糕卷
贝壳小蛋糕
雪人泡芙
抹茶栗子蛋糕
香蕉巧克力小蛋糕
冰皮月饼
奶油芒果可丽饼
花环泡芙
辫子面包
夹心曲奇饼干
奶香苹果派
奶瓶焦糖布丁
杏仁牛奶冻
抹茶草莓蛋糕卷
南瓜芝士派
迷你法棍
高纤苏打饼干
杏仁蛋白脆饼
奶香曲奇
果酱小面包
啤酒蛋糕
枸杞玉米吐司
金橘冻芝士
牛奶吐司
轻乳酪蛋糕
燕麦葡萄饼干
草莓慕斯
蓝莓芝士派
树根蛋糕
戚风蛋糕
简易燕麦小餐包
棋格饼干
摩卡冻芝士
核桃酥条
丹麦水果面包
牛角面包
岩浆巧克力蛋糕
果酱夹心饼干
巧克力杏仁饼干 大理石芝士蛋糕
蔓越莓司康
香蕉松糕
杏仁瓦片
椰丝蛋白球
提拉米苏
手指饼干
杏仁拿破仑酥
黄桃蛋挞
奥地利苹果派
冻柠檬芝士蛋糕
巧克力桃仁布朗尼
蛋白椰丝饼
柠檬芝士蛋糕
樱桃派
青春就应该这样绽放 游戏测试:三国时期谁是你最好的兄弟!! 你不得不信的星座秘密
from 文怡心厨房 http://blog.sina.com.cn/s/blog_54a625bf0102e7mi.html