- Total page hits/unique visits snippet
5 years 21 weeks ago - Busy IRL, but happier than ever
5 years 22 weeks ago - Drupal page titles like breadcrumbs
5 years 31 weeks ago - Theming the Akismet spam counter
5 years 32 weeks ago - Akismet module v1.1.2 for Drupal 4.7
5 years 32 weeks ago
news aggregator
WPTavern: VoodooPress Celebrates 1 Year Anniversary By Giving Away T-Shirts
WordPress community site VoodooPress has recently turned one year old. To celebrate, they are giving away VoodooPress branded T-Shirts. They come at the cost of providing the site some social love by clicking on any of the social media icons on the site. Small price to pay for a chance at a T-Shirt. Congrats to the VoodooPress team and I hope the second year is better than the first!
Just imagine how powerful one would be if they wielded a GPL voodoo doll.
Related posts:
WPTavern: Digging Into WordPress Book Updated To Cover WP 3.3
The WordPress book, Digging Into WordPress has been updated to cover WordPress 3.2 and 3.3. This marks the 9th edition of the book as noted by Jeff Starr. Those of you who are owners of any previous version of the book will receive this update for free.
Related posts:
WPTavern: Situations In Which MultiSite Should Not Be Used
Ipstenu once again has a great article that covers some situations in which MultiSite is not the best tool for the job. If you’re thinking that you need to use MultiSite to accomplish a certain task, make sure that task is not on her list.
No related posts.
WPTavern: Press75 Joins The WordPress.com Commercial Theme Family
Congratulations goes out to Luke McDonald as one of the themes produced by Press75.com has been selected to be part of the WordPress.com commercial theme store. The theme is priced at $50.00 and is called Debut. It’s mobile ready right out of the box along with having post format support. Speaking of post formats, Debut is especially interesting because when users select the Audio post format, it expands into a multi-track playlist. You can see the theme in action via the WordPress.com theme showcase.
Related posts:
Weblog Tools Collection: WordPress Plugin Releases for 2/3
Quick Notice Bar will help you to display a sticky message in your site’s header.
RePress allows you to circumvent internet censorship by proxying traffic to websites that have been blocked by repressive regimes.
Widget Logic Visual lets you control on which pages widgets appear using conditional tags.
WP Really Simple Health allows you to view memory utilization, server uptime, and CPU load on the new admin toolbar.
Updated pluginsTallyopia Analytics provides analytics that you can embed into your site using shortcodes or view in your admin dashboard.
Ultimate TinyMCE beefs up your visual editor with a plethora of advanced options.
STOP: DELETE IGNORE on Tables with Foreign Keys Can Break Replication
DELETE IGNORE suppresses errors and downgrades them as warnings, if you are not aware how IGNORE behaves on tables with FOREIGN KEYs, you could be in for a surprise.
Let’s take a table with data as example, column c1 on table t2 references column c1 on table t1 – both columns have identical set of rows for simplicity.
CREATE TABLE `t1` ( `t1_c1` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`t1_c1`) ) ENGINE=InnoDB; CREATE TABLE `t2` ( `t2_c1` int(10) unsigned NOT NULL, PRIMARY KEY (`t2_c1`), CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`t2_c1`) REFERENCES `t1` (`t1_c1`) ON UPDATE CASCADE ) ENGINE=InnoDB; [revin@forge rsandbox_5_5_17]$ for int in {1..2000}; do ./master/use test -e "insert into t1 values($int)"; done [revin@forge rsandbox_5_5_17]$ ./master/use test -e "insert into t2 select * from t1" master [localhost] {msandbox} (test) > SELECT COUNT(*) FROM t1; +----------+ | COUNT(*) | +----------+ | 2000 | +----------+ 1 row in set (0.00 sec) master [localhost] {msandbox} (test) > SELECT COUNT(*) FROM t2; +----------+ | COUNT(*) | +----------+ | 2000 | +----------+ 1 row in set (0.00 sec)An expected behavior for DELETE IGNORE is that if the statement fails to delete all rows, none should be deleted at all, after all this is InnoDB right? Wrong, take a look at bug 44987. As stated on the bug, only 5.0 exhibits the above mentioned behavior on 5.1 and 5.5, MySQL will stop deleting rows if it encounters constraint errors.
To demonstrate on 5.5.17:
I delete some rows from t2 so some rows on t1 does not have a constraint.
master [localhost] {msandbox} (test) > DELETE FROM t2 WHERE t2_c1 BETWEEN 201 AND 400; Query OK, 200 rows affected (0.00 sec)Now I try to DELETE IGNORE rows 301 to 500 on t1, note rows 301 to 400 does not have any existing constraints from t2 as we deleted them from above.
master [localhost] {msandbox} (test) > DELETE IGNORE FROM t1 WHERE t1_c1 BETWEEN 301 AND 500; Query OK, 100 rows affected, 1 warning (0.00 sec) master [localhost] {msandbox} (test) > SHOW WARNINGS \G *************************** 1. row *************************** Level: Error Code: 1451 Message: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`t2_c1`) REFERENCES `t1` (`t1_c1`) ON UPDATE CASCADE) 1 row in set (0.00 sec)As expected a warning is generated because rows 201 to 300 on t1 still has referencing foreign keys from t2. However, 100 has been deleted! Let’s see.
master [localhost] {msandbox} (test) > SELECT COUNT(*) FROM t1; +----------+ | COUNT(*) | +----------+ | 1900 | +----------+ 1 row in set (0.00 sec)Now let’s check the slave.
[revin@forge rsandbox_5_5_17]$ ./node1/use test ... slave1 [localhost] {msandbox} (test) > SELECT COUNT(*) FROM t1; +----------+ | COUNT(*) | +----------+ | 2000 | +----------+ 1 row in set (0.00 sec)Uh oh, now the slave is out of sync, because the statement failed to delete all intended rows it was not written to the binary log and consequently not reaching the slave.
So how can you workaround this? Simple, 1) do not use IGNORE, be critical about your data 2) use ROW* based replication. When using the latter, MySQL will log separate statements for each row that is deleted – so if the first 100 rows was successfully deleted then those 100 events are logged and eventually replicated.
[revin@forge rsandbox_5_5_170]$ ./master/use test ... master [localhost] {msandbox} (test) > SELECT @@binlog_format; +-----------------+ | @@binlog_format | +-----------------+ | ROW | +-----------------+ 1 row in set (0.00 sec) master [localhost] {msandbox} (test) > DELETE FROM t2 WHERE t2_c1 BETWEEN 201 AND 400; Query OK, 200 rows affected (0.00 sec) master [localhost] {msandbox} (test) > DELETE IGNORE FROM t1 WHERE t1_c1 BETWEEN 301 AND 500; Query OK, 100 rows affected, 1 warning (0.01 sec) master [localhost] {msandbox} (test) > SELECT COUNT(*) FROM t1; +----------+ | COUNT(*) | +----------+ | 1900 | +----------+ 1 row in set (0.00 sec) [revin@forge rsandbox_5_5_170]$ ./node1/use test ... slave1 [localhost] {msandbox} (test) > SELECT COUNT(*) FROM t1; +----------+ | COUNT(*) | +----------+ | 1900 | +----------+ 1 row in set (0.00 sec)* MIXED mode will not work since the query in this example will be considered STATEMENT (http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html) thus failure to execute the query successfully means it will not get logged.
More details about SchoonerSQL performance, please!
Schooner has a blog post showing that one node of their product beats 9 nodes of Clustrix’s in throughput. But this reduces everything to a single number, and that’s not everything that matters. If you’ve looked at Vadim’s white paper about Clustrix’s (paid-for) performance evaluation with Percona, you see there is a lot of detail about how consistent the throughput and response time are.
I’d love to see that level of details in any product comparison. A single number often isn’t enough to judge how good the performance is — fast is not the only thing that matters.
I have absolutely no doubts that a single node of Schooner’s product can run like a deer. It isn’t doing any cross-node communication, after all, so it had better be faster than something that blends multiple nodes together into a virtual “single database server.” And I think if the full story were told, it would be a great knock-down drag-out fight. Give us more details, Schooner!
Further Reading:
CSS3 3D Transforms in IE10
CSS3 features make it easier to build rich and immersive Web experiences. A recent post described how Web developers add personality to their sites with CSS3 Transitions and Animations. CSS3 3D Transforms add another dimension (literally) for developers to enhance their sites. For example, the Windows 8 Metro style Start page uses subtle 3D transforms to highlight pressed tiles, as shown below.
Internet Explorer 10 tile shown not pressed (left) and pressed (right)
Like CSS3 2D Transforms, 3D Transforms provides functions and values for the CSS transform and transform-origin properties that apply geometric transformations operations to HTML elements. CSS 3D Transforms extends the transforms functions to enable 3D transforms. The rotate(), scale(), translate(), skew(), and matrix() transform functions are expanded to encompass the 3D space with a z-coordinate parameter—or in the case of matrix3d(), an extra 10 parameters—and by spawning additional transform functions, for example, rotateZ() and scaleZ().
A new perspective transform function gives transformed elements depth by making distant points appear smaller.
CSS3 3D Transforms also adds a few new CSS properties. In addition to the transform and transform-origin properties, IE10 supports vendor-prefixed perspective, perspective-origin, backface-visibility, and the flat value of transform-style.
Note: The markup examples in this post all use unprefixed properties as defined in the W3C standard. However, at this time all browsers that implement these features do so with vendor-specific prefixes. Please remember to add your browser’s prefix to the example markup when experimenting.
PerspectiveThe perspective transform function is important for 3D transforms. It sets the viewer’s position and maps the viewable content onto a viewing pyramid, which it subsequently projects onto a 2D viewing plane. Without specifying perspective, all points in z-space are flattened onto the same 2D plane and there is no perception of depth in the resulting transform. For some transforms, such as the translation along the Z-axis shown below, the perspective transform function is essential for visibly seeing any effect from the transform.
In the examples below is the original, untransformed element and is the transformed element
transform: perspective(500px) translate(0px, 0px, -300px); transform: translate(0px, 0px, -300px); transform: perspective(500px) rotateY(30deg); transform: rotateY(30deg);A shortcut for adding the perspective transform to several elements is to use the perspective property on their parent element(s). The perspective property applies the perspective transform to each of its child elements:
#parent {
perspective: 500px;
}
#div1 {
position: absolute;
transform-origin: 0px 0px;
transform: rotateY(30deg);
}
#div2 {
position: absolute;
transform-origin: 0px 0px;
transform: rotateY(30deg) translate(220px);
}
The perspective-origin property can also be used in conjunction with perspective to shift the viewpoint away from the center of the element:
Below, you can see that shifting the perspective origin to the left makes the content to the right of the original perspective origin appear farther away.
#parent {
perspective: 500px;
perspective-origin: -300px 0px;
}
backface-visibilityThe backface-visibility property is useful for hiding the backface of content. By default, the backface is visible and the transformed content can be seen even when flipped. But when backface-visibility is set to hidden, content is hidden when the element is rotated such that the front side is no longer visible. This can be useful if you want to simulate an object with multiple sides, such as the card used in the example below. By setting backface-visibility to hidden, it’s easy to ensure that only the front-facing sides are visible.
CSS markup:
.card, .card div {
position: absolute;
width: 102px;
height: 143px;
}
.card div:nth-child(1) {
background-image: url('redback.png');
}
.card div:nth-child(2) {
background-image: url('8clubs.png');
backface-visibility: hidden;
}
HTML markup for one card:
<div class="card"><div></div><div></div></div>
Creating six cards as defined above and giving each a style="transform: rotateY(ndeg)" property with a different rotation value n, results in this:
rotateY(0deg); rotateY(36deg); rotateY(72deg); rotateY(108deg); rotateY(144deg); rotateY(180deg);What’s happening in this example is that when there’s no rotation, you see the second div, the 8 of clubs—because it’s the one on top in drawing order. As we apply a rotation to the card and pass 90 degrees, the backface-visibility: hidden; property of the second div causes it to become invisible thereby exposing the first div, the card back.
3D Transforms with Animations and TransitionsBest of all, you can even use 3D transforms in conjunction with CSS transitions and animations. If you are using IE10 or another browser that supports CSS3 Animations of CSS3 3D Transforms, try this example of scrolling text, built by animating the transform property.
This is the CSS markup that achieves the effect shown in screen shots below.
#parentDiv {
perspective: 500px;
perspective-origin: 150px 500px;
}
#div1 {
transform-origin: 150px 500px;
animation: scrollText 200s linear infinite;
}
@keyframes scrollText {
0% { transform: rotateX(45deg) translateY(500px); }
100% { transform: rotateX(45deg) translateY(-8300px); }
}
Try It Today
Try this out in IE10 on the Windows Developer Preview. The test drive demo Hands On: 3D Transforms can help visualize the possibilities that CSS 3D Transforms enables.
We’d love to see your creations!
—Jennifer Yu, Program Manager, Internet Explorer Graphics
The Data-Scope Project - 6PB storage, 500GBytes/sec sequential IO, 20M IOPS, 130TFlops
“Data is everywhere, never be at a single location. Not scalable, not maintainable.” –Alex Szalay
While Galileo played life and death doctrinal games over the mysteries revealed by the telescope, another revolution went unnoticed, the microscope gave up mystery after mystery and nobody yet understood how subversive would be what it revealed. For the first time these new tools of perceptual augmentation allowed humans to peek behind the veil of appearance. A new new eye driving human invention and discovery for hundreds of years.
Data is another material that hides, revealing itself only when we look at different scales and investigate its underlying patterns. If the universe is truly made of information, then we are looking into truly primal stuff. A new eye is needed for Data and an ambitious project called Data-scope aims to be the lens.
A detailed paper on the Data-Scope tells more about what it is:
A very accessible interview by Nicole Hemsoth with Dr. Alexander Szalay, Data-Scope team lead, is available at The New Era of Computing: An Interview with "Dr. Data". Roberto Zicari also has a good interview with Dr. Szalay in Objects in Space vs. Friends in Facebook.
The paper is filled with lots of very specific recommendations on their hardware choices and architecture, so please read the paper for the deeper details. Many BigData operations have the same IO/scale/storage/processing issues Data-Scope is solving, so it’s well worth a look. Here are some of the highlights:
Tunny 11.62 maintenance
My name is Kristine and I'm an all year round intern in Desktop QA. It’s been 938 days since my last blog post and it's good to be back ;)
We are preparing another maintenance release for 11.6x ‘Tunny’ with some stability fixes. This is a normal Opera release, not Opera Next. All of the below fixes are already in the current Opera Next release.
Known issues
- [Mac] Address field blinks while typing
- [Linux] The 64-Bit build has a different build number but is in fact identical
Download
...
WP Windows Phone 7: Version 1.5 Is Here
We’re very happy to announce that version 1.5 of WordPress for Windows Phone is now available. This update focuses on speed and reliability – here’s what’s changed:
- Stats: We’ve moved the stats section to its own page in the app which greatly improved the loading time for the blog panorama. While we were at it we fixed some bugs and improved the styling of the charts. The result is a much smoother experience for keeping up with your site’s stats. Just tap the new stats button in the actions pane to view your stats.
- Post scheduling: The ability to schedule posts was a missing piece in the app. Now you can easily set a future publish date for your posts right from the app.
- Comments: The comments list has been updated and now features a simple way to select multiple comments for bulk moderation.
- Infinite scrolling: Your posts, pages, and comments now keep loading as you scroll down the list. No need to tap an extra button, it’s quick and easy.
- Media uploading: The uploading reliability has been greatly improved. Now the app uploads your media in bite-size chunks, and automatically retries if you lose your connection. This has been tested a great deal and works well in most everyday situations.
In addition to the improvements and bug fixes, version 1.5 of WordPress for Windows Phone has also seen some minor UI enhancements and updates, as well as a number of crash fixes. All in all, we’re very happy with this release, which should make it even easier for you to blog from that fancy Windows Phone of yours.
We’re not resting just yet though. What would you like to see added to or improved on in the app? Comment on this post or shout out on Twitter and let us know your thoughts.
Huge thanks to everyone involved in this release: Dan Roundhill, Danilo Ercoli, Robert Collins, Max Cutler.
Verifying backup integrity with CHECK TABLES
An attendee to Espen’s recent webinar asked how to check tables for corruption. This kind of ties into my recent post on InnoDB’s handling of corrupted pages, because the best way to check for corruption is with CHECK TABLES, but if a page is corrupt, InnoDB will crash the server to prevent access to the corrupt data. As mentioned in that post, this can only be changed by changing InnoDB.
So how are you supposed to check for corruption that might be introduced by bad hardware, a bug, or so forth?
It’s a great question. The answer I would give for most cases is “check your backups for corruption instead of your live server.” You need to do this anyway — a backup that isn’t checked is a ticking time bomb. You need to verify (at least periodically) that your backups are recoverable.
The usual procedure goes like this: copy your backup somewhere, start a server instance on it, and run CHECK TABLES. You can use the mysqlcheck program to do this conveniently.
You could also use innochecksum, which doesn’t require starting the server. But it only verifies that each page’s checksum matches the page’s data, it doesn’t do all the other checks that are built into InnoDB (making sure that the LSNs are sane, for example).
How often? As often as possible. Some people refresh their dev/staging environment every day with last night’s backup, which is a great way to make failures obvious, as long as you verify that it truly does happen (e.g. what if it fails and you keep running with yesterday’s without knowing it?). If you can’t do it daily, then weekly is perfectly acceptable to most people. I’m not saying a specific interval should/ought to be your goal, I’m just remarking on what a lot of people seem to feel good about.
Ook!
Why am I writing this post, then? They just needed a scapegoat person to write an intro to this Opera Next snapshot, and I was readily available and willing to do so. I'm perfectly sure this build contains many worthwhile changes! Have fun testing the build. :D
Known issues
- Crash on start up with saved sessions
- Mail header layout is broken
- Mac: Some font rendering issues, and crashes with Web fonts
WARNING: This is a development snapshot: It contains the latest changes, but may also have severe known issues, including crashes, and data loss situations. In fact, it may not work at all.
Download
...
Matt: LIFE.com
LIFE magazine has relaunched, powered by WordPress.com VIP. I’m a huge fan of the magazine’s history and the work of photographers like John Dominis.
Weblog Tools Collection: WordPress Theme Releases for 2/1
Dusk To Dawn is a dark theme that melds old-style organic ornaments with modern design and typography.
Grisaille is a classic and simple two-column design adjusted for mobile browsing.
Stark has 2 columns with a left sidebar, is of fluid width, has both an upper menu and a vertical menu, and is high contrast with vivid red, black and white.
Central Virginia MySQL Meetup has reached cruising altitude
The first Central Virginia MySQL Meetup was a nice little howdy-do, and as a test flight, I think it showed that the bird can get off the ground quite nicely. So, with the generous help of our meeting host Meddius, we’re going to do it regularly on the 3rd Wednesday of every month. The next event is already scheduled — I will be talking about high availability options for MySQL.
I’m interested in having outside speakers. Anyone who’d like to come and present something MySQL-relevant, please feel free to email me, or contact me via the Meetup page with the “suggest a Meetup” feature. If you’re traveling from outside the area, the airport is CHO, and it’s about 30 minutes away. Amtrak is also very convenient. I’m happy to chauffeur you, and can help you find lodging too.
I will not try to steer overly much, but I hope that this turns into a group where people introduce themselves, mention job openings and other news of interest, and so on.
There are also a couple of related meetups nearby that I want to promote: NOVA MySQL at AOL’s headquarters led by Mike DelNegro, DevOps DC at CustomInk’s offices led by Nathen Harvey, and one I haven’t been to yet but hope to attend soon, Shenandoah Ruby Users Group in Harrisonburg near Rosetta Stone’s headquarters, led by John Paul Ashenfelter.
Further Reading:
WPTavern: DBS Interactive Releases Theme Reference Guide
DBS Interactive which is an interactive agency has released their version of a WordPress 3.0+ theme reference guide. The guide is a reworked version of the information you would find in the Codex around template tags. So if the Codex presentation of this data is not your cup of tea, perhaps this reference guide will be easier to follow.
Related posts:
Performance in the Cloud: Business Jitter is Bad
One of the benefits of web applications is that they are generally transported via TCP, which is a connection-oriented protocol designed to assure delivery. TCP has a variety of native mechanisms through which delivery issues can be addressed – from window sizes to selective acks to idle time specification to ramp up parameters. All these technical knobs and buttons serve as a way for operators and administrators to tweak the protocol, often at run time, to ensure the exchange of requests and responses upon which web applications rely. This is unlike UDP, which is more of a “fire and forget” protocol in which the server doesn’t really care if you receive the data or not.
Web Sites and a Plug-in Free Web
The transition to a plug-in free Web is happening today. Any site that uses plug-ins needs to understand what their customers experience when browsing plug-in free. Lots of Web browsing today happens on devices that simply don’t support plug-ins. Even browsers that do support plug-ins offer many ways to run plug-in free.
Metro style IE runs plug-in free to improve battery life as well as security, reliability, and privacy for consumers. Previously, we wrote about how we use IE’s Compatibility View List to make sure sites that have a plug-in free experience for other browsers provide that same experience to IE10 users. This post describes a way for sites that continue to rely on plug-ins to provide consumers browsing with Metro style IE the best possible experience.
Developers with sites that need plug-ins can use an HTTP header or meta tag to signal Metro style Internet Explorer to prompt the user.
HTTP HeaderX-UA-Compatible: requiresActiveX=true
META Tag<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true" />
Metro style IE10 detects these flags, and provides the consumer a one-touch option to switch to IE10 on the desktop:
In addition to respecting these X-UA-Compatible flags specified by the developer, the Compatibility View List can also specify a site that needs to run in the desktop.
This mechanism provides a short-term mitigation. The desktop browsing experience and most plug-ins were not designed for smaller screens, battery constraints, and no mouse. Providing an easy way to the Windows desktop is the last resort when no comparable plug-in free fallback content exists.
A plug-in free Web benefits consumers and developers and we all take part in the transition. IE10 makes it easy to provide the best possible experience while you migrate your site.
—John Hrvatin, Program Manager Lead, Internet Explorer
Sponsored Post: aiCache, Next Big Sound, ElasticHosts, Red 5 Studios, Attribution Modeling, Logic Monitor, New Relic, AppDynamics, CloudSigma, ManageEngine, Site24x7
- Anybody interested in helping manage a 100+ Linux server deployment? Next Big Sound is a an analytics company for the music industry and is looking someone to help them scale.
- Red 5 Studios. Wanted: DBAs and Programmers interested in MySQL scalability and replication. If interested, please see us here.
- Sign up for this free 30-minute webinar exploring how new technology can determine which ads have been seen by users and will discuss the C3 Metrics Labs analysis of over 2 billion impressions.
- aiCache creates a better user experience by increasing the speed scale and stability of your web-site.
- ElasticHosts award winning cloud server hosting launches across North America. Adding data centers in Los Angeles and Toronto. Free trial. Just visit our website.
- LogicMonitor - Hosted monitoring of your entire technology stack. Dashboards, trending graphs, alerting. Try it free and be up and running in just 15 minutes.
- New Relic - real user monitoring optimize for humans, not bots. Live application stats, SQL/NoSQL performance, web transactions, proactive notifications. Take 2 minutes to sign up for a free trial.
- AppDynamics is the very first free product designed for troubleshooting Java performance while getting full visibility in production environments. Visit http://www.appdynamics.com/free.
- CloudSigma. Instantly scalable European cloud servers.
- ManageEngine Applications Manager : Monitor physical, virtual and Cloud Applications.
- www.site24x7.com : Monitor End User Experience from a global monitoring network.
For a longer description of each sponsor, please read more below...


Recent comments
5 years 2 weeks ago
5 years 5 weeks ago
5 years 5 weeks ago
5 years 6 weeks ago
5 years 7 weeks ago
5 years 7 weeks ago
5 years 10 weeks ago
5 years 10 weeks ago
5 years 12 weeks ago
5 years 13 weeks ago