Addi­tion­al FEATURE macros on the way

It seems I have a bit of free time now to take care about some FreeB­SD relat­ed things.

As part of this I already com­mit­ted the UFS/FFS relat­ed FEATURE macros which where devel­oped by kibab@ dur­ing the Google Sum­mer of Code 2010. The network/ALTQ relat­ed FEATURE macros are in the hands of bz@, he already reviewed them and wants to com­mit them (with some changes) as part of his improve­ments of parts of the net­work relat­ed code.

The GEOM relat­ed FEATURE macros I just send some min­utes ago to geom@ for review. All the rest went out to hackers@ for review. The rest in this case is relat­ed to AUDIT, CAM, IPC, KTR, MAC, NFS, NTP, PMC, SYSV and a few oth­er things.

If every­thing is com­mit­ted, it should look a bit like this if queried from user­land (not all fea­tures are shown, those are just the ones which are enabled in the ker­nel in one of my machines):

kern.features.scbus: 1
kern.features.geom_vol: 1
kern.features.geom_part_bsd: 1
kern.features.geom_part_ebr_compat: 1
kern.features.geom_part_ebr: 1
kern.features.geom_part_mbr: 1
kern.features.kposix_priority_scheduling: 1
kern.features.kdtrace_hooks: 1
kern.features.ktrace: 1
kern.features.invariant_support: 1
kern.features.compat_freebsd7: 1
kern.features.compat_freebsd6: 1
kern.features.pps_sync: 1
kern.features.stack: 1
kern.features.sysv_msg: 1
kern.features.sysv_sem: 1
kern.features.sysv_shm: 1
kern.features.posix_shm: 1
kern.features.ffs_snapshot: 1
kern.features.softupdates: 1
kern.features.ufs_acl: 1

My cur­rent list of acti­vat­ed WP-plugins

