Aug
12th
For a couple of years, I'd been running an active forum for my Open Source projects. Years back, I'd chosen simple machines forum (better known simply as SMF), because of its features and the fast development progress it had back in 2005, prior to its first official release.
SMF was free, but not Open Source. It was kept under a proprietary license that disallowed the distribution of modified versions of the software. For me, this was never a problem, because I had no intention to distribute anything and local modifications (for your own use) were not prohibited. With the release of SMF 2.0, this has changed and SMF is now licensed under the modified BSD license, so it is as free as a piece of open source software can be.
In the last two years, some not so nice things happened at SMF. I do not want to go into detail here and, to be honest, I cannot, because I do not have enough knowledge, but everyone who was frequently following the SMF community probably knows that some things weren't always quite right over there. In short, there was a lot of fighting and arguing over mostly political and legal things, that's all I know.
However, from a developer's point of view, these issues are now settled. The code is out, it's open source and this is really all that matters for me. So I decided to play around with and create something new from it, adding a couple of new features, fixing a few annoying issues and - most importantly - giving the software a new, fresh and modern theme.
This has just started. Really, it's just about 2 weeks old, and it is really far, far, far from being a usable product, but it's a start.
If you are interested, you can follow it here.
Jul
20th
Everyone who has been using jQuery knows the purpose and how to use the jQuery(document).ready() function. But what if you want or need to implement such a construct without jQuery (for whatever reason, one would be to avoid the jQuery overhead if all you really need is the ready() handler?
One would think it's as simple as using a onload event, just like:
<body onload="myReadyHandler();">
But it is not. There is an important and significant difference between onload and document.ready():
Read more...
Jul
16th
Chrome doesn't allow simulating a click using the click() method.
While working on some WordPress plugin to enhance the comment system with a couple of Ajax features, i ran into a problem. My code was using the click() method on a link object to simulate a click on this link and while this did work fine in Opera, Firefox and Internet Explorer, it did not so in Google Chrome. Now, I know using click() is a bad thing and there is almost always a better way but in this specific case, there wasn't so I had to find a solution.
The reason why Chrome doesn't allow this is most likely related to its security model and I think it does it on purpose which is all fine, because such functionality is rarely, if ever, needed.
Jun
2nd
Unless you've been under a rock for the past few days, you probably know it already.
Google has launched the +1 button for web masters to integrate into their sites. I'm not going much into detail about this button as there is plenty of stuff to read on the web. Obviously, they are trying to set up some competition for the viral Facebook Like that has appeared on so many pages over the past year. It does make sense - Google still dominates the web and search results, so introducing another social component for the millions of Google accounts is only a logical step. Whether or not it will help to improve the user experience stays open for discussion. Right now, I cannot see how and why a +1 given by one of my Google contacts should improve my surfing experience. People are very different and what he or she finds cool stuff might not be of any interest for myself at all. But that's a personal opinion only.
I'm not overly excited as I see this +1 thing with the same amount of worries I also have about embedded Like and Tweet buttons. Nevertheless, I've given it a try and if you're a web designer or site owner, you better adopt early, because people will love it, regardless of all the privacy concerns. After all, people do love the Like button as well.
Embedding a +1 button is fairly straightforward and so simple that no one should need a plugin for it. But I'm sure there will be plenty of plugins soon, but as always, I prefer to add simple features to my template framework.
Read more...
Apr
30th
Ideas matter
While I do not know anything about the motivation behind this software, I kinda like the idea. It shows creativity and inspiration. It's a pretty cool idea and something completely new (at least, I've never seen a similar piece of software).
Read more...
Apr
27th
I am still seeing it quite often: People using the <a> tag to insert anchors (link targets) in web pages. Doing so will instantly make your page violate XHTML 1.1 standards. The name attribute was dropped in XHTML 1.1, so anything like:
<a name="foo">...
can no longer be valid XHTML code.
The reason why it was dropped should be quite clear. Use the id attribute, simple as that. Using id attributes to mark sections of a page (for example, the container holding all the comments for a blog entry) is common practice anyway and important for many modern web technologies, because these technologies often need to address elements by their ID attribute values. It therefore makes sense to use them as link targets in longer documents.
The old <a name=""> notation is basically just creating unnecessary and avoidable code. That's why it was dropped and can be seen as obsolete.
Modern browsers can very well handle id attributes as link targets, but some older may not be able to do.
Sep
30th
In the last article, I explained how to render to a Windows device context, using the AGG 2d graphics library. As promised, I want to explain how to do it when using the Buffered Paint API, available on Windows Vista or later.
Buffered paint is a set of new APIs allowing an application to perform flicker free painting without the overhead of creating memory device contexts and bitmaps. It is only available on Windows Vista or later and is part of the UxTheme library. Using it will either make your application incompatible with Windows XP or earlier or will require using the GetProcAddress() method on Vista or later while providing a fallback method when the buffered paint API is not available.
Read more...
Sep
24th

Quite a few years ago, I discovered AntiGrain Geometry, a high-performance, high-quality, platform-independent generic library for rendering 2d vector graphics.
AGG is fast, lightweight, implemented as a set of C++ classes, makes heavy use of templates and is fairly easy to integrate into a project. There is no need to build and link against libraries as you just add the files to your project and make sure you include the necessary headers. Clean and simple.
It can serve as a replacement for GDI+ and usually produces better results at higher speeds. It is also somewhat similar to cairo graphics, but has less features. It is perfect when you need to draw filled or outlined shapes, deal with all kinds of gradients or draw antialiased lines.
Read more...
May
11th
In short words...
It's a jargon term for writing an if condition in a programming language using bad looking grammar while keeping it syntactically correct. Pretty much the same thing, Yoda does when he speaks :) He screws up grammar, but his statements are still making sense and can be understood by most people familiar with the language he uses.
So, instead of writing
if ( foo == 0 )
.. some C and C++ programmers insist on writing
if ( 0 == foo )
Read more...
May
6th
Share this!
Quick summary: The article explains how to build a bookmarking/sharing widget like the one I'm using on this blog (the Share button, you can see at the bottom of posts). The widget is using HTML, CSS and JavaScript code and can easily be added to any WordPress template. This is a generic approach, not a plugin targeted at a specific platform though the example code is written with WordPress in mind.
Social bookmarking is everywhere. Whether you like it or not, you cannot ignore it, because users tend to love it when they can easily share a link, video, image or blog article with their friends.
 Share this
The entire thing with sharing stuff started years ago with services like Technorati or delicious.com and today we have dozens of social networks that allow their users to share noteworthy things they find on the net.
A sharing widget commonly refers to an element on a web page which allows visitors to submit a piece of content (for example, a blog article, a video or an image) to a number of well-known social sites. The result of sharing a piece of content are different and depend on the site - no need to go into detail here, as most people know how it works anyway. Read more...
|
|