Pandigital Novel
went looking for a Nook, ended up with Pandigital’s Novel out of mere confusion.
Discovered it is hackable and can be made better, turning it into an Android tablet.
went looking for a Nook, ended up with Pandigital’s Novel out of mere confusion.
Discovered it is hackable and can be made better, turning it into an Android tablet.
Blub is a hypothetical programming language Paul Graham invented when describing something very interesting: the Blub Paradox:
As long as our hypothetical Blub programmer is looking down the power continuum, he knows he’s looking down. Languages less powerful than Blub are obviously less powerful, because they’re missing some feature he’s used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn’t realize he’s looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.
Paul Graham, Beating the Averages
you know, Netbeans has a pretty good CSS editor with a navigation panel so you can jump to parts of the css file real easy.
when using Smarty, this $_SERVER["PHP_SELF"] becomes this {$smarty.server.PHP_SELF}. For instance, in a form:
<form action={$smarty.server.PHP_SELF} method=”post” name=”FormName”>
I’ve been trying to upgrade a site that was built with an old version of Xoop to a newer version, with not much success. The documentation for Xoops sux big time. I logged into the forums and discovered I had a userid from around 2002, that’s when I first looked at Xoops. I couldn’t find an IRC channel for Xoops. I was feeling like I was stuck with Xoops.
Until today when I searched on “wordpress social network” and discovered Buddypress, a plugin for WordPress to turn it into social networking software.
I installed Buddypress into a fresh install of WordPress on my Dreamhost account. Currently I’m reading up on WordPress Themes and the documentation is pretty good. Plus there is a WordPress IRC channel.
I’m still expecting an effort, though, yo, converting from Xoops to WordPress.
There is an advantage of handling event processing within the context of a dedicated task: less processing takes place at interrupt level, thereby reducing interrupt latency. This model of event processing is recommended for real-time applications.
Priority inversion arises when a higher-priority task is forced to wait an indefinite period of time for a lower-priority task to complete.
The mutual-exclusion semaphore has the option SEM_INVERSION_SAFE, which enables a priority-inheritance algorithm. The priority-inheritance protocol assures that a task that holds a resource executes at the priority of the highest-priority task blocked on that resource. Once the task priority has been elevated, it remains at the higher level until all mutual-exclusion semaphores that the task holds are released; then the task returns to its normal, or standard, priority. Hence, the “inheriting” task is protected from preemption by any intermediate-priority tasks. This option must be used in conjunction with a priority queue (SEM_Q_PRIORITY).
Another problem of mutual exclusion involves task deletion. Within a critical region guarded by semaphores, it is often desirable to protect the executing task from unexpected deletion. Deleting a task executing in a critical region can be catastrophic. The resource might be left in a corrupted state and the semaphore guarding the resource left unavailable, effectively preventing all access to the resource.
Mutual-exclusion semaphores can be taken recursively. This means that the semaphore can be taken more than once by the task that holds it before finally being released. Recursion is useful for a set of routines that must call each other but that also require mutually exclusive access to a resource. This is possible because the system keeps track of which task currently holds the mutual-exclusion semaphore.
Before being released, a mutual-exclusion semaphore taken recursively must be given the same number of times it is taken.
Counting semaphores are useful for guarding multiple copies of resources. For example, the use of five tape drives might be coordinated using a counting semaphore with an initial count of 5, or a ring buffer with 256 entries might be implemented using a counting semaphore with an initial count of 256.
DROP TABLE IF EXISTS wines;
CREATE TABLE wines (
id SMALLINT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
winery VARCHAR(64) NOT NULL,
year VARCHAR(16) NOT NULL,
price DECIMAL(10,0) NOT NULL,
sale_price DECIMAL(10,0),
wine_type_id SMALLINT(5),
wine_sub_type_id SMALLINT(5)
);
DROP TABLE IF EXISTS wine_types;
CREATE TABLE wine_types (
id SMALLINT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(64) NOT NULL
);
DROP TABLE IF EXISTS wine_sub_types;
CREATE TABLE wine_sub_types (
id SMALLINT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(64) NOT NULL,
wine_type_id SMALLINT(5)
);