Here is the list of the Word­Press plu­g­ins I have acti­vat­ed since a long time. Some of them I could maybe deac­ti­vate (maybe 4 – 5) but some­how I was too lazy so far to make some time to have a look at this. All in all I regard most of them as essen­tial in some way for my blog.

  • AddToAny: Share/Bookmark/Email Button
    Help peo­ple share, book­mark, and email your posts & pages using any ser­vice, such as Face­book, Twit­ter, Google Buzz, Digg and many more.
  • AddToAny: Sub­scribe Button
    Help read­ers sub­scribe to your blog using any feed read­er or feed service.
  • After The Deadline
    Adds a con­tex­tu­al spell, style, and gram­mar check­er to Word­Press. Write bet­ter and spend less time edit­ing. Vis­it your pro­file to con­fig­ure. See the Proof­read­ing Sup­port page for help.
  • Akismet
    Akismet checks your com­ments against the Akismet web ser­vice to see if they look like spam or not. You need an API key to use it. You can review the spam it catch­es under “Com­ments.” To show off your Akismet stats just put <?php akismet_counter(); ?> in your tem­plate. See also: WP Stats plugin.
  • aLinks
    A Word­Press plu­g­in that auto­mat­i­cal­ly links key­words in your blog post.
  • All in One SEO Pack
    Out-of-the-box SEO for your Word­Press blog.
  • AskA­pache RewriteRules Viewer
    Dis­plays the Inter­nal Word­Press Rewrite Rules in Detailed Glory.
  • Bet­ter Plu­g­in Com­pat­i­bil­i­ty Control
    Adds ver­sion com­pat­i­bil­i­ty info to the plu­g­ins page to inform the admin at a glance if a plu­g­in is com­pat­i­ble with the cur­rent WP version.
  • Bet­ter Search
    Replace the default Word­Press search with a con­tex­tu­al search. Search results are sort­ed by rel­e­van­cy ensur­ing a bet­ter vis­i­tor search experience.
  • Bro­ken Link Checker
    Checks your blog for bro­ken links and miss­ing images and noti­fies you on the dash­board if any are found.
  • Change Admin Username
    Lets you change your user­name to some­thing oth­er than “admin”.
  • Con­tex­tu­al Relat­ed Posts
    Show user defined num­ber of con­tex­tu­al­ly relat­ed posts.
  • Cute Pro­files
    Cute Pro­files adds all your Social Pro­file icons ver­ti­cal­ly on left or right side of your pages, which will remain vis­i­ble all the time though the page is scrolled and with­out con­sum­ing the side­bar space.
  • Dash­board: Lat­est Spam
    Dis­plays the lat­est spam on your Word­Press 2.5+ dash­board so you can make sure there were no false pos­i­tives. Uses Defen­sio to hide obvi­ous spam if you have it installed.
  • Easy Chart Builder
    Cre­ates a chart direct­ly in your post or page via short­cut. Man­ages siz­ing of chart to sup­port wptouch and oth­er mobile themes.
  • Exploit Scan­ner
    Scans your Word­Press site for pos­si­ble exploits.
  • FD Word Statistics
    Com­putes Gunning-Fog, Flesch, and Flesch-Kincaid read­abil­i­ty index­es about posts as they are edit­ed for the pur­pose of improv­ing their readability.
  • GD Press Tools
    GD Press Tools is a col­lec­tion of var­i­ous admin­is­tra­tion, seo, main­te­nance and secu­ri­ty relat­ed tools that can help with every­day blog tasks and blog optimizations.
  • GD Sim­ple Widgets
    Col­lec­tion of pow­er­ful, easy to use wid­gets that expand default wid­gets. Plu­g­in also adds few more must-have wid­gets for posts, authors and comments.
  • GD Star Rating
    GD Star Rat­ing plu­g­in allows you to set up advanced rat­ing and review sys­tem for posts, pages and com­ments in your blog using sin­gle, mul­ti and thumbs ratings.
  • GeoSmart
    GeoSmart auto­mat­i­cal­ly adds city-precise loca­tion infor­ma­tion for com­ment authors to com­ment meta­da­ta. GeoSmart can also dis­play a Google map show­ing com­ment author dis­tri­b­u­tion across the globe. In addi­tion, GeoSmart ships with a mul­ti­ple instance capa­ble side­bar wid­get that dis­plays a map show­ing the loca­tions of the most recent vis­i­tors to your blog. Requires PHP 5 and Word­Press 2.8+. Map dis­play requires a Google Maps API Key.
  • Glob­al Translator
    Auto­mat­i­cal­ly trans­lates a blog in 48 dif­fer­ent lan­guages by wrap­ping four dif­fer­ent online trans­la­tion engines (Google Trans­la­tion Engine, Babelfish Trans­la­tion Engine, FreeTranslations.com, Promt). After upload­ing this plu­g­in click ‘Acti­vate’ and then after­wards you must vis­it the options page and enter your blog lan­guage to enable the translator.
  • Google XML Sitemaps
    This plu­g­in will gen­er­ate a spe­cial XML sitemap which will help search engines like Google, Yahoo, Bing and Ask.com to bet­ter index your blog.
  • Gra­vatar Signup Encouragement
    Dis­plays mes­sage to users with­out gra­vatar that they don’t have one with link to Gra­vatar’s sign-up page (e‑mail included).
  • Health Check
    Checks the health of your Word­Press install
  • http:BL Word­Press Plugin
    http:BL Word­Press Plu­g­in allows you to ver­i­fy IP address­es of clients con­nect­ing to your blog against the Project Hon­ey Pot database.
  • Import HTML Pages
    Imports well-formed sta­t­ic HTML pages into Word­Press posts or pages. Requires PHP5. Now with Dreamweaver tem­plate sup­port and Word HTML cleanup.
  • InfoLink
    Adds a but­ton to the Edi­tor, easy link­ing to Wikipedia, IMDB or add a link with google search.
  • Lim­it Login Attempts
    Lim­it rate of login attempts, includ­ing by way of cook­ies, for each IP.
  • One-Time Pass­word
    One-Time Pass­word Sys­tem con­form­ing to RFC 2289 to pro­tect your weblog in less trust­wor­thy envi­ron­ments, like inter­net cafés.
  • Plu­g­in Manager
    Plu­g­in Man­ag­er lets you to view, down­load and install plu­g­ins from wordpress.org from an AJAX’ed inter­face, instead of man­u­al­ly down­load­ing, extract­ing and upload­ing each plugin.
  • Plu­g­ins Garbage Collector
    It scans your Word­Press data­base and shows what var­i­ous things old plu­g­ins which were deac­ti­vat­ed, unin­stalled) left in it. The list of addi­tion­al data­base tables used by plu­g­ins with quant of records, size, and plu­g­in name is shown.
  • Quick Stats
    Logs hits with refer­rer, ip, host, client and url infor­ma­tion. RSS track­er fea­ture lets you track­er your vis­i­tors in near real­time using an RSS read­er software.
  • Search Meter
    Keeps track of what your vis­i­tors are search­ing for. After you have acti­vat­ed this plu­g­in, you can check the Search Meter sec­tion in the Dash­board to see what your vis­i­tors are search­ing for on your blog.
  • SEO Smart Links
    SEO Smart Links pro­vides auto­mat­ic SEO ben­e­fits for your site in addi­tion to cus­tom key­word lists, nofol­low and much more.
  • Sim­ple Track­back Validation
    Elim­i­nates spam track­backs by (1) check­ing if the IP address of the track­back sender is equal to the IP address of the web­serv­er the track­back URL is refer­ring to and (2) by retriev­ing the web page locat­ed at the URL used in the track­back and check­ing if the page con­tains a link to your blog.
  • Smartlink­er
    Smartlink­er is a tool­bar on the Word­Press TinyM­CE edi­tor that enables you to hyper­link words and phras­es in your blog. A word/phrase can be the name of a per­son, place or thing.
  • Table of Con­tents Creator
    Table of Con­tents Cre­ator (TOCC) auto­mat­i­cal­ly gen­er­ates a dynam­ic site wide table of con­tents that is always up-to-date. All entries are nav­i­ga­ble mak­ing your site very SEO friend­ly. TOCC can be con­fig­ured to dis­play sta­t­ic pages, blog entries and forum com­ments. Anoth­er great fea­ture of TOCC is the abil­i­ty to include anchor tags on any page marked with a spe­cial class. This fea­ture allows links to arti­cles, down­loads or even oth­er sites to appear with­in the table of con­tents as if they are part of your site’s nav­i­ga­tion. To gen­er­ate a table of con­tents, sim­ply include the <!– toc-creator –> tag on any page, or use the handy page cre­ation fea­ture locat­ed on the plu­g­in admin page.
  • TinyM­CE Advanced
    Enables advanced fea­tures and plu­g­ins in TinyM­CE, the visu­al edi­tor in WordPress.
  • Update Noti­fi­er
    Sends email noti­fi­ca­tions to the admin if a new ver­sion of Word­Press avail­able. Noti­fi­ca­tions about updates for plu­g­ins and themes can also be sent.
  • Weasel’s No HTTP Author
    Checks to see if the author name in your com­ments con­tains “HTTP:” to help fil­ter out spam. This only sets the “spam” flag on the com­ment; Akismet does the dirty work and actu­al­ly removes and reports the comment.
  • Where did they go from here
    Show “Read­ers who viewed this page, also viewed” links on your page. Much like Amazon.com’s prod­uct pages. Based on the plu­g­in by Mark Ghosh.
  • Who is Online
    Dis­plays who is cur­rent­ly on your blog and for how long.
  • WordPress.com Stats
    Tracks views, post/page views, refer­rers, and clicks. Requires a WordPress.com API key.
  • WP-Polls
    Adds an AJAX poll sys­tem to your Word­Press blog. You can eas­i­ly include a poll into your Word­Press’s blog post/page. WP-Polls is extreme­ly cus­tomiz­able via tem­plates and css styles and there are tons of options for you to choose to ensure that WP-Polls runs the way you want­ed. It now sup­ports mul­ti­ple selec­tion of answers.
  • WP-Print
    Dis­plays a print­able ver­sion of your Word­Press blog’s post/page.
  • WP-Stats-Dashboard
    Dis­plays the WordPress.com stats graph, your traf­fic and social met­rics mon­i­tor­ing on your dashboard.
  • wp-Typography
    Improve your web typog­ra­phy with: (1) hyphen­ation — over 40 lan­guages sup­port­ed, (2) Space con­trol, includes: wid­ow pro­tec­tion, glu­ing val­ues to units, and forced inter­nal wrap­ping of long URLs & email address­es, (3) Intel­li­gent char­ac­ter replace­ment, includ­ing smart han­dling of: quote marks, dash­es, ellipses, trade­marks, math sym­bols, frac­tions, and ordi­nal suf­fix­es, and (4) CSS hooks for styling: amper­sands, upper­case words, num­bers, ini­tial quotes & guillemets.
  • WP Ajax Edit Comments
    The most pow­er­ful comment-editing solu­tion for Word­Press. Users can edit their own com­ments for a lim­it­ed time, while admins can edit all comments.
  • WP Math Publisher
    Dis­play math­e­mat­i­cal equa­tions with­in your posts and com­ments. Put your plain text math­mat­i­cal expres­sions between [pmath size=xx]…[/pmath] tags. The option­al size attribute con­trols how large the images will be dis­played. Use­ful xx inte­ger val­ues range from 8 to 24. Size defaults to 12 when attribute omit­ted. Pas­cal Bra­chet’s PHP Math Pub­lish­er library is included.
  • WP Mini­fy
    This plu­g­in uses the Mini­fy engine to com­bine and com­press JS and CSS files to improve page load time.
  • WP Secu­ri­ty Scan
    Per­form secu­ri­ty scan of Word­Press installation.
  • WP Super Cache
    Very fast caching plu­g­in for WordPress.
  • WP Update Message
    Add an update mes­sage to your pages or posts to let your read­ers know what has been updated.

