Oracle PL/SQL has a neat and little known feature called forward declaration. In this post I’m going to do a quick review of what forward declaration is, how it can be used and a situation in which forward declarations are absolutely required, mutual recursion.
As you already know, PL/SQL requires that you declare elements (variables, procedures and functions) before using them in your code. For example: (more…)
Filed in Oracle with 12 Comments | Tags: pl/sqlTom Johnson has a list of twenty usability tips for your blog. Does your blog follow these principles that distinguish good blogs from poor ones? I believe that mine does. Here is why. My blog:
Has a tag line that clearly identifies the topic of the blog: News, views, tips and tricks on Oracle, ColdFusion and other fun stuff. Although, the focus has been mostly on Oracle.
Allows comments and does not require readers to register before commenting. At one time, I turned comment registration on. That was before I discovered this WordPress plugin: Math Comment Spam Protection.
Provides the option to be notified of follow-up comments via e-mail and RSS, thanks to Subscribe to Comments WordPress plugin.
Makes it easy to subscribe to the blog’s feed by placing an orange RSS button in a highly visible location (the menu bar at the top). Moreover, the Subscribe Me WordPress plugin adds site subscription links to popular RSS readers, and Feedburner Feed Replacement plugin forwards all feed traffic to Feedburner.
Offers an e-mail subscription to the latest posts.
Has an About page to tell the reader who I am.
Has a Contact page to give the reader the option to contact me offline, thanks to the WP Contact Form III plugin for WordPress.
Includes visuals (graphs, charts, photos, blockquotes, videos…) in blog posts. Here is an example.
Has mostly short blog posts. Unless they are extremely useful or interesting, I do not have time to read long posts on other blogs and I figure other people do not have the time to read my long posts either.
Has subheadings for long posts. Here is an example.
Is generous in linking to other blogs and websites. Here is an example.
Clearly describes posts’ content in the posts’ titles. You judge for yourself.
Archives posts by category.
Has a search feature and with the Google Sitemap Generator plugin for WordPress, Google visits my blog very frequently, quickly making it searchable on the net as well.
Has a list of related posts beneath each post, thanks to these WordPress plugins: Ultimate Tag Warrior and ST Add Related Posts to Feed.
Does not have confidential, overly-emotional, rude, or unprofessional posts. I’m not an emotional guy anyway and I’m nice overall.
Has a “top posts” section in the sidebar (or bottombar) thanks to WP-PostViews WordPress plugin.
Has a “recent posts” section in the sidebar (or bottombar).
Has a “top commentators” section in the sidebar (or bottombar), thanks to Show Top Commentators WordPress plugin.
Has a sitemap or index page, thanks to Sitemap Generator WordPress plugin.
Has a URL that nearly matches the title of the blog. The URL of my blog is awads.net/wp, the title of my blog is Eddie Awad’s blog. Close enough.
Is refreshed with new posts on a regular basis. I used to post at least 4 times a week, but with two kids, a full time job and project deadlines looming, I try to post at least once a week on average.
And here are some additional usability measures I think are also important and worth mentioning:
Has a white background color. To me, It’s just more readable having dark text on light background.
Makes it easy to share posts Web 2.0 style, thanks to the Share This WordPress plugin and FeedFlare.
Publishes a full-text feed instead of a truncated one. Here is why I switched to a full-text feed and here are more thoughts about this subject.
Has useful and interesting content (at least to me). After all, what’s a blog without good content?
It’s the season of stumbling:
StumbleUpon, in its most recent toolbar, introduced a new feature called StumbleThru, which allows users to stumble through pages on a specific web site.
Google introduced a recommendations button that you can add to the Google toolbar. The button looks like a pair of dice. Every time you click on the dice, you will be taken to a site that may be interesting to you based on your past searches.
Matt Mullenweg introduced a new WordPress plugin, Random Redirect, which is a special URL that, when clicked, will redirect to a random post on your blog, in a StumbleUpon-like fashion.
I have activated the Random Redirect plugin on my blog. Every time you click on this link you will be served a random post from the list of all my previous posts. You can also find this link on the blog’s top menu bar.
Out of curiosity, I took a look at the code behind the Random Redirect plugin, and amazingly, it is very short and simple. Here it is, the whole plugin:
function matt_random_redirect() {
global $wpdb;
$random_id = $wpdb->get_var("
SELECT ID
FROM $wpdb->posts
WHERE post_type = 'post'
AND post_password = ''
AND post_status = 'publish'
ORDER BY RAND() LIMIT 1");
wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'matt_random_redirect' );
Notice the ORDER BY RAND(), this reminds me of one of my earlier posts: ORDER BY no order. Basically, you can do the same in Oracle: ORDER BY dbms_random.random.
Here is Steven Feuerstein, the renowned Oracle PL/SQL guru, presenting “PL/SQL Best Practices, making the most of the of Oracle PL/SQL”:
And here is another presentation by Steven titled “You Wrote What? an examination of common coding mistakes made by PL/SQL Developers and how you can avoid them”:
Note: These videos are provided by Quest Software.
You can download the presentations in the videos above, and more, from oracleplsqlprogramming.com/resources.html.
Filed in Oracle, Tips with Comments Off | Tags: pl/sql, toad
Please update your bookmarks and links. OraNA, the largest Oracle news and blogs aggregator, has a new home: OraNA.info. It also has a new look. The OraNA RSS feed, however, is still the same.
If your blog is aggregated by OraNA, you can grab the HTML code from here to easily place the “Aggregated by OraNA.info” button on your blog.
Filed in Oracle with Comments Off | Tags: aggregator, blogOracle Applications 11i Encrypted Password String Disclosure (PDF): An undisclosed security vulnerability exists in Oracle Applications 11i that may allow an unauthenticated, internal attacker to obtain Oracle Applications’ user account encrypted password strings, which in turn can be decrypted using previously published information. An attacker can potentially obtain either any user’s password or the Oracle Applications’ main database account password (APPS).
Building an Audit Trail in an Oracle Applications Environment (PDF): Sarbanes-Oxley’s section 404 requires a company’s key systems be audited. However, many companies have “unauditable” systems and don’t even know it. This paper explores methods by which companies can create an auditable system by implementing various levels of audit trails in Oracle Applications.
Dissecting the Redo Logs (PDF): This paper delves into the guts of the undocumented binary format of the redo logs and shows the forensics examiner, if there is evidence to be found, how to find it and how it can be integrated into a time line of events. It also explores how an attacker can attempt to cover their tracks and how to spot this.
Locating dropped objects (PDF): This paper shows, even when an object has been dropped and purged from the system there will be, in the vast majority of cases, fragments left “lying around†which can be sewn together to build an accurate picture of what the actions the attacker took. Perhaps, depending upon how quickly an investigation takes place from the incident in question, even all data pertaining to the dropped object or objects may still be found.
Isolating Evidence of Attacks Against the Authentication Mechanism (PDF): This paper looks at attacks against the authentication mechanism and evidence to check whether a logon attempt was successful or not. It also looks at other attacks leveled at the authentication process including SID guessing, user enumeration and brute forcing of passwords over the network. Moreover, the paper looks at the differences between a logon attempt via the FTP and Web services provided with the XML Database and directly with the RDBMS itself.
Lewis Cunningham’s “mini” tip about the NO_DATA_FOUND exception in PL/SQL is interesting. He shows how this exception is not always raised when you expect it to be raised. Here is another NO_DATA_FOUND gotcha you should be aware of: (more…)
Filed in Oracle, Tips with 11 Comments | Tags: gotcha, pl/sqlPowered by Twitter Tools.
Filed in Interesting Stuff with Comments Off | Tags: tweetsPowered by Twitter Tools.
Filed in Interesting Stuff with 1 Comment | Tags: tweets