I do not need some con­tact man­age­ment plu­g­in, if some­one wants to con­tact me he can use my EMail address. I do not have a prob­lem hav­ing my EMail address in a robot-readable for­mat, my anti-SPAM soft­ware is well tuned for my mailbox.

Ker­nel fea­tures patch­set (from GSoC 2010)

I am play­ing around with the patch­set “my” stu­dent gen­er­at­ed dur­ing this years GSoC (the code for all projects is avail­able from Google). In short, it gives you the pos­si­bil­i­ty to query from user­land, which option­al ker­nel fea­tures are avail­able. I have let him most­ly do those fea­tures, which are not so easy to detect from user­land, or where the detec­tion could trig­ger an autoload of a ker­nel module.

I let the out­put speak for him­self, first the out­put before his patchset:

kern.features.compat_freebsd7: 1
kern.features.compat_freebsd6: 1
kern.features.posix_shm: 1

And now with his patchset:

kern.features.compat_freebsd6: 1
kern.features.compat_freebsd7: 1
kern.features.ffs_snapshot: 1
kern.features.geom_label: 1
kern.features.geom_mirror: 1
kern.features.geom_part_bsd: 1
kern.features.geom_part_ebr: 1
kern.features.geom_part_ebr_compat: 1
kern.features.geom_part_mbr: 1
kern.features.geom_vol: 1
kern.features.invariant_support: 1
kern.features.kdtrace_hooks: 1
kern.features.kposix_priority_scheduling: 1
kern.features.ktrace: 1
kern.features.nfsclient: 1
kern.features.nfsserver: 1
kern.features.posix_shm: 1
kern.features.pps_sync: 1
kern.features.quota: 1
kern.features.scbus: 1
kern.features.softupdates: 1
kern.features.stack: 1
kern.features.sysv_msg: 1
kern.features.sysv_sem: 1
kern.features.sysv_shm: 1
kern.features.ufs_acl: 1

With his patch­es we have a total of 84 ker­nel fea­tures which can be queried (obvi­ous­ly I do not have all option­al options enabled in the ker­nel which pro­duces this out­put). All of the fea­tures also have a descrip­tion, and it is easy to add more fea­tures. As an exam­ple I present what is nec­es­sary to pro­duce the kern.features.stack output:

./kern/subr_stack.c:FEATURE(stack, “Sup­port for cap­tur­ing ker­nel stack”);

There is also a lit­tle user­land appli­ca­tion (and a library inter­face) which allows to query sev­er­al fea­tures from scripts/applications with the pos­si­bil­i­ty to pre­tend a fea­ture is not there (the require­ment for this was for ports; pre­tend­ing a fea­ture is there if it is not was ruled out because such run-time detec­tion is only nec­es­sary for things which have to run soon and pre­tend­ing some fea­ture is there while it is not will cause big prob­lems). Unfor­tu­nate­ly the man page for the appli­ca­tion is not yet ready, but I’m sure you can fig­ure out how to use it.

The names of the fea­tures and the descrip­tion fol­lows an easy scheme, what is writ­ten down in NOTES is used as a name and a descrip­tion for the fea­ture (an excep­tion is geom_part_X, there we decid­ed to use a com­mon theme (“GEOM par­ti­tion­ing class for XXX”) which is dis­tinct from the cor­re­spond­ing geom_X class). If you have com­plains about what is used in a spe­cif­ic fea­ture, do not com­plain to him: change it in NOTES and the fea­ture will follow.

If you have ques­tions, sug­ges­tions, or some oth­er inter­est to con­tact him, his FreeB­SD address is kibab@. Feel free to encour­age him to go ahead with the next steps (fin­ish­ing the man page, split­ting up the patch­es into sen­si­ble pieces and pre­sent­ing them on appro­pri­ate mail­inglists for review). 🙂

HOWTO men­tor in the GSoC (ini­tial com­mu­ni­ca­tion with the student)

Every men­tor in the GSoC has a dif­fer­ent way of han­dling stu­dents. Here is what I do.

The stu­dent intro­duced him­self to me as request­ed by our soc-admins in the ini­tial mail to our stu­dents. He looked up in which time­zone I am (pub­lic info) and pre­sent­ed his time­zone (and rough loca­tion) to me. That is nice. He also offered dif­fer­ent com­mu­ni­ca­tion chan­nels (basi­cal­ly EMail and IM).

I con­firmed what he looked up, and pre­sent­ed what I did in the past GSoC in which I par­tic­i­pat­ed so that he has an idea if am new to the game or not. I told him that quick/short ques­tions are bet­ter asked via IM, while long expla­na­tions or ques­tions are bet­ter han­dled via EMail. I also gave him a rough overview when he can expect quick answers from me and when I am not available.

Fol­low­ing are some ques­tions I asked him, so that I get an impres­sion about what to expect and that I can plan a bit (some of those may already be told in stu­dent appli­ca­tion, but I pre­fer to have every­thing in one place):

  • From when to when do you intent to spend how much time for the GSoC?
  • Any hol­i­days / non-availability planned dur­ing the GSoC?
  • Any university-stuff (exams/lessons/…) dur­ing this time (the uni has high­er pri­or­i­ty than the GSoC for Google)?
  • Any­thing else in par­al­lel of the GSoC (some paid work, tak­ing care about ill (grand-)parents, …)?
  • At what lev­el of knowl­edge do you see your­self regard­ing computer-science/programming/OS-concepts (rel­a­tive to oth­er stu­dents and rel­a­tive to the topic)?
  • How do you want to start about the project (where do you want to start, what do you intent to do… just a quick overview… a bit more than say­ing “I add X”, but not as far as copy&paste of code examples)?

More impor­tant than that (IMO), is to give an idea what is expect­ed from the student:

  • you have FreeBSD-current installed (on a real PC or in a vir­tu­al machine)
  • you give me a report about the sta­tus each week (“did noth­ing” is also a valid report, it gives me the info that you are still alive and did not lose inter­est in the GSoC)
  • if your sched­ule changes in a sig­nif­i­cant way, give me a lit­tle noti­fi­ca­tion (e.g. “I can not do any­thing next week”)
  • if you spend more than 30 min­utes with a prob­lem, pre­pare an email with the prob­lem descrip­tion; if this prepa­ra­tion did not solve your prob­lem, send me the mail (if you solve the prob­lem 5 min­utes lat­er, no prob­lem, I pre­fer to get a mail too much than to have you stuck with some­thing for an incred­i­ble amount of time)

A men­tor does not know every­thing, off course, so the stu­dent should be sub­scribed to hackers@ and current@, and if there is a spe­cif­ic list which match­es good to the project he is work­ing on, then to this mail­ing list too. This allows the men­tor to tell the stu­dent to send a mail with the ques­tions to one of those lists with­out much prepa­ra­tion to receive all answers.

Anoth­er help­ful resource is the FreeB­SD ker­nel cross-reference. For some peo­ple my doxy­gen gen­er­at­ed docs of parts of the FreeB­SD ker­nel may be help­ful (put unfor­tu­nate­ly not a lot of doxygen-markup is with­in our source code).

I also told that he shall pre­pare him­self that I will ask him to send a ref­er­ence to a patch of his work long enough before the GSoC ends to an appro­pri­ate mail­ing list, and that com­ments from there regard­ing changes he must or shall do are not some­thing bad, but a way to improve the result and/or his skills.

Men­tor­ing again in the GSoC

Seems that I will active­ly men­tor again in this Google Sum­mer of Code (as opposed to just review the sub­mis­sions from stu­dents and/or act­ing as a fall-back mentor).

The project I will men­tor is the “Make option­al ker­nel sub­sys­tems reg­is­ter them­selves via sysctl”-one from the FreeB­SD ideas page.

The stu­dent already got into con­tact with me and it looks like he is moti­vat­ed (he is already sub­scribed to sev­er­al FreeB­SD mail­inglists, which is not a require­ment we have in our GSoC docs).